@earendil-works/pi-agent-core 0.87.1 → 0.99.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/README.md +4 -0
- package/dist/agent-loop.d.ts +27 -2
- package/dist/agent-loop.d.ts.map +1 -1
- package/dist/agent-loop.js +44 -15
- package/dist/agent-loop.js.map +1 -1
- package/dist/agent.d.ts +9 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +3 -0
- package/dist/agent.js.map +1 -1
- package/dist/harness/agent-harness.d.ts.map +1 -1
- package/dist/harness/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/harness/compaction/branch-summarization.js.map +1 -1
- package/dist/harness/compaction/compaction.d.ts.map +1 -1
- package/dist/harness/compaction/compaction.js.map +1 -1
- package/dist/harness/compaction/utils.d.ts.map +1 -1
- package/dist/harness/compaction/utils.js.map +1 -1
- package/dist/harness/config.d.ts.map +1 -1
- package/dist/harness/config.js.map +1 -1
- package/dist/harness/context.d.ts.map +1 -1
- package/dist/harness/context.js.map +1 -1
- package/dist/harness/env/nodejs.d.ts.map +1 -1
- package/dist/harness/env/nodejs.js.map +1 -1
- package/dist/harness/events.d.ts.map +1 -1
- package/dist/harness/events.js.map +1 -1
- package/dist/harness/execution/assistant.d.ts.map +1 -1
- package/dist/harness/execution/assistant.js.map +1 -1
- package/dist/harness/execution/effect-gate.d.ts.map +1 -1
- package/dist/harness/execution/effect-gate.js.map +1 -1
- package/dist/harness/execution/tools.d.ts.map +1 -1
- package/dist/harness/execution/tools.js.map +1 -1
- package/dist/harness/hooks.d.ts.map +1 -1
- package/dist/harness/hooks.js.map +1 -1
- package/dist/harness/messages.d.ts.map +1 -1
- package/dist/harness/messages.js.map +1 -1
- package/dist/harness/pico3/bash.d.ts.map +1 -1
- package/dist/harness/pico3/bash.js.map +1 -1
- package/dist/harness/pico3/bounded.d.ts.map +1 -1
- package/dist/harness/pico3/bounded.js.map +1 -1
- package/dist/harness/pico3/chord.d.ts.map +1 -1
- package/dist/harness/pico3/chord.js.map +1 -1
- package/dist/harness/pico3/context.d.ts.map +1 -1
- package/dist/harness/pico3/context.js.map +1 -1
- package/dist/harness/pico3/harness.d.ts +4 -3
- package/dist/harness/pico3/harness.d.ts.map +1 -1
- package/dist/harness/pico3/harness.js.map +1 -1
- package/dist/harness/pico3/hooks.d.ts +2 -2
- package/dist/harness/pico3/hooks.d.ts.map +1 -1
- package/dist/harness/pico3/hooks.js.map +1 -1
- package/dist/harness/pico3/index.d.ts.map +1 -1
- package/dist/harness/pico3/jsonl.d.ts.map +1 -1
- package/dist/harness/pico3/jsonl.js.map +1 -1
- package/dist/harness/pico3/kinds/collapse.d.ts.map +1 -1
- package/dist/harness/pico3/kinds/collapse.js.map +1 -1
- package/dist/harness/pico3/kinds/entries.d.ts.map +1 -1
- package/dist/harness/pico3/kinds/frames.d.ts.map +1 -1
- package/dist/harness/pico3/kinds/frames.js.map +1 -1
- package/dist/harness/pico3/kinds/generation.d.ts.map +1 -1
- package/dist/harness/pico3/kinds/generation.js.map +1 -1
- package/dist/harness/pico3/kinds/job.d.ts.map +1 -1
- package/dist/harness/pico3/kinds/job.js.map +1 -1
- package/dist/harness/pico3/kinds/plugin.d.ts.map +1 -1
- package/dist/harness/pico3/kinds/plugin.js.map +1 -1
- package/dist/harness/pico3/kinds/post-tools.d.ts.map +1 -1
- package/dist/harness/pico3/kinds/post-tools.js.map +1 -1
- package/dist/harness/pico3/kinds/task-api.d.ts.map +1 -1
- package/dist/harness/pico3/kinds/task-api.js.map +1 -1
- package/dist/harness/pico3/kinds/tool.d.ts.map +1 -1
- package/dist/harness/pico3/kinds/tool.js.map +1 -1
- package/dist/harness/pico3/legacy-tracker.d.ts +11 -0
- package/dist/harness/pico3/legacy-tracker.d.ts.map +1 -0
- package/dist/harness/pico3/legacy-tracker.js +41 -0
- package/dist/harness/pico3/legacy-tracker.js.map +1 -0
- package/dist/harness/pico3/membrane.d.ts.map +1 -1
- package/dist/harness/pico3/membrane.js.map +1 -1
- package/dist/harness/pico3/memory.d.ts +1 -1
- package/dist/harness/pico3/memory.d.ts.map +1 -1
- package/dist/harness/pico3/memory.js.map +1 -1
- package/dist/harness/pico3/scheduler.d.ts +3 -0
- package/dist/harness/pico3/scheduler.d.ts.map +1 -1
- package/dist/harness/pico3/scheduler.js.map +1 -1
- package/dist/harness/pico3/session.d.ts +3 -2
- package/dist/harness/pico3/session.d.ts.map +1 -1
- package/dist/harness/pico3/session.js +5 -4
- package/dist/harness/pico3/session.js.map +1 -1
- package/dist/harness/pico3/system.d.ts +1 -1
- package/dist/harness/pico3/system.d.ts.map +1 -1
- package/dist/harness/pico3/system.js.map +1 -1
- package/dist/harness/pico3/types.d.ts +1 -1
- package/dist/harness/pico3/types.d.ts.map +1 -1
- package/dist/harness/pico3/types.js.map +1 -1
- package/dist/harness/pico3/view.d.ts.map +1 -1
- package/dist/harness/pico3/view.js +6 -12
- package/dist/harness/pico3/view.js.map +1 -1
- package/dist/harness/prompt-templates.d.ts.map +1 -1
- package/dist/harness/prompt-templates.js.map +1 -1
- package/dist/harness/result.d.ts.map +1 -1
- package/dist/harness/result.js.map +1 -1
- package/dist/harness/runtime/drive/boundary.d.ts.map +1 -1
- package/dist/harness/runtime/drive/boundary.js.map +1 -1
- package/dist/harness/runtime/drive/checkpoint.d.ts.map +1 -1
- package/dist/harness/runtime/drive/checkpoint.js.map +1 -1
- package/dist/harness/runtime/drive/deferred.d.ts.map +1 -1
- package/dist/harness/runtime/drive/deferred.js.map +1 -1
- package/dist/harness/runtime/drive/generation.d.ts.map +1 -1
- package/dist/harness/runtime/drive/generation.js.map +1 -1
- package/dist/harness/runtime/drive/reconcile.d.ts.map +1 -1
- package/dist/harness/runtime/drive/reconcile.js.map +1 -1
- package/dist/harness/runtime/drive/recovery.d.ts.map +1 -1
- package/dist/harness/runtime/drive/recovery.js.map +1 -1
- package/dist/harness/runtime/drive/response.d.ts.map +1 -1
- package/dist/harness/runtime/drive/response.js.map +1 -1
- package/dist/harness/runtime/drive/retry.d.ts.map +1 -1
- package/dist/harness/runtime/drive/retry.js.map +1 -1
- package/dist/harness/runtime/drive/structural.d.ts.map +1 -1
- package/dist/harness/runtime/drive/structural.js.map +1 -1
- package/dist/harness/runtime/drive/terminal.d.ts.map +1 -1
- package/dist/harness/runtime/drive/terminal.js.map +1 -1
- package/dist/harness/runtime/drive/tool-placement.d.ts.map +1 -1
- package/dist/harness/runtime/drive/tool-placement.js.map +1 -1
- package/dist/harness/runtime/drive/tools.d.ts.map +1 -1
- package/dist/harness/runtime/drive/tools.js.map +1 -1
- package/dist/harness/runtime/drive.d.ts.map +1 -1
- package/dist/harness/runtime/drive.js.map +1 -1
- package/dist/harness/runtime/harness.d.ts.map +1 -1
- package/dist/harness/runtime/harness.js.map +1 -1
- package/dist/harness/runtime/index.d.ts.map +1 -1
- package/dist/harness/runtime/lane.d.ts +17 -0
- package/dist/harness/runtime/lane.d.ts.map +1 -1
- package/dist/harness/runtime/lane.js.map +1 -1
- package/dist/harness/runtime/progress.d.ts.map +1 -1
- package/dist/harness/runtime/progress.js.map +1 -1
- package/dist/harness/runtime/reducer.d.ts.map +1 -1
- package/dist/harness/runtime/reducer.js.map +1 -1
- package/dist/harness/runtime/restore.d.ts.map +1 -1
- package/dist/harness/runtime/restore.js.map +1 -1
- package/dist/harness/runtime/transcript.d.ts.map +1 -1
- package/dist/harness/runtime/transcript.js.map +1 -1
- package/dist/harness/runtime/types.d.ts.map +1 -1
- package/dist/harness/runtime/types.js.map +1 -1
- package/dist/harness/session/commit.d.ts.map +1 -1
- package/dist/harness/session/commit.js.map +1 -1
- package/dist/harness/session/context.d.ts.map +1 -1
- package/dist/harness/session/context.js.map +1 -1
- package/dist/harness/session/fork-policy.d.ts.map +1 -1
- package/dist/harness/session/fork-policy.js.map +1 -1
- package/dist/harness/session/fork.d.ts.map +1 -1
- package/dist/harness/session/fork.js.map +1 -1
- package/dist/harness/session/in-memory-storage-state.d.ts.map +1 -1
- package/dist/harness/session/in-memory-storage-state.js.map +1 -1
- package/dist/harness/session/index.d.ts.map +1 -1
- package/dist/harness/session/jsonl/codec.d.ts.map +1 -1
- package/dist/harness/session/jsonl/codec.js.map +1 -1
- package/dist/harness/session/jsonl/fork.d.ts.map +1 -1
- package/dist/harness/session/jsonl/fork.js.map +1 -1
- package/dist/harness/session/jsonl/index.d.ts.map +1 -1
- package/dist/harness/session/jsonl/io.d.ts.map +1 -1
- package/dist/harness/session/jsonl/io.js.map +1 -1
- package/dist/harness/session/jsonl/legacy-v3.d.ts +1 -0
- package/dist/harness/session/jsonl/legacy-v3.d.ts.map +1 -1
- package/dist/harness/session/jsonl/legacy-v3.js.map +1 -1
- package/dist/harness/session/jsonl/repo.d.ts.map +1 -1
- package/dist/harness/session/jsonl/repo.js.map +1 -1
- package/dist/harness/session/jsonl/storage.d.ts +1 -0
- package/dist/harness/session/jsonl/storage.d.ts.map +1 -1
- package/dist/harness/session/jsonl/storage.js.map +1 -1
- package/dist/harness/session/jsonl/types.d.ts.map +1 -1
- package/dist/harness/session/memory.d.ts.map +1 -1
- package/dist/harness/session/memory.js.map +1 -1
- package/dist/harness/session/mutation-line.d.ts.map +1 -1
- package/dist/harness/session/mutation-line.js.map +1 -1
- package/dist/harness/session/session.d.ts.map +1 -1
- package/dist/harness/session/session.js.map +1 -1
- package/dist/harness/session/testing/benchmark/datasets.d.ts.map +1 -1
- package/dist/harness/session/testing/benchmark/datasets.js.map +1 -1
- package/dist/harness/session/testing/benchmark/session-repo.d.ts.map +1 -1
- package/dist/harness/session/testing/benchmark/session-repo.js.map +1 -1
- package/dist/harness/session/testing/benchmark/storage.d.ts.map +1 -1
- package/dist/harness/session/testing/benchmark/storage.js.map +1 -1
- package/dist/harness/session/testing/conformance/session-repo.d.ts.map +1 -1
- package/dist/harness/session/testing/conformance/session-repo.js.map +1 -1
- package/dist/harness/session/testing/conformance/storage.d.ts.map +1 -1
- package/dist/harness/session/testing/conformance/storage.js.map +1 -1
- package/dist/harness/session/testing/gating-storage.d.ts.map +1 -1
- package/dist/harness/session/testing/gating-storage.js.map +1 -1
- package/dist/harness/session/testing/index.d.ts.map +1 -1
- package/dist/harness/session/testing/instrumented-storage.d.ts.map +1 -1
- package/dist/harness/session/testing/instrumented-storage.js.map +1 -1
- package/dist/harness/session/testing/storage-decorator.d.ts.map +1 -1
- package/dist/harness/session/testing/storage-decorator.js.map +1 -1
- package/dist/harness/session/testing/types.d.ts.map +1 -1
- package/dist/harness/session/types.d.ts.map +1 -1
- package/dist/harness/session/types.js.map +1 -1
- package/dist/harness/session/values.d.ts +2 -2
- package/dist/harness/session/values.d.ts.map +1 -1
- package/dist/harness/session/values.js.map +1 -1
- package/dist/harness/skills.d.ts.map +1 -1
- package/dist/harness/skills.js.map +1 -1
- package/dist/harness/system-prompt.d.ts.map +1 -1
- package/dist/harness/system-prompt.js.map +1 -1
- package/dist/harness/telemetry.d.ts.map +1 -1
- package/dist/harness/telemetry.js.map +1 -1
- package/dist/harness/tools/bash.d.ts.map +1 -1
- package/dist/harness/tools/bash.js.map +1 -1
- package/dist/harness/tools/edit-diff.d.ts.map +1 -1
- package/dist/harness/tools/edit-diff.js.map +1 -1
- package/dist/harness/tools/edit.d.ts.map +1 -1
- package/dist/harness/tools/edit.js.map +1 -1
- package/dist/harness/tools/file-mutation-queue.d.ts.map +1 -1
- package/dist/harness/tools/file-mutation-queue.js.map +1 -1
- package/dist/harness/tools/image.d.ts.map +1 -1
- package/dist/harness/tools/image.js.map +1 -1
- package/dist/harness/tools/index.d.ts.map +1 -1
- package/dist/harness/tools/path-utils.d.ts.map +1 -1
- package/dist/harness/tools/path-utils.js.map +1 -1
- package/dist/harness/tools/read.d.ts.map +1 -1
- package/dist/harness/tools/read.js.map +1 -1
- package/dist/harness/tools/tool-context.d.ts.map +1 -1
- package/dist/harness/tools/write.d.ts.map +1 -1
- package/dist/harness/tools/write.js.map +1 -1
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/harness/types.js.map +1 -1
- package/dist/harness/utils/adaptive-publisher.d.ts.map +1 -1
- package/dist/harness/utils/adaptive-publisher.js.map +1 -1
- package/dist/harness/utils/output-capture.d.ts.map +1 -1
- package/dist/harness/utils/output-capture.js.map +1 -1
- package/dist/harness/utils/shell-output.d.ts.map +1 -1
- package/dist/harness/utils/shell-output.js.map +1 -1
- package/dist/harness/utils/truncate.d.ts.map +1 -1
- package/dist/harness/utils/truncate.js.map +1 -1
- package/dist/harness/utils/usage.d.ts.map +1 -1
- package/dist/harness/utils/usage.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/node.d.ts.map +1 -1
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js.map +1 -1
- package/dist/search/index.d.ts.map +1 -1
- package/dist/stream-fn.d.ts.map +1 -1
- package/dist/stream-fn.js.map +1 -1
- package/dist/types.d.ts +30 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +9 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/harness/runtime/progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAS,MAAM,qBAAqB,CAAC;AAEhE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,KAAK,EAAa,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,eAAe,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACrB,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,wBAAsB,mBAAmB,CACxC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAalC;AAoCD,wBAAgB,iBAAiB,CAAC,QAAQ,SAAS,MAAM,GAAG,SAAS,EACpE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EACpB,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,MAAM,GACrB,eAAe,CAAC,qBAAqB,CAAC,CAexC;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,SAAS,MAAM,GAAG,SAAS,EACnE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EACpB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GAClB,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAqB3C"
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/harness/runtime/progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAS,MAAM,qBAAqB,CAAC;AAEhE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,KAAK,EAAa,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,eAAe,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACrB,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,wBAAsB,mBAAmB,CACxC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAalC;AAoCD,wBAAgB,iBAAiB,CAAC,QAAQ,SAAS,MAAM,GAAG,SAAS,EACpE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EACpB,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,MAAM,GACrB,eAAe,CAAC,qBAAqB,CAAC,CAexC;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,SAAS,MAAM,GAAG,SAAS,EACnE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EACpB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GAClB,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAqB3C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../src/harness/runtime/progress.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAUvG,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,MAAqB,EACrB,WAAmB,EACnB,eAAuB,EACvB,OAAgB
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../src/harness/runtime/progress.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAUvG,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,MAAqB,EACrB,WAAmB,EACnB,eAAuB,EACvB,OAAgB;IAEhB,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,IAAI,MAAmC,CAAC;IACxC,SAAS,CAAC;QACT,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CACjC,sBAAsB,CAAC,WAAW,EAAE,eAAe,CAAC,EACpD,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAC3E,OAAO,CACP,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK;YAAE,OAAO,MAAM,CAAC;QACvC,MAAM,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,GAAG,EAAE,CAAC;IAC9C,CAAC;AACF,CAAC;AAED,SAAS,YAAY,CACpB,IAAoB,EACpB,KAAY,EACZ,WAA+B,EAC/B,SAAwC;IAExC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,MAAM,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC9C,OAAO;QACN,KAAK,CAAC,IAAI;YACT,IAAI,MAAM;gBAAE,OAAO;YACnB,MAAM,KAAK,GAAG,IAAI;iBAChB,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBACvB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;oBAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;gBACzE,OAAO;oBACN,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBAC3B,IAAI,EAAE,UAAU;oBAChB,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS;iBAC5B,CAAC;YACH,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;iBAChB,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,GAAG,KAAK,CAAC;YACf,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI;YACH,MAAM,GAAG,IAAI,CAAC;QACf,CAAC;QACD,KAAK,CAAC,KAAK;YACV,MAAM,MAAM,CAAC;QACd,CAAC;KACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAChC,IAAoB,EACpB,KAAY,EACZ,eAAuB;IAEvB,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAC3E,OAAO,YAAY,CAClB,IAAI,EACJ,KAAK,EACL,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,EACrC,CAAC,KAAK,EAAE,EAAE;QACT,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;QACnC,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACpC,OAAO,CACN,CAAC,GAAG,CAAC,EAAE,KAAK,0BAA0B,IAAI,GAAG,CAAC,EAAE,KAAK,yBAAyB,CAAC;YAC/E,GAAG,CAAC,eAAe,KAAK,eAAe,CACvC,CAAC;IACH,CAAC,CACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC/B,IAAoB,EACpB,KAAY,EACZ,MAAc,EACd,WAAmB,EACnB,YAAoB;IAEpB,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACnE,OAAO,YAAY,CAClB,IAAI,EACJ,KAAK,EACL,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,EACzC,CAAC,KAAK,EAAE,EAAE;QACT,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAClC,IAAI,SAAS,EAAE,KAAK,CAAC,EAAE,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QAClD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;QACpC,OAAO,CACN,KAAK,CAAC,MAAM,KAAK,MAAM;YACvB,KAAK,CAAC,KAAK,CAAC,IAAI,CACf,CAAC,IAAI,EAAE,EAAE,CACR,IAAI,CAAC,WAAW,KAAK,WAAW;gBAChC,IAAI,CAAC,aAAa,KAAK,YAAY;gBACnC,IAAI,CAAC,MAAM,KAAK,gBAAgB,CACjC,CACD,CAAC;IACH,CAAC,CACD,CAAC;AACH,CAAC","sourcesContent":["import type { AssistantMessageFrame } from \"@earendil-works/pi-ai\";\nimport type { AgentToolResult } from \"../../types.ts\";\nimport type { Context } from \"../context.ts\";\nimport type { SessionReader, Write } from \"../session/types.ts\";\nimport { appendList, pendingAssistantFrames, pendingToolOutput, setValue } from \"../session/values.ts\";\nimport type { Lane } from \"./lane.ts\";\nimport type { Drive, LaneState } from \"./types.ts\";\n\nexport interface ProgressChannel<T> {\n\twrite(item: T): void;\n\tseal(): void;\n\tdrain(): Promise<void>;\n}\n\nexport async function readAssistantFrames(\n\treader: SessionReader,\n\toperationId: string,\n\tresponseEntryId: string,\n\tcontext: Context,\n): Promise<AssistantMessageFrame[]> {\n\tconst frames: AssistantMessageFrame[] = [];\n\tlet cursor: { seq: number } | undefined;\n\tfor (;;) {\n\t\tconst page = await reader.readList(\n\t\t\tpendingAssistantFrames(operationId, responseEntryId),\n\t\t\t{ order: \"asc\", limit: 1_000, ...(cursor === undefined ? {} : { cursor }) },\n\t\t\tcontext,\n\t\t);\n\t\tframes.push(...page.map(({ value }) => value));\n\t\tif (page.length < 1_000) return frames;\n\t\tcursor = { seq: page[page.length - 1]!.seq };\n\t}\n}\n\nfunction openProgress<TContext extends object | undefined, T>(\n\tlane: Lane<TContext>,\n\tdrive: Drive,\n\tcommitWrite: (item: T) => Write,\n\tstillOwns: (state: LaneState) => boolean,\n): ProgressChannel<T> {\n\tlet sealed = false;\n\tlet latest: Promise<void> = Promise.resolve();\n\treturn {\n\t\twrite(item) {\n\t\t\tif (sealed) return;\n\t\t\tconst write = lane\n\t\t\t\t.command((projection) => {\n\t\t\t\t\tif (!stillOwns(projection)) return { kind: \"return\", result: undefined };\n\t\t\t\t\treturn {\n\t\t\t\t\t\tkind: \"commit\",\n\t\t\t\t\t\twrites: [commitWrite(item)],\n\t\t\t\t\t\tnext: projection,\n\t\t\t\t\t\tmaterialize: () => undefined,\n\t\t\t\t\t};\n\t\t\t\t}, drive.context)\n\t\t\t\t.then(() => undefined);\n\t\t\tlatest = write;\n\t\t\tvoid write.catch(() => {});\n\t\t},\n\t\tseal() {\n\t\t\tsealed = true;\n\t\t},\n\t\tasync drain() {\n\t\t\tawait latest;\n\t\t},\n\t};\n}\n\nexport function openFrameProgress<TContext extends object | undefined>(\n\tlane: Lane<TContext>,\n\tdrive: Drive,\n\tresponseEntryId: string,\n): ProgressChannel<AssistantMessageFrame> {\n\tconst address = pendingAssistantFrames(drive.operationId, responseEntryId);\n\treturn openProgress(\n\t\tlane,\n\t\tdrive,\n\t\t(frame) => appendList(address, frame),\n\t\t(state) => {\n\t\t\tconst run = state.operation?.state;\n\t\t\tif (run === undefined) return false;\n\t\t\treturn (\n\t\t\t\t(run.at === \"assistant.effect_pending\" || run.at === \"deferred.effect_pending\") &&\n\t\t\t\trun.responseEntryId === responseEntryId\n\t\t\t);\n\t\t},\n\t);\n}\n\nexport function openToolProgress<TContext extends object | undefined>(\n\tlane: Lane<TContext>,\n\tdrive: Drive,\n\tturnId: string,\n\tsourceIndex: number,\n\tinvocationId: string,\n): ProgressChannel<AgentToolResult<unknown>> {\n\tconst address = pendingToolOutput(drive.operationId, invocationId);\n\treturn openProgress(\n\t\tlane,\n\t\tdrive,\n\t\t(snapshot) => setValue(address, snapshot),\n\t\t(state) => {\n\t\t\tconst operation = state.operation;\n\t\t\tif (operation?.state.at !== \"tools\") return false;\n\t\t\tconst batch = operation.state.batch;\n\t\t\treturn (\n\t\t\t\tbatch.turnId === turnId &&\n\t\t\t\tbatch.calls.some(\n\t\t\t\t\t(call) =>\n\t\t\t\t\t\tcall.sourceIndex === sourceIndex &&\n\t\t\t\t\t\tcall.resultEntryId === invocationId &&\n\t\t\t\t\t\tcall.status === \"effect_pending\",\n\t\t\t\t)\n\t\t\t);\n\t\t},\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../../src/harness/runtime/reducer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGtF,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAiBzD,2GAA2G;AAC3G,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,YAAY,GAAG,cAAc,GAClC,qBAAqB,CA+MvB"
|
|
1
|
+
{"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../../src/harness/runtime/reducer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGtF,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAiBzD,2GAA2G;AAC3G,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,YAAY,GAAG,cAAc,GAClC,qBAAqB,CA+MvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../../src/harness/runtime/reducer.ts"],"names":[],"mappings":"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","sourcesContent":["import type { HarnessEvent, LaneSnapshot, LaneWatchEvent } from \"../agent-harness.ts\";\nimport type { OperationResultRecord } from \"../session/types.ts\";\n\nexport type LaneSnapshotReduction = \"rebase\" | undefined;\n\ntype LaneOperationSnapshot = NonNullable<LaneSnapshot[\"operation\"]>;\n\nfunction upsertTool(operation: LaneOperationSnapshot, tool: LaneOperationSnapshot[\"runningTools\"][number]): void {\n\tconst index = operation.runningTools.findIndex((candidate) => candidate.toolCallId === tool.toolCallId);\n\tif (index === -1) operation.runningTools.push(tool);\n\telse operation.runningTools[index] = tool;\n}\n\nfunction matchingOperation(\n\tsnapshot: LaneSnapshot,\n\toperationId: string,\n): NonNullable<LaneSnapshot[\"operation\"]> | undefined {\n\treturn snapshot.operation?.id === operationId ? snapshot.operation : undefined;\n}\n\n/** Apply one harness event to a mutable lane snapshot. Navigation completion requires a fresh snapshot. */\nexport function reduceLaneSnapshot(\n\tsnapshot: LaneSnapshot,\n\tevent: HarnessEvent | LaneWatchEvent,\n): LaneSnapshotReduction {\n\tif (\"lane\" in event && event.lane !== undefined && event.lane !== snapshot.lane && event.type !== \"usage\") return;\n\tswitch (event.type) {\n\t\tcase \"run_start\":\n\t\t\tsnapshot.operation = {\n\t\t\t\tid: event.runId,\n\t\t\t\tkind: \"run\",\n\t\t\t\tstartedAt: event.startedAt,\n\t\t\t\tfromTipId: snapshot.tipId,\n\t\t\t\tstatus: \"open\",\n\t\t\t\trunningTools: [],\n\t\t\t};\n\t\t\treturn;\n\t\tcase \"compaction_start\":\n\t\t\tif (snapshot.operation !== null) return;\n\t\t\tsnapshot.operation = {\n\t\t\t\tid: event.runId,\n\t\t\t\tkind: \"compaction\",\n\t\t\t\tstartedAt: event.startedAt,\n\t\t\t\tfromTipId: snapshot.tipId,\n\t\t\t\tstatus: \"open\",\n\t\t\t\trunningTools: [],\n\t\t\t};\n\t\t\treturn;\n\t\tcase \"navigation_start\":\n\t\t\tsnapshot.operation = {\n\t\t\t\tid: event.runId,\n\t\t\t\tkind: \"navigation\",\n\t\t\t\tstartedAt: event.startedAt,\n\t\t\t\tfromTipId: snapshot.tipId,\n\t\t\t\tstatus: \"open\",\n\t\t\t\trunningTools: [],\n\t\t\t};\n\t\t\treturn;\n\t\tcase \"operation_abort\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.operationId);\n\t\t\tif (operation !== undefined) operation.status = \"aborting\";\n\t\t\treturn;\n\t\t}\n\t\tcase \"run_resume\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation !== undefined) delete operation.deferred;\n\t\t\treturn;\n\t\t}\n\t\tcase \"run_suspend\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation === undefined) return;\n\t\t\tdelete operation.streamingMessage;\n\t\t\toperation.deferred = { handle: event.deferred, poll: event.poll };\n\t\t\treturn;\n\t\t}\n\t\tcase \"retry_scheduled\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation !== undefined) {\n\t\t\t\toperation.retry = {\n\t\t\t\t\tattempt: event.attempt,\n\t\t\t\t\tmaxAttempts: event.maxAttempts,\n\t\t\t\t\tnextAttemptAt: event.notBefore,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tcase \"retry_start\":\n\t\tcase \"retry_end\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation !== undefined) delete operation.retry;\n\t\t\treturn;\n\t\t}\n\t\tcase \"message_start\": {\n\t\t\tif (\n\t\t\t\tevent.runId === undefined ||\n\t\t\t\tevent.message.role !== \"assistant\" ||\n\t\t\t\tevent.message.stopReason !== \"pending\"\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation !== undefined) operation.streamingMessage = event.message;\n\t\t\treturn;\n\t\t}\n\t\tcase \"message_update\": {\n\t\t\tif (event.message.role !== \"assistant\") return;\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation !== undefined) operation.streamingMessage = event.message;\n\t\t\treturn;\n\t\t}\n\t\tcase \"message_end\": {\n\t\t\tif (event.runId === undefined) return;\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation !== undefined) delete operation.streamingMessage;\n\t\t\treturn;\n\t\t}\n\t\tcase \"tool_start\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation === undefined) return;\n\t\t\tupsertTool(operation, {\n\t\t\t\tstatus: \"running\",\n\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\ttoolName: event.toolName,\n\t\t\t\targs: event.args,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tcase \"tool_update\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tconst tool = operation?.runningTools.find((candidate) => candidate.toolCallId === event.toolCallId);\n\t\t\tif (tool?.status === \"running\") tool.result = event.partialResult;\n\t\t\treturn;\n\t\t}\n\t\tcase \"tool_end\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation === undefined) return;\n\t\t\tconst index = operation.runningTools.findIndex((candidate) => candidate.toolCallId === event.toolCallId);\n\t\t\tconst current = operation.runningTools[index];\n\t\t\tif (current === undefined) return;\n\t\t\toperation.runningTools[index] = {\n\t\t\t\tstatus: \"settled\",\n\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\ttoolName: event.toolName,\n\t\t\t\targs: current.args,\n\t\t\t\tresult: event.result,\n\t\t\t\tisError: event.isError,\n\t\t\t};\n\t\t\treturn;\n\t\t}\n\t\tcase \"entry_added\": {\n\t\t\tif (event.entry.type === \"message\" && event.entry.message.role === \"toolResult\") {\n\t\t\t\tconst operation = snapshot.operation;\n\t\t\t\tif (operation !== null) {\n\t\t\t\t\tconst toolCallId = event.entry.message.toolCallId;\n\t\t\t\t\tconst index = operation.runningTools.findIndex((candidate) => candidate.toolCallId === toolCallId);\n\t\t\t\t\tif (index !== -1) operation.runningTools.splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (event.entry.type === \"compaction\") snapshot.transcript.splice(0, snapshot.transcript.length, event.entry);\n\t\t\telse snapshot.transcript.push(event.entry);\n\t\t\tsnapshot.tipId = event.entry.id;\n\t\t\tif (event.entry.type === \"message\") snapshot.stats.messageCount += 1;\n\t\t\treturn;\n\t\t}\n\t\tcase \"queue_update\":\n\t\t\tsnapshot.queues = event.queues;\n\t\t\treturn;\n\t\tcase \"usage\":\n\t\t\tsnapshot.stats.usage = event.totals;\n\t\t\treturn;\n\t\tcase \"config_update\":\n\t\t\tif (!(\"lane\" in event) || event.lane !== snapshot.lane) return;\n\t\t\tswitch (event.property) {\n\t\t\t\tcase \"model\":\n\t\t\t\t\tsnapshot.configuration.model = event.value;\n\t\t\t\t\treturn;\n\t\t\t\tcase \"thinkingLevel\":\n\t\t\t\t\tsnapshot.configuration.thinkingLevel = event.value;\n\t\t\t\t\treturn;\n\t\t\t\tcase \"activeTools\":\n\t\t\t\t\tsnapshot.configuration.activeToolNames = event.value;\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn;\n\t\tcase \"run_end\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation?.kind !== \"run\") return;\n\t\t\tconst record: OperationResultRecord = {\n\t\t\t\toperationId: event.runId,\n\t\t\t\tkind: \"run\",\n\t\t\t\tstatus: event.status,\n\t\t\t\t...(event.status === \"failed\" ? { error: event.error } : {}),\n\t\t\t\tfromTipId: event.fromTipId,\n\t\t\t\ttipId: event.tipId,\n\t\t\t\tstartedAt: operation.startedAt,\n\t\t\t\tendedAt: event.endedAt,\n\t\t\t};\n\t\t\tsnapshot.lastResult = record;\n\t\t\tsnapshot.operation = null;\n\t\t\tsnapshot.tipId = event.tipId;\n\t\t\treturn;\n\t\t}\n\t\tcase \"compaction_end\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation?.kind !== \"compaction\") return;\n\t\t\tconst record: OperationResultRecord = {\n\t\t\t\toperationId: event.runId,\n\t\t\t\tkind: \"compaction\",\n\t\t\t\tstatus: event.status,\n\t\t\t\t...(event.status === \"failed\" ? { error: event.error } : {}),\n\t\t\t\tfromTipId: operation.fromTipId,\n\t\t\t\ttipId: snapshot.tipId,\n\t\t\t\tstartedAt: operation.startedAt,\n\t\t\t\tendedAt: event.endedAt,\n\t\t\t};\n\t\t\tsnapshot.lastResult = record;\n\t\t\tsnapshot.operation = null;\n\t\t\treturn;\n\t\t}\n\t\tcase \"navigation_end\":\n\t\t\treturn \"rebase\";\n\t\tcase \"fault\":\n\t\t\tsnapshot.faulted = true;\n\t\t\treturn;\n\t\tcase \"handler_error\":\n\t\tcase \"turn_start\":\n\t\tcase \"turn_end\":\n\t\tcase \"value_update\":\n\t\tcase \"lane_created\":\n\t\t\treturn;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../../src/harness/runtime/reducer.ts"],"names":[],"mappings":"AAOA,SAAS,UAAU,CAAC,SAAgC,EAAE,IAAmD;IACxG,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;IACxG,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;QAC/C,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAC3C,CAAC;AAED,SAAS,iBAAiB,CACzB,QAAsB,EACtB,WAAmB;IAEnB,OAAO,QAAQ,CAAC,SAAS,EAAE,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAChF,CAAC;AAED,2GAA2G;AAC3G,MAAM,UAAU,kBAAkB,CACjC,QAAsB,EACtB,KAAoC;IAEpC,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO;IAClH,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,WAAW;YACf,QAAQ,CAAC,SAAS,GAAG;gBACpB,EAAE,EAAE,KAAK,CAAC,KAAK;gBACf,IAAI,EAAE,KAAK;gBACX,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,SAAS,EAAE,QAAQ,CAAC,KAAK;gBACzB,MAAM,EAAE,MAAM;gBACd,YAAY,EAAE,EAAE;aAChB,CAAC;YACF,OAAO;QACR,KAAK,kBAAkB;YACtB,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI;gBAAE,OAAO;YACxC,QAAQ,CAAC,SAAS,GAAG;gBACpB,EAAE,EAAE,KAAK,CAAC,KAAK;gBACf,IAAI,EAAE,YAAY;gBAClB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,SAAS,EAAE,QAAQ,CAAC,KAAK;gBACzB,MAAM,EAAE,MAAM;gBACd,YAAY,EAAE,EAAE;aAChB,CAAC;YACF,OAAO;QACR,KAAK,kBAAkB;YACtB,QAAQ,CAAC,SAAS,GAAG;gBACpB,EAAE,EAAE,KAAK,CAAC,KAAK;gBACf,IAAI,EAAE,YAAY;gBAClB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,SAAS,EAAE,QAAQ,CAAC,KAAK;gBACzB,MAAM,EAAE,MAAM;gBACd,YAAY,EAAE,EAAE;aAChB,CAAC;YACF,OAAO;QACR,KAAK,iBAAiB,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YACjE,IAAI,SAAS,KAAK,SAAS;gBAAE,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC;YAC3D,OAAO;QACR,CAAC;QACD,KAAK,YAAY,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC,QAAQ,CAAC;YACvD,OAAO;QACR,CAAC;QACD,KAAK,aAAa,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO;YACpC,OAAO,SAAS,CAAC,gBAAgB,CAAC;YAClC,SAAS,CAAC,QAAQ,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YAClE,OAAO;QACR,CAAC;QACD,KAAK,iBAAiB,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC7B,SAAS,CAAC,KAAK,GAAG;oBACjB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,aAAa,EAAE,KAAK,CAAC,SAAS;iBAC9B,CAAC;YACH,CAAC;YACD,OAAO;QACR,CAAC;QACD,KAAK,aAAa,CAAC;QACnB,KAAK,WAAW,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC;YACpD,OAAO;QACR,CAAC;QACD,KAAK,eAAe,EAAE,CAAC;YACtB,IACC,KAAK,CAAC,KAAK,KAAK,SAAS;gBACzB,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;gBAClC,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,EACrC,CAAC;gBACF,OAAO;YACR,CAAC;YACD,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,SAAS,KAAK,SAAS;gBAAE,SAAS,CAAC,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC;YACxE,OAAO;QACR,CAAC;QACD,KAAK,gBAAgB,EAAE,CAAC;YACvB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;gBAAE,OAAO;YAC/C,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,SAAS,KAAK,SAAS;gBAAE,SAAS,CAAC,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC;YACxE,OAAO;QACR,CAAC;QACD,KAAK,aAAa,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;gBAAE,OAAO;YACtC,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC,gBAAgB,CAAC;YAC/D,OAAO;QACR,CAAC;QACD,KAAK,YAAY,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO;YACpC,UAAU,CAAC,SAAS,EAAE;gBACrB,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;aAChB,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QACD,KAAK,aAAa,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC;YACpG,IAAI,IAAI,EAAE,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC;YAClE,OAAO;QACR,CAAC;QACD,KAAK,UAAU,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO;YACpC,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC;YACzG,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO;YAClC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG;gBAC/B,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;aACtB,CAAC;YACF,OAAO;QACR,CAAC;QACD,KAAK,aAAa,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACjF,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;gBACrC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;oBACxB,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;oBAClD,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;oBACnG,IAAI,KAAK,KAAK,CAAC,CAAC;wBAAE,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC3D,CAAC;YACF,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY;gBAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;;gBACzG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3C,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;gBAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;YACrE,OAAO;QACR,CAAC;QACD,KAAK,cAAc;YAClB,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC/B,OAAO;QACR,KAAK,OAAO;YACX,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;YACpC,OAAO;QACR,KAAK,eAAe;YACnB,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;gBAAE,OAAO;YAC/D,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACxB,KAAK,OAAO;oBACX,QAAQ,CAAC,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC3C,OAAO;gBACR,KAAK,eAAe;oBACnB,QAAQ,CAAC,aAAa,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;oBACnD,OAAO;gBACR,KAAK,aAAa;oBACjB,QAAQ,CAAC,aAAa,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;oBACrD,OAAO;YACT,CAAC;YACD,OAAO;QACR,KAAK,SAAS,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,SAAS,EAAE,IAAI,KAAK,KAAK;gBAAE,OAAO;YACtC,MAAM,MAAM,GAA0B;gBACrC,WAAW,EAAE,KAAK,CAAC,KAAK;gBACxB,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;aACtB,CAAC;YACF,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC;YAC7B,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;YAC1B,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC7B,OAAO;QACR,CAAC;QACD,KAAK,gBAAgB,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,SAAS,EAAE,IAAI,KAAK,YAAY;gBAAE,OAAO;YAC7C,MAAM,MAAM,GAA0B;gBACrC,WAAW,EAAE,KAAK,CAAC,KAAK;gBACxB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;aACtB,CAAC;YACF,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC;YAC7B,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;YAC1B,OAAO;QACR,CAAC;QACD,KAAK,gBAAgB;YACpB,OAAO,QAAQ,CAAC;QACjB,KAAK,OAAO;YACX,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,OAAO;QACR,KAAK,eAAe,CAAC;QACrB,KAAK,YAAY,CAAC;QAClB,KAAK,UAAU,CAAC;QAChB,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc;YAClB,OAAO;IACT,CAAC;AACF,CAAC","sourcesContent":["import type { HarnessEvent, LaneSnapshot, LaneWatchEvent } from \"../agent-harness.ts\";\nimport type { OperationResultRecord } from \"../session/types.ts\";\n\nexport type LaneSnapshotReduction = \"rebase\" | undefined;\n\ntype LaneOperationSnapshot = NonNullable<LaneSnapshot[\"operation\"]>;\n\nfunction upsertTool(operation: LaneOperationSnapshot, tool: LaneOperationSnapshot[\"runningTools\"][number]): void {\n\tconst index = operation.runningTools.findIndex((candidate) => candidate.toolCallId === tool.toolCallId);\n\tif (index === -1) operation.runningTools.push(tool);\n\telse operation.runningTools[index] = tool;\n}\n\nfunction matchingOperation(\n\tsnapshot: LaneSnapshot,\n\toperationId: string,\n): NonNullable<LaneSnapshot[\"operation\"]> | undefined {\n\treturn snapshot.operation?.id === operationId ? snapshot.operation : undefined;\n}\n\n/** Apply one harness event to a mutable lane snapshot. Navigation completion requires a fresh snapshot. */\nexport function reduceLaneSnapshot(\n\tsnapshot: LaneSnapshot,\n\tevent: HarnessEvent | LaneWatchEvent,\n): LaneSnapshotReduction {\n\tif (\"lane\" in event && event.lane !== undefined && event.lane !== snapshot.lane && event.type !== \"usage\") return;\n\tswitch (event.type) {\n\t\tcase \"run_start\":\n\t\t\tsnapshot.operation = {\n\t\t\t\tid: event.runId,\n\t\t\t\tkind: \"run\",\n\t\t\t\tstartedAt: event.startedAt,\n\t\t\t\tfromTipId: snapshot.tipId,\n\t\t\t\tstatus: \"open\",\n\t\t\t\trunningTools: [],\n\t\t\t};\n\t\t\treturn;\n\t\tcase \"compaction_start\":\n\t\t\tif (snapshot.operation !== null) return;\n\t\t\tsnapshot.operation = {\n\t\t\t\tid: event.runId,\n\t\t\t\tkind: \"compaction\",\n\t\t\t\tstartedAt: event.startedAt,\n\t\t\t\tfromTipId: snapshot.tipId,\n\t\t\t\tstatus: \"open\",\n\t\t\t\trunningTools: [],\n\t\t\t};\n\t\t\treturn;\n\t\tcase \"navigation_start\":\n\t\t\tsnapshot.operation = {\n\t\t\t\tid: event.runId,\n\t\t\t\tkind: \"navigation\",\n\t\t\t\tstartedAt: event.startedAt,\n\t\t\t\tfromTipId: snapshot.tipId,\n\t\t\t\tstatus: \"open\",\n\t\t\t\trunningTools: [],\n\t\t\t};\n\t\t\treturn;\n\t\tcase \"operation_abort\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.operationId);\n\t\t\tif (operation !== undefined) operation.status = \"aborting\";\n\t\t\treturn;\n\t\t}\n\t\tcase \"run_resume\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation !== undefined) delete operation.deferred;\n\t\t\treturn;\n\t\t}\n\t\tcase \"run_suspend\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation === undefined) return;\n\t\t\tdelete operation.streamingMessage;\n\t\t\toperation.deferred = { handle: event.deferred, poll: event.poll };\n\t\t\treturn;\n\t\t}\n\t\tcase \"retry_scheduled\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation !== undefined) {\n\t\t\t\toperation.retry = {\n\t\t\t\t\tattempt: event.attempt,\n\t\t\t\t\tmaxAttempts: event.maxAttempts,\n\t\t\t\t\tnextAttemptAt: event.notBefore,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tcase \"retry_start\":\n\t\tcase \"retry_end\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation !== undefined) delete operation.retry;\n\t\t\treturn;\n\t\t}\n\t\tcase \"message_start\": {\n\t\t\tif (\n\t\t\t\tevent.runId === undefined ||\n\t\t\t\tevent.message.role !== \"assistant\" ||\n\t\t\t\tevent.message.stopReason !== \"pending\"\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation !== undefined) operation.streamingMessage = event.message;\n\t\t\treturn;\n\t\t}\n\t\tcase \"message_update\": {\n\t\t\tif (event.message.role !== \"assistant\") return;\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation !== undefined) operation.streamingMessage = event.message;\n\t\t\treturn;\n\t\t}\n\t\tcase \"message_end\": {\n\t\t\tif (event.runId === undefined) return;\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation !== undefined) delete operation.streamingMessage;\n\t\t\treturn;\n\t\t}\n\t\tcase \"tool_start\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation === undefined) return;\n\t\t\tupsertTool(operation, {\n\t\t\t\tstatus: \"running\",\n\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\ttoolName: event.toolName,\n\t\t\t\targs: event.args,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tcase \"tool_update\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tconst tool = operation?.runningTools.find((candidate) => candidate.toolCallId === event.toolCallId);\n\t\t\tif (tool?.status === \"running\") tool.result = event.partialResult;\n\t\t\treturn;\n\t\t}\n\t\tcase \"tool_end\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation === undefined) return;\n\t\t\tconst index = operation.runningTools.findIndex((candidate) => candidate.toolCallId === event.toolCallId);\n\t\t\tconst current = operation.runningTools[index];\n\t\t\tif (current === undefined) return;\n\t\t\toperation.runningTools[index] = {\n\t\t\t\tstatus: \"settled\",\n\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\ttoolName: event.toolName,\n\t\t\t\targs: current.args,\n\t\t\t\tresult: event.result,\n\t\t\t\tisError: event.isError,\n\t\t\t};\n\t\t\treturn;\n\t\t}\n\t\tcase \"entry_added\": {\n\t\t\tif (event.entry.type === \"message\" && event.entry.message.role === \"toolResult\") {\n\t\t\t\tconst operation = snapshot.operation;\n\t\t\t\tif (operation !== null) {\n\t\t\t\t\tconst toolCallId = event.entry.message.toolCallId;\n\t\t\t\t\tconst index = operation.runningTools.findIndex((candidate) => candidate.toolCallId === toolCallId);\n\t\t\t\t\tif (index !== -1) operation.runningTools.splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (event.entry.type === \"compaction\") snapshot.transcript.splice(0, snapshot.transcript.length, event.entry);\n\t\t\telse snapshot.transcript.push(event.entry);\n\t\t\tsnapshot.tipId = event.entry.id;\n\t\t\tif (event.entry.type === \"message\") snapshot.stats.messageCount += 1;\n\t\t\treturn;\n\t\t}\n\t\tcase \"queue_update\":\n\t\t\tsnapshot.queues = event.queues;\n\t\t\treturn;\n\t\tcase \"usage\":\n\t\t\tsnapshot.stats.usage = event.totals;\n\t\t\treturn;\n\t\tcase \"config_update\":\n\t\t\tif (!(\"lane\" in event) || event.lane !== snapshot.lane) return;\n\t\t\tswitch (event.property) {\n\t\t\t\tcase \"model\":\n\t\t\t\t\tsnapshot.configuration.model = event.value;\n\t\t\t\t\treturn;\n\t\t\t\tcase \"thinkingLevel\":\n\t\t\t\t\tsnapshot.configuration.thinkingLevel = event.value;\n\t\t\t\t\treturn;\n\t\t\t\tcase \"activeTools\":\n\t\t\t\t\tsnapshot.configuration.activeToolNames = event.value;\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn;\n\t\tcase \"run_end\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation?.kind !== \"run\") return;\n\t\t\tconst record: OperationResultRecord = {\n\t\t\t\toperationId: event.runId,\n\t\t\t\tkind: \"run\",\n\t\t\t\tstatus: event.status,\n\t\t\t\t...(event.status === \"failed\" ? { error: event.error } : {}),\n\t\t\t\tfromTipId: event.fromTipId,\n\t\t\t\ttipId: event.tipId,\n\t\t\t\tstartedAt: operation.startedAt,\n\t\t\t\tendedAt: event.endedAt,\n\t\t\t};\n\t\t\tsnapshot.lastResult = record;\n\t\t\tsnapshot.operation = null;\n\t\t\tsnapshot.tipId = event.tipId;\n\t\t\treturn;\n\t\t}\n\t\tcase \"compaction_end\": {\n\t\t\tconst operation = matchingOperation(snapshot, event.runId);\n\t\t\tif (operation?.kind !== \"compaction\") return;\n\t\t\tconst record: OperationResultRecord = {\n\t\t\t\toperationId: event.runId,\n\t\t\t\tkind: \"compaction\",\n\t\t\t\tstatus: event.status,\n\t\t\t\t...(event.status === \"failed\" ? { error: event.error } : {}),\n\t\t\t\tfromTipId: operation.fromTipId,\n\t\t\t\ttipId: snapshot.tipId,\n\t\t\t\tstartedAt: operation.startedAt,\n\t\t\t\tendedAt: event.endedAt,\n\t\t\t};\n\t\t\tsnapshot.lastResult = record;\n\t\t\tsnapshot.operation = null;\n\t\t\treturn;\n\t\t}\n\t\tcase \"navigation_end\":\n\t\t\treturn \"rebase\";\n\t\tcase \"fault\":\n\t\t\tsnapshot.faulted = true;\n\t\t\treturn;\n\t\tcase \"handler_error\":\n\t\tcase \"turn_start\":\n\t\tcase \"turn_end\":\n\t\tcase \"value_update\":\n\t\tcase \"lane_created\":\n\t\t\treturn;\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore.d.ts","sourceRoot":"","sources":["../../../src/harness/runtime/restore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EACX,SAAS,IAAI,gBAAgB,EAC7B,iBAAiB,EAGjB,OAAO,EACP,aAAa,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAON,KAAK,WAAW,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAiC5C,MAAM,MAAM,qBAAqB,GAC9B;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CAAE,GACnD;IACA,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChC,aAAa,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC9C,SAAS,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;CACxC,CAAC;AAiBL,wBAAsB,eAAe,CACpC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,qBAAqB,CAAC,CAOhC;AAED,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAuBlG;AAED,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAWhG;AAED,wBAAsB,gBAAgB,CACrC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,CAAC,qBAAqB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EACxD,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,SAAS,CAAC,CAmCpB"
|
|
1
|
+
{"version":3,"file":"restore.d.ts","sourceRoot":"","sources":["../../../src/harness/runtime/restore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EACX,SAAS,IAAI,gBAAgB,EAC7B,iBAAiB,EAGjB,OAAO,EACP,aAAa,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAON,KAAK,WAAW,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAiC5C,MAAM,MAAM,qBAAqB,GAC9B;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CAAE,GACnD;IACA,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChC,aAAa,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC9C,SAAS,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;CACxC,CAAC;AAiBL,wBAAsB,eAAe,CACpC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,qBAAqB,CAAC,CAOhC;AAED,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAuBlG;AAED,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAWhG;AAED,wBAAsB,gBAAgB,CACrC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,CAAC,qBAAqB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EACxD,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,SAAS,CAAC,CAmCpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../../src/harness/runtime/restore.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Context } from \"../context.ts\";\nimport { SessionInvariantError } from \"../session/session.ts\";\nimport type {\n\tLaneState as DurableLaneState,\n\tLaneConfiguration,\n\tOperationMeta,\n\tOperationState,\n\tSession,\n\tSessionReader,\n} from \"../session/types.ts\";\nimport {\n\tbranchTip,\n\tbranchTipInventoryPrefix,\n\tlaneConfig,\n\tlaneState as laneStateValue,\n\toperationMeta,\n\toperationState,\n\ttype StoredValue,\n} from \"../session/values.ts\";\nimport type { LaneState } from \"./types.ts\";\n\nfunction isSummaryState(state: OperationState): state is Extract<OperationState, { at: `summary.${string}` }> {\n\treturn state.at.startsWith(\"summary.\");\n}\n\nfunction stateMatchesIntent(intent: OperationMeta[\"intent\"], state: OperationState): boolean {\n\tif (intent.kind === \"compaction\") return isSummaryState(state) && state.task.boundary.kind === \"finish\";\n\tif (intent.kind === \"navigation\") {\n\t\tif (state.at === \"navigation.ready_to_commit\") {\n\t\t\treturn !intent.summarize && state.targetId === intent.targetId && state.label === intent.label;\n\t\t}\n\t\treturn (\n\t\t\tintent.summarize &&\n\t\t\tisSummaryState(state) &&\n\t\t\tstate.task.boundary.kind === \"commit_navigation\" &&\n\t\t\tstate.task.boundary.targetId === intent.targetId &&\n\t\t\tstate.task.boundary.label === intent.label &&\n\t\t\tstate.task.customInstructions === intent.customInstructions\n\t\t);\n\t}\n\treturn (\n\t\tstate.at !== \"navigation.ready_to_commit\" &&\n\t\t(!isSummaryState(state) || state.task.boundary.kind === \"resume_checkpoint\")\n\t);\n}\n\ntype LaneValues = {\n\ttip: StoredValue<string | null> | undefined;\n\tconfiguration: StoredValue<LaneConfiguration> | undefined;\n\tlaneState: StoredValue<DurableLaneState> | undefined;\n};\n\nexport type ClassifiedLaneStorage =\n\t| { kind: \"absent\" }\n\t| { kind: \"branch\"; tip: StoredValue<string | null> }\n\t| {\n\t\t\tkind: \"lane\";\n\t\t\ttip: StoredValue<string | null>;\n\t\t\tconfiguration: StoredValue<LaneConfiguration>;\n\t\t\tlaneState: StoredValue<DurableLaneState>;\n\t };\n\nfunction classifyLaneStorage(lane: string, values: LaneValues): ClassifiedLaneStorage {\n\tconst { tip, configuration, laneState } = values;\n\tif (tip === undefined && configuration === undefined && laneState === undefined) {\n\t\treturn { kind: \"absent\" };\n\t}\n\tif (tip !== undefined && configuration === undefined && laneState === undefined) {\n\t\treturn { kind: \"branch\", tip };\n\t}\n\tif (tip === undefined) throw new SessionInvariantError(`Lane ${JSON.stringify(lane)} is missing branch.tip`);\n\tif (configuration === undefined)\n\t\tthrow new SessionInvariantError(`Lane ${JSON.stringify(lane)} is missing lane.config`);\n\tif (laneState === undefined) throw new SessionInvariantError(`Lane ${JSON.stringify(lane)} is missing lane.state`);\n\treturn { kind: \"lane\", tip, configuration, laneState };\n}\n\nexport async function readLaneStorage(\n\treader: SessionReader,\n\tlane: string,\n\tcontext: Context,\n): Promise<ClassifiedLaneStorage> {\n\tconst [tip, configuration, laneState] = await Promise.all([\n\t\treader.getValue(branchTip(lane), context),\n\t\treader.getValue(laneConfig(lane), context),\n\t\treader.getValue(laneStateValue(lane), context),\n\t]);\n\treturn classifyLaneStorage(lane, { tip, configuration, laneState });\n}\n\n/** Restore every complete configured AgentLane in one coherent Session read. */\nexport function restoreSession(session: Session, context: Context): Promise<Map<string, LaneState>> {\n\treturn session.mutate(async (reader) => {\n\t\tconst [tips, configurations, states] = await Promise.all([\n\t\t\treader.scanValues(branchTipInventoryPrefix(), context),\n\t\t\treader.scanValues(laneConfig(\"\"), context),\n\t\t\treader.scanValues(laneStateValue(\"\"), context),\n\t\t]);\n\t\tconst tipByLane = new Map(tips.map((value) => [value.address.key, value]));\n\t\tconst configurationByLane = new Map(configurations.map((value) => [value.address.key, value]));\n\t\tconst stateByLane = new Map(states.map((value) => [value.address.key, value]));\n\t\tconst names = new Set([...tipByLane.keys(), ...configurationByLane.keys(), ...stateByLane.keys()]);\n\t\tconst restored = new Map<string, LaneState>();\n\t\tfor (const lane of names) {\n\t\t\tconst stored = classifyLaneStorage(lane, {\n\t\t\t\ttip: tipByLane.get(lane),\n\t\t\t\tconfiguration: configurationByLane.get(lane),\n\t\t\t\tlaneState: stateByLane.get(lane),\n\t\t\t});\n\t\t\tif (stored.kind !== \"lane\") continue;\n\t\t\trestored.set(lane, await restoreLaneState(reader, lane, stored, context));\n\t\t}\n\t\treturn restored;\n\t}, context);\n}\n\n/** Restore one configured lane without starting work or interpreting its state. */\nexport function restoreLane(session: Session, lane: string, context: Context): Promise<LaneState> {\n\treturn session.mutate(async (reader) => {\n\t\tconst stored = await readLaneStorage(reader, lane, context);\n\t\tif (stored.kind === \"absent\") {\n\t\t\tthrow new SessionInvariantError(`Lane ${JSON.stringify(lane)} is missing branch.tip`);\n\t\t}\n\t\tif (stored.kind === \"branch\") {\n\t\t\tthrow new SessionInvariantError(`Lane ${JSON.stringify(lane)} is missing lane.config`);\n\t\t}\n\t\treturn restoreLaneState(reader, lane, stored, context);\n\t}, context);\n}\n\nexport async function restoreLaneState(\n\treader: SessionReader,\n\tlane: string,\n\tstored: Extract<ClassifiedLaneStorage, { kind: \"lane\" }>,\n\tcontext: Context,\n): Promise<LaneState> {\n\tconst operationId = stored.laneState.value.currentOperationId;\n\tlet operation: LaneState[\"operation\"] = null;\n\tif (operationId !== null) {\n\t\tconst [meta, state] = await Promise.all([\n\t\t\treader.getValue(operationMeta(operationId), context),\n\t\t\treader.getValue(operationState(operationId), context),\n\t\t]);\n\t\tif (meta === undefined) throw new SessionInvariantError(`Operation ${operationId} is missing op.meta`);\n\t\tif (state === undefined) throw new SessionInvariantError(`Operation ${operationId} is missing op.state`);\n\t\tif (meta.value.operationId !== operationId) {\n\t\t\tthrow new SessionInvariantError(\n\t\t\t\t`Operation ${operationId} metadata names operation ${JSON.stringify(meta.value.operationId)}`,\n\t\t\t);\n\t\t}\n\t\tif (meta.value.lane !== lane) {\n\t\t\tthrow new SessionInvariantError(\n\t\t\t\t`Operation ${operationId} belongs to lane ${JSON.stringify(meta.value.lane)}, not ${JSON.stringify(lane)}`,\n\t\t\t);\n\t\t}\n\t\tif (!stateMatchesIntent(meta.value.intent, state.value)) {\n\t\t\tthrow new SessionInvariantError(\n\t\t\t\t`Operation ${operationId} intent ${meta.value.intent.kind} does not match state ${state.value.at}`,\n\t\t\t);\n\t\t}\n\t\toperation = { meta: meta.value, state: state.value };\n\t}\n\n\treturn {\n\t\ttipId: stored.tip.value,\n\t\tconfiguration: stored.configuration.value,\n\t\tinbox: stored.laneState.value.inbox,\n\t\tlastOperationId: stored.laneState.value.lastOperationId,\n\t\toperation,\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../../src/harness/runtime/restore.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Context } from \"../context.ts\";\nimport { SessionInvariantError } from \"../session/session.ts\";\nimport type {\n\tLaneState as DurableLaneState,\n\tLaneConfiguration,\n\tOperationMeta,\n\tOperationState,\n\tSession,\n\tSessionReader,\n} from \"../session/types.ts\";\nimport {\n\tbranchTip,\n\tbranchTipInventoryPrefix,\n\tlaneConfig,\n\tlaneState as laneStateValue,\n\toperationMeta,\n\toperationState,\n\ttype StoredValue,\n} from \"../session/values.ts\";\nimport type { LaneState } from \"./types.ts\";\n\nfunction isSummaryState(state: OperationState): state is Extract<OperationState, { at: `summary.${string}` }> {\n\treturn state.at.startsWith(\"summary.\");\n}\n\nfunction stateMatchesIntent(intent: OperationMeta[\"intent\"], state: OperationState): boolean {\n\tif (intent.kind === \"compaction\") return isSummaryState(state) && state.task.boundary.kind === \"finish\";\n\tif (intent.kind === \"navigation\") {\n\t\tif (state.at === \"navigation.ready_to_commit\") {\n\t\t\treturn !intent.summarize && state.targetId === intent.targetId && state.label === intent.label;\n\t\t}\n\t\treturn (\n\t\t\tintent.summarize &&\n\t\t\tisSummaryState(state) &&\n\t\t\tstate.task.boundary.kind === \"commit_navigation\" &&\n\t\t\tstate.task.boundary.targetId === intent.targetId &&\n\t\t\tstate.task.boundary.label === intent.label &&\n\t\t\tstate.task.customInstructions === intent.customInstructions\n\t\t);\n\t}\n\treturn (\n\t\tstate.at !== \"navigation.ready_to_commit\" &&\n\t\t(!isSummaryState(state) || state.task.boundary.kind === \"resume_checkpoint\")\n\t);\n}\n\ntype LaneValues = {\n\ttip: StoredValue<string | null> | undefined;\n\tconfiguration: StoredValue<LaneConfiguration> | undefined;\n\tlaneState: StoredValue<DurableLaneState> | undefined;\n};\n\nexport type ClassifiedLaneStorage =\n\t| { kind: \"absent\" }\n\t| { kind: \"branch\"; tip: StoredValue<string | null> }\n\t| {\n\t\t\tkind: \"lane\";\n\t\t\ttip: StoredValue<string | null>;\n\t\t\tconfiguration: StoredValue<LaneConfiguration>;\n\t\t\tlaneState: StoredValue<DurableLaneState>;\n\t };\n\nfunction classifyLaneStorage(lane: string, values: LaneValues): ClassifiedLaneStorage {\n\tconst { tip, configuration, laneState } = values;\n\tif (tip === undefined && configuration === undefined && laneState === undefined) {\n\t\treturn { kind: \"absent\" };\n\t}\n\tif (tip !== undefined && configuration === undefined && laneState === undefined) {\n\t\treturn { kind: \"branch\", tip };\n\t}\n\tif (tip === undefined) throw new SessionInvariantError(`Lane ${JSON.stringify(lane)} is missing branch.tip`);\n\tif (configuration === undefined)\n\t\tthrow new SessionInvariantError(`Lane ${JSON.stringify(lane)} is missing lane.config`);\n\tif (laneState === undefined) throw new SessionInvariantError(`Lane ${JSON.stringify(lane)} is missing lane.state`);\n\treturn { kind: \"lane\", tip, configuration, laneState };\n}\n\nexport async function readLaneStorage(\n\treader: SessionReader,\n\tlane: string,\n\tcontext: Context,\n): Promise<ClassifiedLaneStorage> {\n\tconst [tip, configuration, laneState] = await Promise.all([\n\t\treader.getValue(branchTip(lane), context),\n\t\treader.getValue(laneConfig(lane), context),\n\t\treader.getValue(laneStateValue(lane), context),\n\t]);\n\treturn classifyLaneStorage(lane, { tip, configuration, laneState });\n}\n\n/** Restore every complete configured AgentLane in one coherent Session read. */\nexport function restoreSession(session: Session, context: Context): Promise<Map<string, LaneState>> {\n\treturn session.mutate(async (reader) => {\n\t\tconst [tips, configurations, states] = await Promise.all([\n\t\t\treader.scanValues(branchTipInventoryPrefix(), context),\n\t\t\treader.scanValues(laneConfig(\"\"), context),\n\t\t\treader.scanValues(laneStateValue(\"\"), context),\n\t\t]);\n\t\tconst tipByLane = new Map(tips.map((value) => [value.address.key, value]));\n\t\tconst configurationByLane = new Map(configurations.map((value) => [value.address.key, value]));\n\t\tconst stateByLane = new Map(states.map((value) => [value.address.key, value]));\n\t\tconst names = new Set([...tipByLane.keys(), ...configurationByLane.keys(), ...stateByLane.keys()]);\n\t\tconst restored = new Map<string, LaneState>();\n\t\tfor (const lane of names) {\n\t\t\tconst stored = classifyLaneStorage(lane, {\n\t\t\t\ttip: tipByLane.get(lane),\n\t\t\t\tconfiguration: configurationByLane.get(lane),\n\t\t\t\tlaneState: stateByLane.get(lane),\n\t\t\t});\n\t\t\tif (stored.kind !== \"lane\") continue;\n\t\t\trestored.set(lane, await restoreLaneState(reader, lane, stored, context));\n\t\t}\n\t\treturn restored;\n\t}, context);\n}\n\n/** Restore one configured lane without starting work or interpreting its state. */\nexport function restoreLane(session: Session, lane: string, context: Context): Promise<LaneState> {\n\treturn session.mutate(async (reader) => {\n\t\tconst stored = await readLaneStorage(reader, lane, context);\n\t\tif (stored.kind === \"absent\") {\n\t\t\tthrow new SessionInvariantError(`Lane ${JSON.stringify(lane)} is missing branch.tip`);\n\t\t}\n\t\tif (stored.kind === \"branch\") {\n\t\t\tthrow new SessionInvariantError(`Lane ${JSON.stringify(lane)} is missing lane.config`);\n\t\t}\n\t\treturn restoreLaneState(reader, lane, stored, context);\n\t}, context);\n}\n\nexport async function restoreLaneState(\n\treader: SessionReader,\n\tlane: string,\n\tstored: Extract<ClassifiedLaneStorage, { kind: \"lane\" }>,\n\tcontext: Context,\n): Promise<LaneState> {\n\tconst operationId = stored.laneState.value.currentOperationId;\n\tlet operation: LaneState[\"operation\"] = null;\n\tif (operationId !== null) {\n\t\tconst [meta, state] = await Promise.all([\n\t\t\treader.getValue(operationMeta(operationId), context),\n\t\t\treader.getValue(operationState(operationId), context),\n\t\t]);\n\t\tif (meta === undefined) throw new SessionInvariantError(`Operation ${operationId} is missing op.meta`);\n\t\tif (state === undefined) throw new SessionInvariantError(`Operation ${operationId} is missing op.state`);\n\t\tif (meta.value.operationId !== operationId) {\n\t\t\tthrow new SessionInvariantError(\n\t\t\t\t`Operation ${operationId} metadata names operation ${JSON.stringify(meta.value.operationId)}`,\n\t\t\t);\n\t\t}\n\t\tif (meta.value.lane !== lane) {\n\t\t\tthrow new SessionInvariantError(\n\t\t\t\t`Operation ${operationId} belongs to lane ${JSON.stringify(meta.value.lane)}, not ${JSON.stringify(lane)}`,\n\t\t\t);\n\t\t}\n\t\tif (!stateMatchesIntent(meta.value.intent, state.value)) {\n\t\t\tthrow new SessionInvariantError(\n\t\t\t\t`Operation ${operationId} intent ${meta.value.intent.kind} does not match state ${state.value.at}`,\n\t\t\t);\n\t\t}\n\t\toperation = { meta: meta.value, state: state.value };\n\t}\n\n\treturn {\n\t\ttipId: stored.tip.value,\n\t\tconfiguration: stored.configuration.value,\n\t\tinbox: stored.laneState.value.inbox,\n\t\tlastOperationId: stored.laneState.value.lastOperationId,\n\t\toperation,\n\t};\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../../src/harness/runtime/transcript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEnH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjE,wBAAgB,YAAY,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACpD,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,KAAK,EAAE,SAAS,CAAC,EAAE,GACjB,KAAK,CAAC,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAMxC;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAS/F;AAED,wBAAgB,oBAAoB,CACnC,OAAO,EAAE,SAAS,QAAQ,EAAE,EAC5B,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,eAAe,SAAI,GACjB,YAAY,EAAE,CAQhB;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,SAAS,MAAM,GAAG,SAAS,EAAE,MAAM,SAAS,cAAc,EACpG,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EACpB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC,CAAC,CAa3C;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,SAAS,MAAM,GAAG,SAAS,EAAE,MAAM,SAAS,cAAc,EAC1G,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EACpB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,uBAAuB,CAAC,YAAY,EAAE,CAAC,CAAC,CAWlD;AAED,wBAAgB,cAAc,CAC7B,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,cAAc,EAAE,CAAC,CAsB3B;AAED,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC,CAAC,CAU5D"
|
|
1
|
+
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../../src/harness/runtime/transcript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEnH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjE,wBAAgB,YAAY,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACpD,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,KAAK,EAAE,SAAS,CAAC,EAAE,GACjB,KAAK,CAAC,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAMxC;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAS/F;AAED,wBAAgB,oBAAoB,CACnC,OAAO,EAAE,SAAS,QAAQ,EAAE,EAC5B,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,eAAe,SAAI,GACjB,YAAY,EAAE,CAQhB;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,SAAS,MAAM,GAAG,SAAS,EAAE,MAAM,SAAS,cAAc,EACpG,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EACpB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC,CAAC,CAa3C;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,SAAS,MAAM,GAAG,SAAS,EAAE,MAAM,SAAS,cAAc,EAC1G,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EACpB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,uBAAuB,CAAC,YAAY,EAAE,CAAC,CAAC,CAWlD;AAED,wBAAgB,cAAc,CAC7B,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,cAAc,EAAE,CAAC,CAsB3B;AAED,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC,CAAC,CAU5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../../src/harness/runtime/transcript.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD,MAAM,UAAU,YAAY,CAC3B,QAAuB,EACvB,KAAmB
|
|
1
|
+
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../../src/harness/runtime/transcript.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentMessage } from \"../../types.ts\";\nimport type { HarnessEvent, LaneQueuedItem } from \"../agent-harness.ts\";\nimport type { Context } from \"../context.ts\";\nimport { materializeCommittedEntry } from \"../session/commit.ts\";\nimport { buildSessionContext } from \"../session/context.ts\";\nimport { SessionInvariantError } from \"../session/session.ts\";\nimport type { CommitResult, Entry, InboxItem, NewEntry, OperationState, SessionReader } from \"../session/types.ts\";\nimport { pendingEntry } from \"../session/values.ts\";\nimport type { Lane } from \"./lane.ts\";\nimport type { ContinueOperationResult, Drive } from \"./types.ts\";\n\nexport function chainEntries<T extends { id: string }>(\n\tparentId: string | null,\n\titems: readonly T[],\n): Array<T & { parentId: string | null }> {\n\treturn items.map((item) => {\n\t\tconst entry = { ...item, parentId };\n\t\tparentId = item.id;\n\t\treturn entry;\n\t});\n}\n\nexport function entryLifecycleEvents(entry: Entry, lane: string, runId?: string): HarnessEvent[] {\n\tconst operation = runId === undefined ? {} : { runId };\n\treturn entry.type === \"message\"\n\t\t? [\n\t\t\t\t{ type: \"message_start\", lane, ...operation, message: entry.message },\n\t\t\t\t{ type: \"message_end\", lane, ...operation, message: entry.message, entryId: entry.id },\n\t\t\t\t{ type: \"entry_added\", lane, entry },\n\t\t\t]\n\t\t: [{ type: \"entry_added\", lane, entry }];\n}\n\nexport function committedEntryEvents(\n\tentries: readonly NewEntry[],\n\tcommit: CommitResult,\n\tlane: string,\n\trunId?: string,\n\tfirstWriteIndex = 0,\n): HarnessEvent[] {\n\treturn entries.flatMap((entry, index) =>\n\t\tentryLifecycleEvents(\n\t\t\tmaterializeCommittedEntry(entry, commit.seqs[firstWriteIndex + index]!, commit.timestamp),\n\t\t\tlane,\n\t\t\trunId,\n\t\t),\n\t);\n}\n\nexport function readBoundedEntries<TContext extends object | undefined, TState extends OperationState>(\n\tlane: Lane<TContext>,\n\tdrive: Drive,\n\tcapability: TState,\n): Promise<ContinueOperationResult<Entry[]>> {\n\treturn lane.continueOperation(\n\t\tcapability,\n\t\tasync (state, _current, _meta, reader) => {\n\t\t\tif (state.tipId === null) throw new SessionInvariantError(\"Run operation has no Branch tip\");\n\t\t\tconst entries = await reader.scanBranch(\n\t\t\t\t{ start: state.tipId, stopAtType: \"compaction\", order: \"newestFirst\" },\n\t\t\t\tdrive.context,\n\t\t\t);\n\t\t\treturn { kind: \"return\", result: entries.reverse() };\n\t\t},\n\t\tdrive.context,\n\t);\n}\n\nexport async function readBoundedContext<TContext extends object | undefined, TState extends OperationState>(\n\tlane: Lane<TContext>,\n\tdrive: Drive,\n\tcapability: TState,\n): Promise<ContinueOperationResult<AgentMessage[]>> {\n\tconst entries = await readBoundedEntries(lane, drive, capability);\n\tif (entries.kind === \"cancel_requested\") return entries;\n\treturn {\n\t\tkind: \"result\",\n\t\tvalue: await buildSessionContext(\n\t\t\tentries.value,\n\t\t\t{ entryProjectors: lane.readConfig().entryProjectors },\n\t\t\tdrive.context,\n\t\t),\n\t};\n}\n\nexport function readLaneQueues(\n\treader: SessionReader,\n\tinbox: readonly InboxItem[],\n\tcontext: Context,\n): Promise<LaneQueuedItem[]> {\n\treturn Promise.all(\n\t\tinbox.map(async (item): Promise<LaneQueuedItem> => {\n\t\t\tconst stored = await reader.getValue(pendingEntry(item.entryId), context);\n\t\t\tif (stored === undefined) {\n\t\t\t\tthrow new SessionInvariantError(`Pending ${item.kind} entry ${item.entryId} is missing its payload`);\n\t\t\t}\n\t\t\tif (stored.value.type === \"message\") {\n\t\t\t\treturn { entryId: item.entryId, kind: item.kind, type: \"message\", message: stored.value.payload };\n\t\t\t}\n\t\t\tif (item.kind !== \"write\") {\n\t\t\t\tthrow new SessionInvariantError(`Pending ${item.kind} entry ${item.entryId} is not a message`);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tentryId: item.entryId,\n\t\t\t\tkind: \"write\",\n\t\t\t\ttype: \"custom\",\n\t\t\t\tcustomType: stored.value.customType,\n\t\t\t\t...(stored.value.payload === undefined ? {} : { data: stored.value.payload }),\n\t\t\t};\n\t\t}),\n\t);\n}\n\nexport function readPendingMessages(\n\treader: SessionReader,\n\tids: readonly string[],\n\tdescription: string,\n\tcontext: Context,\n): Promise<Array<{ entryId: string; message: AgentMessage }>> {\n\treturn Promise.all(\n\t\tids.map(async (entryId) => {\n\t\t\tconst value = await reader.getValue(pendingEntry(entryId), context);\n\t\t\tif (value?.value.type !== \"message\") {\n\t\t\t\tthrow new SessionInvariantError(`${description} ${entryId} is missing its message payload`);\n\t\t\t}\n\t\t\treturn { entryId, message: value.value.payload };\n\t\t}),\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/harness/runtime/types.ts"],"names":[],"mappings":"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"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/harness/runtime/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/harness/runtime/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,UAAU,EAA+B,MAAM,6BAA6B,CAAC;AAYtF,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC7C,YAAY,SAAiB
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/harness/runtime/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,UAAU,EAA+B,MAAM,6BAA6B,CAAC;AAYtF,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC7C,YAAY,SAAiB;QAC5B,KAAK,CAAC,GAAG,SAAS,wDAAwD,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACnC,CAAC;CACD;AA6DD,8CAA8C;AAC9C,MAAM,OAAO,KAAK;IACR,WAAW,CAAS;IACpB,UAAU,CAAwB;IAClC,IAAI,CAAO;IACX,OAAO,CAAU;IACjB,YAAY,CAAU;IACtB,WAAW,CAAc;IAClC,eAAe,CAAS;IAEP,OAAO,CAAc;IACrB,eAAe,CAAkB;IACjC,iBAAiB,CAAkC;IACnD,gBAAgB,CAA2B;IAE5D,YAAY,OAAqB,EAAE,OAAgB;QAClD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,IAAI,iBAAmD,CAAC;QACxD,IAAI,gBAA2C,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,CAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/D,iBAAiB,GAAG,OAAO,CAAC;YAC5B,gBAAgB,GAAG,MAAM,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,OAAqB;QAC3B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,KAAc;QAClB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,UAAU,CAAC,YAA2B;QACrC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAED,WAAW;QACV,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED,SAAS,CAAC,KAAY;QACrB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO;YAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACD","sourcesContent":["import type { RetryPolicy } from \"@earendil-works/pi-ai\";\nimport type { QueueMode } from \"../../types.ts\";\nimport type { AgentHarnessOptions, DriveOptions, DriveOutcome, HarnessEvent, Resources } from \"../agent-harness.ts\";\nimport type { CompactionSettings } from \"../compaction/compaction.ts\";\nimport { type Context, withoutAbortSignal } from \"../context.ts\";\nimport { createGate, type Gate, type GateControl } from \"../execution/effect-gate.ts\";\nimport type {\n\tCommitResult,\n\tInboxItem,\n\tLaneConfiguration,\n\tOperation,\n\tOperationResultRecord,\n\tOperationState,\n\tWrite,\n} from \"../session/types.ts\";\nimport type { AgentHarnessStreamOptions, AgentHarnessTool } from \"../types.ts\";\n\nexport class SliceNotImplemented extends Error {\n\tconstructor(operation: string) {\n\t\tsuper(`${operation} is not implemented until its later AgentHarness slice`);\n\t\tthis.name = \"SliceNotImplemented\";\n\t}\n}\n\n/** Current process-local harness configuration. */\nexport interface Config<TContext extends object | undefined> {\n\treadonly tools: AgentHarnessTool<TContext>[];\n\treadonly resources: Resources;\n\treadonly streamOptions: AgentHarnessStreamOptions;\n\treadonly retryPolicy: RetryPolicy;\n\treadonly compaction: CompactionSettings;\n\treadonly steeringMode: QueueMode;\n\treadonly followUpMode: QueueMode;\n\treadonly toolExecution: \"sequential\" | \"parallel\";\n\treadonly toolContext: AgentHarnessOptions<TContext>[\"toolContext\"];\n\treadonly systemPrompt: AgentHarnessOptions<TContext>[\"systemPrompt\"];\n\treadonly toProviderMessages: NonNullable<AgentHarnessOptions<TContext>[\"toProviderMessages\"]>;\n\treadonly entryProjectors: Readonly<NonNullable<AgentHarnessOptions<TContext>[\"entryProjectors\"]>>;\n}\n\n/** The current durable state owned by one lane. */\nexport interface LaneState {\n\treadonly tipId: string | null;\n\treadonly configuration: LaneConfiguration;\n\treadonly inbox: InboxItem[];\n\treadonly lastOperationId: string | null;\n\treadonly operation: Operation | null;\n}\n\ntype Synchronous<TResult> = TResult extends PromiseLike<unknown> ? never : TResult;\n\ninterface CommitDecision<TResult> {\n\tkind: \"commit\";\n\twrites: Write[];\n\tmaterialize(commit: CommitResult): Synchronous<TResult>;\n\tevents?(commit: CommitResult): HarnessEvent[];\n}\n\n/** One effect-free decision made on a lane's serialized mutation line. */\nexport type LaneCommand<TResult> =\n\t| (CommitDecision<TResult> & { next: LaneState })\n\t| { kind: \"return\"; result: TResult }\n\t| { kind: \"reject\"; error: Error };\n\nexport type ContinueOperationResult<TResult> = { kind: \"cancel_requested\" } | { kind: \"result\"; value: TResult };\n\n/** A durable operation transition. The Lane pairs the state write with projection publication. */\ntype LanePatch = Partial<Pick<LaneState, \"tipId\" | \"configuration\" | \"inbox\">>;\n\ninterface FinishDecision<TResult> {\n\tkind: \"finish\";\n\twrites: Write[];\n\trecord: OperationResultRecord;\n\tlane?: LanePatch;\n\tmaterialize(commit: CommitResult): Synchronous<TResult>;\n\tevents?(commit: CommitResult): HarnessEvent[];\n}\n\nexport type OperationCommand<TResult> =\n\t| (CommitDecision<TResult> & { operationState: OperationState; lane?: LanePatch })\n\t| FinishDecision<TResult>\n\t| { kind: \"return\"; result: TResult };\n\n/** One installed process-local drive pass. */\nexport class Drive {\n\treadonly operationId: string;\n\treadonly completion: Promise<DriveOutcome>;\n\treadonly gate: Gate;\n\treadonly context: Context;\n\treadonly waitForRetry: boolean;\n\treadonly closeSignal: AbortSignal;\n\tdeferredPermits: number;\n\n\tprivate readonly control: GateControl;\n\tprivate readonly closeController: AbortController;\n\tprivate readonly resolveCompletion: (outcome: DriveOutcome) => void;\n\tprivate readonly rejectCompletion: (error: unknown) => void;\n\n\tconstructor(options: DriveOptions, context: Context) {\n\t\tthis.operationId = options.operationId;\n\t\tthis.context = withoutAbortSignal(context);\n\t\tthis.waitForRetry = options.waitForRetry ?? false;\n\t\tthis.deferredPermits = options.pollDeferred === true ? 1 : 0;\n\t\tlet resolveCompletion!: (outcome: DriveOutcome) => void;\n\t\tlet rejectCompletion!: (error: unknown) => void;\n\t\tthis.completion = new Promise<DriveOutcome>((resolve, reject) => {\n\t\t\tresolveCompletion = resolve;\n\t\t\trejectCompletion = reject;\n\t\t});\n\t\tthis.resolveCompletion = resolveCompletion;\n\t\tthis.rejectCompletion = rejectCompletion;\n\t\tvoid this.completion.catch(() => {});\n\t\tconst { gate, control } = createGate();\n\t\tthis.gate = gate;\n\t\tthis.control = control;\n\t\tthis.closeController = new AbortController();\n\t\tthis.closeSignal = this.closeController.signal;\n\t}\n\n\tsettle(outcome: DriveOutcome): void {\n\t\tthis.resolveCompletion(outcome);\n\t}\n\n\tfail(error: unknown): void {\n\t\tthis.rejectCompletion(error);\n\t}\n\n\tbeginAbort(cancellation: Promise<void>): void {\n\t\tthis.control.beginAbort(cancellation);\n\t}\n\n\tsignalAbort(): void {\n\t\tthis.control.signalAbort();\n\t}\n\n\tcloseGate(error: Error): void {\n\t\tthis.control.close(error);\n\t\tif (!this.closeSignal.aborted) this.closeController.abort(error);\n\t\tthis.rejectCompletion(error);\n\t}\n}\n\nexport type ProcedureResult =\n\t| { kind: \"continue\" }\n\t| { kind: \"waiting\"; outcome: DriveOutcome }\n\t| { kind: \"settled\"; outcome: OperationResultRecord };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../../src/harness/session/commit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEzG,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAC5D,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAC/D,MAAM,WAAW,sBAAsB;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,KAAK,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;CACf;AACD,MAAM,WAAW,yBAAyB;IACzC,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,QAAQ,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACZ;AACD,MAAM,WAAW,wBAAwB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,QAAQ,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;CACf;AACD,MAAM,WAAW,wBAAwB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,QAAQ,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACZ;AACD,MAAM,MAAM,cAAc,GACvB,mBAAmB,GACnB,mBAAmB,GACnB,sBAAsB,GACtB,yBAAyB,GACzB,wBAAwB,GACxB,wBAAwB,CAAC;AAE5B,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACrC,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;CAChC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,CAEvD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,UAAU,CAElE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,CAexF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,CAEhG;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,CAMzG;AAED,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,SAAS,cAAc,EAAE,EACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,qBAAqB,GAC1B,IAAI,CAsBN"
|
|
1
|
+
{"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../../src/harness/session/commit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEzG,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAC5D,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAC/D,MAAM,WAAW,sBAAsB;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,KAAK,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;CACf;AACD,MAAM,WAAW,yBAAyB;IACzC,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,QAAQ,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACZ;AACD,MAAM,WAAW,wBAAwB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,QAAQ,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;CACf;AACD,MAAM,WAAW,wBAAwB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,QAAQ,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACZ;AACD,MAAM,MAAM,cAAc,GACvB,mBAAmB,GACnB,mBAAmB,GACnB,sBAAsB,GACtB,yBAAyB,GACzB,wBAAwB,GACxB,wBAAwB,CAAC;AAE5B,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACrC,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;CAChC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,CAEvD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,UAAU,CAElE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,CAexF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,CAEhG;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,CAMzG;AAED,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,SAAS,cAAc,EAAE,EACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,qBAAqB,GAC1B,IAAI,CAsBN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../../../src/harness/session/commit.ts"],"names":[],"mappings":"AAoDA,MAAM,UAAU,WAAW,CAAC,KAAe
|
|
1
|
+
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../../../src/harness/session/commit.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CommitResult, Entry, EntryWrite, NewEntry, UsageRow, UsageWrite, Write } from \"./types.ts\";\n\nexport type CommittedEntryWrite = Entry & { kind: \"entry\" };\nexport type CommittedUsageWrite = UsageRow & { kind: \"usage\" };\nexport interface CommittedValueSetWrite {\n\tkind: \"value\";\n\top: \"set\";\n\tseq: number;\n\tnamespace: string;\n\tkey: string;\n\tvalue: unknown;\n}\nexport interface CommittedValueDeleteWrite {\n\tkind: \"value\";\n\top: \"delete\";\n\tseq: number;\n\tnamespace: string;\n\tkey: string;\n}\nexport interface CommittedListAppendWrite {\n\tkind: \"list\";\n\top: \"append\";\n\tseq: number;\n\tnamespace: string;\n\tkey: string;\n\tvalue: unknown;\n}\nexport interface CommittedListDeleteWrite {\n\tkind: \"list\";\n\top: \"delete\";\n\tseq: number;\n\tnamespace: string;\n\tkey: string;\n}\nexport type CommittedWrite =\n\t| CommittedEntryWrite\n\t| CommittedUsageWrite\n\t| CommittedValueSetWrite\n\t| CommittedValueDeleteWrite\n\t| CommittedListAppendWrite\n\t| CommittedListDeleteWrite;\n\nexport interface PreparedCommit {\n\twrites: CommittedWrite[];\n\tresult: Omit<CommitResult, \"stats\">;\n}\n\nexport interface CommitValidationState {\n\thasEntryOrUsageId(id: string): boolean;\n\thasEntryId(id: string): boolean;\n}\n\nexport function insertEntry(entry: NewEntry): EntryWrite {\n\treturn { kind: \"entry\", entry };\n}\n\nexport function insertUsage(row: Omit<UsageRow, \"seq\">): UsageWrite {\n\treturn { kind: \"usage\", row };\n}\n\nexport function commitWrite(write: Write, seq: number, timestamp: number): CommittedWrite {\n\tswitch (write.kind) {\n\t\tcase \"entry\":\n\t\t\treturn { kind: \"entry\", ...write.entry, seq, timestamp };\n\t\tcase \"usage\":\n\t\t\treturn { kind: \"usage\", ...write.row, seq };\n\t\tcase \"value\":\n\t\t\treturn write.op === \"set\"\n\t\t\t\t? { kind: \"value\", op: \"set\", seq, namespace: write.namespace, key: write.key, value: write.value }\n\t\t\t\t: { kind: \"value\", op: \"delete\", seq, namespace: write.namespace, key: write.key };\n\t\tcase \"list\":\n\t\t\treturn write.op === \"append\"\n\t\t\t\t? { kind: \"list\", op: \"append\", seq, namespace: write.namespace, key: write.key, value: write.value }\n\t\t\t\t: { kind: \"list\", op: \"delete\", seq, namespace: write.namespace, key: write.key };\n\t}\n}\n\nexport function materializeCommittedEntry(entry: NewEntry, seq: number, timestamp: number): Entry {\n\treturn { ...entry, seq, timestamp };\n}\n\nexport function prepareStorageCommit(writes: Write[], firstSeq: number, timestamp: number): PreparedCommit {\n\tconst committedWrites = writes.map((write, index) => commitWrite(write, firstSeq + index, timestamp));\n\treturn {\n\t\twrites: committedWrites,\n\t\tresult: { firstSeq, seqs: committedWrites.map((write) => write.seq), timestamp },\n\t};\n}\n\nexport function validateCommittedWrites(\n\twrites: readonly CommittedWrite[],\n\tfirstSeq: number,\n\tstate: CommitValidationState,\n): void {\n\tlet previousSeq = firstSeq - 1;\n\tconst transactionIds = new Set<string>();\n\tconst transactionEntryIds = new Set<string>();\n\tfor (const write of writes) {\n\t\tif (write.seq <= previousSeq) throw new Error(`Non-monotonic storage sequence: ${write.seq}`);\n\t\tpreviousSeq = write.seq;\n\t\tif (write.kind !== \"entry\" && write.kind !== \"usage\") continue;\n\t\tif (state.hasEntryOrUsageId(write.id) || transactionIds.has(write.id)) {\n\t\t\tthrow new Error(`Duplicate entry or usage id: ${write.id}`);\n\t\t}\n\t\tif (\n\t\t\twrite.kind === \"entry\" &&\n\t\t\twrite.parentId !== null &&\n\t\t\t!state.hasEntryId(write.parentId) &&\n\t\t\t!transactionEntryIds.has(write.parentId)\n\t\t) {\n\t\t\tthrow new Error(`Missing parent entry: ${write.parentId}`);\n\t\t}\n\t\ttransactionIds.add(write.id);\n\t\tif (write.kind === \"entry\") transactionEntryIds.add(write.id);\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/harness/session/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAmB,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEzE,MAAM,WAAW,0BAA0B;IAC1C,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;CAC3D;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,SAAS,KAAK,EAAE,GAAG,KAAK,EAAE,CAY1E;AASD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,EAAE,CAc1E;AAED,wBAAsB,mBAAmB,CACxC,WAAW,EAAE,SAAS,KAAK,EAAE,EAC7B,OAAO,EAAE,0BAA0B,GAAG,SAAS,EAC/C,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,YAAY,EAAE,CAAC,CAazB"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/harness/session/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAmB,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEzE,MAAM,WAAW,0BAA0B;IAC1C,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;CAC3D;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,SAAS,KAAK,EAAE,GAAG,KAAK,EAAE,CAY1E;AASD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,EAAE,CAc1E;AAED,wBAAsB,mBAAmB,CACxC,WAAW,EAAE,SAAS,KAAK,EAAE,EAC7B,OAAO,EAAE,0BAA0B,GAAG,SAAS,EAC/C,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,YAAY,EAAE,CAAC,CAazB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/harness/session/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAO5F,MAAM,UAAU,mBAAmB,CAAC,WAA6B
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/harness/session/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAO5F,MAAM,UAAU,mBAAmB,CAAC,WAA6B;IAChE,IAAI,UAAuC,CAAC;IAC5C,IAAI,eAAe,GAAG,CAAC,CAAC,CAAC;IACzB,KAAK,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,KAAK,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;YAClC,UAAU,GAAG,KAAK,CAAC;YACnB,eAAe,GAAG,KAAK,CAAC;YACxB,MAAM;QACP,CAAC;IACF,CAAC;IACD,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9G,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAqB;IAC9C,OAAO,CACN,OAAO,CAAC,IAAI,KAAK,WAAW;QAC5B,CAAC,OAAO,CAAC,UAAU,KAAK,OAAO,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC,CACzG,CAAC;AACH,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAY;IACzD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,SAAS;YACb,OAAO,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,KAAK,YAAY;YAChB,OAAO;gBACN,8BAA8B,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC;gBAClF,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,gBAAgB,CAAC;aAC9C,CAAC;QACH,KAAK,gBAAgB;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxG,KAAK,QAAQ;YACZ,OAAO,EAAE,CAAC;IACZ,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,WAA6B,EAC7B,OAA+C,EAC/C,OAAgB;IAEhB,OAAO,KAAK,EAAE,CAAC;IACf,MAAM,OAAO,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC,CAAC;YACvD,SAAS;QACV,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC9D,IAAI,SAAS,KAAK,SAAS;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC","sourcesContent":["import type { AgentMessage } from \"../../types.ts\";\nimport type { Context } from \"../context.ts\";\nimport { createBranchSummaryMessage, createCompactionSummaryMessage } from \"../messages.ts\";\nimport type { CompactionEntry, Entry, EntryProjector } from \"./types.ts\";\n\nexport interface SessionContextBuildOptions {\n\tentryProjectors?: Readonly<Record<string, EntryProjector>>;\n}\n\nexport function buildContextEntries(pathEntries: readonly Entry[]): Entry[] {\n\tlet compaction: CompactionEntry | undefined;\n\tlet compactionIndex = -1;\n\tfor (let index = pathEntries.length - 1; index >= 0; index--) {\n\t\tconst entry = pathEntries[index];\n\t\tif (entry?.type === \"compaction\") {\n\t\t\tcompaction = entry;\n\t\t\tcompactionIndex = index;\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn compaction === undefined ? [...pathEntries] : [compaction, ...pathEntries.slice(compactionIndex + 1)];\n}\n\nfunction isContextMessage(message: AgentMessage): boolean {\n\treturn (\n\t\tmessage.role !== \"assistant\" ||\n\t\t(message.stopReason !== \"error\" && message.stopReason !== \"aborted\" && message.stopReason !== \"deferred\")\n\t);\n}\n\nexport function sessionEntryToContextMessages(entry: Entry): AgentMessage[] {\n\tswitch (entry.type) {\n\t\tcase \"message\":\n\t\t\treturn isContextMessage(entry.message) ? [entry.message] : [];\n\t\tcase \"compaction\":\n\t\t\treturn [\n\t\t\t\tcreateCompactionSummaryMessage(entry.summary, entry.tokensBefore, entry.timestamp),\n\t\t\t\t...entry.retainedTail.filter(isContextMessage),\n\t\t\t];\n\t\tcase \"branch_summary\":\n\t\t\treturn entry.summary ? [createBranchSummaryMessage(entry.summary, entry.fromId, entry.timestamp)] : [];\n\t\tcase \"custom\":\n\t\t\treturn [];\n\t}\n}\n\nexport async function buildSessionContext(\n\tpathEntries: readonly Entry[],\n\toptions: SessionContextBuildOptions | undefined,\n\tcontext: Context,\n): Promise<AgentMessage[]> {\n\toptions ??= {};\n\tconst entries = buildContextEntries(pathEntries);\n\tconst messages: AgentMessage[] = [];\n\tfor (const entry of entries) {\n\t\tif (entry.type !== \"custom\") {\n\t\t\tmessages.push(...sessionEntryToContextMessages(entry));\n\t\t\tcontinue;\n\t\t}\n\t\tconst projector = options.entryProjectors?.[entry.customType];\n\t\tif (projector !== undefined) messages.push(...((await projector(entry, context)) ?? []));\n\t}\n\treturn messages;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fork-policy.d.ts","sourceRoot":"","sources":["../../../src/harness/session/fork-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,oBAAoB,GAC7B;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAClE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAC,EAClD,MAAM,EAAE;IACP,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1D,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,GACC,OAAO,CAAC,oBAAoB,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAC,CAsBpD;AAED,uFAAuF;AACvF,wBAAgB,4BAA4B,CAC3C,KAAK,EAAE,sBAAsB,GAAG,wBAAwB,EACxD,IAAI,EAAE,oBAAoB,EAC1B,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GACzC,sBAAsB,GAAG,wBAAwB,GAAG,SAAS,CAuB/D"
|
|
1
|
+
{"version":3,"file":"fork-policy.d.ts","sourceRoot":"","sources":["../../../src/harness/session/fork-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,oBAAoB,GAC7B;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAClE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAC,EAClD,MAAM,EAAE;IACP,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1D,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,GACC,OAAO,CAAC,oBAAoB,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAC,CAsBpD;AAED,uFAAuF;AACvF,wBAAgB,4BAA4B,CAC3C,KAAK,EAAE,sBAAsB,GAAG,wBAAwB,EACxD,IAAI,EAAE,oBAAoB,EAC1B,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GACzC,sBAAsB,GAAG,wBAAwB,GAAG,SAAS,CAuB/D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fork-policy.js","sourceRoot":"","sources":["../../../src/harness/session/fork-policy.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,gBAAgB,CAC/B,OAAkD,EAClD,MAIC
|
|
1
|
+
{"version":3,"file":"fork-policy.js","sourceRoot":"","sources":["../../../src/harness/session/fork-policy.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CommittedListAppendWrite, CommittedValueSetWrite } from \"./commit.ts\";\nimport type { ForkOptions } from \"./types.ts\";\n\nexport type ForkCurrentStatePlan =\n\t| { scope: \"branch\"; branch: string; destinationTip: string | null }\n\t| { scope: \"tree\" };\n\nexport function selectBranchFork(\n\toptions: Extract<ForkOptions, { scope: \"branch\" }>,\n\tsource: {\n\t\ttip: string | null | undefined;\n\t\tgetParent: (entryId: string) => string | null | undefined;\n\t\tselectEntry: (entryId: string) => void;\n\t},\n): Extract<ForkCurrentStatePlan, { scope: \"branch\" }> {\n\tif (source.tip === undefined) throw new Error(`Unknown source branch: ${options.branch}`);\n\tconst requested = options.entryId ?? source.tip;\n\tlet found = requested === null;\n\tlet destinationTip: string | null = null;\n\tlet entryId = source.tip;\n\twhile (entryId !== null) {\n\t\tconst parentId = source.getParent(entryId);\n\t\tif (parentId === undefined) throw new Error(`Corrupt source branch: missing parent ${entryId}`);\n\t\tif (entryId === requested) {\n\t\t\tfound = true;\n\t\t\tdestinationTip = options.position === \"before\" ? parentId : entryId;\n\t\t\tif (options.position !== \"before\") source.selectEntry(entryId);\n\t\t} else if (found) {\n\t\t\tsource.selectEntry(entryId);\n\t\t}\n\t\tentryId = parentId;\n\t}\n\tif (!found) {\n\t\tthrow new Error(`Fork entry ${requested} is not on source branch ${JSON.stringify(options.branch)}`);\n\t}\n\treturn { scope: \"branch\", branch: options.branch, destinationTip };\n}\n\n/** Project one current scalar row or surviving list element into destination state. */\nexport function projectForkCurrentStateWrite(\n\twrite: CommittedValueSetWrite | CommittedListAppendWrite,\n\tplan: ForkCurrentStatePlan,\n\tisEntryCopied: (entryId: string) => boolean,\n): CommittedValueSetWrite | CommittedListAppendWrite | undefined {\n\tswitch (write.namespace) {\n\t\tcase \"pi.session.name\":\n\t\t\treturn write;\n\t\tcase \"pi.entry.label\":\n\t\t\treturn isEntryCopied(write.key) ? write : undefined;\n\t\tcase \"pi.branch.tip\":\n\t\t\tif (plan.scope === \"tree\") return write;\n\t\t\treturn write.key === plan.branch ? { ...write, value: plan.destinationTip } : undefined;\n\t\tcase \"pi.lane.config\":\n\t\t\treturn plan.scope === \"tree\" || write.key === plan.branch ? write : undefined;\n\t\tcase \"pi.lane.state\":\n\t\t\treturn plan.scope === \"tree\" || write.key === plan.branch\n\t\t\t\t? { ...write, value: { currentOperationId: null, lastOperationId: null, inbox: [] } }\n\t\t\t\t: undefined;\n\t\tcase \"pi.result\":\n\t\t\treturn undefined;\n\t}\n\tif (write.namespace.startsWith(\"pi.op.\") || write.namespace.startsWith(\"pi.pending.\")) return undefined;\n\tif (write.namespace === \"pi\" || write.namespace.startsWith(\"pi.\")) {\n\t\tthrow new Error(`Unknown reserved fork namespace: ${write.namespace}`);\n\t}\n\treturn plan.scope === \"tree\" ? write : undefined;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../../src/harness/session/fork.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAoC,KAAK,WAAW,EAAqB,MAAM,aAAa,CAAC;AAEpG,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,yFAAyF;IACzF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5B,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;CAChB;AAYD,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,WAAW,GAAG,uBAAuB,CAkC5G"
|
|
1
|
+
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../../src/harness/session/fork.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAoC,KAAK,WAAW,EAAqB,MAAM,aAAa,CAAC;AAEpG,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,yFAAyF;IACzF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5B,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;CAChB;AAYD,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,WAAW,GAAG,uBAAuB,CAkC5G"}
|