@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,53 +1,46 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
1
|
+
// Extensions: installed extension-kind capabilities resolved to their manifests; extension updates: what the registry
|
|
2
|
+
// check found and what the owner decided to do about it.
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { ExtensionManifestSchema } from "@intentic/extension-manifest";
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
// The routing handle: a git-installed extension uses its capability entry id; an image-baked one has no
|
|
9
|
-
// capability entry and is addressed by the manifest-derived publisher.name, hence the dot in the pattern.
|
|
5
|
+
// Each extension is addressed by its capability entry id (git-installed) or its manifest's `publisher.name`
|
|
6
|
+
// (image-baked, no entry), hence the dot allowed here. A rotted checkout is skipped; its capability row still shows
|
|
7
|
+
// status.
|
|
10
8
|
const extensionId = z
|
|
11
9
|
.string()
|
|
12
10
|
.min(1)
|
|
13
11
|
.max(121)
|
|
14
12
|
.regex(/^[a-zA-Z0-9][a-zA-Z0-9_.-]*$/);
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
// `auto-disable` is the default and `notify` is the opt-out.
|
|
13
|
+
// Owner's per-extension update posture.
|
|
14
|
+
// updates: notify (default, badge and wait), agent (also prepares an agent diff-read), auto (apply unattended if
|
|
15
|
+
// verified and powers didn't grow, health-watched with auto-revert; otherwise falls back to notify).
|
|
16
|
+
// advisories: auto-disable (default, since disabling runs no new code) or notify.
|
|
20
17
|
export const ExtensionUpdatePolicySchema = z.object({
|
|
21
18
|
updates: z.enum(["notify", "agent", "auto"]),
|
|
22
19
|
advisories: z.enum(["auto-disable", "notify"]),
|
|
23
20
|
});
|
|
24
21
|
export type ExtensionUpdatePolicy = z.infer<typeof ExtensionUpdatePolicySchema>;
|
|
25
|
-
// A newer sha the registry lists
|
|
26
|
-
//
|
|
22
|
+
// A newer sha the registry lists, the update-available badge's substance. `url`/`path` ride along because updating
|
|
23
|
+
// follows this row as it stands now, not the original install.
|
|
27
24
|
export const ExtensionUpdateSchema = z.object({
|
|
28
25
|
ref: z.string().describe("The commit being offered."),
|
|
29
26
|
version: z.string().optional().describe("What it calls itself."),
|
|
30
27
|
url: z.string().describe("Where it comes from."),
|
|
31
28
|
path: z.string().optional().describe("Where inside that repository it lives."),
|
|
32
29
|
trust: z.enum(["verified", "listed"]).describe("Whether anybody vouched for it, or it is merely listed."),
|
|
33
|
-
// The
|
|
34
|
-
// here the OLD version is the dangerous one.
|
|
30
|
+
// The badge renders loud (urgent) when this is set.
|
|
35
31
|
securityFix: z
|
|
36
32
|
.boolean()
|
|
37
33
|
.optional()
|
|
38
34
|
.describe("This release fixes a security problem in earlier ones, so here the old version is the dangerous one."),
|
|
39
35
|
registry: z.string().describe("Which registry said so."),
|
|
40
36
|
at: z.string().describe("When it was published."),
|
|
41
|
-
//
|
|
42
|
-
// leads with it so the owner knows the click is theirs for a reason.
|
|
37
|
+
// The card leads with this, so the owner knows why the decision is theirs.
|
|
43
38
|
needsReview: z
|
|
44
39
|
.string()
|
|
45
40
|
.optional()
|
|
46
41
|
.describe(
|
|
47
42
|
"Why this one was not taken automatically and is asking for a person instead: it wants more than it used to, or nobody has vouched for it.",
|
|
48
43
|
),
|
|
49
|
-
// The agent-prepared rung's work: the conversation where the owner's agent already read the diff between
|
|
50
|
-
// the installed sha and this one. The card links it instead of offering to start it.
|
|
51
44
|
review: z
|
|
52
45
|
.object({
|
|
53
46
|
conversationId: z.string().describe("Where to read what it found."),
|
|
@@ -59,8 +52,7 @@ export const ExtensionUpdateSchema = z.object({
|
|
|
59
52
|
),
|
|
60
53
|
});
|
|
61
54
|
export type ExtensionUpdate = z.infer<typeof ExtensionUpdateSchema>;
|
|
62
|
-
//
|
|
63
|
-
// for the person already running it, the reason verbatim, and whether the daemon already pulled the switch.
|
|
55
|
+
// This installed extension was delisted; the record is for someone still running it.
|
|
64
56
|
export const ExtensionAdvisorySchema = z.object({
|
|
65
57
|
reason: z
|
|
66
58
|
.string()
|
|
@@ -72,9 +64,7 @@ export const ExtensionAdvisorySchema = z.object({
|
|
|
72
64
|
autoDisabled: z.boolean().describe("Whether the sandbox has already switched it off."),
|
|
73
65
|
});
|
|
74
66
|
export type ExtensionAdvisory = z.infer<typeof ExtensionAdvisorySchema>;
|
|
75
|
-
//
|
|
76
|
-
// that what the new version declared actually came up (autoStart processes running, backend activated).
|
|
77
|
-
// `fromRef` is the sha the kept-previous checkout holds, what a revert returns to.
|
|
67
|
+
// Checks that the new version's declared autoStart processes and backend actually came up.
|
|
78
68
|
export const ExtensionHealthSchema = z.object({
|
|
79
69
|
state: z
|
|
80
70
|
.enum(["watching", "healthy", "unhealthy"])
|
|
@@ -82,25 +72,22 @@ export const ExtensionHealthSchema = z.object({
|
|
|
82
72
|
detail: z.string().optional().describe("What is going wrong, when something is."),
|
|
83
73
|
fromRef: z.string().optional().describe("Which version it was updated from, which is what going back would return to."),
|
|
84
74
|
at: z.string().describe("When the watching started."),
|
|
85
|
-
// The auto rung's failure path already ran: the update was rolled back unattended, and the record stays to
|
|
86
|
-
// say so rather than pretending the attempt never happened.
|
|
87
75
|
autoReverted: z
|
|
88
76
|
.boolean()
|
|
89
77
|
.optional()
|
|
90
78
|
.describe("The update was already rolled back without anybody asking. The record stays rather than pretending the attempt never happened."),
|
|
91
79
|
});
|
|
92
80
|
export type ExtensionHealth = z.infer<typeof ExtensionHealthSchema>;
|
|
93
|
-
//
|
|
94
|
-
//
|
|
81
|
+
// Mechanical comparison of two manifests' declared reach (`diffPowers`), as plain sentences the update dialog can
|
|
82
|
+
// render directly.
|
|
95
83
|
export const PowersDiffSchema = z.object({
|
|
96
84
|
added: z.array(z.string()).describe("What the new version asks for that the running one does not. The whole point of the comparison."),
|
|
97
85
|
removed: z.array(z.string()).describe("What it no longer asks for."),
|
|
98
86
|
unchanged: z.array(z.string()).describe("What stays the same."),
|
|
99
87
|
});
|
|
100
88
|
export type PowersDiff = z.infer<typeof PowersDiffSchema>;
|
|
101
|
-
// What an owner reads before clicking Update: the offered
|
|
102
|
-
//
|
|
103
|
-
// means "the update the check recorded", which is the only caller most of the time.
|
|
89
|
+
// What an owner reads before clicking Update: the offered version's story, the engines verdict, and its powers diff
|
|
90
|
+
// against what is installed.
|
|
104
91
|
export const ExtensionUpdateActionSchema = z.object({
|
|
105
92
|
id: extensionId.describe("Which extension."),
|
|
106
93
|
ref: z
|
|
@@ -119,8 +106,7 @@ export const ExtensionUpdatePreviewSchema = z.object({
|
|
|
119
106
|
"Exactly what the new code asks for that the running one does not. This is what approving an update is approving.",
|
|
120
107
|
),
|
|
121
108
|
});
|
|
122
|
-
//
|
|
123
|
-
// card must say a one-time image rebuild is pending rather than let the update read as wholly landed.
|
|
109
|
+
// Environment fragment change that alters the composed overlay; the update is not wholly landed until rebuilt.
|
|
124
110
|
export const ExtensionUpdateAppliedSchema = z.object({
|
|
125
111
|
ok: z.literal(true).describe("It went through."),
|
|
126
112
|
ref: z.string().describe("Which commit is now running."),
|
|
@@ -147,43 +133,26 @@ export const ExtensionSummarySchema = z.object({
|
|
|
147
133
|
id: extensionId.describe("The extension's id."),
|
|
148
134
|
manifest: ExtensionManifestSchema.describe("What it declares about itself: what it contributes, what it needs, and what it may reach."),
|
|
149
135
|
commit: z.string().describe("Exactly which commit is installed."),
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
* typically by an agent) is "uninstalled" by deleting its directory. */
|
|
136
|
+
// builtin: hides the uninstall affordance.
|
|
137
|
+
// installed: shows the pinned commit.
|
|
138
|
+
// workspace: "uninstalled" by deleting its directory.
|
|
154
139
|
source: z
|
|
155
140
|
.enum(["builtin", "installed", "workspace"])
|
|
156
141
|
.describe(
|
|
157
142
|
"Where the code comes from: baked into the sandbox image and not removable, installed from a repository at a pinned commit, or written in this workspace and edited in place.",
|
|
158
143
|
),
|
|
159
|
-
//
|
|
160
|
-
// what makes it switchable back on, but the daemon wires none of its contributions up and the web host
|
|
161
|
-
// doesn't activate it.
|
|
144
|
+
// Persisted at .intentic/config/extension-enablement.json.
|
|
162
145
|
enabled: z
|
|
163
146
|
.boolean()
|
|
164
147
|
.describe(
|
|
165
148
|
"The owner's switch. A switched-off extension is still listed, which is what makes it switchable back on, but nothing it contributes is wired up.",
|
|
166
149
|
),
|
|
167
|
-
/* THE SWITCH IS FIXED ON, this extension is the only control surface for an engine the daemon runs
|
|
168
|
-
* regardless. The automations scheduler fires turns on a clock whether or not anything draws them, and
|
|
169
|
-
* hiding the one page that can see, stop or approve those fires would not stop the spend, it would only
|
|
170
|
-
* remove the owner's ability to notice it. So the daemon refuses the flip, and the tab draws the switch as
|
|
171
|
-
* fixed with this fact as the reason.
|
|
172
|
-
*
|
|
173
|
-
* Declared by the CORE about its own engines' surfaces, never by a manifest: a field an extension could set
|
|
174
|
-
* on itself would be a pack making itself un-removable, which is a self-granted privilege the approval flow
|
|
175
|
-
* exists to prevent. */
|
|
176
150
|
essential: z
|
|
177
151
|
.boolean()
|
|
178
152
|
.optional()
|
|
179
153
|
.describe(
|
|
180
154
|
"Its switch is fixed on, because it is the only way to see or stop an engine the sandbox runs regardless. Hiding that page would not stop the spending, only your ability to notice it. Declared by the core about its own surfaces, never by an extension about itself, which would be a pack making itself un-removable.",
|
|
181
155
|
),
|
|
182
|
-
/* How much of the reach this extension asked for it has actually used, keyed by the DECLARED entry so a row
|
|
183
|
-
* joins straight onto `permissions.sandbox`. Absent for an extension that has never been observed calling
|
|
184
|
-
* anything, which is a different claim from "uses none of them" and has to stay tellable: a freshly installed
|
|
185
|
-
* extension has an empty ledger and an unexercised one does too, and reading either as "these permissions are
|
|
186
|
-
* unnecessary" would turn this from evidence into a guess with a number on it. */
|
|
187
156
|
usage: z
|
|
188
157
|
.record(
|
|
189
158
|
z.string(),
|
|
@@ -193,11 +162,7 @@ export const ExtensionSummarySchema = z.object({
|
|
|
193
162
|
.describe(
|
|
194
163
|
"How much of the reach it asked for it has actually used, keyed by what it declared. Absent means never observed doing anything, which is a different claim from uses none of them, and the two have to stay tellable apart: reading either as these permissions are unnecessary turns evidence into a guess with a number on it.",
|
|
195
164
|
),
|
|
196
|
-
|
|
197
|
-
* daemon's backend host reports for it (running / an activation error with its message), or what only the
|
|
198
|
-
* daemon can know (absent, the code is not in this image; incompatible, its engines exclude this daemon;
|
|
199
|
-
* starting/stopped, the host itself is between states). The tab renders it beside the row so a backend
|
|
200
|
-
* that failed to activate is a sentence, not a namespace that 404s. */
|
|
165
|
+
// starting/stopped mean the host itself is between states.
|
|
201
166
|
backend: z
|
|
202
167
|
.object({
|
|
203
168
|
state: z
|
|
@@ -212,10 +177,12 @@ export const ExtensionSummarySchema = z.object({
|
|
|
212
177
|
})
|
|
213
178
|
.optional()
|
|
214
179
|
.describe("Present only for an extension that ships a server half."),
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
180
|
+
// Update lifecycle, present only for a git-installed extension (absent for builtin/workspace):
|
|
181
|
+
// update: the badge.
|
|
182
|
+
// advisory: the alarm.
|
|
183
|
+
// health: the after-the-click watch.
|
|
184
|
+
// previous: the way back (kept one-back checkout's sha).
|
|
185
|
+
// updatePolicy: the owner's standing answer.
|
|
219
186
|
update: ExtensionUpdateSchema.optional().describe(
|
|
220
187
|
"A newer version waiting. All five of these exist only for one installed from a repository: a built-in updates with the image and one written here is edited live.",
|
|
221
188
|
),
|
|
@@ -233,9 +200,7 @@ export const ExtensionSummarySchema = z.object({
|
|
|
233
200
|
),
|
|
234
201
|
});
|
|
235
202
|
export type ExtensionSummary = z.infer<typeof ExtensionSummarySchema>;
|
|
236
|
-
//
|
|
237
|
-
// install moment to reject a bad manifest, so the parse failure (or id collision) rides the list instead of
|
|
238
|
-
// silently dropping the row, the Extensions tab renders it, and an authoring agent reads it off GET /extensions.
|
|
203
|
+
// Read by both the Extensions tab and an authoring agent off GET /extensions.
|
|
239
204
|
export const InvalidWorkspaceExtensionSchema = z.object({
|
|
240
205
|
dir: z.string().describe("Which folder."),
|
|
241
206
|
error: z.string().describe("Why it could not be read."),
|
|
@@ -248,8 +213,6 @@ export const ExtensionsListSchema = z.object({
|
|
|
248
213
|
.describe(
|
|
249
214
|
"Extensions written here that could not be read at all. Listed rather than dropped, because there is no install moment at which to reject a broken one, so this is its only way of saying anything.",
|
|
250
215
|
),
|
|
251
|
-
// When the registry comparison last ran, absent until the first check completes. Serving it on the list is
|
|
252
|
-
// what lets the tab say "checked an hour ago" instead of presenting staleness as certainty.
|
|
253
216
|
updatesCheckedAt: z
|
|
254
217
|
.string()
|
|
255
218
|
.optional()
|
|
@@ -257,10 +220,8 @@ export const ExtensionsListSchema = z.object({
|
|
|
257
220
|
"When updates were last looked for. Absent until the first check has run. Sent so a screen can say checked an hour ago rather than presenting staleness as certainty.",
|
|
258
221
|
),
|
|
259
222
|
});
|
|
260
|
-
//
|
|
261
|
-
//
|
|
262
|
-
// Secret-marked values are stripped from `settings`; `secretsSet` lists the secret keys that DO hold a value,
|
|
263
|
-
// so the UI renders "•••• (set)" without ever receiving the secret back.
|
|
223
|
+
// Persisted at .intentic/config/extension-settings.json, keyed by extension id so a re-clone never loses them. Secret
|
|
224
|
+
// values are stripped from `settings`; `secretsSet` names which ones are set.
|
|
264
225
|
export const ExtensionSettingsSchema = z.object({
|
|
265
226
|
settings: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])).describe("The values, minus anything marked secret."),
|
|
266
227
|
secretsSet: z
|
|
@@ -274,16 +235,14 @@ export const ExtensionSettingsInputSchema = z.object({
|
|
|
274
235
|
.record(z.string(), z.union([z.string(), z.number(), z.boolean()]))
|
|
275
236
|
.describe("The values to write. A key the extension never declared is refused rather than quietly stored."),
|
|
276
237
|
});
|
|
277
|
-
//
|
|
278
|
-
//
|
|
238
|
+
// Persisted by publisher.name (like settings) so the choice outlives the checkout; declared processes converge in the
|
|
239
|
+
// same handler.
|
|
279
240
|
export const ExtensionEnabledInputSchema = z.object({
|
|
280
241
|
id: z.string().describe("Which extension."),
|
|
281
242
|
enabled: z.boolean().describe("On or off."),
|
|
282
243
|
});
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
* after it is asked for, and shaping it happens by editing the files it wrote (or by asking an agent to). The two
|
|
286
|
-
* slugs are the same shape the manifest schema demands, checked again here because `name` becomes a directory. */
|
|
244
|
+
// Identity only; what gets written is the daemon's decision, not a form filled in — shaping happens by editing the
|
|
245
|
+
// files afterward. Slugs match the manifest schema's shape, re-checked here because `name` becomes a directory.
|
|
287
246
|
export const WorkspaceExtensionCreateSchema = z.object({
|
|
288
247
|
publisher: z
|
|
289
248
|
.string()
|
|
@@ -294,23 +253,19 @@ export const WorkspaceExtensionCreateSchema = z.object({
|
|
|
294
253
|
.regex(/^[a-z0-9][a-z0-9-]*$/)
|
|
295
254
|
.describe("What it is called."),
|
|
296
255
|
});
|
|
297
|
-
//
|
|
256
|
+
// `dir` is workspace-root-relative, so the caller can name files to open next.
|
|
298
257
|
export const WorkspaceExtensionCreatedSchema = z.object({
|
|
299
258
|
id: z.string().describe("The id it was given."),
|
|
300
259
|
dir: z.string().describe("Where its files are, so you can open them."),
|
|
301
260
|
});
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
* because the question the ledger answers is "is this permission earned?": a finer record would be a log of
|
|
305
|
-
* what the owner was doing, indexed by extension, which is not a thing this product should be accumulating to
|
|
306
|
-
* answer it. Every extension rides one request so the bookkeeping cannot become its own request burst. */
|
|
261
|
+
// Extension id → declared entry → count since last report; counts, not events, and declared entries, not paths, since
|
|
262
|
+
// this answers whether a permission is earned, not logs activity. One request per batch across all extensions.
|
|
307
263
|
export const ExtensionUsageBatchSchema = z.object({
|
|
308
264
|
reports: z
|
|
309
265
|
.record(z.string(), z.record(z.string(), z.number().int().positive()))
|
|
310
266
|
.describe("Each extension that called something, and the counts against the declared powers it exercised."),
|
|
311
267
|
});
|
|
312
|
-
// One declared background process
|
|
313
|
-
// entry id + the manifest's process name. Undeclared names are NOT_FOUND, the manifest-honesty rule again.
|
|
268
|
+
// One declared background process, addressed by capability entry id + process name; an undeclared name is NOT_FOUND.
|
|
314
269
|
export const ExtensionProcessParamSchema = z.object({
|
|
315
270
|
id: z.string().describe("Which extension."),
|
|
316
271
|
name: z.string().describe("Which of its declared processes."),
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
//
|
|
1
|
+
// The Git Graph view over a repo's real commits.
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { GitChangeSchema } from "./git.js";
|
|
4
4
|
import { RefNameSchema } from "./internal.js";
|
|
5
5
|
import { RepoParamSchema } from "./shared.js";
|
|
6
|
-
// A hex sha
|
|
7
|
-
// constrain to it rather than accepting an arbitrary git revision expression.
|
|
6
|
+
// A hex sha, full or abbreviated; commit routes accept only this, never an arbitrary git revision expression.
|
|
8
7
|
const ShaSchema = z.string().regex(/^[0-9a-f]{4,64}$/);
|
|
9
|
-
// One commit in the graph. `parents`
|
|
10
|
-
//
|
|
11
|
-
// "HEAD" marker is lifted into `head` instead). `at` is author time in ms since epoch; `short` is git's
|
|
12
|
-
// abbreviated sha; `body` is the message minus its subject line.
|
|
8
|
+
// One commit in the graph. `parents` drives lane layout, computed client-side; `refs` keeps tags' `tag: ` prefix but
|
|
9
|
+
// lifts a bare HEAD marker into `head` instead.
|
|
13
10
|
export const GitCommitSchema = z.object({
|
|
14
11
|
sha: z.string().describe("The commit, in full."),
|
|
15
12
|
short: z.string().describe("The abbreviated form, for showing."),
|
|
@@ -27,15 +24,13 @@ export const GitCommitSchema = z.object({
|
|
|
27
24
|
head: z.boolean().describe("Whether this is where the repository currently stands."),
|
|
28
25
|
});
|
|
29
26
|
export type GitCommit = z.infer<typeof GitCommitSchema>;
|
|
30
|
-
// One repo's log: commits newest-first across
|
|
31
|
-
//
|
|
27
|
+
// One repo's log: commits newest-first across all refs, not just the checked-out branch, since branch topology is the
|
|
28
|
+
// point of a graph.
|
|
32
29
|
export const GitLogSchema = z.object({
|
|
33
30
|
repo: z.string().describe("Which repository."),
|
|
34
31
|
branch: z.string().optional().describe("Which branch these are from."),
|
|
35
32
|
commits: z.array(GitCommitSchema).describe("The commits, newest first."),
|
|
36
|
-
// Whether
|
|
37
|
-
// it returns, see commitLog. It is also what stops the oldest row of a page from being drawn as a ROOT
|
|
38
|
-
// commit, which is how a truncated history used to claim it began where the page happened to stop.
|
|
33
|
+
// Whether older commits remain behind this page; also stops the last row from being drawn as history's root.
|
|
39
34
|
hasMore: z
|
|
40
35
|
.boolean()
|
|
41
36
|
.describe(
|
|
@@ -45,9 +40,7 @@ export const GitLogSchema = z.object({
|
|
|
45
40
|
export type GitLog = z.infer<typeof GitLogSchema>;
|
|
46
41
|
export const GitLogQuerySchema = RepoParamSchema.extend({
|
|
47
42
|
limit: z.coerce.number().int().positive().max(2000).optional().describe("How many commits to return."),
|
|
48
|
-
//
|
|
49
|
-
// repository's log is tens of thousands of rows, and every one of them costs a zod validation, a wire
|
|
50
|
-
// payload and a lane computation before anything is drawn.
|
|
43
|
+
// Page cursor: how many newer commits to skip before returning results.
|
|
51
44
|
skip: z.coerce
|
|
52
45
|
.number()
|
|
53
46
|
.int()
|
|
@@ -58,18 +51,13 @@ export const GitLogQuerySchema = RepoParamSchema.extend({
|
|
|
58
51
|
"How many newer commits to step over, which is how you page further back. Paged rather than read whole, because a large repository's history is tens of thousands of rows.",
|
|
59
52
|
),
|
|
60
53
|
});
|
|
61
|
-
// Every real git repo under /work as root-relative dir ids
|
|
54
|
+
// Every real git repo under /work, as root-relative dir ids; "root" is the /work repo itself, implicit as an id.
|
|
62
55
|
export const GitReposSchema = z.object({
|
|
63
56
|
repos: z.array(z.string()).describe('Every repository\'s id. The workspace itself is always present as "root".'),
|
|
64
57
|
});
|
|
65
58
|
export type GitRepos = z.infer<typeof GitReposSchema>;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
* on the file tree's hot path and this costs a `git remote -v` per repo; a caller that wants to recognise a
|
|
69
|
-
* workspace repo in somebody else's list (the publisher claim does exactly that) asks for it deliberately.
|
|
70
|
-
*
|
|
71
|
-
* A repo with no remote, or one naming a local path, is absent rather than present-and-empty: "this repo is
|
|
72
|
-
* nowhere online" and "this repo is at X" are different answers and only one of them can be matched against. */
|
|
59
|
+
// One entry per workspace repo with a parseable remote, as host and owner/name. Absent, not present-and-empty, when
|
|
60
|
+
// there's no remote or it points at a local path.
|
|
73
61
|
export const GitRemoteRepoSchema = z.object({
|
|
74
62
|
repo: z.string().describe("The workspace repository."),
|
|
75
63
|
host: z.string().describe("Which forge its remote points at."),
|
|
@@ -80,31 +68,15 @@ export const GitRemoteReposSchema = z.object({
|
|
|
80
68
|
repos: z.array(GitRemoteRepoSchema).describe("Each repository matched to the project its remote points at."),
|
|
81
69
|
});
|
|
82
70
|
export type GitRemoteRepos = z.infer<typeof GitRemoteReposSchema>;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
* One route rather than three because the interesting states are the ones BETWEEN the steps: a file written but
|
|
86
|
-
* not committed, or committed but not pushed, is a repo the user now has to clean up by hand, and a browser
|
|
87
|
-
* making three requests owns that mess without being able to describe it. Here the caller gets one answer that
|
|
88
|
-
* says how far it got.
|
|
89
|
-
*
|
|
90
|
-
* `message` is the caller's because the commit shows up in the user's own history and a generic subject there
|
|
91
|
-
* is litter. */
|
|
71
|
+
// Writes one file to the default branch and publishes it: write, commit that path alone, push, in one call. `message`
|
|
72
|
+
// is the caller's, since it lands in the user's own commit history.
|
|
92
73
|
export const GitPublishFileSchema = RepoParamSchema.extend({
|
|
93
74
|
path: z.string().min(1).describe("Which file, relative to the repository."),
|
|
94
75
|
content: z.string().describe("Its whole new contents."),
|
|
95
76
|
message: z.string().min(1).describe("The commit message."),
|
|
96
77
|
});
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
*
|
|
100
|
-
* The three steps are reported SEPARATELY because every boundary between them is a state a user can be left
|
|
101
|
-
* in and would otherwise have to discover: a file written but not committed, a commit that exists locally but
|
|
102
|
-
* was refused by the remote for credentials. Each of those needs a different sentence and a different next
|
|
103
|
-
* move, and one `ok: false` cannot carry either. It is also what tells the daemon whether the worktree moved
|
|
104
|
-
* at all, which decides whether this counts as a user write on the timeline.
|
|
105
|
-
*
|
|
106
|
-
* `branch` and `defaultBranch` ride along so a refusal can name both sides of the mismatch rather than saying
|
|
107
|
-
* "wrong branch" at someone who cannot see which one they are on. */
|
|
78
|
+
// `ok` is true only once the file is live on the default branch of the remote. `wrote`/`committed`/`pushed` mark each
|
|
79
|
+
// step separately, and `branch`/`defaultBranch` name a wrong-branch mismatch.
|
|
108
80
|
export const GitPublishFileResultSchema = z.object({
|
|
109
81
|
ok: z.boolean().describe("Whether the whole thing went through."),
|
|
110
82
|
wrote: z.boolean().describe("The file was written."),
|
|
@@ -121,9 +93,8 @@ export const GitPublishFileResultSchema = z.object({
|
|
|
121
93
|
});
|
|
122
94
|
export type GitPublishFileResult = z.infer<typeof GitPublishFileResultSchema>;
|
|
123
95
|
export const GitCommitDiffQuerySchema = RepoParamSchema.extend({ sha: ShaSchema.describe("Which commit.") });
|
|
124
|
-
// A commit's changed files
|
|
125
|
-
//
|
|
126
|
-
// GitChange now, so working-tree and commit files share one shape.
|
|
96
|
+
// A commit's changed files, diffed against its first parent (a root commit against the empty tree); reuses `GitChange`
|
|
97
|
+
// so working-tree and commit diffs share one shape.
|
|
127
98
|
export const GitCommitDiffSchema = z.object({
|
|
128
99
|
files: z
|
|
129
100
|
.array(GitChangeSchema)
|
|
@@ -136,13 +107,8 @@ export const GitCommitFileDiffQuerySchema = RepoParamSchema.extend({
|
|
|
136
107
|
sha: ShaSchema.describe("Which commit."),
|
|
137
108
|
path: z.string().min(1).describe("Which file in it."),
|
|
138
109
|
});
|
|
139
|
-
// Git write actions from the graph's
|
|
140
|
-
// and
|
|
141
|
-
// merge / rebase / drop) add or replay commits and are auto-checkpointed daemon-side; a conflict aborts and
|
|
142
|
-
// reports `ok:false` (an expected outcome, not a throw). Checkout and reset move HEAD (reset --hard discards
|
|
143
|
-
// the worktree), also auto-checkpointed. A `{repo, sha}` names the target commit for every commit-scoped
|
|
144
|
-
// action; a ref name (branch/tag) is validated structurally, git enforces the rest of ref-name legality
|
|
145
|
-
// (RefNameSchema is declared above, with the branch schemas that first use it).
|
|
110
|
+
// Git write actions from the graph's context menu. Branch/tag only add a ref (no checkpoint); sequence ops, checkout,
|
|
111
|
+
// and reset are auto-checkpointed, and a conflict returns `ok:false` instead of throwing.
|
|
146
112
|
export const GitBranchCreateSchema = RepoParamSchema.extend({
|
|
147
113
|
sha: ShaSchema.describe("Which commit to start it at."),
|
|
148
114
|
name: RefNameSchema.describe("The new branch's name."),
|
|
@@ -152,13 +118,12 @@ export const GitTagCreateSchema = RepoParamSchema.extend({
|
|
|
152
118
|
name: RefNameSchema.describe("The tag's name."),
|
|
153
119
|
});
|
|
154
120
|
export const GitCheckoutSchema = RepoParamSchema.extend({ ref: RefNameSchema.describe("Where to switch to: a branch, a tag, or a commit.") });
|
|
155
|
-
//
|
|
156
|
-
// tag that was never pushed must not make deleting the local one report a failure.
|
|
121
|
+
// Deletes a tag locally, and on the named remote too; a tag never pushed there does not fail the local delete.
|
|
157
122
|
export const GitTagDeleteSchema = RepoParamSchema.extend({
|
|
158
123
|
name: RefNameSchema.describe("Which tag."),
|
|
159
124
|
remote: RefNameSchema.optional().describe("Also delete it there. Leave it out to remove it locally only."),
|
|
160
125
|
});
|
|
161
|
-
//
|
|
126
|
+
// Pushes only the named tag, never every unpushed tag.
|
|
162
127
|
export const GitTagPushSchema = RepoParamSchema.extend({
|
|
163
128
|
name: RefNameSchema.describe("Which tag."),
|
|
164
129
|
remote: RefNameSchema.describe("Which remote to send it to."),
|
|
@@ -182,21 +147,13 @@ export const GitActionResultSchema = z.object({
|
|
|
182
147
|
),
|
|
183
148
|
});
|
|
184
149
|
export type GitActionResult = z.infer<typeof GitActionResultSchema>;
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
* every surface here.
|
|
188
|
-
*
|
|
189
|
-
* An entry IS a commit: it has a sha, a time, a diff, and parents (HEAD when it was taken, the index, and the
|
|
190
|
-
* untracked tree when `-u` was used). What it does not have is a place in any branch's ancestry, so the graph
|
|
191
|
-
* hangs it off the commit it was taken on rather than flowing it down a lane.
|
|
192
|
-
*
|
|
193
|
-
* `ref` (`stash@{0}`) is the handle every verb takes, and it is POSITIONAL, dropping one renumbers the rest, so
|
|
194
|
-
* a caller must re-read the list after any mutation rather than holding an index across it. */
|
|
150
|
+
// A stash entry is a commit (sha, time, diff, parents) with no place in any branch's ancestry. `ref` (`stash@{0}`) is
|
|
151
|
+
// positional: dropping one renumbers the rest, so re-read the list after any mutation.
|
|
195
152
|
export const StashEntrySchema = z.object({
|
|
196
153
|
ref: z.string().describe("How to address it, which applying and dropping take."),
|
|
197
154
|
sha: z.string().describe("The commit behind it, because a stash entry is a commit."),
|
|
198
155
|
short: z.string().describe("The abbreviated form, for showing."),
|
|
199
|
-
//
|
|
156
|
+
// Git's `WIP on <branch>: ` prefix is stripped from the raw stash message.
|
|
200
157
|
subject: z.string().describe("What it was set aside as, with git's own scaffolding stripped off."),
|
|
201
158
|
branch: z.string().optional().describe("Which branch it was set aside from."),
|
|
202
159
|
at: z.number().describe("When, in milliseconds."),
|
|
@@ -207,31 +164,21 @@ export const StashListSchema = z.object({
|
|
|
207
164
|
repo: z.string().describe("Which repository."),
|
|
208
165
|
stashes: z.array(StashEntrySchema).describe("What is set aside, newest first."),
|
|
209
166
|
});
|
|
210
|
-
// A stash ref as git numbers
|
|
167
|
+
// A stash ref as git numbers it (`stash@{0}`); constrained because it reaches a shell argument.
|
|
211
168
|
const StashRefSchema = z.string().regex(/^stash@\{\d{1,4}\}$/);
|
|
212
169
|
export const StashPushSchema = RepoParamSchema.extend({
|
|
213
170
|
message: z.string().max(500).optional().describe("What to call it, so you know what it was later."),
|
|
214
171
|
includeUntracked: z.boolean().optional().describe("Also set aside files git is not yet tracking, which are otherwise left where they are."),
|
|
215
172
|
});
|
|
216
|
-
// `pop` drops the entry
|
|
217
|
-
// mean: pop is "resume this", apply is "try this here too".
|
|
173
|
+
// `pop` drops the entry after a clean apply; `apply` keeps it, git's own resume-vs-try-again distinction.
|
|
218
174
|
export const StashApplySchema = RepoParamSchema.extend({
|
|
219
175
|
ref: StashRefSchema.describe("Which entry."),
|
|
220
176
|
pop: z.boolean().optional().describe("Remove it from the stash once it has been applied cleanly."),
|
|
221
177
|
});
|
|
222
178
|
export const StashRefParamSchema = RepoParamSchema.extend({ ref: StashRefSchema.describe("Which entry.") });
|
|
223
179
|
export const StashDiffQuerySchema = RepoParamSchema.extend({ ref: StashRefSchema.describe("Which entry.") });
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
* Complements the Checkpoints timeline rather than duplicating it: a checkpoint restores the WORKING TREE, this
|
|
227
|
-
* moves the BRANCH. After a bad rebase the files are often already right and only the ref is wrong, and
|
|
228
|
-
* restoring a whole worktree snapshot to fix that would drag every unrelated edit since back with it.
|
|
229
|
-
*
|
|
230
|
-
* `description` is git's own reflog subject, so the button can name what it will undo in git's words rather than
|
|
231
|
-
* a guess. `previousSha` is where the branch returns to, and it doubles as the CONCURRENCY TOKEN: the undo is
|
|
232
|
-
* refused when the repository has moved since this was read, so an undo prepared against a stale view cannot
|
|
233
|
-
* land somewhere the user never looked at. Absent = nothing to undo (a fresh branch, a detached HEAD, or a
|
|
234
|
-
* halted operation, which ends by aborting rather than by moving the branch). */
|
|
180
|
+
// The last ref move on this branch, and whether it can be undone; complements Checkpoints, which restores the working
|
|
181
|
+
// tree instead. `previousSha` doubles as a concurrency token: refused if the branch moved since it was read.
|
|
235
182
|
export const UndoKindSchema = z.enum(["commit", "amend", "merge", "rebase", "cherry-pick", "revert", "reset", "pull", "other"]);
|
|
236
183
|
export type UndoKind = z.infer<typeof UndoKindSchema>;
|
|
237
184
|
export const UndoableActionSchema = z.object({
|
|
@@ -244,8 +191,7 @@ export const UndoableActionSchema = z.object({
|
|
|
244
191
|
.describe(
|
|
245
192
|
"Where it would go back to. Send this with the undo as proof you looked, so one prepared against a view that has since moved is refused rather than landing somewhere unexamined.",
|
|
246
193
|
),
|
|
247
|
-
//
|
|
248
|
-
// to decide whether it has to warn about losing work.
|
|
194
|
+
// True when undoing needs a hard reset, not just a ref move.
|
|
249
195
|
changesWorkingTree: z
|
|
250
196
|
.boolean()
|
|
251
197
|
.describe("Undoing would rewrite files as well as moving the branch, so anything offering it should warn about losing work."),
|
|
@@ -256,7 +202,7 @@ export const GitUndoStateSchema = z.object({
|
|
|
256
202
|
action: UndoableActionSchema.optional().describe("What undoing would reverse. Absent means there is nothing to go back from."),
|
|
257
203
|
});
|
|
258
204
|
export type GitUndoState = z.infer<typeof GitUndoStateSchema>;
|
|
259
|
-
// `previousSha`
|
|
205
|
+
// `previousSha` must match what the caller was shown; `discardChanges` picks a hard reset over a soft one.
|
|
260
206
|
export const GitUndoSchema = RepoParamSchema.extend({
|
|
261
207
|
previousSha: ShaSchema.describe(
|
|
262
208
|
"Where to go back to, from the matching read. It is also proof you looked: one prepared against a stale view is refused.",
|