@namzu/sdk 39.0.0 → 40.0.0
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/CHANGELOG.md +151 -0
- package/dist/connector/mcp/adapter.d.ts.map +1 -1
- package/dist/connector/mcp/adapter.js +20 -6
- package/dist/connector/mcp/adapter.js.map +1 -1
- package/dist/manager/run/persistence.d.ts +8 -0
- package/dist/manager/run/persistence.d.ts.map +1 -1
- package/dist/manager/run/persistence.js +12 -0
- package/dist/manager/run/persistence.js.map +1 -1
- package/dist/public-runtime.d.ts +3 -1
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +5 -1
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-tools.d.ts +11 -0
- package/dist/public-tools.d.ts.map +1 -1
- package/dist/public-tools.js +14 -0
- package/dist/public-tools.js.map +1 -1
- package/dist/registry/tool/execute.d.ts.map +1 -1
- package/dist/registry/tool/execute.js +2 -3
- package/dist/registry/tool/execute.js.map +1 -1
- package/dist/registry/tool/portable.d.ts +65 -0
- package/dist/registry/tool/portable.d.ts.map +1 -0
- package/dist/registry/tool/portable.js +244 -0
- package/dist/registry/tool/portable.js.map +1 -0
- package/dist/registry/tool/schema.d.ts +32 -5
- package/dist/registry/tool/schema.d.ts.map +1 -1
- package/dist/registry/tool/schema.js +35 -9
- package/dist/registry/tool/schema.js.map +1 -1
- package/dist/registry/toolset/catalog.js +8 -8
- package/dist/registry/toolset/catalog.js.map +1 -1
- package/dist/runtime/jobs/awaited-jobs.d.ts +215 -0
- package/dist/runtime/jobs/awaited-jobs.d.ts.map +1 -0
- package/dist/runtime/jobs/awaited-jobs.js +259 -0
- package/dist/runtime/jobs/awaited-jobs.js.map +1 -0
- package/dist/runtime/jobs/registry.d.ts +33 -2
- package/dist/runtime/jobs/registry.d.ts.map +1 -1
- package/dist/runtime/jobs/registry.js +37 -0
- package/dist/runtime/jobs/registry.js.map +1 -1
- package/dist/runtime/query/executor.d.ts +28 -0
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +39 -1
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/file-evidence-context.d.ts.map +1 -1
- package/dist/runtime/query/file-evidence-context.js +159 -43
- package/dist/runtime/query/file-evidence-context.js.map +1 -1
- package/dist/runtime/query/file-evidence-replay.d.ts +260 -0
- package/dist/runtime/query/file-evidence-replay.d.ts.map +1 -0
- package/dist/runtime/query/file-evidence-replay.js +647 -0
- package/dist/runtime/query/file-evidence-replay.js.map +1 -0
- package/dist/runtime/query/file-evidence-seed.d.ts +50 -0
- package/dist/runtime/query/file-evidence-seed.d.ts.map +1 -0
- package/dist/runtime/query/file-evidence-seed.js +100 -0
- package/dist/runtime/query/file-evidence-seed.js.map +1 -0
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +94 -2
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts +87 -9
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +193 -28
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +10 -0
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.js +5 -1
- package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
- package/dist/runtime/query/plugin-hooks.d.ts +14 -0
- package/dist/runtime/query/plugin-hooks.d.ts.map +1 -1
- package/dist/runtime/query/plugin-hooks.js +18 -0
- package/dist/runtime/query/plugin-hooks.js.map +1 -1
- package/dist/runtime/query/repeat-call.d.ts +17 -4
- package/dist/runtime/query/repeat-call.d.ts.map +1 -1
- package/dist/runtime/query/repeat-call.js +26 -19
- package/dist/runtime/query/repeat-call.js.map +1 -1
- package/dist/runtime/query/steering.d.ts +11 -1
- package/dist/runtime/query/steering.d.ts.map +1 -1
- package/dist/runtime/query/steering.js +12 -1
- package/dist/runtime/query/steering.js.map +1 -1
- package/dist/runtime/query/tooling.d.ts +2 -0
- package/dist/runtime/query/tooling.d.ts.map +1 -1
- package/dist/runtime/query/tooling.js +1 -0
- package/dist/runtime/query/tooling.js.map +1 -1
- package/dist/scheduler/completion-inbox.d.ts +48 -2
- package/dist/scheduler/completion-inbox.d.ts.map +1 -1
- package/dist/scheduler/completion-inbox.js +102 -10
- package/dist/scheduler/completion-inbox.js.map +1 -1
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +4 -10
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/builtins/edit-apply.d.ts +126 -0
- package/dist/tools/builtins/edit-apply.d.ts.map +1 -0
- package/dist/tools/builtins/edit-apply.js +360 -0
- package/dist/tools/builtins/edit-apply.js.map +1 -0
- package/dist/tools/builtins/edit.d.ts +143 -1
- package/dist/tools/builtins/edit.d.ts.map +1 -1
- package/dist/tools/builtins/edit.js +37 -219
- package/dist/tools/builtins/edit.js.map +1 -1
- package/dist/tools/builtins/index.d.ts +1 -0
- package/dist/tools/builtins/index.d.ts.map +1 -1
- package/dist/tools/builtins/index.js +9 -3
- package/dist/tools/builtins/index.js.map +1 -1
- package/dist/tools/builtins/job.js +1 -1
- package/dist/tools/builtins/job.js.map +1 -1
- package/dist/tools/builtins/read-file.d.ts +2 -2
- package/dist/tools/builtins/read-file.d.ts.map +1 -1
- package/dist/tools/builtins/read-file.js +50 -65
- package/dist/tools/builtins/read-file.js.map +1 -1
- package/dist/tools/builtins/read-render.d.ts +56 -0
- package/dist/tools/builtins/read-render.d.ts.map +1 -0
- package/dist/tools/builtins/read-render.js +73 -0
- package/dist/tools/builtins/read-render.js.map +1 -0
- package/dist/tools/builtins/wait-for-job-bounds.d.ts +67 -0
- package/dist/tools/builtins/wait-for-job-bounds.d.ts.map +1 -0
- package/dist/tools/builtins/wait-for-job-bounds.js +108 -0
- package/dist/tools/builtins/wait-for-job-bounds.js.map +1 -0
- package/dist/tools/builtins/wait-for-job.d.ts +6 -0
- package/dist/tools/builtins/wait-for-job.d.ts.map +1 -0
- package/dist/tools/builtins/wait-for-job.js +162 -0
- package/dist/tools/builtins/wait-for-job.js.map +1 -0
- package/dist/tools/builtins/write-file.js +5 -0
- package/dist/tools/builtins/write-file.js.map +1 -1
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +1 -7
- package/dist/tools/coordinator/index.js.map +1 -1
- package/dist/tools/file-read-tracker.d.ts.map +1 -1
- package/dist/tools/file-read-tracker.js +88 -10
- package/dist/tools/file-read-tracker.js.map +1 -1
- package/dist/types/message/index.d.ts +1 -1
- package/dist/types/message/index.d.ts.map +1 -1
- package/dist/types/message/index.js +2 -0
- package/dist/types/message/index.js.map +1 -1
- package/dist/types/run/entity.d.ts +13 -0
- package/dist/types/run/entity.d.ts.map +1 -1
- package/dist/types/sandbox/index.d.ts +15 -14
- package/dist/types/sandbox/index.d.ts.map +1 -1
- package/dist/types/sandbox/index.js.map +1 -1
- package/dist/types/tool/index.d.ts +109 -0
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/types/tool/index.js.map +1 -1
- package/dist/utils/env.d.ts +19 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +25 -0
- package/dist/utils/env.js.map +1 -0
- package/package.json +1 -1
- package/src/connector/mcp/adapter.ts +20 -6
- package/src/manager/run/persistence.ts +12 -0
- package/src/public-runtime.ts +9 -1
- package/src/public-tools.ts +18 -0
- package/src/registry/tool/execute.ts +2 -4
- package/src/registry/tool/portable.ts +264 -0
- package/src/registry/tool/schema.ts +38 -8
- package/src/registry/toolset/catalog.ts +8 -9
- package/src/runtime/jobs/awaited-jobs.ts +271 -0
- package/src/runtime/jobs/registry.ts +50 -0
- package/src/runtime/query/executor.ts +49 -1
- package/src/runtime/query/file-evidence-context.ts +190 -46
- package/src/runtime/query/file-evidence-replay.ts +776 -0
- package/src/runtime/query/file-evidence-seed.ts +126 -0
- package/src/runtime/query/index.ts +104 -2
- package/src/runtime/query/iteration/index.ts +202 -28
- package/src/runtime/query/iteration/phases/context.ts +10 -0
- package/src/runtime/query/iteration/phases/tool-review.ts +4 -0
- package/src/runtime/query/plugin-hooks.ts +20 -0
- package/src/runtime/query/repeat-call.ts +28 -18
- package/src/runtime/query/steering.ts +11 -0
- package/src/runtime/query/tooling.ts +3 -0
- package/src/scheduler/completion-inbox.ts +105 -9
- package/src/tools/builtins/bash.ts +4 -10
- package/src/tools/builtins/edit-apply.ts +456 -0
- package/src/tools/builtins/edit.ts +39 -270
- package/src/tools/builtins/index.ts +9 -3
- package/src/tools/builtins/job.ts +1 -1
- package/src/tools/builtins/read-file.ts +56 -77
- package/src/tools/builtins/read-render.ts +104 -0
- package/src/tools/builtins/wait-for-job-bounds.ts +179 -0
- package/src/tools/builtins/wait-for-job.ts +184 -0
- package/src/tools/builtins/write-file.ts +5 -0
- package/src/tools/coordinator/index.ts +1 -7
- package/src/tools/file-read-tracker.ts +85 -7
- package/src/types/message/index.ts +2 -0
- package/src/types/run/entity.ts +14 -0
- package/src/types/sandbox/index.ts +15 -14
- package/src/types/tool/index.ts +104 -0
- package/src/utils/env.ts +23 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-evidence-replay.js","sourceRoot":"","sources":["../../../src/runtime/query/file-evidence-replay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAA;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAEN,kBAAkB,EAClB,iBAAiB,GACjB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAGlE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAEvD;;;;;;;;;;;GAWG;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAA;AAE/B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,GAAG,IAAI,CAAA;AAE5C;;;;;;;;;GASG;AACH,MAAM,kBAAkB,GAAG,MAAM,CAAA;AAEjC,+CAA+C;AAC/C,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAE7B;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;AAEjC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAAA;AAczC,MAAM,UAAU,sBAAsB;IACrC,OAAO,IAAI,OAAO,EAAE,CAAA;AACrB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,IAAc;IACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,qBAAqB;QAAE,OAAO,SAAS,CAAA;IAC5E,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IAC3C,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAA;IACjB,CAAC;AACF,CAAC;AAiBD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,gBAAwB,EAAE,SAAkB;IAC3E,OAAO,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAA;AAC9E,CAAC;AAYD;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAClC,QAA4B,EAC5B,KAAsB;IAEtB,MAAM,KAAK,GAAG,IAAI,GAAG,EAA2B,CAAA;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAA;IACjD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAClC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;gBAC5C,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACrD,CAAC;QACF,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAClF,CAAC;IACF,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AACjC,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,oBAAoB,CACnC,QAA4B,EAC5B,eAAiC,sBAAsB,EAAE;IAEzD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IAC/B,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW;YAAE,SAAQ;QAC1C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAA;YAC/B,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM;gBAAE,SAAQ;YACpE,IAAI,IAAI,KAAK,MAAM;gBAAE,OAAO,GAAG,IAAI,CAAA;YACnC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;YAC7C,IAAI,IAAI,KAAK,SAAS;gBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACxC,CAAC;IACF,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACjC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAS,YAAY,CAAC,IAAc,EAAE,YAA8B;IACnE,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACzC,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,UAAU,IAAI,SAAS,CAAA;IAC5D,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,QAAQ,GACb,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAE,MAA6B,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAChG,MAAM,IAAI,GAAG,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;IAClF,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC5B,OAAO,IAAI,IAAI,SAAS,CAAA;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,WAAW,CAC1B,OAAuB,EACvB,EAAU,EACV,IAA+B;IAE/B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACvC,IACC,CAAC,IAAI;QACL,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI;QAC3B,IAAI,CAAC,QAAQ,EAAE,cAAc;QAC7B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,kBAAkB;QACnD,EAAE,CAAC,MAAM,GAAG,iBAAiB;QAC7B,CAAC,OAAO;QACR,OAAO,CAAC,IAAI,KAAK,MAAM;QACvB,OAAO,CAAC,OAAO;QACf,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QACnC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC;QACpC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;QAE1C,OAAO,SAAS,CAAA;IACjB,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,YAAY,CAC3B,OAAuB,EACvB,EAAU;IAEV,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;IAC9C,IAAI,CAAC,IAAI;QAAE,OAAM;IACjB,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;IACvE,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,cAAc;QAAE,OAAM;IACrE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAA;IACpD,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAM;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAM;IAC7B,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAC1B,OAAuB,EACvB,EAAU;IAEV,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IAC7C,IAAI,CAAC,IAAI;QAAE,OAAM;IACjB,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAM;IAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAM;IAC7B,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;AAClC,CAAC;AAOD,MAAM,UAAU,kBAAkB,CAAC,QAAgB,kBAAkB;IACpE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAAC,MAAoB,EAAE,KAAa;IACxD,IAAI,KAAK,GAAG,MAAM,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA;IAC1C,MAAM,CAAC,SAAS,IAAI,KAAK,CAAA;IACzB,OAAO,IAAI,CAAA;AACZ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CACxB,OAAe,EACf,KAAc,EACd,MAAoB;IAEpB,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;IACrE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACjE,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;AAClE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,OAAwB,EAAE,GAAW;IAC/D,OAAO,OAAO,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAA;AAC7C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAA;AAoCpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAM,UAAU,uBAAuB,CACtC,QAA4B,EAC5B,OAAwB,EACxB,KAAsB,EACtB,eAAiC,sBAAsB,EAAE;IAEzD,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IACpD,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAA;IACnC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAA;IACvC,wEAAwE;IACxE,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;IAElC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW;YAAE,SAAQ;QAC1C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAA;YAC/B,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM;gBAAE,SAAQ;YACpE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC5C,qEAAqE;YACrE,qEAAqE;YACrE,sEAAsE;YACtE,uEAAuE;YACvE,sEAAsE;YACtE,sCAAsC;YACtC,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO,MAAM,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;YAC/D,MAAM,QAAQ,GAAG,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAA;YACrF,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACrB,qEAAqE;gBACrE,oEAAoE;gBACpE,uEAAuE;gBACvE,8BAA8B;gBAC9B,IAAI,QAAQ;oBAAE,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;gBAClE,SAAQ;YACT,CAAC;YACD,sEAAsE;YACtE,qEAAqE;YACrE,sEAAsE;YACtE,mEAAmE;YACnE,iEAAiE;YACjE,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI;gBAAE,OAAO,MAAM,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;YAClF,0EAA0E;YAC1E,0EAA0E;YAC1E,0EAA0E;YAC1E,0EAA0E;YAC1E,sEAAsE;YACtE,wEAAwE;YACxE,0EAA0E;YAC1E,mEAAmE;YACnE,0EAA0E;YAC1E,2EAA2E;YAC3E,uEAAuE;YACvE,oBAAoB;YACpB,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;YACnD,IAAI,GAAG,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;YAChE,MAAM,KAAK,GAAU,QAAQ;gBAC5B,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;gBAC3D,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;YACnB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACtB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;gBAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC/C,oEAAoE;YACpE,qEAAqE;YACrE,mEAAmE;YACnE,4DAA4D;YAC5D,IAAI,QAAQ,CAAC,IAAI,GAAG,mBAAmB,EAAE,CAAC;gBACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAe,CAAA;gBACvD,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBACvB,kEAAkE;gBAClE,6DAA6D;gBAC7D,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;YACrC,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AACvC,CAAC;AAED,kFAAkF;AAClF,SAAS,MAAM,CACd,OAAwB,EACxB,MAAkC,EAClC,MAAoB;IAEpB,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,uEAAuE;YACvE,kEAAkE;YAClE,uEAAuE;YACvE,kEAAkE;YAClE,+DAA+D;YAC/D,kEAAkE;YAClE,SAAS,EAAE,CAAA;YACX,SAAQ;QACT,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC3B,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YAChD,CAAC;iBAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC/B,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YACnD,CAAC;iBAAM,CAAC;gBACP,oEAAoE;gBACpE,8DAA8D;gBAC9D,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;YACtC,CAAC;QACF,CAAC;QACD,cAAc,EAAE,CAAA;IACjB,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;AAC3F,CAAC;AAED,0DAA0D;AAC1D,SAAS,MAAM,CACd,OAAuB,EACvB,IAAc,EACd,IAAsB,EACtB,GAAW,EACX,KAAwB,EACxB,MAAoB;IAEpB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAC9C,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,sEAAsE;QACtE,wEAAwE;QACxE,sEAAsE;QACtE,yEAAyE;QACzE,qEAAqE;QACrE,mCAAmC;QACnC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;QAC5D,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;QAChE,4DAA4D;QAC5D,OAAO;YACN,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;SAC/D,CAAA;IACF,CAAC;IACD,uEAAuE;IACvE,4EAA4E;IAC5E,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IAC/D,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IAChE,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IACzC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACpD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACzD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACnD,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAA;IACrB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IACtE,OAAO,KAAK,CAAA;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,WAAW,CACnB,OAAuB,EACvB,IAAc,EACd,MAA0B,EAC1B,QAAqB,EACrB,MAAoB;IAEpB,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACtC,IAAI,CAAC,IAAI;QAAE,OAAM;IACjB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAM;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAA;IACnD,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,6DAA6D;QAC7D,MAAM,KAAK,GACV,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAC7F,yEAAyE;QACzE,oEAAoE;QACpE,0EAA0E;QAC1E,0EAA0E;QAC1E,uEAAuE;QACvE,4DAA4D;QAC5D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YAC5D,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK;gBAAE,OAAM;QAC3D,CAAC;IACF,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IACtC,yEAAyE;IACzE,yEAAyE;IACzE,wEAAwE;IACxE,mEAAmE;IACnE,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,oBAAoB,CAAC,IAAY,EAAE,MAAyB;IACpE,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACvD,IAAI,KAAK,KAAK,CAAC,IAAI,GAAG,GAAG,KAAK;QAAE,OAAO,SAAS,CAAA;IAChD,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;AACpD,CAAC;AAED,kFAAkF;AAClF,SAAS,UAAU,CAAC,IAAY;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAAE,KAAK,EAAE,CAAA;IACrF,OAAO,KAAK,CAAA;AACb,CAAC;AAED,0FAA0F;AAC1F,SAAS,eAAe,CAAC,KAAa;IACrC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;QAClE,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;IAC/D,OAAO,KAAK,CAAA;AACb,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,UAAU,CAClB,OAAuB,EACvB,IAAc,EACd,YAA8B;IAE9B,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;IAC7C,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC5D,CAAC;AAED,qDAAqD;AACrD,SAAS,UAAU,CAClB,OAAuB,EACvB,IAAc;IAEd,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;IACtE,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1C,yEAAyE;IACzE,uEAAuE;IACvE,mDAAmD;IACnD,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;AACnE,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { Message } from '../../types/message/index.js';
|
|
2
|
+
import type { FileReadTracker } from '../../types/tool/index.js';
|
|
3
|
+
import { type LedgerReplayReport } from './file-evidence-replay.js';
|
|
4
|
+
/**
|
|
5
|
+
* Distinct paths one seeding will canonicalize before it replays anything.
|
|
6
|
+
*
|
|
7
|
+
* A ceiling rather than a budget because the work is uniform: each path is a
|
|
8
|
+
* handful of `realpath` calls, once per conversation. Counted on distinct
|
|
9
|
+
* SPELLINGS, the ones only `read` names included — a read has to be keyed too
|
|
10
|
+
* or it cannot contradict a claim — so two spellings of one file count twice.
|
|
11
|
+
* A history naming more paths than this is not a conversation whose ledger is
|
|
12
|
+
* worth guessing at, and it seeds nothing rather than resolving a prefix and
|
|
13
|
+
* abandoning the rest — a partially keyed walk is a walk that cannot say what
|
|
14
|
+
* a mutation replaced. That is a total loss for the conversation, not a partial
|
|
15
|
+
* one: it starts from the empty ledger a resume has always started from, and
|
|
16
|
+
* its first mutation of each path re-establishes it.
|
|
17
|
+
*/
|
|
18
|
+
export declare const MAX_RESOLVED_PATHS = 1024;
|
|
19
|
+
/** What a caller needs to key a path the way its tools will. */
|
|
20
|
+
export interface ObservationSeedContext {
|
|
21
|
+
readonly workingDirectory: string;
|
|
22
|
+
/** See `ToolContext.additionalDirectories`; part of the tools' resolution. */
|
|
23
|
+
readonly additionalDirectories?: readonly string[];
|
|
24
|
+
/** True when this run's tools address a sandbox, whose keys are paths as written. */
|
|
25
|
+
readonly sandboxed?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Rebuild `tracker` from a conversation's own `messages`.
|
|
29
|
+
*
|
|
30
|
+
* For a host that keeps one tracker per conversation and has just restored one:
|
|
31
|
+
* the ledger is process memory, so a resumed conversation starts with nothing
|
|
32
|
+
* in it and re-reads files whose whole body is already in the transcript. Call
|
|
33
|
+
* it once, before the conversation's first request. Reading files is confined
|
|
34
|
+
* to canonicalizing the paths in the history; no file's CONTENT is read, and
|
|
35
|
+
* every body restored is one the visible calls reconstruct exactly.
|
|
36
|
+
*
|
|
37
|
+
* Content-backed observations, and only those. A path the walk cannot rebuild
|
|
38
|
+
* is left out of the ledger rather than entered without a fingerprint, so
|
|
39
|
+
* `write`'s read-before-overwrite refusal stands over it exactly as it does
|
|
40
|
+
* against the empty ledger a resume gets today. Three things seed nothing at
|
|
41
|
+
* all, and the report says so: a history naming more than
|
|
42
|
+
* {@link MAX_RESOLVED_PATHS} distinct path spellings, one whose ids are
|
|
43
|
+
* ambiguous, and one holding a mutation no path can be recovered from —
|
|
44
|
+
* whatever the transcript says came back to that mutation, since a key is what
|
|
45
|
+
* withdrawing one path rather than the whole pass takes. A call whose arguments
|
|
46
|
+
* are too long to read as JSON at all is one of that last kind; the replay
|
|
47
|
+
* states the ceiling.
|
|
48
|
+
*/
|
|
49
|
+
export declare function seedObservationLedger(messages: readonly Message[], tracker: FileReadTracker, context: ObservationSeedContext): Promise<LedgerReplayReport>;
|
|
50
|
+
//# sourceMappingURL=file-evidence-seed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-evidence-seed.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/file-evidence-seed.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAEN,KAAK,kBAAkB,EAKvB,MAAM,2BAA2B,CAAA;AAsBlC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,OAAO,CAAA;AAEtC,gEAAgE;AAChE,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClD,qFAAqF;IACrF,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,qBAAqB,CAC1C,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,sBAAsB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAS7B"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { resolveWithinAnyReal, toolRoots } from '../../tools/paths.js';
|
|
2
|
+
import { collectObservedPaths, createPathAttributions, replayObservationLedger, } from './file-evidence-replay.js';
|
|
3
|
+
/**
|
|
4
|
+
* Seeding an observation ledger from history, in the key space the tools use.
|
|
5
|
+
*
|
|
6
|
+
* The replay itself is pure and stays that way. What lives here is the one
|
|
7
|
+
* thing it cannot do for itself: work out which ledger key each path in the
|
|
8
|
+
* history belongs to. On a host that is not `resolve(cwd, path)` — `write`,
|
|
9
|
+
* `edit` and `read` all key on `resolveWithinAnyReal`, which canonicalizes
|
|
10
|
+
* every symlink on the way, because a ledger entry has to identify a FILE and
|
|
11
|
+
* two spellings of one file must not become two entries.
|
|
12
|
+
*
|
|
13
|
+
* Seeding lexically instead is worse than useless. The projection looks up
|
|
14
|
+
* lexically too, so it would match a fingerprint the seed had just written into
|
|
15
|
+
* a key space nothing else touches — while every drift refusal, made by a tool,
|
|
16
|
+
* lands on the canonical key and never withdraws it. The runtime would go on
|
|
17
|
+
* telling the model a body it can no longer vouch for, with no mechanism left
|
|
18
|
+
* to take it back. So the resolution happens here, with the tools' own
|
|
19
|
+
* function, and a path that will not resolve gets no key at all.
|
|
20
|
+
*/
|
|
21
|
+
const NOTHING = { pathsWitnessed: 0, pathsSeen: 0, unitsReplayed: 0 };
|
|
22
|
+
/**
|
|
23
|
+
* Distinct paths one seeding will canonicalize before it replays anything.
|
|
24
|
+
*
|
|
25
|
+
* A ceiling rather than a budget because the work is uniform: each path is a
|
|
26
|
+
* handful of `realpath` calls, once per conversation. Counted on distinct
|
|
27
|
+
* SPELLINGS, the ones only `read` names included — a read has to be keyed too
|
|
28
|
+
* or it cannot contradict a claim — so two spellings of one file count twice.
|
|
29
|
+
* A history naming more paths than this is not a conversation whose ledger is
|
|
30
|
+
* worth guessing at, and it seeds nothing rather than resolving a prefix and
|
|
31
|
+
* abandoning the rest — a partially keyed walk is a walk that cannot say what
|
|
32
|
+
* a mutation replaced. That is a total loss for the conversation, not a partial
|
|
33
|
+
* one: it starts from the empty ledger a resume has always started from, and
|
|
34
|
+
* its first mutation of each path re-establishes it.
|
|
35
|
+
*/
|
|
36
|
+
export const MAX_RESOLVED_PATHS = 1024;
|
|
37
|
+
/**
|
|
38
|
+
* Rebuild `tracker` from a conversation's own `messages`.
|
|
39
|
+
*
|
|
40
|
+
* For a host that keeps one tracker per conversation and has just restored one:
|
|
41
|
+
* the ledger is process memory, so a resumed conversation starts with nothing
|
|
42
|
+
* in it and re-reads files whose whole body is already in the transcript. Call
|
|
43
|
+
* it once, before the conversation's first request. Reading files is confined
|
|
44
|
+
* to canonicalizing the paths in the history; no file's CONTENT is read, and
|
|
45
|
+
* every body restored is one the visible calls reconstruct exactly.
|
|
46
|
+
*
|
|
47
|
+
* Content-backed observations, and only those. A path the walk cannot rebuild
|
|
48
|
+
* is left out of the ledger rather than entered without a fingerprint, so
|
|
49
|
+
* `write`'s read-before-overwrite refusal stands over it exactly as it does
|
|
50
|
+
* against the empty ledger a resume gets today. Three things seed nothing at
|
|
51
|
+
* all, and the report says so: a history naming more than
|
|
52
|
+
* {@link MAX_RESOLVED_PATHS} distinct path spellings, one whose ids are
|
|
53
|
+
* ambiguous, and one holding a mutation no path can be recovered from —
|
|
54
|
+
* whatever the transcript says came back to that mutation, since a key is what
|
|
55
|
+
* withdrawing one path rather than the whole pass takes. A call whose arguments
|
|
56
|
+
* are too long to read as JSON at all is one of that last kind; the replay
|
|
57
|
+
* states the ceiling.
|
|
58
|
+
*/
|
|
59
|
+
export async function seedObservationLedger(messages, tracker, context) {
|
|
60
|
+
// One attribution cache across both halves. The path collection and the
|
|
61
|
+
// walk ask the same question of the same calls — which file did this touch
|
|
62
|
+
// — and answering it means reading a string that, for a `write`, is a whole
|
|
63
|
+
// file body. Asking once per seeding rather than once per half is why the
|
|
64
|
+
// replay's own ceiling on that read can be as generous as it is.
|
|
65
|
+
const attributions = createPathAttributions();
|
|
66
|
+
const keyOf = await resolveObservedFileKeys(messages, context, attributions);
|
|
67
|
+
return keyOf ? replayObservationLedger(messages, tracker, keyOf, attributions) : NOTHING;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* The tools' key for every path this history names, or `undefined` when the
|
|
71
|
+
* pass should not run at all.
|
|
72
|
+
*
|
|
73
|
+
* `undefined` for a history with nothing to reconstruct and for one past the
|
|
74
|
+
* ceiling. A path the resolver refuses — it escapes the roots this run may
|
|
75
|
+
* reach, or the working directory itself is gone — is simply left unkeyed;
|
|
76
|
+
* the replay then treats the mutation that named it as unattributable, which
|
|
77
|
+
* is the fail-closed answer and the same one it gives a call it cannot parse.
|
|
78
|
+
*/
|
|
79
|
+
async function resolveObservedFileKeys(messages, context, attributions) {
|
|
80
|
+
const paths = collectObservedPaths(messages, attributions);
|
|
81
|
+
if (paths.length === 0 || paths.length > MAX_RESOLVED_PATHS)
|
|
82
|
+
return undefined;
|
|
83
|
+
// A sandbox has its own root and its own resolver, and the tools key on the
|
|
84
|
+
// path as written there. Canonicalizing it against the host filesystem would
|
|
85
|
+
// ask about the wrong machine.
|
|
86
|
+
if (context.sandboxed)
|
|
87
|
+
return (path) => path;
|
|
88
|
+
const roots = toolRoots(context);
|
|
89
|
+
const keys = new Map();
|
|
90
|
+
for (const path of paths) {
|
|
91
|
+
try {
|
|
92
|
+
keys.set(path, await resolveWithinAnyReal(roots, path));
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
// Left unkeyed on purpose; see above.
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return (path) => keys.get(path);
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=file-evidence-seed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-evidence-seed.js","sourceRoot":"","sources":["../../../src/runtime/query/file-evidence-seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAGtE,OAAO,EAIN,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,GACvB,MAAM,2BAA2B,CAAA;AAElC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,GAAuB,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAA;AAEzF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAWtC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,QAA4B,EAC5B,OAAwB,EACxB,OAA+B;IAE/B,wEAAwE;IACxE,2EAA2E;IAC3E,4EAA4E;IAC5E,0EAA0E;IAC1E,iEAAiE;IACjE,MAAM,YAAY,GAAG,sBAAsB,EAAE,CAAA;IAC7C,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;IAC5E,OAAO,KAAK,CAAC,CAAC,CAAC,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;AACzF,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,uBAAuB,CACrC,QAA4B,EAC5B,OAA+B,EAC/B,YAA8B;IAE9B,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,kBAAkB;QAAE,OAAO,SAAS,CAAA;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,+BAA+B;IAC/B,IAAI,OAAO,CAAC,SAAS;QAAE,OAAO,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAA;IACpD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;IAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAA;IACtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;QACxD,CAAC;QAAC,MAAM,CAAC;YACR,sCAAsC;QACvC,CAAC;IACF,CAAC;IACD,OAAO,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACxC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,7 @@ import { memoryCandidateFor } from '../../types/run/memory-promotion.js';
|
|
|
36
36
|
import { toErrorMessage } from '../../utils/error.js';
|
|
37
37
|
import { generateCheckpointId, generateRunId } from '../../utils/id.js';
|
|
38
38
|
import { errorAttributes } from '../../utils/log/exception.js';
|
|
39
|
+
import { AwaitedJobs } from '../jobs/awaited-jobs.js';
|
|
39
40
|
import { AUTO_APPROVE_POLICY_NAME, createRunApprovalPolicy } from './approval-policy.js';
|
|
40
41
|
import { CheckpointManager } from './checkpoint.js';
|
|
41
42
|
import { RunContextFactory } from './context.js';
|
|
@@ -249,6 +250,50 @@ function withoutOwnedResumeTurn(messages, assistant) {
|
|
|
249
250
|
return messages.filter((message, index) => index !== ownerIndex &&
|
|
250
251
|
!(index > ownerIndex && message.role === 'tool' && ownedIds.has(message.toolCallId)));
|
|
251
252
|
}
|
|
253
|
+
/**
|
|
254
|
+
* The history plus the part of the owned resume turn that already RAN, for the
|
|
255
|
+
* observation ledger to be seeded from.
|
|
256
|
+
*
|
|
257
|
+
* `withoutOwnedResumeTurn` takes that turn out so generic repair cannot answer
|
|
258
|
+
* it, and the plan re-appends it much later — after the sandbox exists, after
|
|
259
|
+
* the input guardrails, immediately before the loop. Seeding from the list the
|
|
260
|
+
* model finally sees would therefore have to happen after `applyPendingResume`,
|
|
261
|
+
* and that is the wrong seam for a reason that is not about ordering: the plan
|
|
262
|
+
* does not merely re-append the turn, it EXECUTES the calls in it that never
|
|
263
|
+
* started. Those tools read the ledger this seeding builds, so a seed placed
|
|
264
|
+
* after them would refuse the very write the resume exists to carry out — no
|
|
265
|
+
* `hasRead` for a file the conversation had read three turns earlier.
|
|
266
|
+
*
|
|
267
|
+
* So the turn is folded in here instead, and only as far as it actually got.
|
|
268
|
+
* A call `recoverCompletedCalls` found an outcome for is one that ran: its
|
|
269
|
+
* receipt goes in beside it, and the walk reads it exactly as it reads any
|
|
270
|
+
* other — a completed `write` restores the body it put there, and the
|
|
271
|
+
* unknown-outcome result the recovery writes for an interrupted one withdraws
|
|
272
|
+
* the path instead. A call ABSENT from that map is absent because a complete
|
|
273
|
+
* scan proved it has no recorded start, so the file it names is untouched and
|
|
274
|
+
* the claim history established for it still stands; leaving it out is what
|
|
275
|
+
* lets it execute in a moment. Without any of this the seed never saw the
|
|
276
|
+
* turn at all, and an executed write inside it left the pre-write body standing
|
|
277
|
+
* as a claim until the next mutation's drift check happened to catch it.
|
|
278
|
+
*/
|
|
279
|
+
function withOwnedResumeOutcomes(messages, assistant, recovered) {
|
|
280
|
+
const ran = (assistant.toolCalls ?? []).flatMap((call) => {
|
|
281
|
+
const outcome = recovered.get(call.id);
|
|
282
|
+
return outcome ? [{ call, outcome }] : [];
|
|
283
|
+
});
|
|
284
|
+
if (ran.length === 0)
|
|
285
|
+
return [...messages];
|
|
286
|
+
return [
|
|
287
|
+
...messages,
|
|
288
|
+
{ ...assistant, toolCalls: ran.map(({ call }) => call) },
|
|
289
|
+
...ran.map(({ call, outcome }) => ({
|
|
290
|
+
role: 'tool',
|
|
291
|
+
toolCallId: call.id,
|
|
292
|
+
content: outcome.result,
|
|
293
|
+
isError: outcome.isError,
|
|
294
|
+
})),
|
|
295
|
+
];
|
|
296
|
+
}
|
|
252
297
|
export async function* query(params) {
|
|
253
298
|
assertMaxToolCalls(params.maxToolCalls);
|
|
254
299
|
// Required types do not protect JavaScript callers. Reject missing scope
|
|
@@ -881,6 +926,22 @@ export async function* query(params) {
|
|
|
881
926
|
combined.throwIfAborted();
|
|
882
927
|
return source;
|
|
883
928
|
};
|
|
929
|
+
// Whose jobs this run speaks for: its own by default, the session's when
|
|
930
|
+
// the host said so. Resolved before the tools are built, because the
|
|
931
|
+
// wait-intent recorder below is bound into them.
|
|
932
|
+
const jobOwner = params.backgroundJobOwner ?? ctx.runId;
|
|
933
|
+
// What the model reads when a job ends. Built up here, ahead of the
|
|
934
|
+
// subscription that fills it below, because the wait-intent recorder needs
|
|
935
|
+
// to ask whether its text has been read yet.
|
|
936
|
+
const jobNotices = params.backgroundJobs ? new SteeringBinding() : undefined;
|
|
937
|
+
// Jobs the model told `wait_for_job` it is waiting on, which is the only
|
|
938
|
+
// thing that can hold this run open for a job. Built only where there is a
|
|
939
|
+
// registry, so a host with no background mode carries no recorder and the
|
|
940
|
+
// bound ref has no `markAwaited` to offer.
|
|
941
|
+
const awaitedJobs = params.backgroundJobs
|
|
942
|
+
? new AwaitedJobs(params.backgroundJobs, jobOwner, () => jobNotices?.pending ?? false)
|
|
943
|
+
: undefined;
|
|
944
|
+
awaitedJobs?.attach();
|
|
884
945
|
const toolExecutor = ToolingBootstrap.init({
|
|
885
946
|
tools: params.tools,
|
|
886
947
|
runId: ctx.runId,
|
|
@@ -896,6 +957,7 @@ export async function* query(params) {
|
|
|
896
957
|
pluginManager: params.pluginManager,
|
|
897
958
|
...(params.backgroundJobs ? { backgroundJobs: params.backgroundJobs } : {}),
|
|
898
959
|
...(params.backgroundJobOwner ? { backgroundJobOwner: params.backgroundJobOwner } : {}),
|
|
960
|
+
...(awaitedJobs ? { onJobAwaited: (id) => awaitedJobs.expect(id) } : {}),
|
|
899
961
|
// The `skill` tool's registry. Threaded from the run rather than
|
|
900
962
|
// held by the tool, because a tool that reached for a module-level
|
|
901
963
|
// registry would answer about whatever the last run configured.
|
|
@@ -949,8 +1011,6 @@ export async function* query(params) {
|
|
|
949
1011
|
// result, and the host as an event — without either polling. Subscribed
|
|
950
1012
|
// for the owner the run's jobs are bound to, so a session-owned job that
|
|
951
1013
|
// ends during this run is reported here too.
|
|
952
|
-
const jobOwner = params.backgroundJobOwner ?? ctx.runId;
|
|
953
|
-
const jobNotices = params.backgroundJobs ? new SteeringBinding() : undefined;
|
|
954
1014
|
const unsubscribeJobExits = params.backgroundJobs?.onExit((job) => {
|
|
955
1015
|
if (job.owner !== jobOwner)
|
|
956
1016
|
return;
|
|
@@ -1120,6 +1180,7 @@ export async function* query(params) {
|
|
|
1120
1180
|
promptContributions,
|
|
1121
1181
|
...(params.steering ? { steering: params.steering } : {}),
|
|
1122
1182
|
...(jobNotices ? { jobNotices } : {}),
|
|
1183
|
+
...(awaitedJobs ? { awaitedJobs } : {}),
|
|
1123
1184
|
checkpointMgr,
|
|
1124
1185
|
planManager: ctx.planManager,
|
|
1125
1186
|
taskGateway: taskScheduler,
|
|
@@ -1427,6 +1488,34 @@ export async function* query(params) {
|
|
|
1427
1488
|
'namzu.history.synthetic_tool_results_inserted': checkpointRepair.report.syntheticToolResultsInserted,
|
|
1428
1489
|
});
|
|
1429
1490
|
}
|
|
1491
|
+
// The ledger is process state and a resumed run starts with an empty
|
|
1492
|
+
// one, so until something reads a file again this run knows nothing
|
|
1493
|
+
// about files the conversation already wrote in full — and re-reads
|
|
1494
|
+
// them. Rebuilt from the REPAIRED history, which is what the model
|
|
1495
|
+
// is about to be shown, rather than from the checkpoint's own
|
|
1496
|
+
// messages — plus whatever of the owned resume turn actually ran,
|
|
1497
|
+
// which the repaired list does not carry; see
|
|
1498
|
+
// `withOwnedResumeOutcomes`. Reads no file's content: every
|
|
1499
|
+
// fingerprint recovered here is still checked against the real one
|
|
1500
|
+
// at mutation time.
|
|
1501
|
+
try {
|
|
1502
|
+
await toolExecutor.seedFileObservations(pendingResume
|
|
1503
|
+
? withOwnedResumeOutcomes(restoredMessages, pendingResume.assistant, recoveredResults)
|
|
1504
|
+
: restoredMessages, params.sandboxProvider !== undefined);
|
|
1505
|
+
}
|
|
1506
|
+
catch (err) {
|
|
1507
|
+
// A ledger that could not be rebuilt is the empty one every resume
|
|
1508
|
+
// used to get, so the run continues without its witnesses and the
|
|
1509
|
+
// model reads what it needs. Failing the resume over it would trade
|
|
1510
|
+
// a conversation that works for one that does not, to protect an
|
|
1511
|
+
// optimisation. Said out loud all the same, because a seeding that
|
|
1512
|
+
// failed and one that found nothing are otherwise the same silence.
|
|
1513
|
+
ctx.log.debug('Could not rebuild the file observation ledger on resume', {
|
|
1514
|
+
[NAMZU.RUN_ID]: ctx.runMgr.id,
|
|
1515
|
+
'namzu.checkpoint.id': checkpoint.id,
|
|
1516
|
+
'exception.message': err instanceof Error ? err.message : String(err),
|
|
1517
|
+
});
|
|
1518
|
+
}
|
|
1430
1519
|
for (const msg of restoredMessages) {
|
|
1431
1520
|
if (msg.role === 'system') {
|
|
1432
1521
|
// Re-push the FRESH static/dynamic floor (done above) but PRESERVE
|
|
@@ -1892,6 +1981,9 @@ export async function* query(params) {
|
|
|
1892
1981
|
// Awaited, and its failure swallowed. A job that would not die is
|
|
1893
1982
|
// worth a log line, and is not worth retracting a run's answer.
|
|
1894
1983
|
unsubscribeJobExits?.();
|
|
1984
|
+
// The wait-intent recorder listens on the same shared registry and
|
|
1985
|
+
// leaks the same way if it is left attached.
|
|
1986
|
+
awaitedJobs?.close();
|
|
1895
1987
|
// Only jobs bound to this run. Jobs a host bound to its session are
|
|
1896
1988
|
// the host's to stop, when the session ends.
|
|
1897
1989
|
if (params.backgroundJobs && (params.backgroundJobOwner ?? ctx.runId) === ctx.runId) {
|