@adhdev/daemon-core 0.9.82-rc.46 → 0.9.82-rc.460
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/boot/daemon-lifecycle.d.ts +9 -0
- package/dist/boot/process-hardening.d.ts +50 -0
- package/dist/build-info.d.ts +37 -0
- package/dist/chat/source-machine.d.ts +166 -0
- package/dist/chat/source-resolver.d.ts +104 -0
- package/dist/chat/subscription-updates.d.ts +1 -0
- package/dist/cli-adapter-types.d.ts +68 -2
- package/dist/cli-adapters/cli-script-runner.d.ts +117 -0
- package/dist/cli-adapters/cli-state-engine.d.ts +200 -0
- package/dist/cli-adapters/provider-cli-adapter.d.ts +126 -64
- package/dist/cli-adapters/provider-cli-parse.d.ts +5 -0
- package/dist/cli-adapters/provider-cli-runtime.d.ts +34 -0
- package/dist/cli-adapters/provider-cli-shared.d.ts +74 -0
- package/dist/cli-adapters/pty-write-chunking.d.ts +34 -0
- package/dist/cli-adapters/raw-terminal-io.d.ts +37 -0
- package/dist/cli-adapters/resolve-executable.d.ts +69 -0
- package/dist/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +6 -3
- package/dist/cli-adapters/terminal-backends/types.d.ts +10 -2
- package/dist/cli-adapters/terminal-screen.d.ts +4 -11
- package/dist/commands/chat-commands-debug-bundle.d.ts +14 -0
- package/dist/commands/chat-commands-read.d.ts +7 -0
- package/dist/commands/chat-commands-scope.d.ts +39 -0
- package/dist/commands/chat-commands-shared.d.ts +33 -0
- package/dist/commands/chat-commands-write.d.ts +14 -0
- package/dist/commands/chat-commands.d.ts +10 -23
- package/dist/commands/cli-manager.d.ts +25 -1
- package/dist/commands/handler.d.ts +125 -0
- package/dist/commands/high-family/index.d.ts +3 -0
- package/dist/commands/high-family/mesh-coordinator-launch.d.ts +2 -0
- package/dist/commands/high-family/mesh-events.d.ts +2 -0
- package/dist/commands/high-family/mesh-status.d.ts +2 -0
- package/dist/commands/high-family/types.d.ts +64 -0
- package/dist/commands/low-family/coordinator-prompt.d.ts +9 -0
- package/dist/commands/low-family/daemon-lifecycle.d.ts +2 -0
- package/dist/commands/low-family/diagnostics.d.ts +2 -0
- package/dist/commands/low-family/index.d.ts +3 -0
- package/dist/commands/low-family/mesh-ledger.d.ts +10 -0
- package/dist/commands/low-family/mesh-node-logs.d.ts +2 -0
- package/dist/commands/low-family/notification.d.ts +2 -0
- package/dist/commands/low-family/refine-config.d.ts +2 -0
- package/dist/commands/low-family/session-host.d.ts +2 -0
- package/dist/commands/low-family/spec-providerdev.d.ts +11 -0
- package/dist/commands/low-family/status-meta.d.ts +2 -0
- package/dist/commands/low-family/types.d.ts +33 -0
- package/dist/commands/med-family/cli-agent.d.ts +2 -0
- package/dist/commands/med-family/fast-forward.d.ts +2 -0
- package/dist/commands/med-family/ide.d.ts +10 -0
- package/dist/commands/med-family/index.d.ts +3 -0
- package/dist/commands/med-family/mesh-crud.d.ts +48 -0
- package/dist/commands/med-family/mesh-host-pairing.d.ts +2 -0
- package/dist/commands/med-family/mesh-queue.d.ts +2 -0
- package/dist/commands/med-family/mesh-restart.d.ts +2 -0
- package/dist/commands/med-family/types.d.ts +152 -0
- package/dist/commands/mesh-coordinator.d.ts +85 -1
- package/dist/commands/router-refine.d.ts +137 -0
- package/dist/commands/router-worktree-cleanup.d.ts +133 -0
- package/dist/commands/router.d.ts +241 -12
- package/dist/commands/upgrade-helper.d.ts +41 -1
- package/dist/config/chat-history.d.ts +9 -0
- package/dist/config/config.d.ts +19 -0
- package/dist/config/mesh-config.d.ts +129 -1
- package/dist/config/mesh-json-config.d.ts +199 -0
- package/dist/config/registry-resolver.d.ts +54 -0
- package/dist/config/repo-settings.d.ts +77 -0
- package/dist/daemon/dev-server.d.ts +0 -2
- package/dist/detection/ide-detector.d.ts +13 -0
- package/dist/detection/win32-ide-version.d.ts +37 -0
- package/dist/git/change-impact-config.d.ts +159 -0
- package/dist/git/git-commands.d.ts +12 -1
- package/dist/git/git-diff.d.ts +6 -0
- package/dist/git/git-executor.d.ts +11 -0
- package/dist/git/git-status.d.ts +57 -0
- package/dist/git/git-types.d.ts +2 -50
- package/dist/git/git-worktree.d.ts +71 -1
- package/dist/git/index.d.ts +3 -1
- package/dist/index.d.ts +67 -15
- package/dist/index.js +57943 -25340
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +57611 -25174
- package/dist/index.mjs.map +1 -1
- package/dist/installer.d.ts +1 -4
- package/dist/ipc/local-ipc-server.d.ts +91 -0
- package/dist/launch.d.ts +1 -1
- package/dist/logging/async-batch-writer.d.ts +10 -0
- package/dist/logging/debug-config.d.ts +16 -0
- package/dist/logging/log-redactor.d.ts +24 -0
- package/dist/logging/log-tail-reader.d.ts +81 -0
- package/dist/logging/logger.d.ts +1 -1
- package/dist/mesh/contracts.d.ts +230 -0
- package/dist/mesh/coordinator-prompt.d.ts +76 -0
- package/dist/mesh/coordinator-registry.d.ts +59 -0
- package/dist/mesh/mesh-active-work.d.ts +174 -0
- package/dist/mesh/mesh-clone-grace.d.ts +8 -0
- package/dist/mesh/mesh-coordinator-config.d.ts +21 -0
- package/dist/mesh/mesh-delivery-policy.d.ts +131 -0
- package/dist/mesh/mesh-event-classify.d.ts +7 -0
- package/dist/mesh/mesh-event-forwarding.d.ts +41 -0
- package/dist/mesh/mesh-event-trace.d.ts +21 -0
- package/dist/mesh/mesh-events-coordinator.d.ts +4 -0
- package/dist/mesh/mesh-events-pending.d.ts +113 -0
- package/dist/mesh/mesh-events-stale.d.ts +61 -0
- package/dist/mesh/mesh-events-utils.d.ts +75 -0
- package/dist/mesh/mesh-events.d.ts +6 -49
- package/dist/mesh/mesh-fast-forward.d.ts +81 -0
- package/dist/mesh/mesh-host-ownership.d.ts +29 -0
- package/dist/mesh/mesh-init.d.ts +128 -0
- package/dist/mesh/mesh-ledger-reconciliation.d.ts +23 -4
- package/dist/mesh/mesh-ledger.d.ts +133 -1
- package/dist/mesh/mesh-magi-status.d.ts +63 -0
- package/dist/mesh/mesh-missions.d.ts +189 -0
- package/dist/mesh/mesh-node-identity.d.ts +306 -0
- package/dist/mesh/mesh-queue-assignment.d.ts +158 -0
- package/dist/mesh/mesh-reconcile-loop.d.ts +80 -0
- package/dist/mesh/mesh-refine-batch.d.ts +68 -0
- package/dist/mesh/mesh-refine-gates.d.ts +428 -0
- package/dist/mesh/mesh-refine-status.d.ts +62 -0
- package/dist/mesh/mesh-review-inbox.d.ts +90 -0
- package/dist/mesh/mesh-routing.d.ts +70 -0
- package/dist/mesh/mesh-runtime-store.d.ts +476 -0
- package/dist/mesh/mesh-scheduling-runtime.d.ts +78 -0
- package/dist/mesh/mesh-task-inflight.d.ts +46 -0
- package/dist/mesh/mesh-task-stats.d.ts +49 -0
- package/dist/mesh/mesh-unresolved-forward-outbox.d.ts +30 -0
- package/dist/mesh/mesh-warmup-deadline.d.ts +68 -0
- package/dist/mesh/mesh-work-queue.d.ts +318 -5
- package/dist/mesh/preview-freshness.d.ts +28 -0
- package/dist/mesh/refine-config.d.ts +216 -0
- package/dist/mesh/worktree-bootstrap-config.d.ts +219 -0
- package/dist/providers/acp-provider-instance.d.ts +5 -0
- package/dist/providers/approval-utils.d.ts +45 -0
- package/dist/providers/chat-message-normalization.d.ts +58 -1
- package/dist/providers/cli-provider-instance.d.ts +290 -3
- package/dist/providers/contracts.d.ts +149 -6
- package/dist/providers/external-sources.d.ts +71 -0
- package/dist/providers/manual-attendance.d.ts +79 -0
- package/dist/providers/native-history/antigravity-claim-registry.d.ts +28 -0
- package/dist/providers/native-history/antigravity-cli-transcript.d.ts +137 -0
- package/dist/providers/native-history/claude-cli-transcript.d.ts +70 -0
- package/dist/providers/native-history/codex-cli-transcript.d.ts +73 -0
- package/dist/providers/native-history/constants.d.ts +12 -0
- package/dist/providers/native-history/dispatcher.d.ts +31 -0
- package/dist/providers/native-history/hermes-cli-transcript.d.ts +30 -0
- package/dist/providers/native-history/index.d.ts +13 -0
- package/dist/providers/provider-instance-manager.d.ts +29 -0
- package/dist/providers/provider-instance.d.ts +30 -1
- package/dist/providers/provider-loader.d.ts +42 -5
- package/dist/providers/provider-trust.d.ts +31 -0
- package/dist/providers/read-chat-contract.d.ts +29 -0
- package/dist/providers/sdk/v1/builders/acp/detect-status.d.ts +68 -0
- package/dist/providers/sdk/v1/builders/cli/detect-status.d.ts +86 -0
- package/dist/providers/sdk/v1/builders/cli/parse-approval-squash.d.ts +59 -0
- package/dist/providers/sdk/v1/builders/cli/parse-approval.d.ts +65 -0
- package/dist/providers/sdk/v1/builders/cli/parse-session.d.ts +91 -0
- package/dist/providers/sdk/v1/builders/cli/visible-region.d.ts +42 -0
- package/dist/providers/sdk/v1/fixture-tooling/format.d.ts +126 -0
- package/dist/providers/sdk/v1/fixture-tooling/index.d.ts +8 -0
- package/dist/providers/sdk/v1/fixture-tooling/replay.d.ts +38 -0
- package/dist/providers/sdk/v1/index.d.ts +30 -0
- package/dist/providers/sdk/v1/sandbox/README-design.d.ts +193 -0
- package/dist/providers/sdk/v1/sandbox/require-whitelist.d.ts +74 -0
- package/dist/providers/sdk/v1/sandbox/script-runner.d.ts +98 -0
- package/dist/providers/sdk/v1/types/cli/index.d.ts +277 -0
- package/dist/providers/sdk/v1/types/common/index.d.ts +203 -0
- package/dist/providers/sdk/v1/validators/index.d.ts +5 -0
- package/dist/providers/sdk/v1/validators/manifest.d.ts +40 -0
- package/dist/providers/sdk/v1/validators/taint.d.ts +52 -0
- package/dist/providers/spec/adapter.d.ts +98 -0
- package/dist/providers/spec/cli-adapter.d.ts +223 -0
- package/dist/providers/spec/evaluator.d.ts +45 -0
- package/dist/providers/spec/fsm-driver.d.ts +449 -0
- package/dist/providers/spec/fsm-evaluator.d.ts +93 -0
- package/dist/providers/spec/fsm-loader.d.ts +14 -0
- package/dist/providers/spec/fsm-types.d.ts +202 -0
- package/dist/providers/spec/native-history-executor.d.ts +41 -0
- package/dist/providers/spec/pre-launch-trust.d.ts +16 -0
- package/dist/providers/spec/route.d.ts +4 -0
- package/dist/providers/spec/types.d.ts +222 -0
- package/dist/providers/status-monitor.d.ts +7 -7
- package/dist/providers/transcript-v2.d.ts +176 -0
- package/dist/providers/types/interactive-prompt.d.ts +84 -0
- package/dist/providers/working-dir.d.ts +17 -0
- package/dist/repo-mesh-types.d.ts +519 -13
- package/dist/runtime-defaults.d.ts +2 -0
- package/dist/session-host/managed-host.d.ts +64 -0
- package/dist/session-host/runtime-surface.d.ts +10 -16
- package/dist/sessions/registry.d.ts +6 -0
- package/dist/shared-types-extra.d.ts +2 -4
- package/dist/shared-types.d.ts +86 -55
- package/dist/status/normalize.d.ts +1 -1
- package/dist/status/normalize.js +1 -0
- package/dist/status/normalize.js.map +1 -1
- package/dist/status/normalize.mjs +1 -0
- package/dist/status/normalize.mjs.map +1 -1
- package/dist/status/reporter.d.ts +2 -0
- package/dist/status/snapshot.d.ts +26 -0
- package/dist/system/hash.d.ts +8 -0
- package/dist/system/load-better-sqlite3.d.ts +21 -0
- package/dist/types.d.ts +5 -0
- package/package.json +11 -4
- package/src/agent-stream/poller.ts +2 -3
- package/src/agent-stream/provider-adapter.ts +1 -1
- package/src/boot/daemon-lifecycle.ts +65 -12
- package/src/boot/process-hardening.ts +89 -0
- package/src/build-info.ts +73 -0
- package/src/chat/source-machine.ts +534 -0
- package/src/chat/source-resolver.ts +0 -0
- package/src/chat/subscription-updates.ts +20 -1
- package/src/cli-adapter-types.d.ts +3 -1
- package/src/cli-adapter-types.ts +68 -2
- package/src/cli-adapters/cli-script-runner.ts +421 -0
- package/src/cli-adapters/cli-state-engine.ts +1246 -0
- package/src/cli-adapters/provider-cli-adapter.d.ts +1 -1
- package/src/cli-adapters/provider-cli-adapter.ts +914 -1144
- package/src/cli-adapters/provider-cli-parse.d.ts +2 -0
- package/src/cli-adapters/provider-cli-parse.ts +19 -0
- package/src/cli-adapters/provider-cli-runtime.ts +56 -7
- package/src/cli-adapters/provider-cli-shared.d.ts +4 -0
- package/src/cli-adapters/provider-cli-shared.ts +121 -11
- package/src/cli-adapters/pty-transport.ts +2 -1
- package/src/cli-adapters/pty-write-chunking.ts +106 -0
- package/src/cli-adapters/raw-terminal-io.ts +252 -0
- package/src/cli-adapters/resolve-executable.ts +204 -0
- package/src/cli-adapters/session-host-transport.ts +2 -1
- package/src/cli-adapters/terminal-backends/ghostty-vt-backend.ts +63 -29
- package/src/cli-adapters/terminal-backends/types.ts +10 -3
- package/src/cli-adapters/terminal-screen.ts +16 -81
- package/src/commands/chat-commands-debug-bundle.ts +398 -0
- package/src/commands/chat-commands-read.ts +2488 -0
- package/src/commands/chat-commands-scope.ts +54 -0
- package/src/commands/chat-commands-shared.ts +114 -0
- package/src/commands/chat-commands-write.ts +891 -0
- package/src/commands/chat-commands.ts +19 -1841
- package/src/commands/cli-manager.ts +596 -27
- package/src/commands/handler.ts +845 -2
- package/src/commands/high-family/index.ts +28 -0
- package/src/commands/high-family/mesh-coordinator-launch.ts +680 -0
- package/src/commands/high-family/mesh-events.ts +89 -0
- package/src/commands/high-family/mesh-status.ts +822 -0
- package/src/commands/high-family/types.ts +80 -0
- package/src/commands/low-family/coordinator-prompt.ts +72 -0
- package/src/commands/low-family/daemon-lifecycle.ts +120 -0
- package/src/commands/low-family/diagnostics.ts +57 -0
- package/src/commands/low-family/index.ts +37 -0
- package/src/commands/low-family/mesh-ledger.ts +62 -0
- package/src/commands/low-family/mesh-node-logs.ts +87 -0
- package/src/commands/low-family/notification.ts +116 -0
- package/src/commands/low-family/refine-config.ts +106 -0
- package/src/commands/low-family/session-host.ts +274 -0
- package/src/commands/low-family/spec-providerdev.ts +217 -0
- package/src/commands/low-family/status-meta.ts +112 -0
- package/src/commands/low-family/types.ts +39 -0
- package/src/commands/med-family/cli-agent.ts +241 -0
- package/src/commands/med-family/fast-forward.ts +230 -0
- package/src/commands/med-family/ide.ts +163 -0
- package/src/commands/med-family/index.ts +37 -0
- package/src/commands/med-family/mesh-crud.ts +1287 -0
- package/src/commands/med-family/mesh-host-pairing.ts +234 -0
- package/src/commands/med-family/mesh-queue.ts +167 -0
- package/src/commands/med-family/mesh-restart.ts +92 -0
- package/src/commands/med-family/types.ts +153 -0
- package/src/commands/mesh-coordinator.ts +334 -124
- package/src/commands/router-refine.ts +1711 -0
- package/src/commands/router-worktree-cleanup.ts +870 -0
- package/src/commands/router.ts +1025 -4070
- package/src/commands/stream-commands.ts +8 -0
- package/src/commands/upgrade-helper.ts +310 -45
- package/src/config/chat-history.ts +493 -24
- package/src/config/config.ts +30 -0
- package/src/config/mesh-config.ts +619 -23
- package/src/config/mesh-json-config.ts +376 -0
- package/src/config/recent-activity.ts +8 -2
- package/src/config/registry-resolver.ts +100 -0
- package/src/config/repo-settings.ts +111 -0
- package/src/daemon/dev-auto-implement.ts +3 -2
- package/src/daemon/dev-cli-debug.ts +10 -1
- package/src/daemon/dev-server.ts +0 -541
- package/src/detection/cli-detector.ts +28 -9
- package/src/detection/ide-detector.ts +55 -16
- package/src/detection/win32-ide-version.ts +106 -0
- package/src/git/change-impact-config.ts +354 -0
- package/src/git/git-commands.ts +78 -15
- package/src/git/git-diff.ts +81 -11
- package/src/git/git-executor.ts +12 -0
- package/src/git/git-status.ts +767 -48
- package/src/git/git-types.ts +14 -62
- package/src/git/git-worktree.ts +261 -4
- package/src/git/index.ts +17 -0
- package/src/index.ts +200 -12
- package/src/installer.d.ts +1 -1
- package/src/installer.ts +8 -6
- package/src/ipc/local-ipc-server.ts +278 -0
- package/src/launch.d.ts +1 -1
- package/src/launch.ts +37 -28
- package/src/logging/async-batch-writer.ts +55 -0
- package/src/logging/command-log.ts +7 -5
- package/src/logging/debug-config.ts +25 -0
- package/src/logging/debug-trace.ts +7 -2
- package/src/logging/log-redactor.ts +100 -0
- package/src/logging/log-tail-reader.ts +341 -0
- package/src/logging/logger.ts +14 -7
- package/src/mesh/contracts.ts +469 -0
- package/src/mesh/coordinator-prompt.ts +536 -34
- package/src/mesh/coordinator-registry.ts +121 -0
- package/src/mesh/mesh-active-work.ts +656 -0
- package/src/mesh/mesh-clone-grace.ts +68 -0
- package/src/mesh/mesh-coordinator-config.ts +97 -0
- package/src/mesh/mesh-delivery-policy.ts +315 -0
- package/src/mesh/mesh-event-classify.ts +73 -0
- package/src/mesh/mesh-event-forwarding.ts +1932 -0
- package/src/mesh/mesh-event-trace.ts +67 -0
- package/src/mesh/mesh-events-coordinator.ts +32 -0
- package/src/mesh/mesh-events-pending.ts +766 -0
- package/src/mesh/mesh-events-stale.ts +440 -0
- package/src/mesh/mesh-events-utils.ts +443 -0
- package/src/mesh/mesh-events.ts +33 -1035
- package/src/mesh/mesh-fast-forward.ts +856 -0
- package/src/mesh/mesh-host-ownership.ts +111 -0
- package/src/mesh/mesh-init.ts +350 -0
- package/src/mesh/mesh-ledger-reconciliation.ts +12 -7
- package/src/mesh/mesh-ledger.ts +873 -102
- package/src/mesh/mesh-magi-status.ts +223 -0
- package/src/mesh/mesh-missions.ts +449 -0
- package/src/mesh/mesh-node-identity.ts +1994 -0
- package/src/mesh/mesh-queue-assignment.ts +2233 -0
- package/src/mesh/mesh-reconcile-loop.ts +2390 -0
- package/src/mesh/mesh-refine-batch.ts +205 -0
- package/src/mesh/mesh-refine-gates.ts +1686 -0
- package/src/mesh/mesh-refine-status.ts +231 -0
- package/src/mesh/mesh-review-inbox.ts +308 -0
- package/src/mesh/mesh-routing.ts +291 -0
- package/src/mesh/mesh-runtime-store.ts +2026 -0
- package/src/mesh/mesh-scheduling-runtime.ts +198 -0
- package/src/mesh/mesh-task-inflight.ts +70 -0
- package/src/mesh/mesh-task-stats.ts +161 -0
- package/src/mesh/mesh-unresolved-forward-outbox.ts +185 -0
- package/src/mesh/mesh-warmup-deadline.ts +152 -0
- package/src/mesh/mesh-work-queue.ts +1281 -141
- package/src/mesh/preview-freshness.ts +163 -0
- package/src/mesh/refine-config.ts +423 -0
- package/src/mesh/worktree-bootstrap-config.ts +599 -0
- package/src/providers/acp-provider-instance.ts +43 -10
- package/src/providers/approval-utils.d.ts +5 -0
- package/src/providers/approval-utils.ts +99 -5
- package/src/providers/chat-message-normalization.ts +126 -4
- package/src/providers/cli-provider-instance.ts +2456 -107
- package/src/providers/contracts.d.ts +55 -0
- package/src/providers/contracts.ts +160 -6
- package/src/providers/extension-provider-instance.ts +12 -7
- package/src/providers/external-sources.ts +218 -0
- package/src/providers/ide-provider-instance.ts +35 -12
- package/src/providers/manual-attendance.ts +105 -0
- package/src/providers/native-history/antigravity-claim-registry.ts +131 -0
- package/src/providers/native-history/antigravity-cli-transcript.ts +1193 -0
- package/src/providers/native-history/claude-cli-transcript.ts +396 -0
- package/src/providers/native-history/codex-cli-transcript.ts +479 -0
- package/src/providers/native-history/constants.ts +19 -0
- package/src/providers/native-history/dispatcher.ts +503 -0
- package/src/providers/native-history/hermes-cli-transcript.ts +260 -0
- package/src/providers/native-history/index.ts +30 -0
- package/src/providers/provider-instance-manager.ts +71 -0
- package/src/providers/provider-instance.ts +24 -1
- package/src/providers/provider-loader.ts +700 -55
- package/src/providers/provider-schema.ts +87 -14
- package/src/providers/provider-trust.ts +114 -0
- package/src/providers/read-chat-contract.ts +76 -16
- package/src/providers/sdk/README.md +49 -0
- package/src/providers/sdk/v1/builders/acp/detect-status.ts +144 -0
- package/src/providers/sdk/v1/builders/cli/detect-status.ts +313 -0
- package/src/providers/sdk/v1/builders/cli/parse-approval-squash.ts +158 -0
- package/src/providers/sdk/v1/builders/cli/parse-approval.ts +261 -0
- package/src/providers/sdk/v1/builders/cli/parse-session.ts +276 -0
- package/src/providers/sdk/v1/builders/cli/visible-region.ts +143 -0
- package/src/providers/sdk/v1/fixture-tooling/format.ts +130 -0
- package/src/providers/sdk/v1/fixture-tooling/index.ts +22 -0
- package/src/providers/sdk/v1/fixture-tooling/replay.ts +352 -0
- package/src/providers/sdk/v1/index.ts +152 -0
- package/src/providers/sdk/v1/sandbox/README-design.ts +195 -0
- package/src/providers/sdk/v1/sandbox/require-whitelist.ts +472 -0
- package/src/providers/sdk/v1/sandbox/script-runner.ts +150 -0
- package/src/providers/sdk/v1/schemas/cli/provider.schema.json +509 -0
- package/src/providers/sdk/v1/schemas/primitives/acp-session-protocol-v1.json +131 -0
- package/src/providers/sdk/v1/schemas/primitives/native-history-codex-rollout-v1.json +66 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-approval-squash-v1.json +91 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-assistant-block-v1.json +91 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-cue-ordering-v1.json +47 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-dispatch-order-v1.json +32 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-footer-chrome-v1.json +42 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-index-finder-v1.json +27 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-modal-v1.json +125 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-prompt-marker-v1.json +45 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-session-id-extraction-v1.json +46 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-settled-prompt-v1.json +71 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-spinner-v1.json +83 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-transcript-pty-v1.json +83 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-visible-region-v1.json +57 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-welcome-screen-v1.json +35 -0
- package/src/providers/sdk/v1/types/cli/index.ts +365 -0
- package/src/providers/sdk/v1/types/common/index.ts +229 -0
- package/src/providers/sdk/v1/validators/index.ts +19 -0
- package/src/providers/sdk/v1/validators/manifest.ts +110 -0
- package/src/providers/sdk/v1/validators/taint.ts +309 -0
- package/src/providers/spec/adapter.ts +246 -0
- package/src/providers/spec/cli-adapter.ts +1064 -0
- package/src/providers/spec/evaluator.ts +407 -0
- package/src/providers/spec/fsm-driver.ts +1528 -0
- package/src/providers/spec/fsm-evaluator.ts +290 -0
- package/src/providers/spec/fsm-loader.ts +128 -0
- package/src/providers/spec/fsm-types.ts +301 -0
- package/src/providers/spec/native-history-executor.ts +1174 -0
- package/src/providers/spec/pre-launch-trust.ts +104 -0
- package/src/providers/spec/route.ts +51 -0
- package/src/providers/spec/types.ts +262 -0
- package/src/providers/status-monitor.d.ts +7 -7
- package/src/providers/status-monitor.ts +37 -22
- package/src/providers/transcript-v2.ts +567 -0
- package/src/providers/types/interactive-prompt.ts +536 -0
- package/src/providers/version-archive.ts +64 -24
- package/src/providers/working-dir.ts +23 -0
- package/src/repo-mesh-types.ts +758 -14
- package/src/runtime-defaults.ts +39 -0
- package/src/session-host/managed-host.ts +218 -0
- package/src/session-host/runtime-surface.ts +20 -80
- package/src/sessions/registry.ts +6 -0
- package/src/shared-types-extra.ts +2 -4
- package/src/shared-types.d.ts +8 -0
- package/src/shared-types.ts +124 -55
- package/src/status/builders.ts +26 -6
- package/src/status/normalize.ts +2 -0
- package/src/status/reporter.ts +19 -1
- package/src/status/snapshot.ts +95 -26
- package/src/system/hash.ts +23 -0
- package/src/system/host-memory.ts +29 -12
- package/src/system/load-better-sqlite3.ts +68 -0
- package/src/types.ts +5 -0
- package/dist/cli-adapters/terminal-backends/xterm-backend.d.ts +0 -17
- package/dist/mesh/mesh-sync.d.ts +0 -53
- package/src/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +0 -16
- package/src/cli-adapters/terminal-backends/xterm-backend.ts +0 -97
- package/src/mesh/mesh-sync.ts +0 -111
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ManualAttendanceTracker — provider-agnostic "is a human driving this session
|
|
3
|
+
* right now" signal, used to suppress auto-approve while the user is taking
|
|
4
|
+
* manual control of a session from the dashboard.
|
|
5
|
+
*
|
|
6
|
+
* Why this exists
|
|
7
|
+
* ---------------
|
|
8
|
+
* When `autoApprove` is on, an approval modal is auto-dismissed within a few
|
|
9
|
+
* hundred ms of appearing. For a background mesh worker that is exactly the
|
|
10
|
+
* desired delegated behavior. But for a session the user is actively watching
|
|
11
|
+
* and operating (a base-node / foreground session), the auto-fire closes the
|
|
12
|
+
* modal before the human can pick a button — and likewise fights their use of
|
|
13
|
+
* the controlbar. The fix is to give the human a short quiet window: while they
|
|
14
|
+
* are attending the session by hand, auto-approve holds; once they go idle it
|
|
15
|
+
* resumes.
|
|
16
|
+
*
|
|
17
|
+
* The tracker holds only a timestamp. The *signal* — which commands count as
|
|
18
|
+
* "a human attending" — is decided by the caller (the command handler), and is
|
|
19
|
+
* the same set for every provider: foreground tab selection (select_session /
|
|
20
|
+
* open_panel), controlbar use (invoke_provider_script / set_mode / change_model
|
|
21
|
+
* / set_thought_level), manual approval (resolve_action) and manual terminal
|
|
22
|
+
* input (pty_input). Notably NOT send_chat, which is also how a coordinator
|
|
23
|
+
* delegates a task to a worker — counting it would wrongly suppress the
|
|
24
|
+
* worker's delegated auto-approve.
|
|
25
|
+
*
|
|
26
|
+
* Because a background worker never receives any of those attending commands,
|
|
27
|
+
* it is never "attended", so its delegated auto-approve is unaffected. The
|
|
28
|
+
* mechanism is therefore provider-common AND preserves worker auto-approve
|
|
29
|
+
* without any per-provider branching.
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* How long after the last manual interaction auto-approve stays suppressed.
|
|
33
|
+
*
|
|
34
|
+
* Trade-off: long enough that after foregrounding a session's tab the user has
|
|
35
|
+
* a realistic chance to act on an incoming approval (the auto-approve settle
|
|
36
|
+
* window is only ~600ms, so a human cannot out-race it), yet short enough that
|
|
37
|
+
* a session left unattended — e.g. a worker tab the user briefly peeked at —
|
|
38
|
+
* resumes auto-approving within about a minute. Re-armed on every attending
|
|
39
|
+
* command, so a user who keeps interacting keeps the window fresh.
|
|
40
|
+
*/
|
|
41
|
+
export declare const AUTO_APPROVE_MANUAL_ATTENDANCE_SUPPRESS_MS = 60000;
|
|
42
|
+
export declare class ManualAttendanceTracker {
|
|
43
|
+
private readonly suppressMs;
|
|
44
|
+
private lastInteractionAt;
|
|
45
|
+
constructor(suppressMs?: number);
|
|
46
|
+
/** Record that a human just drove this session by hand. */
|
|
47
|
+
note(now?: number): void;
|
|
48
|
+
/** True while a manual interaction is recent enough to suppress auto-approve. */
|
|
49
|
+
isAttended(now?: number): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Milliseconds remaining in the current suppression window, or 0 when not
|
|
52
|
+
* attended. Used to re-arm a re-check timer so auto-approve fires the moment
|
|
53
|
+
* the window lapses even if the PTY/agent has since gone silent.
|
|
54
|
+
*/
|
|
55
|
+
remainingMs(now?: number): number;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The session-scoped commands that count as "a human is attending this session
|
|
59
|
+
* by hand". Shared so the command handler and any forward path agree on one
|
|
60
|
+
* definition. Deliberately excludes send_chat (coordinator task delegation) and
|
|
61
|
+
* pure read commands (read_chat / list_chats — passive polling, not driving).
|
|
62
|
+
*/
|
|
63
|
+
export declare const MANUAL_ATTENDANCE_COMMANDS: ReadonlySet<string>;
|
|
64
|
+
/**
|
|
65
|
+
* The subset of {@link MANUAL_ATTENDANCE_COMMANDS} that are PASSIVE view-only
|
|
66
|
+
* actions — foregrounding a session's tab / opening its panel. They convey "I am
|
|
67
|
+
* looking at this session", not "I am driving it", and carry no user input.
|
|
68
|
+
*
|
|
69
|
+
* For a foreground (base-node) session these still attend: a user who
|
|
70
|
+
* foregrounds their own session should get the quiet window so an incoming
|
|
71
|
+
* approval stays visible for them to act on. But for a DELEGATED worker session
|
|
72
|
+
* a passive peek must NOT attend — a coordinator merely opening a worker's panel
|
|
73
|
+
* to watch progress would otherwise suppress that worker's delegated
|
|
74
|
+
* auto-approve for the whole window (secondary cause, #137). The per-instance
|
|
75
|
+
* hook decides: it drops a passive stamp only when the session is a delegated
|
|
76
|
+
* worker, so explicit input (controlbar / resolve_action / pty_input) still
|
|
77
|
+
* attends a worker and a foreground session is unaffected.
|
|
78
|
+
*/
|
|
79
|
+
export declare const MANUAL_ATTENDANCE_PASSIVE_VIEW_COMMANDS: ReadonlySet<string>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** A claim older than this with no refresh is reclaimable (owner presumed dead). */
|
|
2
|
+
export declare const CLAIM_STALE_MS: number;
|
|
3
|
+
/**
|
|
4
|
+
* Derive the per-session owner token. Both the dispatcher (from the read input:
|
|
5
|
+
* workspace + sessionStartedAtMs) and the provider instance (from its
|
|
6
|
+
* workingDir + startedAt, or its instanceId) call this with the same inputs so
|
|
7
|
+
* claims and releases line up. Returns '' when there is no stable identity to
|
|
8
|
+
* key on (e.g. a workspace-less discovery with no spawn time) — the caller then
|
|
9
|
+
* skips claiming but the exclusion checks still run against existing claims.
|
|
10
|
+
*/
|
|
11
|
+
export declare function antigravityOwnerToken(workspace: string, sessionStartedAtMs: number, instanceId?: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Claim `uuid` for `owner`. Succeeds (and refreshes) when the conversation is
|
|
14
|
+
* unclaimed, already owned by this owner, or held by a stale (abandoned) owner.
|
|
15
|
+
* Fails when a DIFFERENT live owner holds it. Returns whether `owner` holds the
|
|
16
|
+
* claim after the call.
|
|
17
|
+
*/
|
|
18
|
+
export declare function claimAntigravityConversation(uuid: string, owner: string, now?: number): boolean;
|
|
19
|
+
/** True when `uuid` is held by a live owner OTHER than `owner`. */
|
|
20
|
+
export declare function isAntigravityConversationClaimedByOther(uuid: string, owner: string, now?: number): boolean;
|
|
21
|
+
/** The live owner of `uuid`, or undefined when unclaimed or stale. */
|
|
22
|
+
export declare function antigravityConversationOwner(uuid: string, now?: number): string | undefined;
|
|
23
|
+
/** Release a single conversation, only if held by `owner` (or `owner` empty). */
|
|
24
|
+
export declare function releaseAntigravityConversation(uuid: string, owner?: string): void;
|
|
25
|
+
/** Release every conversation held by `owner` (called on session shutdown). */
|
|
26
|
+
export declare function releaseAntigravityOwner(owner: string): void;
|
|
27
|
+
/** Test-only: wipe all claims so each test starts from a clean registry. */
|
|
28
|
+
export declare function __resetAntigravityClaimRegistry(): void;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* antigravity-cli-transcript — Daemon-side built-in native history adapter for antigravity-cli.
|
|
3
|
+
*
|
|
4
|
+
* Antigravity CLI stores conversations in multiple complementary locations:
|
|
5
|
+
*
|
|
6
|
+
* 1. ~/.gemini/antigravity-cli/history.jsonl
|
|
7
|
+
* Lightweight index of user prompts, one row per turn:
|
|
8
|
+
* { conversationId: string, display: string, workspace: string, timestamp: number }
|
|
9
|
+
*
|
|
10
|
+
* 2. ~/.gemini/antigravity-cli/brain/<uuid>/.system_generated/logs/transcript*.jsonl
|
|
11
|
+
* Per-session full transcript, one row per agent step:
|
|
12
|
+
* { source: 'USER_EXPLICIT'|'MODEL', type: string, content: string, status: 'DONE'|..., created_at: number }
|
|
13
|
+
*
|
|
14
|
+
* 3. ~/.gemini/antigravity-cli/conversations/<uuid>.pb
|
|
15
|
+
* Legacy protobuf binary — schema not publicly documented. Adapter extracts
|
|
16
|
+
* printable UTF-8 text runs as best-effort content (no proto library needed).
|
|
17
|
+
*
|
|
18
|
+
* 4. ~/.gemini/antigravity-cli/conversations/<uuid>.db ← current format
|
|
19
|
+
* Per-session SQLite database. Recent antigravity migrated conversation
|
|
20
|
+
* storage from .pb (+ brain/*.jsonl) to a per-session SQLite db. The
|
|
21
|
+
* schema is a trajectory of `steps`, NOT a simple messages(role,content)
|
|
22
|
+
* table:
|
|
23
|
+
* steps(idx INTEGER PK, step_type INTEGER, status INTEGER,
|
|
24
|
+
* step_payload BLOB [protobuf], ...)
|
|
25
|
+
* Each `step_payload` is a protobuf message. Empirically (introspected
|
|
26
|
+
* from real stores):
|
|
27
|
+
* - step_type 14 → a USER turn. The prompt text is the largest
|
|
28
|
+
* contiguous UTF-8 run inside the payload (field 19 subtree).
|
|
29
|
+
* - step_type 15 → a MODEL/assistant turn. The assistant's final
|
|
30
|
+
* natural-language answer lives at payload field 20 → field 1
|
|
31
|
+
* (identical to field 8). Field 20 → field 3 is the internal
|
|
32
|
+
* reasoning summary and is intentionally NOT surfaced.
|
|
33
|
+
* - other step types are tool calls / ephemeral system context.
|
|
34
|
+
* We read the blobs with a tiny dependency-free protobuf field walker
|
|
35
|
+
* (no proto schema / codegen needed) and map the two message step types.
|
|
36
|
+
* Because the daemon does NOT read this db, native history previously
|
|
37
|
+
* returned 0 rows for these sessions and read_chat fell back to the
|
|
38
|
+
* pty parser (which only echoes the user's own input) — assistant
|
|
39
|
+
* answers appeared lost even though they were on disk.
|
|
40
|
+
*
|
|
41
|
+
* Schema-drift resilience: the exact field path (20 → 1/8 for the answer,
|
|
42
|
+
* 19 → 2/3 for the prompt) is empirically verified against real stores, but
|
|
43
|
+
* antigravity may move it in a future build. So when the known path yields
|
|
44
|
+
* no text, instead of silently dropping the turn we fall back to a UTF-8
|
|
45
|
+
* printable-run scan of the payload (recoverMessageText) that recovers the
|
|
46
|
+
* answer/prompt even if the field number drifted — while explicitly
|
|
47
|
+
* EXCLUDING the reasoning subtree (20 → 3) so internal reasoning is never
|
|
48
|
+
* surfaced as the answer. Only when even that finds nothing beyond
|
|
49
|
+
* reasoning/metadata is the step dropped, and a content-free DEBUG
|
|
50
|
+
* breadcrumb is logged so a real drift is greppable rather than invisible.
|
|
51
|
+
*
|
|
52
|
+
* This adapter provides:
|
|
53
|
+
* - Full coverage from a per-session .db (current format) — preferred.
|
|
54
|
+
* - Full coverage when a brain transcript exists (legacy authoritative source).
|
|
55
|
+
* - Partial coverage (user prompts only) from history.jsonl as fallback.
|
|
56
|
+
* - Best-effort raw-string extraction from .pb files when no other source exists.
|
|
57
|
+
*
|
|
58
|
+
* watchPath (from provider.v1.json):
|
|
59
|
+
* ~/.gemini/antigravity-cli/history.jsonl
|
|
60
|
+
* ~/.gemini/antigravity-cli/brain/{uuid}/.system_generated/logs/transcript*.jsonl
|
|
61
|
+
* ~/.gemini/antigravity-cli/conversations/{uuid}.pb
|
|
62
|
+
* ~/.gemini/antigravity-cli/conversations/{uuid}.db
|
|
63
|
+
*
|
|
64
|
+
* OSS code (AGPL-3.0). Must not import from packages/ (proprietary).
|
|
65
|
+
*/
|
|
66
|
+
export type NativeHistoryRole = 'user' | 'assistant' | 'system';
|
|
67
|
+
export type NativeHistoryKind = 'standard' | 'tool' | 'session_start';
|
|
68
|
+
export interface NativeHistoryMessage {
|
|
69
|
+
ts: string;
|
|
70
|
+
receivedAt: number;
|
|
71
|
+
role: NativeHistoryRole;
|
|
72
|
+
content: string;
|
|
73
|
+
kind: NativeHistoryKind;
|
|
74
|
+
senderName?: string;
|
|
75
|
+
agent: 'antigravity-cli';
|
|
76
|
+
historySessionId: string;
|
|
77
|
+
workspace?: string;
|
|
78
|
+
/** Stable per-message identity (v2 contract). */
|
|
79
|
+
providerUnitKey?: string;
|
|
80
|
+
}
|
|
81
|
+
export interface NativeHistorySession {
|
|
82
|
+
messages: NativeHistoryMessage[];
|
|
83
|
+
providerSessionId: string;
|
|
84
|
+
source: 'provider-native';
|
|
85
|
+
sourcePath: string;
|
|
86
|
+
sourceMtimeMs: number;
|
|
87
|
+
/**
|
|
88
|
+
* 'full' — brain transcript was available and parsed.
|
|
89
|
+
* 'partial' — only history.jsonl user-prompts are available.
|
|
90
|
+
* 'best-effort' — .pb file bytes were used for raw text extraction.
|
|
91
|
+
*/
|
|
92
|
+
nativeHistoryCoverage: 'full' | 'partial' | 'best-effort';
|
|
93
|
+
workspace?: string;
|
|
94
|
+
partialReason?: string;
|
|
95
|
+
}
|
|
96
|
+
export interface NativeHistorySessionMeta {
|
|
97
|
+
historySessionId: string;
|
|
98
|
+
sessionId: string;
|
|
99
|
+
sourcePath: string;
|
|
100
|
+
sourceMtimeMs: number;
|
|
101
|
+
messageCount: number;
|
|
102
|
+
firstMessageAt: number;
|
|
103
|
+
lastMessageAt: number;
|
|
104
|
+
sessionTitle?: string;
|
|
105
|
+
preview?: string;
|
|
106
|
+
workspace?: string;
|
|
107
|
+
agent: 'antigravity-cli';
|
|
108
|
+
source: 'provider-native';
|
|
109
|
+
nativeHistoryCoverage: 'full' | 'partial' | 'best-effort';
|
|
110
|
+
partialReason?: string;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Read a single Antigravity CLI session by its source file path.
|
|
114
|
+
*
|
|
115
|
+
* `sessionPath` is the absolute path to one of:
|
|
116
|
+
* - A brain transcript JSONL: ~/.gemini/antigravity-cli/brain/<uuid>/.system_generated/logs/transcript*.jsonl
|
|
117
|
+
* - The shared history.jsonl: ~/.gemini/antigravity-cli/history.jsonl
|
|
118
|
+
* - A conversation SQLite db: ~/.gemini/antigravity-cli/conversations/<uuid>.db
|
|
119
|
+
* - A conversation protobuf: ~/.gemini/antigravity-cli/conversations/<uuid>.pb
|
|
120
|
+
*
|
|
121
|
+
* The session UUID is inferred from the directory name (brain), filename (pb), or
|
|
122
|
+
* must be provided explicitly via `sessionId` for history.jsonl paths.
|
|
123
|
+
*
|
|
124
|
+
* Returns `null` when the file is missing, empty, or yields no parseable messages.
|
|
125
|
+
*/
|
|
126
|
+
export declare function readSession(sessionPath: string, sessionId?: string, workspace?: string): NativeHistorySession | null;
|
|
127
|
+
/**
|
|
128
|
+
* List all Antigravity CLI sessions found across all watchPath locations.
|
|
129
|
+
*
|
|
130
|
+
* Priority:
|
|
131
|
+
* 1. Brain transcript sessions (full coverage) — preferred source.
|
|
132
|
+
* 2. History JSONL entries without a brain transcript (partial coverage).
|
|
133
|
+
* 3. .pb conversation files without any other source (best-effort).
|
|
134
|
+
*
|
|
135
|
+
* Returns summary metadata sorted by most recently updated first.
|
|
136
|
+
*/
|
|
137
|
+
export declare function listSessions(_watchPath: string): Promise<NativeHistorySessionMeta[]>;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* claude-cli-transcript — Daemon-side built-in native history adapter for claude-cli.
|
|
3
|
+
*
|
|
4
|
+
* Reads Claude Code JSONL transcript files directly without shelling out to a JS override.
|
|
5
|
+
* The transcript format is one JSON object per line, where each line has:
|
|
6
|
+
* - type: 'user' | 'assistant'
|
|
7
|
+
* - message: { content: string | ContentBlock[] }
|
|
8
|
+
* - timestamp: number (ms epoch) | string (ISO)
|
|
9
|
+
* - sessionId?: string
|
|
10
|
+
* - cwd?: string
|
|
11
|
+
*
|
|
12
|
+
* OSS code (AGPL-3.0). Must not import from packages/ (proprietary).
|
|
13
|
+
*/
|
|
14
|
+
export type NativeHistoryRole = 'user' | 'assistant' | 'system';
|
|
15
|
+
export type NativeHistoryKind = 'standard' | 'tool' | 'session_start';
|
|
16
|
+
export interface NativeHistoryMessage {
|
|
17
|
+
ts: string;
|
|
18
|
+
receivedAt: number;
|
|
19
|
+
role: NativeHistoryRole;
|
|
20
|
+
content: string;
|
|
21
|
+
kind: NativeHistoryKind;
|
|
22
|
+
senderName?: string;
|
|
23
|
+
agent: 'claude-cli';
|
|
24
|
+
historySessionId: string;
|
|
25
|
+
workspace?: string;
|
|
26
|
+
/** Stable per-message identity (v2 contract). */
|
|
27
|
+
providerUnitKey?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface NativeHistorySession {
|
|
30
|
+
messages: NativeHistoryMessage[];
|
|
31
|
+
providerSessionId: string;
|
|
32
|
+
source: 'provider-native';
|
|
33
|
+
sourcePath: string;
|
|
34
|
+
sourceMtimeMs: number;
|
|
35
|
+
nativeHistoryCoverage: 'full';
|
|
36
|
+
workspace?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface NativeHistorySessionMeta {
|
|
39
|
+
historySessionId: string;
|
|
40
|
+
sessionId: string;
|
|
41
|
+
sourcePath: string;
|
|
42
|
+
sourceMtimeMs: number;
|
|
43
|
+
messageCount: number;
|
|
44
|
+
firstMessageAt: number;
|
|
45
|
+
lastMessageAt: number;
|
|
46
|
+
sessionTitle?: string;
|
|
47
|
+
preview?: string;
|
|
48
|
+
workspace?: string;
|
|
49
|
+
agent: 'claude-cli';
|
|
50
|
+
source: 'provider-native';
|
|
51
|
+
nativeHistoryCoverage: 'full';
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Read a single Claude Code session by its transcript file path.
|
|
55
|
+
*
|
|
56
|
+
* `sessionPath` is the absolute path to a `<uuid>.jsonl` file.
|
|
57
|
+
* Returns `null` when the file is missing, empty, or yields no parseable messages.
|
|
58
|
+
*/
|
|
59
|
+
export declare function readSession(sessionPath: string): NativeHistorySession | null;
|
|
60
|
+
/**
|
|
61
|
+
* List all Claude Code sessions under the given glob-style watchPath base dir.
|
|
62
|
+
*
|
|
63
|
+
* `watchPath` is the pattern from provider.v1.json (`~/.claude/projects/**\/*.jsonl`).
|
|
64
|
+
* This implementation expands the home directory and scans `~/.claude/projects/`
|
|
65
|
+
* recursively, collecting all `.jsonl` files.
|
|
66
|
+
*
|
|
67
|
+
* Returns summary metadata for each session (no full message reads on this hot path;
|
|
68
|
+
* each file is opened only for lightweight scanning).
|
|
69
|
+
*/
|
|
70
|
+
export declare function listSessions(watchPath: string): Promise<NativeHistorySessionMeta[]>;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* codex-cli-transcript — Daemon-side built-in native history adapter for codex-cli.
|
|
3
|
+
*
|
|
4
|
+
* Reads Codex CLI rollout JSONL session files directly without shelling out to a JS override.
|
|
5
|
+
* Files are stored at ~/.codex/sessions/<uuid>[-<slug>].jsonl.
|
|
6
|
+
*
|
|
7
|
+
* Format — each line is a JSON object of one of these types:
|
|
8
|
+
* { type: 'session_meta', timestamp: number, payload: { id: string, cwd: string, ... } }
|
|
9
|
+
* { type: 'response_item', timestamp: number, payload: { type: 'message', role: 'user'|'assistant', content: ... } }
|
|
10
|
+
* { type: 'response_item', timestamp: number, payload: { type: 'function_call' | 'custom_tool_call', name?: string, arguments?: string, input?: unknown } }
|
|
11
|
+
* { type: 'response_item', timestamp: number, payload: { type: 'function_call_output' | 'custom_tool_call_output', output?: string, result?: string } }
|
|
12
|
+
*
|
|
13
|
+
* watchPath (from provider.v1.json): ~/.codex/sessions
|
|
14
|
+
*
|
|
15
|
+
* OSS code (AGPL-3.0). Must not import from packages/ (proprietary).
|
|
16
|
+
*/
|
|
17
|
+
export type NativeHistoryRole = 'user' | 'assistant' | 'system';
|
|
18
|
+
export type NativeHistoryKind = 'standard' | 'tool' | 'session_start';
|
|
19
|
+
export interface NativeHistoryMessage {
|
|
20
|
+
ts: string;
|
|
21
|
+
receivedAt: number;
|
|
22
|
+
role: NativeHistoryRole;
|
|
23
|
+
content: string;
|
|
24
|
+
kind: NativeHistoryKind;
|
|
25
|
+
senderName?: string;
|
|
26
|
+
agent: 'codex-cli';
|
|
27
|
+
historySessionId: string;
|
|
28
|
+
workspace?: string;
|
|
29
|
+
/** Stable per-message identity (v2 contract). */
|
|
30
|
+
providerUnitKey?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface NativeHistorySession {
|
|
33
|
+
messages: NativeHistoryMessage[];
|
|
34
|
+
providerSessionId: string;
|
|
35
|
+
source: 'provider-native';
|
|
36
|
+
sourcePath: string;
|
|
37
|
+
sourceMtimeMs: number;
|
|
38
|
+
nativeHistoryCoverage: 'full';
|
|
39
|
+
workspace?: string;
|
|
40
|
+
}
|
|
41
|
+
export interface NativeHistorySessionMeta {
|
|
42
|
+
historySessionId: string;
|
|
43
|
+
sessionId: string;
|
|
44
|
+
sourcePath: string;
|
|
45
|
+
sourceMtimeMs: number;
|
|
46
|
+
messageCount: number;
|
|
47
|
+
firstMessageAt: number;
|
|
48
|
+
lastMessageAt: number;
|
|
49
|
+
sessionTitle?: string;
|
|
50
|
+
preview?: string;
|
|
51
|
+
workspace?: string;
|
|
52
|
+
agent: 'codex-cli';
|
|
53
|
+
source: 'provider-native';
|
|
54
|
+
nativeHistoryCoverage: 'full';
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Read a single Codex CLI session by its JSONL file path.
|
|
58
|
+
*
|
|
59
|
+
* `sessionPath` is the absolute path to a `<uuid>[-<slug>].jsonl` file
|
|
60
|
+
* under ~/.codex/sessions/.
|
|
61
|
+
* Returns `null` when the file is missing, empty, or yields no parseable messages.
|
|
62
|
+
*/
|
|
63
|
+
export declare function readSession(sessionPath: string): NativeHistorySession | null;
|
|
64
|
+
/**
|
|
65
|
+
* List all Codex CLI sessions under the given watchPath base dir.
|
|
66
|
+
*
|
|
67
|
+
* `watchPath` is the value from provider.v1.json (`~/.codex/sessions`).
|
|
68
|
+
* Expands the home directory and scans the directory recursively,
|
|
69
|
+
* collecting all `.jsonl` files.
|
|
70
|
+
*
|
|
71
|
+
* Returns summary metadata for each session, sorted by most recently updated first.
|
|
72
|
+
*/
|
|
73
|
+
export declare function listSessions(watchPath: string): Promise<NativeHistorySessionMeta[]>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spawn-bind grace window: an on-disk rollout whose session_meta.timestamp
|
|
3
|
+
* lands within ±SPAWN_BIND_GRACE_MS of the daemon's spawnedAtMs is treated
|
|
4
|
+
* as belonging to that daemon session. 10s is long enough to absorb codex
|
|
5
|
+
* binary startup latency on cold caches and short enough that two
|
|
6
|
+
* back-to-back launches don't both fall inside the same window.
|
|
7
|
+
*
|
|
8
|
+
* Shared by the declarative executor (providers/spec/native-history-executor.ts)
|
|
9
|
+
* and the codex runtime disambiguator (providers/native-history/dispatcher.ts) —
|
|
10
|
+
* both apply the identical ±10s session-binding window.
|
|
11
|
+
*/
|
|
12
|
+
export declare const SPAWN_BIND_GRACE_MS = 10000;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type ReaderId = 'claude-cli' | 'codex-cli' | 'antigravity-cli' | 'hermes-cli';
|
|
2
|
+
export interface NativeHistoryInput {
|
|
3
|
+
agentType?: string;
|
|
4
|
+
sessionId?: string;
|
|
5
|
+
providerSessionId?: string;
|
|
6
|
+
historySessionId?: string;
|
|
7
|
+
/** Daemon instance id of the reading session. Used (with workspace +
|
|
8
|
+
* sessionStartedAtMs) to derive the antigravity conversation-claim owner
|
|
9
|
+
* token so two concurrent sessions never bind to the same .db. */
|
|
10
|
+
instanceId?: string;
|
|
11
|
+
workspace?: string;
|
|
12
|
+
sessionStartedAtMs?: number;
|
|
13
|
+
format?: string;
|
|
14
|
+
watchPath?: string;
|
|
15
|
+
forceRefresh?: boolean;
|
|
16
|
+
args?: Record<string, unknown>;
|
|
17
|
+
}
|
|
18
|
+
export interface NativeHistoryResult {
|
|
19
|
+
messages: Array<{
|
|
20
|
+
role: string;
|
|
21
|
+
content: string;
|
|
22
|
+
receivedAt?: number;
|
|
23
|
+
kind?: string;
|
|
24
|
+
workspace?: string;
|
|
25
|
+
}>;
|
|
26
|
+
providerSessionId?: string;
|
|
27
|
+
sourcePath: string;
|
|
28
|
+
sourceMtimeMs: number;
|
|
29
|
+
nativeHistoryCoverage?: 'full' | 'partial' | 'best-effort';
|
|
30
|
+
}
|
|
31
|
+
export declare function createNativeHistoryDispatcher(reader: ReaderId): (input: NativeHistoryInput) => NativeHistoryResult | null;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface NativeHistoryMessage {
|
|
2
|
+
id: string;
|
|
3
|
+
role: 'user' | 'assistant' | 'system';
|
|
4
|
+
content: string;
|
|
5
|
+
receivedAt: number;
|
|
6
|
+
kind?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface NativeHistorySession {
|
|
9
|
+
messages: NativeHistoryMessage[];
|
|
10
|
+
providerSessionId: string;
|
|
11
|
+
source: 'provider-native';
|
|
12
|
+
sourcePath: string;
|
|
13
|
+
sourceMtimeMs: number;
|
|
14
|
+
nativeHistoryCoverage: 'full';
|
|
15
|
+
workspace?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface NativeHistorySessionMeta {
|
|
18
|
+
historySessionId: string;
|
|
19
|
+
sessionId: string;
|
|
20
|
+
sourcePath: string;
|
|
21
|
+
sourceMtimeMs: number;
|
|
22
|
+
messageCount: number;
|
|
23
|
+
firstMessageAt: number;
|
|
24
|
+
lastMessageAt: number;
|
|
25
|
+
sessionTitle?: string;
|
|
26
|
+
preview?: string;
|
|
27
|
+
workspace?: string;
|
|
28
|
+
}
|
|
29
|
+
export declare function readSession(sessionPath: string, requestedSessionId?: string): NativeHistorySession | null;
|
|
30
|
+
export declare function listSessions(_watchPath: string): Promise<NativeHistorySessionMeta[]>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* native-history — Daemon-side built-in adapters for CLI provider native history.
|
|
3
|
+
*
|
|
4
|
+
* Each adapter reads conversation history directly from the CLI tool's on-disk
|
|
5
|
+
* storage without shelling out to a provider JS override script.
|
|
6
|
+
*
|
|
7
|
+
* OSS code (AGPL-3.0). Must not import from packages/ (proprietary).
|
|
8
|
+
*/
|
|
9
|
+
export { readSession as readClaudeCliSession, listSessions as listClaudeCliSessions, } from './claude-cli-transcript.js';
|
|
10
|
+
export { readSession as readCodexCliSession, listSessions as listCodexCliSessions, } from './codex-cli-transcript.js';
|
|
11
|
+
export { readSession as readAntigravityCliSession, listSessions as listAntigravityCliSessions, } from './antigravity-cli-transcript.js';
|
|
12
|
+
export { readSession as readHermesCliSession, listSessions as listHermesCliSessions, } from './hermes-cli-transcript.js';
|
|
13
|
+
export { createNativeHistoryDispatcher, type ReaderId } from './dispatcher.js';
|
|
@@ -82,6 +82,35 @@ export declare class ProviderInstanceManager {
|
|
|
82
82
|
* Called when user changes settings from dashboard.
|
|
83
83
|
*/
|
|
84
84
|
updateInstanceSettings(providerType: string, settings: Record<string, any>): number;
|
|
85
|
+
/** Stamp a mesh assignment on a single instance (used by mesh_send_task
|
|
86
|
+
* --direct so the worker's completion event has a coordinator routing
|
|
87
|
+
* marker in state.settings). Returns `{ stamped: true }` when the stamp was
|
|
88
|
+
* applied, or `{ stamped: false, reason }` when it was refused — the instance
|
|
89
|
+
* was missing / has no attach method, or the DOUBLE-DISPATCH idempotence guard
|
|
90
|
+
* fired (the same task is already running on another live session here). */
|
|
91
|
+
attachMeshAssignmentToInstance(instanceId: string, assignment: {
|
|
92
|
+
meshId: string;
|
|
93
|
+
nodeId?: string;
|
|
94
|
+
taskId?: string;
|
|
95
|
+
coordinatorDaemonId?: string;
|
|
96
|
+
coordinatorSessionId?: string;
|
|
97
|
+
}): {
|
|
98
|
+
stamped: boolean;
|
|
99
|
+
reason?: string;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* DOUBLE-DISPATCH support: the id of another LIVE, actively-working instance that already
|
|
103
|
+
* holds (meshId, taskId), or null. "Live working" = stamped with this exact mesh+task AND
|
|
104
|
+
* currently mid-turn / booting toward it (generating / waiting on approval-or-choice /
|
|
105
|
+
* starting) — NOT idle, stopped, or errored. A stale/dead/idle holder is deliberately
|
|
106
|
+
* ignored so a legitimate re-dispatch (e.g. after a dispatch failure) is never blocked.
|
|
107
|
+
* The instance being stamped (excludeInstanceId) is skipped so re-stamping the same
|
|
108
|
+
* session stays idempotent. O(n) over instances — the count is small.
|
|
109
|
+
*/
|
|
110
|
+
private findLiveWorkingTaskHolder;
|
|
111
|
+
/** Clear a mesh assignment after the dispatched task reaches a terminal
|
|
112
|
+
* state (generating_completed / stopped / failed). */
|
|
113
|
+
detachMeshAssignmentFromInstance(instanceId: string): boolean;
|
|
85
114
|
refreshProviderDefinitions(resolveProvider: (providerType: string) => unknown): number;
|
|
86
115
|
/**
|
|
87
116
|
* All terminate
|
|
@@ -11,7 +11,8 @@ import type { ProviderModule, ProviderResumeCapability } from './contracts.js';
|
|
|
11
11
|
import type { AcpConfigOption, AcpMode, ProviderControlSchema, ProviderSummaryMetadata, SessionCapability } from '../shared-types.js';
|
|
12
12
|
import type { MessageInputSupport } from './provider-input-support.js';
|
|
13
13
|
import type { ChatMessage } from '../types.js';
|
|
14
|
-
|
|
14
|
+
import type { InteractivePrompt } from './types/interactive-prompt.js';
|
|
15
|
+
export type ProviderStatus = 'idle' | 'generating' | 'waiting_approval' | 'waiting_choice' | 'error' | 'stopped' | 'starting';
|
|
15
16
|
export interface ProviderRuntimeWriteOwner {
|
|
16
17
|
clientId: string;
|
|
17
18
|
ownerType: 'agent' | 'user';
|
|
@@ -42,6 +43,7 @@ export interface ActiveChatData {
|
|
|
42
43
|
message: string;
|
|
43
44
|
buttons: string[];
|
|
44
45
|
} | null;
|
|
46
|
+
activeInteractivePrompt?: InteractivePrompt | null;
|
|
45
47
|
inputContent?: string;
|
|
46
48
|
}
|
|
47
49
|
/** Standardized error reasons across all provider categories */
|
|
@@ -56,6 +58,7 @@ interface ProviderStateBase {
|
|
|
56
58
|
status: ProviderStatus;
|
|
57
59
|
/** chat data */
|
|
58
60
|
activeChat: ActiveChatData | null;
|
|
61
|
+
activeInteractivePrompt?: InteractivePrompt | null;
|
|
59
62
|
/** Workspace — project path or name (all categories) */
|
|
60
63
|
workspace?: string | null;
|
|
61
64
|
/** Runtime info (real-time detection) */
|
|
@@ -178,8 +181,34 @@ export interface ProviderInstance {
|
|
|
178
181
|
onEvent(event: string, data?: any): void;
|
|
179
182
|
/** Update settings at runtime (called when user changes settings from dashboard) */
|
|
180
183
|
updateSettings?(newSettings: Record<string, any>): void;
|
|
184
|
+
/** Stamp a direct-dispatch mesh task assignment so generating_completed
|
|
185
|
+
* events route back to the originating coordinator. Cleared by
|
|
186
|
+
* detachMeshAssignment when the task reaches a terminal state. */
|
|
187
|
+
attachMeshAssignment?(assignment: {
|
|
188
|
+
meshId: string;
|
|
189
|
+
nodeId?: string;
|
|
190
|
+
taskId?: string;
|
|
191
|
+
coordinatorDaemonId?: string;
|
|
192
|
+
coordinatorSessionId?: string;
|
|
193
|
+
}): void;
|
|
194
|
+
detachMeshAssignment?(): void;
|
|
181
195
|
/** Refresh static provider definition/scripts without restarting the live runtime. */
|
|
182
196
|
refreshProviderDefinition?(provider: ProviderModule): void;
|
|
197
|
+
/**
|
|
198
|
+
* Record that a human is actively attending this session by hand right now
|
|
199
|
+
* (foreground tab selection, controlbar use, manual approval, terminal
|
|
200
|
+
* input). Provider-common signal that suppresses auto-approve for a short
|
|
201
|
+
* window so the user can drive the session manually; background mesh worker
|
|
202
|
+
* sessions never receive it, so their delegated auto-approve is unaffected.
|
|
203
|
+
*
|
|
204
|
+
* `opts.passive` marks a view-only action (select_session / open_panel). A
|
|
205
|
+
* delegated worker session ignores passive stamps so a coordinator merely
|
|
206
|
+
* watching its panel does not suppress its delegated auto-approve; explicit
|
|
207
|
+
* input still attends. Foreground sessions attend on passive views too.
|
|
208
|
+
*/
|
|
209
|
+
noteManualInteraction?(now?: number, opts?: {
|
|
210
|
+
passive?: boolean;
|
|
211
|
+
}): void;
|
|
183
212
|
/** cleanup */
|
|
184
213
|
dispose(): void;
|
|
185
214
|
}
|
|
@@ -55,10 +55,17 @@ export declare class ProviderLoader {
|
|
|
55
55
|
private logFn;
|
|
56
56
|
private versionArchive;
|
|
57
57
|
private scriptsCache;
|
|
58
|
+
/**
|
|
59
|
+
* Resolved registry base URL and provider tarball URL. Resolution order:
|
|
60
|
+
* explicit config field (constructor option) → env var → vendor default.
|
|
61
|
+
* See `config/registry-resolver.ts`.
|
|
62
|
+
*/
|
|
63
|
+
private readonly registryBaseUrl;
|
|
64
|
+
private readonly providerTarballUrl;
|
|
58
65
|
/** Inject VersionArchive so resolve() can auto-detect installed versions */
|
|
59
66
|
setVersionArchive(archive: VersionArchive): void;
|
|
60
|
-
private static readonly GITHUB_TARBALL_URL;
|
|
61
67
|
private static readonly META_FILE;
|
|
68
|
+
private static readonly REGISTRY_META_FILE;
|
|
62
69
|
private static readonly REPO_PROVIDER_DIRNAME;
|
|
63
70
|
private static readonly SIBLING_MARKER_FILE;
|
|
64
71
|
private static readonly SIBLING_ENV_VAR;
|
|
@@ -83,7 +90,18 @@ export declare class ProviderLoader {
|
|
|
83
90
|
* probing; production code should leave this unset.
|
|
84
91
|
*/
|
|
85
92
|
probeStarts?: string[];
|
|
93
|
+
/**
|
|
94
|
+
* Explicit provider registry base URL override (config.registryUrl).
|
|
95
|
+
* Highest-priority resolver source, ahead of ADHDEV_REGISTRY_URL + default.
|
|
96
|
+
*/
|
|
97
|
+
registryUrl?: string;
|
|
98
|
+
/**
|
|
99
|
+
* Explicit provider tarball URL override (config.providerTarballUrl).
|
|
100
|
+
* Highest-priority resolver source, ahead of ADHDEV_PROVIDER_TARBALL_URL + default.
|
|
101
|
+
*/
|
|
102
|
+
providerTarballUrl?: string;
|
|
86
103
|
});
|
|
104
|
+
private migrateMarketplaceDirToExternal;
|
|
87
105
|
private log;
|
|
88
106
|
private debugLog;
|
|
89
107
|
/**
|
|
@@ -128,9 +146,12 @@ export declare class ProviderLoader {
|
|
|
128
146
|
resolveProviderFile(type: string, ...segments: string[]): string | null;
|
|
129
147
|
/**
|
|
130
148
|
* Load all providers (3-tier priority)
|
|
131
|
-
* 1.
|
|
132
|
-
* 2.
|
|
133
|
-
*
|
|
149
|
+
* 1. ~/.adhdev/providers/.upstream/ — official git, auto-synced
|
|
150
|
+
* 2. ~/.adhdev/external/ — 3rd-party git sources, user-added,
|
|
151
|
+
* bundled providers may include arbitrary JS (untrusted by default)
|
|
152
|
+
* 3. ~/.adhdev/providers/ (excluding .upstream) — user-authored customs,
|
|
153
|
+
* always wins
|
|
154
|
+
* Highest priority listed last (overwrites earlier loads).
|
|
134
155
|
* If .upstream/ is empty, call fetchLatest() before loadAll().
|
|
135
156
|
*/
|
|
136
157
|
loadAll(): void;
|
|
@@ -295,6 +316,22 @@ export declare class ProviderLoader {
|
|
|
295
316
|
*
|
|
296
317
|
* @returns Whether an update occurred
|
|
297
318
|
*/
|
|
319
|
+
/**
|
|
320
|
+
* Sync providers from the ADHDev registry (registry.adhf.dev).
|
|
321
|
+
*
|
|
322
|
+
* Downloads only providers whose server checksum differs from the locally
|
|
323
|
+
* cached checksum. Falls back gracefully to the GitHub tarball path if the
|
|
324
|
+
* registry is unreachable or returns an unexpected response.
|
|
325
|
+
*
|
|
326
|
+
* Returns `{ updated: true }` when at least one provider file changed on disk,
|
|
327
|
+
* `{ updated: false }` when everything is already current, or
|
|
328
|
+
* `{ updated: false, error }` when the registry couldn't be reached and we
|
|
329
|
+
* should proceed to the GitHub tarball fallback.
|
|
330
|
+
*/
|
|
331
|
+
fetchFromRegistry(): Promise<{
|
|
332
|
+
updated: boolean;
|
|
333
|
+
error?: string;
|
|
334
|
+
}>;
|
|
298
335
|
fetchLatest(): Promise<{
|
|
299
336
|
updated: boolean;
|
|
300
337
|
error?: string;
|
|
@@ -305,7 +342,7 @@ export declare class ProviderLoader {
|
|
|
305
342
|
private copyDirRecursive;
|
|
306
343
|
/** .meta.json save */
|
|
307
344
|
private writeMeta;
|
|
308
|
-
/** Count provider files (provider.
|
|
345
|
+
/** Count provider files (provider.v1.json or provider.json — at most one per dir). */
|
|
309
346
|
private countProviders;
|
|
310
347
|
/**
|
|
311
348
|
* Get public settings schema for a provider (for dashboard UI rendering)
|