loopforge 3.0.0 → 3.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +128 -145
- package/dist/audit.d.ts +50 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +158 -0
- package/dist/audit.js.map +1 -0
- package/dist/canonical-state.d.ts +28 -20
- package/dist/canonical-state.d.ts.map +1 -1
- package/dist/canonical-state.js +82 -173
- package/dist/canonical-state.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +25 -16
- package/dist/cli.js.map +1 -1
- package/dist/cognitive-governance.d.ts +25 -33
- package/dist/cognitive-governance.d.ts.map +1 -1
- package/dist/cognitive-governance.js +38 -138
- package/dist/cognitive-governance.js.map +1 -1
- package/dist/enforcement-gate.d.ts +76 -0
- package/dist/enforcement-gate.d.ts.map +1 -0
- package/dist/enforcement-gate.js +1071 -0
- package/dist/enforcement-gate.js.map +1 -0
- package/dist/engine.d.ts +99 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +839 -0
- package/dist/engine.js.map +1 -0
- package/dist/evidence-claims.d.ts +50 -0
- package/dist/evidence-claims.d.ts.map +1 -0
- package/dist/evidence-claims.js +134 -0
- package/dist/evidence-claims.js.map +1 -0
- package/dist/evidence-provider.d.ts +21 -23
- package/dist/evidence-provider.d.ts.map +1 -1
- package/dist/evidence-provider.js +74 -34
- package/dist/evidence-provider.js.map +1 -1
- package/dist/generate-schema.js +1 -84
- package/dist/generate-schema.js.map +1 -1
- package/dist/index.d.ts +19 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -15
- package/dist/index.js.map +1 -1
- package/dist/loop-compiler.d.ts +41 -3
- package/dist/loop-compiler.d.ts.map +1 -1
- package/dist/loop-compiler.js +632 -273
- package/dist/loop-compiler.js.map +1 -1
- package/dist/loop-extras-parser.d.ts +2 -2
- package/dist/loop-extras-parser.d.ts.map +1 -1
- package/dist/loop-extras-parser.js +2 -2
- package/dist/loop-extras-parser.js.map +1 -1
- package/dist/loop-projection.d.ts +26 -0
- package/dist/loop-projection.d.ts.map +1 -0
- package/dist/loop-projection.js +142 -0
- package/dist/loop-projection.js.map +1 -0
- package/dist/loop-store.d.ts +112 -24
- package/dist/loop-store.d.ts.map +1 -1
- package/dist/loop-store.js +365 -218
- package/dist/loop-store.js.map +1 -1
- package/dist/mcp/round-lifecycle.d.ts +216 -0
- package/dist/mcp/round-lifecycle.d.ts.map +1 -0
- package/dist/mcp/round-lifecycle.js +926 -0
- package/dist/mcp/round-lifecycle.js.map +1 -0
- package/dist/mcp/server.d.ts +2 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +28 -42
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/session.d.ts +53 -101
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +306 -1105
- package/dist/mcp/session.js.map +1 -1
- package/dist/mcp/tools.d.ts +13 -16
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +479 -413
- package/dist/mcp/tools.js.map +1 -1
- package/dist/policy-metrics.d.ts +12 -17
- package/dist/policy-metrics.d.ts.map +1 -1
- package/dist/policy-metrics.js +95 -161
- package/dist/policy-metrics.js.map +1 -1
- package/dist/policy.d.ts +44 -35
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +31 -115
- package/dist/policy.js.map +1 -1
- package/dist/prompt-assembler.d.ts +37 -6
- package/dist/prompt-assembler.d.ts.map +1 -1
- package/dist/prompt-assembler.js +389 -160
- package/dist/prompt-assembler.js.map +1 -1
- package/dist/prompt-policy.d.ts +1 -8
- package/dist/prompt-policy.d.ts.map +1 -1
- package/dist/prompt-policy.js +8 -26
- package/dist/prompt-policy.js.map +1 -1
- package/dist/protocol.d.ts +357 -229
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +139 -15
- package/dist/protocol.js.map +1 -1
- package/dist/replay.d.ts +5 -13
- package/dist/replay.d.ts.map +1 -1
- package/dist/replay.js +19 -55
- package/dist/replay.js.map +1 -1
- package/dist/round-coordinator.d.ts +20 -24
- package/dist/round-coordinator.d.ts.map +1 -1
- package/dist/round-coordinator.js +99 -92
- package/dist/round-coordinator.js.map +1 -1
- package/dist/round-driver.d.ts +14 -13
- package/dist/round-driver.d.ts.map +1 -1
- package/dist/round-driver.js +26 -14
- package/dist/round-driver.js.map +1 -1
- package/dist/round-transaction.d.ts +15 -18
- package/dist/round-transaction.d.ts.map +1 -1
- package/dist/round-transaction.js +38 -47
- package/dist/round-transaction.js.map +1 -1
- package/dist/self-eval.d.ts +53 -0
- package/dist/self-eval.d.ts.map +1 -0
- package/dist/self-eval.js +284 -0
- package/dist/self-eval.js.map +1 -0
- package/dist/storage.d.ts +9 -4
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +18 -6
- package/dist/storage.js.map +1 -1
- package/dist/token-utils.d.ts +15 -3
- package/dist/token-utils.d.ts.map +1 -1
- package/dist/token-utils.js +24 -5
- package/dist/token-utils.js.map +1 -1
- package/dist/verification-gate.d.ts +108 -0
- package/dist/verification-gate.d.ts.map +1 -0
- package/dist/verification-gate.js +971 -0
- package/dist/verification-gate.js.map +1 -0
- package/loop_policy.json +44 -15
- package/package.json +5 -10
- package/skills/perception/SKILL.md +182 -199
- package/dist/canonical-event-writer.d.ts +0 -20
- package/dist/canonical-event-writer.d.ts.map +0 -1
- package/dist/canonical-event-writer.js +0 -131
- package/dist/canonical-event-writer.js.map +0 -1
- package/dist/compiler-subgoals.d.ts +0 -7
- package/dist/compiler-subgoals.d.ts.map +0 -1
- package/dist/compiler-subgoals.js +0 -93
- package/dist/compiler-subgoals.js.map +0 -1
- package/dist/derive-id.d.ts +0 -12
- package/dist/derive-id.d.ts.map +0 -1
- package/dist/derive-id.js +0 -31
- package/dist/derive-id.js.map +0 -1
- package/dist/mcp/session-projection.d.ts +0 -5
- package/dist/mcp/session-projection.d.ts.map +0 -1
- package/dist/mcp/session-projection.js +0 -18
- package/dist/mcp/session-projection.js.map +0 -1
- package/dist/mcp/session-queue.d.ts +0 -3
- package/dist/mcp/session-queue.d.ts.map +0 -1
- package/dist/mcp/session-queue.js +0 -18
- package/dist/mcp/session-queue.js.map +0 -1
- package/dist/mcp/session-types.d.ts +0 -72
- package/dist/mcp/session-types.d.ts.map +0 -1
- package/dist/mcp/session-types.js +0 -2
- package/dist/mcp/session-types.js.map +0 -1
- package/dist/round-commit-store.d.ts +0 -12
- package/dist/round-commit-store.d.ts.map +0 -1
- package/dist/round-commit-store.js +0 -13
- package/dist/round-commit-store.js.map +0 -1
- package/dist/round-gate.d.ts +0 -31
- package/dist/round-gate.d.ts.map +0 -1
- package/dist/round-gate.js +0 -259
- package/dist/round-gate.js.map +0 -1
- package/dist/round-recovery.d.ts +0 -17
- package/dist/round-recovery.d.ts.map +0 -1
- package/dist/round-recovery.js +0 -117
- package/dist/round-recovery.js.map +0 -1
- package/dist/round-report.d.ts +0 -16
- package/dist/round-report.d.ts.map +0 -1
- package/dist/round-report.js +0 -401
- package/dist/round-report.js.map +0 -1
- package/dist/runtime-services.d.ts +0 -59
- package/dist/runtime-services.d.ts.map +0 -1
- package/dist/runtime-services.js +0 -460
- package/dist/runtime-services.js.map +0 -1
- package/dist/vault-format.d.ts +0 -4
- package/dist/vault-format.d.ts.map +0 -1
- package/dist/vault-format.js +0 -4
- package/dist/vault-format.js.map +0 -1
- package/dist/vault-types.d.ts +0 -24
- package/dist/vault-types.d.ts.map +0 -1
- package/dist/vault-types.js +0 -2
- package/dist/vault-types.js.map +0 -1
- package/loopforge-policy.json +0 -340
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,EACL,WAAW,EACX,IAAI,EACJ,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,GAQX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,4EAA4E;AAC5E,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAyBxB,SAAS,iBAAiB;IACxB,OAAO;QACL,gBAAgB,EAAE,CAAC;QACnB,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;KACzB,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,OAAO,eAAe;IAC1B,KAAK,GAAwB,IAAI,CAAC;IAC1B,KAAK,GAAqB,IAAI,CAAC;IAC/B,OAAO,GAAyB,IAAI,CAAC;IAC7C,QAAQ,GAAkB,IAAI,CAAC;IAE/B,YAAY,KAAiB;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC;IAC7B,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;wCACoC;IACpC,QAAQ;QACN,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;IAED,6EAA6E;IAC7E,UAAU;QACR,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,UAAU,CAAC,OAAyB;QAC1C,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAC3B,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAC5C,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACrC,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,uBAAuB;IACvB,0EAA0E;IAElE,sBAAsB,CAAC,MAA+B;QAC5D,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACrC,CAAC;QACD,mEAAmE;QACnE,oFAAoF;QACpF,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,sDAAsD,KAAK,EAAE,CAAC,CAAC;YAC5E,QAAQ,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC7D,aAAa,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;YACxD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,MAA+B;QACxD,IAAI,CAAC;YACH,OAAO;gBACL,EAAE,EAAE,UAAU,EAAE;gBAChB,OAAO,EAAG,MAAM,CAAC,OAAkB,IAAI,UAAU;gBACjD,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;gBAC1D,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBACzD,OAAO,EAAG,MAAM,CAAC,OAAmB,IAAI,KAAK;gBAC7C,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC;oBACjC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;oBAChC,MAAM,EAAG,MAAM,CAAC,OAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;oBAC3D,qBAAqB,EAAE;wBACrB,wBAAwB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAK,MAAM,CAAC,UAAwB,CAAC,MAAM,KAAK,CAAC;wBAC5G,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;qBACpC;oBACD,cAAc,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;oBACtC,iBAAiB,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;iBAC7C,CAAC;gBACF,SAAS,EAAG,MAAM,CAAC,SAAoB,IAAI,EAAE;gBAC7C,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAoB,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC5D,UAAU,EAAG,MAAM,CAAC,UAAqB,IAAI,EAAE;gBAC/C,OAAO,EAAE,MAAM,CAAC,OAA6B;gBAC7C,YAAY,EAAG,MAAM,CAAC,YAAwC,IAAI,EAAE;gBACpE,iEAAiE;gBACjE,2DAA2D;gBAC3D,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,IAAI;gBACrD,sBAAsB,EAAE,MAAM,CAAC,sBAAsB,IAAI,EAAE;gBAC3D,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,EAAE;gBAC/C,8DAA8D;gBAC9D,+DAA+D;gBAC/D,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,EAAE;gBACnD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,EAAE;gBAC/C,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,EAAE;gBACjD,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,IAAI,EAAE;gBACzD,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE;aAC5C,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClD,QAAQ,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,sBAAsB;IACtB,0EAA0E;IAElE,kBAAkB,CACxB,QAA6B,EAC7B,OAA2B;QAE3B,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;YAAE,IAAI,CAAC,OAAO,GAAG,iBAAiB,EAAE,CAAC;QAE9D,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc;YACzC,CAAC,CAAE,QAAQ,CAAC,cAAqD;YACjE,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,iBAAiB,GAA4B;YACjD,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,eAAe,EAAE,QAAQ,CAAC,eAAe;YACzC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;YAC/C,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,IAAI;SACd,CAAC;QAEF,uEAAuE;QACvE,0EAA0E;QAC1E,oEAAoE;QACpE,sDAAsD;QACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC;QAC3D,IAAI,SAAS,EAAE,CAAC;YACd,iBAAiB,CAAC,wBAAwB,GAAG,SAAS,CAAC,aAAa,CAAC;YACrE,iBAAiB,CAAC,kBAAkB,GAAG,SAAS,CAAC,QAAQ,CAAC;YAC1D,iBAAiB,CAAC,0BAA0B,GAAG,SAAS,CAAC,eAAe,CAAC;QAC3E,CAAC;QAED,IAAI,iBAAiB,GAAG,EAAE,CAAC;QAC3B,IAAI,cAAc,GAAa,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC9B,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,cAAc,IAAI,EAAE,CAAC;YACnE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,qBAAqB,IAAI,EAAE,CAAC;QACzE,CAAC;QAED,MAAM,KAAK,GAAe;YACxB,EAAE,EAAE,UAAU,EAAE;YAChB,OAAO,EAAE,QAAQ,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,KAAK,EAAE;YACtD,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;YAC1D,WAAW,EAAE,sBAAsB,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,OAAO,EAAE;YACzE,SAAS,EAAE,cAAc;YACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,YAAY,EAAE,iBAAiB;YAC/B,cAAc,EAAE,WAAW;YAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,cAAc,EAAE,iBAAiB;YACjC,qBAAqB,EAAE,cAAc;YACrC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC;SACrE,CAAC;QAEF,gCAAgC;QAChC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACvC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,qDAAqD,KAAK,EAAE,CAAC,CAAC;YAC3E,QAAQ,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;YACjE,aAAa,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,0EAA0E;IAC1E,6CAA6C;IAC7C,0EAA0E;IAE1E;;yEAEqE;IACrE,gBAAgB,CACd,MAAc,EACd,KAAa,EACb,OAA0B;QAE1B,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO;QAC5B,MAAM,MAAM,GAAG,QAAQ,MAAM,KAAK,KAAK,cAAc,CAAC;QACtD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;aAC/E,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;QACrD,IAAI,QAAQ;YAAE,OAAO;QACrB,MAAM,KAAK,GAAe;YACxB,EAAE,EAAE,UAAU,EAAE;YAChB,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;YAC1D,WAAW,EAAE,8BAA8B,KAAK,EAAE;YAClD,SAAS,EAAE,oBAAoB;YAC/B,OAAO,EAAE,MAAM;YACf,YAAY,EAAE;gBACZ,KAAK;gBACL,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC/B,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,YAAY,EAAE,CAAC,CAAC,YAAY;oBAC5B,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,aAAa,EAAE,CAAC,CAAC,aAAa;oBAC9B,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACxD,qBAAqB,EAAE,CAAC,CAAC,qBAAqB;iBAC/C,CAAC,CAAC;aACJ;SACF,CAAC;QACF,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,wDAAwD,KAAK,EAAE,CAAC,CAAC;YAC9E,QAAQ,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAC9D,aAAa,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,kCAAkC;IAClC,0EAA0E;IAE1E;;;kDAG8C;IACtC,MAAM,CAAU,0BAA0B,GAAG;QACnD,oBAAoB;QACpB,wBAAwB;QACxB,kBAAkB;QAClB,wBAAwB;QACxB,kBAAkB;QAClB,uBAAuB;QACvB,mBAAmB;QACnB,oBAAoB;QACpB,kBAAkB;QAClB,mBAAmB;QACnB,aAAa;QACb,sBAAsB;QACtB,SAAS;QACT,SAAS;QACT,qBAAqB;QACrB,0BAA0B;QAC1B,gBAAgB;QAChB,iBAAiB;KACT,CAAC;IAEX;;oFAEgF;IACxE,mBAAmB,CACzB,KAAiB,EACjB,OAAgC,EAChC,EAAc;QAEd,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACrE,MAAM,EAAE,GAAG,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC;YAC3D,CAAC,CAAC,SAAS,CAAC,iBAAiB;YAC7B,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,MAAM,GAAG,EAAE,IAAI,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,6BAA6B,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,MAAM,UAAU,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC1D,CAAC,CAAC,QAAQ,CAAC,UAAU;YACrB,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,MAAM,EAAE,CAAC;YACX,IACE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC;gBACvC,MAAM,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EACnC,CAAC;gBACD,KAAK,CAAC,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;YACtD,CAAC;YACD,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC7C,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC;gBACpC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC;YACxC,CAAC;YACD,+DAA+D;YAC/D,8DAA8D;YAC9D,6BAA6B;YAC7B,OAAO,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,0BAA0B,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS;YAClC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACrB,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACrB,CAAC;QACD,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC5C,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;YACnC,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACvC,CAAC;QACD,IAAI,OAAO,UAAU,CAAC,cAAc,KAAK,QAAQ,IAAI,UAAU,CAAC,cAAc,EAAE,CAAC;YAC/E,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC;QACnD,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACpD,KAAK,CAAC,qBAAqB,GAAG,UAAU,CAAC,qBAAqB,CAAC;QACjE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;+EAW2E;IACnE,cAAc,GAIX,IAAI,CAAC;IAEhB,sDAAsD;IAC9C,MAAM,CAAC,aAAa,CAAC,MAAc;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5C,CAAC;IAED,+EAA+E;IACvE,MAAM,CAAC,wBAAwB,CAAC,SAAuB;QAC7D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;YACtE,IAAI,KAAK,KAAK,IAAI;gBAAE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,OAAO,SAAS,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAC7C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;kBASc;IACN,kBAAkB,CACxB,KAAmB,EACnB,OAAqB;QAErB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAC;QAChD,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;YACxE,IAAI,OAAO,KAAK,IAAI;gBAAE,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,CAGzD,CAAC;YACF,MAAM,GAAG,GAAG,OAAO,CAAC,KAAe,CAAC;YACpC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAChD,IAAI,EAAE;gBAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;gBAC1B,KAAK,CAAC,cAAc,GAAI,OAAO,CAAC,cAAyB,IAAI,EAAE,CAAC;YAClE,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;gBACjC,KAAK,CAAC,qBAAqB;oBACxB,OAAO,CAAC,qBAAkC,IAAI,EAAE,CAAC;YACtD,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kBAAkB,CAAC,MAAc,EAAE,KAAc;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,QAAQ,MAAM,IAAI,CAAC;QAElC,yEAAyE;QACzE,qEAAqE;QACrE,oDAAoD;QACpD,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;YAClE,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;YAClC,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACpC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;YACxD,CAAC;YACD,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YACtE,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE;gBAC9C,MAAM;gBACN,UAAU;gBACV,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACvD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBACxC,mEAAmE;gBACnE,iEAAiE;gBACjE,mEAAmE;gBACnE,mEAAmE;gBACnE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;gBAC9E,IAAI,KAAK,IAAI,CAAC;oBAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;;oBACxC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;YACD,qEAAqE;YACrE,sEAAsE;YACtE,qCAAqC;YACrC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;YACzC,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;gBACzB,MAAM,CAAC,GAAG,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;gBAClE,IAAI,CAAC,KAAK,IAAI;oBAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;gBAAE,KAAK,CAAC,YAAY,EAAE,CAAC;YACxE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;QACxD,CAAC;QAED,yEAAyE;QACzE,uEAAuE;QACvE,uEAAuE;QACvE,sEAAsE;QACtE,0EAA0E;QAC1E,kCAAkC;QAClC,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC/C,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG;YACpB,MAAM;YACN,YAAY,EAAE,eAAe,CAAC,wBAAwB,CAAC,SAAS,CAAC;YACjE,OAAO;SACR,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IAClD,CAAC;IAED,0EAA0E;IAC1E,oBAAoB;IACpB,0EAA0E;IAE1E,cAAc,CACZ,OAAyB,EACzB,eAAgD;QAEhD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;QAE7B,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC5B,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO;gBACL,MAAM,EAAE,WAAW,CAAC,KAAK;gBACzB,QAAQ,EAAE;oBACR,MAAM,EAAE,WAAW,CAAC,KAAK;oBACzB,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,4CAA4C;iBACpD;aACF,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;QAC3B,MAAM,UAAU,GAAG,EAAE,CAAC,qBAAqB,IAAI,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,EAAE,CAAC,mBAAmB,IAAI,EAAE,CAAC;QAE3C,mDAAmD;QACnD,MAAM,MAAM,GAAI,OAAmC,CAAC,OAEvC,CAAC;QACd,MAAM,SAAS,GAAI,OAAmC,CAAC,KAE1C,CAAC;QACd,sEAAsE;QACtE,qEAAqE;QACrE,6DAA6D;QAC7D,IAAI,CAAC,MAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO;gBACL,MAAM,EAAE,WAAW,CAAC,KAAK;gBACzB,QAAQ,EAAE;oBACR,MAAM,EAAE,WAAW,CAAC,KAAK;oBACzB,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,yEAAyE;iBACjF;aACF,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,MAAM,KAAK,SAAS,WAAW,CAAC;QAEvD,MAAM,MAAM,GAA4B;YACtC,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YACpC,OAAO;YACP,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;YACpC,UAAU;YACV,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,SAAS;SACjB,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,MAAM,EAAE,WAAW,CAAC,KAAK;gBACzB,QAAQ,EAAE;oBACR,MAAM,EAAE,WAAW,CAAC,KAAK;oBACzB,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,iFAAiF;iBACzF;aACF,CAAC;QACJ,CAAC;QAED,eAAe;QACf,IAAI,CAAC,KAAM,CAAC,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC,KAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,KAAM,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC1C,IAAI,CAAC,KAAM,CAAC,aAAa,GAAG,IAAI,CAAC,KAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,QAAQ,CAAC,gBAAgB,EAAE;YACzB,OAAO;YACP,MAAM,EAAE,MAAM,IAAI,SAAS;YAC3B,KAAK,EAAE,SAAS,IAAI,IAAI,CAAC,KAAM,CAAC,UAAU;SAC3C,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,EAAE;YACtB,QAAQ,EAAE;gBACR,MAAM,EAAE,WAAW,CAAC,EAAE;gBACtB,MAAM,EAAE,oCAAoC,OAAO,cAAc;gBACjE,KAAK,EAAE,IAAI;aACZ;SACF,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,+DAA+D;IAC/D,0EAA0E;IAE1E;;;;;gEAK4D;IAC5D,YAAY,CACV,QAAwB,EACxB,MAAc,EACd,KAAa,EACb,IAAY,EACZ,gBAA0C;QAE1C,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhG,MAAM,EAAE,GAAsB,qBAAqB,CAAC;YAClD,MAAM,EAAE,QAAQ,CAAC,cAAc;YAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;YACrD,mBAAmB,EAAE,EAAE;SACxB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,QAAQ,MAAM,KAAK,KAAK,WAAW,CAAC;QACnD,MAAM,aAAa,GAAG,OAAO,gBAAgB,EAAE,QAAQ,KAAK,QAAQ;YAClE,CAAC,CAAC,gBAAgB,CAAC,QAAQ;YAC3B,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,oBAAoB,GAAG,CAC3B,MAAuC,EAC9B,EAAE;YACX,IAAI,CAAC,aAAa;gBAAE,OAAO,KAAK,CAAC;YACjC,OAAO,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE;gBACnD,MAAM,EAAE,MAAM;gBACd,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;gBAChB,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM;oBAAE,OAAO,KAAK,CAAC;gBAC3C,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC;gBACnC,MAAM,WAAW,GAAG,OAAO,EAAE,iBAAiB,CAAC;gBAC/C,OAAO,WAAW,KAAK,IAAI;oBACzB,OAAO,WAAW,KAAK,QAAQ;oBAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;oBAC1B,WAAuC,CAAC,QAAQ,KAAK,aAAa,CAAC;YACxE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,uEAAuE;QACvE,uEAAuE;QACvE,sEAAsE;QACtE,sEAAsE;QACtE,+DAA+D;QAC/D,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,CAAC,KAAK,EAAE,EAAE;YACtD,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC9C,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,iBAAiB;gBACtC,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;YACjE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,oFAAoF;QACpF,MAAM,aAAa,GAAG,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC;aAClD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,IAAI,EAAE,CAAC;aAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/B,MAAM,gBAAgB,GAAG;YACvB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,sBAAsB,IAAI,EAAE,CAAC,EAAE,GAAG,aAAa,CAAC,CAAC;SAC3E,CAAC;QAEF,MAAM,MAAM,GAA4B;YACtC,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YAC5B,OAAO,EAAE,EAAE,CAAC,OAAO;YACnB,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,QAAQ,CAAC,qBAAqB;YAC1C,YAAY,EAAE,EAAE;YAChB,OAAO,EAAE,MAAM;YACf,KAAK;YACL,0BAA0B;YAC1B,sBAAsB,EAAE,gBAAgB;YACxC,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB,IAAI,EAAE;YACzD,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,IAAI,EAAE;YACjD,oEAAoE;YACpE,qEAAqE;YACrE,oEAAoE;YACpE,iDAAiD;YACjD,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,IAAI,EAAE;YACrD,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,IAAI,EAAE;YACjD,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,IAAI,EAAE;YACnD,yBAAyB;YACzB,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,IAAI,IAAI;YACvD,sBAAsB;YACtB,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB,IAAI,EAAE;YAC3D,wBAAwB,EAAE,QAAQ,CAAC,wBAAwB,IAAI,EAAE;YACjE,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,IAAI,EAAE;YACnD,yCAAyC;YACzC,cAAc,EAAE,QAAQ,CAAC,cAAc,IAAI,EAAE;YAC7C,+CAA+C;YAC/C,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,YAAY,EAAE,gBAAgB;gBAC5B,CAAC,CAAC;oBACE,KAAK;oBACL,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;oBACnC,iBAAiB,EAAE,gBAAgB;iBACpC;gBACH,CAAC,CAAC,EAAE;SACP,CAAC;QACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,aAAa,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,iCAAiC,aAAa,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,IAAI,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrD,KAAK,EAAE,CAAC,GAAG,CAAC;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,qBAAqB,EAAE,CAAC,CAAC,qBAAqB,IAAI,EAAE;aACrD,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;QAED,wEAAwE;QACxE,mEAAmE;QACnE,IAAI,gBAAgB;YAAE,OAAO,EAAE,CAAC,OAAO,CAAC;QAExC,eAAe;QACf,IAAI,CAAC,KAAM,CAAC,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC,KAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,KAAM,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC1C,IAAI,CAAC,KAAM,CAAC,aAAa,GAAG,IAAI,CAAC,KAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,mEAAmE;QACnE,yDAAyD;QACzD,oEAAoE;QAEpE,QAAQ,CAAC,gBAAgB,EAAE;YACzB,MAAM;YACN,KAAK;YACL,OAAO,EAAE,EAAE,CAAC,OAAO;SACpB,CAAC,CAAC;QAEH,OAAO,EAAE,CAAC,OAAO,CAAC;IACpB,CAAC;IAED,0EAA0E;IAC1E,iCAAiC;IACjC,0EAA0E;IAE1E,iBAAiB,CACf,OAAyB,EACzB,cAA+C,EAC/C,UAAwC,EAAE;QAE1C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;QAE7B,sEAAsE;QACtE,mEAAmE;QACnE,wEAAwE;QACxE,MAAM,MAAM,GAAG,OAAkC,CAAC;QAClD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,eAAe,CACrC,MAAM,EACN,OAAO,CAAC,OAAO,IAAI,EAAE,CACtB,CAAC;QACF,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,qBAAqB,EAAE;gBAC9B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;aAC1D,CAAC,CAAC;QACL,CAAC;QAED,MAAM,GAAG,GAAG,sBAAsB,CAAC;YACjC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;YAC7C,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;YACnD,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;YACjD,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;YACnD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;YAC7C,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;YACrD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;SAC1C,CAAC,CAAC;QAEH,4EAA4E;QAC5E,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;YACpC,8CAA8C;YAC9C,MAAM,iBAAiB,GAAG,sBAAsB,CAC9C,EAAE,CAAC,kBAAyD,CAC7D,CAAC;YACF,oDAAoD;YACpD,MAAM,eAAe,GAAG,uBAAuB,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC;YAC7E,GAAG,CAAC,iBAAiB,GAAG,mBAAmB,CAAC;gBAC1C,KAAK,EAAG,EAAE,CAAC,KAAgB,IAAI,CAAC;gBAChC,OAAO,EAAG,EAAE,CAAC,OAAmB,IAAI,KAAK;gBACzC,cAAc,EAAG,EAAE,CAAC,cAAyB,IAAI,EAAE;gBACnD,qBAAqB,EAClB,EAAE,CAAC,qBAAkC,IAAI,EAAE;gBAC9C,mBAAmB,EAAG,EAAE,CAAC,mBAA8B,IAAI,EAAE;gBAC7D,oCAAoC;gBACpC,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,sBAAsB,CAAC;oBAC9D,CAAC,CAAE,EAAE,CAAC,sBAAmC,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBACvF,CAAC,CAAC,EAAE;gBACN,oBAAoB,EAAE,OAAO,EAAE,CAAC,oBAAoB,KAAK,QAAQ;oBAC/D,CAAC,CAAC,EAAE,CAAC,oBAAoB;oBACzB,CAAC,CAAC,EAAE;gBACN,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAgB,CAAC;oBAClD,CAAC,CAAE,EAAE,CAAC,gBAA6B,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBACjF,CAAC,CAAC,EAAE;gBACN,yBAAyB;gBACzB,kBAAkB,EAAE,iBAAiB;gBACrC,sBAAsB;gBACtB,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,qBAAqB,CAAC;oBAC5D,CAAC,CAAE,EAAE,CAAC,qBAAkC,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBACtF,CAAC,CAAC,EAAE;gBACN,wBAAwB,EAAE,eAAe;gBACzC,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC;oBACpD,CAAC,CAAE,EAAE,CAAC,iBAA8B,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBAClF,CAAC,CAAC,EAAE;gBACN,6BAA6B;gBAC7B,sBAAsB,EACpB,OAAO,EAAE,CAAC,sBAAsB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK;gBACpF,gBAAgB,EACd,OAAO,EAAE,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;gBACpE,2BAA2B;gBAC3B,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,kBAAkB,CAAC;oBACtD,CAAC,CAAE,EAAE,CAAC,kBAA+B,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBACnF,CAAC,CAAC,EAAE;gBACN,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAgB,CAAC;oBAClD,CAAC,CAAE,EAAE,CAAC,gBAA6B,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBACjF,CAAC,CAAC,EAAE;gBACN,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC;oBACpD,CAAC,CAAE,EAAE,CAAC,iBAA8B,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBAClF,CAAC,CAAC,EAAE;gBACN,4BAA4B;gBAC5B,mBAAmB,EAAE,OAAO,EAAE,CAAC,mBAAmB,KAAK,QAAQ;oBAC7D,CAAC,CAAC,EAAE,CAAC,mBAAmB;oBACxB,CAAC,CAAC,SAAS;gBACb,yDAAyD;gBACzD,cAAc,EAAE,kBAAkB,CAAC,EAAE,CAAC,cAAc,CAAC;gBACrD,0DAA0D;gBAC1D,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,CAAC,OAAO,KAAK,SAAS;oBAC3D,EAAE,CAAC,OAAO,KAAK,QAAQ,IAAI,EAAE,CAAC,OAAO,KAAK,SAAS;oBACnD,CAAC,CAAC,EAAE,CAAC,OAAO;oBACZ,CAAC,CAAC,SAAS;gBACb,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,KAAK,QAAQ,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;oBACrE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;oBAC1B,CAAC,CAAC,SAAS;gBACb,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC;oBACpD,CAAC,CAAE,EAAE,CAAC,iBAAoD;yBACvD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAC9B,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;wBACjD,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;yBACzD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAe,EAAE,KAAK,EAAG,IAAI,CAAC,KAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;yBAC7F,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;oBACf,CAAC,CAAC,EAAE;aACP,CAAC,CAAC;QACL,CAAC;QAED,yEAAyE;QACzE,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,cAAc,CAAC;YAClC,GAAG,CAAC,cAAc,GAAG,iBAAiB,CAAC;gBACrC,SAAS,EAAG,GAAG,CAAC,SAAoB,IAAI,EAAE;gBAC1C,gBAAgB,EAAG,GAAG,CAAC,gBAA6B,IAAI,EAAE;gBAC1D,gBAAgB,EAAG,GAAG,CAAC,gBAA6B,IAAI,EAAE;gBAC1D,gBAAgB,EAAG,GAAG,CAAC,gBAA2B,IAAI,CAAC;gBACvD,OAAO,EAAG,GAAG,CAAC,OAAkB,IAAI,EAAE;aACvC,CAAC,CAAC;QACL,CAAC;QAED,+CAA+C;QAC/C,IAAI,OAAO,GAAG,cAAc,IAAI,IAAI,CAAC;QACrC,IAAI,OAAO,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACrD,sEAAsE;YACtE,oEAAoE;YACpE,2BAA2B;YAC3B,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC;QAED,qCAAqC;QACrC,IAAI,QAA6B,CAAC;QAClC,IAAI,CAAC;YACH,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,OAAyC,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,MAAM,EAAE,WAAW,CAAC,KAAK;gBACzB,QAAQ,EAAE;oBACR,MAAM,EAAE,WAAW,CAAC,KAAK;oBACzB,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,wBAAwB,GAAG,EAAE;iBACrC;aACF,CAAC;QACJ,CAAC;QAED,2BAA2B;QAC3B,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACzC,CAAC;QAED,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,EAAE;YACtB,QAAQ,EAAE;gBACR,MAAM,EAAE,WAAW,CAAC,EAAE;gBACtB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,KAAK,EAAE,IAAI;gBACX,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;gBAC/C,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,6DAA6D;gBAC7D,iEAAiE;gBACjE,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;aAClD;SACF,CAAC;IACJ,CAAC;;AAIH,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,UAAU,YAAY,CAC1B,KAAiB;IAEjB,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/** v2.12: Derived claim provenance — the runtime's honest view of which
|
|
2
|
+
* agent-reported criteria completions are backed by machine evidence.
|
|
3
|
+
*
|
|
4
|
+
* Pure functions, no persistence. The inputs (evaluation + round evidence +
|
|
5
|
+
* verification flags) are already committed in the round transaction
|
|
6
|
+
* snapshot, so every claim view can be re-derived deterministically for
|
|
7
|
+
* audit and handoff purposes.
|
|
8
|
+
*
|
|
9
|
+
* Rules (honesty first — machine evidence is the only upgrade path):
|
|
10
|
+
* - every `success_criteria_met` entry is a claim, `claimed` by default;
|
|
11
|
+
* - upgraded to `verified` only when a machine-verifiable test pass is
|
|
12
|
+
* observed (test results with 0 failures AND a passed after-phase
|
|
13
|
+
* command snapshot);
|
|
14
|
+
* - downgraded to `contradicted` when error-level verification flags say
|
|
15
|
+
* the machine contradicted the claim.
|
|
16
|
+
*/
|
|
17
|
+
import type { VaultEntry } from "./loop-store.js";
|
|
18
|
+
import type { ProviderSnapshot } from "./evidence-provider.js";
|
|
19
|
+
import type { SelfEvaluation, VerificationFlag } from "./protocol.js";
|
|
20
|
+
export interface DerivedClaim {
|
|
21
|
+
/** Success criterion text as reported by the agent. */
|
|
22
|
+
targetId: string;
|
|
23
|
+
status: "verified" | "claimed" | "contradicted";
|
|
24
|
+
source: "agent" | "command" | "provider" | "verification";
|
|
25
|
+
/** Machine evidence reference, e.g. "command:npm-test". */
|
|
26
|
+
ref?: string;
|
|
27
|
+
detail?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface ClaimView {
|
|
30
|
+
claims: DerivedClaim[];
|
|
31
|
+
verifiedCount: number;
|
|
32
|
+
contradictedCount: number;
|
|
33
|
+
/** True when any machine-observable test evidence exists this round. */
|
|
34
|
+
hasMachineEvidence: boolean;
|
|
35
|
+
}
|
|
36
|
+
/** Derive the runtime claim view for a round. No file-level or text-level
|
|
37
|
+
* guessing: git observations only serve the evidence_integrity warn. */
|
|
38
|
+
export declare function deriveClaimView(selfEval: SelfEvaluation, evidenceSnapshots: ProviderSnapshot[]): ClaimView;
|
|
39
|
+
/** Re-derive a claim view including the contradiction downgrade driven by
|
|
40
|
+
* verification flags. Used by audit and listVerifiedClaims on persisted
|
|
41
|
+
* snapshots; the live round path uses deriveClaimView only. */
|
|
42
|
+
export declare function rederiveClaimViewWithFlags(selfEval: SelfEvaluation, evidenceSnapshots: ProviderSnapshot[], flags: VerificationFlag[]): ClaimView;
|
|
43
|
+
/** Files actually changed in a committed round (git provider, after evidence
|
|
44
|
+
* preferred). Returns null when the round has no observable git snapshot. */
|
|
45
|
+
export declare function resolveRoundFiles(vaultEntries: VaultEntry[], loopId: string, round: number): string[] | null;
|
|
46
|
+
/** Stable cr-IDs (and criterion texts) backed by verified claims across all
|
|
47
|
+
* committed rounds. Criterion texts are mapped to cr-IDs by callers that
|
|
48
|
+
* know the objective; this returns the raw verified targets. */
|
|
49
|
+
export declare function listVerifiedClaims(vaultEntries: VaultEntry[], loopId: string): string[];
|
|
50
|
+
//# sourceMappingURL=evidence-claims.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence-claims.d.ts","sourceRoot":"","sources":["../src/evidence-claims.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtE,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,cAAc,CAAC;IAChD,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,cAAc,CAAC;IAC1D,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wEAAwE;IACxE,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AA2BD;yEACyE;AACzE,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EACxB,iBAAiB,EAAE,gBAAgB,EAAE,GACpC,SAAS,CAeX;AAED;;gEAEgE;AAChE,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,cAAc,EACxB,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,KAAK,EAAE,gBAAgB,EAAE,GACxB,SAAS,CAcX;AASD;8EAC8E;AAC9E,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,UAAU,EAAE,EAC1B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,MAAM,EAAE,GAAG,IAAI,CAkBjB;AAED;;iEAEiE;AACjE,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,UAAU,EAAE,EAC1B,MAAM,EAAE,MAAM,GACb,MAAM,EAAE,CA4BV"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/** v2.12: Derived claim provenance — the runtime's honest view of which
|
|
2
|
+
* agent-reported criteria completions are backed by machine evidence.
|
|
3
|
+
*
|
|
4
|
+
* Pure functions, no persistence. The inputs (evaluation + round evidence +
|
|
5
|
+
* verification flags) are already committed in the round transaction
|
|
6
|
+
* snapshot, so every claim view can be re-derived deterministically for
|
|
7
|
+
* audit and handoff purposes.
|
|
8
|
+
*
|
|
9
|
+
* Rules (honesty first — machine evidence is the only upgrade path):
|
|
10
|
+
* - every `success_criteria_met` entry is a claim, `claimed` by default;
|
|
11
|
+
* - upgraded to `verified` only when a machine-verifiable test pass is
|
|
12
|
+
* observed (test results with 0 failures AND a passed after-phase
|
|
13
|
+
* command snapshot);
|
|
14
|
+
* - downgraded to `contradicted` when error-level verification flags say
|
|
15
|
+
* the machine contradicted the claim.
|
|
16
|
+
*/
|
|
17
|
+
import { isRecord } from "./token-utils.js";
|
|
18
|
+
/** Contradicting error flags that invalidate agent claims. */
|
|
19
|
+
// NOTE: keep these as literals — importing the CHECK_* constants here would
|
|
20
|
+
// create a verification-gate ⇄ evidence-claims import cycle.
|
|
21
|
+
const CONTRADICTING_CHECKS = new Set([
|
|
22
|
+
"required_command_failed",
|
|
23
|
+
"command_evidence_mismatch",
|
|
24
|
+
"success_with_remaining_criteria",
|
|
25
|
+
]);
|
|
26
|
+
function hasPassingTestEvidence(selfEval) {
|
|
27
|
+
const results = selfEval.execution_evidence?.test_results;
|
|
28
|
+
return results !== null &&
|
|
29
|
+
results !== undefined &&
|
|
30
|
+
results.failed === 0 &&
|
|
31
|
+
results.passed > 0;
|
|
32
|
+
}
|
|
33
|
+
function hasPassedAfterCommand(snapshots) {
|
|
34
|
+
return snapshots.some((snapshot) => isRecord(snapshot.data) &&
|
|
35
|
+
snapshot.data.kind === "command" &&
|
|
36
|
+
snapshot.data.phase === "after" &&
|
|
37
|
+
snapshot.data.status === "passed");
|
|
38
|
+
}
|
|
39
|
+
/** Derive the runtime claim view for a round. No file-level or text-level
|
|
40
|
+
* guessing: git observations only serve the evidence_integrity warn. */
|
|
41
|
+
export function deriveClaimView(selfEval, evidenceSnapshots) {
|
|
42
|
+
const met = selfEval.execution_evidence?.success_criteria_met ?? [];
|
|
43
|
+
const machineVerified = hasPassingTestEvidence(selfEval) &&
|
|
44
|
+
hasPassedAfterCommand(evidenceSnapshots);
|
|
45
|
+
const claims = met.map((targetId) => ({
|
|
46
|
+
targetId,
|
|
47
|
+
status: machineVerified ? "verified" : "claimed",
|
|
48
|
+
source: machineVerified ? "command" : "agent",
|
|
49
|
+
}));
|
|
50
|
+
return {
|
|
51
|
+
claims,
|
|
52
|
+
verifiedCount: claims.filter((claim) => claim.status === "verified").length,
|
|
53
|
+
contradictedCount: 0,
|
|
54
|
+
hasMachineEvidence: hasPassingTestEvidence(selfEval),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/** Re-derive a claim view including the contradiction downgrade driven by
|
|
58
|
+
* verification flags. Used by audit and listVerifiedClaims on persisted
|
|
59
|
+
* snapshots; the live round path uses deriveClaimView only. */
|
|
60
|
+
export function rederiveClaimViewWithFlags(selfEval, evidenceSnapshots, flags) {
|
|
61
|
+
const view = deriveClaimView(selfEval, evidenceSnapshots);
|
|
62
|
+
const contradicted = flags.some((flag) => flag.severity === "error" && CONTRADICTING_CHECKS.has(flag.check));
|
|
63
|
+
if (contradicted) {
|
|
64
|
+
view.claims = view.claims.map((claim) => ({
|
|
65
|
+
...claim,
|
|
66
|
+
status: "contradicted",
|
|
67
|
+
source: "verification",
|
|
68
|
+
}));
|
|
69
|
+
view.verifiedCount = 0;
|
|
70
|
+
view.contradictedCount = view.claims.length;
|
|
71
|
+
}
|
|
72
|
+
return view;
|
|
73
|
+
}
|
|
74
|
+
function committedTransaction(entry) {
|
|
75
|
+
if (!isRecord(entry.loop_lineage))
|
|
76
|
+
return null;
|
|
77
|
+
const transaction = entry.loop_lineage.round_transaction;
|
|
78
|
+
if (!isRecord(transaction) || !isRecord(transaction.snapshot))
|
|
79
|
+
return null;
|
|
80
|
+
return transaction;
|
|
81
|
+
}
|
|
82
|
+
/** Files actually changed in a committed round (git provider, after evidence
|
|
83
|
+
* preferred). Returns null when the round has no observable git snapshot. */
|
|
84
|
+
export function resolveRoundFiles(vaultEntries, loopId, round) {
|
|
85
|
+
const feedback = vaultEntries.find((entry) => String(entry.task_id ?? "") === `loop:${loopId}:r${round}:feedback`);
|
|
86
|
+
const transaction = feedback ? committedTransaction(feedback) : null;
|
|
87
|
+
if (!transaction)
|
|
88
|
+
return null;
|
|
89
|
+
const snapshot = transaction.snapshot;
|
|
90
|
+
const evidence = Array.isArray(snapshot.afterEvidence)
|
|
91
|
+
? snapshot.afterEvidence
|
|
92
|
+
: Array.isArray(snapshot.roundEvidence)
|
|
93
|
+
? snapshot.roundEvidence
|
|
94
|
+
: Array.isArray(snapshot.beforeEvidence)
|
|
95
|
+
? snapshot.beforeEvidence
|
|
96
|
+
: [];
|
|
97
|
+
const git = evidence.find((item) => isRecord(item) && item.provider === "git" && Array.isArray(item.files));
|
|
98
|
+
if (!git)
|
|
99
|
+
return null;
|
|
100
|
+
return git.files.filter((file) => typeof file === "string");
|
|
101
|
+
}
|
|
102
|
+
/** Stable cr-IDs (and criterion texts) backed by verified claims across all
|
|
103
|
+
* committed rounds. Criterion texts are mapped to cr-IDs by callers that
|
|
104
|
+
* know the objective; this returns the raw verified targets. */
|
|
105
|
+
export function listVerifiedClaims(vaultEntries, loopId) {
|
|
106
|
+
const verified = new Set();
|
|
107
|
+
for (const entry of vaultEntries) {
|
|
108
|
+
const taskId = String(entry.task_id ?? "");
|
|
109
|
+
if (!taskId.startsWith(`loop:${loopId}:r`) || !taskId.endsWith(":feedback"))
|
|
110
|
+
continue;
|
|
111
|
+
const transaction = committedTransaction(entry);
|
|
112
|
+
if (!transaction)
|
|
113
|
+
continue;
|
|
114
|
+
const snapshot = transaction.snapshot;
|
|
115
|
+
const evaluation = isRecord(snapshot.evaluation)
|
|
116
|
+
? snapshot.evaluation
|
|
117
|
+
: null;
|
|
118
|
+
const result = isRecord(snapshot.result) ? snapshot.result : null;
|
|
119
|
+
if (!evaluation || !result || !Array.isArray(result.verificationFlags))
|
|
120
|
+
continue;
|
|
121
|
+
const evidence = Array.isArray(snapshot.afterEvidence)
|
|
122
|
+
? snapshot.afterEvidence
|
|
123
|
+
: Array.isArray(snapshot.roundEvidence)
|
|
124
|
+
? snapshot.roundEvidence
|
|
125
|
+
: [];
|
|
126
|
+
const view = rederiveClaimViewWithFlags(evaluation, evidence, result.verificationFlags);
|
|
127
|
+
for (const claim of view.claims) {
|
|
128
|
+
if (claim.status === "verified")
|
|
129
|
+
verified.add(claim.targetId);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return [...verified];
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=evidence-claims.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence-claims.js","sourceRoot":"","sources":["../src/evidence-claims.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* can be added without touching the verification pipeline.
|
|
6
6
|
*
|
|
7
7
|
* Built-in provider: GitEvidenceProvider — git file state capture with
|
|
8
|
-
* parallel async execution.
|
|
8
|
+
* parallel async execution (v2.0.1) and a synchronous fallback.
|
|
9
9
|
*/
|
|
10
10
|
import type { CommandEvidencePolicy } from "./policy.js";
|
|
11
11
|
/** A snapshot of evidence captured by a single provider. */
|
|
@@ -19,12 +19,6 @@ export interface ProviderSnapshot {
|
|
|
19
19
|
files: string[];
|
|
20
20
|
/** Provider-specific structured data. */
|
|
21
21
|
data: Record<string, unknown>;
|
|
22
|
-
/**
|
|
23
|
-
* Explicitly declares that this provider can verify claims. Providers that
|
|
24
|
-
* only report observations must leave this unset; their snapshots are
|
|
25
|
-
* never promoted to runtime-verified evidence.
|
|
26
|
-
*/
|
|
27
|
-
claimCapable?: boolean;
|
|
28
22
|
}
|
|
29
23
|
/** Interface for evidence capture providers.
|
|
30
24
|
*
|
|
@@ -45,11 +39,6 @@ export interface EvidenceProvider {
|
|
|
45
39
|
* (e.g. git not installed, no test config found). */
|
|
46
40
|
capture(context?: EvidenceCaptureContext): EvidenceCaptureResult;
|
|
47
41
|
}
|
|
48
|
-
/** Raised when the synchronous collector is asked to run an async provider. */
|
|
49
|
-
export declare class AsyncEvidenceProviderError extends Error {
|
|
50
|
-
readonly code: "async_provider_requires_collect_async";
|
|
51
|
-
constructor(provider: string);
|
|
52
|
-
}
|
|
53
42
|
export interface EvidenceCollectOptions {
|
|
54
43
|
timeoutMs?: number;
|
|
55
44
|
loopId?: string;
|
|
@@ -63,7 +52,7 @@ export declare function unregisterEvidenceProvider(name: string): boolean;
|
|
|
63
52
|
*
|
|
64
53
|
* Usage:
|
|
65
54
|
* const collector = new EvidenceCollector([new GitEvidenceProvider()]);
|
|
66
|
-
* const snapshots =
|
|
55
|
+
* const snapshots = collector.collect();
|
|
67
56
|
* // snapshots = [{ provider: "git", files: [...], data: {...} }]
|
|
68
57
|
*/
|
|
69
58
|
export declare class EvidenceCollector {
|
|
@@ -74,13 +63,9 @@ export declare class EvidenceCollector {
|
|
|
74
63
|
static fromProviderNames(providerNames: string[]): EvidenceCollector;
|
|
75
64
|
/** Build built-ins and explicitly configured command providers. */
|
|
76
65
|
static fromPolicy(): EvidenceCollector;
|
|
77
|
-
/** Run
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
* asynchronous providers must use collectAsync(); silently treating an
|
|
81
|
-
* async provider as unavailable would turn a caller limitation into a
|
|
82
|
-
* misleading evidence result.
|
|
83
|
-
*/
|
|
66
|
+
/** Run all providers and return non-null snapshots.
|
|
67
|
+
* Providers that return null (e.g. git not available) are silently
|
|
68
|
+
* skipped — the caller handles missing evidence. */
|
|
84
69
|
collect(options?: EvidenceCollectOptions): ProviderSnapshot[];
|
|
85
70
|
/** Capture all providers concurrently with per-provider timeout isolation. */
|
|
86
71
|
collectAsync(options?: EvidenceCollectOptions): Promise<ProviderSnapshot[]>;
|
|
@@ -131,12 +116,25 @@ export interface GitFileState {
|
|
|
131
116
|
* On a normal repo (~200ms/command): ~200ms vs ~600ms sequential.
|
|
132
117
|
* On Windows with antivirus (~4s/command): ~4s vs ~12s sequential. */
|
|
133
118
|
export declare function captureGitFileStateAsync(signal?: AbortSignal, timeoutMs?: number): Promise<GitFileState | null>;
|
|
134
|
-
/**
|
|
119
|
+
/** v1.17 (sync): Capture git file state using sequential execFileSync.
|
|
120
|
+
*
|
|
121
|
+
* @deprecated Use captureGitFileStateAsync() for the primary path.
|
|
122
|
+
* This sync fallback exists for legacy callers that cannot be made async
|
|
123
|
+
* (e.g. reconstructSession during startup). Uses execFileSync — shell-free,
|
|
124
|
+
* unlike the old execSync-based implementation. */
|
|
125
|
+
export declare function captureGitFileState(): GitFileState | null;
|
|
126
|
+
/** Captures git file state (tracked, staged, untracked) via the async
|
|
127
|
+
* captureGitFileStateAsync() when a context is provided, falling back
|
|
128
|
+
* to the synchronous captureGitFileState() for legacy callers. */
|
|
135
129
|
export declare class GitEvidenceProvider implements EvidenceProvider {
|
|
136
130
|
readonly name = "git";
|
|
137
|
-
capture(context?: EvidenceCaptureContext): Promise<ProviderSnapshot | null>;
|
|
131
|
+
capture(context?: EvidenceCaptureContext): ProviderSnapshot | null | Promise<ProviderSnapshot | null>;
|
|
138
132
|
}
|
|
139
|
-
/** Extract
|
|
133
|
+
/** Extract merged file list from evidence snapshots for backward compat
|
|
134
|
+
* with runtimeFilesChanged (string[] | null).
|
|
135
|
+
*
|
|
136
|
+
* Looks for the "git" provider first; falls back to merging all
|
|
137
|
+
* providers' files arrays (deduplicated). */
|
|
140
138
|
export declare function extractFilesFromSnapshots(snapshots: ProviderSnapshot[]): string[] | null;
|
|
141
139
|
/** Return provider snapshots narrowed to evidence produced during this round.
|
|
142
140
|
* The full provider payload remains available in data, while files contains
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence-provider.d.ts","sourceRoot":"","sources":["../src/evidence-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"evidence-provider.d.ts","sourceRoot":"","sources":["../src/evidence-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAMzD,4DAA4D;AAC5D,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB;gCAC4B;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED;;;4EAG4E;AAC5E,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,qBAAqB,GAC7B,gBAAgB,GAChB,IAAI,GACJ,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;AAErC,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;0DACsD;IACtD,OAAO,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,qBAAqB,CAAC;CAClE;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,gBAAgB,CAAC;AAI7D,oEAAoE;AACpE,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,uBAAuB,GAC/B,IAAI,CAGN;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGhE;AAID;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAChB,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,gBAAgB,EAAE;IAEjD;yEACqE;IACrE,MAAM,CAAC,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,iBAAiB;IASpE,mEAAmE;IACnE,MAAM,CAAC,UAAU,IAAI,iBAAiB;IAatC;;yDAEqD;IACrD,OAAO,CAAC,OAAO,GAAE,sBAA2B,GAAG,gBAAgB,EAAE;IAiDjE,8EAA8E;IACxE,YAAY,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAwDtF;AAED,MAAM,WAAW,mBAAoB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClE,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;IAChF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;CACpB;AAuBD,6EAA6E;AAC7E,qBAAa,uBAAwB,YAAW,gBAAgB;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;gBAEnC,MAAM,EAAE,qBAAqB;IA6BzC,OAAO,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IA4G3E,OAAO,CAAC,QAAQ;CA6BjB;AAID,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iEAAiE;IACjE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,uFAAuF;IACvF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;iEAC6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;sEAWsE;AACtE,wBAAsB,wBAAwB,CAC5C,MAAM,CAAC,EAAE,WAAW,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA+C9B;AAED;;;;;mDAKmD;AACnD,wBAAgB,mBAAmB,IAAI,YAAY,GAAG,IAAI,CAiCzD;AAID;;mEAEmE;AACnE,qBAAa,mBAAoB,YAAW,gBAAgB;IAC1D,QAAQ,CAAC,IAAI,SAAS;IAEtB,OAAO,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAwCtG;AAMD;;;;8CAI8C;AAC9C,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,gBAAgB,EAAE,GAC5B,MAAM,EAAE,GAAG,IAAI,CAWjB;AAkCD;;gDAEgD;AAChD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,EAAE,EAC1B,KAAK,EAAE,gBAAgB,EAAE,GACxB,gBAAgB,EAAE,CASpB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,gBAAgB,EAAE,EAC1B,KAAK,EAAE,gBAAgB,EAAE,GACxB,MAAM,EAAE,GAAG,IAAI,CAEjB"}
|
|
@@ -5,23 +5,15 @@
|
|
|
5
5
|
* can be added without touching the verification pipeline.
|
|
6
6
|
*
|
|
7
7
|
* Built-in provider: GitEvidenceProvider — git file state capture with
|
|
8
|
-
* parallel async execution.
|
|
8
|
+
* parallel async execution (v2.0.1) and a synchronous fallback.
|
|
9
9
|
*/
|
|
10
10
|
import { createHash } from "node:crypto";
|
|
11
11
|
import { readFileSync, realpathSync, statSync } from "node:fs";
|
|
12
|
-
import { spawn, execFile } from "node:child_process";
|
|
12
|
+
import { spawn, execFile, execFileSync, } from "node:child_process";
|
|
13
13
|
import { isAbsolute, relative, resolve, sep } from "node:path";
|
|
14
14
|
import { getPolicy } from "./policy.js";
|
|
15
15
|
import { logEvent } from "./observability.js";
|
|
16
16
|
import { policyMetrics } from "./policy-metrics.js";
|
|
17
|
-
/** Raised when the synchronous collector is asked to run an async provider. */
|
|
18
|
-
export class AsyncEvidenceProviderError extends Error {
|
|
19
|
-
code = "async_provider_requires_collect_async";
|
|
20
|
-
constructor(provider) {
|
|
21
|
-
super(`Evidence provider "${provider}" is asynchronous; use collectAsync() instead`);
|
|
22
|
-
this.name = "AsyncEvidenceProviderError";
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
17
|
const providerFactories = new Map();
|
|
26
18
|
/** Register a provider factory used by policy-driven collectors. */
|
|
27
19
|
export function registerEvidenceProvider(name, factory) {
|
|
@@ -39,7 +31,7 @@ export function unregisterEvidenceProvider(name) {
|
|
|
39
31
|
*
|
|
40
32
|
* Usage:
|
|
41
33
|
* const collector = new EvidenceCollector([new GitEvidenceProvider()]);
|
|
42
|
-
* const snapshots =
|
|
34
|
+
* const snapshots = collector.collect();
|
|
43
35
|
* // snapshots = [{ provider: "git", files: [...], data: {...} }]
|
|
44
36
|
*/
|
|
45
37
|
export class EvidenceCollector {
|
|
@@ -72,13 +64,9 @@ export class EvidenceCollector {
|
|
|
72
64
|
}
|
|
73
65
|
return new EvidenceCollector(providers);
|
|
74
66
|
}
|
|
75
|
-
/** Run
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
* asynchronous providers must use collectAsync(); silently treating an
|
|
79
|
-
* async provider as unavailable would turn a caller limitation into a
|
|
80
|
-
* misleading evidence result.
|
|
81
|
-
*/
|
|
67
|
+
/** Run all providers and return non-null snapshots.
|
|
68
|
+
* Providers that return null (e.g. git not available) are silently
|
|
69
|
+
* skipped — the caller handles missing evidence. */
|
|
82
70
|
collect(options = {}) {
|
|
83
71
|
const results = [];
|
|
84
72
|
for (const p of this.providers) {
|
|
@@ -92,11 +80,15 @@ export class EvidenceCollector {
|
|
|
92
80
|
phase: options.phase ?? "after",
|
|
93
81
|
});
|
|
94
82
|
if (snapshot && typeof snapshot.then === "function") {
|
|
95
|
-
//
|
|
96
|
-
//
|
|
83
|
+
// Async providers are not awaitable in the synchronous collect()
|
|
84
|
+
// path. Log and skip — callers who need async providers must use
|
|
85
|
+
// collectAsync() instead. Session recovery via reconstructSession()
|
|
86
|
+
// uses collect() as a fallback; the unpause() path replaces it
|
|
87
|
+
// with async evidence after reconstruction.
|
|
97
88
|
void snapshot.catch(() => undefined);
|
|
98
|
-
|
|
99
|
-
|
|
89
|
+
policyMetrics.recordEvidence(p.name, "failure", Date.now() - startedAt, options.loopId);
|
|
90
|
+
logEvent("evidence_async_provider_in_sync_collect", { provider: p.name });
|
|
91
|
+
continue;
|
|
100
92
|
}
|
|
101
93
|
const syncSnapshot = snapshot;
|
|
102
94
|
policyMetrics.recordEvidence(p.name, syncSnapshot ? "available" : "unavailable", Date.now() - startedAt, options.loopId);
|
|
@@ -104,8 +96,6 @@ export class EvidenceCollector {
|
|
|
104
96
|
results.push(syncSnapshot);
|
|
105
97
|
}
|
|
106
98
|
catch (error) {
|
|
107
|
-
if (error instanceof AsyncEvidenceProviderError)
|
|
108
|
-
throw error;
|
|
109
99
|
policyMetrics.recordEvidence(p.name, "failure", Date.now() - startedAt, options.loopId);
|
|
110
100
|
logEvent("evidence_provider_error", { provider: p.name, error: String(error) });
|
|
111
101
|
}
|
|
@@ -293,7 +283,6 @@ export class CommandEvidenceProvider {
|
|
|
293
283
|
provider: this.name,
|
|
294
284
|
timestamp: Date.now(),
|
|
295
285
|
files: [],
|
|
296
|
-
claimCapable: true,
|
|
297
286
|
data: {
|
|
298
287
|
kind: "command",
|
|
299
288
|
commandName: this.config.name,
|
|
@@ -370,12 +359,60 @@ export async function captureGitFileStateAsync(signal, timeoutMs) {
|
|
|
370
359
|
return null;
|
|
371
360
|
}
|
|
372
361
|
}
|
|
362
|
+
/** v1.17 (sync): Capture git file state using sequential execFileSync.
|
|
363
|
+
*
|
|
364
|
+
* @deprecated Use captureGitFileStateAsync() for the primary path.
|
|
365
|
+
* This sync fallback exists for legacy callers that cannot be made async
|
|
366
|
+
* (e.g. reconstructSession during startup). Uses execFileSync — shell-free,
|
|
367
|
+
* unlike the old execSync-based implementation. */
|
|
368
|
+
export function captureGitFileState() {
|
|
369
|
+
try {
|
|
370
|
+
const tracked = execFileSync("git", ["diff", "--name-only"], {
|
|
371
|
+
encoding: "utf-8",
|
|
372
|
+
timeout: 5000,
|
|
373
|
+
}).trim();
|
|
374
|
+
const staged = execFileSync("git", ["diff", "--cached", "--name-only"], {
|
|
375
|
+
encoding: "utf-8",
|
|
376
|
+
timeout: 5000,
|
|
377
|
+
}).trim();
|
|
378
|
+
const untracked = execFileSync("git", ["ls-files", "--others", "--exclude-standard"], {
|
|
379
|
+
encoding: "utf-8",
|
|
380
|
+
timeout: 5000,
|
|
381
|
+
}).trim();
|
|
382
|
+
// v2.13: Capture HEAD commit for backtrack restore point
|
|
383
|
+
let head;
|
|
384
|
+
try {
|
|
385
|
+
head = execFileSync("git", ["rev-parse", "HEAD"], {
|
|
386
|
+
encoding: "utf-8",
|
|
387
|
+
timeout: 5000,
|
|
388
|
+
}).trim();
|
|
389
|
+
}
|
|
390
|
+
catch {
|
|
391
|
+
// Non-git repo or detached state — head stays undefined
|
|
392
|
+
}
|
|
393
|
+
return {
|
|
394
|
+
tracked: tracked.split("\n").filter((f) => f.length > 0).sort(),
|
|
395
|
+
staged: staged.split("\n").filter((f) => f.length > 0).sort(),
|
|
396
|
+
untracked: untracked.split("\n").filter((f) => f.length > 0).sort(),
|
|
397
|
+
head: head || undefined,
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
catch {
|
|
401
|
+
return null;
|
|
402
|
+
}
|
|
403
|
+
}
|
|
373
404
|
// ── Built-in: GitEvidenceProvider ──────────────────────────────────────────
|
|
374
|
-
/** Captures git file state (tracked, staged, untracked) via the async
|
|
405
|
+
/** Captures git file state (tracked, staged, untracked) via the async
|
|
406
|
+
* captureGitFileStateAsync() when a context is provided, falling back
|
|
407
|
+
* to the synchronous captureGitFileState() for legacy callers. */
|
|
375
408
|
export class GitEvidenceProvider {
|
|
376
409
|
name = "git";
|
|
377
410
|
capture(context) {
|
|
378
|
-
|
|
411
|
+
const capture = context
|
|
412
|
+
? captureGitFileStateAsync(context.signal, context.timeoutMs)
|
|
413
|
+
: captureGitFileState();
|
|
414
|
+
const statePromise = capture instanceof Promise ? capture : Promise.resolve(capture);
|
|
415
|
+
return statePromise.then((state) => {
|
|
379
416
|
if (!state)
|
|
380
417
|
return null;
|
|
381
418
|
const files = [...new Set([
|
|
@@ -391,7 +428,7 @@ export class GitEvidenceProvider {
|
|
|
391
428
|
fingerprints[file] = `${stat.mode}:${hash}`;
|
|
392
429
|
}
|
|
393
430
|
catch {
|
|
394
|
-
// Deleted files are evidence too.
|
|
431
|
+
// Deleted files are evidence too. A stable sentinel lets the diff
|
|
395
432
|
// distinguish deleted/restored transitions across a round.
|
|
396
433
|
fingerprints[file] = "missing";
|
|
397
434
|
}
|
|
@@ -400,26 +437,29 @@ export class GitEvidenceProvider {
|
|
|
400
437
|
provider: "git",
|
|
401
438
|
timestamp: Date.now(),
|
|
402
439
|
files,
|
|
403
|
-
claimCapable: true,
|
|
404
440
|
data: {
|
|
405
441
|
tracked: state.tracked,
|
|
406
442
|
staged: state.staged,
|
|
407
443
|
untracked: state.untracked,
|
|
408
444
|
fingerprints,
|
|
409
|
-
//
|
|
445
|
+
// v2.13: HEAD commit hash for backtrack workspace restore
|
|
410
446
|
head: state.head,
|
|
411
447
|
},
|
|
412
448
|
};
|
|
413
|
-
});
|
|
449
|
+
}); // end of .then()
|
|
414
450
|
}
|
|
415
451
|
}
|
|
416
452
|
registerEvidenceProvider("git", () => new GitEvidenceProvider());
|
|
417
453
|
// ── Utility ────────────────────────────────────────────────────────────────
|
|
418
|
-
/** Extract
|
|
454
|
+
/** Extract merged file list from evidence snapshots for backward compat
|
|
455
|
+
* with runtimeFilesChanged (string[] | null).
|
|
456
|
+
*
|
|
457
|
+
* Looks for the "git" provider first; falls back to merging all
|
|
458
|
+
* providers' files arrays (deduplicated). */
|
|
419
459
|
export function extractFilesFromSnapshots(snapshots) {
|
|
420
460
|
if (snapshots.length === 0)
|
|
421
461
|
return null;
|
|
422
|
-
// Prefer the git provider
|
|
462
|
+
// Prefer the git provider for backward compat
|
|
423
463
|
const gitSnapshot = snapshots.find((s) => s.provider === "git");
|
|
424
464
|
if (gitSnapshot)
|
|
425
465
|
return [...gitSnapshot.files].sort();
|
|
@@ -433,7 +473,7 @@ export function extractFilesFromSnapshots(snapshots) {
|
|
|
433
473
|
}
|
|
434
474
|
/** Compute a diff between two evidence collections (before → after).
|
|
435
475
|
* Returns files that appeared in the after-snapshot but not the before.
|
|
436
|
-
* Used by
|
|
476
|
+
* Used by runtime.ts to compute runtimeFilesChanged. */
|
|
437
477
|
function snapshotFingerprints(snapshot) {
|
|
438
478
|
const value = snapshot.data.fingerprints;
|
|
439
479
|
if (!value || typeof value !== "object" || Array.isArray(value))
|