@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
package/src/schemas/personas.ts
CHANGED
|
@@ -1,151 +1,61 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
1
|
+
// The named faces a sandbox shows the outside world: which accounts each speaks for, what a session wearing one may do,
|
|
2
|
+
// and where it works.
|
|
3
3
|
import { z } from "zod";
|
|
4
|
-
import { type ModelSource, readyChain } from "../model-pins.js";
|
|
4
|
+
import { type ModelSource, readyChain } from "../models/model-pins.js";
|
|
5
5
|
import { type ModelPin, ModelPinSchema } from "./agent.js";
|
|
6
6
|
import { entryId } from "./internal.js";
|
|
7
7
|
import { SkillDraftSchema, SkillNameSchema, SystemPromptModeSchema } from "./settings.js";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
* and short enough that they finish.
|
|
15
|
-
*
|
|
16
|
-
* A CARD IS THE SANDBOX'S ONE STATIC DESCRIPTION OF A WORKING POSTURE, and static is the design. Everything a
|
|
17
|
-
* session sees before the user's first word is a function of the card it wears: the accounts, the tool set the
|
|
18
|
-
* powers leave, the kit's prompt and skills, and now the tree it opens on. Two sessions on one card open on
|
|
19
|
-
* the same prefix, which is what lets a provider's prompt cache serve the second. The only per-task decision
|
|
20
|
-
* left is WHICH card, and that is a classification over the owner's own short list (`brief`), once per chat,
|
|
21
|
-
* which a cheap model does reliably; asking a model to compose a context per session instead either picks
|
|
22
|
-
* badly or costs a second strong run and a hand-off of everything it decided.
|
|
23
|
-
*
|
|
24
|
-
* NO PUBLISH-OR-DRAFT SWITCH. It read as a lock and was a sentence: it asked the turn to route outward things
|
|
25
|
-
* through the approvals queue and could not stop it posting. The queue is the mechanism, and a control whose
|
|
26
|
-
* label promises more than it delivers is worse than no control, it is the one an owner trusts.
|
|
27
|
-
*
|
|
28
|
-
* THE FOURTH QUESTION IS THE SYSTEM PROMPT, NOT A TONE NOTE, and the difference is why the field that used to
|
|
29
|
-
* sit here was removed and this one is not it. What was removed was a paragraph on how a persona WRITES:
|
|
30
|
-
* optional, answered by almost nobody, and shaping nothing a person could see afterwards. `systemPromptMode`
|
|
31
|
-
* is the same setting the sandbox has, asked per card, it replaces the whole prompt, and with the kit folder
|
|
32
|
-
* beside it (persona-kit.ts) a card can carry its own skills and tools too. That is a persona being a working
|
|
33
|
-
* posture rather than a label, and it shows: a release-notes writer and a code reviewer are two prompts, not
|
|
34
|
-
* two adjectives.
|
|
35
|
-
*
|
|
36
|
-
* THE CARD AND THE KEYS ARE DELIBERATELY SEPARATE. This is the card: a name, the accounts it speaks for, what a
|
|
37
|
-
* session wearing it may do, where it works. It carries NO credential, which is what lets it be the one thing under
|
|
38
|
-
* .intentic that is committed and reviewed like the workspace's instructions are (see personas-store.ts for
|
|
39
|
-
* the exclude carve-out that makes that true). The keys, the logged-in browser profile, its cookies, its
|
|
40
|
-
* passkey, stay where they already are: private to the sandbox, never exported without an explicit opt-in. So a
|
|
41
|
-
* cloned workspace arrives listing its personas, each visibly unconnected, waiting for one sign-in apiece.
|
|
42
|
-
*
|
|
43
|
-
* WHAT IT IS NOT is a security boundary. A chat still reaches every connected account by default (that is the
|
|
44
|
-
* owner's chosen posture, a chat has a human in the room), and an agent with a shell can reach a token whatever
|
|
45
|
-
* this file says. What it prevents is the mistake this codebase already names as the one that cannot be undone:
|
|
46
|
-
* a post from the wrong account. Where nobody is watching, an unattended wake, it is a real fence, because
|
|
47
|
-
* there the resolver's default is NOTHING rather than everything (see turnPersona in personas.ts). */
|
|
48
|
-
/* WHAT A PERSONA MAY DO, the shelves, one switch each, and the half of the card that bounds the turn rather
|
|
49
|
-
* than the account it speaks for.
|
|
50
|
-
*
|
|
51
|
-
* SHELVES, NOT TOOL NAMES. Every field here is a phrase a person decides about ("run commands", "read the
|
|
52
|
-
* web"), never the name of a tool. Tool names drift with every runtime upgrade, one power answers to several of
|
|
53
|
-
* them, and a connector is not a tool at all, it is a shell command plus a credential. Naming the shelf means
|
|
54
|
-
* a tool added next month lands inside an answer the owner already gave, and a card written today still means
|
|
55
|
-
* what it said after the SDK renames something.
|
|
56
|
-
*
|
|
57
|
-
* TWO STRENGTHS, AND THE DIFFERENCE IS VISIBLE FROM HERE. Everything capability-shaped (`connectors`,
|
|
58
|
-
* `devices`, `mcp`, and the accounts in `capabilities`) is enforced by ABSENCE, the credential is never
|
|
59
|
-
* injected, the server never mounted, the browser never launched, which is the same mechanism the account
|
|
60
|
-
* filter already uses and needs no cooperation from the model. The plain switches are enforced by taking the
|
|
61
|
-
* tools out of the turn's context, which holds for every tool the harness owns and cannot reach a program the
|
|
62
|
-
* agent runs for itself.
|
|
63
|
-
*
|
|
64
|
-
* WHICH IS WHY `shell` IS THE ONE THAT DECIDES. A session with a shell can read a credential this card never
|
|
65
|
-
* granted it, so switching it off is what turns the rest of these into a fence; leaving it on leaves them a
|
|
66
|
-
* strong default. The card's own UI says so at the switch, see PersonaForm.vue, because a limit that is
|
|
67
|
-
* weaker than it looks is worse than no limit at all.
|
|
68
|
-
*
|
|
69
|
-
* PERMISSIVE BY DEFAULT, deliberately, and the opposite of the account rule directly below it. An unrepeatable
|
|
70
|
-
* public post is worth defaulting to nothing for; an over-powered turn inside a container the owner can throw
|
|
71
|
-
* away is not, and it is the same reasoning that makes bypassPermissions this sandbox's default posture. So an
|
|
72
|
-
* absent `powers` means today's full toolbox, and a workspace that never opens this notices nothing. */
|
|
8
|
+
// A named face the sandbox shows outward: who it speaks as, what it may do, where it works, what it's told, what it
|
|
9
|
+
// runs on. No credential lives on the card; accounts stay private, per-sandbox. Not a security boundary for a watched
|
|
10
|
+
// chat — a real fence only for an unattended turn, whose resolver defaults to nothing.
|
|
11
|
+
// Enforced by absence (`connectors`/`devices`/`mcp`: no credential injected) or by removing tools from context; `shell`
|
|
12
|
+
// decides, since with it a session can reach anything else fenced off, turning the rest into defaults, not limits.
|
|
13
|
+
// Absent `powers` means the full toolbox.
|
|
73
14
|
export const PersonaPowersSchema = z.object({
|
|
74
|
-
// "read" is look-and-search only; "write" adds creating and changing; "none"
|
|
15
|
+
// "read" is look-and-search only; "write" adds creating and changing; "none" removes both.
|
|
75
16
|
files: z
|
|
76
17
|
.enum(["none", "read", "write"])
|
|
77
18
|
.default("write")
|
|
78
19
|
.describe("What it may do with files: nothing, look and search, or also create and change."),
|
|
79
|
-
// Shell commands, and with them the terminals, the test runs, and every CLI on the image. See the header:
|
|
80
|
-
// this is the switch the others' strength depends on.
|
|
81
20
|
shell: z
|
|
82
21
|
.boolean()
|
|
83
22
|
.default(true)
|
|
84
23
|
.describe(
|
|
85
24
|
"Whether it may run commands, and with them the terminals, the test runs and every tool on the image. The switch the strength of the others depends on.",
|
|
86
25
|
),
|
|
87
|
-
/* The JS execution backend (AgentCapabilities.execution): the model writes a script instead of a command
|
|
88
|
-
* line, run in a permission-fenced Node subprocess. Its fence is REAL where the shell's is not, reads and
|
|
89
|
-
* writes follow the `files` answer, and it can start no other program unless `shell` is also on, with one
|
|
90
|
-
* stated gap: the fence cannot cut the network, so a script can fetch whatever `web` says. */
|
|
91
26
|
code: z
|
|
92
27
|
.boolean()
|
|
93
28
|
.default(true)
|
|
94
29
|
.describe(
|
|
95
30
|
"Whether it may write and run a script rather than a command line. Its fence is real where the shell's is not: reads and writes follow the files answer, and it can start no other program unless commands are allowed too. The one stated gap is that the fence cannot cut the network.",
|
|
96
31
|
),
|
|
97
|
-
// Fetch a page, run a search.
|
|
98
32
|
web: z.boolean().default(true).describe("Whether it may fetch a page or run a search."),
|
|
99
|
-
//
|
|
100
|
-
// the reason this one is safe to leave on: it holds nobody's account.
|
|
33
|
+
// Credential-free; a signed-in browser is a `capabilities` account instead, safe to leave on.
|
|
101
34
|
browser: z.boolean().default(true),
|
|
102
35
|
// Spawn sub-agents and run workflows.
|
|
103
36
|
delegate: z.boolean().default(true),
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
* is no "install a capability" tool to take away, only files that mean it. */
|
|
37
|
+
// Sandbox settings, manifests, and the public outbox; enforced as a path refusal, not a tool switch — there's no
|
|
38
|
+
// such tool to remove.
|
|
107
39
|
sandbox: z.boolean().default(true),
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
* whole reason these are optional rather than defaulted arrays, "all" and "none" are both real answers and
|
|
111
|
-
* an empty default could only spell one of them. */
|
|
40
|
+
// By id; absent means every one of them (an untouched card's default), empty means none — a tri-state that is why
|
|
41
|
+
// these are optional arrays, not defaulted ones.
|
|
112
42
|
connectors: z.array(entryId).max(100).optional(),
|
|
113
43
|
devices: z.array(entryId).max(50).optional(),
|
|
114
44
|
mcp: z.array(entryId).max(50).optional(),
|
|
115
45
|
});
|
|
116
46
|
export type PersonaPowers = z.infer<typeof PersonaPowersSchema>;
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
* it is set: it is enforced by refusing file tool calls that point outside, which stops a misread instruction
|
|
121
|
-
* and an honest mistake, and does not stop a shell. The workspace-wide fence is the container. */
|
|
122
|
-
/* WHERE A SESSION WEARING THIS CARD WORKS, the folder it opens in, and the folders its file tools may touch.
|
|
123
|
-
*
|
|
124
|
-
* There is no placement field, and that is a decision rather than an omission. A card used to be able to ask
|
|
125
|
-
* for the SHARED tree instead of its own copy; every surface already defaults to a private worktree
|
|
126
|
-
* (conversation.ts), so the setting existed only to opt out of the isolation that makes parallel work safe,
|
|
127
|
-
* expressed in three words ("whatever started it", "its own copy", "the shared workspace") that a reader had no
|
|
128
|
-
* way to choose between. A persona starts where it is told and works in its own copy. */
|
|
47
|
+
// `folders` only refuses file-tool calls outside it; it stops a misread instruction, not a shell. The container is the
|
|
48
|
+
// real workspace-wide fence.
|
|
49
|
+
// No placement field, by decision: every session already opens in its own private copy, never the shared tree.
|
|
129
50
|
export const PersonaWorkspaceSchema = z.object({
|
|
130
|
-
//
|
|
51
|
+
// Absent means the workspace root.
|
|
131
52
|
startIn: z.string().max(200).optional().describe("Which folder a conversation opens in."),
|
|
132
|
-
// Workspace-relative folders the file tools may touch. Absent ⇒ anywhere under the workspace.
|
|
133
53
|
folders: z.array(z.string().min(1)).max(50).optional().describe("Which folders it may touch at all. Absent means the whole workspace."),
|
|
134
54
|
});
|
|
135
55
|
export type PersonaWorkspace = z.infer<typeof PersonaWorkspaceSchema>;
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
* `repos` names NESTED repositories by their workspace-relative dir (the ids repo-discovery reports). The root
|
|
140
|
-
* repository is the workspace itself and is always carried, never listed, so an empty list is the workspace
|
|
141
|
-
* alone. ABSENT `context` is every repository the workspace has, which is what every card meant before this
|
|
142
|
-
* existed and what a card that has never thought about it should get. The sandbox brings a conversation's
|
|
143
|
-
* checkout to this list on every turn (agents/worktrees.ts `selection`): a repository the list names joins,
|
|
144
|
-
* one it stops naming leaves with its work committed to the branch.
|
|
145
|
-
*
|
|
146
|
-
* An OBJECT rather than a bare list, so the next kinds of thing a session can carry (a directory inside a
|
|
147
|
-
* repository through a sparse cone, a documents folder) arrive as fields beside this one rather than as a
|
|
148
|
-
* grammar inside it. */
|
|
56
|
+
// Which nested repos a checkout holds, distinct from `workspace.folders` (what file tools may touch inside it). The
|
|
57
|
+
// root repo is always carried, never listed; absent means every repository. An object, not a list, for future sibling
|
|
58
|
+
// fields.
|
|
149
59
|
export const PersonaContextSchema = z.object({
|
|
150
60
|
repos: z
|
|
151
61
|
.array(z.string().min(1).max(200))
|
|
@@ -157,33 +67,20 @@ export const PersonaContextSchema = z.object({
|
|
|
157
67
|
export type PersonaContext = z.infer<typeof PersonaContextSchema>;
|
|
158
68
|
export const PersonaSchema = z.object({
|
|
159
69
|
id: entryId.describe("The persona's id."),
|
|
160
|
-
// What the owner calls it in the composer chip. Absent ⇒ surfaces read the id, which is already human-chosen.
|
|
161
70
|
label: z.string().max(60).optional().describe("What to call it on screen. Absent falls back to the id, which somebody chose anyway."),
|
|
162
|
-
/* The capability ids this persona acts THROUGH, the logged-in browser accounts (and, later, the credential
|
|
163
|
-
* connectors) that are its hands. Ids rather than platforms, because "two accounts of one site" is the whole
|
|
164
|
-
* problem: `reddit-work` and `reddit-personal` are two capabilities and exactly one of them belongs here.
|
|
165
|
-
*
|
|
166
|
-
* An id naming a capability that isn't connected is not an error, it is a card describing an account this
|
|
167
|
-
* sandbox has yet to sign into, which is precisely what a freshly cloned workspace looks like. */
|
|
168
71
|
capabilities: z
|
|
169
72
|
.array(entryId)
|
|
170
73
|
.max(50)
|
|
171
74
|
.describe(
|
|
172
75
|
"Which connected accounts are its hands. Named individually rather than by site, because two accounts on one site is the whole problem this solves. Naming one that is not connected yet is not an error: it is a card describing an account this sandbox has still to sign into.",
|
|
173
76
|
),
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
* page. Written by the owner rather than derived from the card, because a classifier reading "backend work
|
|
177
|
-
* on the api and billing services, never the marketing site" routes better than one reading a list of
|
|
178
|
-
* account ids, and because it is the one sentence a reader scanning the list wants under each name. Absent
|
|
179
|
-
* is a card the router can still name from what else the card says, with less to go on. */
|
|
77
|
+
// Owner-written, not derived: a classifier routes better on prose than on a list of account ids. Absent, the router
|
|
78
|
+
// has less to go on but still tries.
|
|
180
79
|
brief: z
|
|
181
80
|
.string()
|
|
182
81
|
.max(200)
|
|
183
82
|
.optional()
|
|
184
83
|
.describe("What this persona is for, in one line. A new chat is routed onto a persona by this sentence, and the Personas page shows it under the name."),
|
|
185
|
-
// What a session wearing this card may do, and where it works. Both absent ⇒ the full toolbox and the whole
|
|
186
|
-
// workspace, so a card written before these existed keeps behaving exactly as it did.
|
|
187
84
|
powers: PersonaPowersSchema.optional().describe(
|
|
188
85
|
"What a conversation wearing it may do. Absent means the full toolbox, so a card written before this existed behaves exactly as it did.",
|
|
189
86
|
),
|
|
@@ -191,13 +88,8 @@ export const PersonaSchema = z.object({
|
|
|
191
88
|
context: PersonaContextSchema.optional().describe(
|
|
192
89
|
"Which part of the workspace a conversation wearing it carries: the repositories its checkout holds. Absent means every repository.",
|
|
193
90
|
),
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
* the next entry catches an account that is spent today. ABSENT is the caller's own answer: the composer's
|
|
197
|
-
* pick for a chat, the run role's list for a turn a surface started. Present, the composer moves its model
|
|
198
|
-
* pill to the ladder's head when the card is picked (so a chat routed onto a card runs on that card's
|
|
199
|
-
* model as well as in its context), and the sandbox fills an unattended turn's silence from it before the
|
|
200
|
-
* run role's list (agent/turn-resume.ts). A model named on the turn itself always wins. */
|
|
91
|
+
// Ladder shape (a single pin is a single point of failure); picking the card moves the composer's model pill to its
|
|
92
|
+
// head, and it fills an unattended turn's silence before the run role's list.
|
|
201
93
|
models: z
|
|
202
94
|
.array(ModelPinSchema)
|
|
203
95
|
.max(10)
|
|
@@ -205,36 +97,17 @@ export const PersonaSchema = z.object({
|
|
|
205
97
|
.describe(
|
|
206
98
|
"Which models a conversation wearing it runs on, tried in order. Absent means whatever the chat or the job would have run on anyway; a model chosen for the turn itself always wins.",
|
|
207
99
|
),
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
*
|
|
212
|
-
* Absent rather than a fifth enum value spelling the same thing. "inherit" and "not set" would be two
|
|
213
|
-
* spellings of one answer, and the surface that offers four options maps its first to leaving this off.
|
|
214
|
-
*
|
|
215
|
-
* THE TEXT IS NOT HERE. Under "custom" it is `PROMPT.md` in the card's own kit folder
|
|
216
|
-
* (personas/persona-kit.ts), for two reasons that point the same way: a system prompt is prose, and prose
|
|
217
|
-
* belongs in a file where it diffs line by line rather than as one escaped string inside a record nobody
|
|
218
|
-
* writes by hand, and the kit is already where that persona's skills and tools live, so there is one folder
|
|
219
|
-
* to look in rather than a field here and a directory there.
|
|
220
|
-
*
|
|
221
|
-
* "custom" with no PROMPT.md written yet falls back to the sandbox's answer rather than running the turn on
|
|
222
|
-
* an empty prompt: the card is half-made, and a half-made card should behave like the one it was before
|
|
223
|
-
* somebody started editing it. */
|
|
100
|
+
// Absent means follow the sandbox (the fourth answer, not a fifth enum value). The actual prompt text lives in
|
|
101
|
+
// `PROMPT.md` in the card's kit folder, not here; "custom" with no file yet still falls back to the sandbox's own
|
|
102
|
+
// prompt.
|
|
224
103
|
systemPromptMode: SystemPromptModeSchema.optional(),
|
|
225
104
|
});
|
|
226
105
|
export type Persona = z.infer<typeof PersonaSchema>;
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
* (model-pins.ts readyChain). It used to be "that walk minus the role's floor"; there is no floor any more, so
|
|
230
|
-
* the two lists ask one question. An absent ladder, or one whose every provider is disconnected, is empty
|
|
231
|
-
* here, and empty means the caller's own answer: a card that says nothing about models has not asked for a
|
|
232
|
-
* cheap one, it has left the question to whoever opened the chat. */
|
|
106
|
+
// Ladder filtered to connected providers, deduplicated. Empty (absent, or every provider disconnected) means the card
|
|
107
|
+
// has no opinion — the caller decides, not "run nothing".
|
|
233
108
|
export const personaModels = (card: Pick<Persona, "models">, sources: readonly ModelSource[]): readonly ModelPin[] => readyChain(sources, card.models ?? []);
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
* one card the message belongs to, or none. `folder` and `paths` are the two facts a card's `context` and
|
|
237
|
-
* `workspace.startIn` can be matched against and the words alone cannot supply. */
|
|
109
|
+
// Asked once per chat, on the message it was sent with; answers with the one card the message belongs to, or none.
|
|
110
|
+
// `folder`/`paths` are the facts a card's `context`/`startIn` can be matched against that words alone can't supply.
|
|
238
111
|
export const PersonaRouteAskSchema = z.object({
|
|
239
112
|
prompt: z.string().min(1).max(20000).describe("The message a new chat is about to open with."),
|
|
240
113
|
folder: z.string().max(200).optional().describe("The workspace folder the chat was opened in, when it was opened in one."),
|
|
@@ -243,33 +116,21 @@ export const PersonaRouteAskSchema = z.object({
|
|
|
243
116
|
export type PersonaRouteAsk = z.infer<typeof PersonaRouteAskSchema>;
|
|
244
117
|
export const PersonaRouteSchema = z.object({
|
|
245
118
|
persona: entryId.optional().describe("The card this message belongs to, or absent when none does and the chat should stay open to everything."),
|
|
246
|
-
reason: z.string().describe("Why, in the one line a
|
|
119
|
+
reason: z.string().describe("Why, in the one line a chat can show. Present whether or not a card was named."),
|
|
120
|
+
// Absent means nothing was spent: matched on the folder, or answered before any model was reached.
|
|
121
|
+
model: z
|
|
122
|
+
.string()
|
|
123
|
+
.optional()
|
|
124
|
+
.describe(
|
|
125
|
+
"Which model answered, as `provider:model`, so the chat can name what the reading cost. Absent when no model was asked at all, which a folder match and an empty persona list both are.",
|
|
126
|
+
),
|
|
247
127
|
});
|
|
248
128
|
export type PersonaRoute = z.infer<typeof PersonaRouteSchema>;
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
* Nothing else is stock: a fresh workspace has no personas at all, and every card on the Personas page is one
|
|
252
|
-
* the owner wrote. This id is the exception because a Front Desk is driven by a stranger with nobody watching, so
|
|
253
|
-
* it is the one wake whose bounds cannot be left to the prompt's wording, the daemon writes the card the moment
|
|
254
|
-
* a Front Desk is saved (personas/front-desk.ts) and the automations form fills a blank Front Desk persona with it.
|
|
255
|
-
*
|
|
256
|
-
* It lives HERE because those two are in different packages and must agree exactly. A literal in each would
|
|
257
|
-
* drift into a Front Desk pinned to a card nobody creates, and turnPersona answers a missing card by denying
|
|
258
|
-
* everything, a public chat that cannot even read, which is safe and useless.
|
|
259
|
-
*
|
|
260
|
-
* It is FRONT DESK and not "visitor": the card is who answers the people who arrive, not the person arriving. */
|
|
129
|
+
// The one stock persona id; lives here because the daemon and the automations form are separate packages that must
|
|
130
|
+
// agree on it exactly, or a Front Desk pins to a card nobody creates.
|
|
261
131
|
export const FRONT_DESK_PERSONA = "front-desk";
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
*
|
|
265
|
-
* It lives in the contract rather than in either surface because those two are in different packages and would
|
|
266
|
-
* otherwise each grow their own vocabulary for the same card: a workspace where the Personas page says
|
|
267
|
-
* "Read-only" and the automation under it says "3 limits" is one where the reader cannot tell whether they are
|
|
268
|
-
* looking at the same thing.
|
|
269
|
-
*
|
|
270
|
-
* TWO NAMED SHAPES AND THEN A COUNT. "Read-only" and "no shell" are the two people actually reach for, so they
|
|
271
|
-
* get words; everything else gets a number, because listing four switched-off shelves in a badge produces a line
|
|
272
|
-
* nobody reads and buries the one fact that matters, that this card is limited at all. */
|
|
132
|
+
// One phrase describing how bounded a card is, shared so the Personas page and the automation picker can't grow
|
|
133
|
+
// different vocabularies for the same card. "Read-only"/"no shell" are named; everything else collapses to a count.
|
|
273
134
|
export const personaBounds = (persona: Persona): string => {
|
|
274
135
|
const powers = persona.powers;
|
|
275
136
|
if (powers === undefined) {
|
|
@@ -296,11 +157,8 @@ export const personaBounds = (persona: Persona): string => {
|
|
|
296
157
|
return limits === 0 ? "Full powers" : `${limits} limit${limits === 1 ? "" : "s"}`;
|
|
297
158
|
};
|
|
298
159
|
export const PersonaIdParamSchema = z.object({ id: entryId.describe("Which persona.") });
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
* yet, and a surface that showed only the cards would present a persona that is one login away from working as
|
|
302
|
-
* though it already did. Ids the manifest has no capability for at all are `connected: false` too, a card may
|
|
303
|
-
* name an account nobody has added here. */
|
|
160
|
+
// `connected` is what makes a freshly cloned workspace honest: every persona shows even though most can't act yet. An
|
|
161
|
+
// id with no capability at all is `connected: false` too.
|
|
304
162
|
export const PersonasListSchema = z.object({
|
|
305
163
|
personas: z.array(PersonaSchema).describe("The characters an agent can wear."),
|
|
306
164
|
connected: z
|
|
@@ -309,15 +167,8 @@ export const PersonasListSchema = z.object({
|
|
|
309
167
|
"Which accounts are actually connected right now, so a persona naming one that has since been disconnected can be shown as broken rather than as working.",
|
|
310
168
|
),
|
|
311
169
|
});
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
* ONE ROUTE FOR BOTH because they are one folder and one screen: the card's editor draws them together, and two
|
|
315
|
-
* requests to render one section is two chances for it to arrive half-drawn. The skills come back as name and
|
|
316
|
-
* description only, for the same reason the sandbox's own skill list does, a body runs to thousands of words
|
|
317
|
-
* and a group of one-line rows should not cost a hundred kilobytes to draw.
|
|
318
|
-
*
|
|
319
|
-
* An empty prompt is a card with no PROMPT.md, which is every card until somebody writes one. It is "" rather
|
|
320
|
-
* than absent because the field behind it is a textarea, and a textarea's empty value is "". */
|
|
170
|
+
// One route for the kit's prompt and skills, one folder and one screen. Skills come back as name/description only; an
|
|
171
|
+
// empty prompt means no PROMPT.md yet, sent as "" since the field is a textarea.
|
|
321
172
|
export const PersonaKitSchema = z.object({
|
|
322
173
|
prompt: z
|
|
323
174
|
.string()
|
|
@@ -344,8 +195,7 @@ export const PersonaPromptSchema = PersonaIdParamSchema.extend({
|
|
|
344
195
|
});
|
|
345
196
|
export const PersonaSkillSchema = PersonaIdParamSchema.extend(SkillDraftSchema.shape);
|
|
346
197
|
export const PersonaSkillNameSchema = PersonaIdParamSchema.extend({ name: SkillNameSchema.describe("Which skill.") });
|
|
347
|
-
//
|
|
348
|
-
// and a body, and for the same reason.
|
|
198
|
+
// Same listing/body split the sandbox's own skills make, for editing.
|
|
349
199
|
export const PersonaSkillBodySchema = z.object({
|
|
350
200
|
name: z.string().describe("The skill's name."),
|
|
351
201
|
description: z.string().describe("What it is for."),
|