@intentic/sandbox-contract 1.247.0 → 1.249.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 +13 -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 +39 -4
- package/dist/contracts/personas.contract.d.ts.map +1 -1
- package/dist/contracts/personas.contract.js +10 -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 +6 -80
- 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 +10 -10
- 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.map +1 -1
- 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 +464 -447
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +54 -47
- 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/models/model-order.js.map +1 -0
- package/dist/{model-pins.d.ts → models/model-pins.d.ts} +2 -4
- package/dist/models/model-pins.d.ts.map +1 -0
- package/dist/models/model-pins.js +22 -0
- package/dist/models/model-pins.js.map +1 -0
- package/dist/{model-roles.d.ts → models/model-roles.d.ts} +25 -30
- package/dist/models/model-roles.d.ts.map +1 -0
- package/dist/{model-roles.js → models/model-roles.js} +30 -27
- 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 +17 -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 +90 -0
- package/dist/schemas/devices.d.ts.map +1 -1
- package/dist/schemas/devices.js +10 -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 +49 -4
- package/dist/schemas/personas.d.ts.map +1 -1
- package/dist/schemas/personas.js +32 -5
- 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 +7 -5
- package/dist/schemas/settings.d.ts.map +1 -1
- package/dist/schemas/settings.js +18 -8
- 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 -5
- package/dist/state/workspace-state.d.ts.map +1 -0
- package/dist/{workspace-state.js → state/workspace-state.js} +25 -1
- 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 +22 -30
- 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 +4 -15
- 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 -88
- 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} +19 -40
- package/src/models/model-order.ts +163 -0
- package/src/models/model-pins.test.ts +87 -0
- 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 +145 -249
- 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 +98 -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 +85 -168
- 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 +177 -597
- 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 +62 -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 -173
- 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 +0 -45
- 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/schemas/context.d.ts +0 -30
- package/dist/schemas/context.d.ts.map +0 -1
- package/dist/schemas/context.js +0 -34
- package/dist/schemas/context.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.test.ts +0 -202
- package/src/model-pins.ts +0 -183
- package/src/model-roles.ts +0 -224
- 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/schemas/context.ts +0 -87
- 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 -1096
- /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-order.js → models/model-order.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
package/src/schemas/workflows.ts
CHANGED
|
@@ -3,62 +3,27 @@ import { z } from "zod";
|
|
|
3
3
|
import { AgentHarnessSchema, AgentProviderSchema, RepoBaseSchema } from "./agent.js";
|
|
4
4
|
import { entryId } from "./internal.js";
|
|
5
5
|
import { LoopCheckSchema, LoopContextSchema, LoopDocumentSchema, LoopOutputSchema, LoopStateSchema } from "./loops.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
* IT IS A GRAPH OF LOOPS, and that is the whole implementation. A step is not a new kind of execution, it is
|
|
10
|
-
* a Loop with a declared output and a place in a dependency graph, driven on a conversation of its own. So
|
|
11
|
-
* every step gets the fleet card, the worktree, the transcript, the cost ledger, the Stop button, the stall
|
|
12
|
-
* detector and the spend ceiling without a line of new code, and this file's job is only to say what the steps
|
|
13
|
-
* are and what depends on what.
|
|
14
|
-
*
|
|
15
|
-
* WHY IT IS NOT "AN AUTOMATION WITH SEVERAL PROMPTS". Because the value is in the SEAM between steps: the
|
|
16
|
-
* output of one is validated before the next is allowed to start, the reviewing step is a different session
|
|
17
|
-
* from the implementing one, and a step that cannot converge stops the branch below it rather than feeding
|
|
18
|
-
* garbage forward. None of that exists in a prompt that says "then do X".
|
|
19
|
-
*/
|
|
6
|
+
// A workflow runs steps in order, each one's output feeding the next, unlike an automation's schedule or a loop's
|
|
7
|
+
// until-done. Each step is a Loop with a declared output in a dependency graph, so it inherits the fleet card, worktree
|
|
8
|
+
// and ledger. Output is validated between steps; a failing step stops the branch below it.
|
|
20
9
|
|
|
21
|
-
//
|
|
22
|
-
// which is itself a branch name and a directory name. The regex is the injection guard, the length cap is what
|
|
23
|
-
// keeps the derived id inside ConversationIdSchema's 64.
|
|
10
|
+
// Slug spliced into `wf-<run>-<step>` (branch/dir name); regex guards injection, length keeps the id under 64.
|
|
24
11
|
const StepIdSchema = z
|
|
25
12
|
.string()
|
|
26
13
|
.min(1)
|
|
27
14
|
.max(24)
|
|
28
15
|
.regex(/^[a-z0-9][a-z0-9-]*$/);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
*
|
|
32
|
-
* `fresh` opens a NEW conversation: its own fleet card, its own session, its own worktree when the run is
|
|
33
|
-
* isolated. What it knows about the step before it is exactly what that step declared as output. This is the
|
|
34
|
-
* only honest way to run a review, an audit or a second opinion, a session that spent nine turns arguing for
|
|
35
|
-
* an approach is the worst available judge of whether that approach worked, and the fix is not a better prompt,
|
|
36
|
-
* it is a different session.
|
|
37
|
-
*
|
|
38
|
-
* `continue` sends the next prompt into the SAME conversation. The model keeps everything it learned, the
|
|
39
|
-
* prefix stays cached, and, when the run is isolated, the work stays in one worktree on one branch, which is
|
|
40
|
-
* the only way a chain like implement → test → document can build on itself at all. Requires exactly one
|
|
41
|
-
* predecessor: two upstream sessions cannot both be continued into one.
|
|
42
|
-
*/
|
|
16
|
+
// How a step meets its predecessor: fresh opens a new conversation, knowing only the predecessor's declared output;
|
|
17
|
+
// continue carries the same conversation forward, and requires exactly one predecessor.
|
|
43
18
|
export const WorkflowHandoffSchema = z.enum(["fresh", "continue"]);
|
|
44
19
|
export type WorkflowHandoff = z.infer<typeof WorkflowHandoffSchema>;
|
|
45
|
-
// Enough
|
|
46
|
-
// this is two workflows, and reading it as one graph was never going to work.
|
|
20
|
+
// Enough for a real pipeline; more than this reads as two workflows, not one graph.
|
|
47
21
|
const WORKFLOW_STEPS_MAX = 24;
|
|
48
22
|
export const WorkflowStepSchema = z.object({
|
|
49
23
|
id: StepIdSchema.describe("This step's own name, which other steps use to say they wait on it."),
|
|
50
|
-
// What the node
|
|
24
|
+
// What the node shows on the graph; keep it short, detail belongs in the prompt.
|
|
51
25
|
title: z.string().min(1).max(60).describe("What to call it on screen. Short: the instruction below is where the detail goes."),
|
|
52
|
-
|
|
53
|
-
* its instruction already carries it (loop-brief); it is the sentence the step is measured against.
|
|
54
|
-
*
|
|
55
|
-
* ABSENT ⇒ THE RUN'S OWN REQUEST IS THE GOAL, which is the ordinary case and not the exotic one. A saved
|
|
56
|
-
* workflow is a SHAPE, "two models on one task", and for most of its steps the thing being asked for is
|
|
57
|
-
* whatever the person typed this time. Writing a goal here as well means saying the same thing twice and
|
|
58
|
-
* keeping the two in agreement forever; leaving it out means the step is measured against the request,
|
|
59
|
-
* which is what anyone would have written anyway. Declare one only where the step's bar is genuinely its
|
|
60
|
-
* own ("the suite is green") rather than the run's.
|
|
61
|
-
*/
|
|
26
|
+
// Absent means the step is judged against the run's own request; set only when its bar differs from that.
|
|
62
27
|
goal: z
|
|
63
28
|
.string()
|
|
64
29
|
.min(1)
|
|
@@ -66,15 +31,7 @@ export const WorkflowStepSchema = z.object({
|
|
|
66
31
|
.describe(
|
|
67
32
|
"What done means for this step, in your words. It is what the step is judged against, and a different sentence from what it is told to do.",
|
|
68
33
|
),
|
|
69
|
-
|
|
70
|
-
* "run the tests, take the top failure, fix it" is the instruction.
|
|
71
|
-
*
|
|
72
|
-
* ABSENT ⇒ THE REQUEST IS HANDED OVER VERBATIM, with none of the workflow's own framing around it (see
|
|
73
|
-
* briefForStep). That is the default because the framing is not free: every heading between the reader's
|
|
74
|
-
* sentence and the model is a chance for the model to answer the frame instead of the question, and a step
|
|
75
|
-
* whose whole job is "do what was asked" has nothing to add to it. A step that DOES declare a prompt is
|
|
76
|
-
* saying it has a job of its own, review this, merge those, and gets the full brief, request included.
|
|
77
|
-
*/
|
|
34
|
+
// Absent hands the run's own request over verbatim; declare a prompt only when the step has a job of its own.
|
|
78
35
|
prompt: z
|
|
79
36
|
.string()
|
|
80
37
|
.min(1)
|
|
@@ -82,8 +39,7 @@ export const WorkflowStepSchema = z.object({
|
|
|
82
39
|
.describe(
|
|
83
40
|
"What the step is told to do. The goal is the suite is green; this is run the tests, take the top failure, fix it. Leaving it out hands over the run's own request untouched, which is right for a step whose whole job is do what was asked.",
|
|
84
41
|
),
|
|
85
|
-
//
|
|
86
|
-
// graph must be acyclic and every id must exist; both are checked when the workflow is saved.
|
|
42
|
+
// Steps that must finish first; empty means a root. Must be acyclic with every id existing, checked on save.
|
|
87
43
|
needs: z
|
|
88
44
|
.array(StepIdSchema)
|
|
89
45
|
.describe(
|
|
@@ -94,14 +50,11 @@ export const WorkflowStepSchema = z.object({
|
|
|
94
50
|
),
|
|
95
51
|
output: LoopOutputSchema.describe("What it has to produce for the step to count."),
|
|
96
52
|
checks: z.array(LoopCheckSchema).describe("What has to pass before it counts as done."),
|
|
97
|
-
// How the step's own
|
|
98
|
-
// long-running step wants `fresh` (no context rot); a short refine-this step wants `continue`.
|
|
53
|
+
// How the step's own iterations meet each other: a long step wants fresh each round, a short one continue.
|
|
99
54
|
context: LoopContextSchema.describe(
|
|
100
55
|
"How the step's own repeats meet each other. A long-running step wants to start clean each round; a short polish-this step wants to carry on.",
|
|
101
56
|
),
|
|
102
|
-
|
|
103
|
-
* the one resource the owner cannot recover after an unattended fan-out, and the underlying loop already
|
|
104
|
-
* enforces it exactly. Absent remains uncapped for short, person-started work. */
|
|
57
|
+
// Unrecoverable after an unattended fan-out, unlike iteration or stall limits; absent means uncapped.
|
|
105
58
|
maxSpendUsd: z
|
|
106
59
|
.number()
|
|
107
60
|
.positive()
|
|
@@ -113,11 +66,7 @@ export const WorkflowStepSchema = z.object({
|
|
|
113
66
|
harness: AgentHarnessSchema.optional().describe("Which agentic loop runs it."),
|
|
114
67
|
account: z.string().optional().describe("Which account pays for it."),
|
|
115
68
|
model: z.string().optional().describe("Which model runs it."),
|
|
116
|
-
|
|
117
|
-
* actsAs), because a step IS an unattended turn under the loop machinery. Unpinned, a step keeps the
|
|
118
|
-
* strict unattended default: full tools, no logged-in accounts. Pinning a card is how a gated release
|
|
119
|
-
* check gets a voice, a folder scope, or the one Reddit it is allowed to post from, a decision the owner
|
|
120
|
-
* already wrote down once, on the card. */
|
|
69
|
+
// Unpinned, a step defaults to every tool and no signed-in accounts; pinning grants a scope or an account.
|
|
121
70
|
actsAs: entryId
|
|
122
71
|
.optional()
|
|
123
72
|
.describe(
|
|
@@ -125,58 +74,29 @@ export const WorkflowStepSchema = z.object({
|
|
|
125
74
|
),
|
|
126
75
|
});
|
|
127
76
|
export type WorkflowStep = z.infer<typeof WorkflowStepSchema>;
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
* A workflow is a DESIGN; a gate is a PROMISE ABOUT ITS RESULT, and keeping the two separable is the whole
|
|
131
|
-
* point. What a run does, how many sessions, whether they drive a browser, which repos they touch, stays the
|
|
132
|
-
* graph's business, because the value of running a release check this way is that the check is a workflow like
|
|
133
|
-
* any other: an acceptance sweep today, a security review or a performance budget next month, with nothing
|
|
134
|
-
* here ever learning what any of them are.
|
|
135
|
-
*
|
|
136
|
-
* So a gate reads exactly one thing: a named FIELD off a named STEP's declared output (output-fields.ts). That
|
|
137
|
-
* field already exists for precisely the reason this needs it, a declared field is the one part of a session's
|
|
138
|
-
* answer that was VALIDATED rather than parsed back out of the prose the model was talking to a person in,
|
|
139
|
-
* and pointing at one is the entire rule.
|
|
140
|
-
*/
|
|
77
|
+
// A gate is a promise about a run's result, separate from the design itself. It reads one named field off one step's
|
|
78
|
+
// declared output, the one part of an answer that was validated rather than parsed from prose.
|
|
141
79
|
export const WorkflowGateSchema = z.object({
|
|
142
|
-
// Which step's declared output carries the decision
|
|
143
|
-
// nothing requires that, and a one-step workflow naming its only step is the common small case.
|
|
80
|
+
// Which step's declared output carries the decision; usually a leaf that weighs up the ones before it.
|
|
144
81
|
step: StepIdSchema.describe(
|
|
145
82
|
"Which step's answer carries the decision. Usually a last step that weighs up the ones before it, though nothing requires that.",
|
|
146
83
|
),
|
|
147
|
-
// Which of that step's declared fields is read
|
|
148
|
-
// workflow is saved, a gate pointed at a field nobody writes answers `blocked` on every run, forever.
|
|
84
|
+
// Which of that step's declared fields is read; checked against what it actually declares when saved.
|
|
149
85
|
field: z
|
|
150
86
|
.string()
|
|
151
87
|
.min(1)
|
|
152
88
|
.describe(
|
|
153
89
|
"Which of that step's declared answers to read. A declared field is the one part of a step's answer that was checked rather than fished out of prose, which is the whole rule here. Checked when the workflow is saved.",
|
|
154
90
|
),
|
|
155
|
-
|
|
156
|
-
*
|
|
157
|
-
* An allowlist rather than a blocklist, because the two are not symmetric under a model's vocabulary. A
|
|
158
|
-
* step that answers "mostly-pass", "pass-with-notes" or "pass (2 minor defects)" must not ship, and the
|
|
159
|
-
* allowlist gets that right without anyone having had to enumerate the ways a model can hedge.
|
|
160
|
-
*/
|
|
91
|
+
// Values meaning ship it; everything else fails. An allowlist, since a hedge like mostly-pass must not ship.
|
|
161
92
|
pass: z
|
|
162
93
|
.array(z.string().min(1))
|
|
163
94
|
.min(1)
|
|
164
95
|
.describe(
|
|
165
96
|
"Which values mean ship it. Everything else fails. A list of what passes rather than what fails, because a step answering mostly-pass or pass-with-notes must not ship, and this gets that right without anybody having had to enumerate the ways a model can hedge.",
|
|
166
97
|
),
|
|
167
|
-
//
|
|
168
|
-
//
|
|
169
|
-
token: z
|
|
170
|
-
.string()
|
|
171
|
-
.optional()
|
|
172
|
-
.describe(
|
|
173
|
-
"The credential the calling pipeline presents. It is the only one in the exchange, because a build runner has no identity of its own here.",
|
|
174
|
-
),
|
|
175
|
-
/* Runs per UTC day, across every caller. A gate is a paid endpoint reachable with no person in the loop:
|
|
176
|
-
* one of these wired into a push-triggered pipeline is a fan-out of sessions per commit, and the
|
|
177
|
-
* per-request deadline bounds one call's WALL CLOCK without bounding the day's SPEND. Absent ⇒
|
|
178
|
-
* GATE_DAILY_MAX_DEFAULT, not uncapped, for the reason the Front Desk's ceiling is not optional either.
|
|
179
|
-
*/
|
|
98
|
+
// Token isn't here: minted on save into the secrets store, carried separately as gateToken.
|
|
99
|
+
// Runs per UTC day, across every caller; absent defaults to GATE_DAILY_MAX_DEFAULT, not uncapped.
|
|
180
100
|
dailyMax: z
|
|
181
101
|
.number()
|
|
182
102
|
.int()
|
|
@@ -187,26 +107,18 @@ export const WorkflowGateSchema = z.object({
|
|
|
187
107
|
),
|
|
188
108
|
});
|
|
189
109
|
export type WorkflowGate = z.infer<typeof WorkflowGateSchema>;
|
|
190
|
-
|
|
191
|
-
* Front Desk message is one turn, a gate run is a whole graph of sessions, and the honest comparison is cost
|
|
192
|
-
* rather than count. Twenty is a busy day of merges and a script's first minute. */
|
|
110
|
+
// Small next to the Front Desk's 200: a gate run is a whole graph of sessions, not one turn.
|
|
193
111
|
export const GATE_DAILY_MAX_DEFAULT = 20;
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
* `blocked` exists for the same reason acceptance's verdict has one: "we could not reach a judgment" is not
|
|
197
|
-
* "the product is broken". A gate that reported them the same way would go red for its own outages, and a team
|
|
198
|
-
* that cannot tell the two apart turns the gate off, so `blocked` is meant to be the honest answer far more
|
|
199
|
-
* often than it is the convenient one. It maps to a NEUTRAL pipeline exit, never a failed build.
|
|
200
|
-
*/
|
|
112
|
+
// blocked means the gate couldn't reach a judgment, not that the product is broken; conflating the two makes teams turn
|
|
113
|
+
// the gate off. Maps to a neutral pipeline exit, never a failed build.
|
|
201
114
|
export const GateOutcomeSchema = z.enum(["pass", "fail", "blocked"]);
|
|
202
115
|
export type GateOutcome = z.infer<typeof GateOutcomeSchema>;
|
|
203
|
-
//
|
|
204
|
-
// never got one to read, which is every `blocked` that is not a disagreement about the value.
|
|
116
|
+
// value is the field as the step wrote it; absent means most blocked verdicts had nothing to read.
|
|
205
117
|
export const GateVerdictSchema = z.object({
|
|
206
118
|
outcome: GateOutcomeSchema.describe(
|
|
207
119
|
"Ship it, do not, or we could not tell. That third answer exists because could not reach a judgement is not the product is broken: a gate that reported its own outages as failures is one a team switches off, so it should be the honest answer far more often than the convenient one, and it means a neutral build rather than a red one.",
|
|
208
120
|
),
|
|
209
|
-
//
|
|
121
|
+
// Why, in one line; realistically the only part of this a pipeline log will show.
|
|
210
122
|
reason: z.string().describe("Why, in one line. Realistically the only part of this a build log will ever show."),
|
|
211
123
|
runId: z.string().describe("The run behind the verdict, so somebody can go and read it."),
|
|
212
124
|
value: z
|
|
@@ -226,22 +138,13 @@ export const WorkflowSchema = z.object({
|
|
|
226
138
|
.describe(
|
|
227
139
|
"The steps, each with what it waits on. Every one runs in its own private copy of the repos, always, because parallel steps sharing a tree collide.",
|
|
228
140
|
),
|
|
229
|
-
// Present
|
|
230
|
-
// workflow, started by a person from the workflows page, with no public door onto it at all.
|
|
141
|
+
// Present means a machine can run this for a ship decision; absent means an ordinary person-started workflow.
|
|
231
142
|
gate: WorkflowGateSchema.optional().describe(
|
|
232
143
|
"Present means a machine can run this design and get a ship-it answer back. Absent means an ordinary workflow, started by a person, with no outside door onto it at all.",
|
|
233
144
|
),
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
* It was a per-workflow choice between worktrees and the shared /work tree, and the shared side never
|
|
238
|
-
* earned its place: parallel steps on one tree collide, a `fresh` step there sees a half-finished
|
|
239
|
-
* predecessor's edits as if they were the workspace, and the pinned-base-to-branch comparisons that make
|
|
240
|
-
* a fan-in READABLE (see workflow-brief) only exist on the isolated side. A setting whose other value is a
|
|
241
|
-
* subtle trap is not a setting, it is a mistake waiting for somebody to make it.
|
|
242
|
-
*/
|
|
243
|
-
// How many steps may run at once. Bounded because a fan-out of twelve is twelve provider sessions, twelve
|
|
244
|
-
// worktrees and twelve times the burn rate, and because the machine this runs on is one machine.
|
|
145
|
+
// Every step runs in its own worktree, always, with no toggle; a shared tree lets a fresh step see a predecessor's
|
|
146
|
+
// half-finished edits, and breaks fan-in diffs.
|
|
147
|
+
// Bounded: a fan-out of N is N provider sessions, N worktrees and N times the burn rate, on one machine.
|
|
245
148
|
maxParallel: z
|
|
246
149
|
.number()
|
|
247
150
|
.int()
|
|
@@ -252,13 +155,9 @@ export const WorkflowSchema = z.object({
|
|
|
252
155
|
),
|
|
253
156
|
});
|
|
254
157
|
export type Workflow = z.infer<typeof WorkflowSchema>;
|
|
255
|
-
// The rules a graph has to clear before it can be saved or run, the acyclic `needs`, the once-only
|
|
256
|
-
// continuation, are in workflow-faults.ts, because they are about the graph rather than about any field here.
|
|
257
158
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
* trail of grey ones rather than a wall of failures that all say the same thing.
|
|
261
|
-
*/
|
|
159
|
+
// skipped means the step never ran because something it waited on didn't finish; that's why a failed run shows one red
|
|
160
|
+
// node and a trail of grey ones.
|
|
262
161
|
export const WorkflowStepStateSchema = z.enum(["pending", "running", "done", "failed", "skipped", "stopped"]);
|
|
263
162
|
export type WorkflowStepState = z.infer<typeof WorkflowStepStateSchema>;
|
|
264
163
|
export const WorkflowStepRunSchema = z.object({
|
|
@@ -266,8 +165,7 @@ export const WorkflowStepRunSchema = z.object({
|
|
|
266
165
|
state: WorkflowStepStateSchema.describe(
|
|
267
166
|
"How it went. Skipped carries what the others cannot: it never ran, because something it was waiting on did not finish. That is why a failed run shows one red step and a trail of grey ones.",
|
|
268
167
|
),
|
|
269
|
-
// The conversation this step ran on
|
|
270
|
-
// Shared with the predecessor when the handoff is `continue`, which is what makes those steps one card.
|
|
168
|
+
// The conversation this step ran on; shared with its predecessor under continue, making them one card.
|
|
271
169
|
conversationId: z
|
|
272
170
|
.string()
|
|
273
171
|
.describe(
|
|
@@ -277,27 +175,23 @@ export const WorkflowStepRunSchema = z.object({
|
|
|
277
175
|
endedAt: z.number().optional().describe("When it ended, in milliseconds."),
|
|
278
176
|
iterations: z.number().int().min(0).describe("How many rounds it took."),
|
|
279
177
|
costUsd: z.number().optional().describe("What it cost, in dollars."),
|
|
280
|
-
//
|
|
281
|
-
// between them is the difference between "give it more room" and "more room will not help".
|
|
178
|
+
// exhausted and stalled both surface as failed; the difference is whether more room would have helped.
|
|
282
179
|
loopState: LoopStateSchema.optional().describe(
|
|
283
180
|
"How its repeating ended. Out of rounds and stuck both come out as a failed step, and the difference between them is the difference between give it more room and more room will not help.",
|
|
284
181
|
),
|
|
285
182
|
detail: z.string().optional().describe("What went wrong, when something did."),
|
|
286
|
-
//
|
|
287
|
-
// means it matched the declared fields. This is what the steps downstream are given.
|
|
183
|
+
// Present once the step writes a document matching its declared shape; what downstream steps are handed.
|
|
288
184
|
document: LoopDocumentSchema.optional().describe(
|
|
289
185
|
"What it produced, once it has produced something that passes its own declared shape. This is what the steps after it are handed.",
|
|
290
186
|
),
|
|
291
|
-
|
|
292
|
-
* handoff is not silently reduced to its last few thousand characters and the ledger stays bounded. */
|
|
187
|
+
// Bounded preview of the closing words; the full text lives at reportPath, keeping the ledger small.
|
|
293
188
|
report: z
|
|
294
189
|
.string()
|
|
295
190
|
.optional()
|
|
296
191
|
.describe(
|
|
297
192
|
"The start of its closing words. Bounded, so a long answer is not silently cut down to its last few thousand characters and the record stays a sensible size.",
|
|
298
193
|
),
|
|
299
|
-
// Workspace-relative
|
|
300
|
-
// daemon see the same .intentic mount, so downstream steps can read it without copying it into their prompt.
|
|
194
|
+
// Workspace-relative path on the shared .intentic mount; steps read it without copying into a prompt.
|
|
301
195
|
reportPath: z
|
|
302
196
|
.string()
|
|
303
197
|
.optional()
|
|
@@ -306,22 +200,16 @@ export const WorkflowStepRunSchema = z.object({
|
|
|
306
200
|
),
|
|
307
201
|
});
|
|
308
202
|
export type WorkflowStepRun = z.infer<typeof WorkflowStepRunSchema>;
|
|
309
|
-
//
|
|
310
|
-
// reach its leaves did not do what it was asked whatever the survivors managed.
|
|
203
|
+
// done means every step that ran finished; any run with a skipped step counts as failed.
|
|
311
204
|
export const WorkflowRunStateSchema = z.enum(["running", "done", "failed", "stopped", "overspent", "error"]);
|
|
312
205
|
export type WorkflowRunState = z.infer<typeof WorkflowRunStateSchema>;
|
|
313
206
|
export const WorkflowRunSchema = z.object({
|
|
314
207
|
runId: z.string().min(1).describe("This run's id."),
|
|
315
|
-
|
|
316
|
-
* and none of them tolerate a live lookup: the run view draws the graph the run actually ran (not the one
|
|
317
|
-
* that has been edited twice since), the boot resume needs the step definitions of a workflow that may have
|
|
318
|
-
* been deleted, and a history row for a deleted workflow is otherwise an id and nothing else. */
|
|
208
|
+
// Snapshot at run start, not a live reference; the run stays readable even if the design is edited or deleted.
|
|
319
209
|
workflow: WorkflowSchema.describe(
|
|
320
210
|
"The design as it stood when the run started, copied rather than looked up. The run has to keep showing the graph it actually ran, not the one edited twice since, and a run of a deleted workflow has to stay readable.",
|
|
321
211
|
),
|
|
322
|
-
|
|
323
|
-
* these exact commits, even if main moves while a wide fan-out is still opening worktrees. Handoffs use the
|
|
324
|
-
* same bases in their diff commands, so provenance works in nested repositories as well as at root. */
|
|
212
|
+
// One immutable commit per repo at run start; every step branches from these exact commits regardless of main.
|
|
325
213
|
repos: z
|
|
326
214
|
.array(RepoBaseSchema)
|
|
327
215
|
.min(1)
|
|
@@ -329,17 +217,7 @@ export const WorkflowRunSchema = z.object({
|
|
|
329
217
|
.describe(
|
|
330
218
|
"The workspace as this run began, one exact commit per repository. Every step branches from these, even if the shared tree moves while a wide fan-out is still opening its copies, so the steps can be compared with each other afterwards.",
|
|
331
219
|
),
|
|
332
|
-
|
|
333
|
-
* on top of its own prompt. Absent for a run started from the workflows page, which has no composer.
|
|
334
|
-
*
|
|
335
|
-
* It is what makes one saved design worth keeping: "two models, one task" is a SHAPE, and the task is
|
|
336
|
-
* different every time. Without this the only way to point a workflow at today's job is to open the
|
|
337
|
-
* designer and retype a step's prompt, which means the design and the request are the same document,
|
|
338
|
-
* and editing a graph to ask a question is not something anybody does twice.
|
|
339
|
-
*
|
|
340
|
-
* Snapshotted on the run beside the workflow, and for the same reason: the run has to stay readable, and
|
|
341
|
-
* "what was this one about" is the first thing anyone asks of a row in the history.
|
|
342
|
-
*/
|
|
220
|
+
// What the run was asked to do, handed to every step atop its own prompt; absent when there is no composer.
|
|
343
221
|
request: z
|
|
344
222
|
.string()
|
|
345
223
|
.optional()
|
|
@@ -351,25 +229,16 @@ export const WorkflowRunSchema = z.object({
|
|
|
351
229
|
),
|
|
352
230
|
startedAt: z.number().describe("When it began, in milliseconds."),
|
|
353
231
|
endedAt: z.number().optional().describe("When it ended, in milliseconds."),
|
|
354
|
-
// How many
|
|
232
|
+
// How many times the sandbox restarted and picked this run back up.
|
|
355
233
|
resumed: z.number().int().min(0).describe("How many times the sandbox restarted under it and picked it back up."),
|
|
356
234
|
detail: z.string().optional().describe("What went wrong, when something did."),
|
|
357
|
-
// One entry per step, in the
|
|
358
|
-
// is complete from the first frame and a node's absence never has to mean two things.
|
|
235
|
+
// One entry per step, in the design's order; all start pending so the graph is complete from the first frame.
|
|
359
236
|
steps: z
|
|
360
237
|
.array(WorkflowStepRunSchema)
|
|
361
238
|
.describe(
|
|
362
239
|
"One entry per step, in the design's own order. Every one is written down as waiting when the run starts, so the picture is complete from the first frame and a missing step never has to mean two things.",
|
|
363
240
|
),
|
|
364
|
-
|
|
365
|
-
* it, and the same promise: the run record stays readable in the history and every step's branch,
|
|
366
|
-
* transcript and counters are untouched. Absent ⇒ live on the board.
|
|
367
|
-
*
|
|
368
|
-
* A RUN AND ITS STEPS ARCHIVE AS ONE, which is the whole reason this field exists rather than the record
|
|
369
|
-
* simply being dropped. A run's steps have no card of their own, the run's row is what stands for them,
|
|
370
|
-
* so deleting the record was releasing five loose conversations back onto the board at the moment the user
|
|
371
|
-
* said they were finished with the job. Archiving the run archives its sessions with it and unarchiving
|
|
372
|
-
* brings both back, so "done with this" means the same thing for a workflow as it does for an agent. */
|
|
241
|
+
// Off the board like an agent's archivedAt; a run and its steps archive and unarchive as one unit.
|
|
373
242
|
archivedAt: z
|
|
374
243
|
.number()
|
|
375
244
|
.optional()
|
|
@@ -378,8 +247,15 @@ export const WorkflowRunSchema = z.object({
|
|
|
378
247
|
),
|
|
379
248
|
});
|
|
380
249
|
export type WorkflowRun = z.infer<typeof WorkflowRunSchema>;
|
|
381
|
-
// The
|
|
382
|
-
|
|
250
|
+
// The gate's credential; attached for a maintainer or the owner, and for nobody else.
|
|
251
|
+
const gateToken = z
|
|
252
|
+
.string()
|
|
253
|
+
.optional()
|
|
254
|
+
.describe("What a pipeline presents at /workflows/{id}/gate, when the design declares a gate. Shown to a maintainer or the owner only.");
|
|
255
|
+
// Save answers with the stored design plus the gate credential, the only way the designer learns the pipeline URL.
|
|
256
|
+
export const WorkflowSavedSchema = WorkflowSchema.extend({ gateToken });
|
|
257
|
+
export type WorkflowSaved = z.infer<typeof WorkflowSavedSchema>;
|
|
258
|
+
export const WorkflowSummarySchema = WorkflowSchema.extend({ runs: z.array(WorkflowRunSchema).describe("Its runs, newest first."), gateToken });
|
|
383
259
|
export type WorkflowSummary = z.infer<typeof WorkflowSummarySchema>;
|
|
384
260
|
export const WorkflowsListSchema = z.object({ workflows: z.array(WorkflowSummarySchema).describe("Every saved design with its own run history.") });
|
|
385
261
|
export const WorkflowRunsListSchema = z.object({
|
|
@@ -387,9 +263,8 @@ export const WorkflowRunsListSchema = z.object({
|
|
|
387
263
|
});
|
|
388
264
|
export const WorkflowIdParamSchema = z.object({ id: z.string().describe("Which workflow.") });
|
|
389
265
|
export const WorkflowRunIdParamSchema = z.object({ runId: z.string().describe("Which run.") });
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
* on its own, and only a design written as a shape needs today's sentence. */
|
|
266
|
+
// request is optional: a workflows-page run has no composer to fill it from, and a design whose steps already say what
|
|
267
|
+
// they want needs nothing more.
|
|
393
268
|
export const WorkflowRunStartSchema = WorkflowIdParamSchema.extend({
|
|
394
269
|
request: z
|
|
395
270
|
.string()
|
|
@@ -400,9 +275,8 @@ export const WorkflowRunStartSchema = WorkflowIdParamSchema.extend({
|
|
|
400
275
|
"What to point it at. Optional, because a design whose steps already say what they want is complete on its own; only one written as a shape needs today's sentence.",
|
|
401
276
|
),
|
|
402
277
|
});
|
|
403
|
-
//
|
|
404
|
-
//
|
|
405
|
-
// authority that prevents one saved design from overwriting another.
|
|
278
|
+
// Create and replace are explicit and distinct: an id collision on create conflicts, and updating a missing id never
|
|
279
|
+
// implicitly creates one. The daemon enforces this, not a browser convention.
|
|
406
280
|
export const WorkflowSaveSchema = z.object({
|
|
407
281
|
workflow: WorkflowSchema.describe("The design to write."),
|
|
408
282
|
create: z
|
|
@@ -15,8 +15,7 @@ export const CloneResultSchema = z.object({
|
|
|
15
15
|
name: z.string().describe("What it ended up called."),
|
|
16
16
|
path: z.string().describe("Where it landed."),
|
|
17
17
|
});
|
|
18
|
-
//
|
|
19
|
-
// turn-orchestration outcomes skipped/error; behind/ahead/head/message are present per status (see RepoSyncOutcome).
|
|
18
|
+
// status mirrors GitSyncResult plus turn outcomes skipped/error; behind/ahead/head/message are present per status.
|
|
20
19
|
export const RepoSyncSchema = z.object({
|
|
21
20
|
repo: z.string().describe("Which repository."),
|
|
22
21
|
status: z
|
|
@@ -30,9 +29,8 @@ export const RepoSyncSchema = z.object({
|
|
|
30
29
|
message: z.string().optional().describe("What went wrong, when something did."),
|
|
31
30
|
});
|
|
32
31
|
export const WorkspaceSyncSchema = z.object({ repos: z.array(RepoSyncSchema).describe("One entry per repository, saying what happened to it.") });
|
|
33
|
-
//
|
|
34
|
-
//
|
|
35
|
-
// (e.g. "shop-api"); {repo} names the target monorepo.
|
|
32
|
+
// Adds named app instances to an existing monorepo: template is a key from the source repo's templates.json, name is
|
|
33
|
+
// the user's chosen instance name.
|
|
36
34
|
export const AppInstanceInputSchema = z.object({
|
|
37
35
|
template: z.string().min(1).describe("Which kind of app to scaffold, by its key in the template list."),
|
|
38
36
|
name: z
|
|
@@ -46,17 +44,14 @@ export const AddAppsSchema = z.object({
|
|
|
46
44
|
repo: z.string().describe("Which repository to scaffold into."),
|
|
47
45
|
apps: z.array(AppInstanceInputSchema).min(1).describe("The apps to add."),
|
|
48
46
|
});
|
|
49
|
-
//
|
|
50
|
-
//
|
|
51
|
-
// (an app/package name as `<name>__test`, or `tests` for the library section); `dirs` are repo-relative
|
|
52
|
-
// package dirs, where "" targets the repo root.
|
|
47
|
+
// Runs vitest in a one-shot tmux panel session (panel-<repo>--<session>). dirs are repo-relative package dirs; ""
|
|
48
|
+
// targets the repo root.
|
|
53
49
|
export const RunTestsSchema = z.object({
|
|
54
50
|
repo: z.string().describe("Which repository."),
|
|
55
51
|
session: z.string().describe("What to call the terminal this runs in, so you can find it again."),
|
|
56
52
|
dirs: z.array(z.string()).min(1).describe("Which projects to test, as folders relative to the repository. Empty targets the repository root."),
|
|
57
53
|
});
|
|
58
|
-
// One addable app type the
|
|
59
|
-
// panel's Add-app picker: the manifest key + its label/description.
|
|
54
|
+
// One addable app type from the source repo's templates.json, for the Add-app picker.
|
|
60
55
|
export const TemplateSummarySchema = z.object({
|
|
61
56
|
key: z.string().describe("The id to name when scaffolding one."),
|
|
62
57
|
label: z.string().describe("What to call it on screen."),
|
|
@@ -67,11 +62,8 @@ export const TemplatesListSchema = z.object({
|
|
|
67
62
|
templates: z.array(TemplateSummarySchema).describe("The kinds of app the configured source repository knows how to scaffold."),
|
|
68
63
|
});
|
|
69
64
|
export type TemplatesList = z.infer<typeof TemplatesListSchema>;
|
|
70
|
-
// One app instance
|
|
71
|
-
//
|
|
72
|
-
// app it is, the manifest key it was scaffolded from (api/web/landing), else the framework detected from its
|
|
73
|
-
// dependencies (astro/next/…), and absent when it was discovered purely by its `dev` script. previewUrl is
|
|
74
|
-
// https://preview-<repo>--<app>-<sandboxId>.<zone> (absent on loopback, no zone or no connect token).
|
|
65
|
+
// One app instance in a monorepo, with its own dev server and status. previewUrl is
|
|
66
|
+
// https://preview-<repo>--<app>-<sandboxId>.<zone>, absent without a zone or connect token.
|
|
75
67
|
export const RepoAppSchema = z.object({
|
|
76
68
|
app: z.string().describe("The app's name, which is also its folder."),
|
|
77
69
|
kind: z
|
|
@@ -83,8 +75,7 @@ export const RepoAppSchema = z.object({
|
|
|
83
75
|
previewUrl: z.string().optional().describe("Where to open it. Absent when this sandbox has no outside address."),
|
|
84
76
|
running: z.boolean().describe("Whether its dev server is up."),
|
|
85
77
|
healthy: z.boolean().describe("Whether it is actually answering."),
|
|
86
|
-
//
|
|
87
|
-
// installs at its monorepo's root, so `installed` is the root's node_modules.
|
|
78
|
+
// Same as a repo's panel row: an app installs at its monorepo's root, so this is the root's node_modules.
|
|
88
79
|
installed: z
|
|
89
80
|
.boolean()
|
|
90
81
|
.describe("Whether its dependencies are installed, which is what decides whether a start takes seconds or an install first."),
|
|
@@ -95,8 +86,7 @@ export const RepoAppSchema = z.object({
|
|
|
95
86
|
export type RepoApp = z.infer<typeof RepoAppSchema>;
|
|
96
87
|
export const AppsListSchema = z.object({ apps: z.array(RepoAppSchema).describe("The apps in this repository.") });
|
|
97
88
|
export type AppsList = z.infer<typeof AppsListSchema>;
|
|
98
|
-
//
|
|
99
|
-
// repo-relative package dir (e.g. "_editor/web"); `group` is its top-level dir segment (e.g. "_editor"), the
|
|
89
|
+
// A pnpm-workspace package, discovered from pnpm-workspace.yaml's globs. group is the top-level dir segment, the
|
|
100
90
|
// dependencies view's coloring axis.
|
|
101
91
|
export const WorkspacePackageSchema = z.object({
|
|
102
92
|
name: z.string().describe("The name the package declares."),
|
|
@@ -106,8 +96,7 @@ export const WorkspacePackageSchema = z.object({
|
|
|
106
96
|
export type WorkspacePackage = z.infer<typeof WorkspacePackageSchema>;
|
|
107
97
|
export const WorkspaceDepTypeSchema = z.enum(["prod", "dev", "peer"]);
|
|
108
98
|
export type WorkspaceDepType = z.infer<typeof WorkspaceDepTypeSchema>;
|
|
109
|
-
// A workspace-internal dependency edge:
|
|
110
|
-
// dependency block declared it. Pure data, layout/direction is the client's concern.
|
|
99
|
+
// A workspace-internal dependency edge: from depends on to, typed by which dependency block declared it.
|
|
111
100
|
export const WorkspaceDepEdgeSchema = z.object({
|
|
112
101
|
from: z.string().describe("The package that depends."),
|
|
113
102
|
to: z.string().describe("The package it depends on."),
|
|
@@ -119,8 +108,7 @@ export const WorkspaceGraphSchema = z.object({
|
|
|
119
108
|
edges: z.array(WorkspaceDepEdgeSchema).describe("Which of them use which. Pure data: how to lay it out is yours to decide."),
|
|
120
109
|
});
|
|
121
110
|
export type WorkspaceGraph = z.infer<typeof WorkspaceGraphSchema>;
|
|
122
|
-
// Path params for the per-repo apps routes: the monorepo
|
|
123
|
-
// and, for per-app preview control (start/stop), the app key (api/web/landing).
|
|
111
|
+
// Path params for the per-repo apps routes: repo names the monorepo, validated like PanelRepoParam.
|
|
124
112
|
export const RepoAppsParamSchema = z.object({ repo: z.string().describe("Which repository.") });
|
|
125
113
|
export const AppParamSchema = z.object({
|
|
126
114
|
repo: z.string().describe("Which repository."),
|