@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,5 +1,5 @@
|
|
|
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 { IntenticRunSchema } from "../schemas/intentic.js";
|
|
4
4
|
import { OkSchema } from "../schemas/shared.js";
|
|
5
5
|
|
|
@@ -7,10 +7,8 @@ import {
|
|
|
7
7
|
LogsListSchema,
|
|
8
8
|
} from "../schemas/logs.js";
|
|
9
9
|
|
|
10
|
-
// Daemon-owned debug logs (historyRoot/logs): terminal
|
|
11
|
-
//
|
|
12
|
-
// trustworthy. `report` is the one write, and the exception that proves the rule: the browser is the only
|
|
13
|
-
// witness to its own crashes, and a record it cannot reach is a record that has nothing to say about them.
|
|
10
|
+
// Daemon-owned debug logs (historyRoot/logs): terminal captures, CLI run logs, daemon.log; read-only, since only the
|
|
11
|
+
// daemon/tmux write them. `report` is the one write, since the browser is the only witness to its own crashes.
|
|
14
12
|
export const logsContract = {
|
|
15
13
|
list: oc
|
|
16
14
|
.route({
|
|
@@ -30,15 +28,7 @@ export const logsContract = {
|
|
|
30
28
|
})
|
|
31
29
|
.input(LogReadQuerySchema)
|
|
32
30
|
.output(LogReadSchema),
|
|
33
|
-
|
|
34
|
-
* this accepts what only the browser could have known.
|
|
35
|
-
*
|
|
36
|
-
* A WRITE from the client, which every other log route deliberately is not, and the trust argument is the
|
|
37
|
-
* inverse of theirs: the reads are trustworthy because only the daemon writes them, and this is trustworthy
|
|
38
|
-
* only about ITSELF. So it lands in its own file, never daemon.log, and its lines say plainly that a browser
|
|
39
|
-
* said them. It floors at viewer rather than the maintainer the logs prefix takes, because a viewer whose
|
|
40
|
-
* page just white-screened is exactly who needs to be able to report it, and cannot raise their own role to
|
|
41
|
-
* do it. */
|
|
31
|
+
// The one write route; lands in its own file, never daemon.log, floored at viewer role for a crashed page.
|
|
42
32
|
report: oc
|
|
43
33
|
.route({
|
|
44
34
|
method: "POST",
|
|
@@ -11,27 +11,11 @@ import {
|
|
|
11
11
|
} from "../schemas/loops.js";
|
|
12
12
|
import { OkSchema } from "../schemas/shared.js";
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
*
|
|
18
|
-
* A RUNNING LOOP has no editor. It is started against a conversation, it converges or it gives up, and then it
|
|
19
|
-
* is history: `start`, `stop`, and a `list` of what has run. No upsert, no enabled toggle, no id of its own,
|
|
20
|
-
* the conversation IS the id.
|
|
21
|
-
*
|
|
22
|
-
* A SAVED LOOP is a manifest entry like a workflow, and gets the manifest treatment: list, save, remove. It is
|
|
23
|
-
* the loop's MACHINERY without its goal (LoopDesignSchema says why at length), so it is authored once and
|
|
24
|
-
* pointed at a different job every time. It has no `run` route of its own on purpose, running one is `start`
|
|
25
|
-
* with the design's fields and the composer's sentence, so there is exactly one way a loop begins and exactly
|
|
26
|
-
* one place that can refuse it.
|
|
27
|
-
*
|
|
28
|
-
* `start` acks immediately with the loop as recorded and runs detached, the same contract POST /agent keeps: the
|
|
29
|
-
* first iteration alone can take minutes, and every surface that would render progress is already attached to
|
|
30
|
-
* the conversation. What comes back is the record, not an outcome, the outcome arrives on the fleet card.
|
|
31
|
-
*/
|
|
14
|
+
// Two halves: a running loop (start/stop/list, no editor, the conversation is its id) and a saved loop
|
|
15
|
+
// (list/save/remove, the loop's machinery without a goal). A saved loop has no `run` of its own; running one is `start`
|
|
16
|
+
// with the design's fields. `start` acks at once and runs detached; the record comes back, not the outcome.
|
|
32
17
|
export const loopsContract = {
|
|
33
|
-
//
|
|
34
|
-
// it stop at iteration 4" is the question a loop is read for, and the answer is its iteration history.
|
|
18
|
+
// Kept after the loop ends: the iteration history is the answer to why it stopped when it did.
|
|
35
19
|
list: oc
|
|
36
20
|
.route({
|
|
37
21
|
method: "GET",
|
|
@@ -41,12 +25,7 @@ export const loopsContract = {
|
|
|
41
25
|
"The loops this workspace has run, newest first, kept after they end. Why it stopped on the fourth round is the question a loop gets read for, and the round-by-round history is the answer.",
|
|
42
26
|
})
|
|
43
27
|
.output(LoopsListSchema),
|
|
44
|
-
|
|
45
|
-
* agent would have two pumps racing the same worktree and the same turn mutex, and the loser would spend a
|
|
46
|
-
* turn to discover it.
|
|
47
|
-
*
|
|
48
|
-
* The conversation need not exist yet: a loop against a fresh id opens it, exactly as a first chat turn
|
|
49
|
-
* does, which is what lets "run this until it's green" be the FIRST thing said to a new agent. */
|
|
28
|
+
// Rejects an already-looping conversation; a fresh conversation id opens it, like a first turn.
|
|
50
29
|
start: oc
|
|
51
30
|
.route({
|
|
52
31
|
method: "POST",
|
|
@@ -57,12 +36,7 @@ export const loopsContract = {
|
|
|
57
36
|
})
|
|
58
37
|
.input(LoopSchema)
|
|
59
38
|
.output(LoopRecordSchema),
|
|
60
|
-
|
|
61
|
-
*
|
|
62
|
-
* The split is deliberate and it is the one thing about this route that has to be right: stopping a LOOP
|
|
63
|
-
* means "do not start another iteration", not "kill what is running". A user watching iteration 6 do good
|
|
64
|
-
* work should be able to say "this is the last one" without throwing that work away. Killing the turn is
|
|
65
|
-
* what /agent/stop is for, and pressing both is the ordinary way to abandon a loop outright. */
|
|
39
|
+
// Stops future rounds only; the round in flight keeps going. Use /agent/stop to kill it too.
|
|
66
40
|
stop: oc
|
|
67
41
|
.route({
|
|
68
42
|
method: "POST",
|
|
@@ -74,8 +48,7 @@ export const loopsContract = {
|
|
|
74
48
|
.input(LoopIdParamSchema)
|
|
75
49
|
.output(OkSchema),
|
|
76
50
|
|
|
77
|
-
//
|
|
78
|
-
// loop is not a different feature, it is the same loop with its goal left blank until somebody types one.
|
|
51
|
+
// A saved loop is the same loop with its goal left blank, not a separate feature.
|
|
79
52
|
designs: oc
|
|
80
53
|
.route({
|
|
81
54
|
method: "GET",
|
|
@@ -85,10 +58,7 @@ export const loopsContract = {
|
|
|
85
58
|
"Loops somebody authored once and can point at a different job each time. A saved loop is the same loop with its goal left blank until you type one, not a different feature.",
|
|
86
59
|
})
|
|
87
60
|
.output(LoopDesignsListSchema),
|
|
88
|
-
|
|
89
|
-
* a replacement. Refuses a design that could never finish, nothing to produce and nothing to check, with
|
|
90
|
-
* the same sentence `start` refuses an ad-hoc loop for, because it is the same mistake made earlier and
|
|
91
|
-
* catching it at save time is the whole advantage of saving. */
|
|
61
|
+
// Names create vs replace explicitly, rather than upserting; refuses a design with nothing to produce or check.
|
|
92
62
|
saveDesign: oc
|
|
93
63
|
.route({
|
|
94
64
|
method: "POST",
|
|
@@ -99,8 +69,7 @@ export const loopsContract = {
|
|
|
99
69
|
})
|
|
100
70
|
.input(LoopDesignSaveSchema)
|
|
101
71
|
.output(LoopDesignSchema),
|
|
102
|
-
// Deleting a
|
|
103
|
-
// when it started, so it converges or gives up on its own terms, and its record stays readable.
|
|
72
|
+
// Deleting a design does not stop a loop running from it; it already copied the fields it needed.
|
|
104
73
|
removeDesign: oc
|
|
105
74
|
.route({
|
|
106
75
|
method: "DELETE",
|
|
@@ -13,23 +13,9 @@ import {
|
|
|
13
13
|
} from "../schemas/personas.js";
|
|
14
14
|
import { OkSchema } from "../schemas/shared.js";
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
* and spends nothing. It records a decision about accounts that already exist.
|
|
20
|
-
*
|
|
21
|
-
* The file behind it is committed workspace config (personas/personas-store.ts), so these routes are one of
|
|
22
|
-
* two equally supported ways to edit them: this, and opening the file in the editor like any other project
|
|
23
|
-
* config. Neither is the "real" one, which is why `save` is a whole-card upsert rather than a field patch, so
|
|
24
|
-
* a round trip through the UI leaves a diff a reviewer would recognise.
|
|
25
|
-
*
|
|
26
|
-
* THE KIT ROUTES BELOW EDIT FILES, not the card, and they are here rather than on the skills contract because
|
|
27
|
-
* what they write belongs to one persona: its prompt, and the skills only its turns can reach
|
|
28
|
-
* (personas/persona-kit.ts). The sandbox's `skills` domain answers "what does the agent know" for every chat;
|
|
29
|
-
* this answers "what does this card carry", and the two lists are different questions with different answers.
|
|
30
|
-
*
|
|
31
|
-
* Per-verb routes rather than one whole-kit PUT: a kit is a directory of files somebody edits one at a time, and
|
|
32
|
-
* a save that shipped the whole folder would make an edit to one skill capable of deleting another. */
|
|
16
|
+
// Named personas (PersonaSchema): accounts each speaks for, what it may do, what it is told. Card CRUD provisions
|
|
17
|
+
// nothing, only a decision about existing accounts. The kit routes below edit its files (prompt, skills only its turns
|
|
18
|
+
// reach) per verb, not one whole-kit PUT, so one skill's edit cannot delete another.
|
|
33
19
|
export const personasContract = {
|
|
34
20
|
list: oc
|
|
35
21
|
.route({
|
|
@@ -51,14 +37,8 @@ export const personasContract = {
|
|
|
51
37
|
})
|
|
52
38
|
.input(PersonaSchema)
|
|
53
39
|
.output(OkSchema),
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
* card that no longer exists, and the resolver reads that as "no accounts at all" rather than "all of
|
|
57
|
-
* them", so the automation goes quiet instead of posting as somebody unintended. */
|
|
58
|
-
/* Removing a card takes away a persona, never an account: the login it named stays connected and reachable from
|
|
59
|
-
* every other surface. It DOES take the card's kit with it, a folder no card can reach is a folder no list
|
|
60
|
-
* shows, and leaving the owner's prompt and skills orphaned on disk is worse than deleting what they just
|
|
61
|
-
* asked to delete. */
|
|
40
|
+
// Never removes the account; an automation pinned to this id resolves as no accounts, and goes quiet.
|
|
41
|
+
// Also deletes the persona's kit folder (prompt + skills), rather than leaving it orphaned on disk.
|
|
62
42
|
remove: oc
|
|
63
43
|
.route({
|
|
64
44
|
method: "DELETE",
|
|
@@ -70,22 +50,19 @@ export const personasContract = {
|
|
|
70
50
|
.input(PersonaIdParamSchema)
|
|
71
51
|
.output(OkSchema),
|
|
72
52
|
|
|
73
|
-
|
|
74
|
-
* `persona-router` helper role (the sandbox's agent/persona-router.ts). A READ that spends a small model
|
|
75
|
-
* call, which is why it is a POST: it is not idempotent in cost, only in effect. Nothing is applied here; the
|
|
76
|
-
* composer applies the answer, or shows it, under the `personaRouting` setting. */
|
|
53
|
+
// Costs a model call, hence POST though a read; the chat that asked applies the answer, this only reports it.
|
|
77
54
|
route: oc
|
|
78
55
|
.route({
|
|
79
56
|
method: "POST",
|
|
80
57
|
path: "/personas/route",
|
|
81
58
|
summary: "Which persona a new chat belongs to",
|
|
82
59
|
description:
|
|
83
|
-
"Reads the message a chat
|
|
60
|
+
"Reads the message a chat has just been sent, and one line per persona, and names the card it belongs to, or none, along with the model that answered. Costs one small model call on the persona-routing list, and says so. Nothing is applied here: the chat that asked puts the card on, and only when the persona routing setting is on.",
|
|
84
61
|
})
|
|
85
62
|
.input(PersonaRouteAskSchema)
|
|
86
63
|
.output(PersonaRouteSchema),
|
|
87
64
|
|
|
88
|
-
//
|
|
65
|
+
// The kit: what this card is told, and the skills only it reaches.
|
|
89
66
|
|
|
90
67
|
kit: oc
|
|
91
68
|
.route({
|
|
@@ -97,8 +74,7 @@ export const personasContract = {
|
|
|
97
74
|
})
|
|
98
75
|
.input(PersonaIdParamSchema)
|
|
99
76
|
.output(PersonaKitSchema),
|
|
100
|
-
// An empty prompt
|
|
101
|
-
// state instead of two, the resolver falls back to the sandbox's prompt for it (personas.ts personaPrompt).
|
|
77
|
+
// An empty prompt deletes the file rather than storing a blank; it then falls back to the sandbox's own prompt.
|
|
102
78
|
savePrompt: oc
|
|
103
79
|
.route({
|
|
104
80
|
method: "POST",
|
|
@@ -118,8 +94,7 @@ export const personasContract = {
|
|
|
118
94
|
})
|
|
119
95
|
.input(PersonaSkillNameSchema)
|
|
120
96
|
.output(PersonaSkillBodySchema),
|
|
121
|
-
// Upsert by name,
|
|
122
|
-
// on exactly when its persona is worn. That is what "specific to that persona" has to mean.
|
|
97
|
+
// Upsert by name, no enabled list to write: a kit skill is on exactly when its persona is worn.
|
|
123
98
|
saveSkill: oc
|
|
124
99
|
.route({
|
|
125
100
|
method: "POST",
|
|
@@ -2,24 +2,11 @@ import { oc } from "@orpc/contract";
|
|
|
2
2
|
import { NativeProviderParamSchema } from "../schemas/agent.js";
|
|
3
3
|
import { ModelsSchema } from "../schemas/provider-oauth.js";
|
|
4
4
|
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
// provider, each a contract entry, a route factory and a service field wired separately. They differed in
|
|
9
|
-
// nothing: same method, same output schema, same "the daemon's catalog for this provider, never empty". Three of
|
|
10
|
-
// the five route files were the same fifteen lines with a name swapped, and the daemon paid for that shape twice
|
|
11
|
-
// more in the branch chains that had to fan back out over the providers to ask them all the same question.
|
|
12
|
-
//
|
|
13
|
-
// So the provider is a PARAMETER, not five routes. Adding one is a row in the daemon's catalog registry, the
|
|
14
|
-
// same discipline the adapter registry already applies to serving a turn, rather than a vertical slice through
|
|
15
|
-
// the contract, the router, the service container and every test double.
|
|
16
|
-
//
|
|
17
|
-
// Endpoints keep their own route (endpoints.contract.ts) and should: they are user-created and unbounded, their
|
|
18
|
-
// id names a capability that may not exist, and a missing one is a NOT_FOUND rather than an empty catalog. That
|
|
19
|
-
// is a different question with a different failure, not a sixth provider.
|
|
5
|
+
// The provider is a parameter, not a route per provider; adding one is a row in the catalog registry. Endpoints keep
|
|
6
|
+
// their own route (endpoints.contract.ts): they are user-created and unbounded, and a missing one is NOT_FOUND, not an
|
|
7
|
+
// empty catalog.
|
|
20
8
|
export const providersContract = {
|
|
21
|
-
//
|
|
22
|
-
// it. Order is the provider's own preference order and is not re-ranked here; see ModelsSchema.
|
|
9
|
+
// Never empty: live discovery with a persisted/seed floor; order is the provider's own, not re-ranked.
|
|
23
10
|
models: oc
|
|
24
11
|
.route({
|
|
25
12
|
method: "GET",
|
|
@@ -1,46 +1,24 @@
|
|
|
1
1
|
import { eventIterator, oc } from "@orpc/contract";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import { AgentEventSchema } from "../events.js";
|
|
4
|
-
import { RunnerFactsSchema, RunnerSyncLineSchema, RunnerSyncSchema, RunnerTurnSchema } from "../runner-protocol.js";
|
|
3
|
+
import { AgentEventSchema } from "../events/agent-events.js";
|
|
4
|
+
import { RunnerFactsSchema, RunnerSyncLineSchema, RunnerSyncSchema, RunnerTurnSchema } from "../protocol/runner-protocol.js";
|
|
5
5
|
import { EditorContextSchema } from "../schemas/agent.js";
|
|
6
6
|
import { AgentReplySchema } from "../schemas/plan-limits.js";
|
|
7
7
|
import { OkSchema } from "../schemas/shared.js";
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* Same inversion as hostContract: the runner dialled, but the runner is the oRPC SERVER and the parent holds
|
|
13
|
-
* the client, because a runner sits behind NAT or inside a Fly private network and can only ever be the side
|
|
14
|
-
* that connects. No `.route()` on these, the link never touches HTTP; the procedure path IS the address.
|
|
15
|
-
*
|
|
16
|
-
* TYPED THROUGHOUT, where hostContract keeps its deliberate `mcp` hole, and the difference is who releases
|
|
17
|
-
* what. A machine's tools must outlive the daemon's release cycle, so their schemas stay on the machine. A
|
|
18
|
-
* runner IS this daemon, the same image the parent runs, released together by construction, so an untyped
|
|
19
|
-
* channel would buy independence nobody has while costing the parent's persistence layer its guarantee that
|
|
20
|
-
* every frame is exactly what a local turn would have produced. */
|
|
9
|
+
// What a runner can be asked, over the socket it opened; same inversion as hostContract, the runner is the oRPC server,
|
|
10
|
+
// the parent the client. No `.route()`: the procedure path is the address. Typed throughout, unlike hostContract's
|
|
11
|
+
// `mcp` hole, since a runner is the same daemon image as the parent, released together.
|
|
21
12
|
export const runnerContract = {
|
|
22
|
-
//
|
|
23
|
-
// placement picker wants it fresh. Parity facts (image, overlay hash) ride the hello instead, they change
|
|
24
|
-
// only with a rebuild, which drops the socket anyway.
|
|
13
|
+
// Hardware facts, refreshed on demand; parity facts (image, overlay hash) ride the hello, not this call.
|
|
25
14
|
describe: oc.output(RunnerFactsSchema),
|
|
26
|
-
//
|
|
27
|
-
// after a turn (`push`). Streamed: a first sync clones repositories, and a person may be watching.
|
|
15
|
+
// `pull` updates the checkout, `push` returns a turn's result; streamed since a first sync clones repos.
|
|
28
16
|
syncWorkspace: oc.input(RunnerSyncSchema).output(eventIterator(RunnerSyncLineSchema)),
|
|
29
|
-
//
|
|
30
|
-
// into the same pipeline local frames enter, which is the whole "feels local" mechanism.
|
|
17
|
+
// One turn in, the frames a local turn would produce out; the parent republishes them into the local pipeline.
|
|
31
18
|
runTurn: oc.input(RunnerTurnSchema).output(eventIterator(AgentEventSchema)),
|
|
32
|
-
|
|
33
|
-
* approval are minted in the RUNNER's request registry, and the answer arrives at the PARENT (that is
|
|
34
|
-
* where the browser is). So it travels back down the same socket and is applied there by the same code a
|
|
35
|
-
* local answer takes (agent/turn-interactions.ts).
|
|
36
|
-
*
|
|
37
|
-
* `applied` rather than a throw: "nothing holds that id any more" is an ordinary race (the card was
|
|
38
|
-
* answered in another window, or the turn ended while the user was reading), and the parent turns it
|
|
39
|
-
* into the same NOT_FOUND its local path gives. */
|
|
19
|
+
// Returns `applied` rather than throwing: a missing id is an ordinary race, same as local NOT_FOUND.
|
|
40
20
|
reply: oc.input(AgentReplySchema).output(z.object({ applied: z.boolean() })),
|
|
41
|
-
|
|
42
|
-
* editor context UNCOMPOSED: the note over those paths has to be built against the runner's own
|
|
43
|
-
* workspace root, since that is the machine whose files the agent will open. */
|
|
21
|
+
// Attachments/editor context travel uncomposed: the note must build against the runner's own workspace root.
|
|
44
22
|
steer: oc
|
|
45
23
|
.input(
|
|
46
24
|
z.object({
|
|
@@ -51,15 +29,10 @@ export const runnerContract = {
|
|
|
51
29
|
}),
|
|
52
30
|
)
|
|
53
31
|
.output(z.object({ applied: z.boolean(), invalid: z.string().optional() })),
|
|
54
|
-
|
|
55
|
-
* runner-protocol.ts's hello says why settings are all a runner declares). REPLACE semantics, not the
|
|
56
|
-
* owner-facing apply's merge-beside: a key the definition omits returns to its default, because the parent
|
|
57
|
-
* is a runner's whole authority and "make this runner match" must also unset what the parent unset. The
|
|
58
|
-
* answer names the keys now holding non-default values, which is what the parent adopts as the runner's
|
|
59
|
-
* new declared shape without waiting for a reconnect. */
|
|
32
|
+
// REPLACE semantics: a key the definition omits returns to its default, unlike the owner apply's merge-beside.
|
|
60
33
|
applyDefinition: oc.input(z.object({ toml: z.string() })).output(z.object({ settings: z.array(z.string()) })),
|
|
61
34
|
// Stop the running turn; the parent's stop button reaching through.
|
|
62
35
|
interrupt: oc.input(RunnerTurnSchema.pick({ conversationId: true })).output(OkSchema),
|
|
63
|
-
// Liveness
|
|
36
|
+
// Liveness driven by the parent: keepalive and gone-detection in one.
|
|
64
37
|
ping: oc.output(OkSchema),
|
|
65
38
|
};
|
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
import { oc } from "@orpc/contract";
|
|
2
|
-
import { SafetyLogEntrySchema, SafetyPolicySchema } from "../safety-policy.js";
|
|
2
|
+
import { SafetyLogEntrySchema, SafetyPolicySchema } from "../policy/safety-policy.js";
|
|
3
3
|
import { OkSchema } from "../schemas/shared.js";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
* next door: the policy is a DOCUMENT edited at human speed, and the log is a value that changes on its own
|
|
10
|
-
* several times a turn. Folding either into the settings object would put a self-changing value inside the
|
|
11
|
-
* thing a screen optimistically patches, and would make every judged command a settings write.
|
|
12
|
-
*
|
|
13
|
-
* The policy is also the only config file here whose reader is a model rather than a parser, so it travels as
|
|
14
|
-
* text and is never parsed on the way through: whatever the owner wrote is what the judge reads.
|
|
15
|
-
*/
|
|
6
|
+
// Owner's safety policy (.intentic/config/safety.md) and the log of what it decided. Own routes, not a /settings field:
|
|
7
|
+
// the policy is a document edited at human speed, the log changes on its own mid-turn. The policy travels as text,
|
|
8
|
+
// never parsed, since its reader is a model, not a parser.
|
|
16
9
|
export const safetyContract = {
|
|
17
10
|
policy: oc
|
|
18
11
|
.route({
|
|
@@ -33,9 +26,7 @@ export const safetyContract = {
|
|
|
33
26
|
})
|
|
34
27
|
.input(z.object({ text: z.string().describe("The policy, as you want it written.") }))
|
|
35
28
|
.output(OkSchema),
|
|
36
|
-
//
|
|
37
|
-
// writable: nobody can author a policy for behaviour they cannot see, and a column of verdicts is what
|
|
38
|
-
// teaches an owner which line to add next.
|
|
29
|
+
// Verdicts teach the owner which policy line to add next; answers why you weren't asked about something.
|
|
39
30
|
log: oc
|
|
40
31
|
.route({
|
|
41
32
|
method: "GET",
|
|
@@ -13,11 +13,9 @@ import {
|
|
|
13
13
|
} from "../schemas/secrets.js";
|
|
14
14
|
import { OkSchema } from "../schemas/shared.js";
|
|
15
15
|
|
|
16
|
-
// User-supplied
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
// values). `reveal` is the single value-returning route, owner-only, POST so the key never sits in a URL.
|
|
20
|
-
// set/remove/list/reveal refuse until DevOps has scaffolded the desired-state repo; inventory always answers.
|
|
16
|
+
// User-supplied secrets, in the gitignored desired-state/.env; `apply` reloads them, no restart. `inventory` aggregates
|
|
17
|
+
// every store (never values) and always answers; the rest refuse until desired-state is scaffolded. `reveal` alone
|
|
18
|
+
// returns a value, owner-only, POST so the key avoids the URL.
|
|
21
19
|
export const secretsContract = {
|
|
22
20
|
set: oc
|
|
23
21
|
.route({
|
|
@@ -65,23 +63,7 @@ export const secretsContract = {
|
|
|
65
63
|
})
|
|
66
64
|
.input(SecretKeyParamSchema)
|
|
67
65
|
.output(SecretRevealSchema),
|
|
68
|
-
|
|
69
|
-
* group.
|
|
70
|
-
*
|
|
71
|
-
* `gates` is READ BY EVERYONE who needs to explain the sandbox to itself: the Secrets view draws a badge
|
|
72
|
-
* from it, and the AGENT is allowed it too (auth/grants.ts), because a model that cannot see which
|
|
73
|
-
* credentials are gated cannot tell "not connected" from "needs Bob", and the difference decides whether
|
|
74
|
-
* its next move is to ask a person or to go looking for another road. It answers names, subjects and
|
|
75
|
-
* approver addresses; there is nothing else in it to leak.
|
|
76
|
-
*
|
|
77
|
-
* `setGate` and `removeGate` are the OWNER's alone, enforced in-route with authorizeOwner rather than by
|
|
78
|
-
* the /secrets role floor, because the floor is maintainer and a maintainer is exactly who a gate is
|
|
79
|
-
* sometimes written about. The policy lives off the workspace beside the credential vault for the same
|
|
80
|
-
* reason the vault does: `.intentic/config/` is tracked and agent-editable, so a gate stored there would
|
|
81
|
-
* be a lock whose key is in the room with the agent.
|
|
82
|
-
*
|
|
83
|
-
* `request` is the AGENT's door, and the only one of the four that can park a turn: it raises the release
|
|
84
|
-
* card and waits, so a gated account can be asked for rather than merely discovered to be absent. */
|
|
66
|
+
// Gate policy lives off the workspace, not in agent-editable `.intentic/config/`, so agents can't hold the key.
|
|
85
67
|
gates: oc
|
|
86
68
|
.route({
|
|
87
69
|
method: "GET",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { oc } from "@orpc/contract";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import { SessionTranscriptSchema } from "../events.js";
|
|
3
|
+
import { SessionTranscriptSchema } from "../events/transcript.js";
|
|
4
4
|
import { SessionIdParamSchema, SessionsListSchema } from "../schemas/sessions.js";
|
|
5
5
|
|
|
6
6
|
// Past conversations in this workspace (the SDK-native session store, keyed on the working dir, which for a
|
|
@@ -3,13 +3,9 @@ import { BuiltinPromptSchema, BuiltinPromptTextSchema, RuleFiringsSchema, Sandbo
|
|
|
3
3
|
import { OkSchema } from "../schemas/shared.js";
|
|
4
4
|
import { DayWindowQuerySchema } from "../schemas/usage.js";
|
|
5
5
|
|
|
6
|
-
// Per-sandbox agent settings (.intentic/config/settings.json)
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
// UTC day window, the same one the spend ledger takes, so a screen can filter both with one calendar.
|
|
10
|
-
// `builtinPrompt` returns one of the two built-in system prompts as text. Intentic's own, or Claude Code's
|
|
11
|
-
// read out of the installed CLI, so the settings page can SHOW the prompt behind a mode instead of asking the
|
|
12
|
-
// user to trust a description of it, and can fork either into a custom one.
|
|
6
|
+
// Per-sandbox agent settings (.intentic/config/settings.json); `get` fills defaults for an absent file, `set`
|
|
7
|
+
// overwrites whole. `savings` measures each token-reduction mechanism's worth over the same UTC day window the spend
|
|
8
|
+
// ledger takes. `builtinPrompt` returns a built-in prompt's actual text to show or fork.
|
|
13
9
|
export const settingsContract = {
|
|
14
10
|
get: oc
|
|
15
11
|
.route({
|
|
@@ -48,9 +44,7 @@ export const settingsContract = {
|
|
|
48
44
|
})
|
|
49
45
|
.input(BuiltinPromptSchema)
|
|
50
46
|
.output(BuiltinPromptTextSchema),
|
|
51
|
-
//
|
|
52
|
-
// object because a firing is not an edit: folding it in would make every push a settings write, and would
|
|
53
|
-
// put a value that changes on its own inside the object the screen optimistically patches.
|
|
47
|
+
// Own route, not a settings field: a firing isn't an edit, so it shouldn't cost a settings write.
|
|
54
48
|
firings: oc
|
|
55
49
|
.route({
|
|
56
50
|
method: "GET",
|
|
@@ -2,15 +2,9 @@ import { oc } from "@orpc/contract";
|
|
|
2
2
|
import { ShareCreateSchema, SharedConversationSchema, ShareListSchema, ShareRemoveSchema, ShareUpdateSchema } from "../schemas/share.js";
|
|
3
3
|
import { OkSchema } from "../schemas/shared.js";
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
* different things by "publish". The outbox's routes take a path in the workspace and copy the bytes at it; a
|
|
9
|
-
* share takes a CONVERSATION ID and renders something that did not exist as a file until it was asked for.
|
|
10
|
-
* Folding them together would have `publish` accept two unrelated kinds of input distinguished by a flag.
|
|
11
|
-
*
|
|
12
|
-
* There is no route to read a share back. The page is the read, it answers on the unauthenticated
|
|
13
|
-
* `public-<slot>` hostname like every other published file, which is the point of having made one. */
|
|
5
|
+
// Conversations published as read-only pages. Separate from `public`: a share takes a conversation id and renders it,
|
|
6
|
+
// `public` copies bytes at a workspace path. No route reads a share back, the page itself is the read, on the
|
|
7
|
+
// unauthenticated `public-<slot>` hostname.
|
|
14
8
|
export const shareContract = {
|
|
15
9
|
list: oc
|
|
16
10
|
.route({
|
|
@@ -1,20 +1,12 @@
|
|
|
1
1
|
import { oc } from "@orpc/contract";
|
|
2
|
-
import { SkillBodySchema, SkillDraftSchema, SkillIdSchema, SkillRemoveSchema, SkillsListSchema } from "../schemas/settings.js";
|
|
2
|
+
import { SkillBodySchema, SkillDraftSchema, SkillIdSchema, SkillRemoveSchema, SkillsListSchema, SkillSwitchSchema } from "../schemas/settings.js";
|
|
3
3
|
import { OkSchema } from "../schemas/shared.js";
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
*
|
|
11
|
-
* The ENABLED half still rides the settings object's `skills` array, that array is what the reconciler
|
|
12
|
-
* converges and what the boot path already reads, so a switch on this list is an ordinary settings write and
|
|
13
|
-
* there is exactly one place that decides which skills exist on disk. `save` and `remove` write the text AND
|
|
14
|
-
* that array together, which is why they are here rather than being two calls a screen has to sequence.
|
|
15
|
-
*
|
|
16
|
-
* `read` is a GET with the id in the query rather than in the path: an id can name an owner
|
|
17
|
-
* (`extension:intentic.knowledge:knowledge`), and a path template cannot carry those segments. */
|
|
5
|
+
// What the agent knows and which half the owner controls; `list` joins every source (the owner's own, the settings,
|
|
6
|
+
// connections, plugin checkouts, extension folders, persona kits). A baked tool's switch rides settings' `skills`
|
|
7
|
+
// array; an own skill is on while the agent's copy of it exists, which `switch` moves and `save`/`remove` write
|
|
8
|
+
// together with the text. `read` takes the id in the query, since an id can name an owner and won't fit a path
|
|
9
|
+
// template.
|
|
18
10
|
export const skillsContract = {
|
|
19
11
|
list: oc
|
|
20
12
|
.route({
|
|
@@ -22,7 +14,7 @@ export const skillsContract = {
|
|
|
22
14
|
path: "/skills",
|
|
23
15
|
summary: "What the agent knows how to do",
|
|
24
16
|
description:
|
|
25
|
-
"Every skill available here and whether it is switched on, joined from all
|
|
17
|
+
"Every skill available here and whether it is switched on, joined from all the places they come from: the owner's own, the settings, plugins a connection installed, folders inside extensions, and persona kits.",
|
|
26
18
|
})
|
|
27
19
|
.output(SkillsListSchema),
|
|
28
20
|
read: oc
|
|
@@ -35,25 +27,35 @@ export const skillsContract = {
|
|
|
35
27
|
})
|
|
36
28
|
.input(SkillIdSchema)
|
|
37
29
|
.output(SkillBodySchema),
|
|
38
|
-
// Upsert by name
|
|
39
|
-
//
|
|
30
|
+
// Upsert by name; renaming saves under a new name and deletes the old. A new skill starts on; rewriting keeps its
|
|
31
|
+
// switch as it was.
|
|
40
32
|
save: oc
|
|
41
33
|
.route({
|
|
42
34
|
method: "POST",
|
|
43
35
|
path: "/skills",
|
|
44
36
|
summary: "Write a skill",
|
|
45
37
|
description:
|
|
46
|
-
"Creates or rewrites a skill by name
|
|
38
|
+
"Creates or rewrites a skill by name. A new one starts switched on, because you wrote it in order to use it; rewriting one you switched off leaves it off. Renaming is saving under the new name and deleting the old.",
|
|
47
39
|
})
|
|
48
40
|
.input(SkillDraftSchema)
|
|
49
41
|
.output(OkSchema),
|
|
42
|
+
switch: oc
|
|
43
|
+
.route({
|
|
44
|
+
method: "POST",
|
|
45
|
+
path: "/skills/switch",
|
|
46
|
+
summary: "Switch one of your own skills on or off",
|
|
47
|
+
description:
|
|
48
|
+
"Off takes the agent's copy away and keeps your text; on writes the copy back from it. Built-in tools are switched in the agent settings instead, and nothing else has a switch.",
|
|
49
|
+
})
|
|
50
|
+
.input(SkillSwitchSchema)
|
|
51
|
+
.output(OkSchema),
|
|
50
52
|
remove: oc
|
|
51
53
|
.route({
|
|
52
54
|
method: "POST",
|
|
53
55
|
path: "/skills/remove",
|
|
54
56
|
summary: "Delete a skill",
|
|
55
57
|
description:
|
|
56
|
-
"Removes the text and
|
|
58
|
+
"Removes the text and the agent's copy in one step, so a screen never has to sequence two calls and never leaves one half done.",
|
|
57
59
|
})
|
|
58
60
|
.input(SkillRemoveSchema)
|
|
59
61
|
.output(OkSchema),
|