From f9038b55126e089d3ef38bc02ab768b37e618be9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 7 May 2026 00:15:33 +0000 Subject: [PATCH 1/3] Initial plan From 22cb08696ee573aed255a91ab0d89729974f2d07 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 7 May 2026 00:19:08 +0000 Subject: [PATCH 2/3] feat: add workspace operation and operation task contracts Agent-Logs-Url: https://github.com/SourceOS-Linux/sourceos-syncd/sessions/744c639e-1999-4873-80c6-cbc4b6f037f1 Co-authored-by: mdheller <21163552+mdheller@users.noreply.github.com> --- docs/contracts.md | 18 +- examples/contracts/conflict.alpha.json | 9 + examples/contracts/operation-task.alpha.json | 19 ++ .../contracts/workspace-operation.alpha.json | 32 ++++ .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 289 bytes .../__pycache__/contracts.cpython-312.pyc | Bin 0 -> 23148 bytes .../__pycache__/evidence.cpython-312.pyc | Bin 0 -> 6820 bytes .../__pycache__/local_store.cpython-312.pyc | Bin 0 -> 23995 bytes .../__pycache__/policy.cpython-312.pyc | Bin 0 -> 6687 bytes .../__pycache__/reports.cpython-312.pyc | Bin 0 -> 36914 bytes .../__pycache__/scorecard.cpython-312.pyc | Bin 0 -> 9607 bytes .../__pycache__/service.cpython-312.pyc | Bin 0 -> 15652 bytes .../__pycache__/store_reports.cpython-312.pyc | Bin 0 -> 4304 bytes .../__pycache__/trust.cpython-312.pyc | Bin 0 -> 8223 bytes src/sourceos_syncd/contracts.py | 167 +++++++++++++++++- ...est_contracts.cpython-312-pytest-9.0.3.pyc | Bin 0 -> 11248 bytes ...test_evidence.cpython-312-pytest-9.0.3.pyc | Bin 0 -> 7009 bytes ...test_fixtures.cpython-312-pytest-9.0.3.pyc | Bin 0 -> 6432 bytes ...t_local_store.cpython-312-pytest-9.0.3.pyc | Bin 0 -> 24038 bytes ...t_policy_hook.cpython-312-pytest-9.0.3.pyc | Bin 0 -> 8607 bytes ...orts_contract.cpython-312-pytest-9.0.3.pyc | Bin 0 -> 9748 bytes ...est_scorecard.cpython-312-pytest-9.0.3.pyc | Bin 0 -> 7143 bytes .../test_service.cpython-312-pytest-9.0.3.pyc | Bin 0 -> 34035 bytes ...vice_examples.cpython-312-pytest-9.0.3.pyc | Bin 0 -> 9570 bytes ...rity_examples.cpython-312-pytest-9.0.3.pyc | Bin 0 -> 14114 bytes ...st_trust_gate.cpython-312-pytest-9.0.3.pyc | Bin 0 -> 8789 bytes tests/test_contracts.py | 22 +++ 27 files changed, 263 insertions(+), 4 deletions(-) create mode 100644 examples/contracts/operation-task.alpha.json create mode 100644 examples/contracts/workspace-operation.alpha.json create mode 100644 src/sourceos_syncd/__pycache__/__init__.cpython-312.pyc create mode 100644 src/sourceos_syncd/__pycache__/contracts.cpython-312.pyc create mode 100644 src/sourceos_syncd/__pycache__/evidence.cpython-312.pyc create mode 100644 src/sourceos_syncd/__pycache__/local_store.cpython-312.pyc create mode 100644 src/sourceos_syncd/__pycache__/policy.cpython-312.pyc create mode 100644 src/sourceos_syncd/__pycache__/reports.cpython-312.pyc create mode 100644 src/sourceos_syncd/__pycache__/scorecard.cpython-312.pyc create mode 100644 src/sourceos_syncd/__pycache__/service.cpython-312.pyc create mode 100644 src/sourceos_syncd/__pycache__/store_reports.cpython-312.pyc create mode 100644 src/sourceos_syncd/__pycache__/trust.cpython-312.pyc create mode 100644 tests/__pycache__/test_contracts.cpython-312-pytest-9.0.3.pyc create mode 100644 tests/__pycache__/test_evidence.cpython-312-pytest-9.0.3.pyc create mode 100644 tests/__pycache__/test_fixtures.cpython-312-pytest-9.0.3.pyc create mode 100644 tests/__pycache__/test_local_store.cpython-312-pytest-9.0.3.pyc create mode 100644 tests/__pycache__/test_policy_hook.cpython-312-pytest-9.0.3.pyc create mode 100644 tests/__pycache__/test_reports_contract.cpython-312-pytest-9.0.3.pyc create mode 100644 tests/__pycache__/test_scorecard.cpython-312-pytest-9.0.3.pyc create mode 100644 tests/__pycache__/test_service.cpython-312-pytest-9.0.3.pyc create mode 100644 tests/__pycache__/test_service_examples.cpython-312-pytest-9.0.3.pyc create mode 100644 tests/__pycache__/test_state_integrity_examples.cpython-312-pytest-9.0.3.pyc create mode 100644 tests/__pycache__/test_trust_gate.cpython-312-pytest-9.0.3.pyc diff --git a/docs/contracts.md b/docs/contracts.md index 6fcad6c..1e0915a 100644 --- a/docs/contracts.md +++ b/docs/contracts.md @@ -2,7 +2,7 @@ Canonical architecture: `SourceOS-Linux/sourceos-spec/docs/architecture/sourceos-state-integrity-layer.md` -This repository implements the first executable contract for SourceOS State Integrity. The current implementation lane is Python and standard-library-first. It provides State Integrity Report generation, diagnosis, verification, non-destructive repair planning, a filesystem-backed local store prototype, an append-only JSONL event log, registry persistence, and contract models for actors, schemas, objects, policy decisions, conflicts, events, profiles, devices, sync plans, and agent object transactions. +This repository implements the first executable contract for SourceOS State Integrity. The current implementation lane is Python and standard-library-first. It provides State Integrity Report generation, diagnosis, verification, non-destructive repair planning, a filesystem-backed local store prototype, an append-only JSONL event log, registry persistence, and contract models for actors, schemas, objects, policy decisions, conflicts, events, profiles, devices, sync plans, workspace operations, operation tasks, and agent object transactions. The next daemon phases should extend this baseline into full event-log, policy, profile, repair, service, and adapter subsystems without breaking the current JSON report contracts. @@ -114,6 +114,8 @@ sourceos.conflict-record/v1alpha1 sourceos.policy-decision/v1alpha1 sourceos.integrity-event/v1alpha1 sourceos.agent-object-transaction/v1alpha1 +sourceos.workspace-operation/v1alpha1 +sourceos.operation-task/v1alpha1 ``` Use `validate_contract(record)` to validate a JSON object by its `schema` field. Use the specific dataclass `from_dict()` helpers when callers know the expected type. @@ -139,6 +141,8 @@ conflict.alpha.json policy.decision-review.json event.object-alpha-created.json agent-transaction.alpha.json +workspace-operation.alpha.json +operation-task.alpha.json ``` The contract test suite loads every fixture, validates it through the model registry, and round-trips each fixture through its dataclass model. @@ -223,6 +227,18 @@ Agent transaction statuses: draft, proposed, approved, applied, rejected, reverted ``` +Workspace operation types: + +```text +sync.operation.enqueue, sync.operation.replay, sync.operation.reconcile, sync.conflict.detect, sync.conflict.resolve, sync.repair.apply, sync.tombstone.apply, sync.checkpoint.write +``` + +Decision card options: + +```text +merge, fork, skip +``` + Device states: ```text diff --git a/examples/contracts/conflict.alpha.json b/examples/contracts/conflict.alpha.json index eaa1c73..324fc8f 100644 --- a/examples/contracts/conflict.alpha.json +++ b/examples/contracts/conflict.alpha.json @@ -10,6 +10,15 @@ "schema_version": "v1", "severity": "review_required", "merge_policy": "human_review_required", + "decision_card": { + "card_id": "decision-card:conflict-alpha-001", + "options": ["merge", "fork", "skip"], + "recommended_option": "merge", + "selected_option": "fork", + "rationale": "Payload lineage diverged after remote replay; preserve both versions for review.", + "selected_by": "actor:local-user", + "selected_at": "2026-05-05T00:07:30Z" + }, "user_explanation": "Two scoped actors produced competing updates for the same object fixture.", "created_at": "2026-05-05T00:07:00Z" } diff --git a/examples/contracts/operation-task.alpha.json b/examples/contracts/operation-task.alpha.json new file mode 100644 index 0000000..7322ea1 --- /dev/null +++ b/examples/contracts/operation-task.alpha.json @@ -0,0 +1,19 @@ +{ + "schema": "sourceos.operation-task/v1alpha1", + "task_id": "operation-task:alpha-0001", + "operation_id": "workspace-operation:alpha-001", + "operation_type": "sync.operation.replay", + "status": "succeeded", + "attempt": 1, + "idempotency_key": "idem-replay-alpha-0001", + "policy_decision_ref": "policy-decision:review-alpha", + "evidence_refs": ["evidence:operation-task-0001"], + "created_at": "2026-05-05T00:10:01Z", + "updated_at": "2026-05-05T00:10:06Z", + "started_at": "2026-05-05T00:10:02Z", + "completed_at": "2026-05-05T00:10:06Z", + "remote_operation_id": "remote-op:9931", + "conflict_id": "conflict:alpha-001", + "checkpoint_ref": "checkpoint:workspace-default-0001", + "replay_safe": true +} diff --git a/examples/contracts/workspace-operation.alpha.json b/examples/contracts/workspace-operation.alpha.json new file mode 100644 index 0000000..3eac530 --- /dev/null +++ b/examples/contracts/workspace-operation.alpha.json @@ -0,0 +1,32 @@ +{ + "schema": "sourceos.workspace-operation/v1alpha1", + "operation_id": "workspace-operation:alpha-001", + "local_operation_id": "local-op:0001", + "remote_operation_id": "remote-op:9931", + "operation_type": "sync.operation.reconcile", + "status": "reconciled", + "workspace_id": "workspace:default", + "profile_id": "profile:local-dev", + "actor_id": "actor:agent-one", + "device_id": "device:local", + "encryption_profile_ref": "encryption-profile:local-default", + "local_log_ref": "journal:evt-00000001", + "checkpoint_ref": "checkpoint:workspace-default-0001", + "causal_parent_ids": ["local-op:0000"], + "conflict_ids": ["conflict:alpha-001"], + "provisional_artifact_ids": { + "artifact:temp-1": "object:alpha" + }, + "artifact_reconciliation": { + "artifact:temp-1": "artifact:final-44" + }, + "policy_decision_ref": "policy-decision:review-alpha", + "artifact_admission_ref": "artifact-admission:alpha-allow", + "ledger_evidence_refs": ["evidence:operation-0001"], + "replay_safe": true, + "stale_task": false, + "lease_expired": false, + "replay_idempotency_key": "idem-replay-alpha-0001", + "created_at": "2026-05-05T00:10:00Z", + "updated_at": "2026-05-05T00:10:05Z" +} diff --git a/src/sourceos_syncd/__pycache__/__init__.cpython-312.pyc b/src/sourceos_syncd/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2b33aaa8063aed845b632e985fb3fe6a69b51c24 GIT binary patch literal 289 zcmX@j%ge<81iNnj&P)ch($ literal 0 HcmV?d00001 diff --git a/src/sourceos_syncd/__pycache__/contracts.cpython-312.pyc b/src/sourceos_syncd/__pycache__/contracts.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..20a63b1de76610b8ed63b74e4096289f08632472 GIT binary patch literal 23148 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 literal 0 HcmV?d00001 diff --git a/src/sourceos_syncd/__pycache__/evidence.cpython-312.pyc b/src/sourceos_syncd/__pycache__/evidence.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3ecd618d24421a599c0778167664ba49245d3abf GIT binary patch literal 6820 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 Lp7lCdGmQB^FY4z7 literal 0 HcmV?d00001 diff --git a/src/sourceos_syncd/__pycache__/local_store.cpython-312.pyc b/src/sourceos_syncd/__pycache__/local_store.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..60d996296643d46a5855a2b3eed25aa7298b03e9 GIT binary patch literal 23995 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 literal 0 HcmV?d00001 diff --git a/src/sourceos_syncd/__pycache__/reports.cpython-312.pyc b/src/sourceos_syncd/__pycache__/reports.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9aa67fc922755077e1ba0da32d04408e23971ed9 GIT binary patch literal 36914 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 literal 0 HcmV?d00001 diff --git a/src/sourceos_syncd/__pycache__/scorecard.cpython-312.pyc b/src/sourceos_syncd/__pycache__/scorecard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6d67ab5f28cbe755613321bc7820697ada18dd5c GIT binary patch literal 9607 zcmcgSTWlLwb~D4_b4ZF$nX)B&Bw4oUSP#Dx*AHbK%P+;IY|F1Owi%i;l1Ab~nHkw4 zm&7to+QvlyOUR;98n;op3q(QOLM{qK=$C=+hZp@=(!)Z`R7C>pE>QnDQM%i>KRtJb zGo);3oh^zEq;u~*_kHep-E;Xb4u=hc@1MT>Z?3Tc!+wnl+GkWV`0_6xGmSA=7-MjT zh~o(&OyDSQh#SHNB_+coq-5NfFojJCbJ(oZ8{?LQC2UDp!&aqiirW%Yn1Z~SvBd2O zN7$j{t#N0fE?k#zg|p~1DW1lHqPB(`80iWBF4t!Y%<2uLM+9z zu_(_7^k9mo2U6pFjO`zw2gInz(kGK5JH&Hhnm)&lrFc>3c#P%>;xZLYCR5OcOC^O+ zkdUoRRE);rQ9+Q6gB%-Y0A~RlD{=`|wjh{EC0XccIGjvBMteb{Fx(I;h>;N?l?)o7 z0~Z}irUX{5yAh3ZsC$H0CYDXGaBeW2*(@k4ObH!KWjF2m7CLY2jK;@?qdPOLdL^rG zwLPASMdQ`hu?p3cgal~7FnsyvkeSBB3av40q(bA`#v*F1d?O|;S538Z8nIS!T8_c* z5qdqPVXLWjlB@PLFr;?k16a@);?dF&5ffaD2cpGNNhV`@sjF*$SC@>3gC-uWPBtV{ zH+i#?8y91;83-DW##q_P2`M=8L{$6?TSiNG+TS^xO0b>$crwZIoi|hbXs1T)b|IaN zG0zqGn2w56T4?;#F_xCiFku8uAAsRK@Gl$ykjIuN@129U58kzWZ2!P(S3Q#kv2;f-q&6)BJrz8?CYhdrAH`BVlN7>fD_=Z8Lg z`ELMDV=NZNL2ii)Ag!!{Ar1mo$rQgWgaNUMdl-mBA2Ic!tvT*?SuMLMapC+L%{0~)1dgCO#-LDlrD~ zk`!f=0Ae;S$OaAyMx~YPP^BWGijQm-#uJGspML6OxS03`47Y;@DZ47$7?8W9fP^&T zi*thb#>xg)W#bSCnIN0klk)0Ivy7zgVC6n;?uHyhy}KQ)=VTS z#&iLJJ=@`55uT@znZ~l%2&B(`fL%qD0ILgAwFh8V5iG!3s%^9!U==m4mDLomXjRXA zfOS5Df+ApDt6~wyKJ!6a-!mvEGWcBzM3M-7M)BLA%r_yh9f7R~Y(!ua0?i1tAkd0H z8vwgb5wv+j)@t!&MzGm)Mls`A^`H(*Y)eCN2f;1jr3w; zd$F;-nyFMYG=04B!;R%i$=@&?o(h+nnircoi%p&7bsMI$Q`z$RjURV@*jZLN-BD=pM9Y&Q3%0#h>qJgO}3@KKH_x~O;i1)L2mH>V* zwZmj5$kwg#9%E{AvjW z4JtG040=9DJjHiB#rGqVE`Y_4jIwD#wh8Q56l6ce3mN0MIM}}LF%pA}O;=j&L6dAA zjtawZ?mB3Z;pnct-7<;nx@=^|6Jv^siKQ5@JHzaRs<(p1XJ$w2&oZ(}trif4X!NO~ z;E3q6fr{jNp>_}a3+Dmkv2xS)g@%WNMe0Jncgf+qbM5xEyS*Rxeb_fE&WjIirN)89 z#&EGQTzKQU)EJW-%%US%bR;FmSm75XPc>Y+~v2MmRIZ>eK0!b@OwnEV%@+yb@ zXK-Y-UP2brjv$ANI(yV$2~j`p8mvJ??4x|3SXT8HI83wotJVXPX!ZIENKt2lnz@Ww zV$~7IA$^9NNpxuIVT|u$SyL~jc_jMi=9)I9HQHEe+L+g9V-@SPxz^abMVnL9)w8x& zzGbaGFQAvTTA#!@EN5F|99xwtz1STpMsQe+xY~_jIjUye)blG7@b`ULYE?>8)w5co zg}vJ11LFOCB$l(oeAP2?04-PNlNIZI?#vuDYhJy-e!F;nNBpie=5$tRx$1uFUQq9< z?luYcshsnLt91VXj@T}GU%*f97p%vljjpAzDsQfi@nvy=VEj<3XVztL4rc;)4NODU zueC(T*6wg)ZExkb3OSK0fb(U&S=YTipI2Pm5#%mD^J#KD z0J;c={~UD_3+@fc7LI|70^HISM-y&c$x*m;C1o3zybqa1#%bijOOkgHbNd zBWo7=46ge_toRur6CGVL$%$-2K(~O3Nq=fRh%OZqV|-7hjfE@!IJ)ucR=(q)a%C5K zI`n3*Lg!@~z<*%>mB$|WLNj~jeP0Cb2Nt$TJC8iLA?-Z<)3Zfi==)_v$6F1p_+4`= z{{OoBn^AC)mEH5N!5a9}0BSeQp8>=V-0l%Hz*z*&0a$$-BGl-I*!9O9;u^=T$0!&> z<+$4!vU1$J;JA&-ahqg|z@o5>n3gRuNH~bEsMj3CSpQcvKz^RE7l3-?f%J?xfBuWh z_b)GuNPAB{3`=`26|TIwc!eomVG3+Qx{@sL6VjE5yY6Bj{k?#$fwvm=;dg!e@cZU{ z5IPu3#kp8ocByHEVPl+fLza#4XcF$iB)YpO`&dD65kz$BTM;Vq0+W0ua*J%eD zQIAjd=yZn&mP+DUT!mr+kCr7n5UWSjKpQLY*AyH&kBH7kj*7a7rN%*yWKRuSMO3cJ zc&gEKS{>_9#;oEFWhh!_jzd9<8X?lJ-D}2$f-W9T4CB!qfTs{>MBo$xhzTHeIG*59 z5Qu*h70K(VR9rSBxFmq+glvc=(`twWsZkyUP=bCG$U)J3K8L#4mB>2iZWPN`h^fY_ zT2Kch#yuosK?~oeS(D`3nm_%uyJ^wgTy!_j z?wBVe_wIb(lG_J9#q9o)FC@7`tCal#ur;%pQXnn))A`VEPF*Zqy1IBNTD%l3Tpy7x zjg}H`l}_=MB}~kDB;SrjUsuuBRRFK$T*-H$FpF6cxAA7Ww0=mER6Be72$Un z=Iw!6KG=Ll1BKD)Y-sAv`4Y50^%grQX#0Vr87%+;z#fbJ4fA=-WF#45O6lepDFG zPE?3g!Lrh}h4K5@(qgV9*n_lQ0+HTV#k zZJy;mO?;A=KOt>7R0#Cw?c2+A$9(f6x-#01xnv=5NUz;errYP&KcWvz4L*QDT4%57 zb2a-Nru@+-9hk$FKUyZO?+;9RCa=w2FZ#Dhj$n}tRM}K3sfgYVVmTcW6b9dRj{`IL+MTC*D02(swod_??!SxwrkjQIx6yVuyE9#~s*^;T`199a!N zWl7Pg?M3r#d0UobY@=`*0$ghuY81@On)B+R5gZfU+DL2c+rc=sIkdHmc(p#&l+hpB zgtd0-()z=!$c!rA8naddOg^opwu&{!*TY6XV0^E(7P0;ZkMGm^z-i$SwfBd56h~kS zjG+1rTTxE&5EY|}?5S$P+fZ&h0?LCFvgnyWf)l{?AFA6p&ogsG6$|#wQ;LeVZ zArFCNYMQA}gZpX4boU@%jZY)+V+3v@kOh!&tF8~t2{dxS;2B?CCGZHwCsB(n$_<}R zj0+-tou#8mXb8VEV0ju|brWTAOOOxucAPqjZx#*6e#P8_By z%@n61(^!4^teq%zeT0R(4x(Mgr+Bl~S{gl&!n>9Uy?ekjgh628^))&+#wHnf%1CiZ z)$iJiHlny(G|C}|3?4|(Is~+iiX)~BW`su+?U|P!Mhz`I`_?$e!|>+HK`7J_kS0=` zpNhYu|Nf!c|08IEd>&ypTsPstBd|Vy>{|kJfnhzdK z>?~WHcO17Jg+LbsNgD1qEW8Xsl0sK+q5f#ea;$82{dw-~+~j4+ys^}>>ydev-oAT2 z{YCD6?!jg01VB};pma_3Jg?>TUl z=>!@orv`2~5((9%R(x^AxmJWo$yHmD{B6{7GXe@0e-MEl0Pq7C?PoJ^?NCGtF@o~L4fQu0CNVt*(#l&9dISMv zPn2JA0GA5touGO}PYKDGtQRDd|#^DhMJ@bD0)N)XLy6xdVfm+}!Oke;!G2l4< zCD!*_tmW63^WQM)D{R|W*w%l?>VJzhe}#1yvF@+Ee^S6)W$!+K%O)Iu6aU775!B@7 o629*D#CjZFj{z(jFe2~-6_@uL@aARvIUIL=H$r%Ek8&XY1C}72ssI20 literal 0 HcmV?d00001 diff --git a/src/sourceos_syncd/__pycache__/service.cpython-312.pyc b/src/sourceos_syncd/__pycache__/service.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d523dd89d33db192e4524b583e7fa16d57e1c0e4 GIT binary patch literal 15652 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 NPw_uQd47zo@?V5i4FCWD literal 0 HcmV?d00001 diff --git a/src/sourceos_syncd/__pycache__/trust.cpython-312.pyc b/src/sourceos_syncd/__pycache__/trust.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d104b02ca34fcc14b6e69a4f90f0c972ec6d6a5e GIT binary patch literal 8223 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 M$4#AVE!EZk0*jhRt^fc4 literal 0 HcmV?d00001 diff --git a/src/sourceos_syncd/contracts.py b/src/sourceos_syncd/contracts.py index 9c63ca6..5ddcbcc 100644 --- a/src/sourceos_syncd/contracts.py +++ b/src/sourceos_syncd/contracts.py @@ -53,11 +53,24 @@ def require_mapping(record: dict[str, Any], field_name: str, contract_name: str) SYNC_OPERATION_CLASSES = {"replicate", "import", "export", "repair", "migrate", "delete", "restore"} SYNC_PLAN_STATUSES = {"planned", "blocked", "running", "failed", "completed", "cancelled"} CONFLICT_SEVERITIES = {"info", "warning", "review_required", "blocking"} +DECISION_CARD_OPTIONS = {"merge", "fork", "skip"} POLICY_EFFECTS = {"allow", "deny", "review_required"} TRANSACTION_OPERATIONS = {"create", "update", "delete", "merge", "repair", "migrate"} TRANSACTION_STATUSES = {"draft", "proposed", "approved", "applied", "rejected", "reverted"} DEVICE_STATES = {"trusted", "untrusted", "revoked", "quarantined"} PROFILE_CLASSES = {"personal", "work", "client", "air_gapped", "lab", "public_open_source"} +WORKSPACE_OPERATION_TYPES = { + "sync.operation.enqueue", + "sync.operation.replay", + "sync.operation.reconcile", + "sync.conflict.detect", + "sync.conflict.resolve", + "sync.repair.apply", + "sync.tombstone.apply", + "sync.checkpoint.write", +} +WORKSPACE_OPERATION_STATUSES = {"queued", "running", "replayed", "reconciled", "blocked", "completed", "failed", "cancelled"} +OPERATION_TASK_STATUSES = {"pending", "running", "succeeded", "failed", "cancelled"} @dataclass(slots=True) @@ -158,7 +171,7 @@ class ActorRecord(JsonContract): @classmethod def validate_dict(cls, record: dict[str, Any]) -> dict[str, Any]: - super().validate_dict(record) + super(ActorRecord, cls).validate_dict(record) invalid = sorted(set(record.get("capabilities", [])) - ACTOR_CAPABILITIES) if invalid: raise ContractError(f"ActorRecord.capabilities contains invalid values: {invalid}") @@ -168,7 +181,7 @@ def validate_dict(cls, record: dict[str, Any]) -> dict[str, Any]: @dataclass(slots=True) class SchemaContractRecord(JsonContract): schema: ClassVar[str] = "sourceos.schema-record/v1alpha1" - required_fields: ClassVar[set[str]] = { + schema_required_keys: ClassVar[set[str]] = { "schema_id", "object_type", "schema_version", @@ -187,7 +200,7 @@ class SchemaContractRecord(JsonContract): schema_id: str object_type: str schema_version: str - required_fields: list[str] + required_field_names: list[str] field_owners: dict[str, str] migration_policy: str conflict_policy: str @@ -195,6 +208,33 @@ class SchemaContractRecord(JsonContract): sync_visibility: str retention_class: str + @classmethod + def validate_dict(cls, record: dict[str, Any]) -> dict[str, Any]: + if not isinstance(record, dict): + raise ContractError(f"{cls.__name__} must be a JSON object") + require_fields(record, cls.schema_required_keys, cls.__name__) + for field_name, allowed in cls.controlled_fields.items(): + require_allowed(str(record.get(field_name)), allowed, field_name, cls.__name__) + for field_name in cls.list_fields: + require_list(record, field_name, cls.__name__) + for field_name in cls.mapping_fields: + require_mapping(record, field_name, cls.__name__) + return record + + def to_dict(self) -> dict[str, Any]: + data = super(SchemaContractRecord, self).to_dict() + data["required_fields"] = data.pop("required_field_names") + return data + + @classmethod + def from_dict(cls, record: dict[str, Any]) -> JsonContract: + cls.validate_dict(record) + converted = dict(record) + converted["required_field_names"] = converted.pop("required_fields") + allowed = {field.name for field in dataclasses.fields(cls)} + values = {key: value for key, value in converted.items() if key in allowed} + return cls(**values) # type: ignore[arg-type] + @dataclass(slots=True) class SourceObjectRecord(JsonContract): @@ -301,11 +341,13 @@ class ConflictRecord(JsonContract): "schema_version", "severity", "merge_policy", + "decision_card", "user_explanation", "created_at", } controlled_fields: ClassVar[dict[str, set[str]]] = {"severity": CONFLICT_SEVERITIES} list_fields: ClassVar[set[str]] = {"actors", "devices"} + mapping_fields: ClassVar[set[str]] = {"decision_card"} conflict_id: str object_id: str @@ -317,9 +359,31 @@ class ConflictRecord(JsonContract): schema_version: str severity: str merge_policy: str + decision_card: dict[str, Any] user_explanation: str created_at: str + @classmethod + def validate_dict(cls, record: dict[str, Any]) -> dict[str, Any]: + super(ConflictRecord, cls).validate_dict(record) + card = record.get("decision_card") + if not isinstance(card, dict): + raise ContractError("ConflictRecord.decision_card must be an object") + require_fields(card, {"card_id", "options", "recommended_option", "selected_option", "rationale", "selected_by", "selected_at"}, "ConflictRecord.decision_card") + if not isinstance(card.get("options"), list): + raise ContractError("ConflictRecord.decision_card.options must be a list") + options = {str(option) for option in card.get("options", [])} + invalid_options = sorted(options - DECISION_CARD_OPTIONS) + if invalid_options: + raise ContractError(f"ConflictRecord.decision_card.options has invalid values: {invalid_options}") + recommended = str(card.get("recommended_option")) + selected = str(card.get("selected_option")) + if recommended not in options: + raise ContractError("ConflictRecord.decision_card.recommended_option must be present in options") + if selected not in options: + raise ContractError("ConflictRecord.decision_card.selected_option must be present in options") + return record + @dataclass(slots=True) class PolicyDecisionRecord(JsonContract): @@ -397,6 +461,101 @@ class AgentObjectTransactionRecord(JsonContract): updated_at: str +@dataclass(slots=True) +class WorkspaceOperationRecord(JsonContract): + schema: ClassVar[str] = "sourceos.workspace-operation/v1alpha1" + required_fields: ClassVar[set[str]] = { + "operation_id", + "local_operation_id", + "operation_type", + "status", + "workspace_id", + "profile_id", + "actor_id", + "device_id", + "encryption_profile_ref", + "local_log_ref", + "checkpoint_ref", + "causal_parent_ids", + "conflict_ids", + "provisional_artifact_ids", + "artifact_reconciliation", + "policy_decision_ref", + "artifact_admission_ref", + "ledger_evidence_refs", + "replay_safe", + "stale_task", + "lease_expired", + "created_at", + "updated_at", + } + controlled_fields: ClassVar[dict[str, set[str]]] = {"operation_type": WORKSPACE_OPERATION_TYPES, "status": WORKSPACE_OPERATION_STATUSES} + list_fields: ClassVar[set[str]] = {"causal_parent_ids", "conflict_ids", "ledger_evidence_refs"} + mapping_fields: ClassVar[set[str]] = {"provisional_artifact_ids", "artifact_reconciliation"} + + operation_id: str + local_operation_id: str + operation_type: str + status: str + workspace_id: str + profile_id: str + actor_id: str + device_id: str + encryption_profile_ref: str + local_log_ref: str + checkpoint_ref: str + causal_parent_ids: list[str] + conflict_ids: list[str] + provisional_artifact_ids: dict[str, str] + artifact_reconciliation: dict[str, str] + policy_decision_ref: str + artifact_admission_ref: str + ledger_evidence_refs: list[str] + replay_safe: bool + stale_task: bool + lease_expired: bool + created_at: str + updated_at: str + remote_operation_id: str | None = None + replay_idempotency_key: str | None = None + + +@dataclass(slots=True) +class OperationTaskRecord(JsonContract): + schema: ClassVar[str] = "sourceos.operation-task/v1alpha1" + required_fields: ClassVar[set[str]] = { + "task_id", + "operation_id", + "operation_type", + "status", + "attempt", + "idempotency_key", + "policy_decision_ref", + "evidence_refs", + "created_at", + "updated_at", + } + controlled_fields: ClassVar[dict[str, set[str]]] = {"operation_type": WORKSPACE_OPERATION_TYPES, "status": OPERATION_TASK_STATUSES} + list_fields: ClassVar[set[str]] = {"evidence_refs"} + + task_id: str + operation_id: str + operation_type: str + status: str + attempt: int + idempotency_key: str + policy_decision_ref: str + evidence_refs: list[str] + created_at: str + updated_at: str + started_at: str | None = None + completed_at: str | None = None + remote_operation_id: str | None = None + conflict_id: str | None = None + checkpoint_ref: str | None = None + replay_safe: bool = True + + CONTRACT_TYPES: dict[str, type[JsonContract]] = { ProfileRecord.schema: ProfileRecord, DeviceTrustRecord.schema: DeviceTrustRecord, @@ -408,6 +567,8 @@ class AgentObjectTransactionRecord(JsonContract): PolicyDecisionRecord.schema: PolicyDecisionRecord, IntegrityEventRecord.schema: IntegrityEventRecord, AgentObjectTransactionRecord.schema: AgentObjectTransactionRecord, + WorkspaceOperationRecord.schema: WorkspaceOperationRecord, + OperationTaskRecord.schema: OperationTaskRecord, } diff --git a/tests/__pycache__/test_contracts.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_contracts.cpython-312-pytest-9.0.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2fa55d06e74b1d6c07b64c1cd43de8e09d3f5362 GIT binary patch literal 11248 zcmd@)TWniLcK4E(Z&Gi|dRVqB*|I2Gl9kx8<5!|sk{?MFH+Intx4T@L_sXJ7^0ITU zY>OeW+B8KKY>Q;k6j9r>b+G}uMvP)xpuqm-r$7B6O?jnWFhGF~Q1qvWs|5nMKRsvW z&fF_mmb{x3XuAV)o@dUSnKLuzG54Qiv9JW;1?#^upSMZUFR;Lamu2L2k1RQGz{r}NF$K;K^ld$AJQ142Ow>L z^dO{-kPblF1nD72n;{*9v<1@mf+xP~-*L#eY(-M}yl$q9xo zb@HZ`)`@EE8NZ?B%{Q*kX=(EsN#%`H8avpn4d?azOg57??Q#stCIOI1LUdv^PiVI? zY3&-BH#kJwrM#)#AQ^LE@)jVr`?bDN&d84n&nH!w znbmwNmCdLrQ%k1p$rW3)JE>eDs~Mxb$~YH=MSa|D&~bHR#DKwu3ozQ~t+7O{(FKdXZdU_o0rd-S%&YiVGTE# z7$a?;H#`865B_jB$mhAbz`>|^Kv7g&UrPt_t9D$0d*fRoY~@eqUz zUCaqsR`+6>Vln4%!8Zj}<_pEsvQ(0cw@tCUbBK9UP{lH<-XgTAit00gDJ;z4N!%1Z zwad38W0wne!zM5&mLyIIaYHt32bq^uUq&waC8;c%tsK%d4v3`9q4dPe-;vGT9E#Ih z_LQUv=>z#Y?SR{BcJlVQE}nDJl6S7hDe;`@zaQW;;%Qki_wn|UB5HjlUrD(+2qXDR ze&e59^!IXTCsl(b|BS4Lu+NO=Q~P+R;ctu&LOAZo2LTCu2&<8Ai~_MTJ5nGZfr5w{ z{n$hILO_kF4W)p+GlI{&GlHBWJbg!2ktd$HerNr8uB51qxGgxW47=rzIu*&pvrI$D za}#z8<>`YRc-lmH+U)M@;%&<_uWYAloGs3ngP&7P+YYftuom2Od6pP3@}S>A%8 zlDJWJ7IZrgB*c3jOG7OEF zy$1&i3rFLI<%PrwasaX)HUa5_=$`!8bM|apF1FZ^y=TwTPR~K75La?k%g^L$+(U+; z7ovNv*x(xD7#ri5M2o192qJ%4fX_3^7#)X=nil65uW zt$;-*Ff}rOgDE$%`gJS(a$$kWtQ4q_$r+vGQf87-kTY&rQD{zHpU-5?Oy02kSv{S~ z8dgWrnAPXAYLaLLl0-bIY!YRs6-pYZ84atghH<)9piMFbwUuLs6$V|6YM_?a&`g5I zhaAM{5Jq^b11&I8mJX2CbA=SqEN@Cx$q8tThsX%RM36W}@)$XZHA(^0YVsUp$(Vp( zvl(-PKkqIaH$nj0%L9pH&wjQjKmy+fNzUdZ=O1|$AdkY|AfPjVFmK%T;my_dfol7} z-8;4RqqWAd#f$$EX?Y*GFAH>RO)o>*+t6{^^C~>Drz%wdS)+{(9TNyEC=6;ib@8W5@DTwXttCh`)!y zzNLlbDOM116>C|k=43_lgJ2);0?j-tnjr%S)`D%T!H#OMW4Zlqu-X~_d2r~<5D@vx zs1)6^T&hM6uPXR^s2pC2bT5}!NyJrJ&5AWwUI08$4)adX&a9Wr&dr=_LaPO@yu;;HLLzo5EKpC#}P)Z zK3j;3lAqJQ1DsHe)SxZ2LuyD3mqNDC4!eZ5L*-WLT$qo@Qxw{F)^ZHNlW6)$t~vo4`ojxkFCsugBpxGpby=YqqUWg7g_@+K5dqM#M_MpCjnM=~FJm;0(JL6CthRjW ze6C=`BbJX&)A9oOmXFTF3ezg;)3G9KTC5PJ?REo7ZYGzHGEvM5wp?a~=g4Io%q8Vd z7e--jqa~T_kVJv zGCEo7o2o@GEKb(Ldsf2()$qV4rOL4jwL=$c;Y*9>>(SoT=ukB}bpK4{n(eijap0p;;VI0_pgy%AIw%G`zp%$O8V(#8acnJ;O`-? zVZ|CPvit+uh2`Bbz^p~uKe$tk^j4I~%7ICYA%9@98kt;G@b{3{uwsoCS^fd!57=O= zM!>8ITBj=gQx#>3(mGX*Osy*Td&p~8u||t5{{Zs+HW;fBFm)yPhnIhFd8xRfbn*P# zD@r%d7auBJPl|E8{;3!bLkwaZiYz!D4#!Dkf-k^s75)p8x~Q?%6dnpw2s~4WF%vgC z4W>DkHJw%`dv^G$}))WZVuxT)LyVBx9}G@S5a9h zDRX#6H-)m#Bb9u7EVL_2UMkE3rGW7tCfXY`%%Rb-DX5-O0ED?0`#8c}RZP^hX_!Mh zU{l~@QSXg|A3PPCgX7HrJI;Yb2iK;NmS(jDN0+5!HkZ)!$DH0(Gd0SPnm zss4`@>V*iZ0r1rXZG|ReqESbKYc6QHYzn0iS7dlOb-YRUodGCZ%KU#!IfIGZH?bmM)8~@7XAv5u z6nP1wmoXa02nBFFYz1{U@p!P4?MdTtz--gI7WRH{Yh#F=+ zzi8ln>Bv^)Yl)mU2t@n)7 zdk@zK&(wQH>%AlOeZ%!br|XAbst-=ohhC{4Jo%_I*63fn@a0~qf9P+A|7Q5dqwA8_ z7q15QE(Jd5K~Z|6);zG}Uu)`FZ8}tKI`k8Nt!Z@0x7OJ9e)+v}B{=wA`G?F)2cDz!Y}`*bH|V2!!SXZT61cfi8ACG&QcB%B_hh03BqSlBWV+myC?S)yvJL(~hdGXR{jR(7d)4pE7ysCbRiO2gCQH93sSvY$K<-hZm=o&Qz5S!Ka_R zwi0@ATQ;rZ_P!q-m%X3KzVYx=*z{Kb^mI0<-W$j&JV^$MjE%h6d!RCKqSA8`ICQS6bU7TFUJ0GvmP7O){atk2>;25@8;?GPL;w2^ zQVP}t@3)2Pn&sDKX5b>)h7ZT+8DV--l0k3B1RLMGFh&^};5r;9YB5;#wcUGR=}%Ub zHfQNCu7r+nyY%F3!1aIi;`$!YZuttSd?sxL4Ll0)4a+twev02p^cxGX|5=aiR-MC; zB^c`u;O}1d(OT>%tb1oKtox~|((bJL<(1Hh|G(>g9oC`Pj>f=Ad3BmK*}E@TP7f~@1s+-*lA$Pz7vb!oanA9djwx9 zN6xH-&i=ZL`2>d8Swx@{K=u7ff&#w>aO-1VS5O3}$@hQ?xQaA#LxV3|40t31SD_W- z<``V*@F7`1FVHW|in}({15;`BHYe%q#*?(6`*z2PVJ1HU>i!h|2C9uV*X+YIH1^X| zmH0V0Q7=`M?&V8WWx&P0^DCi=ZP`af$=^rE{oc>~zVXJVh>~|;SorKvRy`TH{LG&j zJ)wJvFJgXu-3#5e#ZLak5I;oX>!@P)eBPKZ6zF@b^VG~tb;=*GNuNa_WABtMWcG7! zGGo{(Grafy2@vy_@HbwBXi-{gXs>iUUx^)CoN}??(n{#^_AEfP@NV?D_aA-d0zlp% z6yX8aB>0RCFXVYkK}#DRvvCVp%Cw%>;zL$AnVgx&2lQl;pfYR)`Fk=!OV{d5GAm(( zd41t-7$MqixbfjNSyWj8yN=n(2e4xRAA7Tz>qLPPT`a4EFL;uEqBX+pVuP9L)EK7* zI!=Yz@M!r`+ngEgF)VH}>8bhNf(`gIO<&LHJ2X?9U&XrbVua=|HAe_)x>Thi?_v&R z48a?X9uUfodlET}6>*3j2hV^nVm_;#BX^-F!{1nh=u59G%b!bq|0YTAO1~fZT!K;3CISM2*+)sM><^EW zWNo>CkmL}fDUwSX6)@1CCkajgAB&!H4A9H2R;nD<1q$?#_SVKl(YgiNnfLfeO5RB7 zp@$Ny;k?J0;k@Cz`8@qPl}bu*{p$0779vqe`U4Kc72=5ehye1DL?j{?rII`?%ZP`H zq3JNYE2T(2Buk~}bj*DcpN_L9iRlE~!^LDtomNX7(;cPMbgGn|P6M6tjx?Pi5rCZ} z3b1QAl#BfdUzw8~RWFw-mTna)W%E`}aa2;6HB3vJH!Ec)Rnp%yG-I(qjB?&^x)$|f zf#_CXs%ME70%L8aP&D#)e%dW5K?!;TbWHi}vaAv++6eRwg??{-v368E=cBHfnjA^1~Z#WG3p z^;;>yX-k5(9)s1zJd6A-@UE}6NE&(mdy9~al@S`ucM8nE-*eGL$vhU&quZwtnAIUL zu?`yKX!Bj3!%Je|C5O;U$YFP{9N~Lq;b1%EDBCH$|KB^sIxM`(mW7q-%B%!?L~-{> z!cLg`?~w#Vjbq5;?-6qRz@8TLea-QTuPSniL8719`V@9-qy>_I%JgUO? zuJsE6BSpPb1L**Sb#+RF}`^%YLX*zYfw7gy{ zYVe6EepQ_sPC_&F83SjW^fhKrsC-_cv_hR8ZKgs?x}_Pnt3|!c*2GQI0W!5W779hH zP&S=tu>xXEr&lxQDhoxz6=T^BdFWcsFaEV_~$zp99#?zF7N?Y z;@RNfxggn&C(j3;Tr#oJ$a>e~>!Wj(k}*mb%4LI&E>-B8qrxM(OYa_{;mlEHKH;Y$ z)n#X3$Bec_^{NT>bscZ1V9mMSM=yW^SOS^N5>x@{_ao=URi4fHhz|IN4Muw-x+ti5Wg@u_4Dj$oReIpPcm` zaAZT7yg%nX7U(8O8gyS0WPmr|a=+75`#v6PszVLs+4~Uy4Rr|a>a*Jl{_^=hgJ%SBoX!TX^ zxj;9WG(HU!YkeNQhXBbV@B?W_Gl2V;H3Po^?-0$v6ODjEB7P$fNF!}ZTR(|GqY$;B zSzzT*{0h9t!q$UbetBOHlf*lc9ez;~WoupWi!s|vUiF9_F+U_pqFNZp*){K#uVO~> zq_E<5&obGH3oel$p#bnX+9c>FIUxP2d-M1!*oQ76v>+XK!*1*16;c6S3}L&juWVhE zdIXYf>Q?QP2r?tpO0ke%9wtV$a;unN=O}$Ll(?hW)}y=h~`8g z+ZGJM1L|`yllK}&7+^bi5nIfDKwg$)@GM(;9qe6)mdchFrJu+jK_~rQQjwPBUxb(B zT&Q-&i(Wi!W=X{`v(O1=Apzv)vf}ZrbqUgbXylv|F)&G(*s5o<^gP@iC$7vIWk?qE zYHea?gmfEaSh7Y8%g9@%WW_s!$CVKu`=}x&e6et0pJm47=kX;${0?VLIST8THhiMkLF=Jj}$voG=^Q4lm zKxB^-!>A(0au&S`r1TjCXAqo10DZSazm5RyOHTvH#R9o4&R1p-C(2C}OiAbIATkXB zFmXS+xry1&89cbr=yhO52Q_~VU`2XxeB!fX&CK^#Za&OF+-sZ}YrOESR_0|K_q<=f zQ-@fXc?NRJ>EV@|?@l+B-qqfw()Td+^y=+aYGCF1=jo}>7B|yV4Q1-Ri;eVDOGUJ) zPHijxZwnvtiI$IUDpSC~r#ArK$piC1OTi&`dZ~91@-O(Bf!HSp4ng2pBoO;Te(Zx5 zO}giv5Zg=oeS3(l(e|RrmEQ0-*L`lq#gY#Yt;xq^aJw&j>d&fH4JN$r#!H}%A<(ob@LZ^NO^fi(*5nKl~v*4lS>d3FU2diK`Z zPKfpGL#GNla>#ARljJZtVkZmyU^8`K|40c*;_muK0{o++u0n-y^j7VpS0O+rrWfci zHe7+~ph}_rFqY_L_)Il5K*Q>R+O@sYAf!K@83FM#z=m0mBySGU+!F zdkKM;bm_Nom_u+D!7zdm1m_Tp0x;3r-MqXbJ)hZ`p7CfOT0c1Mr&__(Sc${_O+a4( z0odl6Z?mTF!SUxmeXW`KuA7@bt~V}UZ)I-4P=)Nf*4t7qti1R@&AdN;XS|{G-WmVV z1l}gLm0s_+rS!ggiH}-7x(VnwpWOg-2M0{U+{0AY`_p%(SCyZof117@TTQom$6Bf9 zSFS%$yFM6hs@aAz{_)MV*PH$D>hT7Q`^TFq$i&~4nBl_~8*+RD@P3z!&v-Q0ctQEl z-%tkELI4_S|5~W24sI*>+j1xP$b(H~kTqUN(hA@n!GUDD0@%!x}ps8xdQE9hq>)M_*;$&&~x{4ab~?zJL#~MB;^X{7R`p7K+AI`Wnn( yZEs@L`RA}K%fFNQzL2DMq_@@IO6nKVOiP;iGMbQwzwC|5Kad}F$K-CtVAw(ud2JIu?KLJ z<5C{Ke)a0r>-y;Wz4z+RU0q2D%Afx7pZq^mN%|XBf)e43{Im(omy#t}vLhAbtSlq1 zI7&9co@ybQQ)HoGN?Ph$;NfmmsJ&cb# zy9&FryJbm{?4;d$U*_*$)Pn)Fp7(ur@pwxXa8}{~u-Sc9x7Be+&F;67ccg5er2#!) zbpkzTbpd^&qUfowv6C))nprHCT+_{$igXt0>W8Mg0MA`FOeb%du5H*i@|Io9*&y8a z;iaEkJb%@A|HAo;moHwLH7=i@x$x7o(6U>o(_D$zIg?l*-7lmrS)#6C*||K0H+_v0 z%=xp#fk-jfQmS&W znmGk_2LA5*7G>$O^pf`Ee--Ig!C|UX9 zysmm`scaWL^=FqZedMW&v;@3UGA&*4)H1A{7h5okmSa4x2rN51U=v$OOLGp|ypywBR$0L7?o{8sx z7bOlH+k(%5hPS{HOSl4?U@7>Kt;kimwKdm|fkde)^!G2{3@cJq=449^_nlMj!|}rs z>WhQiQd%2nMP2w1cvEQZA)p*Aoxf~xJR2&Z0}K&t*90It+EUs z-%7-aTZw8UFSDBJ?h0NQ8prNH)_PXe;Qhh#6WNk($tyCfs$_NW6}OTr(W+dHiq&>P zR@;2~{%UL3=YL=2knJ|>P>lv7wL1N|$E+@^yBhQ79^diY z=es!nilpzFT|Q~wG7Duum63AE$>%B~)Xo7i44d&SunXor z`I#~`rOV5^-#%8ZoYZN0YATKFm`(|PH2_=@Xh1Ty+-*{76PGEB>lB6KUW|f+SfXAG z{6OBe?rpbqN~iY}(g)VC$EjywGpD(k(_W0&Cc@=geC&o}7HxyrzgWrx#2NOjGE6M* z8uP>~x_XiW9uCk;zE`d=JT!^7%gC9I1Kr9bS1OcEVtXA1HRo)Uc%7hWTwBUJZoUZP zbxNR2y*`63l$IQe^)lw2(lygDie|y~y3exdf=jwUNQrp8#$1UMOqY$uEHbyKC%i;GbXQ%K)%Qu!9s4BV-2#gtpA=b9 z0Fygrm&XJq2O)A>R1O*$DwBP%%K)G!d<0JZ(r3~fluzjNn2*zXawULjfKY-_F2g#xEbTH~^j^W1^V@-#ZkK0mm>7VMiH+1xp}6EXWI}Vddu`(k1Ufzk~2ke+R_J zvx|+?k8jUB(hjX&X=q1l>d^WTAT{mi`jNUew5j56!x!+HpmlYqsU70gMu-;*57nX7 zE22GMo6H&)gU0$1p)VLvAsBqW1{GKYR<^^?YfxEi7v%2i zfxxG9)3#bbLMC7b2!`im2+2E0eu(5#0WS3?AzvYm*IasHToSP=M65p$AG`8{Jg#x8VzTP0+eJ z+SK4sqDmvg3x$X3=-Q-c57;KN#>JrVKoR>z8E2uVV$+Ur|EQOE?1f4#x^2 ze~&@_9y~Z(ws2p|L{xfhUKNq>*4W z6yP6P*>T|0LEcC87vUcn#@3TaMuAWaoc)|Fo#r7=njxYX^!AvCOhYHcWBM;35bX5q zsqH=6=s9=$;v=npHQ&&V)zr-TIUqId*!sD;mf2MCx8VzTP0+fUX=?qv+6eJN;h~yY z&5QPcZ8B?I3>xd_guY|cny zxG&?IokBZtypnbD*NBR>{lU$v!ERnNL0rm%>%CiAdE(9PNW8u+ZDM-~`$qR{X=eVA zIc6^bQ_DLrF&rK(IX7$^6oG3SN-){s_Z*ndvmltcO!kG`lh{hJkLp?C-9pJ)a_lqY zW6;Fgar$#0-$Z0tek>jNrzG8xKGhyeeSeq6A4`*ur3s*ajcdQ2`Se$t@&09 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_local_store.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_local_store.cpython-312-pytest-9.0.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..053aac9539e00be366f006199ea84e4943a58278 GIT binary patch literal 24038 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 ZYuXO%qR=Sx-)oHur-c9N0VliV{{q4a^ThxF literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_policy_hook.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_policy_hook.cpython-312-pytest-9.0.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0bad6b5c754368ec6cf6514cf9c0310ae165d243 GIT binary patch literal 8607 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 Mr-zc_4@BnkU(M>3ga7~l literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_reports_contract.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_reports_contract.cpython-312-pytest-9.0.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c54cd8a01b5bcebe797593c8f8af333c8a901f46 GIT binary patch literal 9748 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 X-3d7_-|J1v&&vPoPs%@%nce>ZPT?{& literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_scorecard.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_scorecard.cpython-312-pytest-9.0.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e788ec9166a07e9cf67ee56ca801cd1aab2e48f6 GIT binary patch literal 7143 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 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_service_examples.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_service_examples.cpython-312-pytest-9.0.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bddb6f5a546bb86e6e3b81726cf1880cb5eb2e88 GIT binary patch literal 9570 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 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_state_integrity_examples.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_state_integrity_examples.cpython-312-pytest-9.0.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..36232fa00b523c4191176de12f4eeadc7b9d0555 GIT binary patch literal 14114 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 P

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 P None: "policy.decision-review.json": PolicyDecisionRecord, "event.object-alpha-created.json": IntegrityEventRecord, "agent-transaction.alpha.json": AgentObjectTransactionRecord, + "workspace-operation.alpha.json": WorkspaceOperationRecord, + "operation-task.alpha.json": OperationTaskRecord, } for fixture, contract_type in mapping.items(): @@ -132,6 +138,22 @@ def test_conflict_severity_validation_rejects_unknown_severity() -> None: validate_contract(record) +def test_workspace_operation_validation_rejects_unknown_operation_type() -> None: + record = load_example("workspace-operation.alpha.json") + record["operation_type"] = "sync.operation.unknown" + + with pytest.raises(ContractError, match="operation_type"): + validate_contract(record) + + +def test_conflict_decision_card_validation_rejects_unknown_option() -> None: + record = load_example("conflict.alpha.json") + record["decision_card"]["options"] = ["merge", "escalate"] + + with pytest.raises(ContractError, match="decision_card.options"): + validate_contract(record) + + def test_unsupported_schema_is_rejected() -> None: record = {"schema": "sourceos.unknown/v1alpha1"} From 94dc0e0cdec16507f243800c47fdf613cca565c2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 7 May 2026 00:19:33 +0000 Subject: [PATCH 3/3] chore: remove pycache artifacts from commit scope Agent-Logs-Url: https://github.com/SourceOS-Linux/sourceos-syncd/sessions/744c639e-1999-4873-80c6-cbc4b6f037f1 Co-authored-by: mdheller <21163552+mdheller@users.noreply.github.com> --- .gitignore | 2 ++ .../__pycache__/__init__.cpython-312.pyc | Bin 289 -> 0 bytes .../__pycache__/contracts.cpython-312.pyc | Bin 23148 -> 0 bytes .../__pycache__/evidence.cpython-312.pyc | Bin 6820 -> 0 bytes .../__pycache__/local_store.cpython-312.pyc | Bin 23995 -> 0 bytes .../__pycache__/policy.cpython-312.pyc | Bin 6687 -> 0 bytes .../__pycache__/reports.cpython-312.pyc | Bin 36914 -> 0 bytes .../__pycache__/scorecard.cpython-312.pyc | Bin 9607 -> 0 bytes .../__pycache__/service.cpython-312.pyc | Bin 15652 -> 0 bytes .../__pycache__/store_reports.cpython-312.pyc | Bin 4304 -> 0 bytes .../__pycache__/trust.cpython-312.pyc | Bin 8223 -> 0 bytes .../test_contracts.cpython-312-pytest-9.0.3.pyc | Bin 11248 -> 0 bytes .../test_evidence.cpython-312-pytest-9.0.3.pyc | Bin 7009 -> 0 bytes .../test_fixtures.cpython-312-pytest-9.0.3.pyc | Bin 6432 -> 0 bytes ...est_local_store.cpython-312-pytest-9.0.3.pyc | Bin 24038 -> 0 bytes ...est_policy_hook.cpython-312-pytest-9.0.3.pyc | Bin 8607 -> 0 bytes ...eports_contract.cpython-312-pytest-9.0.3.pyc | Bin 9748 -> 0 bytes .../test_scorecard.cpython-312-pytest-9.0.3.pyc | Bin 7143 -> 0 bytes .../test_service.cpython-312-pytest-9.0.3.pyc | Bin 34035 -> 0 bytes ...ervice_examples.cpython-312-pytest-9.0.3.pyc | Bin 9570 -> 0 bytes ...egrity_examples.cpython-312-pytest-9.0.3.pyc | Bin 14114 -> 0 bytes ...test_trust_gate.cpython-312-pytest-9.0.3.pyc | Bin 8789 -> 0 bytes 22 files changed, 2 insertions(+) delete mode 100644 src/sourceos_syncd/__pycache__/__init__.cpython-312.pyc delete mode 100644 src/sourceos_syncd/__pycache__/contracts.cpython-312.pyc delete mode 100644 src/sourceos_syncd/__pycache__/evidence.cpython-312.pyc delete mode 100644 src/sourceos_syncd/__pycache__/local_store.cpython-312.pyc delete mode 100644 src/sourceos_syncd/__pycache__/policy.cpython-312.pyc delete mode 100644 src/sourceos_syncd/__pycache__/reports.cpython-312.pyc delete mode 100644 src/sourceos_syncd/__pycache__/scorecard.cpython-312.pyc delete mode 100644 src/sourceos_syncd/__pycache__/service.cpython-312.pyc delete mode 100644 src/sourceos_syncd/__pycache__/store_reports.cpython-312.pyc delete mode 100644 src/sourceos_syncd/__pycache__/trust.cpython-312.pyc delete mode 100644 tests/__pycache__/test_contracts.cpython-312-pytest-9.0.3.pyc delete mode 100644 tests/__pycache__/test_evidence.cpython-312-pytest-9.0.3.pyc delete mode 100644 tests/__pycache__/test_fixtures.cpython-312-pytest-9.0.3.pyc delete mode 100644 tests/__pycache__/test_local_store.cpython-312-pytest-9.0.3.pyc delete mode 100644 tests/__pycache__/test_policy_hook.cpython-312-pytest-9.0.3.pyc delete mode 100644 tests/__pycache__/test_reports_contract.cpython-312-pytest-9.0.3.pyc delete mode 100644 tests/__pycache__/test_scorecard.cpython-312-pytest-9.0.3.pyc delete mode 100644 tests/__pycache__/test_service.cpython-312-pytest-9.0.3.pyc delete mode 100644 tests/__pycache__/test_service_examples.cpython-312-pytest-9.0.3.pyc delete mode 100644 tests/__pycache__/test_state_integrity_examples.cpython-312-pytest-9.0.3.pyc delete mode 100644 tests/__pycache__/test_trust_gate.cpython-312-pytest-9.0.3.pyc diff --git a/.gitignore b/.gitignore index 32ab46e..34e02a7 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ .env .env.* !.env.example +__pycache__/ +*.py[cod] diff --git a/src/sourceos_syncd/__pycache__/__init__.cpython-312.pyc b/src/sourceos_syncd/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2b33aaa8063aed845b632e985fb3fe6a69b51c24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 289 zcmX@j%ge<81iNnj&P)ch($ diff --git a/src/sourceos_syncd/__pycache__/contracts.cpython-312.pyc b/src/sourceos_syncd/__pycache__/contracts.cpython-312.pyc deleted file mode 100644 index 20a63b1de76610b8ed63b74e4096289f08632472..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23148 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 diff --git a/src/sourceos_syncd/__pycache__/evidence.cpython-312.pyc b/src/sourceos_syncd/__pycache__/evidence.cpython-312.pyc deleted file mode 100644 index 3ecd618d24421a599c0778167664ba49245d3abf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6820 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 Lp7lCdGmQB^FY4z7 diff --git a/src/sourceos_syncd/__pycache__/local_store.cpython-312.pyc b/src/sourceos_syncd/__pycache__/local_store.cpython-312.pyc deleted file mode 100644 index 60d996296643d46a5855a2b3eed25aa7298b03e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23995 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 diff --git a/src/sourceos_syncd/__pycache__/reports.cpython-312.pyc b/src/sourceos_syncd/__pycache__/reports.cpython-312.pyc deleted file mode 100644 index 9aa67fc922755077e1ba0da32d04408e23971ed9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36914 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 diff --git a/src/sourceos_syncd/__pycache__/scorecard.cpython-312.pyc b/src/sourceos_syncd/__pycache__/scorecard.cpython-312.pyc deleted file mode 100644 index 6d67ab5f28cbe755613321bc7820697ada18dd5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9607 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 diff --git a/src/sourceos_syncd/__pycache__/service.cpython-312.pyc b/src/sourceos_syncd/__pycache__/service.cpython-312.pyc deleted file mode 100644 index d523dd89d33db192e4524b583e7fa16d57e1c0e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15652 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 NPw_uQd47zo@?V5i4FCWD diff --git a/src/sourceos_syncd/__pycache__/trust.cpython-312.pyc b/src/sourceos_syncd/__pycache__/trust.cpython-312.pyc deleted file mode 100644 index d104b02ca34fcc14b6e69a4f90f0c972ec6d6a5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8223 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 M$4#AVE!EZk0*jhRt^fc4 diff --git a/tests/__pycache__/test_contracts.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_contracts.cpython-312-pytest-9.0.3.pyc deleted file mode 100644 index 2fa55d06e74b1d6c07b64c1cd43de8e09d3f5362..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11248 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 diff --git a/tests/__pycache__/test_local_store.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_local_store.cpython-312-pytest-9.0.3.pyc deleted file mode 100644 index 053aac9539e00be366f006199ea84e4943a58278..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24038 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 ZYuXO%qR=Sx-)oHur-c9N0VliV{{q4a^ThxF diff --git a/tests/__pycache__/test_policy_hook.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_policy_hook.cpython-312-pytest-9.0.3.pyc deleted file mode 100644 index 0bad6b5c754368ec6cf6514cf9c0310ae165d243..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8607 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 Mr-zc_4@BnkU(M>3ga7~l diff --git a/tests/__pycache__/test_reports_contract.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_reports_contract.cpython-312-pytest-9.0.3.pyc deleted file mode 100644 index c54cd8a01b5bcebe797593c8f8af333c8a901f46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9748 zcmdT~-EZ8+5hr=8`=WHRKK&IZifXw!%aIg+D0XWrH5w~P6RU2LrpW~kbrva$&V2|= zo*bz>)JXl{AOY%^HbS8X0Y!iqL4iEF{R4^ueYp<_atId)&;V`U3b<%m_oXwtT#}NR zoB|jqav+AYyEDVx;d1ACA^koE(tBMLaLa~rHg7#Ew<;{iygU+VkVa1O_Nscf0nEO!j23An{1NxpZx4ZUQ`qVZ#osY(ub zZZDLovLoA`S0(AKVW?3Y#rn_&P5!$A?_m2+2bnopkA-#Tl#dCQ3+X1eYf6$Mf9&-~ zC$=iuue1v;xQpH{O4i8gazC4ZKCek`eDTkc1wjLsp|?6*0aR za&1CRS62y}4GFzn?{E^{+(_kBg8wbHkV}a^>)qZLlGc0lUMKB&A+cjGB!ne#7hec?L4grV zdLQ#bKlj4Cr0@QX%ssKl*QQo}*u&PQz29sb0lMR!Li(p3Gr(<(XRTq+ zY&KmLmM6e+3M{*Eh)EEAZV|LIPI1wrJ=g%ni7n4M$)9!7O`5tgbkNO8$;!_e zZerfZ7wq{ZH>n$!Xj+!p}2H%s247tV%IfG9S9>?=39ZhGlDc>UL?f`9cBX zF~uR|so|zHd;r$C?I5XLs+a}aELm>6PzGVk-J?M?uM~8qrClzRFXanbDPJ_)%vttE z03)2Ev`pO|ZLUm`V*(7*vcon?VWF^k~6m(V{zg@6?GccfbSKYTV(NqU(WO(fokeWKU zcB!roZxXyVyb50OX`Kwe|1>W(1J-YDkl~dHzge*B%oeW(iM30-+03+7Z*8xlGD*E6VNnqt_!tV5(B{_bq1^>jXUm|V^;`EgW{3@($ zL)<>X6PDqf_()Ckt|d-B|9vybq^NIX9$sxgSd zozu%bVx=23OKej%wm42Zz!&r&5SPs5%>u>I(Z`SsAQ?o05o^}pd_e&x@-f_)9RcPA zNrtKKNEhMdv*|1`;3MNS{+0XzY-!)m5NS#IZS1O?jX@C8m;3lqIx1FDjdf@GmXuXo zWpvz4VF#(1FWDCE=>`Vq8Mxg~oxW_8AlA^yh%dBV|YmA=e;cRl$ zS9%<5SU8ryN&mhkH8L}|%^OQAz3=|4Hh5~I^He=E^B)Vhe(!Ym%5FO7!u=y5Bm&Wv zBM)GI*QPXP(Xz$Y!7gCgoN-?;;=97cZ#I_Mp%3B(UgcXl7S zHg)4L)kAWNTyaYe7* z!+@TmSMM)fvw7A5@&`6f8TMoAHm*<~+K9&3?@GjK09l6^%Q}Q~L+f{-%koFU62CkC z`VCnJ{C3&zioYg_8p&Tt*%}zw+!aU&E*ODWIbaP8G$MNOpvIQ017TSQ;zf!!yT^Z0 zU^QYbcD`%{Q()bPTmgPjRYgx#G2+F2Zx=#+{c>-oQRnM>Ib=J+4?%2$T{X|RY~NMy zbnIWXtB%2lI6zzP=vR3Fd>|`_R6oe$mSve@zc)z}M8P_wBexeW4LYeBXh$AoCRXCTc$W zc@*eDD_I|_w6GcET>8DtQ&Qip?{Sje`k?N3eNcr*#oa?VG03^3t0{diLz4S&od_Yx zb{i|$&uJH$@b$z2N$%Gl*|C?yYhr|#?LFct;u$Sh(FZiZ>yNbXrayufaz5(T4|qs2 zv132`XjP2F^K*MO4oLFRX$~40Qbb2kjDQq(wG>x%iV0#4DH99SSTv2RQGn8oFO&=B z?2@}*hb=a(%-ZInp~1Eqk03Nqv>@Fw1xFK#X=OtxBhwOD4~pLn#ZTNNn17(?Pr4t; zBS4}N>tSf|5i4W|!icpZ@M=d0ud1Q$O-<8hKtHR{b8vHsWg81&gi4=<>g6*cTOiIz zG?NVoJ)xCL1xSgMbPjnVP%7fWFiM^Jgxs)ip09Tft{Ll{BlXObhf=$GWVem=fIg4C zi9x1^z5radgJ**y9vfXyx@9Ido%k<@LIHXp`Wz!OOhR z!~$m<1cW&orXV4#?R%=Oo~)6xx6c8osVCvCp4}vPZFm*D)MO>jH&C9lVG1I5)yLLI zQyqdV&_~@YeKhn@_tx|gRD`oZz}Lyhy80NegyfLV`(h0;vPS%N!LDQa2_QZuranDRE4)}i{2f|L&-jwynY8}@pB>`V_@TcWp54>i*$yra zXJH+17M5`0P6E!tl1>u#FTpI1`kpdQ627NS)Ck^LNGEFM`v|CooR4<&U4EvsOYinG zovGl&J7g(pZu&@f8*YjNK225=fSr1#S%OXA891{N2UU%Q&ne0Gqw05gxfrzL-kZ5`t&R@VMTCw6C!Yov5Jj;U9KZ@xeOs!cj zhL2zFcJ})_g}&0R;XJ&(sSufZwBCc$fi9Jn!Y^EF=ZX&q~M zsTr_-bAucZD$p!gzZn=Xa7XQ3fk-#FN$}brgEvmCKnV28oT+0iXPW`*3pL1~P=RK_ z`pv+A0eH^MH|px+YjD;yQX>}{V;6wdfComsuu1UR5H-BmWJS(5fFJY3cnzoP>UidK2JQ5VWVXi6VL=ODu*LB%o+VQTe{s9Zwg~K8lHy$AGZzoySjv-uOg1qX zwr2z3>E`6=Vp*>gj7eGmVa$J9h<*PNlV$nO(%@eu>ALiD^$U`cl`kY9_ZZm|m#5`> X-3d7_-|J1v&&vPoPs%@%nce>ZPT?{& diff --git a/tests/__pycache__/test_scorecard.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_scorecard.cpython-312-pytest-9.0.3.pyc deleted file mode 100644 index e788ec9166a07e9cf67ee56ca801cd1aab2e48f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7143 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 diff --git a/tests/__pycache__/test_service_examples.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_service_examples.cpython-312-pytest-9.0.3.pyc deleted file mode 100644 index bddb6f5a546bb86e6e3b81726cf1880cb5eb2e88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9570 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 diff --git a/tests/__pycache__/test_state_integrity_examples.cpython-312-pytest-9.0.3.pyc b/tests/__pycache__/test_state_integrity_examples.cpython-312-pytest-9.0.3.pyc deleted file mode 100644 index 36232fa00b523c4191176de12f4eeadc7b9d0555..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14114 zcmeHOTWlLwdY&N_e>wbzXfz_h_1B;Nclu4>{tW}-@^eOh`ai(j zl{86{Gt!tmAj`=6GQI&ndy=uhpih>@f&+@35*i4xl<+_pp8iZ^OdU{J8p+g+MF*l| zv4PlFd>}qnKTto`Fwij8IM6uOG|(hVK1o;gZ4YGr?$INnG4At$&5pk6#tBXfv;aG> zL*JnVr&LMO6r=+?Ask{{i`JlpKPCgaw8+QOz-~t(<-KWKYwrcf2 z_fPr~jX%d1BxFlXWwSXmWu|jk;|heydnt1yp;#d;of^*O4Bb+xo=>G|GM`Cht&ovT z<&BY?X>FTGWzt&8)RW%yxHmROO)KU^7$d2?ZUrZFnjV_`ISz*v(r=~4@)_N*f+Kn= zV~$vgF*u@+rHny)xUiK{5dLB6#l+>6e1ed%TCsAR}D;X}A4$?!KR-SS_PZpsOA#ggf2VB8$) zIDKD+UStPzS~@$NAQs8xbr_|K-#T~sy>~CZZ;??Wm$gVHm(mhGi)2${Fa#s1tOlLN zSGBgT{$AHeZcOi@cMP6zdz(P2zx2etJ#v zv^kj+aBam3Y(l zCvQ*AZLh>zpZOu`8OA?BvTB5&OnBUzJf$wfc>2cXA3tq#GX=r8z<(^^!EdFtD=2X;$B zTW(26v_L$uB}M<8&j_rV_3P-)Kicakeq}0pxRbB=PFyGydrq;dvQ-^l z-T0zbjw}p^lS63$sw6Z%$#6W$X6Y1U!}&4(9tdDb{f@hJKd75aR_Z&RNF=athO9&z zW)IH!=Z6=god7N2wugsSnp^H(`@yxjiAwXKnLYrQaNEDcn`hJIcxx%tUpm;26!?Sv z<#_*c2=65k!-EwTGT