@adhdev/daemon-core 0.9.82-rc.43 → 0.9.82-rc.430
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 +15 -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 +60 -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 +29 -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 +142 -0
- package/dist/commands/mesh-coordinator.d.ts +85 -1
- package/dist/commands/router.d.ts +276 -2
- package/dist/commands/upgrade-helper.d.ts +41 -1
- package/dist/config/chat-history.d.ts +9 -0
- package/dist/config/config.d.ts +5 -0
- package/dist/config/mesh-config.d.ts +100 -1
- package/dist/config/mesh-json-config.d.ts +199 -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 +11 -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 +64 -14
- package/dist/index.js +49391 -19228
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +48574 -18570
- 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/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 +164 -0
- package/dist/mesh/coordinator-prompt.d.ts +89 -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 +5 -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 +69 -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 +9 -0
- package/dist/mesh/mesh-init.d.ts +86 -0
- package/dist/mesh/mesh-ledger-reconciliation.d.ts +23 -4
- package/dist/mesh/mesh-ledger.d.ts +77 -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 +289 -0
- package/dist/mesh/mesh-queue-assignment.d.ts +113 -0
- package/dist/mesh/mesh-reconcile-loop.d.ts +65 -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 +450 -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 +290 -5
- package/dist/mesh/preview-freshness.d.ts +18 -0
- package/dist/mesh/refine-config.d.ts +216 -0
- package/dist/mesh/worktree-bootstrap-config.d.ts +145 -0
- package/dist/providers/acp-provider-instance.d.ts +5 -0
- package/dist/providers/approval-utils.d.ts +20 -0
- package/dist/providers/chat-message-normalization.d.ts +31 -1
- package/dist/providers/cli-provider-instance.d.ts +221 -3
- package/dist/providers/contracts.d.ts +139 -6
- package/dist/providers/external-sources.d.ts +71 -0
- package/dist/providers/manual-attendance.d.ts +63 -0
- package/dist/providers/native-history/antigravity-cli-transcript.d.ts +100 -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 +27 -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 +23 -1
- package/dist/providers/provider-loader.d.ts +26 -4
- 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 +91 -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 +422 -0
- package/dist/providers/spec/fsm-evaluator.d.ts +76 -0
- package/dist/providers/spec/fsm-loader.d.ts +14 -0
- package/dist/providers/spec/fsm-types.d.ts +174 -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 +501 -13
- package/dist/runtime-defaults.d.ts +2 -0
- package/dist/sessions/registry.d.ts +6 -0
- package/dist/shared-types-extra.d.ts +2 -4
- package/dist/shared-types.d.ts +59 -2
- 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 +7 -3
- package/src/agent-stream/poller.ts +2 -3
- package/src/agent-stream/provider-adapter.ts +1 -1
- package/src/boot/daemon-lifecycle.ts +63 -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/WINDOWS-UPGRADE-LOCK-FAILURE.md +198 -0
- package/src/commands/chat-commands-debug-bundle.ts +398 -0
- package/src/commands/chat-commands-read.ts +2327 -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 +544 -26
- package/src/commands/handler.ts +841 -2
- package/src/commands/high-family/index.ts +28 -0
- package/src/commands/high-family/mesh-coordinator-launch.ts +678 -0
- package/src/commands/high-family/mesh-events.ts +80 -0
- package/src/commands/high-family/mesh-status.ts +710 -0
- package/src/commands/high-family/types.ts +76 -0
- package/src/commands/low-family/coordinator-prompt.ts +72 -0
- package/src/commands/low-family/daemon-lifecycle.ts +107 -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 +238 -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 +1066 -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 +143 -0
- package/src/commands/mesh-coordinator.ts +334 -124
- package/src/commands/router.ts +2711 -3254
- package/src/commands/stream-commands.ts +8 -0
- package/src/commands/upgrade-helper.ts +310 -45
- package/src/config/chat-history.ts +483 -24
- package/src/config/config.ts +12 -0
- package/src/config/mesh-config.ts +495 -22
- package/src/config/mesh-json-config.ts +376 -0
- package/src/config/recent-activity.ts +8 -2
- 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 +59 -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 +194 -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/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 +338 -0
- package/src/mesh/coordinator-prompt.ts +381 -33
- package/src/mesh/coordinator-registry.ts +121 -0
- package/src/mesh/mesh-active-work.ts +645 -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 +51 -0
- package/src/mesh/mesh-event-forwarding.ts +1888 -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 +656 -0
- package/src/mesh/mesh-events-stale.ts +389 -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 +843 -0
- package/src/mesh/mesh-host-ownership.ts +73 -0
- package/src/mesh/mesh-init.ts +260 -0
- package/src/mesh/mesh-ledger-reconciliation.ts +12 -7
- package/src/mesh/mesh-ledger.ts +656 -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 +1887 -0
- package/src/mesh/mesh-queue-assignment.ts +1918 -0
- package/src/mesh/mesh-reconcile-loop.ts +1780 -0
- package/src/mesh/mesh-refine-batch.ts +205 -0
- package/src/mesh/mesh-refine-gates.ts +1673 -0
- package/src/mesh/mesh-refine-status.ts +231 -0
- package/src/mesh/mesh-review-inbox.ts +307 -0
- package/src/mesh/mesh-routing.ts +291 -0
- package/src/mesh/mesh-runtime-store.ts +1853 -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 +1243 -141
- package/src/mesh/preview-freshness.ts +118 -0
- package/src/mesh/refine-config.ts +423 -0
- package/src/mesh/worktree-bootstrap-config.ts +450 -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 +57 -5
- package/src/providers/chat-message-normalization.ts +92 -4
- package/src/providers/cli-provider-instance.ts +1933 -104
- package/src/providers/contracts.d.ts +55 -0
- package/src/providers/contracts.ts +150 -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 +85 -0
- package/src/providers/native-history/antigravity-cli-transcript.ts +643 -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 +339 -0
- package/src/providers/native-history/hermes-cli-transcript.ts +230 -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 +19 -1
- package/src/providers/provider-loader.ts +668 -50
- 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 +250 -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 +504 -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 +235 -0
- package/src/providers/spec/cli-adapter.ts +1056 -0
- package/src/providers/spec/evaluator.ts +407 -0
- package/src/providers/spec/fsm-driver.ts +1410 -0
- package/src/providers/spec/fsm-evaluator.ts +272 -0
- package/src/providers/spec/fsm-loader.ts +120 -0
- package/src/providers/spec/fsm-types.ts +273 -0
- package/src/providers/spec/native-history-executor.ts +1128 -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 +740 -14
- package/src/runtime-defaults.ts +39 -0
- 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 +64 -1
- 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
|
@@ -1,49 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
workspace?: string;
|
|
8
|
-
metadataEvent: Record<string, unknown>;
|
|
9
|
-
queuedAt: number;
|
|
10
|
-
}
|
|
11
|
-
export declare function queuePendingMeshCoordinatorEvent(event: PendingMeshCoordinatorEvent): boolean;
|
|
12
|
-
/** Drain and return all pending coordinator events for meshId, removing them from disk. */
|
|
13
|
-
export declare function drainPendingMeshCoordinatorEvents(meshId?: string): PendingMeshCoordinatorEvent[];
|
|
14
|
-
/** Peek at pending coordinator events without draining (non-destructive). */
|
|
15
|
-
export declare function getPendingMeshCoordinatorEvents(meshId?: string): readonly PendingMeshCoordinatorEvent[];
|
|
16
|
-
/** Explicitly clear all pending coordinator events for a mesh. */
|
|
17
|
-
export declare function clearPendingMeshCoordinatorEvents(meshId?: string): void;
|
|
18
|
-
export declare function tryAssignQueueTask(components: DaemonComponents, meshId: string, nodeId: string, sessionId: string, providerType: string): boolean;
|
|
19
|
-
/**
|
|
20
|
-
* Triggers a queue check for all nodes in the mesh.
|
|
21
|
-
* Called when a new task is enqueued, in case nodes are already idle.
|
|
22
|
-
*/
|
|
23
|
-
export declare function triggerMeshQueue(components: DaemonComponents, meshId: string): Promise<void>;
|
|
24
|
-
export declare function handleMeshForwardEvent(components: DaemonComponents, payload: Record<string, unknown>): {
|
|
25
|
-
success: boolean;
|
|
26
|
-
forwarded: number;
|
|
27
|
-
suppressed: boolean;
|
|
28
|
-
intentionalCleanupStop: boolean;
|
|
29
|
-
duplicateCompletion?: undefined;
|
|
30
|
-
error?: undefined;
|
|
31
|
-
} | {
|
|
32
|
-
success: boolean;
|
|
33
|
-
forwarded: number;
|
|
34
|
-
suppressed: boolean;
|
|
35
|
-
duplicateCompletion: boolean;
|
|
36
|
-
intentionalCleanupStop?: undefined;
|
|
37
|
-
error?: undefined;
|
|
38
|
-
} | {
|
|
39
|
-
success: boolean;
|
|
40
|
-
forwarded: number;
|
|
41
|
-
suppressed?: undefined;
|
|
42
|
-
intentionalCleanupStop?: undefined;
|
|
43
|
-
duplicateCompletion?: undefined;
|
|
44
|
-
error?: undefined;
|
|
45
|
-
} | {
|
|
46
|
-
success: boolean;
|
|
47
|
-
error: string;
|
|
48
|
-
};
|
|
49
|
-
export declare function setupMeshEventForwarding(components: DaemonComponents): void;
|
|
1
|
+
export type { PendingMeshCoordinatorEvent } from './mesh-events-pending.js';
|
|
2
|
+
export { queuePendingMeshCoordinatorEvent, drainPendingMeshCoordinatorEvents, getPendingMeshCoordinatorEvents, clearPendingMeshCoordinatorEvents, } from './mesh-events-pending.js';
|
|
3
|
+
export { reconcileDirectDispatchCompletionFromTranscript, } from './mesh-events-stale.js';
|
|
4
|
+
export { setupMeshReconcileLoop, runMeshReconcileTick, resolveCoordinatorDrainDeliverability, shouldHoldPendingDrainForBusyLocalCoordinator, } from './mesh-reconcile-loop.js';
|
|
5
|
+
export type { MeshQueueTriggerResult } from './mesh-events-coordinator.js';
|
|
6
|
+
export { tryAssignQueueTask, isSessionActivelyGenerating, triggerMeshQueue, handleMeshForwardEvent, setupMeshEventForwarding, isMeshCoordinatorEvent, __resetIdleAutoFastForwardForTests, __resetMeshWorkspaceCacheForTests, } from './mesh-events-coordinator.js';
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { GitRepoStatus } from '../git/git-types.js';
|
|
2
|
+
export interface MeshFastForwardNodeArgs {
|
|
3
|
+
nodeId?: string;
|
|
4
|
+
meshId?: string;
|
|
5
|
+
workspace: string;
|
|
6
|
+
branch?: string;
|
|
7
|
+
execute?: boolean;
|
|
8
|
+
dryRun?: boolean;
|
|
9
|
+
updateSubmodules?: boolean;
|
|
10
|
+
submoduleIgnorePaths?: string[];
|
|
11
|
+
timeoutMs?: number;
|
|
12
|
+
trigger?: 'manual' | 'idle_auto' | string;
|
|
13
|
+
/**
|
|
14
|
+
* Operation mode. 'merge' (default) absorbs upstream commits into the local
|
|
15
|
+
* branch via git merge --ff-only (requires ahead=0, behind>0). 'push' publishes
|
|
16
|
+
* local commits to origin via a strict ff-only push (requires HEAD to be a
|
|
17
|
+
* descendant of origin/<branch>); it never force-pushes, resets, or rebases.
|
|
18
|
+
*/
|
|
19
|
+
mode?: 'merge' | 'push';
|
|
20
|
+
/**
|
|
21
|
+
* When mode='push', also fast-forward push submodule (e.g. oss) HEADs to their
|
|
22
|
+
* origin main branch. Gated by allowAutoPublishSubmoduleMainCommits — skipped
|
|
23
|
+
* unless that policy is true. Each submodule must still pass the descendant gate.
|
|
24
|
+
* Defaults false (root push only).
|
|
25
|
+
*/
|
|
26
|
+
pushSubmodules?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Mesh policy flag mirrored from RepoMeshPolicy.allowAutoPublishSubmoduleMainCommits.
|
|
29
|
+
* Submodule pushes are refused unless this is true.
|
|
30
|
+
*/
|
|
31
|
+
allowAutoPublishSubmoduleMainCommits?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface MeshFastForwardPlannedStep {
|
|
34
|
+
operation: 'refresh_upstream' | 'verify_clean_worktree' | 'verify_fast_forward' | 'merge_ff_only' | 'submodule_update' | 'verify_post_status' | 'verify_push_descendant' | 'push_ff_only' | 'push_submodules_ff_only';
|
|
35
|
+
description: string;
|
|
36
|
+
safe: true;
|
|
37
|
+
willMutateWorktree: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface MeshFastForwardSubmodulePushResult {
|
|
40
|
+
path: string;
|
|
41
|
+
commit?: string;
|
|
42
|
+
remote: string;
|
|
43
|
+
remoteBranch: string;
|
|
44
|
+
pushed: boolean;
|
|
45
|
+
skipped: boolean;
|
|
46
|
+
code: string;
|
|
47
|
+
refspec?: string;
|
|
48
|
+
error?: string;
|
|
49
|
+
}
|
|
50
|
+
export interface MeshFastForwardResult {
|
|
51
|
+
success: boolean;
|
|
52
|
+
code: string;
|
|
53
|
+
nodeId?: string;
|
|
54
|
+
meshId?: string;
|
|
55
|
+
workspace: string;
|
|
56
|
+
mode: 'merge' | 'push';
|
|
57
|
+
allowed: boolean;
|
|
58
|
+
dryRun: boolean;
|
|
59
|
+
willRun: boolean;
|
|
60
|
+
executed: boolean;
|
|
61
|
+
updateSubmodules: boolean;
|
|
62
|
+
blockingReasons: string[];
|
|
63
|
+
plannedSteps: MeshFastForwardPlannedStep[];
|
|
64
|
+
current?: GitRepoStatus;
|
|
65
|
+
preStatus?: GitRepoStatus;
|
|
66
|
+
postStatus?: GitRepoStatus;
|
|
67
|
+
/** Push target derived from the tracked upstream (mode='push'). */
|
|
68
|
+
pushTarget?: {
|
|
69
|
+
remote: string;
|
|
70
|
+
remoteBranch: string;
|
|
71
|
+
refspec: string;
|
|
72
|
+
};
|
|
73
|
+
/** Submodule ff-only push outcomes (mode='push' with pushSubmodules). */
|
|
74
|
+
submodulePushes?: MeshFastForwardSubmodulePushResult[];
|
|
75
|
+
finalBranchConvergenceState?: Record<string, unknown>;
|
|
76
|
+
operationError?: string;
|
|
77
|
+
ledgerError?: string;
|
|
78
|
+
nextStep?: string;
|
|
79
|
+
trigger?: string;
|
|
80
|
+
}
|
|
81
|
+
export declare function fastForwardMeshNode(args: MeshFastForwardNodeArgs): Promise<MeshFastForwardResult>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { RepoMeshDaemonRole, RepoMeshHostMetadata, RepoMeshHostStatus } from '../repo-mesh-types.js';
|
|
2
|
+
export declare function normalizeMeshDaemonRole(value: unknown): RepoMeshDaemonRole | undefined;
|
|
3
|
+
export declare function resolveMeshHostStatus(mesh: unknown): RepoMeshHostStatus;
|
|
4
|
+
export declare function isMeshHostOwner(mesh: unknown): boolean;
|
|
5
|
+
export declare function buildMeshHostRequiredFailure(mesh: unknown, operation: string): Record<string, unknown>;
|
|
6
|
+
export declare function requireMeshHostQueueOwner(opts?: {
|
|
7
|
+
ownerRole?: RepoMeshDaemonRole;
|
|
8
|
+
}): void;
|
|
9
|
+
export declare function createDefaultMeshHostMetadata(): RepoMeshHostMetadata;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mesh init / onboarding helper.
|
|
3
|
+
*
|
|
4
|
+
* One-shot helper that onboards an existing git project into Repo Mesh:
|
|
5
|
+
* 1. suggest + write `.adhdev/refine.json` (Refinery validation config)
|
|
6
|
+
* 2. suggest + write `.adhdev/worktree_bootstrap.json` (worktree bootstrap config)
|
|
7
|
+
* 3. recommend a node providerPriority from the installed CLI providers
|
|
8
|
+
*
|
|
9
|
+
* Design contract (matches the rest of the mesh tooling):
|
|
10
|
+
* - Heuristics are suggestion/scaffold only. The written files are the
|
|
11
|
+
* execution source of truth; Refinery/bootstrap only ever read the saved
|
|
12
|
+
* config. The suggestion functions never become the execution path.
|
|
13
|
+
* - Writing is opt-in (`write: true`) and never clobbers an existing config
|
|
14
|
+
* unless `overwrite: true` is set, so re-running init on an already-onboarded
|
|
15
|
+
* repo is safe.
|
|
16
|
+
* - The providerPriority recommendation is returned, not auto-applied to the
|
|
17
|
+
* node policy — applying it mutates mesh policy, which is the coordinator's
|
|
18
|
+
* decision.
|
|
19
|
+
*/
|
|
20
|
+
import { type RepoMeshRefineConfig, type RepoMeshRefineValidationCommandConfig } from './refine-config.js';
|
|
21
|
+
import { type RepoMeshWorktreeBootstrapConfig } from './worktree-bootstrap-config.js';
|
|
22
|
+
import type { CLIInfo } from '../detection/cli-detector.js';
|
|
23
|
+
/** Canonical write targets — the first/preferred location for each config family. */
|
|
24
|
+
export declare const MESH_INIT_REFINE_CONFIG_PATH: string;
|
|
25
|
+
export declare const MESH_INIT_WORKTREE_BOOTSTRAP_CONFIG_PATH: string;
|
|
26
|
+
export interface MeshInitConfigFileResult {
|
|
27
|
+
path: string;
|
|
28
|
+
relativePath: string;
|
|
29
|
+
written: boolean;
|
|
30
|
+
/** Why it was not written (already_exists / not_suggested / no change). */
|
|
31
|
+
skippedReason?: 'already_exists' | 'no_suggestion';
|
|
32
|
+
config?: RepoMeshRefineConfig | RepoMeshWorktreeBootstrapConfig;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Build a worktree_bootstrap scaffold from package scripts. Mirrors
|
|
36
|
+
* suggestMeshRefineConfig's "scaffold only" posture: prefers an `install`/`ci`
|
|
37
|
+
* style script, else falls back to `npm install`, and records existing
|
|
38
|
+
* lockfiles as staleInputs so a base merge that changes them re-runs bootstrap.
|
|
39
|
+
*
|
|
40
|
+
* Returns undefined when there is nothing meaningful to scaffold.
|
|
41
|
+
*/
|
|
42
|
+
export declare function suggestMeshWorktreeBootstrapConfig(workspace: string): {
|
|
43
|
+
commands: RepoMeshRefineValidationCommandConfig[];
|
|
44
|
+
staleInputs: string[];
|
|
45
|
+
suggestedConfig?: RepoMeshWorktreeBootstrapConfig;
|
|
46
|
+
};
|
|
47
|
+
export declare function suggestNodeProviderPriority(detected: CLIInfo[]): {
|
|
48
|
+
providerPriority: string[];
|
|
49
|
+
installedProviders: Array<{
|
|
50
|
+
id: string;
|
|
51
|
+
displayName: string;
|
|
52
|
+
version?: string;
|
|
53
|
+
}>;
|
|
54
|
+
};
|
|
55
|
+
export interface RunMeshInitOptions {
|
|
56
|
+
/** When true, persist suggested configs to disk. Defaults to dry-run (false). */
|
|
57
|
+
write?: boolean;
|
|
58
|
+
/** When true, overwrite an existing config file. Defaults to false (never clobber). */
|
|
59
|
+
overwrite?: boolean;
|
|
60
|
+
}
|
|
61
|
+
export interface RunMeshInitResult {
|
|
62
|
+
success: true;
|
|
63
|
+
workspace: string;
|
|
64
|
+
dryRun: boolean;
|
|
65
|
+
refine: MeshInitConfigFileResult;
|
|
66
|
+
worktreeBootstrap: MeshInitConfigFileResult;
|
|
67
|
+
providers: {
|
|
68
|
+
providerPriority: string[];
|
|
69
|
+
installedProviders: Array<{
|
|
70
|
+
id: string;
|
|
71
|
+
displayName: string;
|
|
72
|
+
version?: string;
|
|
73
|
+
}>;
|
|
74
|
+
};
|
|
75
|
+
note: string;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Orchestrate the full onboarding flow for one workspace:
|
|
79
|
+
* detect installed CLIs → suggest refine + bootstrap configs → (optionally)
|
|
80
|
+
* write them → recommend a node providerPriority.
|
|
81
|
+
*
|
|
82
|
+
* `detected` is injected (the caller resolves it via detectCLIs with its
|
|
83
|
+
* ProviderLoader) so this module stays free of provider-loader wiring and is
|
|
84
|
+
* trivially unit-testable.
|
|
85
|
+
*/
|
|
86
|
+
export declare function runMeshInit(mesh: any, workspace: string, detected: CLIInfo[], options?: RunMeshInitOptions): RunMeshInitResult;
|
|
@@ -1,4 +1,24 @@
|
|
|
1
|
-
import type { AppendRemoteLedgerResult,
|
|
1
|
+
import type { AppendRemoteLedgerResult, MeshLedgerSummary } from './mesh-ledger.js';
|
|
2
|
+
/** Minimal ledger slice shape accepted by buildMeshLedgerReplicaEvidence. Covers both JSONL and SQLite slices. */
|
|
3
|
+
export interface AnyLedgerSlice {
|
|
4
|
+
entries: Array<{
|
|
5
|
+
id: string;
|
|
6
|
+
meshId: string;
|
|
7
|
+
timestamp: string;
|
|
8
|
+
kind: string;
|
|
9
|
+
nodeId?: string | null;
|
|
10
|
+
sessionId?: string | null;
|
|
11
|
+
providerType?: string | null;
|
|
12
|
+
payload: unknown;
|
|
13
|
+
}>;
|
|
14
|
+
cursor: {
|
|
15
|
+
afterId: string | null;
|
|
16
|
+
nextAfterId: string | null;
|
|
17
|
+
limit: number;
|
|
18
|
+
hasMore: boolean;
|
|
19
|
+
};
|
|
20
|
+
summary?: MeshLedgerSummary;
|
|
21
|
+
}
|
|
2
22
|
export type MeshLedgerReplicaStatus = 'local' | 'queried' | 'imported' | 'failed';
|
|
3
23
|
export interface MeshLedgerReplicaEvidence {
|
|
4
24
|
nodeId: string;
|
|
@@ -22,9 +42,8 @@ export interface MeshLedgerReconciliationEvidence {
|
|
|
22
42
|
meshId: string;
|
|
23
43
|
generatedAt: string;
|
|
24
44
|
sourceOfTruth: {
|
|
25
|
-
kind: '
|
|
45
|
+
kind: 'coordinator_local_sqlite';
|
|
26
46
|
p2pOnly: true;
|
|
27
|
-
cloudD1LedgerSync: false;
|
|
28
47
|
notes: string;
|
|
29
48
|
};
|
|
30
49
|
replicas: MeshLedgerReplicaEvidence[];
|
|
@@ -47,7 +66,7 @@ export declare function buildMeshLedgerReplicaEvidence(args: {
|
|
|
47
66
|
nodeId: string;
|
|
48
67
|
daemonId?: string;
|
|
49
68
|
transport: 'local' | 'p2p_datachannel';
|
|
50
|
-
slice?:
|
|
69
|
+
slice?: AnyLedgerSlice;
|
|
51
70
|
importResult?: AppendRemoteLedgerResult;
|
|
52
71
|
status?: MeshLedgerReplicaStatus;
|
|
53
72
|
error?: string;
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
* Safety: mode 0o600, atomic append via appendFileSync
|
|
14
14
|
*/
|
|
15
15
|
import { EventEmitter } from 'events';
|
|
16
|
-
|
|
16
|
+
import { MeshRuntimeStore } from './mesh-runtime-store.js';
|
|
17
|
+
export type MeshLedgerKind = 'task_dispatched' | 'task_completed' | 'task_failed' | 'task_stalled' | 'task_approval_needed' | 'p2p_dispatch_failed' | 'session_launched' | 'session_auto_launch' | 'session_stopped' | 'checkpoint_created' | 'node_cloned' | 'node_joined' | 'node_removed' | 'coordinator_started' | 'recovery_attempted' | 'ledger_replicated' | 'ledger_reconciled' | 'direct_fast_forward' | 'delivery_unroutable' | 'direct_dispatch_pruned' | 'event_held' | 'task_reclaimed' | 'coordinator_operating_note' | 'mission_created' | 'mission_status_changed' | 'mission_goal_updated' | 'magi_dispatched' | 'magi_synthesis';
|
|
17
18
|
export interface MeshLedgerEntry {
|
|
18
19
|
id: string;
|
|
19
20
|
meshId: string;
|
|
@@ -25,6 +26,40 @@ export interface MeshLedgerEntry {
|
|
|
25
26
|
payload: Record<string, unknown>;
|
|
26
27
|
}
|
|
27
28
|
export declare function isIntentionalCleanupStopEntry(entry: Pick<MeshLedgerEntry, 'kind' | 'payload'>): boolean;
|
|
29
|
+
export type MeshWorkerResultStatus = 'completed' | 'failed' | 'blocked' | 'partial' | 'unknown';
|
|
30
|
+
export type MeshProcessArtifactKind = 'process' | 'log' | 'port' | 'window' | 'session' | 'file' | 'url' | 'other';
|
|
31
|
+
export interface MeshValidationResultArtifact {
|
|
32
|
+
command?: string;
|
|
33
|
+
status: 'passed' | 'failed' | 'skipped' | 'unknown';
|
|
34
|
+
durationMs?: number;
|
|
35
|
+
outputPath?: string;
|
|
36
|
+
summary?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface MeshProcessArtifact {
|
|
39
|
+
kind: MeshProcessArtifactKind;
|
|
40
|
+
id?: string;
|
|
41
|
+
label?: string;
|
|
42
|
+
locator?: string;
|
|
43
|
+
pid?: number;
|
|
44
|
+
port?: number;
|
|
45
|
+
url?: string;
|
|
46
|
+
path?: string;
|
|
47
|
+
sessionId?: string;
|
|
48
|
+
keepRunning?: boolean;
|
|
49
|
+
metadata?: Record<string, unknown>;
|
|
50
|
+
}
|
|
51
|
+
export interface MeshWorkerResultArtifact {
|
|
52
|
+
status: MeshWorkerResultStatus;
|
|
53
|
+
classification?: string;
|
|
54
|
+
changedFiles: string[];
|
|
55
|
+
validationResults: MeshValidationResultArtifact[];
|
|
56
|
+
gitStatus?: Record<string, unknown>;
|
|
57
|
+
processArtifacts: MeshProcessArtifact[];
|
|
58
|
+
errors: string[];
|
|
59
|
+
nextAction?: string;
|
|
60
|
+
requiresUserAction: boolean;
|
|
61
|
+
source: 'explicit_metadata' | 'final_summary_json' | 'parseable_answer' | 'default';
|
|
62
|
+
}
|
|
28
63
|
export interface MeshTaskCompletionEvidence {
|
|
29
64
|
source: 'agent_status_event';
|
|
30
65
|
event: 'agent:generating_completed' | 'agent:ready';
|
|
@@ -38,6 +73,7 @@ export interface MeshTaskCompletionEvidence {
|
|
|
38
73
|
providerSessionId?: string;
|
|
39
74
|
finalSummaryAvailable: boolean;
|
|
40
75
|
};
|
|
76
|
+
workerResult: MeshWorkerResultArtifact;
|
|
41
77
|
git: {
|
|
42
78
|
status: 'deferred';
|
|
43
79
|
reason: string;
|
|
@@ -59,6 +95,7 @@ export interface BuildTaskCompletionEvidenceOptions {
|
|
|
59
95
|
providerType?: string;
|
|
60
96
|
providerSessionId?: string;
|
|
61
97
|
finalSummary?: string;
|
|
98
|
+
workerResult?: Record<string, unknown>;
|
|
62
99
|
completedAt?: string;
|
|
63
100
|
}
|
|
64
101
|
export interface MeshLedgerSummary {
|
|
@@ -115,6 +152,27 @@ export interface AppendRemoteLedgerResult {
|
|
|
115
152
|
}
|
|
116
153
|
export declare const MAX_LEDGER_SLICE_LIMIT = 500;
|
|
117
154
|
export declare function getLedgerDir(): string;
|
|
155
|
+
/**
|
|
156
|
+
* Footer to append to worker task messages so workers output structured results
|
|
157
|
+
* that the daemon parses via extractJsonObjectFromSummary / normalizeMeshWorkerResult.
|
|
158
|
+
*
|
|
159
|
+
* Usage: append buildWorkerTaskFooter() to the task message in mesh_send_task /
|
|
160
|
+
* mesh_enqueue_task. The coordinator prompt rules instruct coordinators to do this.
|
|
161
|
+
*/
|
|
162
|
+
export declare function buildWorkerTaskFooter(): string;
|
|
163
|
+
/**
|
|
164
|
+
* Compact the active ledger file for a mesh by moving old terminal entries
|
|
165
|
+
* (task_completed, task_failed, task_stalled, recovery_attempted older than 7 days)
|
|
166
|
+
* to <meshId>.archive.jsonl, keeping the active file lean.
|
|
167
|
+
*
|
|
168
|
+
* Non-terminal entries (dispatch, sessions, node lifecycle) are always retained.
|
|
169
|
+
* Called automatically from appendLedgerEntry when the file exceeds COMPACT_THRESHOLD_BYTES.
|
|
170
|
+
*/
|
|
171
|
+
export declare function compactLedger(meshId: string): {
|
|
172
|
+
archivedCount: number;
|
|
173
|
+
retainedCount: number;
|
|
174
|
+
};
|
|
175
|
+
export declare function normalizeMeshWorkerResult(input?: Record<string, unknown>, source?: MeshWorkerResultArtifact['source']): MeshWorkerResultArtifact;
|
|
118
176
|
export declare function buildTaskCompletionEvidence(opts: BuildTaskCompletionEvidenceOptions): MeshTaskCompletionEvidence;
|
|
119
177
|
/**
|
|
120
178
|
* Append a new entry to the mesh ledger.
|
|
@@ -127,8 +185,16 @@ export declare function appendLedgerEntry(meshId: string, partial: Omit<MeshLedg
|
|
|
127
185
|
* This skips deduplicated entries and rejects malformed/cross-mesh entries.
|
|
128
186
|
*/
|
|
129
187
|
export declare function appendRemoteLedgerEntries(meshId: string, entries: MeshLedgerEntry[]): AppendRemoteLedgerResult;
|
|
188
|
+
/**
|
|
189
|
+
* Test helper: clear all runtime ledger state for a mesh — SQLite rows, read
|
|
190
|
+
* cache, and the one-time import flag. JSONL files are the caller's concern.
|
|
191
|
+
*/
|
|
192
|
+
export declare function __clearMeshLedgerForTests(meshId: string): void;
|
|
130
193
|
/**
|
|
131
194
|
* Read ledger entries with optional filtering.
|
|
195
|
+
* G2: SQLite (mesh_event_ledger) is the primary read path; legacy JSONL is
|
|
196
|
+
* imported once per store instance and otherwise retained as an
|
|
197
|
+
* export/import/debug artifact only.
|
|
132
198
|
*/
|
|
133
199
|
export declare function readLedgerEntries(meshId: string, opts?: ReadLedgerOptions): MeshLedgerEntry[];
|
|
134
200
|
/**
|
|
@@ -137,6 +203,16 @@ export declare function readLedgerEntries(meshId: string, opts?: ReadLedgerOptio
|
|
|
137
203
|
* remote daemons on demand without Cloud/D1 becoming a ledger data-plane.
|
|
138
204
|
*/
|
|
139
205
|
export declare function readLedgerSlice(meshId: string, opts?: ReadLedgerSliceOptions): MeshLedgerSlice;
|
|
206
|
+
/**
|
|
207
|
+
* G4: Read a bounded ledger slice from the SQLite mesh_event_ledger table.
|
|
208
|
+
* This is the preferred P2P reconcile read path; JSONL files are retained as
|
|
209
|
+
* export/import/debug/legacy artifacts only.
|
|
210
|
+
*
|
|
211
|
+
* Returns a shape structurally compatible with MeshLedgerSlice (minus the
|
|
212
|
+
* JSONL-specific `summary` and `sourceOfTruth.path` fields) so callers can
|
|
213
|
+
* pass it to buildMeshLedgerReplicaEvidence without modification.
|
|
214
|
+
*/
|
|
215
|
+
export declare function readLedgerSliceFromStore(meshId: string, opts?: ReadLedgerSliceOptions): ReturnType<typeof MeshRuntimeStore.prototype.readLedgerSlice>;
|
|
140
216
|
/**
|
|
141
217
|
* Get a summary of mesh activity from the ledger.
|
|
142
218
|
*/
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { MeshLedgerEntry } from './mesh-ledger.js';
|
|
2
|
+
import type { MagiGitSkew } from '@adhdev/mesh-shared';
|
|
3
|
+
export type MeshMagiActivityStatus = 'running' | 'synthesized';
|
|
4
|
+
/** A bounded needs_verification preview item (claim text + category only). */
|
|
5
|
+
export interface MeshMagiNeedsVerificationItem {
|
|
6
|
+
claim: string;
|
|
7
|
+
category: string;
|
|
8
|
+
}
|
|
9
|
+
export interface MeshMagiActivitySummary {
|
|
10
|
+
consensusGroupId: string;
|
|
11
|
+
status: MeshMagiActivityStatus;
|
|
12
|
+
missionId?: string;
|
|
13
|
+
panel?: string;
|
|
14
|
+
question?: string;
|
|
15
|
+
replicaCount?: number;
|
|
16
|
+
answered?: number;
|
|
17
|
+
missing?: number;
|
|
18
|
+
staleReplicas?: number;
|
|
19
|
+
needsVerificationCount?: number;
|
|
20
|
+
agreedCount?: number;
|
|
21
|
+
independenceBanner?: string | null;
|
|
22
|
+
gitSkew?: MagiGitSkew;
|
|
23
|
+
/** Bounded sample of the needs_verification clusters (claim + category). */
|
|
24
|
+
needsVerification?: MeshMagiNeedsVerificationItem[];
|
|
25
|
+
openQuestions?: string[];
|
|
26
|
+
lastLedgerKind?: string;
|
|
27
|
+
lastUpdatedAt?: string;
|
|
28
|
+
}
|
|
29
|
+
/** Cap on inlined needs_verification preview items per group (keeps the payload bounded). */
|
|
30
|
+
export declare const MAGI_NEEDS_VERIFICATION_PREVIEW_CAP = 8;
|
|
31
|
+
/**
|
|
32
|
+
* Reconstruct per-consensusGroup MAGI activity from a ledger window. The newest
|
|
33
|
+
* `magi_synthesis` for a group supplies the synthesis fields; a `magi_dispatched`
|
|
34
|
+
* with no later synthesis stays `running`. Deduped by consensusGroupId, newest first.
|
|
35
|
+
*/
|
|
36
|
+
export declare function buildMeshMagiActivity(args: {
|
|
37
|
+
meshId?: string;
|
|
38
|
+
ledgerEntries?: MeshLedgerEntry[];
|
|
39
|
+
}): MeshMagiActivitySummary[];
|
|
40
|
+
/** Synthesized groups older than this (relative to the newest activity in the set) are
|
|
41
|
+
* folded out of the active list — already-resolved historical runs that should not keep
|
|
42
|
+
* inflating mesh_status. 6h covers a long working session. */
|
|
43
|
+
export declare const STALE_MAGI_WINDOW_MS: number;
|
|
44
|
+
/** Cap on recent synthesized groups kept in the active list even if all are fresh. */
|
|
45
|
+
export declare const RECENT_MAGI_CAP = 6;
|
|
46
|
+
export interface MeshMagiActivitySummaryFold {
|
|
47
|
+
total: number;
|
|
48
|
+
byStatus: Record<string, number>;
|
|
49
|
+
/** Synthesized groups dropped from the active list as stale historical residue. */
|
|
50
|
+
staleSynthesized: number;
|
|
51
|
+
/** Bounded set of recent/active groups (running first, then recent synthesized). */
|
|
52
|
+
groups: MeshMagiActivitySummary[];
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Bound the MAGI activity list for mesh_status: running groups are always kept; synthesized
|
|
56
|
+
* groups are kept only when recent (within STALE_MAGI_WINDOW_MS of the newest activity AND
|
|
57
|
+
* among the RECENT_MAGI_CAP most-recent). Freshness is measured relative to the newest group
|
|
58
|
+
* (not wall-clock) so the result is deterministic for a given input. Mirrors
|
|
59
|
+
* summarizeMeshAsyncRefineJobs.
|
|
60
|
+
*/
|
|
61
|
+
export declare function summarizeMeshMagiActivity(activity: MeshMagiActivitySummary[]): MeshMagiActivitySummaryFold;
|
|
62
|
+
/** Latest persisted synthesis activity for one consensusGroupId, or undefined. */
|
|
63
|
+
export declare function getMeshMagiActivityByGroup(ledgerEntries: MeshLedgerEntry[], consensusGroupId: string): MeshMagiActivitySummary | undefined;
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M3: Mission persistence (minimal form).
|
|
3
|
+
*
|
|
4
|
+
* A mission is a persistent record of a multi-task goal so the plan lives in
|
|
5
|
+
* the system rather than in the coordinator LLM's context. Coordinator
|
|
6
|
+
* sessions can die or compact; a new coordinator reads the mission back at
|
|
7
|
+
* launch and continues.
|
|
8
|
+
*
|
|
9
|
+
* Explicit non-goals (see docs/mesh-product-plan-v2.md Phase M3): this is not
|
|
10
|
+
* a workflow engine and there is no automatic takeover daemon. Progress is
|
|
11
|
+
* never stored — it is derived from queue task statuses (mission_id) at
|
|
12
|
+
* query time.
|
|
13
|
+
*/
|
|
14
|
+
import { type MeshMissionStats } from './mesh-task-stats.js';
|
|
15
|
+
export type MeshMissionStatus = 'active' | 'paused' | 'completed' | 'abandoned';
|
|
16
|
+
export declare const MESH_MISSION_STATUSES: MeshMissionStatus[];
|
|
17
|
+
/**
|
|
18
|
+
* Provenance of a mission. `magi` marks an inline mission auto-created by a
|
|
19
|
+
* mesh_magi_review fan-out (one per cross-verification run). `coordinator` (the
|
|
20
|
+
* default semantic for an unstamped/legacy mission) marks a coordinator- or
|
|
21
|
+
* user-authored mission. Used to bound the accumulation of completed MAGI missions
|
|
22
|
+
* out of the default mesh_mission_list surface — see listMeshMissionSummaries.
|
|
23
|
+
*/
|
|
24
|
+
export type MeshMissionSource = 'magi' | 'coordinator';
|
|
25
|
+
export interface MeshMissionRecord {
|
|
26
|
+
id: string;
|
|
27
|
+
meshId: string;
|
|
28
|
+
title: string;
|
|
29
|
+
goal: string;
|
|
30
|
+
status: MeshMissionStatus;
|
|
31
|
+
/**
|
|
32
|
+
* Optional provenance tag. Absent on missions created before this field existed
|
|
33
|
+
* and on coordinator/user missions that don't bother stamping it — both are
|
|
34
|
+
* treated as coordinator missions (never auto-hidden). Only explicit `magi`
|
|
35
|
+
* missions are bounded out of the default list once completed.
|
|
36
|
+
*/
|
|
37
|
+
source?: MeshMissionSource;
|
|
38
|
+
createdAt: string;
|
|
39
|
+
updatedAt: string;
|
|
40
|
+
}
|
|
41
|
+
export interface MeshMissionTaskAggregate {
|
|
42
|
+
total: number;
|
|
43
|
+
pending: number;
|
|
44
|
+
assigned: number;
|
|
45
|
+
completed: number;
|
|
46
|
+
failed: number;
|
|
47
|
+
cancelled: number;
|
|
48
|
+
/** Pending tasks held back by a dependency failure (blockedReason set). */
|
|
49
|
+
blocked: number;
|
|
50
|
+
/** Latest updatedAt across the mission's tasks, or null with no tasks. */
|
|
51
|
+
lastActivityAt: string | null;
|
|
52
|
+
}
|
|
53
|
+
export interface MeshMissionSummary extends MeshMissionRecord {
|
|
54
|
+
tasks: MeshMissionTaskAggregate;
|
|
55
|
+
/**
|
|
56
|
+
* Operational rollup (durations / attempts) derived from the ledger via
|
|
57
|
+
* computeMeshMissionStats. Optional: only populated by surfaces that opt in
|
|
58
|
+
* (e.g. mesh_status), since the rollup scans a bounded ledger tail per
|
|
59
|
+
* mission. Absent on the lightweight task-aggregate-only summaries.
|
|
60
|
+
*/
|
|
61
|
+
stats?: MeshMissionStats;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Slim mission summary for the mesh_status compact (default) surface. Drops the
|
|
65
|
+
* full `goal` text — which can be hundreds of chars per mission and is repeated
|
|
66
|
+
* for every mission on every status call — keeping only a short preview plus a
|
|
67
|
+
* `goalTruncated` flag when the original was longer. The stored goal is never
|
|
68
|
+
* mutated; this is an output-only projection. Coordinators that need the full
|
|
69
|
+
* goal call mesh_status with verbose=true, or read the mission directly via
|
|
70
|
+
* mesh_mission_upsert / getMeshMission.
|
|
71
|
+
*/
|
|
72
|
+
export interface MeshMissionSlimSummary extends Omit<MeshMissionSummary, 'goal'> {
|
|
73
|
+
/** Short preview of the goal (≤ GOAL_PREVIEW_MAX chars), '' when goal empty. */
|
|
74
|
+
goalPreview: string;
|
|
75
|
+
/** True when the stored goal was longer than the preview (full text elided). */
|
|
76
|
+
goalTruncated: boolean;
|
|
77
|
+
}
|
|
78
|
+
/** Max chars of goal text retained in the slim (compact) mission summary. */
|
|
79
|
+
export declare const GOAL_PREVIEW_MAX = 120;
|
|
80
|
+
/**
|
|
81
|
+
* Shorter goal preview used by the mesh_status compact (LLM coordinator) surface.
|
|
82
|
+
* The coordinator only needs to recognize a mission, not read its full goal, and
|
|
83
|
+
* mesh_status repeats every live mission on every poll — so the status preview is
|
|
84
|
+
* tighter than the dashboard / mesh_mission_list preview (GOAL_PREVIEW_MAX).
|
|
85
|
+
*/
|
|
86
|
+
export declare const COMPACT_STATUS_GOAL_PREVIEW_MAX = 80;
|
|
87
|
+
export declare function upsertMeshMission(meshId: string, input: {
|
|
88
|
+
id?: string;
|
|
89
|
+
title: string;
|
|
90
|
+
goal?: string;
|
|
91
|
+
status?: string;
|
|
92
|
+
source?: MeshMissionSource;
|
|
93
|
+
}): MeshMissionRecord;
|
|
94
|
+
export declare function getMeshMissions(meshId: string, statuses?: MeshMissionStatus[]): MeshMissionRecord[];
|
|
95
|
+
export declare function getMeshMission(meshId: string, missionId: string): MeshMissionRecord | null;
|
|
96
|
+
/** Aggregate task statuses for a mission at query time (no stored progress). */
|
|
97
|
+
export declare function summarizeMissionTasks(meshId: string, missionId: string): MeshMissionTaskAggregate;
|
|
98
|
+
export declare function summarizeMeshMission(meshId: string, mission: MeshMissionRecord): MeshMissionSummary;
|
|
99
|
+
/** Active mission summaries for mesh_status / coordinator prompt injection. */
|
|
100
|
+
export declare function getActiveMeshMissionSummaries(meshId: string): MeshMissionSummary[];
|
|
101
|
+
/**
|
|
102
|
+
* Mission summaries for the mesh_status dashboard surface: every active/paused
|
|
103
|
+
* mission plus a capped, newest-first slice of completed/abandoned history so
|
|
104
|
+
* the dashboard can render a collapsible "history" section without unbounded
|
|
105
|
+
* payload growth. Returned newest-first within each group (active/paused first,
|
|
106
|
+
* then history), so the frontend can split on `status` directly.
|
|
107
|
+
*
|
|
108
|
+
* Compact mode (the default) elides each mission's full `goal` text — which is
|
|
109
|
+
* repeated verbatim on every status poll and dominates the payload when a mesh
|
|
110
|
+
* has many missions — returning only a short `goalPreview` + `goalTruncated`
|
|
111
|
+
* flag. Pass `verbose: true` to get the full `goal` text per mission. The stored
|
|
112
|
+
* goal is untouched in both modes; this is an output-only projection.
|
|
113
|
+
*/
|
|
114
|
+
export declare function getMeshStatusMissionSummaries(meshId: string, options?: {
|
|
115
|
+
historyLimit?: number;
|
|
116
|
+
verbose?: boolean;
|
|
117
|
+
withStats?: boolean;
|
|
118
|
+
}): MeshMissionSummary[] | MeshMissionSlimSummary[];
|
|
119
|
+
/** Folded completed/abandoned history for the mesh_status compact surface. */
|
|
120
|
+
export interface MeshStatusMissionsHistoryFold {
|
|
121
|
+
/** Total completed + abandoned missions. */
|
|
122
|
+
count: number;
|
|
123
|
+
/** Count by lifecycle status (e.g. { completed, abandoned }). */
|
|
124
|
+
byStatus: Record<string, number>;
|
|
125
|
+
/** Newest-first id list (capped) so each folded mission stays addressable. */
|
|
126
|
+
missionIds: string[];
|
|
127
|
+
note: string;
|
|
128
|
+
}
|
|
129
|
+
/** Compact mesh_status mission projection: live detail + folded history. */
|
|
130
|
+
export interface MeshStatusMissionsCompact {
|
|
131
|
+
/**
|
|
132
|
+
* Active + paused missions, goal-elided to COMPACT_STATUS_GOAL_PREVIEW_MAX and
|
|
133
|
+
* WITHOUT the operational `stats` rollup — the `tasks` aggregate already carries
|
|
134
|
+
* progress, and stats (durations/retries) is a verbose/dashboard concern.
|
|
135
|
+
*/
|
|
136
|
+
live: MeshMissionSlimSummary[];
|
|
137
|
+
/** Completed + abandoned missions folded to counts + ids; null when none. */
|
|
138
|
+
historyFold: MeshStatusMissionsHistoryFold | null;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Mission projection for the mesh_status COMPACT (LLM coordinator) surface.
|
|
142
|
+
*
|
|
143
|
+
* Unlike getMeshStatusMissionSummaries (which emits every live mission plus a
|
|
144
|
+
* capped slice of full-detail history, each carrying a stats rollup), this keeps
|
|
145
|
+
* per-mission detail ONLY for live (active/paused) missions and folds the whole
|
|
146
|
+
* completed/abandoned history into a counts + id-list summary. Combined with the
|
|
147
|
+
* tighter goal preview and dropped stats, this is what keeps the compact
|
|
148
|
+
* mesh_status payload bounded as a mesh accumulates missions — the missions
|
|
149
|
+
* section previously dominated the payload (full goalPreview + tasks + stats per
|
|
150
|
+
* mission, for every live mission and up to 10 history missions, on every poll).
|
|
151
|
+
*
|
|
152
|
+
* The stored missions are untouched; this is an output-only projection. Full
|
|
153
|
+
* mission detail (goal text + stats + history) stays available via
|
|
154
|
+
* mesh_status verbose=true or mesh_mission_list.
|
|
155
|
+
*/
|
|
156
|
+
export declare function getMeshStatusMissionsCompact(meshId: string, options?: {
|
|
157
|
+
previewMax?: number;
|
|
158
|
+
historyIdLimit?: number;
|
|
159
|
+
}): MeshStatusMissionsCompact;
|
|
160
|
+
/**
|
|
161
|
+
* Read-only mission listing for the mesh_mission_list tool. Returns summaries
|
|
162
|
+
* (record + live task aggregate) for missions matching `statuses` — or every
|
|
163
|
+
* mission when `statuses` is omitted/empty — newest-first by updatedAt. Unlike
|
|
164
|
+
* getMeshStatusMissionSummaries this does NOT cap or group by lifecycle, so a
|
|
165
|
+
* coordinator can deliberately surface paused/abandoned/completed missions that
|
|
166
|
+
* the live status view would hide or truncate.
|
|
167
|
+
*
|
|
168
|
+
* MAGI bounding: by default this EXCLUDES completed MAGI missions (source==='magi'
|
|
169
|
+
* && status==='completed') — a mesh_magi_review fan-out auto-creates one inline
|
|
170
|
+
* mission per run and auto-closes it on collection, so without this they accumulate
|
|
171
|
+
* unbounded and drown out coordinator missions in the list. In-progress MAGI missions
|
|
172
|
+
* (active/paused) are still shown so a running cross-verification stays visible. Pass
|
|
173
|
+
* `includeMagi: true` to return every mission including completed MAGI ones. A mission
|
|
174
|
+
* with no `source` (legacy / coordinator) is never affected.
|
|
175
|
+
*
|
|
176
|
+
* Compact (the default) elides each goal to a capped preview + goalTruncated
|
|
177
|
+
* flag; verbose returns the full goal text. The stored goal is never mutated.
|
|
178
|
+
*/
|
|
179
|
+
export declare function listMeshMissionSummaries(meshId: string, options?: {
|
|
180
|
+
statuses?: MeshMissionStatus[];
|
|
181
|
+
verbose?: boolean;
|
|
182
|
+
includeMagi?: boolean;
|
|
183
|
+
}): MeshMissionSummary[] | MeshMissionSlimSummary[];
|
|
184
|
+
/**
|
|
185
|
+
* M3-3: render active missions as a prompt section for {{mission}}.
|
|
186
|
+
* Empty string when no active mission — the prompt stays byte-identical to
|
|
187
|
+
* the pre-M3 output in that case (regression guarantee).
|
|
188
|
+
*/
|
|
189
|
+
export declare function buildMissionPromptSection(meshId: string): string;
|