@intentic/sandbox-contract 1.248.0 → 1.250.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -15
- package/dist/chores/chores.d.ts.map +1 -1
- package/dist/chores/chores.js.map +1 -1
- package/dist/chores/digest.d.ts.map +1 -1
- package/dist/chores/digest.js.map +1 -1
- package/dist/chores/extension-update.d.ts.map +1 -1
- package/dist/chores/extension-update.js.map +1 -1
- package/dist/chores/fix-deps.d.ts.map +1 -1
- package/dist/chores/fix-deps.js.map +1 -1
- package/dist/chores/index.d.ts +2 -2
- package/dist/chores/index.d.ts.map +1 -1
- package/dist/chores/index.js +1 -1
- package/dist/chores/index.js.map +1 -1
- package/dist/chores/probes.d.ts.map +1 -1
- package/dist/chores/probes.js.map +1 -1
- package/dist/chores/prompt.d.ts.map +1 -1
- package/dist/chores/prompt.js.map +1 -1
- package/dist/chores/stack.d.ts.map +1 -1
- package/dist/chores/stack.js.map +1 -1
- package/dist/chores/verdict.d.ts +7 -1
- package/dist/chores/verdict.d.ts.map +1 -1
- package/dist/chores/verdict.js +8 -0
- package/dist/chores/verdict.js.map +1 -1
- package/dist/contracts/accounts.contract.d.ts.map +1 -1
- package/dist/contracts/accounts.contract.js.map +1 -1
- package/dist/contracts/activity.contract.d.ts +1 -0
- package/dist/contracts/activity.contract.d.ts.map +1 -1
- package/dist/contracts/agent.contract.d.ts +12 -205
- package/dist/contracts/agent.contract.d.ts.map +1 -1
- package/dist/contracts/agent.contract.js +2 -1
- package/dist/contracts/agent.contract.js.map +1 -1
- package/dist/contracts/agents.contract.d.ts +228 -54
- package/dist/contracts/agents.contract.d.ts.map +1 -1
- package/dist/contracts/agents.contract.js +11 -2
- package/dist/contracts/agents.contract.js.map +1 -1
- package/dist/contracts/automations.contract.d.ts +35 -17
- package/dist/contracts/automations.contract.d.ts.map +1 -1
- package/dist/contracts/automations.contract.js +10 -1
- package/dist/contracts/automations.contract.js.map +1 -1
- package/dist/contracts/capabilities.contract.d.ts +0 -12
- package/dist/contracts/capabilities.contract.d.ts.map +1 -1
- package/dist/contracts/capabilities.contract.js +1 -1
- package/dist/contracts/capabilities.contract.js.map +1 -1
- package/dist/contracts/chores.contract.d.ts.map +1 -1
- package/dist/contracts/chores.contract.js.map +1 -1
- package/dist/contracts/ci.contract.d.ts +9 -0
- package/dist/contracts/ci.contract.d.ts.map +1 -1
- package/dist/contracts/endpoints.contract.d.ts.map +1 -1
- package/dist/contracts/endpoints.contract.js.map +1 -1
- package/dist/contracts/exit.contract.d.ts.map +1 -1
- package/dist/contracts/exit.contract.js +1 -1
- package/dist/contracts/exit.contract.js.map +1 -1
- package/dist/contracts/extensions.contract.d.ts.map +1 -1
- package/dist/contracts/extensions.contract.js.map +1 -1
- package/dist/contracts/git.contract.d.ts +45 -6
- package/dist/contracts/git.contract.d.ts.map +1 -1
- package/dist/contracts/git.contract.js +9 -9
- package/dist/contracts/git.contract.js.map +1 -1
- package/dist/contracts/host.contract.d.ts +2 -0
- package/dist/contracts/host.contract.d.ts.map +1 -1
- package/dist/contracts/host.contract.js.map +1 -1
- package/dist/contracts/intentic.contract.js +1 -1
- package/dist/contracts/intentic.contract.js.map +1 -1
- package/dist/contracts/logs.contract.d.ts.map +1 -1
- package/dist/contracts/logs.contract.js.map +1 -1
- package/dist/contracts/loops.contract.d.ts.map +1 -1
- package/dist/contracts/loops.contract.js.map +1 -1
- package/dist/contracts/personas.contract.d.ts +1 -0
- package/dist/contracts/personas.contract.d.ts.map +1 -1
- package/dist/contracts/personas.contract.js +1 -1
- package/dist/contracts/personas.contract.js.map +1 -1
- package/dist/contracts/providers.contract.d.ts.map +1 -1
- package/dist/contracts/providers.contract.js.map +1 -1
- package/dist/contracts/runner.contract.d.ts +97 -171
- package/dist/contracts/runner.contract.d.ts.map +1 -1
- package/dist/contracts/runner.contract.js +2 -2
- package/dist/contracts/runner.contract.js.map +1 -1
- package/dist/contracts/safety.contract.d.ts.map +1 -1
- package/dist/contracts/safety.contract.js +1 -1
- package/dist/contracts/safety.contract.js.map +1 -1
- package/dist/contracts/secrets.contract.d.ts.map +1 -1
- package/dist/contracts/secrets.contract.js.map +1 -1
- package/dist/contracts/sessions.contract.d.ts +2 -41
- package/dist/contracts/sessions.contract.d.ts.map +1 -1
- package/dist/contracts/sessions.contract.js +1 -1
- package/dist/contracts/sessions.contract.js.map +1 -1
- package/dist/contracts/settings.contract.d.ts +8 -18
- package/dist/contracts/settings.contract.d.ts.map +1 -1
- package/dist/contracts/settings.contract.js.map +1 -1
- package/dist/contracts/share.contract.d.ts.map +1 -1
- package/dist/contracts/share.contract.js.map +1 -1
- package/dist/contracts/skills.contract.d.ts +6 -0
- package/dist/contracts/skills.contract.d.ts.map +1 -1
- package/dist/contracts/skills.contract.js +13 -4
- package/dist/contracts/skills.contract.js.map +1 -1
- package/dist/contracts/system.contract.d.ts +49 -73
- package/dist/contracts/system.contract.d.ts.map +1 -1
- package/dist/contracts/system.contract.js +12 -2
- package/dist/contracts/system.contract.js.map +1 -1
- package/dist/contracts/usage.contract.d.ts.map +1 -1
- package/dist/contracts/usage.contract.js.map +1 -1
- package/dist/contracts/vpn.contract.d.ts.map +1 -1
- package/dist/contracts/vpn.contract.js +1 -1
- package/dist/contracts/vpn.contract.js.map +1 -1
- package/dist/contracts/webext.contract.d.ts.map +1 -1
- package/dist/contracts/webext.contract.js.map +1 -1
- package/dist/contracts/workflows.contract.d.ts +7 -6
- package/dist/contracts/workflows.contract.d.ts.map +1 -1
- package/dist/contracts/workflows.contract.js +12 -3
- package/dist/contracts/workflows.contract.js.map +1 -1
- package/dist/contracts/workspace.contract.d.ts.map +1 -1
- package/dist/contracts/workspace.contract.js.map +1 -1
- package/dist/events/agent-events.d.ts +1237 -0
- package/dist/events/agent-events.d.ts.map +1 -0
- package/dist/events/agent-events.js +226 -0
- package/dist/events/agent-events.js.map +1 -0
- package/dist/events/cards.d.ts +404 -0
- package/dist/events/cards.d.ts.map +1 -0
- package/dist/events/cards.js +179 -0
- package/dist/events/cards.js.map +1 -0
- package/dist/events/resume.d.ts +23 -0
- package/dist/events/resume.d.ts.map +1 -0
- package/dist/events/resume.js +31 -0
- package/dist/events/resume.js.map +1 -0
- package/dist/events/system-events.d.ts +615 -0
- package/dist/events/system-events.d.ts.map +1 -0
- package/dist/events/system-events.js +64 -0
- package/dist/events/system-events.js.map +1 -0
- package/dist/events/transcript.d.ts +1755 -0
- package/dist/events/transcript.d.ts.map +1 -0
- package/dist/events/transcript.js +205 -0
- package/dist/events/transcript.js.map +1 -0
- package/dist/ids/conversation-ids.d.ts +8 -0
- package/dist/ids/conversation-ids.d.ts.map +1 -0
- package/dist/{conversation-ids.js → ids/conversation-ids.js} +13 -0
- package/dist/ids/conversation-ids.js.map +1 -0
- package/dist/ids/hostnames.d.ts.map +1 -0
- package/dist/ids/hostnames.js.map +1 -0
- package/dist/ids/session-names.d.ts.map +1 -0
- package/dist/ids/session-names.js.map +1 -0
- package/dist/ids/share-paths.d.ts.map +1 -0
- package/dist/ids/share-paths.js.map +1 -0
- package/dist/{tunnel-ids.d.ts → ids/tunnel-ids.d.ts} +1 -0
- package/dist/ids/tunnel-ids.d.ts.map +1 -0
- package/dist/{tunnel-ids.js → ids/tunnel-ids.js} +1 -0
- package/dist/ids/tunnel-ids.js.map +1 -0
- package/dist/index.d.ts +429 -450
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +54 -46
- package/dist/index.js.map +1 -1
- package/dist/{agent-catalog.d.ts → models/agent-catalog.d.ts} +2 -2
- package/dist/models/agent-catalog.d.ts.map +1 -0
- package/dist/models/agent-catalog.js.map +1 -0
- package/dist/models/agent-runtimes.d.ts.map +1 -0
- package/dist/models/agent-runtimes.js.map +1 -0
- package/dist/{fast-tier.d.ts → models/fast-tier.d.ts} +1 -1
- package/dist/models/fast-tier.d.ts.map +1 -0
- package/dist/models/fast-tier.js.map +1 -0
- package/dist/models/model-order.d.ts.map +1 -0
- package/dist/{model-order.js → models/model-order.js} +2 -0
- package/dist/models/model-order.js.map +1 -0
- package/dist/{model-pins.d.ts → models/model-pins.d.ts} +1 -1
- package/dist/models/model-pins.d.ts.map +1 -0
- package/dist/models/model-pins.js.map +1 -0
- package/dist/{model-roles.d.ts → models/model-roles.d.ts} +0 -33
- package/dist/models/model-roles.d.ts.map +1 -0
- package/dist/{model-roles.js → models/model-roles.js} +0 -35
- package/dist/models/model-roles.js.map +1 -0
- package/dist/{plan-pools.d.ts → models/plan-pools.d.ts} +1 -1
- package/dist/models/plan-pools.d.ts.map +1 -0
- package/dist/models/plan-pools.js.map +1 -0
- package/dist/models/prompt-complexity.d.ts.map +1 -0
- package/dist/models/prompt-complexity.js.map +1 -0
- package/dist/models/provider-specs.d.ts.map +1 -0
- package/dist/models/provider-specs.js.map +1 -0
- package/dist/policy/approvals-execution.d.ts.map +1 -0
- package/dist/policy/approvals-execution.js.map +1 -0
- package/dist/{batch-runs.d.ts → policy/batch-runs.d.ts} +5 -1
- package/dist/policy/batch-runs.d.ts.map +1 -0
- package/dist/{batch-runs.js → policy/batch-runs.js} +10 -7
- package/dist/policy/batch-runs.js.map +1 -0
- package/dist/policy/capability-env.d.ts.map +1 -0
- package/dist/policy/capability-env.js.map +1 -0
- package/dist/policy/capability-secrets.d.ts.map +1 -0
- package/dist/policy/capability-secrets.js.map +1 -0
- package/dist/{card-status.d.ts → policy/card-status.d.ts} +2 -2
- package/dist/policy/card-status.d.ts.map +1 -0
- package/dist/{card-status.js → policy/card-status.js} +1 -5
- package/dist/policy/card-status.js.map +1 -0
- package/dist/{command-classes.d.ts → policy/command-classes.d.ts} +6 -2
- package/dist/policy/command-classes.d.ts.map +1 -0
- package/dist/{command-classes.js → policy/command-classes.js} +48 -11
- package/dist/policy/command-classes.js.map +1 -0
- package/dist/{command-run.d.ts → policy/command-run.d.ts} +1 -1
- package/dist/policy/command-run.d.ts.map +1 -0
- package/dist/policy/command-run.js.map +1 -0
- package/dist/policy/control-scopes.d.ts +16 -0
- package/dist/policy/control-scopes.d.ts.map +1 -0
- package/dist/policy/control-scopes.js +26 -0
- package/dist/policy/control-scopes.js.map +1 -0
- package/dist/policy/credential-material.d.ts.map +1 -0
- package/dist/policy/credential-material.js.map +1 -0
- package/dist/policy/needs-action.d.ts.map +1 -0
- package/dist/policy/needs-action.js.map +1 -0
- package/dist/policy/output-fields.d.ts.map +1 -0
- package/dist/policy/output-fields.js.map +1 -0
- package/dist/policy/overlay-lint.d.ts.map +1 -0
- package/dist/policy/overlay-lint.js.map +1 -0
- package/dist/policy/owner-ticket.d.ts.map +1 -0
- package/dist/{owner-ticket.js → policy/owner-ticket.js} +1 -1
- package/dist/policy/owner-ticket.js.map +1 -0
- package/dist/{safety-policy.d.ts → policy/safety-policy.d.ts} +6 -5
- package/dist/policy/safety-policy.d.ts.map +1 -0
- package/dist/{safety-policy.js → policy/safety-policy.js} +12 -12
- package/dist/policy/safety-policy.js.map +1 -0
- package/dist/policy/search-globs.d.ts.map +1 -0
- package/dist/policy/search-globs.js.map +1 -0
- package/dist/protocol/container-requirements.d.ts +20 -0
- package/dist/protocol/container-requirements.d.ts.map +1 -0
- package/dist/protocol/container-requirements.js +23 -0
- package/dist/protocol/container-requirements.js.map +1 -0
- package/dist/{host-protocol.d.ts → protocol/host-protocol.d.ts} +1 -0
- package/dist/protocol/host-protocol.d.ts.map +1 -0
- package/dist/{host-protocol.js → protocol/host-protocol.js} +1 -0
- package/dist/protocol/host-protocol.js.map +1 -0
- package/dist/protocol/ingress-contract.d.ts.map +1 -0
- package/dist/{ingress-contract.js → protocol/ingress-contract.js} +1 -1
- package/dist/protocol/ingress-contract.js.map +1 -0
- package/dist/protocol/ingress-protocol.d.ts.map +1 -0
- package/dist/protocol/ingress-protocol.js.map +1 -0
- package/dist/protocol/listener-protocol.d.ts.map +1 -0
- package/dist/{listener-protocol.js → protocol/listener-protocol.js} +1 -1
- package/dist/protocol/listener-protocol.js.map +1 -0
- package/dist/{peer-dial.d.ts → protocol/peer-dial.d.ts} +4 -1
- package/dist/protocol/peer-dial.d.ts.map +1 -0
- package/dist/{peer-dial.js → protocol/peer-dial.js} +51 -10
- package/dist/protocol/peer-dial.js.map +1 -0
- package/dist/protocol/peer-mcp-server.d.ts.map +1 -0
- package/dist/protocol/peer-mcp-server.js.map +1 -0
- package/dist/protocol/request-id.d.ts.map +1 -0
- package/dist/protocol/request-id.js.map +1 -0
- package/dist/protocol/routes.d.ts.map +1 -0
- package/dist/protocol/routes.js.map +1 -0
- package/dist/{runner-protocol.d.ts → protocol/runner-protocol.d.ts} +1 -0
- package/dist/protocol/runner-protocol.d.ts.map +1 -0
- package/dist/{runner-protocol.js → protocol/runner-protocol.js} +2 -1
- package/dist/protocol/runner-protocol.js.map +1 -0
- package/dist/protocol/sse.d.ts.map +1 -0
- package/dist/protocol/sse.js.map +1 -0
- package/dist/{terminal-protocol.d.ts → protocol/terminal-protocol.d.ts} +1 -3
- package/dist/protocol/terminal-protocol.d.ts.map +1 -0
- package/dist/protocol/terminal-protocol.js.map +1 -0
- package/dist/protocol/webext-links.d.ts.map +1 -0
- package/dist/protocol/webext-links.js.map +1 -0
- package/dist/{webext-protocol.d.ts → protocol/webext-protocol.d.ts} +1 -0
- package/dist/protocol/webext-protocol.d.ts.map +1 -0
- package/dist/{webext-protocol.js → protocol/webext-protocol.js} +1 -0
- package/dist/protocol/webext-protocol.js.map +1 -0
- package/dist/schemas/activity.d.ts +2 -0
- package/dist/schemas/activity.d.ts.map +1 -1
- package/dist/schemas/activity.js +4 -0
- package/dist/schemas/activity.js.map +1 -1
- package/dist/schemas/agent.d.ts +16 -4
- package/dist/schemas/agent.d.ts.map +1 -1
- package/dist/schemas/agent.js +21 -4
- package/dist/schemas/agent.js.map +1 -1
- package/dist/schemas/agents.d.ts +17 -4
- package/dist/schemas/agents.d.ts.map +1 -1
- package/dist/schemas/agents.js +15 -4
- package/dist/schemas/agents.js.map +1 -1
- package/dist/schemas/approvals.d.ts.map +1 -1
- package/dist/schemas/approvals.js.map +1 -1
- package/dist/schemas/automations.d.ts +54 -28
- package/dist/schemas/automations.d.ts.map +1 -1
- package/dist/schemas/automations.js +26 -8
- package/dist/schemas/automations.js.map +1 -1
- package/dist/schemas/capabilities.d.ts +0 -8
- package/dist/schemas/capabilities.d.ts.map +1 -1
- package/dist/schemas/capabilities.js +0 -4
- package/dist/schemas/capabilities.js.map +1 -1
- package/dist/schemas/ci.d.ts +10 -0
- package/dist/schemas/ci.d.ts.map +1 -1
- package/dist/schemas/ci.js +9 -1
- package/dist/schemas/ci.js.map +1 -1
- package/dist/schemas/codebase-health.d.ts.map +1 -1
- package/dist/schemas/codebase-health.js.map +1 -1
- package/dist/schemas/devices.d.ts +92 -0
- package/dist/schemas/devices.d.ts.map +1 -1
- package/dist/schemas/devices.js +12 -1
- package/dist/schemas/devices.js.map +1 -1
- package/dist/schemas/engines.d.ts.map +1 -1
- package/dist/schemas/engines.js.map +1 -1
- package/dist/schemas/environment.d.ts.map +1 -1
- package/dist/schemas/environment.js.map +1 -1
- package/dist/schemas/exit.d.ts.map +1 -1
- package/dist/schemas/exit.js.map +1 -1
- package/dist/schemas/extension-updates.d.ts.map +1 -1
- package/dist/schemas/extension-updates.js.map +1 -1
- package/dist/schemas/git-history.d.ts.map +1 -1
- package/dist/schemas/git-history.js.map +1 -1
- package/dist/schemas/git.d.ts +80 -16
- package/dist/schemas/git.d.ts.map +1 -1
- package/dist/schemas/git.js +37 -25
- package/dist/schemas/git.js.map +1 -1
- package/dist/schemas/history.d.ts.map +1 -1
- package/dist/schemas/history.js.map +1 -1
- package/dist/schemas/hosts.d.ts.map +1 -1
- package/dist/schemas/hosts.js.map +1 -1
- package/dist/schemas/inventory.d.ts.map +1 -1
- package/dist/schemas/inventory.js.map +1 -1
- package/dist/schemas/issues.d.ts +0 -1
- package/dist/schemas/issues.d.ts.map +1 -1
- package/dist/schemas/issues.js +0 -1
- package/dist/schemas/issues.js.map +1 -1
- package/dist/schemas/logs.d.ts.map +1 -1
- package/dist/schemas/logs.js.map +1 -1
- package/dist/schemas/loops.d.ts.map +1 -1
- package/dist/schemas/loops.js +1 -1
- package/dist/schemas/loops.js.map +1 -1
- package/dist/schemas/maintenance.d.ts.map +1 -1
- package/dist/schemas/maintenance.js.map +1 -1
- package/dist/schemas/marketplace.d.ts +0 -4
- package/dist/schemas/marketplace.d.ts.map +1 -1
- package/dist/schemas/panels.d.ts.map +1 -1
- package/dist/schemas/panels.js.map +1 -1
- package/dist/schemas/personas.d.ts +2 -1
- package/dist/schemas/personas.d.ts.map +1 -1
- package/dist/schemas/personas.js +6 -2
- package/dist/schemas/personas.js.map +1 -1
- package/dist/schemas/plan-limits.d.ts +2 -4
- package/dist/schemas/plan-limits.d.ts.map +1 -1
- package/dist/schemas/plan-limits.js +5 -8
- package/dist/schemas/plan-limits.js.map +1 -1
- package/dist/schemas/ports.d.ts.map +1 -1
- package/dist/schemas/ports.js.map +1 -1
- package/dist/schemas/provider-oauth.d.ts.map +1 -1
- package/dist/schemas/provider-oauth.js.map +1 -1
- package/dist/schemas/provider-subscriptions.d.ts +1 -1
- package/dist/schemas/provider-subscriptions.d.ts.map +1 -1
- package/dist/schemas/provider-subscriptions.js +1 -1
- package/dist/schemas/provider-subscriptions.js.map +1 -1
- package/dist/schemas/public.d.ts.map +1 -1
- package/dist/schemas/public.js.map +1 -1
- package/dist/schemas/push.d.ts.map +1 -1
- package/dist/schemas/push.js.map +1 -1
- package/dist/schemas/secrets.d.ts.map +1 -1
- package/dist/schemas/secrets.js.map +1 -1
- package/dist/schemas/settings.d.ts +11 -9
- package/dist/schemas/settings.d.ts.map +1 -1
- package/dist/schemas/settings.js +22 -7
- package/dist/schemas/settings.js.map +1 -1
- package/dist/schemas/share.d.ts.map +1 -1
- package/dist/schemas/share.js.map +1 -1
- package/dist/schemas/shared.d.ts +4 -0
- package/dist/schemas/shared.d.ts.map +1 -1
- package/dist/schemas/shared.js +3 -0
- package/dist/schemas/shared.js.map +1 -1
- package/dist/schemas/system.d.ts +6 -0
- package/dist/schemas/system.d.ts.map +1 -1
- package/dist/schemas/system.js +10 -0
- package/dist/schemas/system.js.map +1 -1
- package/dist/schemas/terminal.d.ts.map +1 -1
- package/dist/schemas/terminal.js.map +1 -1
- package/dist/schemas/usage.d.ts.map +1 -1
- package/dist/schemas/usage.js.map +1 -1
- package/dist/schemas/vpn.d.ts.map +1 -1
- package/dist/schemas/vpn.js.map +1 -1
- package/dist/schemas/webext.d.ts.map +1 -1
- package/dist/schemas/webext.js.map +1 -1
- package/dist/schemas/workflows.d.ts +66 -9
- package/dist/schemas/workflows.d.ts.map +1 -1
- package/dist/schemas/workflows.js +6 -5
- package/dist/schemas/workflows.js.map +1 -1
- package/dist/schemas/workspace-repos.d.ts.map +1 -1
- package/dist/schemas/workspace-repos.js.map +1 -1
- package/dist/schemas/workspace-search.d.ts.map +1 -1
- package/dist/schemas/workspace-search.js.map +1 -1
- package/dist/schemas/workspace-setup.d.ts.map +1 -1
- package/dist/schemas/workspace-setup.js.map +1 -1
- package/dist/schemas/workspace-tree.d.ts.map +1 -1
- package/dist/schemas/workspace-tree.js.map +1 -1
- package/dist/state/arrival.d.ts.map +1 -0
- package/dist/{arrival.js → state/arrival.js} +1 -1
- package/dist/state/arrival.js.map +1 -0
- package/dist/state/contract-lock.d.ts.map +1 -0
- package/dist/{contract-lock.js → state/contract-lock.js} +1 -1
- package/dist/state/contract-lock.js.map +1 -0
- package/dist/{definition.d.ts → state/definition.d.ts} +21 -17
- package/dist/state/definition.d.ts.map +1 -0
- package/dist/{definition.js → state/definition.js} +4 -4
- package/dist/state/definition.js.map +1 -0
- package/dist/state/history-state.d.ts.map +1 -0
- package/dist/{history-state.js → state/history-state.js} +1 -0
- package/dist/state/history-state.js.map +1 -0
- package/dist/state/runtime-state.d.ts.map +1 -0
- package/dist/state/runtime-state.js.map +1 -0
- package/dist/state/starter.d.ts.map +1 -0
- package/dist/state/starter.js.map +1 -0
- package/dist/state/state-portability.d.ts.map +1 -0
- package/dist/state/state-portability.js.map +1 -0
- package/dist/state/versions.d.ts.map +1 -0
- package/dist/state/versions.js.map +1 -0
- package/dist/{workspace-state.d.ts → state/workspace-state.d.ts} +8 -0
- package/dist/state/workspace-state.d.ts.map +1 -0
- package/dist/{workspace-state.js → state/workspace-state.js} +25 -0
- package/dist/state/workspace-state.js.map +1 -0
- package/dist/{documents.d.ts → text/documents.d.ts} +1 -1
- package/dist/text/documents.d.ts.map +1 -0
- package/dist/{documents.js → text/documents.js} +1 -1
- package/dist/text/documents.js.map +1 -0
- package/dist/text/embed.d.ts.map +1 -0
- package/dist/text/embed.js.map +1 -0
- package/dist/text/mentions.d.ts.map +1 -0
- package/dist/text/mentions.js.map +1 -0
- package/dist/text/model-answer.d.ts +3 -0
- package/dist/text/model-answer.d.ts.map +1 -0
- package/dist/text/model-answer.js +3 -0
- package/dist/text/model-answer.js.map +1 -0
- package/dist/text/path-refs.d.ts.map +1 -0
- package/dist/text/path-refs.js.map +1 -0
- package/dist/{shell-regions.d.ts → text/shell-regions.d.ts} +1 -1
- package/dist/text/shell-regions.d.ts.map +1 -0
- package/dist/text/shell-regions.js.map +1 -0
- package/dist/text/title.d.ts.map +1 -0
- package/dist/text/title.js.map +1 -0
- package/dist/{transcript-fold.d.ts → text/transcript-fold.d.ts} +2 -1
- package/dist/text/transcript-fold.d.ts.map +1 -0
- package/dist/{transcript-fold.js → text/transcript-fold.js} +2 -16
- package/dist/text/transcript-fold.js.map +1 -0
- package/dist/text/whisper.d.ts +3 -0
- package/dist/text/whisper.d.ts.map +1 -0
- package/dist/text/whisper.js +11 -0
- package/dist/text/whisper.js.map +1 -0
- package/dist/{workflow-faults.d.ts → text/workflow-faults.d.ts} +1 -1
- package/dist/text/workflow-faults.d.ts.map +1 -0
- package/dist/{workflow-faults.js → text/workflow-faults.js} +1 -1
- package/dist/text/workflow-faults.js.map +1 -0
- package/package.json +70 -70
- package/src/chores/chores.test.ts +4 -10
- package/src/chores/chores.ts +148 -392
- package/src/chores/digest.ts +8 -28
- package/src/chores/extension-update.ts +3 -8
- package/src/chores/fix-deps.ts +4 -18
- package/src/chores/index.ts +2 -2
- package/src/chores/probes.test.ts +7 -43
- package/src/chores/probes.ts +62 -167
- package/src/chores/prompt.ts +10 -34
- package/src/chores/stack.test.ts +6 -45
- package/src/chores/stack.ts +27 -118
- package/src/chores/verdict.test.ts +101 -80
- package/src/chores/verdict.ts +54 -99
- package/src/contracts/accounts.contract.ts +4 -19
- package/src/contracts/agent.contract.ts +7 -22
- package/src/contracts/agents.contract.ts +25 -71
- package/src/contracts/automations.contract.ts +14 -30
- package/src/contracts/capabilities.contract.ts +8 -35
- package/src/contracts/chores.contract.ts +4 -15
- package/src/contracts/endpoints.contract.ts +5 -22
- package/src/contracts/exit.contract.ts +7 -30
- package/src/contracts/extensions.contract.ts +8 -30
- package/src/contracts/git.contract.ts +25 -49
- package/src/contracts/host.contract.ts +9 -44
- package/src/contracts/intentic.contract.ts +1 -1
- package/src/contracts/logs.contract.ts +3 -13
- package/src/contracts/loops.contract.ts +9 -40
- package/src/contracts/personas.contract.ts +10 -35
- package/src/contracts/providers.contract.ts +4 -17
- package/src/contracts/runner.contract.ts +12 -39
- package/src/contracts/safety.contract.ts +5 -14
- package/src/contracts/secrets.contract.ts +4 -22
- package/src/contracts/sessions.contract.ts +1 -1
- package/src/contracts/settings.contract.ts +4 -10
- package/src/contracts/share.contract.ts +3 -9
- package/src/contracts/skills.contract.ts +21 -19
- package/src/contracts/system.contract.ts +26 -52
- package/src/contracts/usage.contract.ts +7 -21
- package/src/contracts/vpn.contract.ts +9 -16
- package/src/contracts/webext.contract.ts +9 -25
- package/src/contracts/workflows.contract.ts +34 -58
- package/src/contracts/workspace.contract.ts +19 -50
- package/src/events/agent-events.ts +345 -0
- package/src/events/cards.ts +286 -0
- package/src/{events.test.ts → events/resume.test.ts} +4 -19
- package/src/events/resume.ts +60 -0
- package/src/events/system-events.ts +139 -0
- package/src/events/transcript.ts +320 -0
- package/src/{conversation-ids.test.ts → ids/conversation-ids.test.ts} +25 -13
- package/src/ids/conversation-ids.ts +178 -0
- package/src/ids/hostnames.ts +129 -0
- package/src/ids/session-names.ts +29 -0
- package/src/ids/share-paths.ts +43 -0
- package/src/{tunnel-ids.test.ts → ids/tunnel-ids.test.ts} +1 -14
- package/src/ids/tunnel-ids.ts +29 -0
- package/src/index.ts +71 -87
- package/src/{agent-catalog.test.ts → models/agent-catalog.test.ts} +19 -93
- package/src/models/agent-catalog.ts +174 -0
- package/src/models/agent-runtimes.ts +201 -0
- package/src/models/capability-ledger.test.ts +84 -0
- package/src/{fast-tier.test.ts → models/fast-tier.test.ts} +7 -18
- package/src/models/fast-tier.ts +36 -0
- package/src/{model-order.test.ts → models/model-order.test.ts} +54 -40
- package/src/models/model-order.ts +171 -0
- package/src/{model-pins.test.ts → models/model-pins.test.ts} +12 -46
- package/src/models/model-pins.ts +57 -0
- package/src/models/model-roles.test.ts +38 -0
- package/src/models/model-roles.ts +180 -0
- package/src/{plan-pools.test.ts → models/plan-pools.test.ts} +6 -11
- package/src/models/plan-pools.ts +65 -0
- package/src/{prompt-complexity.test.ts → models/prompt-complexity.test.ts} +8 -60
- package/src/models/prompt-complexity.ts +215 -0
- package/src/{provider-specs.test.ts → models/provider-specs.test.ts} +18 -47
- package/src/models/provider-specs.ts +272 -0
- package/src/policy/approvals-execution.ts +58 -0
- package/src/{batch-runs.test.ts → policy/batch-runs.test.ts} +4 -20
- package/src/policy/batch-runs.ts +137 -0
- package/src/policy/capability-secrets.ts +5 -0
- package/src/{card-status.ts → policy/card-status.ts} +11 -26
- package/src/{command-classes.test.ts → policy/command-classes.test.ts} +11 -118
- package/src/policy/command-classes.ts +395 -0
- package/src/policy/command-run.ts +65 -0
- package/src/policy/control-scopes.ts +38 -0
- package/src/{credential-material.test.ts → policy/credential-material.test.ts} +4 -26
- package/src/policy/credential-material.ts +91 -0
- package/src/policy/needs-action.ts +5 -0
- package/src/policy/output-fields.ts +86 -0
- package/src/policy/overlay-lint.ts +100 -0
- package/src/{owner-ticket.test.ts → policy/owner-ticket.test.ts} +1 -1
- package/src/{owner-ticket.ts → policy/owner-ticket.ts} +9 -31
- package/src/policy/safety-policy.test.ts +84 -0
- package/src/policy/safety-policy.ts +142 -0
- package/src/policy/search-globs.ts +60 -0
- package/src/protocol/container-requirements.test.ts +72 -0
- package/src/protocol/container-requirements.ts +58 -0
- package/src/protocol/host-protocol.ts +29 -0
- package/src/protocol/ingress-contract.ts +103 -0
- package/src/{ingress-protocol.test.ts → protocol/ingress-protocol.test.ts} +25 -90
- package/src/protocol/ingress-protocol.ts +441 -0
- package/src/protocol/listener-protocol.ts +75 -0
- package/src/{peer-dial.test.ts → protocol/peer-dial.test.ts} +52 -1
- package/src/protocol/peer-dial.ts +207 -0
- package/src/{peer-mcp-server.ts → protocol/peer-mcp-server.ts} +16 -41
- package/src/protocol/request-id.ts +5 -0
- package/src/{routes.test.ts → protocol/routes.test.ts} +14 -22
- package/src/protocol/routes.ts +159 -0
- package/src/protocol/runner-protocol.ts +197 -0
- package/src/protocol/terminal-protocol.ts +13 -0
- package/src/protocol/webext-links.ts +50 -0
- package/src/protocol/webext-protocol.ts +24 -0
- package/src/schemas/activity.ts +22 -30
- package/src/schemas/agent.ts +130 -238
- package/src/schemas/agents.ts +165 -483
- package/src/schemas/approvals.ts +23 -71
- package/src/schemas/automations.ts +142 -250
- package/src/schemas/capabilities.ts +127 -414
- package/src/schemas/ci.ts +56 -108
- package/src/schemas/codebase-health.ts +7 -11
- package/src/schemas/devices.ts +103 -321
- package/src/schemas/engines.ts +16 -44
- package/src/schemas/environment.ts +41 -91
- package/src/schemas/exit.ts +24 -81
- package/src/schemas/extension-updates.ts +42 -87
- package/src/schemas/git-history.ts +30 -84
- package/src/schemas/git.ts +141 -256
- package/src/schemas/history.ts +14 -40
- package/src/schemas/hosts.ts +9 -15
- package/src/schemas/inventory.ts +8 -10
- package/src/schemas/issues.ts +66 -134
- package/src/schemas/logs.ts +15 -34
- package/src/schemas/loops.ts +46 -163
- package/src/schemas/maintenance.ts +47 -172
- package/src/schemas/panels.ts +20 -45
- package/src/schemas/personas.ts +50 -200
- package/src/schemas/plan-limits.ts +58 -197
- package/src/schemas/ports.ts +14 -32
- package/src/schemas/provider-oauth.ts +23 -76
- package/src/schemas/provider-subscriptions.ts +4 -13
- package/src/schemas/public.ts +4 -15
- package/src/schemas/push.ts +8 -36
- package/src/schemas/secrets.ts +20 -64
- package/src/schemas/settings.ts +182 -602
- package/src/schemas/share.ts +14 -32
- package/src/schemas/shared.ts +14 -13
- package/src/schemas/system.ts +46 -78
- package/src/schemas/terminal.ts +41 -120
- package/src/schemas/usage.ts +44 -233
- package/src/schemas/version-seam.test.ts +9 -26
- package/src/schemas/vpn.ts +27 -64
- package/src/schemas/webext.ts +22 -53
- package/src/schemas/workflows.ts +57 -183
- package/src/schemas/workspace-repos.ts +12 -24
- package/src/schemas/workspace-search.ts +17 -35
- package/src/schemas/workspace-setup.ts +4 -11
- package/src/schemas/workspace-tree.ts +32 -91
- package/src/state/arrival.ts +109 -0
- package/src/state/contract-lock.test.ts +17 -0
- package/src/state/contract-lock.ts +49 -0
- package/src/state/definition.ts +143 -0
- package/src/state/history-state.ts +103 -0
- package/src/{runtime-state.test.ts → state/runtime-state.test.ts} +3 -10
- package/src/state/runtime-state.ts +63 -0
- package/src/state/starter.ts +5 -0
- package/src/state/state-portability.ts +27 -0
- package/src/state/versions.ts +26 -0
- package/src/{workspace-state.test.ts → state/workspace-state.test.ts} +65 -172
- package/src/state/workspace-state.ts +669 -0
- package/src/{documents.test.ts → text/documents.test.ts} +1 -1
- package/src/text/documents.ts +42 -0
- package/src/text/embed.ts +132 -0
- package/src/text/mentions.ts +21 -0
- package/src/text/model-answer.ts +9 -0
- package/src/text/path-refs.ts +39 -0
- package/src/text/shell-regions.ts +224 -0
- package/src/{title.test.ts → text/title.test.ts} +13 -32
- package/src/text/title.ts +202 -0
- package/src/{transcript-fold.test.ts → text/transcript-fold.test.ts} +5 -83
- package/src/{transcript-fold.ts → text/transcript-fold.ts} +65 -170
- package/src/text/whisper.test.ts +19 -0
- package/src/text/whisper.ts +17 -0
- package/src/{workflow-faults.test.ts → text/workflow-faults.test.ts} +6 -24
- package/src/{workflow-faults.ts → text/workflow-faults.ts} +20 -60
- package/dist/agent-catalog.d.ts.map +0 -1
- package/dist/agent-catalog.js.map +0 -1
- package/dist/agent-runtimes.d.ts.map +0 -1
- package/dist/agent-runtimes.js.map +0 -1
- package/dist/approvals-execution.d.ts.map +0 -1
- package/dist/approvals-execution.js.map +0 -1
- package/dist/arrival.d.ts.map +0 -1
- package/dist/arrival.js.map +0 -1
- package/dist/batch-runs.d.ts.map +0 -1
- package/dist/batch-runs.js.map +0 -1
- package/dist/capability-env.d.ts.map +0 -1
- package/dist/capability-env.js.map +0 -1
- package/dist/capability-secrets.d.ts.map +0 -1
- package/dist/capability-secrets.js.map +0 -1
- package/dist/card-status.d.ts.map +0 -1
- package/dist/card-status.js.map +0 -1
- package/dist/command-classes.d.ts.map +0 -1
- package/dist/command-classes.js.map +0 -1
- package/dist/command-run.d.ts.map +0 -1
- package/dist/command-run.js.map +0 -1
- package/dist/contract-lock.d.ts.map +0 -1
- package/dist/contract-lock.js.map +0 -1
- package/dist/conversation-ids.d.ts +0 -4
- package/dist/conversation-ids.d.ts.map +0 -1
- package/dist/conversation-ids.js.map +0 -1
- package/dist/credential-material.d.ts.map +0 -1
- package/dist/credential-material.js.map +0 -1
- package/dist/definition.d.ts.map +0 -1
- package/dist/definition.js.map +0 -1
- package/dist/documents.d.ts.map +0 -1
- package/dist/documents.js.map +0 -1
- package/dist/embed.d.ts.map +0 -1
- package/dist/embed.js.map +0 -1
- package/dist/events.d.ts +0 -4336
- package/dist/events.d.ts.map +0 -1
- package/dist/events.js +0 -725
- package/dist/events.js.map +0 -1
- package/dist/fast-tier.d.ts.map +0 -1
- package/dist/fast-tier.js.map +0 -1
- package/dist/history-state.d.ts.map +0 -1
- package/dist/history-state.js.map +0 -1
- package/dist/host-protocol.d.ts.map +0 -1
- package/dist/host-protocol.js.map +0 -1
- package/dist/hostnames.d.ts.map +0 -1
- package/dist/hostnames.js.map +0 -1
- package/dist/ingress-contract.d.ts.map +0 -1
- package/dist/ingress-contract.js.map +0 -1
- package/dist/ingress-protocol.d.ts.map +0 -1
- package/dist/ingress-protocol.js.map +0 -1
- package/dist/listener-protocol.d.ts.map +0 -1
- package/dist/listener-protocol.js.map +0 -1
- package/dist/mentions.d.ts.map +0 -1
- package/dist/mentions.js.map +0 -1
- package/dist/model-order.d.ts.map +0 -1
- package/dist/model-order.js.map +0 -1
- package/dist/model-pins.d.ts.map +0 -1
- package/dist/model-pins.js.map +0 -1
- package/dist/model-roles.d.ts.map +0 -1
- package/dist/model-roles.js.map +0 -1
- package/dist/needs-action.d.ts.map +0 -1
- package/dist/needs-action.js.map +0 -1
- package/dist/output-fields.d.ts.map +0 -1
- package/dist/output-fields.js.map +0 -1
- package/dist/overlay-lint.d.ts.map +0 -1
- package/dist/overlay-lint.js.map +0 -1
- package/dist/owner-ticket.d.ts.map +0 -1
- package/dist/owner-ticket.js.map +0 -1
- package/dist/path-refs.d.ts.map +0 -1
- package/dist/path-refs.js.map +0 -1
- package/dist/peer-dial.d.ts.map +0 -1
- package/dist/peer-dial.js.map +0 -1
- package/dist/peer-mcp-server.d.ts.map +0 -1
- package/dist/peer-mcp-server.js.map +0 -1
- package/dist/plan-pools.d.ts.map +0 -1
- package/dist/plan-pools.js.map +0 -1
- package/dist/prompt-complexity.d.ts.map +0 -1
- package/dist/prompt-complexity.js.map +0 -1
- package/dist/provider-specs.d.ts.map +0 -1
- package/dist/provider-specs.js.map +0 -1
- package/dist/request-id.d.ts.map +0 -1
- package/dist/request-id.js.map +0 -1
- package/dist/routes.d.ts.map +0 -1
- package/dist/routes.js.map +0 -1
- package/dist/runner-protocol.d.ts.map +0 -1
- package/dist/runner-protocol.js.map +0 -1
- package/dist/runtime-state.d.ts.map +0 -1
- package/dist/runtime-state.js.map +0 -1
- package/dist/safety-policy.d.ts.map +0 -1
- package/dist/safety-policy.js.map +0 -1
- package/dist/search-globs.d.ts.map +0 -1
- package/dist/search-globs.js.map +0 -1
- package/dist/session-names.d.ts.map +0 -1
- package/dist/session-names.js.map +0 -1
- package/dist/share-paths.d.ts.map +0 -1
- package/dist/share-paths.js.map +0 -1
- package/dist/shell-regions.d.ts.map +0 -1
- package/dist/shell-regions.js.map +0 -1
- package/dist/sse.d.ts.map +0 -1
- package/dist/sse.js.map +0 -1
- package/dist/starter.d.ts.map +0 -1
- package/dist/starter.js.map +0 -1
- package/dist/state-portability.d.ts.map +0 -1
- package/dist/state-portability.js.map +0 -1
- package/dist/terminal-protocol.d.ts.map +0 -1
- package/dist/terminal-protocol.js.map +0 -1
- package/dist/title.d.ts.map +0 -1
- package/dist/title.js.map +0 -1
- package/dist/transcript-fold.d.ts.map +0 -1
- package/dist/transcript-fold.js.map +0 -1
- package/dist/tunnel-ids.d.ts.map +0 -1
- package/dist/tunnel-ids.js.map +0 -1
- package/dist/versions.d.ts.map +0 -1
- package/dist/versions.js.map +0 -1
- package/dist/webext-links.d.ts.map +0 -1
- package/dist/webext-links.js.map +0 -1
- package/dist/webext-protocol.d.ts.map +0 -1
- package/dist/webext-protocol.js.map +0 -1
- package/dist/workflow-faults.d.ts.map +0 -1
- package/dist/workflow-faults.js.map +0 -1
- package/dist/workspace-state.d.ts.map +0 -1
- package/dist/workspace-state.js.map +0 -1
- package/src/agent-catalog.ts +0 -316
- package/src/agent-runtimes.ts +0 -419
- package/src/approvals-execution.ts +0 -96
- package/src/arrival.ts +0 -160
- package/src/batch-runs.ts +0 -188
- package/src/capability-ledger.test.ts +0 -140
- package/src/capability-secrets.ts +0 -20
- package/src/command-classes.ts +0 -617
- package/src/command-run.ts +0 -78
- package/src/contract-lock.test.ts +0 -23
- package/src/contract-lock.ts +0 -66
- package/src/conversation-ids.ts +0 -207
- package/src/credential-material.ts +0 -181
- package/src/definition.ts +0 -207
- package/src/documents.ts +0 -67
- package/src/embed.ts +0 -164
- package/src/events.ts +0 -1870
- package/src/fast-tier.ts +0 -72
- package/src/history-state.ts +0 -174
- package/src/host-protocol.ts +0 -36
- package/src/hostnames.ts +0 -180
- package/src/ingress-contract.ts +0 -157
- package/src/ingress-protocol.ts +0 -625
- package/src/listener-protocol.ts +0 -96
- package/src/mentions.ts +0 -25
- package/src/model-order.ts +0 -262
- package/src/model-pins.ts +0 -132
- package/src/model-roles.test.ts +0 -52
- package/src/model-roles.ts +0 -320
- package/src/needs-action.ts +0 -14
- package/src/output-fields.ts +0 -111
- package/src/overlay-lint.ts +0 -116
- package/src/path-refs.ts +0 -59
- package/src/peer-dial.ts +0 -163
- package/src/plan-pools.ts +0 -92
- package/src/prompt-complexity.ts +0 -334
- package/src/provider-specs.ts +0 -432
- package/src/request-id.ts +0 -41
- package/src/routes.ts +0 -219
- package/src/runner-protocol.ts +0 -239
- package/src/runtime-state.ts +0 -140
- package/src/safety-policy.test.ts +0 -88
- package/src/safety-policy.ts +0 -258
- package/src/search-globs.ts +0 -76
- package/src/session-names.ts +0 -44
- package/src/share-paths.ts +0 -68
- package/src/shell-regions.ts +0 -289
- package/src/starter.ts +0 -13
- package/src/state-portability.ts +0 -56
- package/src/terminal-protocol.ts +0 -16
- package/src/title.ts +0 -267
- package/src/tunnel-ids.ts +0 -57
- package/src/versions.ts +0 -48
- package/src/webext-links.ts +0 -90
- package/src/webext-protocol.ts +0 -27
- package/src/workspace-state.ts +0 -1090
- /package/dist/{hostnames.d.ts → ids/hostnames.d.ts} +0 -0
- /package/dist/{hostnames.js → ids/hostnames.js} +0 -0
- /package/dist/{session-names.d.ts → ids/session-names.d.ts} +0 -0
- /package/dist/{session-names.js → ids/session-names.js} +0 -0
- /package/dist/{share-paths.d.ts → ids/share-paths.d.ts} +0 -0
- /package/dist/{share-paths.js → ids/share-paths.js} +0 -0
- /package/dist/{agent-catalog.js → models/agent-catalog.js} +0 -0
- /package/dist/{agent-runtimes.d.ts → models/agent-runtimes.d.ts} +0 -0
- /package/dist/{agent-runtimes.js → models/agent-runtimes.js} +0 -0
- /package/dist/{fast-tier.js → models/fast-tier.js} +0 -0
- /package/dist/{model-order.d.ts → models/model-order.d.ts} +0 -0
- /package/dist/{model-pins.js → models/model-pins.js} +0 -0
- /package/dist/{plan-pools.js → models/plan-pools.js} +0 -0
- /package/dist/{prompt-complexity.d.ts → models/prompt-complexity.d.ts} +0 -0
- /package/dist/{prompt-complexity.js → models/prompt-complexity.js} +0 -0
- /package/dist/{provider-specs.d.ts → models/provider-specs.d.ts} +0 -0
- /package/dist/{provider-specs.js → models/provider-specs.js} +0 -0
- /package/dist/{approvals-execution.d.ts → policy/approvals-execution.d.ts} +0 -0
- /package/dist/{approvals-execution.js → policy/approvals-execution.js} +0 -0
- /package/dist/{capability-env.d.ts → policy/capability-env.d.ts} +0 -0
- /package/dist/{capability-env.js → policy/capability-env.js} +0 -0
- /package/dist/{capability-secrets.d.ts → policy/capability-secrets.d.ts} +0 -0
- /package/dist/{capability-secrets.js → policy/capability-secrets.js} +0 -0
- /package/dist/{command-run.js → policy/command-run.js} +0 -0
- /package/dist/{credential-material.d.ts → policy/credential-material.d.ts} +0 -0
- /package/dist/{credential-material.js → policy/credential-material.js} +0 -0
- /package/dist/{needs-action.d.ts → policy/needs-action.d.ts} +0 -0
- /package/dist/{needs-action.js → policy/needs-action.js} +0 -0
- /package/dist/{output-fields.d.ts → policy/output-fields.d.ts} +0 -0
- /package/dist/{output-fields.js → policy/output-fields.js} +0 -0
- /package/dist/{overlay-lint.d.ts → policy/overlay-lint.d.ts} +0 -0
- /package/dist/{overlay-lint.js → policy/overlay-lint.js} +0 -0
- /package/dist/{owner-ticket.d.ts → policy/owner-ticket.d.ts} +0 -0
- /package/dist/{search-globs.d.ts → policy/search-globs.d.ts} +0 -0
- /package/dist/{search-globs.js → policy/search-globs.js} +0 -0
- /package/dist/{ingress-contract.d.ts → protocol/ingress-contract.d.ts} +0 -0
- /package/dist/{ingress-protocol.d.ts → protocol/ingress-protocol.d.ts} +0 -0
- /package/dist/{ingress-protocol.js → protocol/ingress-protocol.js} +0 -0
- /package/dist/{listener-protocol.d.ts → protocol/listener-protocol.d.ts} +0 -0
- /package/dist/{peer-mcp-server.d.ts → protocol/peer-mcp-server.d.ts} +0 -0
- /package/dist/{peer-mcp-server.js → protocol/peer-mcp-server.js} +0 -0
- /package/dist/{request-id.d.ts → protocol/request-id.d.ts} +0 -0
- /package/dist/{request-id.js → protocol/request-id.js} +0 -0
- /package/dist/{routes.d.ts → protocol/routes.d.ts} +0 -0
- /package/dist/{routes.js → protocol/routes.js} +0 -0
- /package/dist/{sse.d.ts → protocol/sse.d.ts} +0 -0
- /package/dist/{sse.js → protocol/sse.js} +0 -0
- /package/dist/{terminal-protocol.js → protocol/terminal-protocol.js} +0 -0
- /package/dist/{webext-links.d.ts → protocol/webext-links.d.ts} +0 -0
- /package/dist/{webext-links.js → protocol/webext-links.js} +0 -0
- /package/dist/{arrival.d.ts → state/arrival.d.ts} +0 -0
- /package/dist/{contract-lock.d.ts → state/contract-lock.d.ts} +0 -0
- /package/dist/{history-state.d.ts → state/history-state.d.ts} +0 -0
- /package/dist/{runtime-state.d.ts → state/runtime-state.d.ts} +0 -0
- /package/dist/{runtime-state.js → state/runtime-state.js} +0 -0
- /package/dist/{starter.d.ts → state/starter.d.ts} +0 -0
- /package/dist/{starter.js → state/starter.js} +0 -0
- /package/dist/{state-portability.d.ts → state/state-portability.d.ts} +0 -0
- /package/dist/{state-portability.js → state/state-portability.js} +0 -0
- /package/dist/{versions.d.ts → state/versions.d.ts} +0 -0
- /package/dist/{versions.js → state/versions.js} +0 -0
- /package/dist/{embed.d.ts → text/embed.d.ts} +0 -0
- /package/dist/{embed.js → text/embed.js} +0 -0
- /package/dist/{mentions.d.ts → text/mentions.d.ts} +0 -0
- /package/dist/{mentions.js → text/mentions.js} +0 -0
- /package/dist/{path-refs.d.ts → text/path-refs.d.ts} +0 -0
- /package/dist/{path-refs.js → text/path-refs.js} +0 -0
- /package/dist/{shell-regions.js → text/shell-regions.js} +0 -0
- /package/dist/{title.d.ts → text/title.d.ts} +0 -0
- /package/dist/{title.js → text/title.js} +0 -0
- /package/src/{hostnames.test.ts → ids/hostnames.test.ts} +0 -0
- /package/src/{share-paths.test.ts → ids/share-paths.test.ts} +0 -0
- /package/src/{capability-env.ts → policy/capability-env.ts} +0 -0
- /package/src/{overlay-lint.test.ts → policy/overlay-lint.test.ts} +0 -0
- /package/src/{search-globs.test.ts → policy/search-globs.test.ts} +0 -0
- /package/src/{ingress-contract.test.ts → protocol/ingress-contract.test.ts} +0 -0
- /package/src/{peer-mcp-server.test.ts → protocol/peer-mcp-server.test.ts} +0 -0
- /package/src/{sse.ts → protocol/sse.ts} +0 -0
- /package/src/{versions.test.ts → state/versions.test.ts} +0 -0
- /package/src/{embed.test.ts → text/embed.test.ts} +0 -0
- /package/src/{mentions.test.ts → text/mentions.test.ts} +0 -0
- /package/src/{path-refs.test.ts → text/path-refs.test.ts} +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { eventIterator, oc } from "@orpc/contract";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import { SessionTranscriptSchema
|
|
3
|
+
import { SessionTranscriptSchema } from "../events/transcript.js";
|
|
4
|
+
import { SystemEventSchema } from "../events/system-events.js";
|
|
4
5
|
import {
|
|
5
6
|
DeviceAgentFlowInputSchema,
|
|
6
7
|
DeviceCommandInputSchema,
|
|
@@ -10,7 +11,7 @@ import {
|
|
|
10
11
|
} from "../schemas/devices.js";
|
|
11
12
|
import { PresenceReportSchema } from "../schemas/logs.js";
|
|
12
13
|
import { OkSchema } from "../schemas/shared.js";
|
|
13
|
-
import { DaemonSessionSchema, InfoSchema, ManifestProblemsSchema } from "../schemas/system.js";
|
|
14
|
+
import { DaemonSessionSchema, InfoSchema, ManifestProblemsSchema, ManifestRepairSchema } from "../schemas/system.js";
|
|
14
15
|
import {
|
|
15
16
|
BrowserNameParamSchema,
|
|
16
17
|
BrowsersListSchema,
|
|
@@ -23,11 +24,9 @@ import {
|
|
|
23
24
|
} from "../schemas/terminal.js";
|
|
24
25
|
import { UsageSummarySchema } from "../schemas/usage.js";
|
|
25
26
|
|
|
26
|
-
// Sandbox status
|
|
27
|
-
//
|
|
28
|
-
//
|
|
29
|
-
// aborts. `clientId` is the tab's per-connection presence key; absent (an older web client) means the
|
|
30
|
-
// connection simply never joins the roster.
|
|
27
|
+
// Sandbox status/identity, the long-lived liveness stream, and the connect-token-relayed host tunnel. `events`
|
|
28
|
+
// interleaves heartbeats, workspaceChanged batches and presence snapshots until the request aborts. `clientId` is this
|
|
29
|
+
// tab's presence key; omitting it means never joining the roster.
|
|
31
30
|
export const systemContract = {
|
|
32
31
|
info: oc
|
|
33
32
|
.route({
|
|
@@ -38,9 +37,7 @@ export const systemContract = {
|
|
|
38
37
|
"The sandbox's own identity and state: which workspace it holds, which image it runs, what it is called, and the list of calls it actually implements. Start here, because a browser is routinely newer than the sandbox it is talking to and this is how it finds out what is there.",
|
|
39
38
|
})
|
|
40
39
|
.output(InfoSchema),
|
|
41
|
-
//
|
|
42
|
-
// not recognise, an entry it skipped. Its own route rather than a field on /info because it is invalidated
|
|
43
|
-
// by a different thing: a manifest changing on disk, which the workspace-state table already broadcasts.
|
|
40
|
+
// Own route, not a field on /info: it goes stale on a manifest changing on disk, not on identity changing.
|
|
44
41
|
manifestProblems: oc
|
|
45
42
|
.route({
|
|
46
43
|
method: "GET",
|
|
@@ -50,8 +47,18 @@ export const systemContract = {
|
|
|
50
47
|
"Anything the daemon tripped over in its own configuration on disk: a file it had to fall back from, a key it did not recognise, an entry it skipped. Separate from the identity call because it goes stale for a different reason, namely a file changing.",
|
|
51
48
|
})
|
|
52
49
|
.output(ManifestProblemsSchema),
|
|
53
|
-
//
|
|
54
|
-
|
|
50
|
+
// Removes or renames only a key, never a value; writes queue through the owning store, not racing a live save.
|
|
51
|
+
repairManifest: oc
|
|
52
|
+
.route({
|
|
53
|
+
method: "POST",
|
|
54
|
+
path: "/system/manifest-problems/repair",
|
|
55
|
+
summary: "Take a stray setting out of a file",
|
|
56
|
+
description:
|
|
57
|
+
"Removes a key the sandbox does not recognise from one of its settings files, or renames it to the one it was probably meant to be, keeping the value. Only the files a person hand-edits can be named, and only a key — never a value — so this can only ever remove something already being ignored. Renaming onto a key the file already has is refused instead of overwriting it.",
|
|
58
|
+
})
|
|
59
|
+
.input(ManifestRepairSchema)
|
|
60
|
+
.output(OkSchema),
|
|
61
|
+
// Trades a verified bearer or unexpired session for a fresh daemon session; calling it again renews it.
|
|
55
62
|
session: oc
|
|
56
63
|
.route({
|
|
57
64
|
method: "POST",
|
|
@@ -91,10 +98,7 @@ export const systemContract = {
|
|
|
91
98
|
description: "Token and cost totals per account, added up from the record of every finished turn.",
|
|
92
99
|
})
|
|
93
100
|
.output(UsageSummarySchema),
|
|
94
|
-
//
|
|
95
|
-
// per name on load/reload); `killTerminal` destroys one when its tab's close button is clicked. The live I/O
|
|
96
|
-
// is the separate /system/terminal WebSocket, these are just the control plane. Bearer-authed like the rest
|
|
97
|
-
// (browser fetch sends the header), unlike the header-less WS route which app.ts exempts.
|
|
101
|
+
// Control plane only; live I/O is /system/terminal WebSocket, exempt from the Bearer auth these routes take.
|
|
98
102
|
terminals: oc
|
|
99
103
|
.route({
|
|
100
104
|
method: "GET",
|
|
@@ -113,9 +117,7 @@ export const systemContract = {
|
|
|
113
117
|
})
|
|
114
118
|
.input(TerminalNameParamSchema)
|
|
115
119
|
.output(OkSchema),
|
|
116
|
-
//
|
|
117
|
-
// whose live view is a tmux client on the alternate screen, where the scrollback is on the far side of the
|
|
118
|
-
// socket and the page has nothing to select. See TerminalScrollbackSchema.
|
|
120
|
+
// Scrollback as selectable text; the live view is a tmux alternate screen, with nothing in the page to select.
|
|
119
121
|
terminalScrollback: oc
|
|
120
122
|
.route({
|
|
121
123
|
method: "GET",
|
|
@@ -126,11 +128,7 @@ export const systemContract = {
|
|
|
126
128
|
})
|
|
127
129
|
.input(TerminalScrollbackQuerySchema)
|
|
128
130
|
.output(TerminalScrollbackSchema),
|
|
129
|
-
//
|
|
130
|
-
// screen and by the rail so its tile can appear the moment a turn starts browsing. The frames are the
|
|
131
|
-
// separate /system/browser-view WebSocket; this is the control plane, exactly as `terminals` is for tmux.
|
|
132
|
-
// `closeBrowser` shuts one Chromium down: the agent's next browser tool call then fails as if it had crashed,
|
|
133
|
-
// which is the honest account of the owner pulling the plug.
|
|
131
|
+
// Control plane like `terminals`; frames stream separately. `closeBrowser` fails the next call as crashed.
|
|
134
132
|
browsers: oc
|
|
135
133
|
.route({
|
|
136
134
|
method: "GET",
|
|
@@ -150,13 +148,7 @@ export const systemContract = {
|
|
|
150
148
|
})
|
|
151
149
|
.input(BrowserNameParamSchema)
|
|
152
150
|
.output(OkSchema),
|
|
153
|
-
//
|
|
154
|
-
// SubagentSessionSchema). Same two-route shape as the browsers above, and same division of labour: the list
|
|
155
|
-
// is polled by the Subagents area while it is on screen and loosely by the rail, so its tile can appear the
|
|
156
|
-
// moment a turn delegates. There is no third WebSocket here, because a subagent has no byte stream to watch,
|
|
157
|
-
// what you watch it through is its TRANSCRIPT, which `subagentTranscript` serves in the one shape every
|
|
158
|
-
// other transcript route already answers in: live from the parent turn's frame log while it runs, off the
|
|
159
|
-
// provider's own store once it has finished.
|
|
151
|
+
// SDK subagents and delegated runs alike; watched via transcript, not a socket, live then from stored history.
|
|
160
152
|
subagents: oc
|
|
161
153
|
.route({
|
|
162
154
|
method: "GET",
|
|
@@ -176,13 +168,7 @@ export const systemContract = {
|
|
|
176
168
|
})
|
|
177
169
|
.input(SubagentIdParamSchema)
|
|
178
170
|
.output(SessionTranscriptSchema),
|
|
179
|
-
|
|
180
|
-
* the Devices view's buttons, relayed to the machine over the socket it holds open to us.
|
|
181
|
-
*
|
|
182
|
-
* Streamed because the slowest of these takes minutes, and it is the same stream whatever the op: one door
|
|
183
|
-
* for one decision, so the view has one shape to render rather than one per duration. The daemon adds no
|
|
184
|
-
* judgement, the machine enforces its own switches and its refusal arrives as the terminal `error` line,
|
|
185
|
-
* in its own words, naming the control to flip. */
|
|
171
|
+
// One stream for every op; the daemon adds no judgment, a refusal is the machine's own `error` line.
|
|
186
172
|
manageDeviceSandbox: oc
|
|
187
173
|
.route({
|
|
188
174
|
method: "POST",
|
|
@@ -193,12 +179,7 @@ export const systemContract = {
|
|
|
193
179
|
})
|
|
194
180
|
.input(DeviceSandboxFlowInputSchema)
|
|
195
181
|
.output(eventIterator(DeviceFlowLineSchema)),
|
|
196
|
-
|
|
197
|
-
* agent. A closed set of names, and the daemon builds the command line from the name (see the schema): the
|
|
198
|
-
* browser never sends one, because the socket underneath also carries `run_command`.
|
|
199
|
-
*
|
|
200
|
-
* Not a stream, unlike the sandbox ops beside it: these are seconds-long CLI calls whose whole answer is the
|
|
201
|
-
* sentence they print at the end, and a stream for that is a shape with nothing to put in it. */
|
|
182
|
+
// Closed set of actions; the daemon builds the command line, not the caller. One sentence is the whole answer.
|
|
202
183
|
runDeviceCommand: oc
|
|
203
184
|
.route({
|
|
204
185
|
method: "POST",
|
|
@@ -209,14 +190,7 @@ export const systemContract = {
|
|
|
209
190
|
})
|
|
210
191
|
.input(DeviceCommandInputSchema)
|
|
211
192
|
.output(DeviceCommandResultSchema),
|
|
212
|
-
|
|
213
|
-
* as a command to go and type, on the view built to replace that terminal.
|
|
214
|
-
*
|
|
215
|
-
* Streamed like the sandbox ops, and for a reason of its own: this is the one call whose transport the work
|
|
216
|
-
* destroys. Both ops stop the resident process holding the socket, so the stream ends WITHOUT a terminal
|
|
217
|
-
* frame in the ordinary, successful case, and callers must read that as "it started" rather than as a
|
|
218
|
-
* failure (DeviceAgentFlowSchema has the whole argument). The confirmation is the device's agent version
|
|
219
|
-
* moving on the next read of the fleet. */
|
|
193
|
+
// The stream usually ends without a frame; a bare stop means success, the device's version confirms it later.
|
|
220
194
|
runDeviceAgentFlow: oc
|
|
221
195
|
.route({
|
|
222
196
|
method: "POST",
|
|
@@ -3,18 +3,13 @@ import { z } from "zod";
|
|
|
3
3
|
import { LimitResetClaimSchema, LimitResetStatusSchema } from "../schemas/plan-limits.js";
|
|
4
4
|
import { DayWindowQuerySchema, UsageRollupSchema } from "../schemas/usage.js";
|
|
5
5
|
|
|
6
|
-
//
|
|
7
|
-
// ignores the freshness the daemon otherwise honours (a reading from the last minute is what the provider
|
|
8
|
-
// would answer again), because the person pressing it has just changed something about an account and is
|
|
9
|
-
// asking whether what they can see survived it.
|
|
6
|
+
// `force` ignores the daemon's freshness window and measures now instead of reusing a recent reading.
|
|
10
7
|
export const RefreshPlanLimitsSchema = z.object({
|
|
11
8
|
force: z.boolean().default(false).describe("Measure again even if a reading was taken a moment ago."),
|
|
12
9
|
});
|
|
13
10
|
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
// activity log. `rollup` serves every cost/usage panel: it groups by day × provider × account × model, and the
|
|
17
|
-
// browser re-projects from there (spend per day, cost by model, cache hit rate) without another round trip.
|
|
11
|
+
// Durable spend ledger, read-only over the wire; rows are appended daemon-side at turn end.
|
|
12
|
+
// `rollup` groups by day, provider, account and model, so every cost panel re-projects from this one answer.
|
|
18
13
|
export const usageContract = {
|
|
19
14
|
rollup: oc
|
|
20
15
|
.route({
|
|
@@ -26,9 +21,7 @@ export const usageContract = {
|
|
|
26
21
|
})
|
|
27
22
|
.input(DayWindowQuerySchema)
|
|
28
23
|
.output(UsageRollupSchema),
|
|
29
|
-
//
|
|
30
|
-
// request for every provider at once. The readings themselves arrive on /events as they land, and on the
|
|
31
|
-
// account lists afterwards; this answers once the sweep is done or its deadline passes.
|
|
24
|
+
// Re-measures every account's plan limits on request; readings also arrive via /events and account lists otherwise.
|
|
32
25
|
refreshPlanLimits: oc
|
|
33
26
|
.route({
|
|
34
27
|
method: "POST",
|
|
@@ -39,16 +32,9 @@ export const usageContract = {
|
|
|
39
32
|
})
|
|
40
33
|
.input(RefreshPlanLimitsSchema)
|
|
41
34
|
.output(z.object({ ok: z.literal(true) })),
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
* account list. The provider only evaluates it when told the account is at the wall, so asking is a claim
|
|
46
|
-
* about the account's state; asking on every headroom sweep, for every connection, would be that claim made
|
|
47
|
-
* continuously and falsely. It is asked at the one moment it is true — a refused turn, with its strip on
|
|
48
|
-
* screen — and the answer is worth nothing a moment later, so nothing caches it.
|
|
49
|
-
*
|
|
50
|
-
* Answers `available: false` rather than failing for an account with no such mechanism, so a caller can ask
|
|
51
|
-
* about any account it holds without first knowing which provider grants one. */
|
|
35
|
+
// Asked, not polled: the provider only evaluates this when told the account is at the wall, and the answer isn't
|
|
36
|
+
// cached.
|
|
37
|
+
// Answers `available: false` rather than failing when the account has no such mechanism.
|
|
52
38
|
limitReset: oc
|
|
53
39
|
.route({
|
|
54
40
|
method: "GET",
|
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
import { eventIterator, oc } from "@orpc/contract";
|
|
2
|
-
import { IntenticLineSchema } from "../events.js";
|
|
2
|
+
import { IntenticLineSchema } from "../events/system-events.js";
|
|
3
3
|
import { OkSchema } from "../schemas/shared.js";
|
|
4
4
|
import { ForticlientImportInputSchema, ForticlientImportSchema, VpnConnectInputSchema, VpnIdParamSchema, VpnListSchema } from "../schemas/vpn.js";
|
|
5
5
|
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
// CapabilityStatus, which is why `list` returns VpnLinks instead of {state, detail}.
|
|
11
|
-
//
|
|
12
|
-
// Every route reads tunnel state back from the OS rather than from daemon memory, so the agent dropping a
|
|
13
|
-
// tunnel from a shell and the UI dropping it are the same event, and a daemon restart observes the truth.
|
|
6
|
+
// A VPN is added as a `vpn` capability; connecting and dropping it happen through the routes here, called by both the
|
|
7
|
+
// operator UI and the agent's `vpn` CLI.
|
|
8
|
+
// Every route reads tunnel state from the OS, not daemon memory, so a shell-dropped tunnel and a UI-dropped one are the
|
|
9
|
+
// same event across a restart.
|
|
14
10
|
export const vpnContract = {
|
|
15
|
-
// Every configured VPN with its live link state
|
|
11
|
+
// Every configured VPN with its live link state; feeds the VPN card, rail indicator, and `vpn list`.
|
|
16
12
|
list: oc
|
|
17
13
|
.route({
|
|
18
14
|
method: "GET",
|
|
@@ -22,9 +18,7 @@ export const vpnContract = {
|
|
|
22
18
|
"Every stored VPN with its live link state, read back from the operating system rather than from memory, so a tunnel dropped from a shell and one dropped from a screen look the same here.",
|
|
23
19
|
})
|
|
24
20
|
.output(VpnListSchema),
|
|
25
|
-
//
|
|
26
|
-
// can fail with something the user must read, a wrong password, an untrusted gateway certificate, or a
|
|
27
|
-
// required 2FA code. Idempotent: connecting an already-up tunnel reports it and stops.
|
|
21
|
+
// Dials a stored VPN, streaming auth and routing progress; idempotent, an already-up tunnel is just reported.
|
|
28
22
|
connect: oc
|
|
29
23
|
.route({
|
|
30
24
|
method: "POST",
|
|
@@ -35,7 +29,7 @@ export const vpnContract = {
|
|
|
35
29
|
})
|
|
36
30
|
.input(VpnConnectInputSchema)
|
|
37
31
|
.output(eventIterator(IntenticLineSchema)),
|
|
38
|
-
//
|
|
32
|
+
// Drops a tunnel; tolerates one already down, since the contract is "not up," not "it was up."
|
|
39
33
|
disconnect: oc
|
|
40
34
|
.route({
|
|
41
35
|
method: "POST",
|
|
@@ -45,8 +39,7 @@ export const vpnContract = {
|
|
|
45
39
|
})
|
|
46
40
|
.input(VpnIdParamSchema)
|
|
47
41
|
.output(OkSchema),
|
|
48
|
-
//
|
|
49
|
-
// add form by picking a connection instead of re-keying host/port/protocol per tunnel.
|
|
42
|
+
// Parses an exported FortiClient config into addable connections a user can pick instead of retyping.
|
|
50
43
|
importForticlient: oc
|
|
51
44
|
.route({
|
|
52
45
|
method: "POST",
|
|
@@ -4,34 +4,18 @@ import { WebExtScopesSchema } from "../schemas/capabilities.js";
|
|
|
4
4
|
import { OkSchema } from "../schemas/shared.js";
|
|
5
5
|
import { WebExtFactsSchema } from "../schemas/webext.js";
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* everything is asked OF it.
|
|
13
|
-
*
|
|
14
|
-
* `mcp` IS THE SAME DELIBERATE HOLE IN THE TYPING, for the same reason: if this contract described each tool,
|
|
15
|
-
* a browser could not learn one without a matching daemon release, and the daemon would have to hold every
|
|
16
|
-
* tool's schema to translate. Keeping one opaque procedure buys the extension the Chrome Web Store's release
|
|
17
|
-
* cycle, which is measured in review days and is not this daemon's to wait on. The payload is still validated
|
|
18
|
-
* where it is understood: in the extension, against the tool's own schema.
|
|
19
|
-
*
|
|
20
|
-
* There is no `runSandboxFlow` twin here. A browser runs nothing that takes minutes and narrates itself; every
|
|
21
|
-
* one of its operations is a click or a read that either happened or did not. */
|
|
7
|
+
// What a connected browser can be asked, over the socket its extension opened; the extension is the oRPC server here,
|
|
8
|
+
// inverted from host.contract.ts, since a browser cannot be dialled.
|
|
9
|
+
// `mcp` stays one opaque procedure so a browser can gain a tool without a matching daemon release; the payload is
|
|
10
|
+
// validated in the extension against the tool's own schema.
|
|
11
|
+
// No `runSandboxFlow` twin: every browser operation is a click or read that either happened or did not.
|
|
22
12
|
export const webextContract = {
|
|
23
|
-
//
|
|
24
|
-
// authenticates and again whenever the card is read, because the grant list changes IN THE BROWSER (the
|
|
25
|
-
// person clicks Allow on a site) rather than here, so a cached copy would be a card that lies.
|
|
13
|
+
// Refetched on connect and each card read, never cached: the grant list changes in the browser, not here.
|
|
26
14
|
describe: oc.output(WebExtFactsSchema),
|
|
27
|
-
|
|
28
|
-
* checks one. Note what is NOT in here: which sites the agent may touch. Those are Chrome's own optional
|
|
29
|
-
* host permissions, granted by the person in the browser and revocable there, so the strongest boundary in
|
|
30
|
-
* this feature is one the sandbox cannot even describe, let alone widen. */
|
|
15
|
+
// Enforced by the extension, not checked here; site access is a separate, browser-granted permission.
|
|
31
16
|
setScopes: oc.input(WebExtScopesSchema).output(OkSchema),
|
|
32
|
-
//
|
|
33
|
-
// means the browser is closed rather than quiet.
|
|
17
|
+
// Doubles as the tunnel keepalive; failure means the browser closed, not that it's merely quiet.
|
|
34
18
|
ping: oc.output(OkSchema),
|
|
35
|
-
// One MCP JSON-RPC message
|
|
19
|
+
// One MCP JSON-RPC message forwarded verbatim in both directions; kept opaque, not typed per tool.
|
|
36
20
|
mcp: oc.input(z.unknown()).output(z.unknown()),
|
|
37
21
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { oc } from "@orpc/contract";
|
|
2
|
-
import { OkSchema } from "../schemas/shared.js";
|
|
2
|
+
import { DoorTokenSchema, OkSchema } from "../schemas/shared.js";
|
|
3
3
|
import {
|
|
4
4
|
WorkflowIdParamSchema,
|
|
5
5
|
WorkflowRunIdParamSchema,
|
|
@@ -7,25 +7,16 @@ import {
|
|
|
7
7
|
WorkflowRunsListSchema,
|
|
8
8
|
WorkflowRunStartSchema,
|
|
9
9
|
WorkflowSaveSchema,
|
|
10
|
-
WorkflowSchema,
|
|
11
10
|
WorkflowsListSchema,
|
|
11
|
+
WorkflowSavedSchema,
|
|
12
12
|
} from "../schemas/workflows.js";
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
* authors once, keeps, edits, and runs repeatedly, so it gets the manifest treatment: create/update, delete,
|
|
19
|
-
* list. What it does not get is an `enabled` toggle, because nothing fires it on its own: a workflow runs when
|
|
20
|
-
* somebody (or an automation's prompt) says run it.
|
|
21
|
-
*
|
|
22
|
-
* `run` acks with the run as recorded and executes detached, the contract every turn-starting route here
|
|
23
|
-
* keeps. The first step alone can take minutes and the run may take hours; the run view is where it is watched,
|
|
24
|
-
* and the fleet board shows its steps as the ordinary agents they are.
|
|
25
|
-
*/
|
|
14
|
+
// Workflow routes: run these sessions in order, each handing its result to the next. Manifest treatment (create/update,
|
|
15
|
+
// delete, list), like automations not loops, since a workflow is authored once and run repeatedly.
|
|
16
|
+
// No `enabled` toggle: nothing fires a workflow on its own, only an explicit run.
|
|
17
|
+
// `run` acks with the run as recorded and executes detached, the same contract every turn-starting route here keeps.
|
|
26
18
|
export const workflowsContract = {
|
|
27
|
-
// Every saved workflow with its run history, newest
|
|
28
|
-
// page shows both and a workflow with no runs is the interesting case, not an error.
|
|
19
|
+
// Every saved workflow with its run history, newest first; a never-run workflow isn't an error case.
|
|
29
20
|
list: oc
|
|
30
21
|
.route({
|
|
31
22
|
method: "GET",
|
|
@@ -35,11 +26,9 @@ export const workflowsContract = {
|
|
|
35
26
|
"Every workflow somebody has designed, each with its own run history, newest first. One answer rather than two, because a workflow that has never been run is the interesting case rather than a mistake.",
|
|
36
27
|
})
|
|
37
28
|
.output(WorkflowsListSchema),
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
* while you type (see workflowFaults). Validation lives in the contract precisely so those two can never
|
|
42
|
-
* disagree about what is legal. */
|
|
29
|
+
// Create or replace, with the operation explicit so an id collision can't turn a create into an overwrite.
|
|
30
|
+
// Refuses a graph that can't run (a cycle, an unmet `needs`, a step with no completion signal), in the same words
|
|
31
|
+
// the design-time validator (workflowFaults) uses.
|
|
43
32
|
save: oc
|
|
44
33
|
.route({
|
|
45
34
|
method: "POST",
|
|
@@ -49,9 +38,19 @@ export const workflowsContract = {
|
|
|
49
38
|
"Writes a workflow design. Say which of the two you mean, so an id that happens to collide cannot silently overwrite somebody's work. A design that could never run is refused, in the same words the editor shows while you type: a loop in the steps, a step waiting on one that is not there, a step with no way of knowing it is finished.",
|
|
50
39
|
})
|
|
51
40
|
.input(WorkflowSaveSchema)
|
|
52
|
-
.output(
|
|
53
|
-
//
|
|
54
|
-
|
|
41
|
+
.output(WorkflowSavedSchema),
|
|
42
|
+
// Mints a new gate credential; every pipeline holding the old URL stops working the moment this answers.
|
|
43
|
+
rotateGateToken: oc
|
|
44
|
+
.route({
|
|
45
|
+
method: "POST",
|
|
46
|
+
path: "/workflows/{id}/gate/rotate",
|
|
47
|
+
summary: "Rotate a release gate's token",
|
|
48
|
+
description:
|
|
49
|
+
"Mints a new credential for the workflow's release gate and retires the old one at once. Every pipeline wired to the gate has to be handed the new URL. Refused for a workflow that declares no gate.",
|
|
50
|
+
})
|
|
51
|
+
.input(WorkflowIdParamSchema)
|
|
52
|
+
.output(DoorTokenSchema),
|
|
53
|
+
// Deleting a workflow doesn't stop or erase an in-flight run: a run snapshots its definition at start.
|
|
55
54
|
remove: oc
|
|
56
55
|
.route({
|
|
57
56
|
method: "DELETE",
|
|
@@ -62,11 +61,9 @@ export const workflowsContract = {
|
|
|
62
61
|
})
|
|
63
62
|
.input(WorkflowIdParamSchema)
|
|
64
63
|
.output(OkSchema),
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
* workflow may be in flight at once, they derive different conversation ids, so nothing is shared and
|
|
69
|
-
* nothing can collide, which is what makes "run this design again on a different question" free. */
|
|
64
|
+
// Starts a run, optionally with a request appended to every step's own prompt; each step is recorded `pending` up
|
|
65
|
+
// front so the graph is complete from the first frame.
|
|
66
|
+
// Multiple runs of one workflow can be in flight at once; each derives its own conversation ids, so none collide.
|
|
70
67
|
run: oc
|
|
71
68
|
.route({
|
|
72
69
|
method: "POST",
|
|
@@ -77,8 +74,7 @@ export const workflowsContract = {
|
|
|
77
74
|
})
|
|
78
75
|
.input(WorkflowRunStartSchema)
|
|
79
76
|
.output(WorkflowRunSchema),
|
|
80
|
-
// Every run across every workflow, newest first
|
|
81
|
-
// deleted workflow's runs are still reachable.
|
|
77
|
+
// Every run across every workflow, newest first; the only place a deleted workflow's runs are still reachable.
|
|
82
78
|
runs: oc
|
|
83
79
|
.route({
|
|
84
80
|
method: "GET",
|
|
@@ -88,19 +84,9 @@ export const workflowsContract = {
|
|
|
88
84
|
"All runs across all workflows, newest first. This is also the only place the runs of a deleted workflow are still reachable.",
|
|
89
85
|
})
|
|
90
86
|
.output(WorkflowRunsListSchema),
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
*
|
|
95
|
-
* Not the graceful "finish the iteration you are on" a LOOP's stop performs, and the difference is the
|
|
96
|
-
* unit: a loop's iteration is a round somebody is watching, a workflow step's is an entire agent turn.
|
|
97
|
-
* Waiting for one meant a stopped run kept working, kept spending and kept asking questions for minutes
|
|
98
|
-
* after the press, which is indistinguishable from a button that does nothing.
|
|
99
|
-
*
|
|
100
|
-
* IT ALWAYS ENDS THE RUN, including one no scheduler is behind, a record left `running` by a daemon that
|
|
101
|
-
* was replaced mid-flight. That case used to be refused, which made the stuck run permanent: a Stop that
|
|
102
|
-
* could not work, a step count that would never move, and no way off the board.
|
|
103
|
-
*/
|
|
87
|
+
// Cuts off in-flight steps where they stand, aborting their turns like /agent/stop; not the graceful
|
|
88
|
+
// finish-the-iteration stop a loop performs, since a step is a whole agent turn.
|
|
89
|
+
// Always ends the run, including one left `running` by a daemon that was replaced mid-flight.
|
|
104
90
|
stopRun: oc
|
|
105
91
|
.route({
|
|
106
92
|
method: "POST",
|
|
@@ -111,18 +97,9 @@ export const workflowsContract = {
|
|
|
111
97
|
})
|
|
112
98
|
.input(WorkflowRunIdParamSchema)
|
|
113
99
|
.output(OkSchema),
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
* fifty more had rolled it off the ledger. Refused while the run is going.
|
|
118
|
-
*
|
|
119
|
-
* IT ARCHIVES THE STEPS WITH THE RUN, which is what makes it an archive rather than a dismissal. A step
|
|
120
|
-
* has no card of its own, the run's row stands for it, so merely dropping the record released the run's
|
|
121
|
-
* conversations onto the board as loose cards at the exact moment the user said they were done with the
|
|
122
|
-
* job. Every step that ran is archived, on the same terms as pointing `agents.archive` at those ids: that
|
|
123
|
-
* route archives what the user named without re-litigating whether each one was ready to go, and a run the
|
|
124
|
-
* user has archived is exactly that gesture made once for the whole graph.
|
|
125
|
-
*/
|
|
100
|
+
// Ends a run's board presence, the run's half of `agents.archive`: nothing is lost, checkouts are reclaimed, and
|
|
101
|
+
// `unarchiveRun` reverses it. Refused while the run is going.
|
|
102
|
+
// Archives every step that ran along with it, since a step has no card of its own; the run's row stands for it.
|
|
126
103
|
archiveRun: oc
|
|
127
104
|
.route({
|
|
128
105
|
method: "POST",
|
|
@@ -133,8 +110,7 @@ export const workflowsContract = {
|
|
|
133
110
|
})
|
|
134
111
|
.input(WorkflowRunIdParamSchema)
|
|
135
112
|
.output(OkSchema),
|
|
136
|
-
//
|
|
137
|
-
// `agents.unarchive`.
|
|
113
|
+
// Inverse of archiveRun: puts an archived run and its sessions back on the board.
|
|
138
114
|
unarchiveRun: oc
|
|
139
115
|
.route({
|
|
140
116
|
method: "POST",
|