@elie-laloum/outpost 5.0.0 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +54 -0
- package/README.md +11 -11
- package/SECURITY.md +10 -0
- package/dist/adapters/agents/antigravity-adapter.d.ts +3 -0
- package/dist/adapters/agents/antigravity-adapter.js +41 -0
- package/dist/adapters/agents/antigravity-adapter.js.map +1 -0
- package/dist/adapters/agents/antigravity-authentication.d.ts +2 -0
- package/dist/adapters/agents/antigravity-authentication.js +27 -0
- package/dist/adapters/agents/antigravity-authentication.js.map +1 -0
- package/dist/adapters/agents/antigravity-diagnostics.d.ts +1 -0
- package/dist/adapters/agents/antigravity-diagnostics.js +6 -0
- package/dist/adapters/agents/antigravity-diagnostics.js.map +1 -0
- package/dist/adapters/agents/antigravity-events.d.ts +2 -0
- package/dist/adapters/agents/antigravity-events.js +75 -0
- package/dist/adapters/agents/antigravity-events.js.map +1 -0
- package/dist/adapters/agents/antigravity-request.d.ts +5 -0
- package/dist/adapters/agents/antigravity-request.js +37 -0
- package/dist/adapters/agents/antigravity-request.js.map +1 -0
- package/dist/adapters/agents/antigravity.constants.d.ts +3 -0
- package/dist/adapters/agents/antigravity.constants.js +4 -0
- package/dist/adapters/agents/antigravity.constants.js.map +1 -0
- package/dist/adapters/agents/{gemini.types.d.ts → antigravity.types.d.ts} +2 -2
- package/dist/adapters/agents/antigravity.types.js +2 -0
- package/dist/adapters/agents/antigravity.types.js.map +1 -0
- package/dist/adapters/agents/authentication.constants.d.ts +19 -9
- package/dist/adapters/agents/authentication.constants.js +12 -9
- package/dist/adapters/agents/authentication.constants.js.map +1 -1
- package/dist/adapters/agents/authentication.d.ts +11 -2
- package/dist/adapters/agents/authentication.js +70 -47
- package/dist/adapters/agents/authentication.js.map +1 -1
- package/dist/adapters/agents/authentication.types.d.ts +20 -0
- package/dist/adapters/agents/authentication.types.js +2 -0
- package/dist/adapters/agents/authentication.types.js.map +1 -0
- package/dist/adapters/agents/claude-adapter.js +4 -2
- package/dist/adapters/agents/claude-adapter.js.map +1 -1
- package/dist/adapters/agents/claude-authentication.d.ts +2 -0
- package/dist/adapters/agents/claude-authentication.js +34 -0
- package/dist/adapters/agents/claude-authentication.js.map +1 -0
- package/dist/adapters/agents/claude-events.js +52 -9
- package/dist/adapters/agents/claude-events.js.map +1 -1
- package/dist/adapters/agents/claude-request.js +2 -0
- package/dist/adapters/agents/claude-request.js.map +1 -1
- package/dist/adapters/agents/cli-diagnostics.constants.d.ts +6 -6
- package/dist/adapters/agents/cli-diagnostics.constants.js +6 -6
- package/dist/adapters/agents/cli-diagnostics.constants.js.map +1 -1
- package/dist/adapters/agents/cli-diagnostics.d.ts +1 -0
- package/dist/adapters/agents/cli-diagnostics.js +18 -0
- package/dist/adapters/agents/cli-diagnostics.js.map +1 -1
- package/dist/adapters/agents/codex-adapter.js +4 -2
- package/dist/adapters/agents/codex-adapter.js.map +1 -1
- package/dist/adapters/agents/codex-authentication.d.ts +3 -0
- package/dist/adapters/agents/codex-authentication.js +47 -0
- package/dist/adapters/agents/codex-authentication.js.map +1 -0
- package/dist/adapters/agents/codex-events.js +28 -2
- package/dist/adapters/agents/codex-events.js.map +1 -1
- package/dist/adapters/agents/copilot-adapter.d.ts +3 -0
- package/dist/adapters/agents/copilot-adapter.js +45 -0
- package/dist/adapters/agents/copilot-adapter.js.map +1 -0
- package/dist/adapters/agents/copilot-authentication.d.ts +2 -0
- package/dist/adapters/agents/copilot-authentication.js +46 -0
- package/dist/adapters/agents/copilot-authentication.js.map +1 -0
- package/dist/adapters/agents/copilot-diagnostics.d.ts +1 -0
- package/dist/adapters/agents/copilot-diagnostics.js +6 -0
- package/dist/adapters/agents/copilot-diagnostics.js.map +1 -0
- package/dist/adapters/agents/copilot-events.d.ts +2 -0
- package/dist/adapters/agents/copilot-events.js +66 -0
- package/dist/adapters/agents/copilot-events.js.map +1 -0
- package/dist/adapters/agents/copilot-request.d.ts +5 -0
- package/dist/adapters/agents/copilot-request.js +24 -0
- package/dist/adapters/agents/copilot-request.js.map +1 -0
- package/dist/adapters/agents/copilot-usage.d.ts +3 -0
- package/dist/adapters/agents/copilot-usage.js +19 -0
- package/dist/adapters/agents/copilot-usage.js.map +1 -0
- package/dist/adapters/agents/copilot.types.d.ts +6 -0
- package/dist/adapters/agents/copilot.types.js +2 -0
- package/dist/adapters/agents/copilot.types.js.map +1 -0
- package/dist/adapters/agents/event-decoder.d.ts +2 -2
- package/dist/adapters/agents/event-decoder.js +6 -5
- package/dist/adapters/agents/event-decoder.js.map +1 -1
- package/dist/adapters/agents/kimi-adapter.d.ts +3 -0
- package/dist/adapters/agents/kimi-adapter.js +51 -0
- package/dist/adapters/agents/kimi-adapter.js.map +1 -0
- package/dist/adapters/agents/kimi-authentication.d.ts +3 -0
- package/dist/adapters/agents/kimi-authentication.js +63 -0
- package/dist/adapters/agents/kimi-authentication.js.map +1 -0
- package/dist/adapters/agents/kimi-diagnostics.d.ts +2 -0
- package/dist/adapters/agents/kimi-diagnostics.js +14 -0
- package/dist/adapters/agents/kimi-diagnostics.js.map +1 -0
- package/dist/adapters/agents/kimi-events.d.ts +2 -0
- package/dist/adapters/agents/kimi-events.js +55 -0
- package/dist/adapters/agents/kimi-events.js.map +1 -0
- package/dist/adapters/agents/kimi-fork.d.ts +2 -0
- package/dist/adapters/agents/kimi-fork.js +11 -0
- package/dist/adapters/agents/kimi-fork.js.map +1 -0
- package/dist/adapters/agents/{gemini-request.d.ts → kimi-request.d.ts} +2 -2
- package/dist/adapters/agents/kimi-request.js +33 -0
- package/dist/adapters/agents/kimi-request.js.map +1 -0
- package/dist/adapters/agents/kimi-usage.d.ts +2 -0
- package/dist/adapters/agents/kimi-usage.js +7 -0
- package/dist/adapters/agents/kimi-usage.js.map +1 -0
- package/dist/adapters/agents/kimi.constants.d.ts +13 -0
- package/dist/adapters/agents/kimi.constants.js +14 -0
- package/dist/adapters/agents/kimi.constants.js.map +1 -0
- package/dist/adapters/agents/kimi.types.d.ts +7 -0
- package/dist/adapters/agents/kimi.types.js +2 -0
- package/dist/adapters/agents/kimi.types.js.map +1 -0
- package/dist/adapters/agents/model-support.constants.d.ts +3 -1
- package/dist/adapters/agents/model-support.constants.js +12 -2
- package/dist/adapters/agents/model-support.constants.js.map +1 -1
- package/dist/adapters/agents/protocol-fixtures.constants.d.ts +2 -2
- package/dist/adapters/agents/protocol-fixtures.constants.js +131 -9
- package/dist/adapters/agents/protocol-fixtures.constants.js.map +1 -1
- package/dist/adapters/agents/protocol-fixtures.types.d.ts +1 -0
- package/dist/adapters/agents/protocol-fixtures.types.js.map +1 -1
- package/dist/adapters/agents/protocol.d.ts +1 -0
- package/dist/adapters/agents/protocol.js +9 -0
- package/dist/adapters/agents/protocol.js.map +1 -1
- package/dist/adapters/agents/session-usage.constants.d.ts +10 -0
- package/dist/adapters/agents/session-usage.constants.js +110 -0
- package/dist/adapters/agents/session-usage.constants.js.map +1 -0
- package/dist/adapters/agents/session-usage.d.ts +5 -0
- package/dist/adapters/agents/session-usage.js +45 -0
- package/dist/adapters/agents/session-usage.js.map +1 -0
- package/dist/adapters/agents/settings.types.d.ts +1 -0
- package/dist/adapters/agents/settings.types.js.map +1 -1
- package/dist/adapters/agents/tool-result.d.ts +2 -0
- package/dist/adapters/agents/tool-result.js +17 -0
- package/dist/adapters/agents/tool-result.js.map +1 -0
- package/dist/adapters/models/anthropic-response.js +3 -0
- package/dist/adapters/models/anthropic-response.js.map +1 -1
- package/dist/adapters/models/http-provider.js +6 -1
- package/dist/adapters/models/http-provider.js.map +1 -1
- package/dist/adapters/models/openai-responses.js +10 -0
- package/dist/adapters/models/openai-responses.js.map +1 -1
- package/dist/adapters/models/retry-after.d.ts +1 -0
- package/dist/adapters/models/retry-after.js +16 -0
- package/dist/adapters/models/retry-after.js.map +1 -0
- package/dist/application/activity-watchdog.js +1 -2
- package/dist/application/activity-watchdog.js.map +1 -1
- package/dist/application/agent-authentication.d.ts +4 -0
- package/dist/application/agent-authentication.js +32 -0
- package/dist/application/agent-authentication.js.map +1 -0
- package/dist/application/agent-bootstrap.constants.d.ts +2 -5
- package/dist/application/agent-bootstrap.constants.js +27 -4
- package/dist/application/agent-bootstrap.constants.js.map +1 -1
- package/dist/application/agent-bootstrap.js +39 -12
- package/dist/application/agent-bootstrap.js.map +1 -1
- package/dist/application/agent-bootstrap.types.d.ts +19 -0
- package/dist/application/agent-bootstrap.types.js +2 -0
- package/dist/application/agent-bootstrap.types.js.map +1 -0
- package/dist/application/agent-output.js +74 -8
- package/dist/application/agent-output.js.map +1 -1
- package/dist/application/agent-request.d.ts +3 -0
- package/dist/application/agent-request.js +11 -0
- package/dist/application/agent-request.js.map +1 -0
- package/dist/application/agent-turn.js +74 -6
- package/dist/application/agent-turn.js.map +1 -1
- package/dist/application/agent-usage.d.ts +6 -0
- package/dist/application/agent-usage.js +57 -0
- package/dist/application/agent-usage.js.map +1 -0
- package/dist/application/attach.js +2 -0
- package/dist/application/attach.js.map +1 -1
- package/dist/application/credential-installer.constants.d.ts +1 -0
- package/dist/application/credential-installer.constants.js +22 -0
- package/dist/application/credential-installer.constants.js.map +1 -0
- package/dist/application/custom-turn.js +44 -49
- package/dist/application/custom-turn.js.map +1 -1
- package/dist/application/dispatch-observation.d.ts +1 -1
- package/dist/application/dispatch-observation.js +141 -21
- package/dist/application/dispatch-observation.js.map +1 -1
- package/dist/application/dispatch-observation.types.d.ts +2 -0
- package/dist/application/dispatch-observation.types.js.map +1 -1
- package/dist/application/dispatch-validation.js +2 -0
- package/dist/application/dispatch-validation.js.map +1 -1
- package/dist/application/dispatch.js +1 -1
- package/dist/application/dispatch.js.map +1 -1
- package/dist/application/doctor-agent.constants.d.ts +2 -8
- package/dist/application/doctor-agent.constants.js +43 -6
- package/dist/application/doctor-agent.constants.js.map +1 -1
- package/dist/application/doctor-agent.d.ts +2 -1
- package/dist/application/doctor-agent.js +15 -3
- package/dist/application/doctor-agent.js.map +1 -1
- package/dist/application/doctor-image.js +4 -6
- package/dist/application/doctor-image.js.map +1 -1
- package/dist/application/doctor-protocol.js +6 -11
- package/dist/application/doctor-protocol.js.map +1 -1
- package/dist/application/doctor-protocol.types.d.ts +1 -1
- package/dist/application/doctor-protocol.types.js.map +1 -1
- package/dist/application/doctor-sandbox.js +2 -5
- package/dist/application/doctor-sandbox.js.map +1 -1
- package/dist/application/doctor.js +28 -10
- package/dist/application/doctor.js.map +1 -1
- package/dist/application/doctor.types.d.ts +10 -1
- package/dist/application/doctor.types.js.map +1 -1
- package/dist/application/execution.constants.d.ts +2 -0
- package/dist/application/execution.constants.js +2 -0
- package/dist/application/execution.constants.js.map +1 -1
- package/dist/application/execution.types.d.ts +8 -0
- package/dist/application/execution.types.js.map +1 -1
- package/dist/application/harness-budget.d.ts +3 -0
- package/dist/application/harness-budget.js +42 -0
- package/dist/application/harness-budget.js.map +1 -0
- package/dist/application/harness-budget.types.d.ts +5 -0
- package/dist/application/harness-budget.types.js +2 -0
- package/dist/application/harness-budget.types.js.map +1 -0
- package/dist/application/harness-hooks.js +34 -3
- package/dist/application/harness-hooks.js.map +1 -1
- package/dist/application/harness-loop.js +52 -24
- package/dist/application/harness-loop.js.map +1 -1
- package/dist/application/harness-model-provider.d.ts +3 -0
- package/dist/application/harness-model-provider.js +49 -0
- package/dist/application/harness-model-provider.js.map +1 -0
- package/dist/application/harness-model-provider.types.d.ts +10 -0
- package/dist/application/harness-model-provider.types.js +2 -0
- package/dist/application/harness-model-provider.types.js.map +1 -0
- package/dist/application/harness-subagent.d.ts +4 -0
- package/dist/application/harness-subagent.js +110 -0
- package/dist/application/harness-subagent.js.map +1 -0
- package/dist/application/harness.types.d.ts +11 -0
- package/dist/application/harness.types.js.map +1 -1
- package/dist/application/lifecycle-hooks.d.ts +1 -1
- package/dist/application/lifecycle-hooks.js +5 -4
- package/dist/application/lifecycle-hooks.js.map +1 -1
- package/dist/application/observed-lease.d.ts +3 -0
- package/dist/application/observed-lease.js +26 -0
- package/dist/application/observed-lease.js.map +1 -0
- package/dist/application/outpost.types.d.ts +3 -1
- package/dist/application/outpost.types.js.map +1 -1
- package/dist/application/output-lines.d.ts +4 -0
- package/dist/application/output-lines.js +28 -0
- package/dist/application/output-lines.js.map +1 -0
- package/dist/application/queue-worker.js +1 -1
- package/dist/application/queue-worker.js.map +1 -1
- package/dist/application/queue-worker.types.d.ts +1 -0
- package/dist/application/queue-worker.types.js.map +1 -1
- package/dist/application/queued-task.js +24 -5
- package/dist/application/queued-task.js.map +1 -1
- package/dist/application/recovery-archive.d.ts +3 -2
- package/dist/application/recovery-archive.js +9 -2
- package/dist/application/recovery-archive.js.map +1 -1
- package/dist/application/recovery-restore.d.ts +3 -2
- package/dist/application/recovery-restore.js +9 -2
- package/dist/application/recovery-restore.js.map +1 -1
- package/dist/application/recovery-retention.d.ts +3 -2
- package/dist/application/recovery-retention.js +74 -26
- package/dist/application/recovery-retention.js.map +1 -1
- package/dist/application/remote-workspace.js +5 -4
- package/dist/application/remote-workspace.js.map +1 -1
- package/dist/application/remote-workspace.types.d.ts +1 -0
- package/dist/application/remote-workspace.types.js.map +1 -1
- package/dist/application/sandbox-agents.js +19 -19
- package/dist/application/sandbox-agents.js.map +1 -1
- package/dist/application/sandbox-attach.js +12 -3
- package/dist/application/sandbox-attach.js.map +1 -1
- package/dist/application/sandbox-dispatch.js +13 -27
- package/dist/application/sandbox-dispatch.js.map +1 -1
- package/dist/application/sandbox-provision.js +15 -9
- package/dist/application/sandbox-provision.js.map +1 -1
- package/dist/application/sandbox-session.types.d.ts +7 -2
- package/dist/application/sandbox-session.types.js.map +1 -1
- package/dist/application/sandbox.js +13 -6
- package/dist/application/sandbox.js.map +1 -1
- package/dist/application/speculation-checkpoint.d.ts +6 -0
- package/dist/application/speculation-checkpoint.js +206 -0
- package/dist/application/speculation-checkpoint.js.map +1 -0
- package/dist/application/speculation-checkpoint.types.d.ts +24 -0
- package/dist/application/speculation-checkpoint.types.js +2 -0
- package/dist/application/speculation-checkpoint.types.js.map +1 -0
- package/dist/application/speculation-integration.constants.d.ts +4 -0
- package/dist/application/speculation-integration.constants.js +5 -0
- package/dist/application/speculation-integration.constants.js.map +1 -0
- package/dist/application/speculation-integration.d.ts +2 -0
- package/dist/application/speculation-integration.js +67 -0
- package/dist/application/speculation-integration.js.map +1 -0
- package/dist/application/speculation-resume.d.ts +4 -0
- package/dist/application/speculation-resume.js +71 -0
- package/dist/application/speculation-resume.js.map +1 -0
- package/dist/application/speculation-run.d.ts +4 -0
- package/dist/application/speculation-run.js +320 -0
- package/dist/application/speculation-run.js.map +1 -0
- package/dist/application/speculation-timeout.d.ts +1 -0
- package/dist/application/speculation-timeout.js +15 -0
- package/dist/application/speculation-timeout.js.map +1 -0
- package/dist/application/speculation.constants.d.ts +1 -0
- package/dist/application/speculation.constants.js +5 -1
- package/dist/application/speculation.constants.js.map +1 -1
- package/dist/application/speculation.js +41 -149
- package/dist/application/speculation.js.map +1 -1
- package/dist/application/speculation.types.d.ts +23 -0
- package/dist/application/speculation.types.js.map +1 -1
- package/dist/application/startup-recovery.js +14 -1
- package/dist/application/startup-recovery.js.map +1 -1
- package/dist/application/startup-recovery.types.d.ts +1 -0
- package/dist/application/startup-recovery.types.js.map +1 -1
- package/dist/application/stop-reason.d.ts +2 -0
- package/dist/application/stop-reason.js +21 -0
- package/dist/application/stop-reason.js.map +1 -0
- package/dist/application/stop-reason.types.d.ts +4 -0
- package/dist/application/stop-reason.types.js +2 -0
- package/dist/application/stop-reason.types.js.map +1 -0
- package/dist/application/storage-reservation.js +9 -2
- package/dist/application/storage-reservation.js.map +1 -1
- package/dist/application/task-observation.d.ts +3 -0
- package/dist/application/task-observation.js +22 -0
- package/dist/application/task-observation.js.map +1 -0
- package/dist/application/task-usage.js +5 -12
- package/dist/application/task-usage.js.map +1 -1
- package/dist/application/tasks.js +41 -16
- package/dist/application/tasks.js.map +1 -1
- package/dist/application/tool-execution.js +42 -19
- package/dist/application/tool-execution.js.map +1 -1
- package/dist/application/workspace.js +6 -4
- package/dist/application/workspace.js.map +1 -1
- package/dist/cli/doctor-command.js +6 -2
- package/dist/cli/doctor-command.js.map +1 -1
- package/dist/cli/init-authentication.d.ts +4 -1
- package/dist/cli/init-authentication.js +28 -33
- package/dist/cli/init-authentication.js.map +1 -1
- package/dist/cli/init-command.js +3 -3
- package/dist/cli/init-command.js.map +1 -1
- package/dist/cli/main.constants.d.ts +50 -13
- package/dist/cli/main.constants.js +70 -8
- package/dist/cli/main.constants.js.map +1 -1
- package/dist/cli/main.js +2 -1
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/scaffold-files.js +1 -1
- package/dist/cli/scaffold-files.js.map +1 -1
- package/dist/cli/scaffold-validation.js +29 -22
- package/dist/cli/scaffold-validation.js.map +1 -1
- package/dist/cli/scaffold.constants.d.ts +0 -1
- package/dist/cli/scaffold.constants.js +6 -2
- package/dist/cli/scaffold.constants.js.map +1 -1
- package/dist/cli/scaffold.types.d.ts +8 -2
- package/dist/cli/scaffold.types.js.map +1 -1
- package/dist/cli/starters.js +1 -3
- package/dist/cli/starters.js.map +1 -1
- package/dist/domain/agent-observation.d.ts +4 -0
- package/dist/domain/agent-observation.js +27 -0
- package/dist/domain/agent-observation.js.map +1 -0
- package/dist/domain/agent.types.d.ts +122 -14
- package/dist/domain/agent.types.js.map +1 -1
- package/dist/domain/authentication.constants.d.ts +3 -0
- package/dist/domain/authentication.constants.js +11 -0
- package/dist/domain/authentication.constants.js.map +1 -0
- package/dist/domain/authentication.d.ts +3 -0
- package/dist/domain/authentication.js +22 -0
- package/dist/domain/authentication.js.map +1 -0
- package/dist/domain/authentication.types.d.ts +5 -0
- package/dist/domain/authentication.types.js +2 -0
- package/dist/domain/authentication.types.js.map +1 -0
- package/dist/domain/harness.d.ts +2 -2
- package/dist/domain/harness.js +6 -0
- package/dist/domain/harness.js.map +1 -1
- package/dist/domain/harness.types.d.ts +4 -3
- package/dist/domain/harness.types.js.map +1 -1
- package/dist/domain/model.types.d.ts +8 -0
- package/dist/domain/model.types.js.map +1 -1
- package/dist/domain/observation.constants.d.ts +8 -0
- package/dist/domain/observation.constants.js +9 -0
- package/dist/domain/observation.constants.js.map +1 -0
- package/dist/domain/observation.d.ts +2 -0
- package/dist/domain/observation.js +190 -0
- package/dist/domain/observation.js.map +1 -0
- package/dist/domain/observation.types.d.ts +84 -0
- package/dist/domain/observation.types.js +2 -0
- package/dist/domain/observation.types.js.map +1 -0
- package/dist/domain/observed-operation.d.ts +2 -0
- package/dist/domain/observed-operation.js +30 -0
- package/dist/domain/observed-operation.js.map +1 -0
- package/dist/domain/sandbox.types.d.ts +2 -0
- package/dist/domain/sandbox.types.js.map +1 -1
- package/dist/domain/subagent.constants.d.ts +13 -0
- package/dist/domain/subagent.constants.js +9 -0
- package/dist/domain/subagent.constants.js.map +1 -0
- package/dist/domain/subagent.d.ts +4 -0
- package/dist/domain/subagent.js +28 -0
- package/dist/domain/subagent.js.map +1 -0
- package/dist/domain/subagent.types.d.ts +13 -0
- package/dist/domain/subagent.types.js +2 -0
- package/dist/domain/subagent.types.js.map +1 -0
- package/dist/domain/transcript.types.d.ts +2 -0
- package/dist/domain/transcript.types.js.map +1 -1
- package/dist/domain/usage.d.ts +1 -0
- package/dist/domain/usage.js +16 -0
- package/dist/domain/usage.js.map +1 -1
- package/dist/domain/workflow/budget.d.ts +7 -3
- package/dist/domain/workflow/budget.js +26 -0
- package/dist/domain/workflow/budget.js.map +1 -1
- package/dist/domain/workflow/budget.types.d.ts +1 -1
- package/dist/domain/workflow/budget.types.js.map +1 -1
- package/dist/domain/workflow/checkpoint-validation.js +7 -1
- package/dist/domain/workflow/checkpoint-validation.js.map +1 -1
- package/dist/domain/workflow/checkpoint.js +3 -0
- package/dist/domain/workflow/checkpoint.js.map +1 -1
- package/dist/domain/workflow/gate-validation.js +14 -1
- package/dist/domain/workflow/gate-validation.js.map +1 -1
- package/dist/domain/workflow/gates.d.ts +1 -1
- package/dist/domain/workflow/gates.js +52 -4
- package/dist/domain/workflow/gates.js.map +1 -1
- package/dist/domain/workflow/gates.types.d.ts +15 -1
- package/dist/domain/workflow/gates.types.js.map +1 -1
- package/dist/domain/workflow/idempotency.d.ts +1 -0
- package/dist/domain/workflow/idempotency.js +7 -0
- package/dist/domain/workflow/idempotency.js.map +1 -0
- package/dist/domain/workflow/retry.constants.d.ts +2 -0
- package/dist/domain/workflow/retry.constants.js +3 -0
- package/dist/domain/workflow/retry.constants.js.map +1 -0
- package/dist/domain/workflow/retry.d.ts +4 -0
- package/dist/domain/workflow/retry.js +49 -0
- package/dist/domain/workflow/retry.js.map +1 -0
- package/dist/domain/workflow/task-runner.js +9 -5
- package/dist/domain/workflow/task-runner.js.map +1 -1
- package/dist/domain/workflow/task.js +6 -6
- package/dist/domain/workflow/task.js.map +1 -1
- package/dist/domain/workflow/workflow-scheduler.js +110 -72
- package/dist/domain/workflow/workflow-scheduler.js.map +1 -1
- package/dist/domain/workflow/workflow-state.js +28 -12
- package/dist/domain/workflow/workflow-state.js.map +1 -1
- package/dist/domain/workflow.d.ts +1 -1
- package/dist/domain/workflow.js +1 -1
- package/dist/domain/workflow.js.map +1 -1
- package/dist/domain/workflow.types.d.ts +13 -2
- package/dist/domain/workflow.types.js.map +1 -1
- package/dist/index.d.ts +16 -11
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/conversations/capture.js +10 -0
- package/dist/infrastructure/conversations/capture.js.map +1 -1
- package/dist/infrastructure/conversations/harness-transcript.js +6 -0
- package/dist/infrastructure/conversations/harness-transcript.js.map +1 -1
- package/dist/infrastructure/conversations/harness-transcript.types.d.ts +2 -0
- package/dist/infrastructure/conversations/harness-transcript.types.js.map +1 -1
- package/dist/infrastructure/conversations/layout.js +2 -0
- package/dist/infrastructure/conversations/layout.js.map +1 -1
- package/dist/infrastructure/conversations/locate.js +7 -1
- package/dist/infrastructure/conversations/locate.js.map +1 -1
- package/dist/infrastructure/conversations/native-store.js +8 -1
- package/dist/infrastructure/conversations/native-store.js.map +1 -1
- package/dist/infrastructure/conversations/paths.js +3 -0
- package/dist/infrastructure/conversations/paths.js.map +1 -1
- package/dist/infrastructure/conversations/restore.js +7 -0
- package/dist/infrastructure/conversations/restore.js.map +1 -1
- package/dist/infrastructure/conversations/session-bundle.constants.d.ts +5 -0
- package/dist/infrastructure/conversations/session-bundle.constants.js +173 -0
- package/dist/infrastructure/conversations/session-bundle.constants.js.map +1 -0
- package/dist/infrastructure/conversations/session-bundle.d.ts +6 -0
- package/dist/infrastructure/conversations/session-bundle.js +98 -0
- package/dist/infrastructure/conversations/session-bundle.js.map +1 -0
- package/dist/infrastructure/conversations/session-bundle.types.d.ts +1 -0
- package/dist/infrastructure/conversations/session-bundle.types.js +2 -0
- package/dist/infrastructure/conversations/session-bundle.types.js.map +1 -0
- package/dist/infrastructure/conversations.js +4 -2
- package/dist/infrastructure/conversations.js.map +1 -1
- package/dist/infrastructure/conversations.types.d.ts +1 -1
- package/dist/infrastructure/conversations.types.js.map +1 -1
- package/dist/infrastructure/custom-reporter.js +32 -24
- package/dist/infrastructure/custom-reporter.js.map +1 -1
- package/dist/infrastructure/custom-reporter.types.d.ts +2 -0
- package/dist/infrastructure/custom-reporter.types.js.map +1 -1
- package/dist/infrastructure/git/git.constants.d.ts +1 -1
- package/dist/infrastructure/git/git.constants.js +1 -0
- package/dist/infrastructure/git/git.constants.js.map +1 -1
- package/dist/infrastructure/git/workspace-lease.js +4 -3
- package/dist/infrastructure/git/workspace-lease.js.map +1 -1
- package/dist/infrastructure/git/workspace.js +7 -6
- package/dist/infrastructure/git/workspace.js.map +1 -1
- package/dist/infrastructure/git/workspace.types.d.ts +1 -0
- package/dist/infrastructure/git/workspace.types.js.map +1 -1
- package/dist/infrastructure/host-credentials.constants.d.ts +1 -0
- package/dist/infrastructure/host-credentials.constants.js +2 -0
- package/dist/infrastructure/host-credentials.constants.js.map +1 -0
- package/dist/infrastructure/host-credentials.d.ts +4 -0
- package/dist/infrastructure/host-credentials.js +89 -0
- package/dist/infrastructure/host-credentials.js.map +1 -0
- package/dist/infrastructure/inspection-path.js +4 -3
- package/dist/infrastructure/inspection-path.js.map +1 -1
- package/dist/infrastructure/journal.constants.js +10 -1
- package/dist/infrastructure/journal.constants.js.map +1 -1
- package/dist/infrastructure/journal.d.ts +1 -1
- package/dist/infrastructure/journal.js +8 -75
- package/dist/infrastructure/journal.js.map +1 -1
- package/dist/infrastructure/journal.types.d.ts +2 -4
- package/dist/infrastructure/journal.types.js.map +1 -1
- package/dist/infrastructure/local-transport.js +9 -4
- package/dist/infrastructure/local-transport.js.map +1 -1
- package/dist/infrastructure/opentelemetry-dispatch.d.ts +3 -3
- package/dist/infrastructure/opentelemetry-dispatch.js +5 -4
- package/dist/infrastructure/opentelemetry-dispatch.js.map +1 -1
- package/dist/infrastructure/opentelemetry-observation.d.ts +5 -0
- package/dist/infrastructure/opentelemetry-observation.js +59 -0
- package/dist/infrastructure/opentelemetry-observation.js.map +1 -0
- package/dist/infrastructure/opentelemetry.js +15 -1
- package/dist/infrastructure/opentelemetry.js.map +1 -1
- package/dist/infrastructure/opentelemetry.types.d.ts +9 -1
- package/dist/infrastructure/opentelemetry.types.js.map +1 -1
- package/dist/infrastructure/reporter.d.ts +2 -2
- package/dist/infrastructure/reporter.js +5 -1
- package/dist/infrastructure/reporter.js.map +1 -1
- package/dist/infrastructure/repository-transport.constants.d.ts +1 -0
- package/dist/infrastructure/repository-transport.constants.js +2 -0
- package/dist/infrastructure/repository-transport.constants.js.map +1 -0
- package/dist/infrastructure/repository-transport.d.ts +2 -0
- package/dist/infrastructure/repository-transport.js +9 -0
- package/dist/infrastructure/repository-transport.js.map +1 -0
- package/dist/infrastructure/resource-activity-inspection.js +19 -24
- package/dist/infrastructure/resource-activity-inspection.js.map +1 -1
- package/dist/infrastructure/resource-activity.constants.d.ts +0 -1
- package/dist/infrastructure/resource-activity.constants.js +0 -1
- package/dist/infrastructure/resource-activity.constants.js.map +1 -1
- package/dist/infrastructure/resource-activity.js +20 -83
- package/dist/infrastructure/resource-activity.js.map +1 -1
- package/dist/infrastructure/s3-transport.constants.d.ts +2 -0
- package/dist/infrastructure/s3-transport.constants.js +3 -0
- package/dist/infrastructure/s3-transport.constants.js.map +1 -0
- package/dist/infrastructure/s3-transport.js +57 -3
- package/dist/infrastructure/s3-transport.js.map +1 -1
- package/dist/infrastructure/s3-transport.types.d.ts +1 -0
- package/dist/infrastructure/s3-transport.types.js.map +1 -1
- package/dist/infrastructure/speculation-store.constants.d.ts +3 -0
- package/dist/infrastructure/speculation-store.constants.js +2 -0
- package/dist/infrastructure/speculation-store.constants.js.map +1 -0
- package/dist/infrastructure/speculation-store.d.ts +4 -0
- package/dist/infrastructure/speculation-store.js +73 -0
- package/dist/infrastructure/speculation-store.js.map +1 -0
- package/dist/infrastructure/speculation-store.types.d.ts +12 -0
- package/dist/infrastructure/speculation-store.types.js +2 -0
- package/dist/infrastructure/speculation-store.types.js.map +1 -0
- package/dist/infrastructure/storage-inventory.constants.js +1 -0
- package/dist/infrastructure/storage-inventory.constants.js.map +1 -1
- package/dist/infrastructure/storage-inventory.types.d.ts +1 -1
- package/dist/infrastructure/storage-inventory.types.js.map +1 -1
- package/dist/infrastructure/storage-reservations.types.d.ts +0 -8
- package/dist/infrastructure/storage-reservations.types.js.map +1 -1
- package/dist/infrastructure/task-queue-bullmq-resources.js +3 -0
- package/dist/infrastructure/task-queue-bullmq-resources.js.map +1 -1
- package/dist/infrastructure/task-queue-http.js +29 -4
- package/dist/infrastructure/task-queue-http.js.map +1 -1
- package/dist/infrastructure/task-queue-http.types.d.ts +2 -2
- package/dist/infrastructure/task-queue-http.types.js.map +1 -1
- package/dist/infrastructure/transport-conversations.js +2 -0
- package/dist/infrastructure/transport-conversations.js.map +1 -1
- package/dist/infrastructure/transport-journal.d.ts +1 -1
- package/dist/infrastructure/transport-journal.js +8 -2
- package/dist/infrastructure/transport-journal.js.map +1 -1
- package/dist/infrastructure/transport-reservations.d.ts +1 -1
- package/dist/infrastructure/transport-reservations.js +14 -8
- package/dist/infrastructure/transport-reservations.js.map +1 -1
- package/dist/infrastructure/workflow-decision-signature.constants.d.ts +4 -0
- package/dist/infrastructure/workflow-decision-signature.constants.js +5 -0
- package/dist/infrastructure/workflow-decision-signature.constants.js.map +1 -0
- package/dist/infrastructure/workflow-decision-signature.d.ts +4 -0
- package/dist/infrastructure/workflow-decision-signature.js +83 -0
- package/dist/infrastructure/workflow-decision-signature.js.map +1 -0
- package/dist/infrastructure/workflow-decision-signature.types.d.ts +16 -0
- package/dist/infrastructure/workflow-decision-signature.types.js +2 -0
- package/dist/infrastructure/workflow-decision-signature.types.js.map +1 -0
- package/dist/providers/agents.d.ts +7 -2
- package/dist/providers/agents.js +4 -1
- package/dist/providers/agents.js.map +1 -1
- package/dist/providers/antigravity-install.constants.d.ts +2 -0
- package/dist/providers/antigravity-install.constants.js +28 -0
- package/dist/providers/antigravity-install.constants.js.map +1 -0
- package/dist/providers/antigravity-install.d.ts +2 -0
- package/dist/providers/antigravity-install.js +29 -0
- package/dist/providers/antigravity-install.js.map +1 -0
- package/dist/providers/antigravity-install.types.d.ts +4 -0
- package/dist/providers/antigravity-install.types.js +2 -0
- package/dist/providers/antigravity-install.types.js.map +1 -0
- package/dist/providers/container-recovery.d.ts +4 -0
- package/dist/providers/container-recovery.js +28 -0
- package/dist/providers/container-recovery.js.map +1 -0
- package/dist/providers/container.js +8 -0
- package/dist/providers/container.js.map +1 -1
- package/dist/providers/daytona-network.constants.d.ts +5 -0
- package/dist/providers/daytona-network.constants.js +8 -0
- package/dist/providers/daytona-network.constants.js.map +1 -0
- package/dist/providers/daytona-network.d.ts +4 -0
- package/dist/providers/daytona-network.js +33 -0
- package/dist/providers/daytona-network.js.map +1 -0
- package/dist/providers/daytona.d.ts +1 -0
- package/dist/providers/daytona.js +9 -3
- package/dist/providers/daytona.js.map +1 -1
- package/dist/providers/daytona.types.d.ts +2 -0
- package/dist/providers/daytona.types.js.map +1 -1
- package/dist/providers/firecracker-command.js +1 -1
- package/dist/providers/firecracker-command.js.map +1 -1
- package/dist/providers/firecracker-jailer.constants.d.ts +9 -0
- package/dist/providers/firecracker-jailer.constants.js +10 -0
- package/dist/providers/firecracker-jailer.constants.js.map +1 -0
- package/dist/providers/firecracker-jailer.d.ts +4 -0
- package/dist/providers/firecracker-jailer.js +171 -0
- package/dist/providers/firecracker-jailer.js.map +1 -0
- package/dist/providers/firecracker-machine.js +30 -8
- package/dist/providers/firecracker-machine.js.map +1 -1
- package/dist/providers/firecracker.types.d.ts +16 -0
- package/dist/providers/firecracker.types.js.map +1 -1
- package/dist/providers/vercel-network.js +1 -1
- package/dist/providers/vercel-network.js.map +1 -1
- package/dist/providers/vercel.js +6 -3
- package/dist/providers/vercel.js.map +1 -1
- package/dist/providers/versions.constants.d.ts +3 -1
- package/dist/providers/versions.constants.js +3 -1
- package/dist/providers/versions.constants.js.map +1 -1
- package/package.json +3 -3
- package/dist/adapters/agents/gemini-adapter.d.ts +0 -3
- package/dist/adapters/agents/gemini-adapter.js +0 -34
- package/dist/adapters/agents/gemini-adapter.js.map +0 -1
- package/dist/adapters/agents/gemini-diagnostics.d.ts +0 -2
- package/dist/adapters/agents/gemini-diagnostics.js +0 -15
- package/dist/adapters/agents/gemini-diagnostics.js.map +0 -1
- package/dist/adapters/agents/gemini-events.d.ts +0 -2
- package/dist/adapters/agents/gemini-events.js +0 -50
- package/dist/adapters/agents/gemini-events.js.map +0 -1
- package/dist/adapters/agents/gemini-request.js +0 -23
- package/dist/adapters/agents/gemini-request.js.map +0 -1
- package/dist/adapters/agents/gemini.types.js +0 -2
- package/dist/adapters/agents/gemini.types.js.map +0 -1
- package/dist/infrastructure/artifact-store.d.ts +0 -3
- package/dist/infrastructure/artifact-store.js +0 -110
- package/dist/infrastructure/artifact-store.js.map +0 -1
- package/dist/infrastructure/artifact-store.types.d.ts +0 -6
- package/dist/infrastructure/artifact-store.types.js +0 -2
- package/dist/infrastructure/artifact-store.types.js.map +0 -1
- package/dist/infrastructure/journal-retention.constants.d.ts +0 -4
- package/dist/infrastructure/journal-retention.constants.js +0 -5
- package/dist/infrastructure/journal-retention.constants.js.map +0 -1
- package/dist/infrastructure/journal-retention.d.ts +0 -2
- package/dist/infrastructure/journal-retention.js +0 -51
- package/dist/infrastructure/journal-retention.js.map +0 -1
- package/dist/infrastructure/storage-mutation-lock.constants.d.ts +0 -5
- package/dist/infrastructure/storage-mutation-lock.constants.js +0 -6
- package/dist/infrastructure/storage-mutation-lock.constants.js.map +0 -1
- package/dist/infrastructure/storage-mutation-lock.d.ts +0 -1
- package/dist/infrastructure/storage-mutation-lock.js +0 -21
- package/dist/infrastructure/storage-mutation-lock.js.map +0 -1
- package/dist/infrastructure/storage-reservations.constants.d.ts +0 -4
- package/dist/infrastructure/storage-reservations.constants.js +0 -5
- package/dist/infrastructure/storage-reservations.constants.js.map +0 -1
- package/dist/infrastructure/storage-reservations.d.ts +0 -2
- package/dist/infrastructure/storage-reservations.js +0 -150
- package/dist/infrastructure/storage-reservations.js.map +0 -1
- package/dist/infrastructure/workflow-checkpoint.d.ts +0 -3
- package/dist/infrastructure/workflow-checkpoint.js +0 -84
- package/dist/infrastructure/workflow-checkpoint.js.map +0 -1
- package/dist/infrastructure/workflow-checkpoint.types.d.ts +0 -6
- package/dist/infrastructure/workflow-checkpoint.types.js +0 -2
- package/dist/infrastructure/workflow-checkpoint.types.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { agent } from "./domain/agent.ts";
|
|
2
|
+
export { defineHarnessSubagent } from "./domain/subagent.ts";
|
|
3
|
+
export type { HarnessSubagent, HarnessSubagentInput, HarnessSubagentOptions, } from "./domain/subagent.types.ts";
|
|
2
4
|
export { harness } from "./domain/harness.ts";
|
|
3
5
|
export { defineHarnessContextStrategy, summarizeHistory, truncateToolResults, } from "./domain/context.ts";
|
|
4
6
|
export type { HarnessContextInput, HarnessContextResult, HarnessContextStrategy, HarnessContextStrategyOptions, SummarizeHistoryOptions, TruncateToolResultsOptions, } from "./domain/context.types.ts";
|
|
@@ -16,8 +18,8 @@ export { harnessGitTools } from "./adapters/tools/git-tools.ts";
|
|
|
16
18
|
export { harnessSearchTools } from "./adapters/tools/search-tools.ts";
|
|
17
19
|
export { harnessShellTools } from "./adapters/tools/shell-tools.ts";
|
|
18
20
|
export type { ShellToolsOptions } from "./adapters/tools/tools.types.ts";
|
|
19
|
-
export type { AgentAuthentication, Agent, AgentOptions,
|
|
20
|
-
export type {
|
|
21
|
+
export type { AccountCredential, AgentAuthentication, Agent, AgentOptions, AgentHarness, CliHarness, CliAgent, CustomAgent, UsageCredential, } from "./domain/agent.types.ts";
|
|
22
|
+
export type { Harness, HarnessOptions, HarnessInstructionContext, HarnessInstructions, HarnessInstructionSource, HarnessInstructionsOption, HarnessLimits, HarnessToolExecution, } from "./domain/harness.types.ts";
|
|
21
23
|
export type { HarnessTool, HarnessToolContext, HarnessToolEvent, HarnessToolOptions, HarnessToolset, HarnessToolsetOptions, JsonSchema, StandardJsonSchema, ToolOutput, ToolValidation, } from "./domain/tool.types.ts";
|
|
22
24
|
export { TransportConflict } from "./domain/transport.ts";
|
|
23
25
|
export type { Transport, TransportEntry, TransportObject, TransportReadOptions, TransportWriteOptions, TransportReference, TransportStoreOptions, } from "./domain/transport.types.ts";
|
|
@@ -36,14 +38,14 @@ export type { RecoveryArchiveOptions, RecoveryArchiveRestoreOptions, } from "./a
|
|
|
36
38
|
export { attach, createSandbox, dispatch, openWorkspace, } from "./application/outpost.ts";
|
|
37
39
|
export type { AttachOptions, AttachResult, ContinuationOptions, DispatchResult, Sandbox, SandboxOptions, WarmDispatchResult, Workspace, WorkspaceOptions, } from "./application/outpost.ts";
|
|
38
40
|
export type { DispatchOptions, Execution, Turn, } from "./application/execution.ts";
|
|
39
|
-
export { WorkflowFailure, WorkflowBudgetExceeded, task, workflow, } from "./domain/workflow.ts";
|
|
41
|
+
export { WorkflowFailure, WorkflowBudgetExceeded, WorkflowUsageUnavailable, task, workflow, } from "./domain/workflow.ts";
|
|
40
42
|
export type { Retry, Task, TaskContext, TaskOptions, TaskRecord, TaskStatus, Workflow, WorkflowEvent, WorkflowOptions, WorkflowBudget, WorkflowUsage, WorkflowResult, WorkflowTelemetry, } from "./domain/workflow.ts";
|
|
41
43
|
export { agentTask, commandTask, isolatedTask } from "./application/tasks.ts";
|
|
42
|
-
export { claudeHarness, codexHarness,
|
|
44
|
+
export { antigravityHarness, claudeHarness, codexHarness, copilotHarness, kimiHarness, } from "./providers/agents.ts";
|
|
43
45
|
export { agentVersions } from "./providers/versions.ts";
|
|
44
46
|
export { conversations, harnessConversations, } from "./infrastructure/conversations.ts";
|
|
45
47
|
export type { ConversationFormat, ConversationLocation, StoredConversationFormat, } from "./infrastructure/conversations.ts";
|
|
46
|
-
export type { ClaudeSettings, CodexSettings, CodexModelProvider,
|
|
48
|
+
export type { AntigravitySettings, ClaudeSettings, CodexSettings, CodexModelProvider, CopilotSettings, KimiSettings, } from "./providers/agents.ts";
|
|
47
49
|
export { mountedSandboxProvider, remoteSandboxProvider, } from "./providers/factories.ts";
|
|
48
50
|
export { ResponseError, response } from "./domain/response.ts";
|
|
49
51
|
export type { ResponseSpec, StandardValidator } from "./domain/response.ts";
|
|
@@ -72,20 +74,16 @@ export type { RecoveryStorageReservationOptions } from "./application/storage-re
|
|
|
72
74
|
export type { StorageReservation, StorageReservationOptions, } from "./infrastructure/storage-reservations.types.ts";
|
|
73
75
|
export { planRecoveryRestore, restoreRecoveryTransfer, } from "./application/recovery-restore.ts";
|
|
74
76
|
export type { RecoveryRestoreOptions, RecoveryRestorePlan, RecoveryRestoreResult, } from "./application/recovery-restore.types.ts";
|
|
75
|
-
export { fileWorkflowCheckpointStore } from "./infrastructure/workflow-checkpoint.ts";
|
|
76
|
-
export type { FileWorkflowCheckpointOptions } from "./infrastructure/workflow-checkpoint.types.ts";
|
|
77
77
|
export type { WorkflowCheckpoint, WorkflowCheckpointOptions, WorkflowCheckpointStore, WorkflowCheckpointLease, WorkflowCheckpointValue, WorkflowJson, } from "./domain/workflow/checkpoint.types.ts";
|
|
78
78
|
export { approvalTask, pauseTask } from "./domain/workflow/gates.ts";
|
|
79
|
-
export type { WorkflowGate, WorkflowGateOptions, WorkflowPauseRequest, WorkflowDecision, WorkflowDecisionRecord, } from "./domain/workflow/gates.types.ts";
|
|
79
|
+
export type { WorkflowGate, WorkflowGateOptions, WorkflowPauseRequest, WorkflowDecision, WorkflowDecisionRecord, WorkflowDecisionProof, WorkflowDecisionVerification, WorkflowDecisionVerifier, } from "./domain/workflow/gates.types.ts";
|
|
80
80
|
export { inspectRecovery } from "./application/recovery-inspection.ts";
|
|
81
81
|
export type { RecoveryInspection, RecoveryInspectionOptions, } from "./application/recovery-inspection.types.ts";
|
|
82
82
|
export type { ResourceActivityRecord, ResourceInspection, ResourceInspectionEntry, ResourceOperation, ResourceOperationKind, ResourceOperationResult, ResourcePhase, } from "./infrastructure/resource-activity.types.ts";
|
|
83
83
|
export { artifact, publishArtifact, readStoredArtifact, } from "./domain/artifact.ts";
|
|
84
84
|
export { artifactTask, readArtifact } from "./application/artifact-tasks.ts";
|
|
85
|
-
export { fileArtifactStore } from "./infrastructure/artifact-store.ts";
|
|
86
85
|
export type { ArtifactContract, ArtifactContractOptions, ArtifactIdentity, ArtifactProducer, ArtifactReference, ArtifactStore, JsonArtifactOptions, PublishArtifactOptions, ReadArtifactOptions, } from "./domain/artifact.types.ts";
|
|
87
86
|
export type { ArtifactTaskOptions } from "./application/artifact-tasks.types.ts";
|
|
88
|
-
export type { FileArtifactStoreOptions } from "./infrastructure/artifact-store.types.ts";
|
|
89
87
|
export { sqliteTaskQueue } from "./infrastructure/task-queue.ts";
|
|
90
88
|
export { serveTaskQueue, httpTaskQueue, } from "./infrastructure/task-queue-http.ts";
|
|
91
89
|
export { runQueueWorker } from "./application/queue-worker.ts";
|
|
@@ -95,10 +93,17 @@ export type { QueueServerOptions, QueueServer, QueueClientOptions, } from "./inf
|
|
|
95
93
|
export type { QueueHandlerContext, QueueHandler, QueueWorkerOptions, } from "./application/queue-worker.types.ts";
|
|
96
94
|
export type { QueuedTaskOptions } from "./application/queued-task.types.ts";
|
|
97
95
|
export type { EgressPolicy } from "./domain/egress.types.ts";
|
|
96
|
+
export { recoverSpeculation } from "./infrastructure/speculation-store.ts";
|
|
97
|
+
export type { SpeculationRecoveryOptions } from "./infrastructure/speculation-store.types.ts";
|
|
98
|
+
export { checkSpeculationIntegration } from "./application/speculation-integration.ts";
|
|
98
99
|
export { speculate } from "./application/speculation.ts";
|
|
99
|
-
export type { SpeculationOptions, SpeculationResult, SpeculativeCandidate, SpeculativeCandidateResult, SpeculativeOutput, SpeculativeHostSnapshot, SpeculativeValidation, } from "./application/speculation.types.ts";
|
|
100
|
+
export type { SpeculationDurability, SpeculationIntegration, SpeculationOptions, SpeculationResult, SpeculativeCandidate, SpeculativeCandidateResult, SpeculativeOutput, SpeculativeHostSnapshot, SpeculativeValidation, } from "./application/speculation.types.ts";
|
|
100
101
|
export { openaiModelProvider } from "./adapters/models/openai-model-provider.ts";
|
|
101
102
|
export type { OpenAIModelProviderOptions } from "./adapters/models/openai-model-provider.types.ts";
|
|
102
103
|
export type { AgentModel, ModelContentBlock, ModelMessage, ModelProvider, ModelReasoning, ModelReasoningBlock, ModelRequest, ModelResult, ModelSpec, ModelStopReason, ModelStreamEvent, ModelTextBlock, ModelToolCallBlock, ModelToolResultBlock, ModelToolSpec, } from "./domain/model.types.ts";
|
|
103
104
|
export { anthropicModelProvider } from "./adapters/models/anthropic-model-provider.ts";
|
|
104
105
|
export type { AnthropicModelProviderOptions } from "./adapters/models/anthropic-model-provider.types.ts";
|
|
106
|
+
export { createObservationHub } from "./domain/observation.ts";
|
|
107
|
+
export type { Observation, ObservationScope, ObservationSource, ObservationEvent, OperationEvent, ObservationHub, ObservationHubOptions, ObservationSink, } from "./domain/observation.types.ts";
|
|
108
|
+
export { signWorkflowDecision, ed25519DecisionVerifier, } from "./infrastructure/workflow-decision-signature.ts";
|
|
109
|
+
export type { WorkflowDecisionSigningOptions, WorkflowApproverKey, WorkflowDecisionVerifierOptions, } from "./infrastructure/workflow-decision-signature.types.ts";
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { agent } from "./domain/agent.js";
|
|
2
|
+
export { defineHarnessSubagent } from "./domain/subagent.js";
|
|
2
3
|
export { harness } from "./domain/harness.js";
|
|
3
4
|
export { defineHarnessContextStrategy, summarizeHistory, truncateToolResults, } from "./domain/context.js";
|
|
4
5
|
export { defineHarnessHook } from "./domain/hook.js";
|
|
@@ -19,9 +20,9 @@ export { readJournal } from "./infrastructure/transport-journal.js";
|
|
|
19
20
|
export { transportConversations } from "./infrastructure/transport-conversations.js";
|
|
20
21
|
export { archiveRecovery, materializeRecoveryArchive, } from "./application/recovery-archive.js";
|
|
21
22
|
export { attach, createSandbox, dispatch, openWorkspace, } from "./application/outpost.js";
|
|
22
|
-
export { WorkflowFailure, WorkflowBudgetExceeded, task, workflow, } from "./domain/workflow.js";
|
|
23
|
+
export { WorkflowFailure, WorkflowBudgetExceeded, WorkflowUsageUnavailable, task, workflow, } from "./domain/workflow.js";
|
|
23
24
|
export { agentTask, commandTask, isolatedTask } from "./application/tasks.js";
|
|
24
|
-
export { claudeHarness, codexHarness,
|
|
25
|
+
export { antigravityHarness, claudeHarness, codexHarness, copilotHarness, kimiHarness, } from "./providers/agents.js";
|
|
25
26
|
export { agentVersions } from "./providers/versions.js";
|
|
26
27
|
export { conversations, harnessConversations, } from "./infrastructure/conversations.js";
|
|
27
28
|
export { mountedSandboxProvider, remoteSandboxProvider, } from "./providers/factories.js";
|
|
@@ -35,17 +36,19 @@ export { diagnoseSandbox } from "./application/doctor-sandbox.js";
|
|
|
35
36
|
export { diagnoseAgentProtocol } from "./application/doctor-protocol.js";
|
|
36
37
|
export { reserveRecoveryStorage } from "./application/storage-reservation.js";
|
|
37
38
|
export { planRecoveryRestore, restoreRecoveryTransfer, } from "./application/recovery-restore.js";
|
|
38
|
-
export { fileWorkflowCheckpointStore } from "./infrastructure/workflow-checkpoint.js";
|
|
39
39
|
export { approvalTask, pauseTask } from "./domain/workflow/gates.js";
|
|
40
40
|
export { inspectRecovery } from "./application/recovery-inspection.js";
|
|
41
41
|
export { artifact, publishArtifact, readStoredArtifact, } from "./domain/artifact.js";
|
|
42
42
|
export { artifactTask, readArtifact } from "./application/artifact-tasks.js";
|
|
43
|
-
export { fileArtifactStore } from "./infrastructure/artifact-store.js";
|
|
44
43
|
export { sqliteTaskQueue } from "./infrastructure/task-queue.js";
|
|
45
44
|
export { serveTaskQueue, httpTaskQueue, } from "./infrastructure/task-queue-http.js";
|
|
46
45
|
export { runQueueWorker } from "./application/queue-worker.js";
|
|
47
46
|
export { queuedTask } from "./application/queued-task.js";
|
|
47
|
+
export { recoverSpeculation } from "./infrastructure/speculation-store.js";
|
|
48
|
+
export { checkSpeculationIntegration } from "./application/speculation-integration.js";
|
|
48
49
|
export { speculate } from "./application/speculation.js";
|
|
49
50
|
export { openaiModelProvider } from "./adapters/models/openai-model-provider.js";
|
|
50
51
|
export { anthropicModelProvider } from "./adapters/models/anthropic-model-provider.js";
|
|
52
|
+
export { createObservationHub } from "./domain/observation.js";
|
|
53
|
+
export { signWorkflowDecision, ed25519DecisionVerifier, } from "./infrastructure/workflow-decision-signature.js";
|
|
51
54
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["export { agent } from \"./domain/agent.ts\";\nexport { harness } from \"./domain/harness.ts\";\nexport {\n defineHarnessContextStrategy,\n summarizeHistory,\n truncateToolResults,\n} from \"./domain/context.ts\";\nexport type {\n HarnessContextInput,\n HarnessContextResult,\n HarnessContextStrategy,\n HarnessContextStrategyOptions,\n SummarizeHistoryOptions,\n TruncateToolResultsOptions,\n} from \"./domain/context.types.ts\";\nexport { defineHarnessHook } from \"./domain/hook.ts\";\nexport { defineHarnessSkill } from \"./domain/skill.ts\";\nexport type {\n HarnessSkill,\n HarnessSkillOptions,\n} from \"./domain/skill.types.ts\";\nexport { defineHarnessInstructions } from \"./domain/instructions.ts\";\nexport { defineHarnessPermissions } from \"./domain/permissions.ts\";\nexport type {\n HarnessHook,\n HarnessHookContext,\n HarnessHookDecisions,\n HarnessHookEvents,\n HarnessHookInput,\n HarnessHookOptions,\n HarnessHookPhase,\n HarnessHookResult,\n HarnessToolResultView,\n} from \"./domain/hook.types.ts\";\nexport type {\n HarnessPermissionRule,\n HarnessPermissions,\n HarnessPermissionsOptions,\n PermissionDecision,\n PermissionEffect,\n ToolResources,\n} from \"./domain/permissions.types.ts\";\nexport { defineHarnessTool, defineHarnessToolset } from \"./domain/tool.ts\";\nexport { harnessEditTools } from \"./adapters/tools/edit-tools.ts\";\nexport { harnessFileTools } from \"./adapters/tools/file-tools.ts\";\nexport { harnessGitTools } from \"./adapters/tools/git-tools.ts\";\nexport { harnessSearchTools } from \"./adapters/tools/search-tools.ts\";\nexport { harnessShellTools } from \"./adapters/tools/shell-tools.ts\";\nexport type { ShellToolsOptions } from \"./adapters/tools/tools.types.ts\";\nexport type {\n AgentAuthentication,\n Agent,\n AgentOptions,\n Harness,\n CliHarness,\n CliAgent,\n CustomAgent,\n} from \"./domain/agent.types.ts\";\nexport type {\n CustomHarness,\n CustomHarnessOptions,\n HarnessInstructionContext,\n HarnessInstructions,\n HarnessInstructionSource,\n HarnessInstructionsOption,\n HarnessLimits,\n HarnessToolExecution,\n} from \"./domain/harness.types.ts\";\nexport type {\n HarnessTool,\n HarnessToolContext,\n HarnessToolEvent,\n HarnessToolOptions,\n HarnessToolset,\n HarnessToolsetOptions,\n JsonSchema,\n StandardJsonSchema,\n ToolOutput,\n ToolValidation,\n} from \"./domain/tool.types.ts\";\nexport { TransportConflict } from \"./domain/transport.ts\";\nexport type {\n Transport,\n TransportEntry,\n TransportObject,\n TransportReadOptions,\n TransportWriteOptions,\n TransportReference,\n TransportStoreOptions,\n} from \"./domain/transport.types.ts\";\nexport { localTransport } from \"./infrastructure/local-transport.ts\";\nexport type { LocalTransportOptions } from \"./infrastructure/local-transport.types.ts\";\nexport { artifactStore } from \"./infrastructure/transport-artifact-store.ts\";\nexport type { ArtifactStoreOptions } from \"./infrastructure/transport-artifact-store.types.ts\";\nexport {\n workflowCheckpointStore,\n recoverWorkflowCheckpoint,\n} from \"./infrastructure/transport-checkpoint.ts\";\nexport type { CheckpointRecoveryOptions } from \"./infrastructure/transport-checkpoint.types.ts\";\nexport { readJournal } from \"./infrastructure/transport-journal.ts\";\nexport type { ReadJournalOptions } from \"./infrastructure/transport-journal.types.ts\";\nexport { transportConversations } from \"./infrastructure/transport-conversations.ts\";\nexport type { TransportConversationOptions } from \"./infrastructure/transport-conversations.types.ts\";\nexport {\n archiveRecovery,\n materializeRecoveryArchive,\n} from \"./application/recovery-archive.ts\";\nexport type {\n RecoveryArchiveOptions,\n RecoveryArchiveRestoreOptions,\n} from \"./application/recovery-archive.types.ts\";\n\nexport {\n attach,\n createSandbox,\n dispatch,\n openWorkspace,\n} from \"./application/outpost.ts\";\n\nexport type {\n AttachOptions,\n AttachResult,\n ContinuationOptions,\n DispatchResult,\n Sandbox,\n SandboxOptions,\n WarmDispatchResult,\n Workspace,\n WorkspaceOptions,\n} from \"./application/outpost.ts\";\n\nexport type {\n DispatchOptions,\n Execution,\n Turn,\n} from \"./application/execution.ts\";\n\nexport {\n WorkflowFailure,\n WorkflowBudgetExceeded,\n task,\n workflow,\n} from \"./domain/workflow.ts\";\n\nexport type {\n Retry,\n Task,\n TaskContext,\n TaskOptions,\n TaskRecord,\n TaskStatus,\n Workflow,\n WorkflowEvent,\n WorkflowOptions,\n WorkflowBudget,\n WorkflowUsage,\n WorkflowResult,\n WorkflowTelemetry,\n} from \"./domain/workflow.ts\";\n\nexport { agentTask, commandTask, isolatedTask } from \"./application/tasks.ts\";\n\nexport {\n claudeHarness,\n codexHarness,\n geminiHarness,\n} from \"./providers/agents.ts\";\n\nexport { agentVersions } from \"./providers/versions.ts\";\n\nexport {\n conversations,\n harnessConversations,\n} from \"./infrastructure/conversations.ts\";\n\nexport type {\n ConversationFormat,\n ConversationLocation,\n StoredConversationFormat,\n} from \"./infrastructure/conversations.ts\";\n\nexport type {\n ClaudeSettings,\n CodexSettings,\n CodexModelProvider,\n GeminiSettings,\n} from \"./providers/agents.ts\";\n\nexport {\n mountedSandboxProvider,\n remoteSandboxProvider,\n} from \"./providers/factories.ts\";\n\nexport { ResponseError, response } from \"./domain/response.ts\";\n\nexport type { ResponseSpec, StandardValidator } from \"./domain/response.ts\";\n\nexport { OutpostError, recoveryDetails } from \"./domain/errors.ts\";\n\nexport type { FaultCode } from \"./domain/errors.ts\";\n\nexport type {\n AgentAdapter,\n AgentEvent,\n AgentInput,\n AgentObservation,\n BranchPolicy,\n Channel,\n Command,\n CommandResult,\n Commit,\n ConversationContext,\n ConversationRecord,\n ConversationStore,\n Disposal,\n LifecycleHooks,\n FileManifestEntry,\n FileTransfers,\n SandboxContext,\n SandboxLease,\n SandboxProvider,\n StageLimits,\n TransferOptions,\n Usage,\n Variables,\n Volume,\n WorkspaceRecord,\n} from \"./domain/ports.ts\";\n\nexport type { Brief, PromptVariables } from \"./domain/prompts.ts\";\n\nexport type { Logging } from \"./infrastructure/journal.ts\";\n\nexport { createReporter } from \"./infrastructure/custom-reporter.ts\";\nexport type {\n CustomReporter,\n CustomReporterOptions,\n ReporterHandlers,\n} from \"./infrastructure/custom-reporter.types.ts\";\nexport type {\n DispatchTelemetry,\n DispatchTelemetrySession,\n DispatchTelemetryOutcome,\n} from \"./domain/dispatch-telemetry.types.ts\";\nexport { reporter } from \"./infrastructure/reporter.ts\";\n\nexport type { ReporterOptions } from \"./infrastructure/reporter.ts\";\n\nexport type { VariableQuestion } from \"./application/interactive-brief.ts\";\n\nexport {\n planRecoveryRetention,\n pruneRecoveryRetention,\n assertRecoveryQuota,\n} from \"./application/recovery-retention.ts\";\nexport type {\n RecoveryRetentionPolicy,\n RecoveryRetentionOptions,\n RecoveryRetentionPlan,\n RecoveryRetentionEntry,\n RecoveryPruneResult,\n RecoveryQuotaOptions,\n} from \"./application/recovery-retention.types.ts\";\nexport { verifyRecoveryTransfer } from \"./application/recovery-verification.ts\";\nexport type {\n RecoveryVerification,\n RecoveryVerificationOptions,\n} from \"./application/recovery-verification.types.ts\";\n\nexport { diagnoseSandbox } from \"./application/doctor-sandbox.ts\";\nexport type {\n SandboxDiagnosticOptions,\n SandboxDiagnosticReport,\n DiagnosticCapability,\n} from \"./application/doctor-sandbox.types.ts\";\nexport type {\n DiagnosticCheck,\n DiagnosticStatus,\n DoctorAgent,\n} from \"./application/doctor.types.ts\";\nexport { diagnoseAgentProtocol } from \"./application/doctor-protocol.ts\";\nexport type { AgentProtocolReport } from \"./application/doctor-protocol.types.ts\";\n\nexport { reserveRecoveryStorage } from \"./application/storage-reservation.ts\";\nexport type { RecoveryStorageReservationOptions } from \"./application/storage-reservation.types.ts\";\nexport type {\n StorageReservation,\n StorageReservationOptions,\n} from \"./infrastructure/storage-reservations.types.ts\";\n\nexport {\n planRecoveryRestore,\n restoreRecoveryTransfer,\n} from \"./application/recovery-restore.ts\";\nexport type {\n RecoveryRestoreOptions,\n RecoveryRestorePlan,\n RecoveryRestoreResult,\n} from \"./application/recovery-restore.types.ts\";\n\nexport { fileWorkflowCheckpointStore } from \"./infrastructure/workflow-checkpoint.ts\";\nexport type { FileWorkflowCheckpointOptions } from \"./infrastructure/workflow-checkpoint.types.ts\";\nexport type {\n WorkflowCheckpoint,\n WorkflowCheckpointOptions,\n WorkflowCheckpointStore,\n WorkflowCheckpointLease,\n WorkflowCheckpointValue,\n WorkflowJson,\n} from \"./domain/workflow/checkpoint.types.ts\";\n\nexport { approvalTask, pauseTask } from \"./domain/workflow/gates.ts\";\nexport type {\n WorkflowGate,\n WorkflowGateOptions,\n WorkflowPauseRequest,\n WorkflowDecision,\n WorkflowDecisionRecord,\n} from \"./domain/workflow/gates.types.ts\";\n\nexport { inspectRecovery } from \"./application/recovery-inspection.ts\";\nexport type {\n RecoveryInspection,\n RecoveryInspectionOptions,\n} from \"./application/recovery-inspection.types.ts\";\nexport type {\n ResourceActivityRecord,\n ResourceInspection,\n ResourceInspectionEntry,\n ResourceOperation,\n ResourceOperationKind,\n ResourceOperationResult,\n ResourcePhase,\n} from \"./infrastructure/resource-activity.types.ts\";\n\nexport {\n artifact,\n publishArtifact,\n readStoredArtifact,\n} from \"./domain/artifact.ts\";\nexport { artifactTask, readArtifact } from \"./application/artifact-tasks.ts\";\nexport { fileArtifactStore } from \"./infrastructure/artifact-store.ts\";\nexport type {\n ArtifactContract,\n ArtifactContractOptions,\n ArtifactIdentity,\n ArtifactProducer,\n ArtifactReference,\n ArtifactStore,\n JsonArtifactOptions,\n PublishArtifactOptions,\n ReadArtifactOptions,\n} from \"./domain/artifact.types.ts\";\nexport type { ArtifactTaskOptions } from \"./application/artifact-tasks.types.ts\";\nexport type { FileArtifactStoreOptions } from \"./infrastructure/artifact-store.types.ts\";\n\nexport { sqliteTaskQueue } from \"./infrastructure/task-queue.ts\";\nexport {\n serveTaskQueue,\n httpTaskQueue,\n} from \"./infrastructure/task-queue-http.ts\";\nexport { runQueueWorker } from \"./application/queue-worker.ts\";\nexport { queuedTask } from \"./application/queued-task.ts\";\nexport type {\n QueueRequest,\n QueueResult,\n QueueJob,\n QueueClaim,\n QueueLease,\n TaskQueue,\n DurableTaskQueue,\n} from \"./domain/task-queue.types.ts\";\nexport type {\n QueueServerOptions,\n QueueServer,\n QueueClientOptions,\n} from \"./infrastructure/task-queue-http.types.ts\";\nexport type {\n QueueHandlerContext,\n QueueHandler,\n QueueWorkerOptions,\n} from \"./application/queue-worker.types.ts\";\nexport type { QueuedTaskOptions } from \"./application/queued-task.types.ts\";\n\nexport type { EgressPolicy } from \"./domain/egress.types.ts\";\n\nexport { speculate } from \"./application/speculation.ts\";\nexport type {\n SpeculationOptions,\n SpeculationResult,\n SpeculativeCandidate,\n SpeculativeCandidateResult,\n SpeculativeOutput,\n SpeculativeHostSnapshot,\n SpeculativeValidation,\n} from \"./application/speculation.types.ts\";\n\nexport { openaiModelProvider } from \"./adapters/models/openai-model-provider.ts\";\nexport type { OpenAIModelProviderOptions } from \"./adapters/models/openai-model-provider.types.ts\";\nexport type {\n AgentModel,\n ModelContentBlock,\n ModelMessage,\n ModelProvider,\n ModelReasoning,\n ModelReasoningBlock,\n ModelRequest,\n ModelResult,\n ModelSpec,\n ModelStopReason,\n ModelStreamEvent,\n ModelTextBlock,\n ModelToolCallBlock,\n ModelToolResultBlock,\n ModelToolSpec,\n} from \"./domain/model.types.ts\";\nexport { anthropicModelProvider } from \"./adapters/models/anthropic-model-provider.ts\";\nexport type { AnthropicModelProviderOptions } from \"./adapters/models/anthropic-model-provider.types.ts\";\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["export { agent } from \"./domain/agent.ts\";\nexport { defineHarnessSubagent } from \"./domain/subagent.ts\";\nexport type {\n HarnessSubagent,\n HarnessSubagentInput,\n HarnessSubagentOptions,\n} from \"./domain/subagent.types.ts\";\nexport { harness } from \"./domain/harness.ts\";\nexport {\n defineHarnessContextStrategy,\n summarizeHistory,\n truncateToolResults,\n} from \"./domain/context.ts\";\nexport type {\n HarnessContextInput,\n HarnessContextResult,\n HarnessContextStrategy,\n HarnessContextStrategyOptions,\n SummarizeHistoryOptions,\n TruncateToolResultsOptions,\n} from \"./domain/context.types.ts\";\nexport { defineHarnessHook } from \"./domain/hook.ts\";\nexport { defineHarnessSkill } from \"./domain/skill.ts\";\nexport type {\n HarnessSkill,\n HarnessSkillOptions,\n} from \"./domain/skill.types.ts\";\nexport { defineHarnessInstructions } from \"./domain/instructions.ts\";\nexport { defineHarnessPermissions } from \"./domain/permissions.ts\";\nexport type {\n HarnessHook,\n HarnessHookContext,\n HarnessHookDecisions,\n HarnessHookEvents,\n HarnessHookInput,\n HarnessHookOptions,\n HarnessHookPhase,\n HarnessHookResult,\n HarnessToolResultView,\n} from \"./domain/hook.types.ts\";\nexport type {\n HarnessPermissionRule,\n HarnessPermissions,\n HarnessPermissionsOptions,\n PermissionDecision,\n PermissionEffect,\n ToolResources,\n} from \"./domain/permissions.types.ts\";\nexport { defineHarnessTool, defineHarnessToolset } from \"./domain/tool.ts\";\nexport { harnessEditTools } from \"./adapters/tools/edit-tools.ts\";\nexport { harnessFileTools } from \"./adapters/tools/file-tools.ts\";\nexport { harnessGitTools } from \"./adapters/tools/git-tools.ts\";\nexport { harnessSearchTools } from \"./adapters/tools/search-tools.ts\";\nexport { harnessShellTools } from \"./adapters/tools/shell-tools.ts\";\nexport type { ShellToolsOptions } from \"./adapters/tools/tools.types.ts\";\nexport type {\n AccountCredential,\n AgentAuthentication,\n Agent,\n AgentOptions,\n AgentHarness,\n CliHarness,\n CliAgent,\n CustomAgent,\n UsageCredential,\n} from \"./domain/agent.types.ts\";\nexport type {\n Harness,\n HarnessOptions,\n HarnessInstructionContext,\n HarnessInstructions,\n HarnessInstructionSource,\n HarnessInstructionsOption,\n HarnessLimits,\n HarnessToolExecution,\n} from \"./domain/harness.types.ts\";\nexport type {\n HarnessTool,\n HarnessToolContext,\n HarnessToolEvent,\n HarnessToolOptions,\n HarnessToolset,\n HarnessToolsetOptions,\n JsonSchema,\n StandardJsonSchema,\n ToolOutput,\n ToolValidation,\n} from \"./domain/tool.types.ts\";\nexport { TransportConflict } from \"./domain/transport.ts\";\nexport type {\n Transport,\n TransportEntry,\n TransportObject,\n TransportReadOptions,\n TransportWriteOptions,\n TransportReference,\n TransportStoreOptions,\n} from \"./domain/transport.types.ts\";\nexport { localTransport } from \"./infrastructure/local-transport.ts\";\nexport type { LocalTransportOptions } from \"./infrastructure/local-transport.types.ts\";\nexport { artifactStore } from \"./infrastructure/transport-artifact-store.ts\";\nexport type { ArtifactStoreOptions } from \"./infrastructure/transport-artifact-store.types.ts\";\nexport {\n workflowCheckpointStore,\n recoverWorkflowCheckpoint,\n} from \"./infrastructure/transport-checkpoint.ts\";\nexport type { CheckpointRecoveryOptions } from \"./infrastructure/transport-checkpoint.types.ts\";\nexport { readJournal } from \"./infrastructure/transport-journal.ts\";\nexport type { ReadJournalOptions } from \"./infrastructure/transport-journal.types.ts\";\nexport { transportConversations } from \"./infrastructure/transport-conversations.ts\";\nexport type { TransportConversationOptions } from \"./infrastructure/transport-conversations.types.ts\";\nexport {\n archiveRecovery,\n materializeRecoveryArchive,\n} from \"./application/recovery-archive.ts\";\nexport type {\n RecoveryArchiveOptions,\n RecoveryArchiveRestoreOptions,\n} from \"./application/recovery-archive.types.ts\";\n\nexport {\n attach,\n createSandbox,\n dispatch,\n openWorkspace,\n} from \"./application/outpost.ts\";\n\nexport type {\n AttachOptions,\n AttachResult,\n ContinuationOptions,\n DispatchResult,\n Sandbox,\n SandboxOptions,\n WarmDispatchResult,\n Workspace,\n WorkspaceOptions,\n} from \"./application/outpost.ts\";\n\nexport type {\n DispatchOptions,\n Execution,\n Turn,\n} from \"./application/execution.ts\";\n\nexport {\n WorkflowFailure,\n WorkflowBudgetExceeded,\n WorkflowUsageUnavailable,\n task,\n workflow,\n} from \"./domain/workflow.ts\";\n\nexport type {\n Retry,\n Task,\n TaskContext,\n TaskOptions,\n TaskRecord,\n TaskStatus,\n Workflow,\n WorkflowEvent,\n WorkflowOptions,\n WorkflowBudget,\n WorkflowUsage,\n WorkflowResult,\n WorkflowTelemetry,\n} from \"./domain/workflow.ts\";\n\nexport { agentTask, commandTask, isolatedTask } from \"./application/tasks.ts\";\n\nexport {\n antigravityHarness,\n claudeHarness,\n codexHarness,\n copilotHarness,\n kimiHarness,\n} from \"./providers/agents.ts\";\n\nexport { agentVersions } from \"./providers/versions.ts\";\n\nexport {\n conversations,\n harnessConversations,\n} from \"./infrastructure/conversations.ts\";\n\nexport type {\n ConversationFormat,\n ConversationLocation,\n StoredConversationFormat,\n} from \"./infrastructure/conversations.ts\";\n\nexport type {\n AntigravitySettings,\n ClaudeSettings,\n CodexSettings,\n CodexModelProvider,\n CopilotSettings,\n KimiSettings,\n} from \"./providers/agents.ts\";\n\nexport {\n mountedSandboxProvider,\n remoteSandboxProvider,\n} from \"./providers/factories.ts\";\n\nexport { ResponseError, response } from \"./domain/response.ts\";\n\nexport type { ResponseSpec, StandardValidator } from \"./domain/response.ts\";\n\nexport { OutpostError, recoveryDetails } from \"./domain/errors.ts\";\n\nexport type { FaultCode } from \"./domain/errors.ts\";\n\nexport type {\n AgentAdapter,\n AgentEvent,\n AgentInput,\n AgentObservation,\n BranchPolicy,\n Channel,\n Command,\n CommandResult,\n Commit,\n ConversationContext,\n ConversationRecord,\n ConversationStore,\n Disposal,\n LifecycleHooks,\n FileManifestEntry,\n FileTransfers,\n SandboxContext,\n SandboxLease,\n SandboxProvider,\n StageLimits,\n TransferOptions,\n Usage,\n Variables,\n Volume,\n WorkspaceRecord,\n} from \"./domain/ports.ts\";\n\nexport type { Brief, PromptVariables } from \"./domain/prompts.ts\";\n\nexport type { Logging } from \"./infrastructure/journal.ts\";\n\nexport { createReporter } from \"./infrastructure/custom-reporter.ts\";\nexport type {\n CustomReporter,\n CustomReporterOptions,\n ReporterHandlers,\n} from \"./infrastructure/custom-reporter.types.ts\";\nexport type {\n DispatchTelemetry,\n DispatchTelemetrySession,\n DispatchTelemetryOutcome,\n} from \"./domain/dispatch-telemetry.types.ts\";\nexport { reporter } from \"./infrastructure/reporter.ts\";\n\nexport type { ReporterOptions } from \"./infrastructure/reporter.ts\";\n\nexport type { VariableQuestion } from \"./application/interactive-brief.ts\";\n\nexport {\n planRecoveryRetention,\n pruneRecoveryRetention,\n assertRecoveryQuota,\n} from \"./application/recovery-retention.ts\";\nexport type {\n RecoveryRetentionPolicy,\n RecoveryRetentionOptions,\n RecoveryRetentionPlan,\n RecoveryRetentionEntry,\n RecoveryPruneResult,\n RecoveryQuotaOptions,\n} from \"./application/recovery-retention.types.ts\";\nexport { verifyRecoveryTransfer } from \"./application/recovery-verification.ts\";\nexport type {\n RecoveryVerification,\n RecoveryVerificationOptions,\n} from \"./application/recovery-verification.types.ts\";\n\nexport { diagnoseSandbox } from \"./application/doctor-sandbox.ts\";\nexport type {\n SandboxDiagnosticOptions,\n SandboxDiagnosticReport,\n DiagnosticCapability,\n} from \"./application/doctor-sandbox.types.ts\";\nexport type {\n DiagnosticCheck,\n DiagnosticStatus,\n DoctorAgent,\n} from \"./application/doctor.types.ts\";\nexport { diagnoseAgentProtocol } from \"./application/doctor-protocol.ts\";\nexport type { AgentProtocolReport } from \"./application/doctor-protocol.types.ts\";\n\nexport { reserveRecoveryStorage } from \"./application/storage-reservation.ts\";\nexport type { RecoveryStorageReservationOptions } from \"./application/storage-reservation.types.ts\";\nexport type {\n StorageReservation,\n StorageReservationOptions,\n} from \"./infrastructure/storage-reservations.types.ts\";\n\nexport {\n planRecoveryRestore,\n restoreRecoveryTransfer,\n} from \"./application/recovery-restore.ts\";\nexport type {\n RecoveryRestoreOptions,\n RecoveryRestorePlan,\n RecoveryRestoreResult,\n} from \"./application/recovery-restore.types.ts\";\n\nexport type {\n WorkflowCheckpoint,\n WorkflowCheckpointOptions,\n WorkflowCheckpointStore,\n WorkflowCheckpointLease,\n WorkflowCheckpointValue,\n WorkflowJson,\n} from \"./domain/workflow/checkpoint.types.ts\";\n\nexport { approvalTask, pauseTask } from \"./domain/workflow/gates.ts\";\nexport type {\n WorkflowGate,\n WorkflowGateOptions,\n WorkflowPauseRequest,\n WorkflowDecision,\n WorkflowDecisionRecord,\n WorkflowDecisionProof,\n WorkflowDecisionVerification,\n WorkflowDecisionVerifier,\n} from \"./domain/workflow/gates.types.ts\";\n\nexport { inspectRecovery } from \"./application/recovery-inspection.ts\";\nexport type {\n RecoveryInspection,\n RecoveryInspectionOptions,\n} from \"./application/recovery-inspection.types.ts\";\nexport type {\n ResourceActivityRecord,\n ResourceInspection,\n ResourceInspectionEntry,\n ResourceOperation,\n ResourceOperationKind,\n ResourceOperationResult,\n ResourcePhase,\n} from \"./infrastructure/resource-activity.types.ts\";\n\nexport {\n artifact,\n publishArtifact,\n readStoredArtifact,\n} from \"./domain/artifact.ts\";\nexport { artifactTask, readArtifact } from \"./application/artifact-tasks.ts\";\nexport type {\n ArtifactContract,\n ArtifactContractOptions,\n ArtifactIdentity,\n ArtifactProducer,\n ArtifactReference,\n ArtifactStore,\n JsonArtifactOptions,\n PublishArtifactOptions,\n ReadArtifactOptions,\n} from \"./domain/artifact.types.ts\";\nexport type { ArtifactTaskOptions } from \"./application/artifact-tasks.types.ts\";\n\nexport { sqliteTaskQueue } from \"./infrastructure/task-queue.ts\";\nexport {\n serveTaskQueue,\n httpTaskQueue,\n} from \"./infrastructure/task-queue-http.ts\";\nexport { runQueueWorker } from \"./application/queue-worker.ts\";\nexport { queuedTask } from \"./application/queued-task.ts\";\nexport type {\n QueueRequest,\n QueueResult,\n QueueJob,\n QueueClaim,\n QueueLease,\n TaskQueue,\n DurableTaskQueue,\n} from \"./domain/task-queue.types.ts\";\nexport type {\n QueueServerOptions,\n QueueServer,\n QueueClientOptions,\n} from \"./infrastructure/task-queue-http.types.ts\";\nexport type {\n QueueHandlerContext,\n QueueHandler,\n QueueWorkerOptions,\n} from \"./application/queue-worker.types.ts\";\nexport type { QueuedTaskOptions } from \"./application/queued-task.types.ts\";\n\nexport type { EgressPolicy } from \"./domain/egress.types.ts\";\n\nexport { recoverSpeculation } from \"./infrastructure/speculation-store.ts\";\nexport type { SpeculationRecoveryOptions } from \"./infrastructure/speculation-store.types.ts\";\nexport { checkSpeculationIntegration } from \"./application/speculation-integration.ts\";\nexport { speculate } from \"./application/speculation.ts\";\nexport type {\n SpeculationDurability,\n SpeculationIntegration,\n SpeculationOptions,\n SpeculationResult,\n SpeculativeCandidate,\n SpeculativeCandidateResult,\n SpeculativeOutput,\n SpeculativeHostSnapshot,\n SpeculativeValidation,\n} from \"./application/speculation.types.ts\";\n\nexport { openaiModelProvider } from \"./adapters/models/openai-model-provider.ts\";\nexport type { OpenAIModelProviderOptions } from \"./adapters/models/openai-model-provider.types.ts\";\nexport type {\n AgentModel,\n ModelContentBlock,\n ModelMessage,\n ModelProvider,\n ModelReasoning,\n ModelReasoningBlock,\n ModelRequest,\n ModelResult,\n ModelSpec,\n ModelStopReason,\n ModelStreamEvent,\n ModelTextBlock,\n ModelToolCallBlock,\n ModelToolResultBlock,\n ModelToolSpec,\n} from \"./domain/model.types.ts\";\nexport { anthropicModelProvider } from \"./adapters/models/anthropic-model-provider.ts\";\nexport type { AnthropicModelProviderOptions } from \"./adapters/models/anthropic-model-provider.types.ts\";\n\nexport { createObservationHub } from \"./domain/observation.ts\";\nexport type {\n Observation,\n ObservationScope,\n ObservationSource,\n ObservationEvent,\n OperationEvent,\n ObservationHub,\n ObservationHubOptions,\n ObservationSink,\n} from \"./domain/observation.types.ts\";\n\nexport {\n signWorkflowDecision,\n ed25519DecisionVerifier,\n} from \"./infrastructure/workflow-decision-signature.ts\";\nexport type {\n WorkflowDecisionSigningOptions,\n WorkflowApproverKey,\n WorkflowDecisionVerifierOptions,\n} from \"./infrastructure/workflow-decision-signature.types.ts\";\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { sessionConversations } from "./session-bundle.js";
|
|
1
2
|
import { randomUUID } from "node:crypto";
|
|
2
3
|
import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
3
4
|
import { homedir } from "node:os";
|
|
@@ -11,6 +12,15 @@ import { locateConversation } from "./locate.js";
|
|
|
11
12
|
import { validId } from "./paths.js";
|
|
12
13
|
import { relocateTranscript } from "./relocate.js";
|
|
13
14
|
export async function captureConversation(format, id, repository, lease, staging, options = {}) {
|
|
15
|
+
if (format === "copilot" || format === "kimi") {
|
|
16
|
+
const record = await sessionConversations(format).capture(id, {
|
|
17
|
+
repository,
|
|
18
|
+
sandbox: lease,
|
|
19
|
+
staging,
|
|
20
|
+
...options,
|
|
21
|
+
});
|
|
22
|
+
return { ...record, format };
|
|
23
|
+
}
|
|
14
24
|
validId(id);
|
|
15
25
|
const home = options.home ?? homedir();
|
|
16
26
|
const layout = conversationLayout(format);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../src/infrastructure/conversations/capture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAMtD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAA0B,EAC1B,EAAU,EACV,UAAkB,EAClB,KAAmB,EACnB,OAAe,EACf,UAA0B,EAAE;IAE5B,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK;QAC1B,CAAC,CAAC;YACE,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC,MAAM,kBAAkB,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;iBACnE,IAAI;SACR;QACH,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC;YACjB,UAAU,EAAE,MAAM;YAClB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC;YACnD,MAAM,EAAE,qBAAqB;SAC9B,CAAC,CAAC;IACP,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM;QAChC,MAAM,IAAI,YAAY,CACpB,SAAS,EACT,8BAA8B,EAAE,oCAAoC,EACpE,EAAE,EAAE,EAAE,MAAM,EAAE,CACf,CAAC;IACJ,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9D,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACxC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,SAAS,CACb,IAAI,EACJ,kBAAkB,CAChB,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,EACjC,OAAO,CAAC,UAAU,CAAC,CACpB,EACD,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAC/B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAC3C,EAAE,EACF,WAAW,CACZ,CAAC;QACF,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK;YAC1B,CAAC,CAAC;gBACE,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAChE,IAAI,CACL;aACF;YACH,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC;gBACjB,UAAU,EAAE,MAAM;gBAClB,SAAS,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC;gBAC7D,MAAM,EAAE,qBAAqB;aAC9B,CAAC,CAAC;QACP,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YACrB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9D,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,EAAE,QAAQ,CAAC,CAAC;oBACvD,MAAM,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBACrC,MAAM,WAAW,GAAG,MAAM,eAAe,CACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,EACpC,KAAK,CAAC,QAAQ,CACZ,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,EACpC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAC5B,CACF,CAAC;oBACF,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBACvD,IAAI,CAAC;wBACH,MAAM,SAAS,CACb,WAAW,EACX,kBAAkB,CAChB,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,EAC/B,OAAO,CAAC,UAAU,CAAC,CACpB,EACD,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAC;oBACJ,CAAC;4BAAS,CAAC;wBACT,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrC,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,EAAE,CACZ,uCAAuC,MAAM,CAAC,KAAK,CAAC,EAAE,CACvD,CAAC;gBACJ,CAAC;YACH,CAAC;IACL,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { mkdir, readFile, rm, writeFile } from \"node:fs/promises\";\nimport { homedir } from \"node:os\";\nimport { dirname, join, posix, resolve } from \"node:path\";\nimport { OutpostError } from \"../../domain/errors.ts\";\nimport type { SandboxLease } from \"../../domain/sandbox.types.ts\";\nimport type {\n ConversationFormat,\n ConversationLocation,\n} from \"../conversations.types.ts\";\nimport { safeDestination } from \"../files.ts\";\nimport type { CaptureOptions } from \"./capture.types.ts\";\nimport { transcriptSearchBytes } from \"./conversation.constants.ts\";\nimport { files } from \"./files.ts\";\nimport { conversationLayout } from \"./layout.ts\";\nimport { locateConversation } from \"./locate.ts\";\nimport { validId } from \"./paths.ts\";\nimport { relocateTranscript } from \"./relocate.ts\";\n\nexport async function captureConversation(\n format: ConversationFormat,\n id: string,\n repository: string,\n lease: SandboxLease,\n staging: string,\n options: CaptureOptions = {},\n): Promise<ConversationLocation> {\n validId(id);\n const home = options.home ?? homedir();\n const layout = conversationLayout(format);\n const search = layout.remoteSearchRoot(lease.home);\n const pattern = layout.pattern(id);\n const result = options.local\n ? {\n status: 0,\n stdout: (await locateConversation(format, id, lease.root, lease.home))\n .file,\n }\n : await lease.invoke({\n executable: \"find\",\n arguments: [search, \"-type\", \"f\", \"-name\", pattern],\n retain: transcriptSearchBytes,\n });\n const remote = result.stdout.trim().split(\"\\n\").filter(Boolean)[0];\n if (result.status !== 0 || !remote)\n throw new OutpostError(\n \"session\",\n `Agent emitted conversation ${id} but its transcript is unavailable`,\n { id, search },\n );\n const file = layout.capturePath(id, repository, home, remote);\n await mkdir(staging, { recursive: true });\n const temporary = join(staging, `${randomUUID()}.jsonl`);\n await lease.download(remote, temporary);\n await mkdir(dirname(file), { recursive: true });\n try {\n await writeFile(\n file,\n relocateTranscript(\n await readFile(temporary, \"utf8\"),\n resolve(repository),\n ),\n { mode: 0o600 },\n );\n } finally {\n await rm(temporary, { force: true });\n }\n if (layout.sidecars) {\n const remoteSidecars = posix.join(\n posix.dirname(remote.replaceAll(\"\\\\\", \"/\")),\n id,\n \"subagents\",\n );\n const listed = options.local\n ? {\n status: 0,\n stdout: (await files(join(dirname(remote), id, \"subagents\"))).join(\n \"\\n\",\n ),\n }\n : await lease.invoke({\n executable: \"find\",\n arguments: [remoteSidecars, \"-type\", \"f\", \"-name\", \"*.jsonl\"],\n retain: transcriptSearchBytes,\n });\n if (listed.status === 0)\n for (const child of listed.stdout.split(\"\\n\").filter(Boolean)) {\n try {\n const scratch = join(staging, `${randomUUID()}.jsonl`);\n await lease.download(child, scratch);\n const destination = await safeDestination(\n join(dirname(file), id, \"subagents\"),\n posix.relative(\n remoteSidecars.replaceAll(\"\\\\\", \"/\"),\n child.replaceAll(\"\\\\\", \"/\"),\n ),\n );\n await mkdir(dirname(destination), { recursive: true });\n try {\n await writeFile(\n destination,\n relocateTranscript(\n await readFile(scratch, \"utf8\"),\n resolve(repository),\n ),\n { mode: 0o600 },\n );\n } finally {\n await rm(scratch, { force: true });\n }\n } catch (cause) {\n options.warn?.(\n `Could not capture child transcript: ${String(cause)}`,\n );\n }\n }\n }\n return { id, file, format };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../src/infrastructure/conversations/capture.ts"],"names":[],"mappings":"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","sourcesContent":["import { sessionConversations } from \"./session-bundle.ts\";\nimport { randomUUID } from \"node:crypto\";\nimport { mkdir, readFile, rm, writeFile } from \"node:fs/promises\";\nimport { homedir } from \"node:os\";\nimport { dirname, join, posix, resolve } from \"node:path\";\nimport { OutpostError } from \"../../domain/errors.ts\";\nimport type { SandboxLease } from \"../../domain/sandbox.types.ts\";\nimport type {\n ConversationFormat,\n ConversationLocation,\n} from \"../conversations.types.ts\";\nimport { safeDestination } from \"../files.ts\";\nimport type { CaptureOptions } from \"./capture.types.ts\";\nimport { transcriptSearchBytes } from \"./conversation.constants.ts\";\nimport { files } from \"./files.ts\";\nimport { conversationLayout } from \"./layout.ts\";\nimport { locateConversation } from \"./locate.ts\";\nimport { validId } from \"./paths.ts\";\nimport { relocateTranscript } from \"./relocate.ts\";\n\nexport async function captureConversation(\n format: ConversationFormat,\n id: string,\n repository: string,\n lease: SandboxLease,\n staging: string,\n options: CaptureOptions = {},\n): Promise<ConversationLocation> {\n if (format === \"copilot\" || format === \"kimi\") {\n const record = await sessionConversations(format).capture(id, {\n repository,\n sandbox: lease,\n staging,\n ...options,\n });\n return { ...record, format };\n }\n validId(id);\n const home = options.home ?? homedir();\n const layout = conversationLayout(format);\n const search = layout.remoteSearchRoot(lease.home);\n const pattern = layout.pattern(id);\n const result = options.local\n ? {\n status: 0,\n stdout: (await locateConversation(format, id, lease.root, lease.home))\n .file,\n }\n : await lease.invoke({\n executable: \"find\",\n arguments: [search, \"-type\", \"f\", \"-name\", pattern],\n retain: transcriptSearchBytes,\n });\n const remote = result.stdout.trim().split(\"\\n\").filter(Boolean)[0];\n if (result.status !== 0 || !remote)\n throw new OutpostError(\n \"session\",\n `Agent emitted conversation ${id} but its transcript is unavailable`,\n { id, search },\n );\n const file = layout.capturePath(id, repository, home, remote);\n await mkdir(staging, { recursive: true });\n const temporary = join(staging, `${randomUUID()}.jsonl`);\n await lease.download(remote, temporary);\n await mkdir(dirname(file), { recursive: true });\n try {\n await writeFile(\n file,\n relocateTranscript(\n await readFile(temporary, \"utf8\"),\n resolve(repository),\n ),\n { mode: 0o600 },\n );\n } finally {\n await rm(temporary, { force: true });\n }\n if (layout.sidecars) {\n const remoteSidecars = posix.join(\n posix.dirname(remote.replaceAll(\"\\\\\", \"/\")),\n id,\n \"subagents\",\n );\n const listed = options.local\n ? {\n status: 0,\n stdout: (await files(join(dirname(remote), id, \"subagents\"))).join(\n \"\\n\",\n ),\n }\n : await lease.invoke({\n executable: \"find\",\n arguments: [remoteSidecars, \"-type\", \"f\", \"-name\", \"*.jsonl\"],\n retain: transcriptSearchBytes,\n });\n if (listed.status === 0)\n for (const child of listed.stdout.split(\"\\n\").filter(Boolean)) {\n try {\n const scratch = join(staging, `${randomUUID()}.jsonl`);\n await lease.download(child, scratch);\n const destination = await safeDestination(\n join(dirname(file), id, \"subagents\"),\n posix.relative(\n remoteSidecars.replaceAll(\"\\\\\", \"/\"),\n child.replaceAll(\"\\\\\", \"/\"),\n ),\n );\n await mkdir(dirname(destination), { recursive: true });\n try {\n await writeFile(\n destination,\n relocateTranscript(\n await readFile(scratch, \"utf8\"),\n resolve(repository),\n ),\n { mode: 0o600 },\n );\n } finally {\n await rm(scratch, { force: true });\n }\n } catch (cause) {\n options.warn?.(\n `Could not capture child transcript: ${String(cause)}`,\n );\n }\n }\n }\n return { id, file, format };\n}\n"]}
|
|
@@ -23,6 +23,12 @@ export async function openTranscript(options) {
|
|
|
23
23
|
version: 1,
|
|
24
24
|
id,
|
|
25
25
|
model: options.model,
|
|
26
|
+
...(options.parentConversation
|
|
27
|
+
? { parentConversation: options.parentConversation }
|
|
28
|
+
: {}),
|
|
29
|
+
...(options.parentCallId
|
|
30
|
+
? { parentCallId: options.parentCallId }
|
|
31
|
+
: {}),
|
|
26
32
|
...(continuation ? { parent: continuation.id } : {}),
|
|
27
33
|
createdAt: new Date().toISOString(),
|
|
28
34
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-transcript.js","sourceRoot":"","sources":["../../../src/infrastructure/conversations/harness-transcript.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { appendFile, mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { dirname } from \"node:path\";\nimport {\n parseTranscript,\n transcriptMessages,\n} from \"../../domain/transcript.ts\";\nimport type { TranscriptRecord } from \"../../domain/transcript.types.ts\";\nimport { lock } from \"../git/lock.ts\";\nimport { harnessTranscriptPath } from \"./harness-store.ts\";\nimport type {\n TranscriptHandle,\n TranscriptOptions,\n} from \"./harness-transcript.types.ts\";\n\nexport async function openTranscript(\n options: TranscriptOptions,\n): Promise<TranscriptHandle> {\n const { continuation } = options;\n const source = continuation\n ? await options.store.locate(continuation.id, options.repository)\n : undefined;\n const text = source ? await readFile(source.file, \"utf8\") : undefined;\n const messages = text ? transcriptMessages(parseTranscript(text)) : [];\n const id =\n continuation && !continuation.fork ? continuation.id : randomUUID();\n const file = harnessTranscriptPath(options.repository, id);\n const release = await lock(options.repository, `harness-conversation:${id}`);\n try {\n await mkdir(dirname(file), { recursive: true, mode: 0o700 });\n if (!continuation || continuation.fork)\n await writeFile(\n file,\n lines([\n {\n type: \"session\",\n version: 1,\n id,\n model: options.model,\n ...(continuation ? { parent: continuation.id } : {}),\n createdAt: new Date().toISOString(),\n },\n ...(messages.length\n ? [{ type: \"compaction\" as const, messages }]\n : []),\n ]),\n { flag: \"wx\", mode: 0o600 },\n );\n if (continuation && !continuation.fork && source!.file !== file)\n await writeFile(file, text!, { mode: 0o600 });\n } catch (error) {\n await release();\n throw error;\n }\n return {\n id,\n messages,\n append: (record) => appendFile(file, lines([record]), { mode: 0o600 }),\n close: release,\n };\n}\n\nfunction lines(records: readonly TranscriptRecord[]): string {\n return records.map((record) => `${JSON.stringify(record)}\\n`).join(\"\");\n}\n"]}
|
|
1
|
+
{"version":3,"file":"harness-transcript.js","sourceRoot":"","sources":["../../../src/infrastructure/conversations/harness-transcript.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { appendFile, mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { dirname } from \"node:path\";\nimport {\n parseTranscript,\n transcriptMessages,\n} from \"../../domain/transcript.ts\";\nimport type { TranscriptRecord } from \"../../domain/transcript.types.ts\";\nimport { lock } from \"../git/lock.ts\";\nimport { harnessTranscriptPath } from \"./harness-store.ts\";\nimport type {\n TranscriptHandle,\n TranscriptOptions,\n} from \"./harness-transcript.types.ts\";\n\nexport async function openTranscript(\n options: TranscriptOptions,\n): Promise<TranscriptHandle> {\n const { continuation } = options;\n const source = continuation\n ? await options.store.locate(continuation.id, options.repository)\n : undefined;\n const text = source ? await readFile(source.file, \"utf8\") : undefined;\n const messages = text ? transcriptMessages(parseTranscript(text)) : [];\n const id =\n continuation && !continuation.fork ? continuation.id : randomUUID();\n const file = harnessTranscriptPath(options.repository, id);\n const release = await lock(options.repository, `harness-conversation:${id}`);\n try {\n await mkdir(dirname(file), { recursive: true, mode: 0o700 });\n if (!continuation || continuation.fork)\n await writeFile(\n file,\n lines([\n {\n type: \"session\",\n version: 1,\n id,\n model: options.model,\n ...(options.parentConversation\n ? { parentConversation: options.parentConversation }\n : {}),\n ...(options.parentCallId\n ? { parentCallId: options.parentCallId }\n : {}),\n ...(continuation ? { parent: continuation.id } : {}),\n createdAt: new Date().toISOString(),\n },\n ...(messages.length\n ? [{ type: \"compaction\" as const, messages }]\n : []),\n ]),\n { flag: \"wx\", mode: 0o600 },\n );\n if (continuation && !continuation.fork && source!.file !== file)\n await writeFile(file, text!, { mode: 0o600 });\n } catch (error) {\n await release();\n throw error;\n }\n return {\n id,\n messages,\n append: (record) => appendFile(file, lines([record]), { mode: 0o600 }),\n close: release,\n };\n}\n\nfunction lines(records: readonly TranscriptRecord[]): string {\n return records.map((record) => `${JSON.stringify(record)}\\n`).join(\"\");\n}\n"]}
|
|
@@ -5,6 +5,8 @@ export interface TranscriptOptions {
|
|
|
5
5
|
readonly repository: string;
|
|
6
6
|
readonly store: ConversationStore;
|
|
7
7
|
readonly model: string;
|
|
8
|
+
readonly parentConversation?: string;
|
|
9
|
+
readonly parentCallId?: string;
|
|
8
10
|
readonly continuation?: {
|
|
9
11
|
readonly id: string;
|
|
10
12
|
readonly fork?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-transcript.types.js","sourceRoot":"","sources":["../../../src/infrastructure/conversations/harness-transcript.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ConversationStore } from \"../../domain/conversation.types.ts\";\nimport type { ModelMessage } from \"../../domain/model.types.ts\";\nimport type { TranscriptRecord } from \"../../domain/transcript.types.ts\";\n\nexport interface TranscriptOptions {\n readonly repository: string;\n readonly store: ConversationStore;\n readonly model: string;\n readonly continuation?: { readonly id: string; readonly fork?: boolean };\n}\n\nexport interface TranscriptHandle {\n readonly id: string;\n readonly messages: readonly ModelMessage[];\n append(record: TranscriptRecord): Promise<void>;\n close(): Promise<void>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"harness-transcript.types.js","sourceRoot":"","sources":["../../../src/infrastructure/conversations/harness-transcript.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ConversationStore } from \"../../domain/conversation.types.ts\";\nimport type { ModelMessage } from \"../../domain/model.types.ts\";\nimport type { TranscriptRecord } from \"../../domain/transcript.types.ts\";\n\nexport interface TranscriptOptions {\n readonly repository: string;\n readonly store: ConversationStore;\n readonly model: string;\n readonly parentConversation?: string;\n readonly parentCallId?: string;\n readonly continuation?: { readonly id: string; readonly fork?: boolean };\n}\n\nexport interface TranscriptHandle {\n readonly id: string;\n readonly messages: readonly ModelMessage[];\n append(record: TranscriptRecord): Promise<void>;\n close(): Promise<void>;\n}\n"]}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { invariant } from "../../domain/errors.js";
|
|
1
2
|
import { claudeLayout } from "./claude-layout.js";
|
|
2
3
|
import { codexLayout } from "./codex-layout.js";
|
|
3
4
|
export function conversationLayout(format) {
|
|
5
|
+
invariant(format === "claude" || format === "codex", "This format stores a session bundle, not a single transcript");
|
|
4
6
|
const factories = { claude: claudeLayout, codex: codexLayout };
|
|
5
7
|
return factories[format]();
|
|
6
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/infrastructure/conversations/layout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/infrastructure/conversations/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,MAAM,UAAU,kBAAkB,CAChC,MAA0B;IAE1B,SAAS,CACP,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,OAAO,EACzC,8DAA8D,CAC/D,CAAC;IACF,MAAM,SAAS,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC/D,OAAO,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;AAC7B,CAAC","sourcesContent":["import { invariant } from \"../../domain/errors.ts\";\nimport type { ConversationFormat } from \"../conversations.types.ts\";\nimport { claudeLayout } from \"./claude-layout.ts\";\nimport { codexLayout } from \"./codex-layout.ts\";\nimport type { ConversationLayout } from \"./layout.types.ts\";\n\nexport function conversationLayout(\n format: ConversationFormat,\n): ConversationLayout {\n invariant(\n format === \"claude\" || format === \"codex\",\n \"This format stores a session bundle, not a single transcript\",\n );\n const factories = { claude: claudeLayout, codex: codexLayout };\n return factories[format]();\n}\n"]}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
+
import { sessionConversations } from "./session-bundle.js";
|
|
1
2
|
import { stat } from "node:fs/promises";
|
|
2
3
|
import { homedir } from "node:os";
|
|
3
4
|
import { OutpostError } from "../../domain/errors.js";
|
|
4
5
|
import { files } from "./files.js";
|
|
5
6
|
import { conversationLayout } from "./layout.js";
|
|
6
7
|
import { validId } from "./paths.js";
|
|
7
|
-
export async function locateConversation(format, id, repository, home
|
|
8
|
+
export async function locateConversation(format, id, repository, home) {
|
|
9
|
+
if (format === "copilot" || format === "kimi") {
|
|
10
|
+
const record = await sessionConversations(format).locate(id, repository, home);
|
|
11
|
+
return { ...record, format };
|
|
12
|
+
}
|
|
13
|
+
home ??= homedir();
|
|
8
14
|
validId(id);
|
|
9
15
|
const layout = conversationLayout(format);
|
|
10
16
|
const expected = layout.preferredPath?.(id, repository, home);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locate.js","sourceRoot":"","sources":["../../../src/infrastructure/conversations/locate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAKtD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAA0B,EAC1B,EAAU,EACV,UAAkB,EAClB,IAAI,GAAG,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"locate.js","sourceRoot":"","sources":["../../../src/infrastructure/conversations/locate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAKtD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAA0B,EAC1B,EAAU,EACV,UAAkB,EAClB,IAAa;IAEb,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC,MAAM,CACtD,EAAE,EACF,UAAU,EACV,IAAI,CACL,CAAC;QACF,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,KAAK,OAAO,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAC9D,IAAI,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE;QACrE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACjE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CACzB,CAAC;IACF,IAAI,KAAK;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC9C,MAAM,IAAI,YAAY,CACpB,SAAS,EACT,gBAAgB,EAAE,4BAA4B,MAAM,UAAU,EAC9D,EAAE,EAAE,EAAE,UAAU,EAAE,CACnB,CAAC;AACJ,CAAC","sourcesContent":["import { sessionConversations } from \"./session-bundle.ts\";\nimport { stat } from \"node:fs/promises\";\nimport { homedir } from \"node:os\";\nimport { OutpostError } from \"../../domain/errors.ts\";\nimport type {\n ConversationFormat,\n ConversationLocation,\n} from \"../conversations.types.ts\";\nimport { files } from \"./files.ts\";\nimport { conversationLayout } from \"./layout.ts\";\nimport { validId } from \"./paths.ts\";\n\nexport async function locateConversation(\n format: ConversationFormat,\n id: string,\n repository: string,\n home?: string,\n): Promise<ConversationLocation> {\n if (format === \"copilot\" || format === \"kimi\") {\n const record = await sessionConversations(format).locate(\n id,\n repository,\n home,\n );\n return { ...record, format };\n }\n home ??= homedir();\n validId(id);\n const layout = conversationLayout(format);\n const expected = layout.preferredPath?.(id, repository, home);\n if (expected && (await stat(expected).catch(() => undefined))?.isFile())\n return { id, file: expected, format };\n const found = (await files(layout.searchRoot(home))).find((file) =>\n layout.matches(file, id),\n );\n if (found) return { id, file: found, format };\n throw new OutpostError(\n \"session\",\n `Conversation ${id} was not found in native ${format} storage`,\n { id, repository },\n );\n}\n"]}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import { sessionConversations } from "./session-bundle.js";
|
|
1
2
|
import { invariant } from "../../domain/errors.js";
|
|
2
3
|
import { captureConversation } from "./capture.js";
|
|
3
4
|
import { locateConversation } from "./locate.js";
|
|
4
5
|
import { restoreConversation } from "./restore.js";
|
|
5
6
|
export function nativeConversations(format) {
|
|
7
|
+
if (format === "copilot" || format === "kimi")
|
|
8
|
+
return sessionConversations(format);
|
|
6
9
|
return {
|
|
7
10
|
name: format,
|
|
8
11
|
locate(id, repository, home) {
|
|
@@ -11,8 +14,12 @@ export function nativeConversations(format) {
|
|
|
11
14
|
capture(id, context) {
|
|
12
15
|
return captureConversation(format, id, context.repository, context.sandbox, context.staging, context);
|
|
13
16
|
},
|
|
14
|
-
restore(record, context) {
|
|
17
|
+
async restore(record, context) {
|
|
15
18
|
invariant(record.format === format, "Conversation format does not match its storage");
|
|
19
|
+
if (context.local &&
|
|
20
|
+
context.sandbox.root === context.repository &&
|
|
21
|
+
record.reference === undefined)
|
|
22
|
+
return;
|
|
16
23
|
return restoreConversation({ ...record, format }, context.sandbox, context.staging);
|
|
17
24
|
},
|
|
18
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-store.js","sourceRoot":"","sources":["../../../src/infrastructure/conversations/native-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"native-store.js","sourceRoot":"","sources":["../../../src/infrastructure/conversations/native-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,UAAU,mBAAmB,CACjC,MAA0B;IAE1B,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM;QAC3C,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI;YACzB,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,CAAC,EAAE,EAAE,OAAO;YACjB,OAAO,mBAAmB,CACxB,MAAM,EACN,EAAE,EACF,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,EACf,OAAO,CACR,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO;YAC3B,SAAS,CACP,MAAM,CAAC,MAAM,KAAK,MAAM,EACxB,gDAAgD,CACjD,CAAC;YACF,IACE,OAAO,CAAC,KAAK;gBACb,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,UAAU;gBAC3C,MAAM,CAAC,SAAS,KAAK,SAAS;gBAE9B,OAAO;YACT,OAAO,mBAAmB,CACxB,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,EACrB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,CAChB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { sessionConversations } from \"./session-bundle.ts\";\nimport type { ConversationStore } from \"../../domain/conversation.types.ts\";\nimport { invariant } from \"../../domain/errors.ts\";\nimport type { ConversationFormat } from \"../conversations.types.ts\";\nimport { captureConversation } from \"./capture.ts\";\nimport { locateConversation } from \"./locate.ts\";\nimport { restoreConversation } from \"./restore.ts\";\n\nexport function nativeConversations(\n format: ConversationFormat,\n): ConversationStore {\n if (format === \"copilot\" || format === \"kimi\")\n return sessionConversations(format);\n return {\n name: format,\n locate(id, repository, home) {\n return locateConversation(format, id, repository, home);\n },\n capture(id, context) {\n return captureConversation(\n format,\n id,\n context.repository,\n context.sandbox,\n context.staging,\n context,\n );\n },\n async restore(record, context) {\n invariant(\n record.format === format,\n \"Conversation format does not match its storage\",\n );\n if (\n context.local &&\n context.sandbox.root === context.repository &&\n record.reference === undefined\n )\n return;\n return restoreConversation(\n { ...record, format },\n context.sandbox,\n context.staging,\n );\n },\n };\n}\n"]}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import { posix } from "node:path";
|
|
1
2
|
import { validId } from "./identity.js";
|
|
2
3
|
import { conversationLayout } from "./layout.js";
|
|
3
4
|
export { projectKey, validId } from "./identity.js";
|
|
4
5
|
export function remotePath(format, id, lease, original) {
|
|
5
6
|
validId(id);
|
|
7
|
+
if (format === "copilot" || format === "kimi")
|
|
8
|
+
return posix.join(lease.home, ".outpost", "conversations", format, `${id}.json`);
|
|
6
9
|
return conversationLayout(format).remotePath(id, lease, original);
|
|
7
10
|
}
|
|
8
11
|
//# sourceMappingURL=paths.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/infrastructure/conversations/paths.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/infrastructure/conversations/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAGlC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACpD,MAAM,UAAU,UAAU,CACxB,MAA0B,EAC1B,EAAU,EACV,KAAmB,EACnB,QAAgB;IAEhB,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM;QAC3C,OAAO,KAAK,CAAC,IAAI,CACf,KAAK,CAAC,IAAI,EACV,UAAU,EACV,eAAe,EACf,MAAM,EACN,GAAG,EAAE,OAAO,CACb,CAAC;IACJ,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACpE,CAAC","sourcesContent":["import { posix } from \"node:path\";\nimport type { SandboxLease } from \"../../domain/sandbox.types.ts\";\nimport type { ConversationFormat } from \"../conversations.types.ts\";\nimport { validId } from \"./identity.ts\";\nimport { conversationLayout } from \"./layout.ts\";\n\nexport { projectKey, validId } from \"./identity.ts\";\nexport function remotePath(\n format: ConversationFormat,\n id: string,\n lease: SandboxLease,\n original: string,\n): string {\n validId(id);\n if (format === \"copilot\" || format === \"kimi\")\n return posix.join(\n lease.home,\n \".outpost\",\n \"conversations\",\n format,\n `${id}.json`,\n );\n return conversationLayout(format).remotePath(id, lease, original);\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { sessionConversations } from "./session-bundle.js";
|
|
1
2
|
import { randomUUID } from "node:crypto";
|
|
2
3
|
import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
3
4
|
import { dirname, join, posix, relative } from "node:path";
|
|
@@ -6,6 +7,12 @@ import { conversationLayout } from "./layout.js";
|
|
|
6
7
|
import { remotePath } from "./paths.js";
|
|
7
8
|
import { relocateTranscript } from "./relocate.js";
|
|
8
9
|
export async function restoreConversation(location, lease, staging) {
|
|
10
|
+
if (location.format === "copilot" || location.format === "kimi")
|
|
11
|
+
return sessionConversations(location.format).restore(location, {
|
|
12
|
+
repository: lease.root,
|
|
13
|
+
sandbox: lease,
|
|
14
|
+
staging,
|
|
15
|
+
});
|
|
9
16
|
const target = remotePath(location.format, location.id, lease, location.file);
|
|
10
17
|
const contents = relocateTranscript(await readFile(location.file, "utf8"), lease.root);
|
|
11
18
|
const temporary = join(staging, `${randomUUID()}.jsonl`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../../src/infrastructure/conversations/restore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAA8B,EAC9B,KAAmB,EACnB,OAAe;IAEf,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,kBAAkB,CACjC,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,EACrC,KAAK,CAAC,IAAI,CACX,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACxE,KAAK,MAAM,IAAI,IAAI,MAAM,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,EAAE,QAAQ,CAAC,CAAC;YACrD,MAAM,SAAS,CACb,KAAK,EACL,kBAAkB,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,EAC5D,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAC;YACF,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,MAAM,CAChB,KAAK,EACL,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,CAClE,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { mkdir, readFile, rm, writeFile } from \"node:fs/promises\";\nimport { dirname, join, posix, relative } from \"node:path\";\nimport type { SandboxLease } from \"../../domain/sandbox.types.ts\";\nimport type { ConversationLocation } from \"../conversations.types.ts\";\nimport { files } from \"./files.ts\";\nimport { conversationLayout } from \"./layout.ts\";\nimport { remotePath } from \"./paths.ts\";\nimport { relocateTranscript } from \"./relocate.ts\";\n\nexport async function restoreConversation(\n location: ConversationLocation,\n lease: SandboxLease,\n staging: string,\n): Promise<void> {\n const target = remotePath(location.format, location.id, lease, location.file);\n const contents = relocateTranscript(\n await readFile(location.file, \"utf8\"),\n lease.root,\n );\n const temporary = join(staging, `${randomUUID()}.jsonl`);\n await mkdir(staging, { recursive: true });\n await writeFile(temporary, contents, { mode: 0o600 });\n try {\n await lease.upload(temporary, target);\n } finally {\n await rm(temporary, { force: true });\n }\n if (conversationLayout(location.format).sidecars) {\n const sidecars = join(dirname(location.file), location.id, \"subagents\");\n for (const file of await files(sidecars)) {\n const name = relative(sidecars, file).replaceAll(\"\\\\\", \"/\");\n const local = join(staging, `${randomUUID()}.jsonl`);\n await writeFile(\n local,\n relocateTranscript(await readFile(file, \"utf8\"), lease.root),\n { mode: 0o600 },\n );\n try {\n await lease.upload(\n local,\n posix.join(posix.dirname(target), location.id, \"subagents\", name),\n );\n } finally {\n await rm(local, { force: true });\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../../src/infrastructure/conversations/restore.ts"],"names":[],"mappings":"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","sourcesContent":["import { sessionConversations } from \"./session-bundle.ts\";\nimport { randomUUID } from \"node:crypto\";\nimport { mkdir, readFile, rm, writeFile } from \"node:fs/promises\";\nimport { dirname, join, posix, relative } from \"node:path\";\nimport type { SandboxLease } from \"../../domain/sandbox.types.ts\";\nimport type { ConversationLocation } from \"../conversations.types.ts\";\nimport { files } from \"./files.ts\";\nimport { conversationLayout } from \"./layout.ts\";\nimport { remotePath } from \"./paths.ts\";\nimport { relocateTranscript } from \"./relocate.ts\";\n\nexport async function restoreConversation(\n location: ConversationLocation,\n lease: SandboxLease,\n staging: string,\n): Promise<void> {\n if (location.format === \"copilot\" || location.format === \"kimi\")\n return sessionConversations(location.format).restore(location, {\n repository: lease.root,\n sandbox: lease,\n staging,\n });\n const target = remotePath(location.format, location.id, lease, location.file);\n const contents = relocateTranscript(\n await readFile(location.file, \"utf8\"),\n lease.root,\n );\n const temporary = join(staging, `${randomUUID()}.jsonl`);\n await mkdir(staging, { recursive: true });\n await writeFile(temporary, contents, { mode: 0o600 });\n try {\n await lease.upload(temporary, target);\n } finally {\n await rm(temporary, { force: true });\n }\n if (conversationLayout(location.format).sidecars) {\n const sidecars = join(dirname(location.file), location.id, \"subagents\");\n for (const file of await files(sidecars)) {\n const name = relative(sidecars, file).replaceAll(\"\\\\\", \"/\");\n const local = join(staging, `${randomUUID()}.jsonl`);\n await writeFile(\n local,\n relocateTranscript(await readFile(file, \"utf8\"), lease.root),\n { mode: 0o600 },\n );\n try {\n await lease.upload(\n local,\n posix.join(posix.dirname(target), location.id, \"subagents\", name),\n );\n } finally {\n await rm(local, { force: true });\n }\n }\n }\n}\n"]}
|