visionclaw 0.1.219-beta.0 → 0.1.219-dev.codex-issue-2805-worker-runtime.2
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/dist/agent/api-proxy.d.ts +0 -16
- package/dist/agent/api-proxy.d.ts.map +1 -1
- package/dist/agent/api-proxy.js +9 -8
- package/dist/agent/api-proxy.js.map +1 -1
- package/dist/agent/browser-launcher.d.ts +3 -0
- package/dist/agent/browser-launcher.d.ts.map +1 -1
- package/dist/agent/browser-launcher.js +101 -43
- package/dist/agent/browser-launcher.js.map +1 -1
- package/dist/agent/coding-conventions.d.ts +8 -0
- package/dist/agent/coding-conventions.d.ts.map +1 -0
- package/dist/agent/coding-conventions.js +19 -0
- package/dist/agent/coding-conventions.js.map +1 -0
- package/dist/agent/command-handlers.d.ts.map +1 -1
- package/dist/agent/command-handlers.js +4 -16
- package/dist/agent/command-handlers.js.map +1 -1
- package/dist/agent/context-action-restart-fallback.d.ts.map +1 -1
- package/dist/agent/context-action-restart-fallback.js +9 -3
- package/dist/agent/context-action-restart-fallback.js.map +1 -1
- package/dist/agent/context-refresh.d.ts.map +1 -1
- package/dist/agent/context-refresh.js +0 -7
- package/dist/agent/context-refresh.js.map +1 -1
- package/dist/agent/context.d.ts +2 -4
- package/dist/agent/context.d.ts.map +1 -1
- package/dist/agent/context.js +12 -21
- package/dist/agent/context.js.map +1 -1
- package/dist/agent/engine-fallback.d.ts +0 -35
- package/dist/agent/engine-fallback.d.ts.map +1 -1
- package/dist/agent/engine-fallback.js +4 -3
- package/dist/agent/engine-fallback.js.map +1 -1
- package/dist/agent/engine-switch.d.ts +19 -38
- package/dist/agent/engine-switch.d.ts.map +1 -1
- package/dist/agent/engine-switch.js +46 -111
- package/dist/agent/engine-switch.js.map +1 -1
- package/dist/agent/engines/browser-tool-policy.d.ts +12 -1
- package/dist/agent/engines/browser-tool-policy.d.ts.map +1 -1
- package/dist/agent/engines/browser-tool-policy.js +17 -2
- package/dist/agent/engines/browser-tool-policy.js.map +1 -1
- package/dist/agent/engines/claude/executor-shell-groups.d.ts +11 -0
- package/dist/agent/engines/claude/executor-shell-groups.d.ts.map +1 -0
- package/dist/agent/engines/claude/executor-shell-groups.js +22 -0
- package/dist/agent/engines/claude/executor-shell-groups.js.map +1 -0
- package/dist/agent/engines/claude/session.d.ts +13 -4
- package/dist/agent/engines/claude/session.d.ts.map +1 -1
- package/dist/agent/engines/claude/session.js +165 -84
- package/dist/agent/engines/claude/session.js.map +1 -1
- package/dist/agent/engines/pi/shared/usage.d.ts +6 -8
- package/dist/agent/engines/pi/shared/usage.d.ts.map +1 -1
- package/dist/agent/engines/pi/shared/usage.js +24 -7
- package/dist/agent/engines/pi/shared/usage.js.map +1 -1
- package/dist/agent/engines/pi/tools.d.ts +3 -10
- package/dist/agent/engines/pi/tools.d.ts.map +1 -1
- package/dist/agent/engines/pi/tools.js +6 -20
- package/dist/agent/engines/pi/tools.js.map +1 -1
- package/dist/agent/engines/pi-coding/executor-shell.d.ts +4 -0
- package/dist/agent/engines/pi-coding/executor-shell.d.ts.map +1 -0
- package/dist/agent/engines/pi-coding/executor-shell.js +175 -0
- package/dist/agent/engines/pi-coding/executor-shell.js.map +1 -0
- package/dist/agent/engines/pi-coding/session.d.ts +4 -4
- package/dist/agent/engines/pi-coding/session.d.ts.map +1 -1
- package/dist/agent/engines/pi-coding/session.js +118 -66
- package/dist/agent/engines/pi-coding/session.js.map +1 -1
- package/dist/agent/engines/pi-coding/tools.d.ts +2 -5
- package/dist/agent/engines/pi-coding/tools.d.ts.map +1 -1
- package/dist/agent/engines/pi-coding/tools.js +7 -5
- package/dist/agent/engines/pi-coding/tools.js.map +1 -1
- package/dist/agent/engines/session-types.d.ts +8 -8
- package/dist/agent/engines/session-types.d.ts.map +1 -1
- package/dist/agent/external-context/interrupt.d.ts +0 -2
- package/dist/agent/external-context/interrupt.d.ts.map +1 -1
- package/dist/agent/external-context/interrupt.js +0 -1
- package/dist/agent/external-context/interrupt.js.map +1 -1
- package/dist/agent/external-context/registry.d.ts +0 -2
- package/dist/agent/external-context/registry.d.ts.map +1 -1
- package/dist/agent/external-context/registry.js +2 -4
- package/dist/agent/external-context/registry.js.map +1 -1
- package/dist/agent/external-context/runtime.d.ts.map +1 -1
- package/dist/agent/external-context/runtime.js +15 -14
- package/dist/agent/external-context/runtime.js.map +1 -1
- package/dist/agent/external-context/types.d.ts +0 -2
- package/dist/agent/external-context/types.d.ts.map +1 -1
- package/dist/agent/fast-responder.d.ts +4 -20
- package/dist/agent/fast-responder.d.ts.map +1 -1
- package/dist/agent/fast-responder.js +28 -42
- package/dist/agent/fast-responder.js.map +1 -1
- package/dist/agent/interrupt-handler.d.ts +4 -18
- package/dist/agent/interrupt-handler.d.ts.map +1 -1
- package/dist/agent/interrupt-handler.js +52 -283
- package/dist/agent/interrupt-handler.js.map +1 -1
- package/dist/agent/lab-run-system-prompt.d.ts.map +1 -1
- package/dist/agent/lab-run-system-prompt.js +4 -1
- package/dist/agent/lab-run-system-prompt.js.map +1 -1
- package/dist/agent/lifecycle-trace.d.ts.map +1 -1
- package/dist/agent/lifecycle-trace.js +6 -5
- package/dist/agent/lifecycle-trace.js.map +1 -1
- package/dist/agent/loop.d.ts +9 -3
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +288 -157
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/memory-protocol.d.ts +2 -2
- package/dist/agent/memory-protocol.d.ts.map +1 -1
- package/dist/agent/memory-protocol.js +3 -15
- package/dist/agent/memory-protocol.js.map +1 -1
- package/dist/agent/memory-store.d.ts +58 -0
- package/dist/agent/memory-store.d.ts.map +1 -0
- package/dist/agent/memory-store.js +152 -0
- package/dist/agent/memory-store.js.map +1 -0
- package/dist/agent/model-provider.d.ts +18 -5
- package/dist/agent/model-provider.d.ts.map +1 -1
- package/dist/agent/model-provider.js +58 -18
- package/dist/agent/model-provider.js.map +1 -1
- package/dist/agent/nightly-maintenance/dreaming-batch.d.ts +184 -0
- package/dist/agent/nightly-maintenance/dreaming-batch.d.ts.map +1 -0
- package/dist/agent/nightly-maintenance/dreaming-batch.js +192 -0
- package/dist/agent/nightly-maintenance/dreaming-batch.js.map +1 -0
- package/dist/agent/nightly-maintenance/dreaming-files.d.ts +48 -0
- package/dist/agent/nightly-maintenance/dreaming-files.d.ts.map +1 -0
- package/dist/agent/nightly-maintenance/dreaming-files.js +109 -0
- package/dist/agent/nightly-maintenance/dreaming-files.js.map +1 -0
- package/dist/agent/nightly-maintenance/dreaming-ledger.d.ts +62 -0
- package/dist/agent/nightly-maintenance/dreaming-ledger.d.ts.map +1 -0
- package/dist/agent/nightly-maintenance/dreaming-ledger.js +146 -0
- package/dist/agent/nightly-maintenance/dreaming-ledger.js.map +1 -0
- package/dist/agent/nightly-maintenance/dreaming-planner.d.ts +86 -0
- package/dist/agent/nightly-maintenance/dreaming-planner.d.ts.map +1 -0
- package/dist/agent/nightly-maintenance/dreaming-planner.js +304 -0
- package/dist/agent/nightly-maintenance/dreaming-planner.js.map +1 -0
- package/dist/agent/nightly-maintenance/dreaming-runner.d.ts +93 -0
- package/dist/agent/nightly-maintenance/dreaming-runner.d.ts.map +1 -0
- package/dist/agent/nightly-maintenance/dreaming-runner.js +156 -0
- package/dist/agent/nightly-maintenance/dreaming-runner.js.map +1 -0
- package/dist/agent/nightly-maintenance/dreaming-sources.d.ts +115 -0
- package/dist/agent/nightly-maintenance/dreaming-sources.d.ts.map +1 -0
- package/dist/agent/nightly-maintenance/dreaming-sources.js +270 -0
- package/dist/agent/nightly-maintenance/dreaming-sources.js.map +1 -0
- package/dist/agent/nightly-maintenance/index.d.ts +28 -8
- package/dist/agent/nightly-maintenance/index.d.ts.map +1 -1
- package/dist/agent/nightly-maintenance/index.js +42 -15
- package/dist/agent/nightly-maintenance/index.js.map +1 -1
- package/dist/agent/nightly-maintenance/skill-learning-gate.js +1 -1
- package/dist/agent/nightly-maintenance/skill-learning-gate.js.map +1 -1
- package/dist/agent/nightly-maintenance/vocabulary-processor.d.ts +1 -1
- package/dist/agent/nightly-maintenance/vocabulary-processor.d.ts.map +1 -1
- package/dist/agent/product-identity.d.ts +5 -4
- package/dist/agent/product-identity.d.ts.map +1 -1
- package/dist/agent/product-identity.js +7 -6
- package/dist/agent/product-identity.js.map +1 -1
- package/dist/agent/public-activity.js +1 -1
- package/dist/agent/public-activity.js.map +1 -1
- package/dist/agent/reply-watchdog.d.ts +5 -3
- package/dist/agent/reply-watchdog.d.ts.map +1 -1
- package/dist/agent/reply-watchdog.js +6 -4
- package/dist/agent/reply-watchdog.js.map +1 -1
- package/dist/agent/runtime-context.d.ts +27 -0
- package/dist/agent/runtime-context.d.ts.map +1 -0
- package/dist/agent/runtime-context.js +60 -0
- package/dist/agent/runtime-context.js.map +1 -0
- package/dist/agent/runtime-disclosure-policy.d.ts +6 -0
- package/dist/agent/runtime-disclosure-policy.d.ts.map +1 -0
- package/dist/agent/runtime-disclosure-policy.js +16 -0
- package/dist/agent/runtime-disclosure-policy.js.map +1 -0
- package/dist/agent/runtime-surface.d.ts +15 -4
- package/dist/agent/runtime-surface.d.ts.map +1 -1
- package/dist/agent/runtime-surface.js +0 -1
- package/dist/agent/runtime-surface.js.map +1 -1
- package/dist/agent/session-manager.d.ts +30 -126
- package/dist/agent/session-manager.d.ts.map +1 -1
- package/dist/agent/session-manager.js +60 -484
- package/dist/agent/session-manager.js.map +1 -1
- package/dist/agent/state.d.ts +42 -2
- package/dist/agent/state.d.ts.map +1 -1
- package/dist/agent/state.js +21 -11
- package/dist/agent/state.js.map +1 -1
- package/dist/agent/stream-handler.d.ts +6 -13
- package/dist/agent/stream-handler.d.ts.map +1 -1
- package/dist/agent/stream-handler.js +8 -62
- package/dist/agent/stream-handler.js.map +1 -1
- package/dist/agent/system-prompt.d.ts +2 -0
- package/dist/agent/system-prompt.d.ts.map +1 -1
- package/dist/agent/system-prompt.js +21 -20
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/agent/tool-usage.d.ts.map +1 -1
- package/dist/agent/tool-usage.js +0 -1
- package/dist/agent/tool-usage.js.map +1 -1
- package/dist/agent/transcript/transcript-backfill.js +3 -3
- package/dist/agent/transcript/transcript-backfill.js.map +1 -1
- package/dist/agent/transcript/transcript-indexer.d.ts +3 -31
- package/dist/agent/transcript/transcript-indexer.d.ts.map +1 -1
- package/dist/agent/transcript/transcript-indexer.js +58 -57
- package/dist/agent/transcript/transcript-indexer.js.map +1 -1
- package/dist/agent/transcript-parsers/trivial-tools.d.ts.map +1 -1
- package/dist/agent/transcript-parsers/trivial-tools.js +0 -2
- package/dist/agent/transcript-parsers/trivial-tools.js.map +1 -1
- package/dist/agent/transcript-parsers/types.d.ts +1 -1
- package/dist/agent/transcript-summarizer.d.ts +14 -0
- package/dist/agent/transcript-summarizer.d.ts.map +1 -1
- package/dist/agent/transcript-summarizer.js +69 -45
- package/dist/agent/transcript-summarizer.js.map +1 -1
- package/dist/agent/usage/usage-report-queue.d.ts.map +1 -1
- package/dist/agent/usage/usage-report-queue.js +53 -52
- package/dist/agent/usage/usage-report-queue.js.map +1 -1
- package/dist/agent/usage/usage-report-types.d.ts +1 -1
- package/dist/agent/usage/usage-report-types.d.ts.map +1 -1
- package/dist/agent/vocabulary-glossary.d.ts +3 -3
- package/dist/agent/wake-cycle-runner.d.ts +14 -17
- package/dist/agent/wake-cycle-runner.d.ts.map +1 -1
- package/dist/agent/wake-cycle-runner.js +121 -290
- package/dist/agent/wake-cycle-runner.js.map +1 -1
- package/dist/builtin-skills/owner-manual/SKILL.md +2 -2
- package/dist/calendar/occurrence-ownership.d.ts.map +1 -1
- package/dist/calendar/occurrence-ownership.js +6 -5
- package/dist/calendar/occurrence-ownership.js.map +1 -1
- package/dist/calendar/scheduler.d.ts.map +1 -1
- package/dist/calendar/scheduler.js +4 -3
- package/dist/calendar/scheduler.js.map +1 -1
- package/dist/channels/interface.d.ts +8 -2
- package/dist/channels/interface.d.ts.map +1 -1
- package/dist/channels/interface.js +8 -1
- package/dist/channels/interface.js.map +1 -1
- package/dist/channels/manager.d.ts.map +1 -1
- package/dist/channels/manager.js +5 -1
- package/dist/channels/manager.js.map +1 -1
- package/dist/channels/queue.d.ts.map +1 -1
- package/dist/channels/queue.js +8 -0
- package/dist/channels/queue.js.map +1 -1
- package/dist/channels/tui.d.ts +14 -1
- package/dist/channels/tui.d.ts.map +1 -1
- package/dist/channels/tui.js +64 -2
- package/dist/channels/tui.js.map +1 -1
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +22 -53
- package/dist/cli/index.js.map +1 -1
- package/dist/config/index.d.ts +13 -7
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +51 -64
- package/dist/config/index.js.map +1 -1
- package/dist/config/types.d.ts +28 -7
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +22 -20
- package/dist/config/types.js.map +1 -1
- package/dist/conversations/lazy-runtime.d.ts +5 -0
- package/dist/conversations/lazy-runtime.d.ts.map +1 -0
- package/dist/conversations/lazy-runtime.js +12 -0
- package/dist/conversations/lazy-runtime.js.map +1 -0
- package/dist/conversations/runtime.d.ts +17 -0
- package/dist/conversations/runtime.d.ts.map +1 -0
- package/dist/conversations/runtime.js +92 -0
- package/dist/conversations/runtime.js.map +1 -0
- package/dist/conversations/scheduler.d.ts +57 -0
- package/dist/conversations/scheduler.d.ts.map +1 -0
- package/dist/conversations/scheduler.js +175 -0
- package/dist/conversations/scheduler.js.map +1 -0
- package/dist/data-processing/pipeline.d.ts +0 -2
- package/dist/data-processing/pipeline.d.ts.map +1 -1
- package/dist/data-processing/pipeline.js +19 -24
- package/dist/data-processing/pipeline.js.map +1 -1
- package/dist/data-processing/restructure.d.ts +0 -2
- package/dist/data-processing/restructure.d.ts.map +1 -1
- package/dist/data-processing/restructure.js +6 -9
- package/dist/data-processing/restructure.js.map +1 -1
- package/dist/data-processing/types.d.ts +2 -9
- package/dist/data-processing/types.d.ts.map +1 -1
- package/dist/data-processing/types.js +2 -13
- package/dist/data-processing/types.js.map +1 -1
- package/dist/email/email-route-store.d.ts.map +1 -1
- package/dist/email/email-route-store.js +6 -5
- package/dist/email/email-route-store.js.map +1 -1
- package/dist/i18n/messages.d.ts +26 -2
- package/dist/i18n/messages.d.ts.map +1 -1
- package/dist/i18n/messages.js +30 -5
- package/dist/i18n/messages.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +11 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +49 -1
- package/dist/logger.js.map +1 -1
- package/dist/obs/mini-app/status.d.ts.map +1 -1
- package/dist/obs/mini-app/status.js +0 -1
- package/dist/obs/mini-app/status.js.map +1 -1
- package/dist/onboarding/onboarding-service-client.d.ts +1 -0
- package/dist/onboarding/onboarding-service-client.d.ts.map +1 -1
- package/dist/onboarding/onboarding-service-client.js.map +1 -1
- package/dist/onboarding/remote-set-owner.d.ts.map +1 -1
- package/dist/onboarding/remote-set-owner.js +0 -1
- package/dist/onboarding/remote-set-owner.js.map +1 -1
- package/dist/onboarding/set-owner.d.ts +1 -1
- package/dist/onboarding/set-owner.d.ts.map +1 -1
- package/dist/onboarding/set-owner.js +3 -6
- package/dist/onboarding/set-owner.js.map +1 -1
- package/dist/reconfigure.d.ts.map +1 -1
- package/dist/reconfigure.js +1 -32
- package/dist/reconfigure.js.map +1 -1
- package/dist/reset.d.ts.map +1 -1
- package/dist/reset.js +3 -1
- package/dist/reset.js.map +1 -1
- package/dist/threads/active-threads-store.d.ts.map +1 -1
- package/dist/threads/active-threads-store.js +8 -27
- package/dist/threads/active-threads-store.js.map +1 -1
- package/dist/threads/dreaming-execution.d.ts +10 -0
- package/dist/threads/dreaming-execution.d.ts.map +1 -0
- package/dist/threads/dreaming-execution.js +78 -0
- package/dist/threads/dreaming-execution.js.map +1 -0
- package/dist/threads/execution-authority.d.ts +43 -0
- package/dist/threads/execution-authority.d.ts.map +1 -0
- package/dist/threads/execution-authority.js +75 -0
- package/dist/threads/execution-authority.js.map +1 -0
- package/dist/threads/execution-budget.d.ts +107 -0
- package/dist/threads/execution-budget.d.ts.map +1 -0
- package/dist/threads/execution-budget.js +257 -0
- package/dist/threads/execution-budget.js.map +1 -0
- package/dist/threads/execution-host.d.ts +17 -0
- package/dist/threads/execution-host.d.ts.map +1 -0
- package/dist/threads/execution-host.js +66 -0
- package/dist/threads/execution-host.js.map +1 -0
- package/dist/threads/execution-scheduler.d.ts +162 -0
- package/dist/threads/execution-scheduler.d.ts.map +1 -0
- package/dist/threads/execution-scheduler.js +413 -0
- package/dist/threads/execution-scheduler.js.map +1 -0
- package/dist/threads/execution-snapshot.d.ts +91 -0
- package/dist/threads/execution-snapshot.d.ts.map +1 -0
- package/dist/threads/execution-snapshot.js +146 -0
- package/dist/threads/execution-snapshot.js.map +1 -0
- package/dist/threads/execution-store.d.ts +374 -0
- package/dist/threads/execution-store.d.ts.map +1 -0
- package/dist/threads/execution-store.js +910 -0
- package/dist/threads/execution-store.js.map +1 -0
- package/dist/threads/execution-thread-error.d.ts +9 -0
- package/dist/threads/execution-thread-error.d.ts.map +1 -0
- package/dist/threads/execution-thread-error.js +12 -0
- package/dist/threads/execution-thread-error.js.map +1 -0
- package/dist/threads/executor-exit.d.ts +18 -0
- package/dist/threads/executor-exit.d.ts.map +1 -0
- package/dist/threads/executor-exit.js +21 -0
- package/dist/threads/executor-exit.js.map +1 -0
- package/dist/threads/foreground-task.d.ts +91 -0
- package/dist/threads/foreground-task.d.ts.map +1 -0
- package/dist/threads/foreground-task.js +191 -0
- package/dist/threads/foreground-task.js.map +1 -0
- package/dist/threads/foreman-business.d.ts +9 -0
- package/dist/threads/foreman-business.d.ts.map +1 -0
- package/dist/threads/foreman-business.js +117 -0
- package/dist/threads/foreman-business.js.map +1 -0
- package/dist/threads/foreman-client.d.ts +18 -0
- package/dist/threads/foreman-client.d.ts.map +1 -0
- package/dist/threads/foreman-client.js +51 -0
- package/dist/threads/foreman-client.js.map +1 -0
- package/dist/threads/foreman-delivery.d.ts +5 -0
- package/dist/threads/foreman-delivery.d.ts.map +1 -0
- package/dist/threads/foreman-delivery.js +21 -0
- package/dist/threads/foreman-delivery.js.map +1 -0
- package/dist/threads/foreman-execution.d.ts +32 -0
- package/dist/threads/foreman-execution.d.ts.map +1 -0
- package/dist/threads/foreman-execution.js +90 -0
- package/dist/threads/foreman-execution.js.map +1 -0
- package/dist/threads/foreman-host.d.ts +77 -0
- package/dist/threads/foreman-host.d.ts.map +1 -0
- package/dist/threads/foreman-host.js +891 -0
- package/dist/threads/foreman-host.js.map +1 -0
- package/dist/threads/foreman-protocol.d.ts +242 -0
- package/dist/threads/foreman-protocol.d.ts.map +1 -0
- package/dist/threads/foreman-protocol.js +116 -0
- package/dist/threads/foreman-protocol.js.map +1 -0
- package/dist/threads/foreman-store.d.ts +151 -0
- package/dist/threads/foreman-store.d.ts.map +1 -0
- package/dist/threads/foreman-store.js +299 -0
- package/dist/threads/foreman-store.js.map +1 -0
- package/dist/threads/generic-execution.d.ts +25 -0
- package/dist/threads/generic-execution.d.ts.map +1 -0
- package/dist/threads/generic-execution.js +86 -0
- package/dist/threads/generic-execution.js.map +1 -0
- package/dist/threads/init-thread-dir.d.ts +2 -2
- package/dist/threads/init-thread-dir.d.ts.map +1 -1
- package/dist/threads/init-thread-dir.js +6 -6
- package/dist/threads/init-thread-dir.js.map +1 -1
- package/dist/threads/ipc.d.ts +108 -2
- package/dist/threads/ipc.d.ts.map +1 -1
- package/dist/threads/ipc.js +14 -2
- package/dist/threads/ipc.js.map +1 -1
- package/dist/threads/lab-run-thread.d.ts +3 -5
- package/dist/threads/lab-run-thread.d.ts.map +1 -1
- package/dist/threads/lab-run-thread.js +3 -5
- package/dist/threads/lab-run-thread.js.map +1 -1
- package/dist/threads/lab-runtime-policy.d.ts +26 -21
- package/dist/threads/lab-runtime-policy.d.ts.map +1 -1
- package/dist/threads/lab-runtime-policy.js +31 -126
- package/dist/threads/lab-runtime-policy.js.map +1 -1
- package/dist/threads/process-group.d.ts +41 -0
- package/dist/threads/process-group.d.ts.map +1 -0
- package/dist/threads/process-group.js +161 -0
- package/dist/threads/process-group.js.map +1 -0
- package/dist/threads/relay-adapter.d.ts +8 -0
- package/dist/threads/relay-adapter.d.ts.map +1 -1
- package/dist/threads/relay-adapter.js +26 -1
- package/dist/threads/relay-adapter.js.map +1 -1
- package/dist/threads/supervisor.d.ts +191 -57
- package/dist/threads/supervisor.d.ts.map +1 -1
- package/dist/threads/supervisor.js +766 -427
- package/dist/threads/supervisor.js.map +1 -1
- package/dist/threads/task-workspace.d.ts +8 -0
- package/dist/threads/task-workspace.d.ts.map +1 -0
- package/dist/threads/task-workspace.js +52 -0
- package/dist/threads/task-workspace.js.map +1 -0
- package/dist/threads/worker-entry.d.ts.map +1 -1
- package/dist/threads/worker-entry.js +314 -34
- package/dist/threads/worker-entry.js.map +1 -1
- package/dist/threads/worker-execution-runtime.d.ts +75 -0
- package/dist/threads/worker-execution-runtime.d.ts.map +1 -0
- package/dist/threads/worker-execution-runtime.js +142 -0
- package/dist/threads/worker-execution-runtime.js.map +1 -0
- package/dist/threads/worker-execution.d.ts +35 -0
- package/dist/threads/worker-execution.d.ts.map +1 -0
- package/dist/threads/worker-execution.js +2 -0
- package/dist/threads/worker-execution.js.map +1 -0
- package/dist/threads/worker-runtime-policy.d.ts +42 -0
- package/dist/threads/worker-runtime-policy.d.ts.map +1 -0
- package/dist/threads/worker-runtime-policy.js +98 -0
- package/dist/threads/worker-runtime-policy.js.map +1 -0
- package/dist/tools/adapter-tool.d.ts +12 -0
- package/dist/tools/adapter-tool.d.ts.map +1 -0
- package/dist/tools/adapter-tool.js +2 -0
- package/dist/tools/adapter-tool.js.map +1 -0
- package/dist/tools/data-service.d.ts +2 -2
- package/dist/tools/delegation.d.ts +121 -0
- package/dist/tools/delegation.d.ts.map +1 -0
- package/dist/tools/delegation.js +106 -0
- package/dist/tools/delegation.js.map +1 -0
- package/dist/tools/dream-memory.d.ts +122 -0
- package/dist/tools/dream-memory.d.ts.map +1 -0
- package/dist/tools/dream-memory.js +513 -0
- package/dist/tools/dream-memory.js.map +1 -0
- package/dist/tools/email.d.ts +1 -1
- package/dist/tools/execution-control.d.ts +31 -0
- package/dist/tools/execution-control.d.ts.map +1 -0
- package/dist/tools/execution-control.js +71 -0
- package/dist/tools/execution-control.js.map +1 -0
- package/dist/tools/index.d.ts +5 -7
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +7 -13
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mcp-manager.d.ts +1 -1
- package/dist/tools/memory.d.ts +1 -1
- package/dist/tools/memory.d.ts.map +1 -1
- package/dist/tools/memory.js +69 -45
- package/dist/tools/memory.js.map +1 -1
- package/dist/tools/notify.d.ts +5 -0
- package/dist/tools/notify.d.ts.map +1 -1
- package/dist/tools/notify.js +45 -10
- package/dist/tools/notify.js.map +1 -1
- package/dist/tools/skill.d.ts +1 -1
- package/dist/tools/totp.d.ts +1 -1
- package/dist/tui/client.d.ts +1 -16
- package/dist/tui/client.d.ts.map +1 -1
- package/dist/tui/client.js +0 -4
- package/dist/tui/client.js.map +1 -1
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js +0 -41
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/protocol.d.ts +2 -1
- package/dist/tui/protocol.d.ts.map +1 -1
- package/dist/tui/protocol.js +2 -1
- package/dist/tui/protocol.js.map +1 -1
- package/dist/tui/renderer.d.ts.map +1 -1
- package/dist/tui/renderer.js +0 -5
- package/dist/tui/renderer.js.map +1 -1
- package/dist/tui/request-store.d.ts +1 -1
- package/dist/tui/request-store.d.ts.map +1 -1
- package/dist/tui/request-store.js +2 -2
- package/dist/tui/request-store.js.map +1 -1
- package/dist/tui/server.d.ts.map +1 -1
- package/dist/tui/server.js +137 -25
- package/dist/tui/server.js.map +1 -1
- package/dist/utils/claude-transcripts.d.ts +6 -0
- package/dist/utils/claude-transcripts.d.ts.map +1 -1
- package/dist/utils/claude-transcripts.js +8 -2
- package/dist/utils/claude-transcripts.js.map +1 -1
- package/dist/utils/restart.d.ts.map +1 -1
- package/dist/utils/restart.js +6 -0
- package/dist/utils/restart.js.map +1 -1
- package/dist-agent/bundle.cjs +2 -2
- package/package.json +1 -1
- package/dist/agent/mailbox.d.ts +0 -50
- package/dist/agent/mailbox.d.ts.map +0 -1
- package/dist/agent/mailbox.js +0 -124
- package/dist/agent/mailbox.js.map +0 -1
- package/dist/agent/nightly-maintenance/memory-dreaming-sweep.d.ts +0 -77
- package/dist/agent/nightly-maintenance/memory-dreaming-sweep.d.ts.map +0 -1
- package/dist/agent/nightly-maintenance/memory-dreaming-sweep.js +0 -158
- package/dist/agent/nightly-maintenance/memory-dreaming-sweep.js.map +0 -1
- package/dist/agent/nightly-maintenance/memory-dreaming.d.ts +0 -116
- package/dist/agent/nightly-maintenance/memory-dreaming.d.ts.map +0 -1
- package/dist/agent/nightly-maintenance/memory-dreaming.js +0 -458
- package/dist/agent/nightly-maintenance/memory-dreaming.js.map +0 -1
- package/dist/threads/task-contracts.d.ts +0 -194
- package/dist/threads/task-contracts.d.ts.map +0 -1
- package/dist/threads/task-contracts.js +0 -82
- package/dist/threads/task-contracts.js.map +0 -1
- package/dist/threads/task-sidecar.d.ts +0 -145
- package/dist/threads/task-sidecar.d.ts.map +0 -1
- package/dist/threads/task-sidecar.js +0 -311
- package/dist/threads/task-sidecar.js.map +0 -1
- package/dist/threads/task-store.d.ts +0 -172
- package/dist/threads/task-store.d.ts.map +0 -1
- package/dist/threads/task-store.js +0 -599
- package/dist/threads/task-store.js.map +0 -1
- package/dist/threads/thread-task-context.d.ts +0 -40
- package/dist/threads/thread-task-context.d.ts.map +0 -1
- package/dist/threads/thread-task-context.js +0 -160
- package/dist/threads/thread-task-context.js.map +0 -1
- package/dist/threads/thread-task-controller.d.ts +0 -122
- package/dist/threads/thread-task-controller.d.ts.map +0 -1
- package/dist/threads/thread-task-controller.js +0 -276
- package/dist/threads/thread-task-controller.js.map +0 -1
- package/dist/threads/thread-task-runtime.d.ts +0 -354
- package/dist/threads/thread-task-runtime.d.ts.map +0 -1
- package/dist/threads/thread-task-runtime.js +0 -917
- package/dist/threads/thread-task-runtime.js.map +0 -1
- package/dist/tools/switch-session.d.ts +0 -15
- package/dist/tools/switch-session.d.ts.map +0 -1
- package/dist/tools/switch-session.js +0 -88
- package/dist/tools/switch-session.js.map +0 -1
- package/dist/tools/thread-tasks.d.ts +0 -23
- package/dist/tools/thread-tasks.d.ts.map +0 -1
- package/dist/tools/thread-tasks.js +0 -122
- package/dist/tools/thread-tasks.js.map +0 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* VisionClaw's session ID is opaque to the underlying engine: Claude
|
|
5
5
|
* Code stores its transcript under `~/.claude/projects/<slug>/<id>.jsonl`
|
|
6
6
|
* while the Pi Coding Agent writes to
|
|
7
|
-
* `<profile>/pi-agent
|
|
7
|
+
* `<profile>/pi-agent/general/sessions/<id>.jsonl`. The two stores share
|
|
8
8
|
* nothing — switching engines mid-session would split the conversation
|
|
9
9
|
* across them with no logical continuity.
|
|
10
10
|
*
|
|
@@ -27,45 +27,29 @@
|
|
|
27
27
|
*
|
|
28
28
|
* ## Collapse semantics
|
|
29
29
|
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* try to migrate any of that state — the new engine wouldn't know how
|
|
34
|
-
* to resume a transcript it didn't write, and a half-resumed coding
|
|
35
|
-
* task with a stale mailbox is more confusing than useful.
|
|
30
|
+
* The new engine cannot resume a transcript it did not write. When the
|
|
31
|
+
* persisted session's transcript was written by a different engine than
|
|
32
|
+
* `config.json` currently selects:
|
|
36
33
|
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
34
|
+
* 1. Summarize the existing transcript.
|
|
35
|
+
* 2. Rotate the persisted session id into `previousSessionIds` (the old
|
|
36
|
+
* transcript remains on disk for `memory_transcript_search`).
|
|
37
|
+
* 3. Inject the summary into the freshly created session as priority
|
|
38
|
+
* context for its first turn.
|
|
39
39
|
*
|
|
40
|
-
*
|
|
41
|
-
* 2. Snapshot the mailbox (active mode, memos, coding-session info)
|
|
42
|
-
* into a text section so the agent doesn't lose track of what was
|
|
43
|
-
* in flight or what the coding task was supposed to be.
|
|
44
|
-
* 3. Combine summaries + mailbox snapshot into a single document.
|
|
45
|
-
* 4. Rotate every persisted general/coding session id into
|
|
46
|
-
* `previousSessionIds` (the old transcripts remain on disk for
|
|
47
|
-
* `memory_transcript_search`).
|
|
48
|
-
* 5. Clear the mailbox (mark active=general, drop memos, reset
|
|
49
|
-
* codingSession to idle).
|
|
50
|
-
* 6. Inject the combined summary into the freshly created general
|
|
51
|
-
* session as priority context for its first turn.
|
|
52
|
-
*
|
|
53
|
-
* If a persisted session id has no transcript at any known engine path,
|
|
40
|
+
* If the persisted session id has no transcript at any known engine path,
|
|
54
41
|
* but also cannot be safely resumed by the current engine, we still retire
|
|
55
42
|
* it without transcript summarization. This protects startup from looping
|
|
56
43
|
* on stale cross-engine ids when the transcript filename cannot be resolved.
|
|
57
44
|
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* manager naturally yields a single general-only session.
|
|
45
|
+
* Only the single conversation session is considered. Ids, transcripts and
|
|
46
|
+
* runtime state left by the removed Coding session are never read.
|
|
61
47
|
*/
|
|
62
48
|
import type { Engine, VisionClawConfig } from "../config/types.js";
|
|
63
|
-
import { type SessionMode } from "./mailbox.js";
|
|
64
49
|
import type { AgentEngine } from "./engines/engine-factory.js";
|
|
65
50
|
/** Pi-store model families; each one needs its own replayable history. */
|
|
66
51
|
type PiModelFamily = "gpt" | "grok" | "deepseek";
|
|
67
52
|
interface PriorSessionInfo {
|
|
68
|
-
mode: SessionMode;
|
|
69
53
|
sessionId: string;
|
|
70
54
|
engine: AgentEngine;
|
|
71
55
|
/** gpt/grok/deepseek family when the Pi transcript names a model; otherwise unset. */
|
|
@@ -75,9 +59,9 @@ interface PriorSessionInfo {
|
|
|
75
59
|
export interface EngineSwitchBoundary {
|
|
76
60
|
/** The engine the current config selects (target of the switch). */
|
|
77
61
|
toEngine: AgentEngine;
|
|
78
|
-
/**
|
|
62
|
+
/** The prior session, when its transcript was found. */
|
|
79
63
|
priorSessions: PriorSessionInfo[];
|
|
80
|
-
/** The combined summary, ready to be injected into the new
|
|
64
|
+
/** The combined summary, ready to be injected into the new session. */
|
|
81
65
|
combinedSummary: string;
|
|
82
66
|
}
|
|
83
67
|
/**
|
|
@@ -85,7 +69,7 @@ export interface EngineSwitchBoundary {
|
|
|
85
69
|
* the on-disk locations both engines use. Returns `null` when neither
|
|
86
70
|
* transcript exists (legacy / never-run session).
|
|
87
71
|
*/
|
|
88
|
-
export declare function inferPriorEngine(
|
|
72
|
+
export declare function inferPriorEngine(sessionId: string): {
|
|
89
73
|
engine: AgentEngine;
|
|
90
74
|
transcriptPath: string;
|
|
91
75
|
} | null;
|
|
@@ -110,15 +94,12 @@ export declare function inferPiTranscriptFamily(transcriptPath: string): PiModel
|
|
|
110
94
|
* needed (all existing transcripts were written by `currentEngine`, or
|
|
111
95
|
* there are no prior transcripts at all).
|
|
112
96
|
*
|
|
113
|
-
* Side
|
|
114
|
-
*
|
|
115
|
-
* `previousSessionIds`,
|
|
116
|
-
* - the mailbox is cleared.
|
|
97
|
+
* Side effect when a boundary is detected and a summary is produced: the
|
|
98
|
+
* persisted session id is rotated into `previousSessionIds`.
|
|
117
99
|
*
|
|
118
100
|
* Callers must invoke this **before** constructing `SessionManager` so
|
|
119
|
-
* the manager
|
|
120
|
-
*
|
|
121
|
-
* `sessionManager.injectSummary("general", ...)`.
|
|
101
|
+
* the manager does not resume the retired id. After construction, hand
|
|
102
|
+
* `combinedSummary` to `sessionManager.injectSummary(...)`.
|
|
122
103
|
*/
|
|
123
104
|
export declare function prepareEngineSwitchBoundary(config: VisionClawConfig, currentEngine: AgentEngine, currentFamily?: Engine | null): Promise<EngineSwitchBoundary | null>;
|
|
124
105
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-switch.d.ts","sourceRoot":"","sources":["../../src/agent/engine-switch.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"engine-switch.d.ts","sourceRoot":"","sources":["../../src/agent/engine-switch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG/D,0EAA0E;AAC1E,KAAK,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;AAEjD,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,sFAAsF;IACtF,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;CACxB;AAMD,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,QAAQ,EAAE,WAAW,CAAC;IACtB,wDAAwD;IACxD,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,uEAAuE;IACvE,eAAe,EAAE,MAAM,CAAC;CACzB;AAuBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,GAChB;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAUxD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAOvE;AAuCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA8BpF;AAqED;;;;;;;;;;;;GAYG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,gBAAgB,EACxB,aAAa,EAAE,WAAW,EAC1B,aAAa,GAAE,MAAM,GAAG,IAAoC,GAC3D,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAwEtC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* VisionClaw's session ID is opaque to the underlying engine: Claude
|
|
5
5
|
* Code stores its transcript under `~/.claude/projects/<slug>/<id>.jsonl`
|
|
6
6
|
* while the Pi Coding Agent writes to
|
|
7
|
-
* `<profile>/pi-agent
|
|
7
|
+
* `<profile>/pi-agent/general/sessions/<id>.jsonl`. The two stores share
|
|
8
8
|
* nothing — switching engines mid-session would split the conversation
|
|
9
9
|
* across them with no logical continuity.
|
|
10
10
|
*
|
|
@@ -27,42 +27,27 @@
|
|
|
27
27
|
*
|
|
28
28
|
* ## Collapse semantics
|
|
29
29
|
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* try to migrate any of that state — the new engine wouldn't know how
|
|
34
|
-
* to resume a transcript it didn't write, and a half-resumed coding
|
|
35
|
-
* task with a stale mailbox is more confusing than useful.
|
|
30
|
+
* The new engine cannot resume a transcript it did not write. When the
|
|
31
|
+
* persisted session's transcript was written by a different engine than
|
|
32
|
+
* `config.json` currently selects:
|
|
36
33
|
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
34
|
+
* 1. Summarize the existing transcript.
|
|
35
|
+
* 2. Rotate the persisted session id into `previousSessionIds` (the old
|
|
36
|
+
* transcript remains on disk for `memory_transcript_search`).
|
|
37
|
+
* 3. Inject the summary into the freshly created session as priority
|
|
38
|
+
* context for its first turn.
|
|
39
39
|
*
|
|
40
|
-
*
|
|
41
|
-
* 2. Snapshot the mailbox (active mode, memos, coding-session info)
|
|
42
|
-
* into a text section so the agent doesn't lose track of what was
|
|
43
|
-
* in flight or what the coding task was supposed to be.
|
|
44
|
-
* 3. Combine summaries + mailbox snapshot into a single document.
|
|
45
|
-
* 4. Rotate every persisted general/coding session id into
|
|
46
|
-
* `previousSessionIds` (the old transcripts remain on disk for
|
|
47
|
-
* `memory_transcript_search`).
|
|
48
|
-
* 5. Clear the mailbox (mark active=general, drop memos, reset
|
|
49
|
-
* codingSession to idle).
|
|
50
|
-
* 6. Inject the combined summary into the freshly created general
|
|
51
|
-
* session as priority context for its first turn.
|
|
52
|
-
*
|
|
53
|
-
* If a persisted session id has no transcript at any known engine path,
|
|
40
|
+
* If the persisted session id has no transcript at any known engine path,
|
|
54
41
|
* but also cannot be safely resumed by the current engine, we still retire
|
|
55
42
|
* it without transcript summarization. This protects startup from looping
|
|
56
43
|
* on stale cross-engine ids when the transcript filename cannot be resolved.
|
|
57
44
|
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* manager naturally yields a single general-only session.
|
|
45
|
+
* Only the single conversation session is considered. Ids, transcripts and
|
|
46
|
+
* runtime state left by the removed Coding session are never read.
|
|
61
47
|
*/
|
|
62
48
|
import fs from "node:fs";
|
|
63
49
|
import path from "node:path";
|
|
64
50
|
import { getConfigDir, loadSessionId, rotateSessionId } from "../config/index.js";
|
|
65
|
-
import { clearMailbox, loadMailbox, } from "./mailbox.js";
|
|
66
51
|
import { getClaudeTranscriptDirForProfileDir } from "../utils/claude-transcripts.js";
|
|
67
52
|
import { summarizeWithFallback } from "./transcript-summarizer.js";
|
|
68
53
|
import { logger } from "../logger.js";
|
|
@@ -70,13 +55,13 @@ import { logger } from "../logger.js";
|
|
|
70
55
|
function claudeTranscriptPath(sessionId) {
|
|
71
56
|
return path.join(getClaudeTranscriptDirForProfileDir(getConfigDir()), `${sessionId}.jsonl`);
|
|
72
57
|
}
|
|
73
|
-
/** Build the Pi Coding transcript directory
|
|
74
|
-
function piCodingTranscriptDir(
|
|
75
|
-
return path.join(getConfigDir(), "pi-agent",
|
|
58
|
+
/** Build the Pi Coding transcript directory. */
|
|
59
|
+
function piCodingTranscriptDir() {
|
|
60
|
+
return path.join(getConfigDir(), "pi-agent", "general", "sessions");
|
|
76
61
|
}
|
|
77
62
|
/** Locate a Pi Coding transcript for a persisted session id. */
|
|
78
|
-
function findPiCodingTranscriptPath(
|
|
79
|
-
const transcriptPath = path.join(piCodingTranscriptDir(
|
|
63
|
+
function findPiCodingTranscriptPath(sessionId) {
|
|
64
|
+
const transcriptPath = path.join(piCodingTranscriptDir(), `${sessionId}.jsonl`);
|
|
80
65
|
return fs.existsSync(transcriptPath) && fs.lstatSync(transcriptPath).isFile()
|
|
81
66
|
? transcriptPath
|
|
82
67
|
: null;
|
|
@@ -86,12 +71,12 @@ function findPiCodingTranscriptPath(mode, sessionId) {
|
|
|
86
71
|
* the on-disk locations both engines use. Returns `null` when neither
|
|
87
72
|
* transcript exists (legacy / never-run session).
|
|
88
73
|
*/
|
|
89
|
-
export function inferPriorEngine(
|
|
74
|
+
export function inferPriorEngine(sessionId) {
|
|
90
75
|
const claudePath = claudeTranscriptPath(sessionId);
|
|
91
76
|
if (fs.existsSync(claudePath)) {
|
|
92
77
|
return { engine: "claude", transcriptPath: claudePath };
|
|
93
78
|
}
|
|
94
|
-
const piPath = findPiCodingTranscriptPath(
|
|
79
|
+
const piPath = findPiCodingTranscriptPath(sessionId);
|
|
95
80
|
if (piPath) {
|
|
96
81
|
return { engine: "pi-coding", transcriptPath: piPath };
|
|
97
82
|
}
|
|
@@ -192,26 +177,19 @@ export function inferPiTranscriptFamily(transcriptPath) {
|
|
|
192
177
|
}
|
|
193
178
|
}
|
|
194
179
|
function collectPersistedSessions() {
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
const id = loadSessionId(mode);
|
|
198
|
-
if (!id)
|
|
199
|
-
continue;
|
|
200
|
-
sessions.push({ mode, sessionId: id });
|
|
201
|
-
}
|
|
202
|
-
return sessions;
|
|
180
|
+
const id = loadSessionId();
|
|
181
|
+
return id ? [{ sessionId: id }] : [];
|
|
203
182
|
}
|
|
204
183
|
function collectPriorSessions(persisted) {
|
|
205
184
|
const sessions = [];
|
|
206
|
-
for (const {
|
|
207
|
-
const inferred = inferPriorEngine(
|
|
185
|
+
for (const { sessionId } of persisted) {
|
|
186
|
+
const inferred = inferPriorEngine(sessionId);
|
|
208
187
|
if (!inferred)
|
|
209
188
|
continue;
|
|
210
189
|
const modelFamily = inferred.engine === "pi-coding"
|
|
211
190
|
? inferPiTranscriptFamily(inferred.transcriptPath) ?? undefined
|
|
212
191
|
: undefined;
|
|
213
192
|
sessions.push({
|
|
214
|
-
mode,
|
|
215
193
|
sessionId,
|
|
216
194
|
engine: inferred.engine,
|
|
217
195
|
...(modelFamily ? { modelFamily } : {}),
|
|
@@ -228,51 +206,26 @@ function hasModelFamilyMismatch(prior, currentFamily) {
|
|
|
228
206
|
return false;
|
|
229
207
|
return prior.some((p) => p.modelFamily !== undefined && p.modelFamily !== currentFamily);
|
|
230
208
|
}
|
|
231
|
-
function renderMailboxSnapshot(mailbox) {
|
|
232
|
-
const lines = ["### Mailbox snapshot (cleared on switch)"];
|
|
233
|
-
lines.push(`- active session: ${mailbox.activeSession}`);
|
|
234
|
-
const cs = mailbox.codingSession;
|
|
235
|
-
if (cs.status !== "idle" || cs.taskSummary || cs.id || cs.cwd) {
|
|
236
|
-
lines.push(`- coding session: status=${cs.status}` +
|
|
237
|
-
(cs.taskSummary ? `, task="${cs.taskSummary}"` : "") +
|
|
238
|
-
(cs.cwd ? `, cwd=${cs.cwd}` : "") +
|
|
239
|
-
(cs.id ? `, id=${cs.id}` : ""));
|
|
240
|
-
}
|
|
241
|
-
else {
|
|
242
|
-
lines.push("- coding session: (idle)");
|
|
243
|
-
}
|
|
244
|
-
if (mailbox.memos.length > 0) {
|
|
245
|
-
lines.push("- pending memos:");
|
|
246
|
-
for (const memo of mailbox.memos) {
|
|
247
|
-
lines.push(` - [${memo.timestamp}] ${memo.from} → ${memo.to}: ${memo.content}`);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
else {
|
|
251
|
-
lines.push("- pending memos: (none)");
|
|
252
|
-
}
|
|
253
|
-
return lines.join("\n");
|
|
254
|
-
}
|
|
255
209
|
function renderHeader(toEngine, persisted, prior) {
|
|
256
|
-
const
|
|
210
|
+
const transcriptById = new Map(prior.map((p) => [p.sessionId, p]));
|
|
257
211
|
const list = persisted
|
|
258
212
|
.map((p) => {
|
|
259
|
-
const found =
|
|
213
|
+
const found = transcriptById.get(p.sessionId);
|
|
260
214
|
return found
|
|
261
|
-
?
|
|
262
|
-
:
|
|
215
|
+
? `engine="${priorDisplayEngine(found)}", id=${p.sessionId}`
|
|
216
|
+
: `id=${p.sessionId}, transcript not found`;
|
|
263
217
|
})
|
|
264
218
|
.join(", ");
|
|
265
219
|
return (`Engine switched to "${toEngine}" between runs. At least one prior transcript ` +
|
|
266
220
|
`was written by a different engine and cannot be resumed in place. Prior ` +
|
|
267
221
|
`session state: [${list}]. ` +
|
|
268
|
-
`A
|
|
269
|
-
`been moved to previousSessionIds and
|
|
270
|
-
`\`memory_transcript_search
|
|
271
|
-
`have been folded into the summary below.`);
|
|
222
|
+
`A fresh session has been created; the prior session id has ` +
|
|
223
|
+
`been moved to previousSessionIds and remains searchable via ` +
|
|
224
|
+
`\`memory_transcript_search\`.`);
|
|
272
225
|
}
|
|
273
226
|
function renderSection(prior, summary) {
|
|
274
227
|
return [
|
|
275
|
-
`## Prior
|
|
228
|
+
`## Prior session (engine="${priorDisplayEngine(prior)}", id=${prior.sessionId})`,
|
|
276
229
|
"",
|
|
277
230
|
summary,
|
|
278
231
|
].join("\n");
|
|
@@ -283,15 +236,12 @@ function renderSection(prior, summary) {
|
|
|
283
236
|
* needed (all existing transcripts were written by `currentEngine`, or
|
|
284
237
|
* there are no prior transcripts at all).
|
|
285
238
|
*
|
|
286
|
-
* Side
|
|
287
|
-
*
|
|
288
|
-
* `previousSessionIds`,
|
|
289
|
-
* - the mailbox is cleared.
|
|
239
|
+
* Side effect when a boundary is detected and a summary is produced: the
|
|
240
|
+
* persisted session id is rotated into `previousSessionIds`.
|
|
290
241
|
*
|
|
291
242
|
* Callers must invoke this **before** constructing `SessionManager` so
|
|
292
|
-
* the manager
|
|
293
|
-
*
|
|
294
|
-
* `sessionManager.injectSummary("general", ...)`.
|
|
243
|
+
* the manager does not resume the retired id. After construction, hand
|
|
244
|
+
* `combinedSummary` to `sessionManager.injectSummary(...)`.
|
|
295
245
|
*/
|
|
296
246
|
export async function prepareEngineSwitchBoundary(config, currentEngine, currentFamily = config.engineOverride ?? null) {
|
|
297
247
|
const persisted = collectPersistedSessions();
|
|
@@ -305,28 +255,24 @@ export async function prepareEngineSwitchBoundary(config, currentEngine, current
|
|
|
305
255
|
// after a provider/model switch where the prior transcript file cannot
|
|
306
256
|
// be found under its conventional name.
|
|
307
257
|
if (prior.length === 0) {
|
|
308
|
-
const allIdsHaveCurrentEngineTranscripts = persisted.every(({
|
|
258
|
+
const allIdsHaveCurrentEngineTranscripts = persisted.every(({ sessionId }) => {
|
|
309
259
|
if (currentEngine === "claude")
|
|
310
260
|
return fs.existsSync(claudeTranscriptPath(sessionId));
|
|
311
|
-
return findPiCodingTranscriptPath(
|
|
261
|
+
return findPiCodingTranscriptPath(sessionId) !== null;
|
|
312
262
|
});
|
|
313
263
|
if (allIdsHaveCurrentEngineTranscripts)
|
|
314
264
|
return null;
|
|
315
|
-
const mailboxSection = renderMailboxSnapshot(loadMailbox());
|
|
316
265
|
for (const p of persisted) {
|
|
317
|
-
rotateSessionId(
|
|
318
|
-
logger.system(`[engine-switch] rotated stale
|
|
266
|
+
rotateSessionId();
|
|
267
|
+
logger.system(`[engine-switch] rotated stale session ${p.sessionId} into previousSessionIds (transcript not found)`);
|
|
319
268
|
}
|
|
320
|
-
|
|
321
|
-
logger.system("[engine-switch] no resumable current-engine transcripts found; collapsed to fresh general session");
|
|
269
|
+
logger.system("[engine-switch] no resumable current-engine transcripts found; collapsed to fresh session");
|
|
322
270
|
return {
|
|
323
271
|
toEngine: currentEngine,
|
|
324
272
|
priorSessions: [],
|
|
325
273
|
combinedSummary: [
|
|
326
274
|
`A session boundary was created for "${currentEngine}" startup. Existing session ids were retired because no matching transcript files were found for the current engine to resume safely.`,
|
|
327
275
|
"",
|
|
328
|
-
mailboxSection,
|
|
329
|
-
"",
|
|
330
276
|
"Start a fresh session and continue normally. If needed, use memory_transcript_search to inspect older transcripts.",
|
|
331
277
|
].join("\n"),
|
|
332
278
|
};
|
|
@@ -338,37 +284,26 @@ export async function prepareEngineSwitchBoundary(config, currentEngine, current
|
|
|
338
284
|
const toLabel = familyMismatch && !runtimeMismatch
|
|
339
285
|
? (currentFamily ?? currentEngine)
|
|
340
286
|
: currentEngine;
|
|
341
|
-
// Summarize every prior session we have a transcript for, even ones
|
|
342
|
-
// that already match `currentEngine` — they were active alongside
|
|
343
|
-
// the mismatched session and the user may have moved work between
|
|
344
|
-
// them. We're collapsing everything into one fresh session anyway.
|
|
345
287
|
const sections = [];
|
|
346
288
|
for (const p of prior) {
|
|
347
|
-
logger.system(`[engine-switch] summarizing prior
|
|
289
|
+
logger.system(`[engine-switch] summarizing prior session ${p.sessionId} (engine=${priorDisplayEngine(p)})`);
|
|
348
290
|
const summary = await summarizeWithFallback(p.transcriptPath, config);
|
|
349
291
|
sections.push(renderSection(p, summary));
|
|
350
292
|
}
|
|
351
|
-
const mailbox = loadMailbox();
|
|
352
|
-
const mailboxSection = renderMailboxSnapshot(mailbox);
|
|
353
293
|
const combinedSummary = [
|
|
354
294
|
renderHeader(toLabel, persisted, prior),
|
|
355
295
|
"",
|
|
356
296
|
...sections,
|
|
357
297
|
"",
|
|
358
|
-
mailboxSection,
|
|
359
|
-
"",
|
|
360
298
|
"Review the prior context above, check your memory directory and todo list, and continue where the prior engine left off.",
|
|
361
299
|
].join("\n");
|
|
362
|
-
// Rotate
|
|
363
|
-
//
|
|
364
|
-
// mailbox. SessionManager, constructed after this call, will see a
|
|
365
|
-
// clean slate.
|
|
300
|
+
// Rotate the persisted session id. SessionManager, constructed after this
|
|
301
|
+
// call, will see a clean slate.
|
|
366
302
|
for (const p of persisted) {
|
|
367
|
-
rotateSessionId(
|
|
368
|
-
logger.system(`[engine-switch] rotated
|
|
303
|
+
rotateSessionId();
|
|
304
|
+
logger.system(`[engine-switch] rotated session ${p.sessionId} into previousSessionIds`);
|
|
369
305
|
}
|
|
370
|
-
|
|
371
|
-
logger.system(`[engine-switch] mailbox cleared; collapsed to fresh general session`);
|
|
306
|
+
logger.system("[engine-switch] collapsed to fresh session");
|
|
372
307
|
return {
|
|
373
308
|
toEngine: currentEngine,
|
|
374
309
|
priorSessions: prior,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-switch.js","sourceRoot":"","sources":["../../src/agent/engine-switch.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"engine-switch.js","sourceRoot":"","sources":["../../src/agent/engine-switch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
import type { VisionClawConfig } from "../../config/types.js";
|
|
2
2
|
export declare function isPlaywrightToolName(toolName: string): boolean;
|
|
3
|
+
export interface BrowserToolGate {
|
|
4
|
+
/** False when the selected browser's CDP did not come up. Do not call the tool. */
|
|
5
|
+
proceed: boolean;
|
|
6
|
+
/** Shown to the model instead of a connection refused from a dead port. */
|
|
7
|
+
reason?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Start the selected browser before a Playwright tool runs. A launch that
|
|
11
|
+
* never opens CDP returns proceed:false with the reason, so the tool is not
|
|
12
|
+
* handed a port that will refuse the connection.
|
|
13
|
+
*/
|
|
3
14
|
export declare function ensureBrowserForTool(options: {
|
|
4
15
|
toolName: string;
|
|
5
16
|
config?: VisionClawConfig;
|
|
6
|
-
}): Promise<
|
|
17
|
+
}): Promise<BrowserToolGate>;
|
|
7
18
|
//# sourceMappingURL=browser-tool-policy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-tool-policy.d.ts","sourceRoot":"","sources":["../../../src/agent/engines/browser-tool-policy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"browser-tool-policy.d.ts","sourceRoot":"","sources":["../../../src/agent/engines/browser-tool-policy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,MAAM,WAAW,eAAe;IAC9B,mFAAmF;IACnF,OAAO,EAAE,OAAO,CAAC;IACjB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B,GAAG,OAAO,CAAC,eAAe,CAAC,CAY3B"}
|
|
@@ -1,10 +1,25 @@
|
|
|
1
|
-
import { ensureBrowser } from "../browser-launcher.js";
|
|
1
|
+
import { BrowserUnavailableError, ensureBrowser } from "../browser-launcher.js";
|
|
2
2
|
import { logger } from "../../logger.js";
|
|
3
3
|
export function isPlaywrightToolName(toolName) {
|
|
4
4
|
return toolName.startsWith("mcp__playwright__") || toolName.startsWith("playwright_");
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* Start the selected browser before a Playwright tool runs. A launch that
|
|
8
|
+
* never opens CDP returns proceed:false with the reason, so the tool is not
|
|
9
|
+
* handed a port that will refuse the connection.
|
|
10
|
+
*/
|
|
6
11
|
export async function ensureBrowserForTool(options) {
|
|
7
12
|
logger.debug(`[ToolUse] ensuring browser for ${options.toolName}`);
|
|
8
|
-
|
|
13
|
+
try {
|
|
14
|
+
await ensureBrowser(options.config);
|
|
15
|
+
return { proceed: true };
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
const reason = err instanceof BrowserUnavailableError
|
|
19
|
+
? err.message
|
|
20
|
+
: err instanceof Error ? err.message : String(err);
|
|
21
|
+
logger.warn(`[ToolUse] ${options.toolName} skipped: ${reason}`);
|
|
22
|
+
return { proceed: false, reason };
|
|
23
|
+
}
|
|
9
24
|
}
|
|
10
25
|
//# sourceMappingURL=browser-tool-policy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-tool-policy.js","sourceRoot":"","sources":["../../../src/agent/engines/browser-tool-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"browser-tool-policy.js","sourceRoot":"","sources":["../../../src/agent/engines/browser-tool-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACxF,CAAC;AASD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAG1C;IACC,MAAM,CAAC,KAAK,CAAC,kCAAkC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnE,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,GAAG,YAAY,uBAAuB;YACnD,CAAC,CAAC,GAAG,CAAC,OAAO;YACb,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,QAAQ,aAAa,MAAM,EAAE,CAAC,CAAC;QAChE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACpC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { PreToolUseHookInput } from "@anthropic-ai/claude-agent-sdk";
|
|
2
|
+
/**
|
|
3
|
+
* Inside an internal executor, prefix each Bash command so its shell records
|
|
4
|
+
* its own process group before the command runs (#2805 1d). The Claude CLI
|
|
5
|
+
* starts every shell in a new session, so a background job the command
|
|
6
|
+
* leaves behind is outside the executor's group; the host stops every
|
|
7
|
+
* recorded group with the executor. Returns the rewritten tool input, or
|
|
8
|
+
* null when nothing needs to change.
|
|
9
|
+
*/
|
|
10
|
+
export declare function registerExecutorShellGroup(input: PreToolUseHookInput): Record<string, unknown> | null;
|
|
11
|
+
//# sourceMappingURL=executor-shell-groups.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor-shell-groups.d.ts","sourceRoot":"","sources":["../../../../src/agent/engines/claude/executor-shell-groups.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAK1E;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAMrG"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { getConfigDir } from "../../../config/index.js";
|
|
3
|
+
import { EXECUTOR_GROUP_REGISTRY_FILE, groupRegistrationPrefix } from "../../../threads/process-group.js";
|
|
4
|
+
import { getWorkerExecutionRuntime } from "../../../threads/worker-execution-runtime.js";
|
|
5
|
+
/**
|
|
6
|
+
* Inside an internal executor, prefix each Bash command so its shell records
|
|
7
|
+
* its own process group before the command runs (#2805 1d). The Claude CLI
|
|
8
|
+
* starts every shell in a new session, so a background job the command
|
|
9
|
+
* leaves behind is outside the executor's group; the host stops every
|
|
10
|
+
* recorded group with the executor. Returns the rewritten tool input, or
|
|
11
|
+
* null when nothing needs to change.
|
|
12
|
+
*/
|
|
13
|
+
export function registerExecutorShellGroup(input) {
|
|
14
|
+
if (!getWorkerExecutionRuntime() || input.tool_name !== "Bash")
|
|
15
|
+
return null;
|
|
16
|
+
const toolInput = input.tool_input;
|
|
17
|
+
if (!toolInput || typeof toolInput.command !== "string")
|
|
18
|
+
return null;
|
|
19
|
+
const registry = path.join(getConfigDir(), EXECUTOR_GROUP_REGISTRY_FILE);
|
|
20
|
+
return { ...toolInput, command: `${groupRegistrationPrefix(registry)}\n${toolInput.command}` };
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=executor-shell-groups.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor-shell-groups.js","sourceRoot":"","sources":["../../../../src/agent/engines/claude/executor-shell-groups.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC1G,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AAEzF;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAA0B;IACnE,IAAI,CAAC,yBAAyB,EAAE,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAC5E,MAAM,SAAS,GAAG,KAAK,CAAC,UAA4C,CAAC;IACrE,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,4BAA4B,CAAC,CAAC;IACzE,OAAO,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,GAAG,uBAAuB,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;AACjG,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { type Query, type SDKMessage, type SDKUserMessage } from "@anthropic-ai/claude-agent-sdk";
|
|
2
2
|
import type { MessageParam } from "@anthropic-ai/sdk/resources";
|
|
3
|
-
import type { SessionMode } from "../../mailbox.js";
|
|
4
3
|
import type { ScreenshotInjector } from "../../screenshot-injector.js";
|
|
5
4
|
import type { AgentSessionConstructorArgs, AgentSessionLike, AgentStreamMessage, InjectMessageOptions, SendAndStreamOptions, UsageSnapshot } from "../session-types.js";
|
|
6
5
|
export type { SDKMessage, SDKUserMessage };
|
|
@@ -70,7 +69,6 @@ export declare class ClaudeAgentSession implements AgentSessionLike {
|
|
|
70
69
|
private config;
|
|
71
70
|
private buildSystemPrompt;
|
|
72
71
|
private runtimeSurface;
|
|
73
|
-
private getDualSessionEnabled;
|
|
74
72
|
/** Working directory for the SDK subprocess. Defaults to profile config dir. */
|
|
75
73
|
private readonly sessionCwd;
|
|
76
74
|
private nativeTools;
|
|
@@ -89,7 +87,6 @@ export declare class ClaudeAgentSession implements AgentSessionLike {
|
|
|
89
87
|
private warmGeneration;
|
|
90
88
|
private sessionId;
|
|
91
89
|
private transcriptPath;
|
|
92
|
-
readonly mode: SessionMode;
|
|
93
90
|
/**
|
|
94
91
|
* Pending message queue for the long-lived generator.
|
|
95
92
|
* When a message is injected, it's pushed here and the waiting
|
|
@@ -129,7 +126,7 @@ export declare class ClaudeAgentSession implements AgentSessionLike {
|
|
|
129
126
|
*/
|
|
130
127
|
private warmRefreshTimer;
|
|
131
128
|
private lastUsageSnapshot;
|
|
132
|
-
constructor({ config, buildSystemPrompt, runtimeSurface,
|
|
129
|
+
constructor({ config, buildSystemPrompt, runtimeSurface, workspaceCwd, }: AgentSessionConstructorArgs);
|
|
133
130
|
set screenshotInjector(injector: ScreenshotInjector | null);
|
|
134
131
|
/**
|
|
135
132
|
* Seed `<profile>/.claude/settings.local.json` once per process so the
|
|
@@ -151,6 +148,12 @@ export declare class ClaudeAgentSession implements AgentSessionLike {
|
|
|
151
148
|
* McpServer instance is reused across concurrent/sequential query() calls.
|
|
152
149
|
*/
|
|
153
150
|
private buildMcpServers;
|
|
151
|
+
/**
|
|
152
|
+
* Project settings, auto-memory and environment for every SDK subprocess of
|
|
153
|
+
* this session. Internal workers get the restricted environment and never
|
|
154
|
+
* read or write profile/project settings or auto-memory.
|
|
155
|
+
*/
|
|
156
|
+
private buildIsolationOptions;
|
|
154
157
|
private buildNativeToolOptions;
|
|
155
158
|
private buildHooks;
|
|
156
159
|
/**
|
|
@@ -220,6 +223,11 @@ export declare class ClaudeAgentSession implements AgentSessionLike {
|
|
|
220
223
|
private readonly toolOutputReferences;
|
|
221
224
|
private readonly missingToolOutputReferences;
|
|
222
225
|
private queueToolOutputRepair;
|
|
226
|
+
/**
|
|
227
|
+
* Count each Claude model attempt once, at its `message_start` stream event
|
|
228
|
+
* (subagent attempts included), and record failed attempts and tokens.
|
|
229
|
+
*/
|
|
230
|
+
private meterModelAttempt;
|
|
223
231
|
private boundedObservation;
|
|
224
232
|
private releaseActiveQuery;
|
|
225
233
|
private prepareTranscript;
|
|
@@ -254,6 +262,7 @@ export declare class ClaudeAgentSession implements AgentSessionLike {
|
|
|
254
262
|
abortActiveQuery(): void;
|
|
255
263
|
requestStop(): void;
|
|
256
264
|
isStopRequested(): boolean;
|
|
265
|
+
executionBarrierConfirmed(): boolean;
|
|
257
266
|
clearStop(): void;
|
|
258
267
|
/**
|
|
259
268
|
* Update the persisted session ID.
|