@xingular/harness 2.0.0 → 2.0.1-unstable
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/CHANGELOG.md +635 -0
- package/LICENSE +202 -0
- package/NOTICE.md +50 -0
- package/README.md +241 -90
- package/THIRD_PARTY_LICENSES.md +942 -0
- package/browser-extension/README.md +32 -0
- package/browser-extension/background.js +612 -0
- package/browser-extension/manifest.json +16 -0
- package/browser-extension/overlay.js +97 -0
- package/browser-extension/popup.css +19 -0
- package/browser-extension/popup.html +30 -0
- package/browser-extension/popup.js +101 -0
- package/browser-extension/site-access.js +63 -0
- package/builtin/skills/plugin-authoring/SKILL.md +53 -0
- package/dist/cli.js +32851 -17155
- package/dist/sdk/accounts/accounts.d.ts +195 -0
- package/dist/sdk/accounts/accounts.js +821 -0
- package/dist/sdk/accounts/choices.d.ts +41 -0
- package/dist/sdk/accounts/choices.js +89 -0
- package/dist/sdk/accounts/env.d.ts +78 -0
- package/dist/sdk/accounts/env.js +294 -0
- package/dist/sdk/accounts/secrets.d.ts +28 -0
- package/dist/sdk/accounts/secrets.js +147 -0
- package/dist/sdk/accounts/store.d.ts +139 -0
- package/dist/sdk/accounts/store.js +255 -0
- package/dist/sdk/agents/builtin.d.ts +2 -0
- package/dist/sdk/agents/builtin.js +50 -0
- package/dist/sdk/agents/narrow.d.ts +13 -0
- package/dist/sdk/agents/narrow.js +29 -0
- package/dist/sdk/agents/planResearch.d.ts +27 -0
- package/dist/sdk/agents/planResearch.js +82 -0
- package/dist/sdk/agents/profiles.d.ts +93 -0
- package/dist/sdk/agents/profiles.js +289 -0
- package/dist/sdk/annotations/bridge.d.ts +44 -0
- package/dist/sdk/annotations/bridge.js +268 -0
- package/dist/sdk/annotations/capture.d.ts +158 -0
- package/dist/sdk/annotations/capture.js +409 -0
- package/dist/sdk/annotations/delivery.d.ts +79 -0
- package/dist/sdk/annotations/delivery.js +163 -0
- package/dist/sdk/annotations/inspect.d.ts +10 -0
- package/dist/sdk/annotations/inspect.js +34 -0
- package/dist/sdk/annotations/isolated.d.ts +6 -0
- package/dist/sdk/annotations/isolated.js +51 -0
- package/dist/sdk/annotations/pageScript.d.ts +28 -0
- package/dist/sdk/annotations/pageScript.js +871 -0
- package/dist/sdk/annotations/part.d.ts +8 -0
- package/dist/sdk/annotations/part.js +126 -0
- package/dist/sdk/annotations/queue.d.ts +4 -0
- package/dist/sdk/annotations/queue.js +45 -0
- package/dist/sdk/annotations/serverMethods.d.ts +3 -0
- package/dist/sdk/annotations/serverMethods.js +66 -0
- package/dist/sdk/annotations/store.d.ts +159 -0
- package/dist/sdk/annotations/store.js +404 -0
- package/dist/sdk/browser/backend.d.ts +16 -0
- package/dist/sdk/browser/backend.js +17 -0
- package/dist/sdk/browser/config.d.ts +19 -0
- package/dist/sdk/browser/config.js +23 -0
- package/dist/sdk/browser/contracts.d.ts +19 -0
- package/dist/sdk/browser/contracts.js +116 -0
- package/dist/sdk/browser/diagnostics.d.ts +4 -0
- package/dist/sdk/browser/diagnostics.js +38 -0
- package/dist/sdk/browser/extension/bridge.d.ts +55 -0
- package/dist/sdk/browser/extension/bridge.js +336 -0
- package/dist/sdk/browser/extension/session.d.ts +50 -0
- package/dist/sdk/browser/extension/session.js +321 -0
- package/dist/sdk/browser/index.d.ts +33 -0
- package/dist/sdk/browser/index.js +105 -0
- package/dist/sdk/browser/network.d.ts +10 -0
- package/dist/sdk/browser/network.js +59 -0
- package/dist/sdk/browser/serverMethods.d.ts +3 -0
- package/dist/sdk/browser/serverMethods.js +10 -0
- package/dist/sdk/browser/session.d.ts +85 -0
- package/dist/sdk/browser/session.js +228 -0
- package/dist/sdk/browser/tools.d.ts +102 -0
- package/dist/sdk/browser/tools.js +257 -0
- package/dist/sdk/capabilities/api.d.ts +22 -0
- package/dist/sdk/capabilities/api.js +54 -0
- package/dist/sdk/capabilities/runSnapshot.d.ts +18 -0
- package/dist/sdk/capabilities/runSnapshot.js +53 -0
- package/dist/sdk/capabilities/types.d.ts +29 -0
- package/dist/sdk/capabilities/types.js +1 -0
- package/dist/sdk/cli.d.ts +2 -0
- package/dist/sdk/cli.js +172 -0
- package/dist/sdk/commands/extensionOwners.d.ts +4 -0
- package/dist/sdk/commands/extensionOwners.js +17 -0
- package/dist/sdk/commands/list.d.ts +3 -0
- package/dist/sdk/commands/list.js +90 -0
- package/dist/sdk/commands/promptLoader.d.ts +5 -0
- package/dist/sdk/commands/promptLoader.js +76 -0
- package/dist/sdk/commands/promptRoutes.d.ts +13 -0
- package/dist/sdk/commands/promptRoutes.js +46 -0
- package/dist/sdk/commands/registry.d.ts +299 -0
- package/dist/sdk/commands/registry.js +54 -0
- package/dist/sdk/commands/routes.d.ts +16 -0
- package/dist/sdk/commands/routes.js +33 -0
- package/dist/sdk/commands/runtimeRouter.d.ts +4 -0
- package/dist/sdk/commands/runtimeRouter.js +48 -0
- package/dist/sdk/computer/boundary.d.ts +40 -0
- package/dist/sdk/computer/boundary.js +79 -0
- package/dist/sdk/computer/contracts.d.ts +127 -0
- package/dist/sdk/computer/contracts.js +13 -0
- package/dist/sdk/computer/control.d.ts +34 -0
- package/dist/sdk/computer/control.js +112 -0
- package/dist/sdk/computer/screenshot.d.ts +32 -0
- package/dist/sdk/computer/screenshot.js +35 -0
- package/dist/sdk/computer/terminalCapture.d.ts +26 -0
- package/dist/sdk/computer/terminalCapture.js +64 -0
- package/dist/sdk/computer/volatileImages.d.ts +9 -0
- package/dist/sdk/computer/volatileImages.js +50 -0
- package/dist/sdk/context/attribution.d.ts +18 -0
- package/dist/sdk/context/attribution.js +295 -0
- package/dist/sdk/context/runDetails.d.ts +16 -0
- package/dist/sdk/context/runDetails.js +22 -0
- package/dist/sdk/context/types.d.ts +94 -0
- package/dist/sdk/context/types.js +10 -0
- package/dist/sdk/core/bus.d.ts +23 -0
- package/dist/sdk/core/bus.js +76 -0
- package/dist/sdk/core/caller.d.ts +22 -0
- package/dist/sdk/core/caller.js +16 -0
- package/dist/sdk/core/changes.d.ts +15 -0
- package/dist/sdk/core/changes.js +15 -0
- package/dist/sdk/core/commandBudget.d.ts +23 -0
- package/dist/sdk/core/commandBudget.js +62 -0
- package/dist/sdk/core/effort.d.ts +2 -0
- package/dist/sdk/core/effort.js +1 -0
- package/dist/sdk/core/env.d.ts +18 -0
- package/dist/sdk/core/env.js +8 -0
- package/dist/sdk/core/errors.d.ts +15 -0
- package/dist/sdk/core/errors.js +24 -0
- package/dist/sdk/core/frontmatter.d.ts +12 -0
- package/dist/sdk/core/frontmatter.js +50 -0
- package/dist/sdk/core/fs.d.ts +18 -0
- package/dist/sdk/core/fs.js +106 -0
- package/dist/sdk/core/index.d.ts +24 -0
- package/dist/sdk/core/index.js +203 -0
- package/dist/sdk/core/interactiveProfile.d.ts +46 -0
- package/dist/sdk/core/interactiveProfile.js +143 -0
- package/dist/sdk/core/links.d.ts +51 -0
- package/dist/sdk/core/links.js +155 -0
- package/dist/sdk/core/path.d.ts +7 -0
- package/dist/sdk/core/path.js +79 -0
- package/dist/sdk/core/projects.d.ts +18 -0
- package/dist/sdk/core/projects.js +67 -0
- package/dist/sdk/core/secrets.d.ts +2 -0
- package/dist/sdk/core/secrets.js +5 -0
- package/dist/sdk/core/shell.d.ts +20 -0
- package/dist/sdk/core/shell.js +73 -0
- package/dist/sdk/core/text.d.ts +7 -0
- package/dist/sdk/core/text.js +40 -0
- package/dist/sdk/core/workspace.d.ts +13 -0
- package/dist/sdk/core/workspace.js +88 -0
- package/dist/sdk/core/workspaceBashTool.d.ts +20 -0
- package/dist/sdk/core/workspaceBashTool.js +50 -0
- package/dist/sdk/core/workspaceSandbox.d.ts +41 -0
- package/dist/sdk/core/workspaceSandbox.js +360 -0
- package/dist/sdk/core/workspaceWriteOperations.d.ts +57 -0
- package/dist/sdk/core/workspaceWriteOperations.js +245 -0
- package/dist/sdk/doctor/checks.d.ts +5 -0
- package/dist/sdk/doctor/checks.js +270 -0
- package/dist/sdk/doctor/probe.d.ts +4 -0
- package/dist/sdk/doctor/probe.js +94 -0
- package/dist/sdk/doctor/serverMethods.d.ts +3 -0
- package/dist/sdk/doctor/serverMethods.js +8 -0
- package/dist/sdk/doctor/service.d.ts +23 -0
- package/dist/sdk/doctor/service.js +144 -0
- package/dist/sdk/doctor/types.d.ts +141 -0
- package/dist/sdk/doctor/types.js +29 -0
- package/dist/sdk/harness.d.ts +172 -0
- package/dist/sdk/harness.js +387 -0
- package/dist/sdk/history/lessonPrompt.d.ts +2 -0
- package/dist/sdk/history/lessonPrompt.js +15 -0
- package/dist/sdk/history/lessons.d.ts +52 -0
- package/dist/sdk/history/lessons.js +173 -0
- package/dist/sdk/history/recall.d.ts +68 -0
- package/dist/sdk/history/recall.js +199 -0
- package/dist/sdk/history/serverMethods.d.ts +3 -0
- package/dist/sdk/history/serverMethods.js +8 -0
- package/dist/sdk/history/trajectory.d.ts +7 -0
- package/dist/sdk/history/trajectory.js +218 -0
- package/dist/sdk/hub/catalog.json +123 -0
- package/dist/sdk/hub/cli.d.ts +7 -0
- package/dist/sdk/hub/cli.js +81 -0
- package/dist/sdk/hub/hub.d.ts +74 -0
- package/dist/sdk/hub/hub.js +476 -0
- package/dist/sdk/hub/schema.d.ts +280 -0
- package/dist/sdk/hub/schema.js +78 -0
- package/dist/sdk/hub/serverMethods.d.ts +3 -0
- package/dist/sdk/hub/serverMethods.js +11 -0
- package/dist/sdk/index.d.ts +80 -0
- package/dist/sdk/index.js +60 -0
- package/dist/sdk/mcp/connections.d.ts +83 -0
- package/dist/sdk/mcp/connections.js +676 -0
- package/dist/sdk/mcp/manager.d.ts +26 -0
- package/dist/sdk/mcp/manager.js +124 -0
- package/dist/sdk/mcp/oauth.d.ts +35 -0
- package/dist/sdk/mcp/oauth.js +171 -0
- package/dist/sdk/mcp/scopeMigration.d.ts +19 -0
- package/dist/sdk/mcp/scopeMigration.js +198 -0
- package/dist/sdk/mcp/serverMethods.d.ts +3 -0
- package/dist/sdk/mcp/serverMethods.js +22 -0
- package/dist/sdk/mcp/service.d.ts +160 -0
- package/dist/sdk/mcp/service.js +510 -0
- package/dist/sdk/mcp/types.d.ts +131 -0
- package/dist/sdk/mcp/types.js +49 -0
- package/dist/sdk/pi/retryPolicy.d.ts +19 -0
- package/dist/sdk/pi/retryPolicy.js +11 -0
- package/dist/sdk/pi/runtime.d.ts +14 -0
- package/dist/sdk/pi/runtime.js +31 -0
- package/dist/sdk/plugins/api.d.ts +66 -0
- package/dist/sdk/plugins/api.js +155 -0
- package/dist/sdk/plugins/attachments.d.ts +46 -0
- package/dist/sdk/plugins/attachments.js +111 -0
- package/dist/sdk/plugins/builtin.d.ts +7 -0
- package/dist/sdk/plugins/builtin.js +182 -0
- package/dist/sdk/plugins/builtinRegistry.d.ts +62 -0
- package/dist/sdk/plugins/builtinRegistry.js +77 -0
- package/dist/sdk/plugins/catalogue.d.ts +29 -0
- package/dist/sdk/plugins/catalogue.js +197 -0
- package/dist/sdk/plugins/cli.d.ts +13 -0
- package/dist/sdk/plugins/cli.js +188 -0
- package/dist/sdk/plugins/commandPrefix.d.ts +8 -0
- package/dist/sdk/plugins/commandPrefix.js +21 -0
- package/dist/sdk/plugins/discover.d.ts +48 -0
- package/dist/sdk/plugins/discover.js +230 -0
- package/dist/sdk/plugins/firstParty.d.ts +50 -0
- package/dist/sdk/plugins/firstParty.js +119 -0
- package/dist/sdk/plugins/hooks.d.ts +94 -0
- package/dist/sdk/plugins/hooks.js +162 -0
- package/dist/sdk/plugins/identity.d.ts +19 -0
- package/dist/sdk/plugins/identity.js +48 -0
- package/dist/sdk/plugins/install.d.ts +24 -0
- package/dist/sdk/plugins/install.js +160 -0
- package/dist/sdk/plugins/inventory.d.ts +22 -0
- package/dist/sdk/plugins/inventory.js +111 -0
- package/dist/sdk/plugins/manifest.d.ts +21 -0
- package/dist/sdk/plugins/manifest.js +94 -0
- package/dist/sdk/plugins/plugins.d.ts +106 -0
- package/dist/sdk/plugins/plugins.js +165 -0
- package/dist/sdk/plugins/proposals.d.ts +17 -0
- package/dist/sdk/plugins/proposals.js +147 -0
- package/dist/sdk/plugins/runtime.d.ts +9 -0
- package/dist/sdk/plugins/runtime.js +95 -0
- package/dist/sdk/plugins/surfaces.d.ts +5 -0
- package/dist/sdk/plugins/surfaces.js +11 -0
- package/dist/sdk/plugins/trust.d.ts +44 -0
- package/dist/sdk/plugins/trust.js +120 -0
- package/dist/sdk/plugins/types.d.ts +174 -0
- package/dist/sdk/plugins/types.js +7 -0
- package/dist/sdk/prompt/compile.d.ts +245 -0
- package/dist/sdk/prompt/compile.js +535 -0
- package/dist/sdk/prompt/reporting.d.ts +2 -0
- package/dist/sdk/prompt/reporting.js +94 -0
- package/dist/sdk/prompt/standard.d.ts +32 -0
- package/dist/sdk/prompt/standard.js +76 -0
- package/dist/sdk/refine/cli.d.ts +4 -0
- package/dist/sdk/refine/cli.js +186 -0
- package/dist/sdk/refine/demo.d.ts +21 -0
- package/dist/sdk/refine/demo.js +114 -0
- package/dist/sdk/refine/evidence.d.ts +55 -0
- package/dist/sdk/refine/evidence.js +330 -0
- package/dist/sdk/refine/host.d.ts +59 -0
- package/dist/sdk/refine/host.js +105 -0
- package/dist/sdk/refine/ledger.d.ts +48 -0
- package/dist/sdk/refine/ledger.js +76 -0
- package/dist/sdk/refine/library.d.ts +55 -0
- package/dist/sdk/refine/library.js +177 -0
- package/dist/sdk/refine/pi.d.ts +72 -0
- package/dist/sdk/refine/pi.js +248 -0
- package/dist/sdk/refine/prompts.d.ts +60 -0
- package/dist/sdk/refine/prompts.js +434 -0
- package/dist/sdk/refine/recursion.d.ts +113 -0
- package/dist/sdk/refine/recursion.js +258 -0
- package/dist/sdk/refine/runner.d.ts +83 -0
- package/dist/sdk/refine/runner.js +151 -0
- package/dist/sdk/refine/selection.d.ts +57 -0
- package/dist/sdk/refine/selection.js +251 -0
- package/dist/sdk/refine/serverMethods.d.ts +3 -0
- package/dist/sdk/refine/serverMethods.js +23 -0
- package/dist/sdk/refine/service.d.ts +115 -0
- package/dist/sdk/refine/service.js +280 -0
- package/dist/sdk/refine/suite.d.ts +67 -0
- package/dist/sdk/refine/suite.js +174 -0
- package/dist/sdk/refine/trajectory.d.ts +9 -0
- package/dist/sdk/refine/trajectory.js +73 -0
- package/dist/sdk/refine/types.d.ts +93 -0
- package/dist/sdk/refine/types.js +10 -0
- package/dist/sdk/remote/addresses.d.ts +19 -0
- package/dist/sdk/remote/addresses.js +52 -0
- package/dist/sdk/remote/pairing.d.ts +59 -0
- package/dist/sdk/remote/pairing.js +160 -0
- package/dist/sdk/remote/seal.d.ts +28 -0
- package/dist/sdk/remote/seal.js +84 -0
- package/dist/sdk/remote/server.d.ts +28 -0
- package/dist/sdk/remote/server.js +158 -0
- package/dist/sdk/remote/service.d.ts +125 -0
- package/dist/sdk/remote/service.js +330 -0
- package/dist/sdk/remote/webClient.d.ts +4 -0
- package/dist/sdk/remote/webClient.js +452 -0
- package/dist/sdk/server/methods.d.ts +3 -0
- package/dist/sdk/server/methods.js +365 -0
- package/dist/sdk/server/params.d.ts +4 -0
- package/dist/sdk/server/params.js +11 -0
- package/dist/sdk/server/remote.d.ts +19 -0
- package/dist/sdk/server/remote.js +109 -0
- package/dist/sdk/server/rpc.d.ts +20 -0
- package/dist/sdk/server/rpc.js +102 -0
- package/dist/sdk/server/serve.d.ts +13 -0
- package/dist/sdk/server/serve.js +25 -0
- package/dist/sdk/server/socket.d.ts +28 -0
- package/dist/sdk/server/socket.js +122 -0
- package/dist/sdk/sessions/approvals.d.ts +47 -0
- package/dist/sdk/sessions/approvals.js +119 -0
- package/dist/sdk/sessions/checkpoint.d.ts +7 -0
- package/dist/sdk/sessions/checkpoint.js +41 -0
- package/dist/sdk/sessions/compactionCheckpoint.d.ts +18 -0
- package/dist/sdk/sessions/compactionCheckpoint.js +79 -0
- package/dist/sdk/sessions/completionCheck.d.ts +51 -0
- package/dist/sdk/sessions/completionCheck.js +161 -0
- package/dist/sdk/sessions/continuation.d.ts +53 -0
- package/dist/sdk/sessions/continuation.js +90 -0
- package/dist/sdk/sessions/contracts.d.ts +991 -0
- package/dist/sdk/sessions/contracts.js +545 -0
- package/dist/sdk/sessions/control.d.ts +72 -0
- package/dist/sdk/sessions/control.js +158 -0
- package/dist/sdk/sessions/extensionUi.d.ts +19 -0
- package/dist/sdk/sessions/extensionUi.js +64 -0
- package/dist/sdk/sessions/goal.d.ts +145 -0
- package/dist/sdk/sessions/goal.js +405 -0
- package/dist/sdk/sessions/goalLoop.d.ts +37 -0
- package/dist/sdk/sessions/goalLoop.js +125 -0
- package/dist/sdk/sessions/goalPrompts.d.ts +4 -0
- package/dist/sdk/sessions/goalPrompts.js +93 -0
- package/dist/sdk/sessions/goalStop.d.ts +27 -0
- package/dist/sdk/sessions/goalStop.js +41 -0
- package/dist/sdk/sessions/history.d.ts +16 -0
- package/dist/sdk/sessions/history.js +68 -0
- package/dist/sdk/sessions/initialBash.d.ts +7 -0
- package/dist/sdk/sessions/initialBash.js +7 -0
- package/dist/sdk/sessions/lineageJoin.d.ts +2 -0
- package/dist/sdk/sessions/lineageJoin.js +61 -0
- package/dist/sdk/sessions/live.d.ts +101 -0
- package/dist/sdk/sessions/live.js +265 -0
- package/dist/sdk/sessions/planMode.d.ts +116 -0
- package/dist/sdk/sessions/planMode.js +281 -0
- package/dist/sdk/sessions/policy.d.ts +43 -0
- package/dist/sdk/sessions/policy.js +1 -0
- package/dist/sdk/sessions/pricing.d.ts +34 -0
- package/dist/sdk/sessions/pricing.js +40 -0
- package/dist/sdk/sessions/reasoningSummaries.d.ts +11 -0
- package/dist/sdk/sessions/reasoningSummaries.js +61 -0
- package/dist/sdk/sessions/registry.d.ts +124 -0
- package/dist/sdk/sessions/registry.js +392 -0
- package/dist/sdk/sessions/runIndex.d.ts +21 -0
- package/dist/sdk/sessions/runIndex.js +65 -0
- package/dist/sdk/sessions/runStore.d.ts +82 -0
- package/dist/sdk/sessions/runStore.js +393 -0
- package/dist/sdk/sessions/runner.d.ts +291 -0
- package/dist/sdk/sessions/runner.js +1040 -0
- package/dist/sdk/sessions/sessionState.d.ts +13 -0
- package/dist/sdk/sessions/sessionState.js +31 -0
- package/dist/sdk/sessions/sessions.d.ts +238 -0
- package/dist/sdk/sessions/sessions.js +923 -0
- package/dist/sdk/sessions/sideQuestionServerMethods.d.ts +3 -0
- package/dist/sdk/sessions/sideQuestionServerMethods.js +19 -0
- package/dist/sdk/sessions/sideQuestions.d.ts +66 -0
- package/dist/sdk/sessions/sideQuestions.js +290 -0
- package/dist/sdk/sessions/stallWatch.d.ts +35 -0
- package/dist/sdk/sessions/stallWatch.js +42 -0
- package/dist/sdk/sessions/subagentServerMethods.d.ts +3 -0
- package/dist/sdk/sessions/subagentServerMethods.js +41 -0
- package/dist/sdk/sessions/subagentService.d.ts +88 -0
- package/dist/sdk/sessions/subagentService.js +546 -0
- package/dist/sdk/sessions/subagents.d.ts +98 -0
- package/dist/sdk/sessions/subagents.js +136 -0
- package/dist/sdk/sessions/workSlice.d.ts +167 -0
- package/dist/sdk/sessions/workSlice.js +266 -0
- package/dist/sdk/sessions/workspaceBoundary.d.ts +15 -0
- package/dist/sdk/sessions/workspaceBoundary.js +46 -0
- package/dist/sdk/terminal/accountsMenu.d.ts +46 -0
- package/dist/sdk/terminal/accountsMenu.js +392 -0
- package/dist/sdk/terminal/browser.d.ts +62 -0
- package/dist/sdk/terminal/browser.js +41 -0
- package/dist/sdk/terminal/browserControl.d.ts +29 -0
- package/dist/sdk/terminal/browserControl.js +187 -0
- package/dist/sdk/terminal/cli.d.ts +20 -0
- package/dist/sdk/terminal/cli.js +121 -0
- package/dist/sdk/terminal/client.d.ts +20 -0
- package/dist/sdk/terminal/client.js +148 -0
- package/dist/sdk/terminal/commandHelp.d.ts +17 -0
- package/dist/sdk/terminal/commandHelp.js +20 -0
- package/dist/sdk/terminal/control.d.ts +4 -0
- package/dist/sdk/terminal/control.js +25 -0
- package/dist/sdk/terminal/controller.d.ts +136 -0
- package/dist/sdk/terminal/controller.js +579 -0
- package/dist/sdk/terminal/credentialStore.d.ts +4 -0
- package/dist/sdk/terminal/credentialStore.js +33 -0
- package/dist/sdk/terminal/daemon.d.ts +44 -0
- package/dist/sdk/terminal/daemon.js +264 -0
- package/dist/sdk/terminal/hubMenu.d.ts +10 -0
- package/dist/sdk/terminal/hubMenu.js +34 -0
- package/dist/sdk/terminal/launch.d.ts +5 -0
- package/dist/sdk/terminal/launch.js +27 -0
- package/dist/sdk/terminal/liveTerminal.d.ts +96 -0
- package/dist/sdk/terminal/liveTerminal.js +436 -0
- package/dist/sdk/terminal/logs.d.ts +14 -0
- package/dist/sdk/terminal/logs.js +59 -0
- package/dist/sdk/terminal/opentui/ansi.d.ts +25 -0
- package/dist/sdk/terminal/opentui/ansi.js +192 -0
- package/dist/sdk/terminal/opentui/model.d.ts +163 -0
- package/dist/sdk/terminal/opentui/model.js +484 -0
- package/dist/sdk/terminal/opentui/subagentsWidget.d.ts +28 -0
- package/dist/sdk/terminal/opentui/subagentsWidget.js +54 -0
- package/dist/sdk/terminal/opentui/theme.d.ts +47 -0
- package/dist/sdk/terminal/opentui/theme.js +93 -0
- package/dist/sdk/terminal/piExtension.d.ts +12 -0
- package/dist/sdk/terminal/piExtension.js +847 -0
- package/dist/sdk/terminal/pluginMenu.d.ts +34 -0
- package/dist/sdk/terminal/pluginMenu.js +101 -0
- package/dist/sdk/terminal/socket.d.ts +73 -0
- package/dist/sdk/terminal/socket.js +287 -0
- package/dist/sdk/terminal/standalone.d.ts +52 -0
- package/dist/sdk/terminal/standalone.js +329 -0
- package/dist/sdk/terminal/subagentMonitor.d.ts +62 -0
- package/dist/sdk/terminal/subagentMonitor.js +176 -0
- package/dist/sdk/terminal/terminals.d.ts +312 -0
- package/dist/sdk/terminal/terminals.js +1782 -0
- package/dist/sdk/terminal/toolName.d.ts +6 -0
- package/dist/sdk/terminal/toolName.js +12 -0
- package/dist/sdk/terminal/trajectory.d.ts +15 -0
- package/dist/sdk/terminal/trajectory.js +38 -0
- package/dist/sdk/terminal/tui/annotateCommand.d.ts +7 -0
- package/dist/sdk/terminal/tui/annotateCommand.js +36 -0
- package/dist/sdk/terminal/tui/annotateSend.d.ts +30 -0
- package/dist/sdk/terminal/tui/annotateSend.js +40 -0
- package/dist/sdk/terminal/tui/chrome.d.ts +68 -0
- package/dist/sdk/terminal/tui/chrome.js +182 -0
- package/dist/sdk/terminal/tui/clipboardFiles.d.ts +11 -0
- package/dist/sdk/terminal/tui/clipboardFiles.js +74 -0
- package/dist/sdk/terminal/tui/commandPages.d.ts +16 -0
- package/dist/sdk/terminal/tui/commandPages.js +136 -0
- package/dist/sdk/terminal/tui/commands.d.ts +71 -0
- package/dist/sdk/terminal/tui/commands.js +496 -0
- package/dist/sdk/terminal/tui/dialogGeometry.d.ts +27 -0
- package/dist/sdk/terminal/tui/dialogGeometry.js +52 -0
- package/dist/sdk/terminal/tui/dialogs.d.ts +81 -0
- package/dist/sdk/terminal/tui/dialogs.js +372 -0
- package/dist/sdk/terminal/tui/goalCommand.d.ts +19 -0
- package/dist/sdk/terminal/tui/goalCommand.js +83 -0
- package/dist/sdk/terminal/tui/harnessRuntime.d.ts +8 -0
- package/dist/sdk/terminal/tui/harnessRuntime.js +771 -0
- package/dist/sdk/terminal/tui/keybindings.d.ts +11 -0
- package/dist/sdk/terminal/tui/keybindings.js +49 -0
- package/dist/sdk/terminal/tui/list.d.ts +86 -0
- package/dist/sdk/terminal/tui/list.js +278 -0
- package/dist/sdk/terminal/tui/markdown.d.ts +16 -0
- package/dist/sdk/terminal/tui/markdown.js +55 -0
- package/dist/sdk/terminal/tui/modeChoices.d.ts +61 -0
- package/dist/sdk/terminal/tui/modeChoices.js +95 -0
- package/dist/sdk/terminal/tui/modelPicker.d.ts +55 -0
- package/dist/sdk/terminal/tui/modelPicker.js +150 -0
- package/dist/sdk/terminal/tui/mouse.d.ts +3 -0
- package/dist/sdk/terminal/tui/mouse.js +3 -0
- package/dist/sdk/terminal/tui/mouseReport.d.ts +30 -0
- package/dist/sdk/terminal/tui/mouseReport.js +80 -0
- package/dist/sdk/terminal/tui/page.d.ts +17 -0
- package/dist/sdk/terminal/tui/page.js +1 -0
- package/dist/sdk/terminal/tui/pageOverlay.d.ts +30 -0
- package/dist/sdk/terminal/tui/pageOverlay.js +183 -0
- package/dist/sdk/terminal/tui/pages/accountsPage.d.ts +76 -0
- package/dist/sdk/terminal/tui/pages/accountsPage.js +409 -0
- package/dist/sdk/terminal/tui/pages/agentsPage.d.ts +74 -0
- package/dist/sdk/terminal/tui/pages/agentsPage.js +193 -0
- package/dist/sdk/terminal/tui/pages/annotatePage.d.ts +148 -0
- package/dist/sdk/terminal/tui/pages/annotatePage.js +576 -0
- package/dist/sdk/terminal/tui/pages/browserPage.d.ts +87 -0
- package/dist/sdk/terminal/tui/pages/browserPage.js +739 -0
- package/dist/sdk/terminal/tui/pages/componentsPage.d.ts +47 -0
- package/dist/sdk/terminal/tui/pages/componentsPage.js +119 -0
- package/dist/sdk/terminal/tui/pages/contextPage.d.ts +91 -0
- package/dist/sdk/terminal/tui/pages/contextPage.js +585 -0
- package/dist/sdk/terminal/tui/pages/doctorPage.d.ts +39 -0
- package/dist/sdk/terminal/tui/pages/doctorPage.js +233 -0
- package/dist/sdk/terminal/tui/pages/followUpQueuePage.d.ts +34 -0
- package/dist/sdk/terminal/tui/pages/followUpQueuePage.js +130 -0
- package/dist/sdk/terminal/tui/pages/hubPage.d.ts +52 -0
- package/dist/sdk/terminal/tui/pages/hubPage.js +292 -0
- package/dist/sdk/terminal/tui/pages/logPage.d.ts +38 -0
- package/dist/sdk/terminal/tui/pages/logPage.js +189 -0
- package/dist/sdk/terminal/tui/pages/permissionsPage.d.ts +44 -0
- package/dist/sdk/terminal/tui/pages/permissionsPage.js +124 -0
- package/dist/sdk/terminal/tui/pages/pluginsPage.d.ts +65 -0
- package/dist/sdk/terminal/tui/pages/pluginsPage.js +519 -0
- package/dist/sdk/terminal/tui/pages/remoteControlPage.d.ts +32 -0
- package/dist/sdk/terminal/tui/pages/remoteControlPage.js +170 -0
- package/dist/sdk/terminal/tui/pages/settingsPage.d.ts +63 -0
- package/dist/sdk/terminal/tui/pages/settingsPage.js +103 -0
- package/dist/sdk/terminal/tui/pages/subagentsPage.d.ts +24 -0
- package/dist/sdk/terminal/tui/pages/subagentsPage.js +155 -0
- package/dist/sdk/terminal/tui/pages/textPage.d.ts +17 -0
- package/dist/sdk/terminal/tui/pages/textPage.js +52 -0
- package/dist/sdk/terminal/tui/pages/trajectoryPage.d.ts +66 -0
- package/dist/sdk/terminal/tui/pages/trajectoryPage.js +490 -0
- package/dist/sdk/terminal/tui/pages/usagePage.d.ts +45 -0
- package/dist/sdk/terminal/tui/pages/usagePage.js +397 -0
- package/dist/sdk/terminal/tui/pages/worktreesPage.d.ts +72 -0
- package/dist/sdk/terminal/tui/pages/worktreesPage.js +203 -0
- package/dist/sdk/terminal/tui/piAdapter.d.ts +17 -0
- package/dist/sdk/terminal/tui/piAdapter.js +46 -0
- package/dist/sdk/terminal/tui/planMode.d.ts +2 -0
- package/dist/sdk/terminal/tui/planMode.js +2 -0
- package/dist/sdk/terminal/tui/pluginCommands.d.ts +16 -0
- package/dist/sdk/terminal/tui/pluginCommands.js +41 -0
- package/dist/sdk/terminal/tui/qr.d.ts +4 -0
- package/dist/sdk/terminal/tui/qr.js +35 -0
- package/dist/sdk/terminal/tui/questionPicker.d.ts +20 -0
- package/dist/sdk/terminal/tui/questionPicker.js +150 -0
- package/dist/sdk/terminal/tui/questions.d.ts +21 -0
- package/dist/sdk/terminal/tui/questions.js +42 -0
- package/dist/sdk/terminal/tui/runtime.d.ts +117 -0
- package/dist/sdk/terminal/tui/runtime.js +544 -0
- package/dist/sdk/terminal/tui/search.d.ts +22 -0
- package/dist/sdk/terminal/tui/search.js +61 -0
- package/dist/sdk/terminal/tui/selection.d.ts +16 -0
- package/dist/sdk/terminal/tui/selection.js +16 -0
- package/dist/sdk/terminal/tui/sessionPicker.d.ts +40 -0
- package/dist/sdk/terminal/tui/sessionPicker.js +141 -0
- package/dist/sdk/terminal/tui/sessionUi.d.ts +3 -0
- package/dist/sdk/terminal/tui/sessionUi.js +30 -0
- package/dist/sdk/terminal/tui/settingsModel.d.ts +14 -0
- package/dist/sdk/terminal/tui/settingsModel.js +195 -0
- package/dist/sdk/terminal/tui/sideQuestion.d.ts +57 -0
- package/dist/sdk/terminal/tui/sideQuestion.js +241 -0
- package/dist/sdk/terminal/tui/skillInvocation.d.ts +28 -0
- package/dist/sdk/terminal/tui/skillInvocation.js +63 -0
- package/dist/sdk/terminal/tui/status.d.ts +18 -0
- package/dist/sdk/terminal/tui/status.js +67 -0
- package/dist/sdk/terminal/tui/theme.d.ts +54 -0
- package/dist/sdk/terminal/tui/theme.js +185 -0
- package/dist/sdk/terminal/tui/thinkingLevels.d.ts +11 -0
- package/dist/sdk/terminal/tui/thinkingLevels.js +31 -0
- package/dist/sdk/terminal/tui/treeModel.d.ts +79 -0
- package/dist/sdk/terminal/tui/treeModel.js +483 -0
- package/dist/sdk/terminal/tui/treePicker.d.ts +49 -0
- package/dist/sdk/terminal/tui/treePicker.js +251 -0
- package/dist/sdk/terminal/tui/ui.d.ts +49 -0
- package/dist/sdk/terminal/tui/ui.js +149 -0
- package/dist/sdk/terminal/tui/variantCommands.d.ts +32 -0
- package/dist/sdk/terminal/tui/variantCommands.js +359 -0
- package/dist/sdk/terminal/tui/workingStatus.d.ts +9 -0
- package/dist/sdk/terminal/tui/workingStatus.js +229 -0
- package/dist/sdk/terminal/variantControl.d.ts +24 -0
- package/dist/sdk/terminal/variantControl.js +145 -0
- package/dist/sdk/tools/askUser.d.ts +6 -0
- package/dist/sdk/tools/askUser.js +92 -0
- package/dist/sdk/tools/defaultSkills.d.ts +23 -0
- package/dist/sdk/tools/defaultSkills.js +46 -0
- package/dist/sdk/tools/definitions.d.ts +32 -0
- package/dist/sdk/tools/definitions.js +133 -0
- package/dist/sdk/tools/dispatch.d.ts +16 -0
- package/dist/sdk/tools/dispatch.js +92 -0
- package/dist/sdk/tools/getCapabilities.d.ts +31 -0
- package/dist/sdk/tools/getCapabilities.js +34 -0
- package/dist/sdk/tools/harnessTools.d.ts +8 -0
- package/dist/sdk/tools/harnessTools.js +20 -0
- package/dist/sdk/tools/sessionName.d.ts +16 -0
- package/dist/sdk/tools/sessionName.js +78 -0
- package/dist/sdk/tools/spawnSubagent.d.ts +4 -0
- package/dist/sdk/tools/spawnSubagent.js +63 -0
- package/dist/sdk/tools/todo.d.ts +15 -0
- package/dist/sdk/tools/todo.js +66 -0
- package/dist/sdk/tools/types.d.ts +48 -0
- package/dist/sdk/tools/types.js +1 -0
- package/dist/sdk/usage/analytics.d.ts +20 -0
- package/dist/sdk/usage/analytics.js +151 -0
- package/dist/sdk/usage/ledger.d.ts +38 -0
- package/dist/sdk/usage/ledger.js +142 -0
- package/dist/sdk/usage/limits/adapters.d.ts +11 -0
- package/dist/sdk/usage/limits/adapters.js +349 -0
- package/dist/sdk/usage/limits/capture.d.ts +8 -0
- package/dist/sdk/usage/limits/capture.js +47 -0
- package/dist/sdk/usage/limits/http.d.ts +12 -0
- package/dist/sdk/usage/limits/http.js +51 -0
- package/dist/sdk/usage/limits/normalize.d.ts +15 -0
- package/dist/sdk/usage/limits/normalize.js +211 -0
- package/dist/sdk/usage/limits/service.d.ts +30 -0
- package/dist/sdk/usage/limits/service.js +176 -0
- package/dist/sdk/usage/limits/types.d.ts +65 -0
- package/dist/sdk/usage/limits/types.js +1 -0
- package/dist/sdk/usage/serverMethods.d.ts +3 -0
- package/dist/sdk/usage/serverMethods.js +22 -0
- package/dist/sdk/usage/service.d.ts +32 -0
- package/dist/sdk/usage/service.js +66 -0
- package/dist/sdk/usage/settings.d.ts +7 -0
- package/dist/sdk/usage/settings.js +28 -0
- package/dist/sdk/usage/types.d.ts +60 -0
- package/dist/sdk/usage/types.js +4 -0
- package/dist/sdk/variant/components.d.ts +34 -0
- package/dist/sdk/variant/components.js +230 -0
- package/dist/sdk/variant/materialise.d.ts +66 -0
- package/dist/sdk/variant/materialise.js +81 -0
- package/dist/sdk/variant/migrate.d.ts +4 -0
- package/dist/sdk/variant/migrate.js +41 -0
- package/dist/sdk/variant/seed.d.ts +20 -0
- package/dist/sdk/variant/seed.js +116 -0
- package/dist/sdk/variant/store.d.ts +114 -0
- package/dist/sdk/variant/store.js +256 -0
- package/dist/sdk/variant/surface.d.ts +56 -0
- package/dist/sdk/variant/surface.js +81 -0
- package/dist/sdk/variant/trust.d.ts +27 -0
- package/dist/sdk/variant/trust.js +64 -0
- package/dist/sdk/variant/variant.d.ts +71 -0
- package/dist/sdk/variant/variant.js +331 -0
- package/dist/sdk/web/markdown.d.ts +10 -0
- package/dist/sdk/web/markdown.js +66 -0
- package/dist/sdk/web/part.d.ts +10 -0
- package/dist/sdk/web/part.js +6 -0
- package/dist/sdk/web/safeRequest.d.ts +34 -0
- package/dist/sdk/web/safeRequest.js +175 -0
- package/dist/sdk/web/search.d.ts +53 -0
- package/dist/sdk/web/search.js +168 -0
- package/dist/sdk/web/serverMethods.d.ts +3 -0
- package/dist/sdk/web/serverMethods.js +7 -0
- package/dist/sdk/web/text.d.ts +2 -0
- package/dist/sdk/web/text.js +7 -0
- package/dist/sdk/web/tools.d.ts +22 -0
- package/dist/sdk/web/tools.js +195 -0
- package/dist/sdk/web/turndown-plugin-gfm.d.ts +4 -0
- package/dist/sdk/wiki/notes.d.ts +68 -0
- package/dist/sdk/wiki/notes.js +297 -0
- package/dist/sdk/wiki/serverMethods.d.ts +3 -0
- package/dist/sdk/wiki/serverMethods.js +26 -0
- package/dist/sdk/worktrees/cli.d.ts +11 -0
- package/dist/sdk/worktrees/cli.js +146 -0
- package/dist/sdk/worktrees/copy.d.ts +9 -0
- package/dist/sdk/worktrees/copy.js +111 -0
- package/dist/sdk/worktrees/git.d.ts +18 -0
- package/dist/sdk/worktrees/git.js +89 -0
- package/dist/sdk/worktrees/serverMethods.d.ts +3 -0
- package/dist/sdk/worktrees/serverMethods.js +30 -0
- package/dist/sdk/worktrees/service.d.ts +73 -0
- package/dist/sdk/worktrees/service.js +483 -0
- package/dist/sdk/worktrees/setup.d.ts +23 -0
- package/dist/sdk/worktrees/setup.js +65 -0
- package/dist/sdk/worktrees/snapshot.d.ts +16 -0
- package/dist/sdk/worktrees/snapshot.js +83 -0
- package/dist/sdk/worktrees/types.d.ts +91 -0
- package/dist/sdk/worktrees/types.js +1 -0
- package/dist/sdk/world/actions.d.ts +23 -0
- package/dist/sdk/world/actions.js +31 -0
- package/dist/sdk/world/cli.d.ts +12 -0
- package/dist/sdk/world/cli.js +166 -0
- package/dist/sdk/world/images.d.ts +20 -0
- package/dist/sdk/world/images.js +48 -0
- package/dist/sdk/world/untrusted.d.ts +12 -0
- package/dist/sdk/world/untrusted.js +20 -0
- package/dist/sdk/world/world.d.ts +75 -0
- package/dist/sdk/world/world.js +117 -0
- package/dist/terminal-opentui.js +30986 -0
- package/dist/terminal-pi.js +3008 -610
- package/docs/README.md +45 -1
- package/docs/architecture/00-overview.md +171 -0
- package/docs/architecture/01-extension-points.md +78 -0
- package/docs/architecture/02-sessions-and-runs.md +505 -0
- package/docs/architecture/03-variants.md +122 -0
- package/docs/architecture/04-prompt.md +277 -0
- package/docs/architecture/05-refinement.md +134 -0
- package/docs/architecture/06-plugins-and-capabilities.md +208 -0
- package/docs/architecture/07-tools-and-gate.md +245 -0
- package/docs/architecture/08-memory-and-history.md +100 -0
- package/docs/architecture/09-accounts-and-connectors.md +153 -0
- package/docs/architecture/10-server-protocol.md +403 -0
- package/docs/architecture/11-terminal.md +555 -0
- package/docs/architecture/12-storage.md +118 -0
- package/docs/architecture/13-world-tools.md +114 -0
- package/docs/architecture/14-surfaces-and-parity.md +151 -0
- package/docs/architecture/15-remote-control.md +120 -0
- package/docs/architecture/README.md +143 -0
- package/docs/architecture/proposals/PROP-0001-reporting-section.md +106 -0
- package/docs/architecture/proposals/PROP-0002-retain-rollout-workspaces.md +104 -0
- package/docs/architecture/proposals/PROP-0003-executor-settings.md +81 -0
- package/docs/architecture/proposals/PROP-0004-flexible-reporting-guidance.md +71 -0
- package/docs/architecture/proposals/PROP-0005-xharness-cli-name.md +78 -0
- package/docs/architecture/proposals/PROP-0006-run-checklist.md +72 -0
- package/docs/architecture/proposals/PROP-0007-run-continuation.md +80 -0
- package/docs/architecture/proposals/PROP-0008-lessons-from-runs.md +80 -0
- package/docs/architecture/proposals/PROP-0009-foundation-and-variants.md +78 -0
- package/docs/architecture/proposals/PROP-0010-session-names.md +73 -0
- package/docs/architecture/proposals/PROP-0011-doctor.md +63 -0
- package/docs/architecture/proposals/PROP-0012-release-baseline.md +56 -0
- package/docs/architecture/proposals/PROP-0013-resource-browser.md +58 -0
- package/docs/architecture/proposals/PROP-0014-fullscreen-browser-tabs.md +58 -0
- package/docs/architecture/proposals/PROP-0015-one-capability-surface.md +88 -0
- package/docs/architecture/proposals/PROP-0016-managed-worktrees.md +156 -0
- package/docs/architecture/proposals/PROP-0017-page-annotations.md +131 -0
- package/docs/architecture/proposals/PROP-0018-annotation-queue-and-app-targets.md +183 -0
- package/docs/architecture/proposals/PROP-0019-contextual-side-questions.md +122 -0
- package/docs/architecture/proposals/PROP-0020-builtin-feature-plugins.md +105 -0
- package/docs/architecture/proposals/PROP-0021-command-namespaces-and-duplicates.md +99 -0
- package/docs/architecture/proposals/PROP-0022-plan-only-questions.md +102 -0
- package/docs/architecture/proposals/PROP-0023-xagent-cli-name.md +61 -0
- package/docs/architecture/proposals/PROP-0024-question-sketch-previews.md +130 -0
- package/docs/architecture/proposals/PROP-0025-contextual-question-wireframes.md +49 -0
- package/docs/architecture/proposals/PROP-0026-connected-sketch-display.md +96 -0
- package/docs/architecture/proposals/PROP-0027-xingular-agent-product-identity.md +60 -0
- package/docs/architecture/proposals/PROP-0028-normalize-question-wireframes.md +55 -0
- package/docs/architecture/proposals/PROP-0029-agent-profiles.md +124 -0
- package/docs/architecture/proposals/PROP-0030-subagent-title.md +86 -0
- package/docs/architecture/proposals/PROP-0031-plugin-command-owner-namespaces.md +54 -0
- package/docs/architecture/proposals/PROP-0032-planning-quality.md +196 -0
- package/docs/architecture/proposals/PROP-0033-compaction-plan-checkpoints.md +75 -0
- package/docs/architecture/proposals/PROP-0034-conversation-fast-mode.md +120 -0
- package/docs/architecture/proposals/PROP-0035-retain-subagent-status.md +47 -0
- package/docs/architecture/proposals/PROP-0036-first-class-harness-commands.md +59 -0
- package/docs/architecture/proposals/PROP-0037-workspace-write-boundary.md +63 -0
- package/docs/architecture/proposals/PROP-0038-annotate-open-shadow-roots.md +73 -0
- package/docs/architecture/proposals/PROP-0039-workspace-boundary-hardening.md +139 -0
- package/docs/architecture/proposals/PROP-0040-one-launch-path.md +87 -0
- package/docs/architecture/proposals/PROP-0041-bounded-work-slices.md +260 -0
- package/docs/architecture/proposals/PROP-0042-usage-and-provider-limits.md +127 -0
- package/docs/architecture/proposals/PROP-0043-read-only-plan-bash.md +74 -0
- package/docs/architecture/proposals/PROP-0044-work-slice-defaults.md +93 -0
- package/docs/architecture/proposals/PROP-0045-rename-checklist-to-todo.md +132 -0
- package/docs/architecture/proposals/PROP-0046-progress-aware-stall-guards.md +82 -0
- package/docs/architecture/proposals/PROP-0047-plugins-hub-separation.md +122 -0
- package/docs/architecture/proposals/PROP-0048-simple-annotate.md +85 -0
- package/docs/architecture/proposals/PROP-0049-context-attribution.md +415 -0
- package/docs/architecture/proposals/PROP-0050-run-stop-codes-and-refusals.md +30 -0
- package/docs/architecture/proposals/PROP-0051-unfinished-run-handoff.md +110 -0
- package/docs/architecture/proposals/PROP-0052-terminal-refine-and-variant-switch.md +111 -0
- package/docs/architecture/proposals/README.md +123 -0
- package/docs/decisions/ADR-0001-owned-terminal.md +10 -3
- package/docs/decisions/ADR-0003-shared-asynchronous-subagents.md +3 -1
- package/docs/decisions/ADR-0004-fullscreen-terminal-layout.md +3 -2
- package/docs/decisions/ADR-0006-opentui-only-terminal.md +47 -0
- package/docs/decisions/ADR-0007-reporting-section.md +33 -0
- package/docs/decisions/ADR-0008-flexible-reporting-guidance.md +41 -0
- package/docs/decisions/ADR-0009-xharness-command.md +39 -0
- package/docs/decisions/ADR-0010-lessons-in-the-wiki.md +31 -0
- package/docs/decisions/ADR-0011-foundation-and-variants.md +28 -0
- package/docs/decisions/ADR-0012-native-session-names.md +34 -0
- package/docs/decisions/ADR-0013-doctor.md +27 -0
- package/docs/decisions/ADR-0014-public-release-baseline.md +22 -0
- package/docs/decisions/ADR-0015-resource-browser.md +28 -0
- package/docs/decisions/ADR-0016-fullscreen-browser-tabs.md +31 -0
- package/docs/decisions/ADR-0017-one-capability-surface.md +34 -0
- package/docs/decisions/ADR-0018-builtin-feature-plugins.md +35 -0
- package/docs/decisions/ADR-0019-managed-git-worktrees.md +31 -0
- package/docs/decisions/ADR-0020-page-annotations.md +37 -0
- package/docs/decisions/ADR-0021-required-command-namespaces.md +40 -0
- package/docs/decisions/ADR-0022-plan-only-question-tools.md +34 -0
- package/docs/decisions/ADR-0023-contextual-side-question-runs.md +35 -0
- package/docs/decisions/ADR-0024-xagent-command.md +40 -0
- package/docs/decisions/ADR-0025-question-choice-sketches.md +49 -0
- package/docs/decisions/ADR-0026-contextual-question-wireframes.md +58 -0
- package/docs/decisions/ADR-0027-connected-sketch-display.md +62 -0
- package/docs/decisions/ADR-0028-xingular-agent-product-identity.md +56 -0
- package/docs/decisions/ADR-0029-normalized-question-wireframe-borders.md +33 -0
- package/docs/decisions/ADR-0030-agent-profiles.md +43 -0
- package/docs/decisions/ADR-0031-plugin-command-owner-namespaces.md +37 -0
- package/docs/decisions/ADR-0032-compaction-run-checkpoints.md +35 -0
- package/docs/decisions/ADR-0033-plan-mode-research-delegation.md +47 -0
- package/docs/decisions/ADR-0034-first-class-harness-terminal-commands.md +25 -0
- package/docs/decisions/ADR-0035-one-launch-path.md +40 -0
- package/docs/decisions/ADR-0036-workspace-write-operation-boundary.md +54 -0
- package/docs/decisions/ADR-0037-usage-ledger-and-provider-limits.md +44 -0
- package/docs/decisions/ADR-0038-plan-bash-os-read-only.md +29 -0
- package/docs/decisions/ADR-0039-progress-aware-stall-guards.md +43 -0
- package/docs/decisions/ADR-0040-architecture-change-workflow.md +31 -0
- package/docs/decisions/ADR-0041-plugins-hub-separation.md +41 -0
- package/docs/decisions/ADR-0042-windows-shell-without-sandbox.md +40 -0
- package/docs/decisions/ADR-0043-parents-continue-stopped-subagents.md +49 -0
- package/docs/decisions/ADR-0044-annotations-pending-or-sent.md +24 -0
- package/docs/decisions/ADR-0045-default-plugin-authoring-skill.md +9 -0
- package/docs/decisions/ADR-0046-hash-bound-plugin-proposals.md +20 -0
- package/docs/decisions/ADR-0047-links-open-with-the-os-handler.md +47 -0
- package/docs/decisions/ADR-0048-required-skills-from-a-message.md +42 -0
- package/docs/decisions/ADR-0050-approved-window-screenshots.md +19 -0
- package/docs/decisions/ADR-0051-terminal-decision-wait.md +10 -0
- package/docs/decisions/ADR-0052-per-profile-subagent-budgets.md +25 -0
- package/docs/decisions/ADR-0053-no-repeated-work-guard.md +45 -0
- package/docs/decisions/ADR-0054-terminal-reply-heartbeat-and-stall.md +52 -0
- package/docs/decisions/ADR-0055-plan-output-repair.md +51 -0
- package/docs/decisions/ADR-0056-remote-control.md +53 -0
- package/docs/decisions/ADR-0057-structured-plan-outcomes.md +39 -0
- package/docs/decisions/ADR-0058-ask-user-only-plan-clarification.md +36 -0
- package/docs/decisions/ADR-0059-run-diagnostic-evidence.md +35 -0
- package/docs/decisions/ADR-0060-approvals-are-controls.md +40 -0
- package/docs/decisions/ADR-0061-strict-plugin-command-namespaces.md +41 -0
- package/docs/decisions/ADR-0062-shared-account-state.md +67 -0
- package/docs/decisions/ADR-0063-unfinished-work-handoffs.md +34 -0
- package/docs/decisions/ADR-0064-account-model-fallback-on-resume.md +79 -0
- package/docs/decisions/ADR-0065-variant-switch-at-turn-boundaries.md +31 -0
- package/docs/decisions/ADR-0066-guided-refinement-from-turn-snapshots.md +37 -0
- package/docs/decisions/ADR-0067-cache-stable-compaction-checkpoint.md +54 -0
- package/docs/decisions/ADR-0068-scope-and-completion-report.md +60 -0
- package/docs/decisions/ADR-0069-stop-gate-and-finish.md +136 -0
- package/docs/decisions/ADR-0070-terminal-slice-continuation.md +49 -0
- package/docs/decisions/ADR-0071-completion-check.md +104 -0
- package/docs/decisions/ADR-0072-codex-prompts-and-goal.md +108 -0
- package/docs/decisions/ADR-0073-large-reporting-prompt.md +89 -0
- package/docs/decisions/ADR-0074-report-content-not-report-blocks.md +90 -0
- package/docs/decisions/ADR-0075-no-todo-gate.md +84 -0
- package/docs/decisions/ADR-0076-codex-final-answer-verbatim.md +98 -0
- package/docs/decisions/ADR-0077-plan-runs-may-conclude-no-plan-needed.md +120 -0
- package/docs/decisions/ADR-0078-child-aware-stall-watch.md +46 -0
- package/docs/decisions/ADR-0079-phase-led-reporting-guidance.md +72 -0
- package/docs/decisions/ADR-0080-fixed-width-question-sketch-canvas.md +50 -0
- package/docs/decisions/ADR-0081-no-work-slice-budget-by-default.md +36 -0
- package/docs/decisions/ADR-0082-connected-brave-browser.md +72 -0
- package/docs/decisions/ADR-0083-one-live-session-runtime.md +256 -0
- package/docs/doctor.md +95 -0
- package/docs/experiments/EXP-0001-terminal-input-latency/plan.md +81 -0
- package/docs/experiments/EXP-0001-terminal-input-latency/results.md +46 -0
- package/docs/experiments/EXP-0002-opentui-typing-latency/plan.md +70 -0
- package/docs/experiments/EXP-0002-opentui-typing-latency/results.md +92 -0
- package/docs/experiments/EXP-0003-performance-audit/data/session-runtime-replication.json +420 -0
- package/docs/experiments/EXP-0003-performance-audit/data/session-runtime.json +420 -0
- package/docs/experiments/EXP-0003-performance-audit/data/terminal-compact.json +376 -0
- package/docs/experiments/EXP-0003-performance-audit/data/terminal-history.json +422 -0
- package/docs/experiments/EXP-0003-performance-audit/data/terminal-question.json +95 -0
- package/docs/experiments/EXP-0003-performance-audit/data/terminal-wide.json +1036 -0
- package/docs/experiments/EXP-0003-performance-audit/plan.md +109 -0
- package/docs/experiments/EXP-0003-performance-audit/results.md +151 -0
- package/docs/features/README.md +46 -0
- package/docs/features/automations/README.md +41 -0
- package/docs/features/cores/README.md +39 -0
- package/docs/features/google-harness2/README.md +52 -0
- package/docs/features/integrations/README.md +40 -0
- package/docs/features/interfaces/README.md +29 -0
- package/docs/features/memory/README.md +28 -0
- package/docs/future-work.md +48 -0
- package/docs/handoff-2026-10-25-app-parity-and-solo-tabs.md +202 -0
- package/docs/parity.md +158 -0
- package/docs/releases/1.0.0.md +40 -0
- package/docs/releases/1.1.1.md +28 -0
- package/docs/releases/1.2.0.md +49 -0
- package/docs/releases/1.3.0.md +21 -0
- package/docs/releases/1.3.1-unstable.1.md +8 -0
- package/docs/releases/1.3.1-unstable.2.md +11 -0
- package/docs/releases/1.3.1-unstable.3.md +54 -0
- package/docs/releases/1.3.1-unstable.4.md +56 -0
- package/docs/releases/1.3.1-unstable.5.md +53 -0
- package/docs/releases/1.3.1-unstable.6.md +31 -0
- package/docs/releases/1.3.1-unstable.7.md +17 -0
- package/docs/releases/1.3.1-unstable.8.md +19 -0
- package/docs/releases/1.3.1-unstable.9.md +54 -0
- package/docs/releases/1.4.0-unstable.md +25 -0
- package/docs/releases/1.5.0-unstable.md +32 -0
- package/docs/releases/1.5.1-unstable.md +24 -0
- package/docs/releases/1.6.0-unstable.md +59 -0
- package/docs/releases/2.0.1-unstable.md +63 -0
- package/docs/releases/4.0.0.md +47 -0
- package/docs/releases/README.md +49 -0
- package/docs/study/00-index.md +112 -0
- package/docs/study/STUDY-0003-long-horizon-runs.md +210 -0
- package/docs/study/STUDY-0004-turn-end-controls.md +130 -0
- package/docs/study/STUDY-0005-skill-installation-guidance.md +146 -0
- package/docs/study/STUDY-0006-reporting-prompts.md +119 -0
- package/docs/study/STUDY-0007-claude-code-prompt.md +162 -0
- package/docs/study/STUDY-0008-browser-control.md +281 -0
- package/docs/study/STUDY-0009-claude-code-reporting.md +205 -0
- package/docs/study/arms/00-matrix.md +20 -0
- package/docs/study/arms/01-system-prompt.md +211 -0
- package/docs/study/arms/02-tools.md +79 -0
- package/docs/study/arms/03-subagents.md +90 -0
- package/docs/study/arms/04-skills.md +81 -0
- package/docs/study/arms/05-context-management.md +90 -0
- package/docs/study/arms/06-memory.md +90 -0
- package/docs/study/arms/07-governance.md +71 -0
- package/docs/study/arms/08-execution.md +69 -0
- package/docs/study/arms/09-observability.md +60 -0
- package/docs/study/arms/10-refinement.md +110 -0
- package/docs/study/autonomous-engineering-sources.md +277 -0
- package/docs/study/autonomy-sources.md +147 -0
- package/docs/study/btw-comparison.md +37 -0
- package/docs/study/feature-gap-review.md +42 -0
- package/docs/study/insights.md +123 -0
- package/docs/study/proactive-autonomy.md +408 -0
- package/docs/study/roadmap.md +72 -0
- package/docs/study/sources/claude-code.md +56 -0
- package/docs/study/sources/deepseek-harness.md +102 -0
- package/docs/study/sources/harness2.md +50 -0
- package/docs/study/sources/kimi-cli.md +42 -0
- package/docs/study/sources/omp.md +93 -0
- package/docs/study/sources/opencode.md +43 -0
- package/docs/study/sources/openhands.md +46 -0
- package/docs/study/sources/smolagents.md +40 -0
- package/docs/study/sources/swe-agent.md +34 -0
- package/docs/study/tui-resource-browser.md +78 -0
- package/docs/system-prompt-design.md +196 -0
- package/docs/terminal-tui.md +887 -109
- package/package.json +46 -13
- package/src/accounts/accounts.test.ts +0 -419
- package/src/accounts/accounts.ts +0 -760
- package/src/accounts/env.test.ts +0 -95
- package/src/accounts/env.ts +0 -338
- package/src/accounts/secrets.ts +0 -50
- package/src/accounts/store.ts +0 -338
- package/src/capabilities/api.ts +0 -75
- package/src/capabilities/runSnapshot.ts +0 -59
- package/src/capabilities/types.ts +0 -34
- package/src/cli.ts +0 -118
- package/src/core/bus.test.ts +0 -22
- package/src/core/bus.ts +0 -49
- package/src/core/changes.ts +0 -33
- package/src/core/env.ts +0 -27
- package/src/core/errors.ts +0 -32
- package/src/core/frontmatter.ts +0 -47
- package/src/core/fs.test.ts +0 -38
- package/src/core/fs.ts +0 -92
- package/src/core/index.ts +0 -193
- package/src/core/path.test.ts +0 -14
- package/src/core/path.ts +0 -79
- package/src/core/projects.ts +0 -90
- package/src/core/text.ts +0 -39
- package/src/harness.ts +0 -322
- package/src/hub/catalog.json +0 -123
- package/src/hub/cli.ts +0 -59
- package/src/hub/hub.test.ts +0 -205
- package/src/hub/hub.ts +0 -256
- package/src/hub/schema.ts +0 -81
- package/src/index.ts +0 -80
- package/src/mcp/connections.ts +0 -641
- package/src/mcp/manager.ts +0 -130
- package/src/mcp/oauth.ts +0 -195
- package/src/mcp/scopeMigration.test.ts +0 -79
- package/src/mcp/scopeMigration.ts +0 -204
- package/src/mcp/service.test.ts +0 -422
- package/src/mcp/service.ts +0 -560
- package/src/mcp/types.ts +0 -118
- package/src/memory/api.test.ts +0 -82
- package/src/memory/api.ts +0 -303
- package/src/memory/blocks.test.ts +0 -78
- package/src/memory/blocks.ts +0 -408
- package/src/memory/caller.ts +0 -69
- package/src/memory/curation.test.ts +0 -206
- package/src/memory/curation.ts +0 -64
- package/src/memory/dispatch.ts +0 -64
- package/src/memory/facts.test.ts +0 -41
- package/src/memory/facts.ts +0 -248
- package/src/memory/graph.ts +0 -103
- package/src/memory/health.test.ts +0 -130
- package/src/memory/health.ts +0 -74
- package/src/memory/maintainer.ts +0 -272
- package/src/memory/maintenance.test.ts +0 -192
- package/src/memory/maintenance.ts +0 -679
- package/src/memory/migrate.ts +0 -79
- package/src/memory/operations.ts +0 -150
- package/src/memory/proposals.test.ts +0 -168
- package/src/memory/proposals.ts +0 -584
- package/src/memory/recall.test.ts +0 -115
- package/src/memory/recall.ts +0 -279
- package/src/memory/references.ts +0 -77
- package/src/memory/runContext.ts +0 -93
- package/src/memory/secrets.ts +0 -6
- package/src/memory/store.test.ts +0 -66
- package/src/memory/store.ts +0 -385
- package/src/memory/trajectory.test.ts +0 -178
- package/src/memory/trajectory.ts +0 -220
- package/src/memory/wiki.test.ts +0 -47
- package/src/memory/wiki.ts +0 -423
- package/src/memory/wikiIndex.test.ts +0 -88
- package/src/memory/wikiIndex.ts +0 -117
- package/src/plugins/api.ts +0 -181
- package/src/plugins/attachments.test.ts +0 -84
- package/src/plugins/attachments.ts +0 -141
- package/src/plugins/builtin.ts +0 -84
- package/src/plugins/catalogue.test.ts +0 -254
- package/src/plugins/catalogue.ts +0 -251
- package/src/plugins/cli.ts +0 -184
- package/src/plugins/discover.ts +0 -151
- package/src/plugins/firstParty.test.ts +0 -143
- package/src/plugins/firstParty.ts +0 -129
- package/src/plugins/hooks.test.ts +0 -250
- package/src/plugins/hooks.ts +0 -239
- package/src/plugins/identity.ts +0 -37
- package/src/plugins/install.test.ts +0 -107
- package/src/plugins/install.ts +0 -106
- package/src/plugins/inventory.ts +0 -123
- package/src/plugins/manifest.ts +0 -76
- package/src/plugins/plugins.test.ts +0 -205
- package/src/plugins/plugins.ts +0 -189
- package/src/plugins/proposal.ts +0 -121
- package/src/plugins/runtime.test.ts +0 -40
- package/src/plugins/runtime.ts +0 -82
- package/src/plugins/trust.ts +0 -142
- package/src/plugins/types.ts +0 -149
- package/src/prompt/compile.test.ts +0 -261
- package/src/prompt/compile.ts +0 -732
- package/src/server/methods.ts +0 -355
- package/src/server/remote.ts +0 -77
- package/src/server/rpc.ts +0 -116
- package/src/server/serve.ts +0 -28
- package/src/server/server.test.ts +0 -193
- package/src/sessions/approvals.test.ts +0 -49
- package/src/sessions/approvals.ts +0 -140
- package/src/sessions/contracts.ts +0 -336
- package/src/sessions/conversation.test.ts +0 -233
- package/src/sessions/extensionSession.test.ts +0 -74
- package/src/sessions/extensionUi.test.ts +0 -65
- package/src/sessions/extensionUi.ts +0 -102
- package/src/sessions/history.ts +0 -51
- package/src/sessions/lineageJoin.ts +0 -75
- package/src/sessions/policy.ts +0 -36
- package/src/sessions/pricing.ts +0 -60
- package/src/sessions/questionBatches.test.ts +0 -110
- package/src/sessions/reasoningSummaries.ts +0 -59
- package/src/sessions/registry.ts +0 -412
- package/src/sessions/runIndex.ts +0 -99
- package/src/sessions/runStore.test.ts +0 -152
- package/src/sessions/runStore.ts +0 -346
- package/src/sessions/runner.ts +0 -610
- package/src/sessions/runtimeResources.test.ts +0 -61
- package/src/sessions/sessions.test.ts +0 -588
- package/src/sessions/sessions.ts +0 -331
- package/src/sessions/subagentService.test.ts +0 -159
- package/src/sessions/subagentService.ts +0 -236
- package/src/sessions/subagents.ts +0 -97
- package/src/skills/registry.test.ts +0 -104
- package/src/skills/registry.ts +0 -413
- package/src/terminal/accountsMenu.test.ts +0 -225
- package/src/terminal/accountsMenu.ts +0 -382
- package/src/terminal/cli.ts +0 -149
- package/src/terminal/client.ts +0 -74
- package/src/terminal/control.test.ts +0 -23
- package/src/terminal/control.ts +0 -23
- package/src/terminal/controller.ts +0 -354
- package/src/terminal/hubMenu.ts +0 -24
- package/src/terminal/launch.test.ts +0 -25
- package/src/terminal/launch.ts +0 -48
- package/src/terminal/piExtension.lifecycle.test.ts +0 -55
- package/src/terminal/piExtension.ts +0 -295
- package/src/terminal/pluginControl.test.ts +0 -146
- package/src/terminal/pluginMenu.ts +0 -112
- package/src/terminal/socket.test.ts +0 -94
- package/src/terminal/socket.ts +0 -256
- package/src/terminal/standalone.test.ts +0 -167
- package/src/terminal/standalone.ts +0 -165
- package/src/terminal/terminal.test.ts +0 -534
- package/src/terminal/terminals.ts +0 -661
- package/src/terminal/trajectory.test.ts +0 -66
- package/src/terminal/trajectory.ts +0 -44
- package/src/terminal/tui/application.test.ts +0 -290
- package/src/terminal/tui/application.ts +0 -653
- package/src/terminal/tui/commands.test.ts +0 -278
- package/src/terminal/tui/commands.ts +0 -443
- package/src/terminal/tui/dialogs.ts +0 -301
- package/src/terminal/tui/editor.test.ts +0 -113
- package/src/terminal/tui/editor.ts +0 -109
- package/src/terminal/tui/keybindings.test.ts +0 -30
- package/src/terminal/tui/keybindings.ts +0 -59
- package/src/terminal/tui/piAdapter.ts +0 -62
- package/src/terminal/tui/planMode.test.ts +0 -10
- package/src/terminal/tui/planMode.ts +0 -12
- package/src/terminal/tui/presentation.test.ts +0 -79
- package/src/terminal/tui/questions.test.ts +0 -41
- package/src/terminal/tui/questions.ts +0 -47
- package/src/terminal/tui/runtime.socket.test.ts +0 -178
- package/src/terminal/tui/runtime.test.ts +0 -225
- package/src/terminal/tui/runtime.ts +0 -403
- package/src/terminal/tui/screen.test.ts +0 -143
- package/src/terminal/tui/screen.ts +0 -121
- package/src/terminal/tui/sessionUi.ts +0 -24
- package/src/terminal/tui/settings.test.ts +0 -150
- package/src/terminal/tui/settings.ts +0 -188
- package/src/terminal/tui/skillInvocation.test.ts +0 -71
- package/src/terminal/tui/skillInvocation.ts +0 -51
- package/src/terminal/tui/status.test.ts +0 -48
- package/src/terminal/tui/status.ts +0 -82
- package/src/terminal/tui/theme.ts +0 -185
- package/src/terminal/tui/tools.test.ts +0 -145
- package/src/terminal/tui/tools.ts +0 -142
- package/src/terminal/tui/trajectoryPanel.test.ts +0 -99
- package/src/terminal/tui/trajectoryPanel.ts +0 -226
- package/src/terminal/tui/transcript.test.ts +0 -39
- package/src/terminal/tui/transcript.ts +0 -135
- package/src/terminal/tui/ui.test.ts +0 -313
- package/src/terminal/tui/ui.ts +0 -166
- package/src/terminal/tui/welcome.ts +0 -102
- package/src/terminal/tui/workingStatus.test.ts +0 -44
- package/src/terminal/tui/workingStatus.ts +0 -238
- package/src/tools/askUser.test.ts +0 -69
- package/src/tools/askUser.ts +0 -59
- package/src/tools/definitions.ts +0 -228
- package/src/tools/maintenance.ts +0 -29
- package/src/tools/memoryTools.ts +0 -22
- package/src/tools/pluginPropose.ts +0 -41
- package/src/tools/registryWrite.test.ts +0 -101
- package/src/tools/registryWrite.ts +0 -182
- package/src/tools/spawnSubagent.ts +0 -47
- package/src/tools/types.ts +0 -41
- package/src/web/safeRequest.ts +0 -171
- package/src/web/text.ts +0 -53
- package/src/web/tools.ts +0 -134
- package/src/web/web.test.ts +0 -141
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# ADR-0031 — Plugin commands use owner-qualified namespaces
|
|
2
|
+
|
|
3
|
+
Status: Accepted (PROP-0031, 2026-10-25).
|
|
4
|
+
Supersedes: The command-namespace decision in [ADR-0021](ADR-0021-required-command-namespaces.md).
|
|
5
|
+
Related: [PROP-0031](../architecture/proposals/PROP-0031-plugin-command-owner-namespaces.md),
|
|
6
|
+
[11 Terminal](../architecture/11-terminal.md),
|
|
7
|
+
[14 Surfaces and parity](../architecture/14-surfaces-and-parity.md),
|
|
8
|
+
[06 Plugins and capabilities](../architecture/06-plugins-and-capabilities.md).
|
|
9
|
+
|
|
10
|
+
## Context
|
|
11
|
+
|
|
12
|
+
The generic `/plugin:<command>` form hid command ownership for optional built-ins and Pi extensions,
|
|
13
|
+
while required built-ins used a separate bare-command rule. Both forms left a global collision surface
|
|
14
|
+
and made help, completion and invocation inconsistent across owners. Annotation routes also used the
|
|
15
|
+
generic plugin prefix despite the plugin's annotation-focused purpose.
|
|
16
|
+
|
|
17
|
+
## Decision
|
|
18
|
+
|
|
19
|
+
Every plugin-owned terminal command is invoked as `/<owner-prefix>:<command>`, regardless of whether
|
|
20
|
+
the owner is a required built-in, optional built-in or Pi extension. Core terminal commands remain
|
|
21
|
+
unprefixed, and `/skill:<name>` remains reserved for skill invocation. Built-in plugins use stable
|
|
22
|
+
prefixes; Pi packages may set `harness.commandPrefix` and otherwise derive the prefix from normalized
|
|
23
|
+
package identity, while loose extensions use normalized extension names. Prefixes identify owners and
|
|
24
|
+
must be unique; duplicate commands within an owner and owner-prefix collisions are rejected with
|
|
25
|
+
source diagnostics.
|
|
26
|
+
|
|
27
|
+
A built-in plugin module may choose a default command for its namespace root. Web annotations uses `/annotate:` for
|
|
28
|
+
capture, `/annotate:annotate` as an equivalent alias, and `/annotate:notes` for saved annotations.
|
|
29
|
+
For one release, the previous `/plugin:<command>` and bare required-plugin forms remain hidden
|
|
30
|
+
compatibility aliases when unambiguous. They are omitted from help and completion.
|
|
31
|
+
|
|
32
|
+
## Consequences
|
|
33
|
+
|
|
34
|
+
The namespace rule applies uniformly to completion, help, highlighting and dispatch. Plugin packages
|
|
35
|
+
may opt into a stable custom prefix with `harness.commandPrefix`. The compatibility aliases expire
|
|
36
|
+
after one release and should not be used for new scripts or keybindings. This changes no server method,
|
|
37
|
+
capability identifier, account data or annotation storage format.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# ADR-0032 — Rehydrate bounded run checkpoints after compaction
|
|
2
|
+
|
|
3
|
+
Status: Accepted (PROP-0033, 2026-10-25). Delivery superseded in part by
|
|
4
|
+
[ADR-0067](ADR-0067-cache-stable-compaction-checkpoint.md): the checkpoint arms only for a compaction
|
|
5
|
+
during its run and sits, unchanged, right after the summary.
|
|
6
|
+
Related: [PROP-0033](../architecture/proposals/PROP-0033-compaction-plan-checkpoints.md),
|
|
7
|
+
[02 Sessions and runs](../architecture/02-sessions-and-runs.md),
|
|
8
|
+
[04 Prompt](../architecture/04-prompt.md),
|
|
9
|
+
[11 Terminal](../architecture/11-terminal.md),
|
|
10
|
+
[14 Surfaces and parity](../architecture/14-surfaces-and-parity.md).
|
|
11
|
+
|
|
12
|
+
## Context
|
|
13
|
+
|
|
14
|
+
Pi preserves the native conversation transcript when compacting, but subsequent model requests use a
|
|
15
|
+
summary and recent messages. The Harness already records the latest checklist as a run event and
|
|
16
|
+
restores it when a stopped run is continued; an active run lacked equivalent rehydration after
|
|
17
|
+
compaction. SDK plan instructions are dynamic context and may also be included in the summarized
|
|
18
|
+
span.
|
|
19
|
+
|
|
20
|
+
## Decision
|
|
21
|
+
|
|
22
|
+
After compaction, each model request in the still-active run receives one bounded, ephemeral context
|
|
23
|
+
message when a checklist or applicable plan instructions exist to restore. It contains the current
|
|
24
|
+
request and available state. The prompt compiler assembles this content, and one Harness-owned
|
|
25
|
+
extension provides the same behavior to embedded sessions and the terminal. The extension state is run-scoped and clears on
|
|
26
|
+
settlement or branch navigation. The context message is not persisted to the native transcript or
|
|
27
|
+
run-event stream; existing session history, checklist events and continuation records remain the
|
|
28
|
+
sources of durable state. Hidden reasoning is never captured.
|
|
29
|
+
|
|
30
|
+
## Consequences
|
|
31
|
+
|
|
32
|
+
Post-compaction requests carry a small additional context block until the active run settles. The
|
|
33
|
+
feature adds no storage, event, server method, tool, permission or stable-system-prompt change. Plan
|
|
34
|
+
mode's existing gate remains authoritative. Runs without an explicit checklist or active plan state
|
|
35
|
+
receive no checkpoint.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0033
|
|
3
|
+
title: Keep delegation selective and research-only in plan mode
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-10-25
|
|
6
|
+
updated: 2026-10-25
|
|
7
|
+
related: [PROP-0032, INV-RUN-8, INV-GATE-3, INV-CAP-1]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ADR-0033 — Keep delegation selective and research-only in plan mode
|
|
11
|
+
|
|
12
|
+
## Context
|
|
13
|
+
|
|
14
|
+
Subagents can reduce the cost of substantial independent work, but a child starts without the
|
|
15
|
+
parent's conversation and parallel edits create integration risk. Plan mode must remain read-only;
|
|
16
|
+
allowing every profile would let profile overrides expand its effective tools or plugins. Ordinary
|
|
17
|
+
subagent guidance also belongs in request context, not the stable system prompt.
|
|
18
|
+
|
|
19
|
+
## Decision
|
|
20
|
+
|
|
21
|
+
- In normal mode, recommend delegation only for substantial, bounded, independent work. Prefer a
|
|
22
|
+
fitting specialist, give each child a self-contained brief, parallelize only independent tasks,
|
|
23
|
+
and keep integration and verification with the parent. Simple lookups, tiny edits and tightly
|
|
24
|
+
coupled work stay with the parent.
|
|
25
|
+
- In plan mode, allow only a named profile whose resolved tool and plugin allowlists are explicit
|
|
26
|
+
and confined to read-only research. The tool gate checks each spawn's arguments before approvals;
|
|
27
|
+
the subagent service checks again before launch.
|
|
28
|
+
- A research child inherits plan mode and can use only the intersection of its profile, the parent's
|
|
29
|
+
frozen capabilities and the plan research set. It has no connectors, user questions, writes,
|
|
30
|
+
commands or nested subagents. Its evidence returns to the parent, which verifies and synthesizes it.
|
|
31
|
+
- Put normal delegation guidance in the generated Subagents prompt section and the spawn tool's
|
|
32
|
+
description. Keep plan instructions request-scoped. Do not expand the stable system prompt or add
|
|
33
|
+
a second capability, approval, storage or plan-file mechanism.
|
|
34
|
+
|
|
35
|
+
## Consequences
|
|
36
|
+
|
|
37
|
+
Normal runs receive concise advice at the point where profile choices are listed. Plan runs expose
|
|
38
|
+
only eligible profiles and enforce the same restriction at both the gate and launch service. The
|
|
39
|
+
terminal and hosts share the Harness behavior. Plan outcomes remain in the existing run history and
|
|
40
|
+
PlanCard handoff; no protocol or stored-data migration is introduced.
|
|
41
|
+
|
|
42
|
+
## Verification
|
|
43
|
+
|
|
44
|
+
Harness tests cover normal prompt guidance, plan-mode profile eligibility and overrides, pre-approval
|
|
45
|
+
refusals, child tool/plugin narrowing, plan inheritance and non-nesting. The versioned Evaluation
|
|
46
|
+
suite adds one case where research delegation helps and one small case where it should be skipped.
|
|
47
|
+
Live model comparisons require explicit authorization and credentials.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# ADR-0034 — First-class Harness terminal commands
|
|
2
|
+
|
|
3
|
+
Status: Accepted (PROP-0036, 2026-10-25).
|
|
4
|
+
Supersedes: The plugin-command ownership rule of ADR-0031 only for the Harness terminal commands listed below.
|
|
5
|
+
Related: [PROP-0036](../architecture/proposals/PROP-0036-first-class-harness-commands.md),
|
|
6
|
+
[06 Plugins and capabilities](../architecture/06-plugins-and-capabilities.md),
|
|
7
|
+
[11 Terminal](../architecture/11-terminal.md),
|
|
8
|
+
[14 Surfaces and parity](../architecture/14-surfaces-and-parity.md),
|
|
9
|
+
[ADR-0031](ADR-0031-plugin-command-owner-namespaces.md).
|
|
10
|
+
|
|
11
|
+
## Context
|
|
12
|
+
|
|
13
|
+
The required `subagents`, `history`, `doctor` and `worktrees` feature modules currently contribute terminal commands through `BuiltinPluginRegistry`. These features are not optional plugin toggles, and their terminal pages are first-class Harness surfaces. `/history` already means session-branch navigation, while `/mcp` already opens the Connections browser as a core command.
|
|
14
|
+
|
|
15
|
+
## Decision
|
|
16
|
+
|
|
17
|
+
The terminal's core command registry owns these canonical routes: `/doctor`, `/worktree`, `/trajectory [run-id]`, `/subagents` and `/agents`. `/history` and `/tree` continue to navigate session branches. `/mcp` and `/connections` continue to open Connections.
|
|
18
|
+
|
|
19
|
+
The underlying required feature descriptors, tools, server methods and services remain registered by `BuiltinPluginRegistry`; they no longer own the terminal command metadata for these routes. Other plugin-owned built-in and Pi extension commands remain `/<owner-prefix>:<command>`, including the annotations namespace.
|
|
20
|
+
|
|
21
|
+
For one release, the prior owner-qualified and `/plugin:<command>` routes for the promoted commands remain accepted as hidden compatibility aliases. They are omitted from help and completion. Core command names remain reserved under the normal collision policy.
|
|
22
|
+
|
|
23
|
+
## Consequences
|
|
24
|
+
|
|
25
|
+
The core terminal command table owns help, completion, highlighting and dispatch for the promoted routes. Plugin namespace collision checks and extension command ownership are unchanged. No server method, capability contract or stored data changes.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0035
|
|
3
|
+
title: One launch and command contract for every front end
|
|
4
|
+
status: Accepted
|
|
5
|
+
created: 2026-11-19
|
|
6
|
+
proposal: PROP-0040
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ADR-0035: One launch and command contract for every front end
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
The owner approved Complete App parity and Solo tabs; accepted
|
|
14
|
+
[PROP-0040](../architecture/proposals/PROP-0040-one-launch-path.md) records the Harness contract.
|
|
15
|
+
The foundation owns one interactive launch policy, not a policy per renderer:
|
|
16
|
+
|
|
17
|
+
- `Launch.standard` supplies shared role, working-folder and connection guidance. Hosts add only
|
|
18
|
+
attributed context, policy and declared add-ons through existing extension points.
|
|
19
|
+
- `commands/registry.ts` defines core commands; `commands.list` adds effective plugin commands,
|
|
20
|
+
prompts and skills. Session history controls use `sessions.*`; live-session operations use
|
|
21
|
+
`SessionRunInput.command` and the normal run lifecycle.
|
|
22
|
+
- Both surfaces load Harness-selected trusted resources and first-party hooks. Pi CLI built-ins
|
|
23
|
+
and the terminal-only question alias are excluded; attended planning uses `ask_user`.
|
|
24
|
+
- Interactive defaults (roots, neutral variant scope and credential backend), shared session
|
|
25
|
+
references, browser schemas and frozen capability discovery belong to Harness. Explicit choices
|
|
26
|
+
and historical pins win. Existing profiles are never silently merged or credentials copied.
|
|
27
|
+
- Optional `surfaces` metadata describes a host preference and a terminal fallback or unavailability;
|
|
28
|
+
it neither creates a plugin category nor grants permission.
|
|
29
|
+
|
|
30
|
+
## Consequences and alternatives
|
|
31
|
+
|
|
32
|
+
Separate front-end defaults and command implementations make identical labels promise different
|
|
33
|
+
behavior. A shared contract permits richer presentation without a second loader, gate or state owner.
|
|
34
|
+
Host-backed tools must refuse unsupported semantics honestly. Matching roots alone does not share
|
|
35
|
+
credentials when the backends differ.
|
|
36
|
+
|
|
37
|
+
This is an accepted design, not release or acceptance evidence. Shared-default adoption, actual
|
|
38
|
+
runtime pins, native browser behavior, actionable command pages and cross-surface session discovery
|
|
39
|
+
remain subject to implementation and both-surface acceptance. The [parity register](../parity.md)
|
|
40
|
+
tracks source status and gaps; compiler-only equality tests do not establish runtime parity.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0036
|
|
3
|
+
title: Enforce workspace writes at the filesystem operation
|
|
4
|
+
status: Accepted
|
|
5
|
+
created: 2026-10-26
|
|
6
|
+
proposal: PROP-0039
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ADR-0036: Enforce workspace writes at the filesystem operation
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
The Harness owns one filesystem-effect boundary shared by SDK sessions and the terminal. Each run
|
|
14
|
+
pins a non-root `workspaceRoot`; model-controlled native writes and default-scope Bash are confined
|
|
15
|
+
to that root by operating-system enforcement, not by prompt guidance or pathname checks alone.
|
|
16
|
+
|
|
17
|
+
- Native `write` and `edit` calls revalidate the authorized canonical target at mutation and use
|
|
18
|
+
atomic replacement under an OS-enforced write scope. Outside file targets need a one-call
|
|
19
|
+
approval; replacing a directory entry rather than truncating an inode prevents an outside
|
|
20
|
+
hard-link alias from being changed.
|
|
21
|
+
- Before default-scope Bash, Harness scans the workspace for regular-file inodes with links outside
|
|
22
|
+
it and blocks the command if the scan is incomplete or an external alias may exist. The OS
|
|
23
|
+
sandbox prevents the command from creating a cross-boundary hard link. On macOS it denies
|
|
24
|
+
hard-link creation entirely, including within the workspace.
|
|
25
|
+
- Bash outside scope is an explicit `workspaceWriteScope: 'outside'` request, or terminal
|
|
26
|
+
`!outside <command>`. The complete quoted command is shown in approval details. Approval happens
|
|
27
|
+
before execution, is human-only and nonrememberable, and runs the exact command once. An
|
|
28
|
+
undersized terminal denies the request. stdout/stderr never proves a sandbox denial and never
|
|
29
|
+
triggers approval or replay.
|
|
30
|
+
- Full Permission remains the existing explicit boundary bypass for eligible interactive runs; it
|
|
31
|
+
remains subject to hard policy, authorization, read-only, plan, unattended and refinement rules.
|
|
32
|
+
- The filesystem root is not a valid workspace. A same-user peer process outside Harness remains
|
|
33
|
+
outside this boundary. Atomic replacement preserves ordinary file mode where possible but does
|
|
34
|
+
not guarantee ACL or extended-attribute preservation.
|
|
35
|
+
|
|
36
|
+
## Rationale
|
|
37
|
+
|
|
38
|
+
Canonical path checks alone do not contain effects through hard links and are vulnerable to
|
|
39
|
+
pathname changes between authorization and mutation. Atomic replacement avoids writing through a
|
|
40
|
+
shared inode, while an OS scope constrains the helper if a path changes. Shell output is controlled
|
|
41
|
+
by the command and cannot authenticate a denial event; explicit pre-execution scope requests avoid
|
|
42
|
+
replaying partial side effects and make broad writes an intentional decision.
|
|
43
|
+
|
|
44
|
+
## Consequences and alternatives
|
|
45
|
+
|
|
46
|
+
Workspaces with external hard-link aliases cannot use default Bash until repaired. Unsupported or
|
|
47
|
+
incomplete sandbox enforcement fails closed. Outside writes remain possible through the explicit
|
|
48
|
+
one-call approval path. A private copy-on-write workspace would also isolate against same-user peer
|
|
49
|
+
processes, but changes visibility, writeback, conflict handling, metadata and performance; it remains
|
|
50
|
+
out of scope unless that threat must be covered.
|
|
51
|
+
|
|
52
|
+
This decision is not release evidence. See [PROP-0039](../architecture/proposals/PROP-0039-workspace-boundary-hardening.md),
|
|
53
|
+
[the gate contract](../architecture/07-tools-and-gate.md), [terminal parity](../architecture/11-terminal.md)
|
|
54
|
+
and [the release note](../releases/1.2.0.md) for implementation and validation status.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# ADR-0037: Usage analytics read a derived ledger; provider limits are read, never guessed
|
|
2
|
+
|
|
3
|
+
**Status:** Accepted (2026-10-26)
|
|
4
|
+
|
|
5
|
+
## Context
|
|
6
|
+
|
|
7
|
+
Token and cost figures already reach the harness per model request, but only inside run events,
|
|
8
|
+
and the index stores no usage. Provider limits have a schema and health rules but no producer.
|
|
9
|
+
A person needs both answers without reading run folders, and a subscription's plan window must
|
|
10
|
+
not be presented as a made-up percentage.
|
|
11
|
+
|
|
12
|
+
## Decision
|
|
13
|
+
|
|
14
|
+
- **The usage ledger is derived.** `usage_requests` and `usage_indexed` live in `index.sqlite`,
|
|
15
|
+
are written from `usage.updated` events, and are rebuilt from `runs/` like recall. No run file,
|
|
16
|
+
folder or schema changes.
|
|
17
|
+
- **Analytics are bounded and scope-first.** One scope, one period, top-ten breakdowns, an
|
|
18
|
+
unpriced-request count, and cost estimates marked separately from provider figures.
|
|
19
|
+
- **Limits have a stated source.** Response headers first (free and fresh), then a small registry
|
|
20
|
+
of documented provider endpoints read with the credential `Models.getAuth` resolves, then an
|
|
21
|
+
explicit unavailable reason. Undocumented endpoints are off unless `experimentalProbes` is on.
|
|
22
|
+
- **Freshness is a person's choice.** Readings are cached for a configurable interval and
|
|
23
|
+
refreshed on page open or `r`, never by a background timer.
|
|
24
|
+
- **One built-in plugin owns the capability.** `usage` contributes the methods and the two
|
|
25
|
+
namespaced terminal commands; the public method table still comes from `server/methods.ts`.
|
|
26
|
+
|
|
27
|
+
## Consequences
|
|
28
|
+
|
|
29
|
+
The index carries one more derived table set, with an append-only migration. `AccountState`
|
|
30
|
+
gains an optional readout list and `Limit` optional absolute fields, both additive. A page open
|
|
31
|
+
may make a read-only provider request with the account's existing credential; nothing is written
|
|
32
|
+
to a credential file and no model request is made. Hosts can present the same methods later; the
|
|
33
|
+
terminal is the reference surface.
|
|
34
|
+
|
|
35
|
+
## Alternatives rejected
|
|
36
|
+
|
|
37
|
+
Reading raw run logs per page (unbounded), a new data folder (duplicates derived data), scraping
|
|
38
|
+
dashboards (no stable API), inventing percentages (misleading), background polling (surprise
|
|
39
|
+
egress).
|
|
40
|
+
|
|
41
|
+
## References
|
|
42
|
+
|
|
43
|
+
[PROP-0042](../architecture/proposals/PROP-0042-usage-and-provider-limits.md), architecture pages
|
|
44
|
+
02, 06, 08, 09, 10, 11, 12 and 14.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0038
|
|
3
|
+
title: Plan-mode Bash is read-only by OS sandbox, not by command parsing
|
|
4
|
+
status: Accepted
|
|
5
|
+
created: 2026-10-26
|
|
6
|
+
proposal: PROP-0043
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ADR-0038: Plan-mode Bash is read-only by OS sandbox, not by command parsing
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
Plan runs may use Bash, and each call runs in the workspace sandbox's `read-only` scope: no writes
|
|
14
|
+
except a discarded per-call temp folder, no network, no signals outside the sandbox, and (macOS) no
|
|
15
|
+
mach services. Nothing widens that scope in plan mode. A small denylist of system-acting commands is
|
|
16
|
+
checked by the gate as defence in depth only.
|
|
17
|
+
|
|
18
|
+
## Rationale
|
|
19
|
+
|
|
20
|
+
Whether a shell command writes cannot be decided reliably from its text; many read-looking commands
|
|
21
|
+
can run others or write through flags. The Harness already depends on `sandbox-exec` and `bwrap` for
|
|
22
|
+
the workspace boundary (ADR-0036), so the same mechanism with no write roots gives a kernel-enforced
|
|
23
|
+
read-only guarantee at little cost.
|
|
24
|
+
|
|
25
|
+
## Consequences
|
|
26
|
+
|
|
27
|
+
Plans can inspect with real commands. Commands that need to write, such as most builds and tests,
|
|
28
|
+
fail in plan mode. Platforms without a sandbox refuse plan Bash. See
|
|
29
|
+
[PROP-0043](../architecture/proposals/PROP-0043-read-only-plan-bash.md).
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0039
|
|
3
|
+
title: Progress-aware stall guards and bounded plan research children
|
|
4
|
+
status: Accepted
|
|
5
|
+
superseded_by: ADR-0053 (targeted protections only)
|
|
6
|
+
created: 2026-10-27
|
|
7
|
+
proposal: PROP-0046
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ADR-0039: Progress-aware stall guards and bounded plan research children
|
|
11
|
+
|
|
12
|
+
The targeted repeated-call, repeated-failing-check and edit-churn protections decided here are
|
|
13
|
+
superseded by [ADR-0053](ADR-0053-no-repeated-work-guard.md); the rest of the decision stands.
|
|
14
|
+
|
|
15
|
+
## Decision
|
|
16
|
+
|
|
17
|
+
Remove the global file-change/check no-progress trigger. Keep the targeted protections for repeated
|
|
18
|
+
calls, repeated failing checks, per-path edit churn, compaction thrash, and the independent
|
|
19
|
+
work-slice call/time budgets. Count edit churn only from successful native `edit`/`write` results
|
|
20
|
+
with a path. A successful edit/write clears failed-check counts, exact Bash-check repetition counts
|
|
21
|
+
and the pending nudge, but preserves edit counts and repeats of other calls; a passing check clears
|
|
22
|
+
edit churn.
|
|
23
|
+
|
|
24
|
+
Bound plan-research children with the configured work-slice policy without adding
|
|
25
|
+
`checkpoint_write` or any other capability. When that tool is absent, a budget or stall refusal asks
|
|
26
|
+
the child to stop and return partial findings; another tool call ends the reply, and the runner
|
|
27
|
+
records an evidence-derived checkpoint. Children do not auto-continue. Plan-mode browser and
|
|
28
|
+
connected-app restrictions remain unchanged.
|
|
29
|
+
|
|
30
|
+
## Rationale
|
|
31
|
+
|
|
32
|
+
Distinct reads are not evidence of a stall, and the former 25-call threshold imposed an arbitrary
|
|
33
|
+
file/check-progress boundary. Tool results are the shared, observable signal for whether a native
|
|
34
|
+
edit succeeded; treating failed or blocked attempts as edits would consume the churn allowance
|
|
35
|
+
without changing code. Resetting check-retry state after a successful edit lets the same check run
|
|
36
|
+
against changed input without weakening protection when code is unchanged. A derived checkpoint
|
|
37
|
+
bounds read-only research children without widening their frozen capability set.
|
|
38
|
+
|
|
39
|
+
## Consequences
|
|
40
|
+
|
|
41
|
+
Long sequences of distinct reads are limited by the configured slice budget and targeted loop
|
|
42
|
+
protections, not by missing file/check progress. No run-event schema, stored-data layout or server protocol changes are introduced; the terminal
|
|
43
|
+
uses the same guard rules. See [PROP-0046](../architecture/proposals/PROP-0046-progress-aware-stall-guards.md).
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0040
|
|
3
|
+
title: Architecture changes do not require proposal approval first
|
|
4
|
+
status: Accepted
|
|
5
|
+
created: 2026-10-27
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# ADR-0040: Architecture changes do not require proposal approval first
|
|
9
|
+
|
|
10
|
+
## Decision
|
|
11
|
+
|
|
12
|
+
The architecture specification remains binding, and changes that alter its contracts, invariants,
|
|
13
|
+
layer boundaries, extension points, or storage layout must update the affected specification pages
|
|
14
|
+
in the same change. Such work does not require a proposal or user approval before implementation.
|
|
15
|
+
|
|
16
|
+
Proposals remain optional design records. When used, they may be created before or alongside
|
|
17
|
+
implementation and should be indexed and status-tracked. Add an ADR for a lasting architectural
|
|
18
|
+
choice. Report existing code/spec drift and resolve relevant drift by updating both sides together
|
|
19
|
+
within the requested scope.
|
|
20
|
+
|
|
21
|
+
## Rationale
|
|
22
|
+
|
|
23
|
+
A binding specification and same-change documentation keep implementation accountable to the
|
|
24
|
+
architecture without making a separate proposal review a prerequisite to requested work. Optional
|
|
25
|
+
proposals remain available when a design benefits from a written comparison or durable rationale.
|
|
26
|
+
|
|
27
|
+
## Consequences
|
|
28
|
+
|
|
29
|
+
Coding agents read the affected specification pages, implement the requested change, update the
|
|
30
|
+
specification in the same change, and run relevant checks. Proposal status records design review or
|
|
31
|
+
implementation progress but does not gate implementation.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0041
|
|
3
|
+
title: Separate local plugin management from Community Hub discovery
|
|
4
|
+
status: Accepted
|
|
5
|
+
created: 2026-10-27
|
|
6
|
+
proposal: PROP-0047
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ADR-0041: Separate local plugin management from Community Hub discovery
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
- `/plugins` is the dedicated local installed-plugin manager: switching, code trust, settings, and
|
|
14
|
+
local package install, update and removal. It does not browse the public catalog.
|
|
15
|
+
- `/hub` is a distinct public-catalog page. Its Catalog view shows Community entries across active
|
|
16
|
+
supported types; its Installed view shows receipts from every channel with the channel visible.
|
|
17
|
+
The broad `/harness` resource browser remains available.
|
|
18
|
+
- Opening Hub shows cached or bundled entries first, then refreshes remotely. The page retains the
|
|
19
|
+
data origin, last-refresh time and any fallback/error status. Registry/document entries keep a
|
|
20
|
+
bounded payload Preview; Pi packages have no payload Preview.
|
|
21
|
+
- A Hub-owned package cannot be silently floated by `plugins.update`. Removing it through
|
|
22
|
+
`plugins.remove` delegates to Hub's exact-receipt uninstall operation; Hub remains the writer of
|
|
23
|
+
its receipt and owned resources. Replacing it requires an explicit, exact catalog version.
|
|
24
|
+
- Host presentations use the same filtering, refresh and receipt lifecycle while choosing their own
|
|
25
|
+
layouts. No new capability, loader, storage format or server response schema is introduced.
|
|
26
|
+
|
|
27
|
+
## Rationale
|
|
28
|
+
|
|
29
|
+
Local plugin management and public catalog discovery have different owners and different safety
|
|
30
|
+
contracts. Separating the direct pages makes that visible without duplicating the services: local
|
|
31
|
+
packages use the plugin manager, while Hub installs are pinned catalog releases with receipts. A
|
|
32
|
+
Community-only catalog view also avoids presenting official items as community submissions, while
|
|
33
|
+
retaining existing Official receipts for management.
|
|
34
|
+
|
|
35
|
+
## Consequences
|
|
36
|
+
|
|
37
|
+
The direct terminal and host routes have distinct screens, but `/harness` stays a broad resource
|
|
38
|
+
browser. Catalog filtering is presentation-only; `hub.list` remains unfiltered for other callers.
|
|
39
|
+
Existing receipts and plugin settings need no migration. The current public catalog has no
|
|
40
|
+
Community Pi-package entry, so no Community plugin appears until a publisher adds one. See
|
|
41
|
+
[PROP-0047](../architecture/proposals/PROP-0047-plugins-hub-separation.md).
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0042
|
|
3
|
+
title: Run Windows commands behind a per-call approval instead of a sandbox
|
|
4
|
+
status: Accepted
|
|
5
|
+
created: 2026-10-27
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# ADR-0042: Run Windows commands behind a per-call approval instead of a sandbox
|
|
9
|
+
|
|
10
|
+
## Context
|
|
11
|
+
|
|
12
|
+
Bash runs inside an OS write-boundary sandbox: `sandbox-exec` on macOS, bubblewrap on Linux
|
|
13
|
+
(INV-GATE-3, INV-GATE-8). Windows has neither, and missing enforcement fails closed, so on Windows
|
|
14
|
+
every Bash call, and every native `write` and `edit` (whose helper was launched through the same
|
|
15
|
+
sandbox), failed before it started. The shell lookup also searched only `/bin/bash`. A harness
|
|
16
|
+
installed from npm on Windows could not run a command or change a file.
|
|
17
|
+
|
|
18
|
+
## Decision
|
|
19
|
+
|
|
20
|
+
- **Shell.** On Windows, commands run in Git Bash (`%ProgramFiles%\Git\bin\bash.exe`,
|
|
21
|
+
`%ProgramFiles(x86)%\Git\bin\bash.exe`, then `bash.exe` on `PATH`, never the WSL launcher in
|
|
22
|
+
`System32`), otherwise in PowerShell (`pwsh.exe`, PowerShell 7 in Program Files, then Windows
|
|
23
|
+
PowerShell). The capability and tool keep the name `bash`, so capability sets, the gate, plan
|
|
24
|
+
lists and approvals are unchanged; the description names the shell.
|
|
25
|
+
- **Bash.** Every Windows command takes the existing `outside` path: a human-only one-call approval
|
|
26
|
+
or an eligible Full Permission answer, then it runs once unconfined. Remembered tool grants never
|
|
27
|
+
answer it. Plan-mode (read-only) Bash is refused on Windows.
|
|
28
|
+
- **Write and edit.** On Windows the atomic helper runs with Node directly. The target is still
|
|
29
|
+
canonicalized, authorized, revalidated, and replaced by rename; outside targets still need their
|
|
30
|
+
one-call approval. In-workspace writes do not ask.
|
|
31
|
+
- `/doctor` reports the Windows shell as a warning that names it and the approval rule.
|
|
32
|
+
|
|
33
|
+
## Consequences
|
|
34
|
+
|
|
35
|
+
- The harness works on Windows right after `npm install`, with no Git or native helper required.
|
|
36
|
+
- Windows commands are unconfined once approved. The guarantee comes from the person, not the OS.
|
|
37
|
+
- On Windows, a junction or symlink swap between the write check and the rename is not prevented
|
|
38
|
+
by the OS. Atomic replacement still keeps a write from going through a hard-link alias.
|
|
39
|
+
- A real Windows sandbox (restricted token and ACLs through a native helper) would let Windows use
|
|
40
|
+
the macOS/Linux rules again. It is not built.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0043
|
|
3
|
+
title: A parent continues its stopped subagents; the monitor shows the main agent and survives reopening
|
|
4
|
+
status: Accepted
|
|
5
|
+
created: 2026-10-27
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# ADR-0043: A parent continues its stopped subagents
|
|
9
|
+
|
|
10
|
+
## Decision
|
|
11
|
+
|
|
12
|
+
- `spawn_subagent { continue: <runId> }` (and `subagents.spawn { continue }`) continues a child that
|
|
13
|
+
stopped before finishing (`interrupted` or `failed`, with saved history). It is a new child run
|
|
14
|
+
with `continueFrom`. It reopens the first link's history folder
|
|
15
|
+
(`<parent sessionDir>/subagents/<first child run id>`) and keeps the earlier child's session id,
|
|
16
|
+
profile, title, goal, account, variant version and frozen capability set. That set must still lie
|
|
17
|
+
within the parent's ceiling; `agent` and `tools` are refused with `continue`. The id may name any
|
|
18
|
+
link of a chain: the newest link is the one continued, and an active or completed newest link is
|
|
19
|
+
refused.
|
|
20
|
+
- The model decides. A subagent never continues itself, and a restarted harness never restarts
|
|
21
|
+
model work (INV-RUN-4). Children an earlier reply left stopped are delivered **before** the next
|
|
22
|
+
reply's first request: a hidden `xingular-subagent-results` message with a receipt, which says
|
|
23
|
+
each child can be continued. A stopped child that has a continuation is reported through that
|
|
24
|
+
continuation instead.
|
|
25
|
+
- Recovery of an earlier parent's children is keyed on the native history branch: the owner
|
|
26
|
+
marker, the same native history id, account, agent, project and working folder. The Harness
|
|
27
|
+
session id is not compared, because a host may give each launch of one conversation a new one.
|
|
28
|
+
- `main` is a reserved profile name. The terminal monitor projects the parent run itself as a
|
|
29
|
+
`main` row: account, model, effort, usage, activity and todo counts, like a child. The
|
|
30
|
+
`/subagents` page shows it pinned first; the rows under the status line omit it.
|
|
31
|
+
- The terminal marks every turn's run on the branch (`xingular-subagent-owner`). When a
|
|
32
|
+
conversation opens with no run active, it rebuilds the monitor from the branch's latest parent
|
|
33
|
+
run in that folder and its descendants, by folding their saved events. The rows keep their final
|
|
34
|
+
status until the next run begins.
|
|
35
|
+
- Run records carry the launch `model` and `effort` (the opened session's model supersedes the
|
|
36
|
+
selection), so a rebuilt row can show them.
|
|
37
|
+
|
|
38
|
+
## Rationale
|
|
39
|
+
|
|
40
|
+
Esc on a parent interrupts every child, and until now the next turn was told to start them again.
|
|
41
|
+
That lost work that was saved on disk. Reopening a child's own history keeps every pin a run
|
|
42
|
+
already has, so no capability or account can change, and leaving the choice to the model keeps
|
|
43
|
+
INV-RUN-4.
|
|
44
|
+
|
|
45
|
+
## Consequences
|
|
46
|
+
|
|
47
|
+
The monitor stays a private, read-only terminal projection; no event or public method is added.
|
|
48
|
+
Records written before this change have no `model` or `effort`, and their rebuilt rows show `—`.
|
|
49
|
+
A person cannot continue a child from the page directly; they ask the parent.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0044
|
|
3
|
+
title: An annotation is pending or sent; the agent's page-note tools are read-only
|
|
4
|
+
status: Accepted
|
|
5
|
+
created: 2026-10-27
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# ADR-0044: An annotation is pending or sent
|
|
9
|
+
|
|
10
|
+
## Decision
|
|
11
|
+
|
|
12
|
+
- Every annotation a person makes in the inspector with a session is shared with that session at
|
|
13
|
+
once and is **pending** until sent. There is no queue to add to or take out of, and no "fixed"
|
|
14
|
+
state. Records written before keep working: `queued` reads as `pending`, `fixed` as `sent`.
|
|
15
|
+
- The popover has two actions, Annotate and Annotate & send. A send sends every pending note of
|
|
16
|
+
the session as one message, optionally followed by the person's request (`/annotate:submit`).
|
|
17
|
+
- `page_notes_mark_fixed` is removed. The agent reads annotations; only the person resolves them.
|
|
18
|
+
- A held-back send is retried while the session is still busy after a run ends.
|
|
19
|
+
- Built-in plugin commands may be `rootOnly`, so a namespace root is not listed twice.
|
|
20
|
+
|
|
21
|
+
## Why
|
|
22
|
+
|
|
23
|
+
People found three actions, a queue and a fix status too much to control, and the extra state is
|
|
24
|
+
what made sends fail silently. See [PROP-0048](../architecture/proposals/PROP-0048-simple-annotate.md).
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# ADR-0045: Release-owned plugin-authoring skill
|
|
2
|
+
|
|
3
|
+
## Decision
|
|
4
|
+
|
|
5
|
+
Ship plugin-authoring guidance as an on-demand Harness resource, selected for both structured and terminal sessions without changing variant versions. A pinned variant's skill of the same name takes precedence. The release supplies the resource in the package; the normal skill loader and Pi resource loader expose it. The guidance grants no trust or permissions.
|
|
6
|
+
|
|
7
|
+
## Consequences
|
|
8
|
+
|
|
9
|
+
Existing variants receive the guidance without migration. Its release-owned content can change with the installed Harness version rather than with a variant fingerprint. Only its name and description are advertised until requested; the body does not enter the always-on variant text. Proposal creation and hash-bound review are separate from the skill and are recorded in [ADR-0046](ADR-0046-hash-bound-plugin-proposals.md).
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# ADR-0046: Hash-bound plugin proposal review
|
|
2
|
+
|
|
3
|
+
## Decision
|
|
4
|
+
|
|
5
|
+
Keep model-authored plugin proposals as inert, bounded text in the data root. The model may create
|
|
6
|
+
one through the gated `plugin_propose` tool; only a trusted caller may accept or reject it. Both
|
|
7
|
+
decisions require the hash of the current revalidated preview. The hash binds the name, description,
|
|
8
|
+
generated manifest and sorted file contents, not a person's identity or an authorization grant.
|
|
9
|
+
Acceptance publishes a new package switched off, does not run its code or grant trust, and refuses
|
|
10
|
+
an existing package name or identical already-trusted package code. Normal attachment, code trust,
|
|
11
|
+
capability and approval checks remain separate.
|
|
12
|
+
|
|
13
|
+
## Consequences
|
|
14
|
+
|
|
15
|
+
Reviewers can inspect exactly the content a decision names, and stale or already-decided reviews
|
|
16
|
+
are refused. Text can itself contain hostile instructions and may load when enabled without code
|
|
17
|
+
trust; review must cover every contribution. Proposal records, including rejected ones, remain in
|
|
18
|
+
the data root; device-local code trust remains in the state directory. This decision does not claim
|
|
19
|
+
that a terminal or host review UI exists. See [06 Plugins and capabilities](../architecture/06-plugins-and-capabilities.md),
|
|
20
|
+
[10 Server protocol](../architecture/10-server-protocol.md), and [PAR-017](../parity.md#gaps).
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0047
|
|
3
|
+
title: A link a person clicks opens with the system's own handler, through one allowlist
|
|
4
|
+
status: Accepted
|
|
5
|
+
created: 2026-11-20
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# ADR-0047: A link a person clicks opens with the system's own handler
|
|
9
|
+
|
|
10
|
+
## Decision
|
|
11
|
+
|
|
12
|
+
- `core/links.ts` holds the one link policy: `linkTarget` classifies a target without touching the
|
|
13
|
+
filesystem (`http`/`https`, `mailto`, `file`, an absolute path, or a relative path under a
|
|
14
|
+
supplied base), and `openableTarget` checks what a path names before anything is launched.
|
|
15
|
+
- A path may be opened only when it is a regular file or a directory, is not an application bundle
|
|
16
|
+
or an installer, is not a launchable script kind (`.command`, `.sh`, `.bat`, `.pkg`, `.dmg`,
|
|
17
|
+
`.app`, …), and has no executable bit set. The last two matter because `xdg-open` runs an
|
|
18
|
+
executable file and `open` launches a bundle.
|
|
19
|
+
- The address reaches `open` (macOS), `xdg-open` (Linux and the BSDs) or `rundll32.exe
|
|
20
|
+
url.dll,FileProtocolHandler` (Windows) as one argument, never through a shell.
|
|
21
|
+
- `links.open` is a server method, so a host presents the same capability, and the terminal is the
|
|
22
|
+
reference surface: hovering a link recolours it, and the gesture the platform uses opens it —
|
|
23
|
+
Ctrl+click where a terminal reports the modifier, and the primary click on macOS, whose ⌘ the
|
|
24
|
+
terminal mouse protocol cannot carry. The opener is `HarnessOptions.linkOpener`, so a host with
|
|
25
|
+
its own native opener replaces the spawn and keeps the policy.
|
|
26
|
+
- A link is a person's action. Nothing here is in `HARNESS_TOOLS`, so the gate, standing approvals
|
|
27
|
+
and redaction are not involved, exactly as with `variants.save`.
|
|
28
|
+
- Both front ends show the hover state: the terminal repaints the hovered link's spans in
|
|
29
|
+
`theme.linkHover`, and the App uses the shared `--link-hover` token on `a:hover`. The App's
|
|
30
|
+
modifier is the platform's own: ⌘ on macOS, Ctrl elsewhere.
|
|
31
|
+
|
|
32
|
+
## Rationale
|
|
33
|
+
|
|
34
|
+
The terminal opened web links only, and the App opened web pages and stored documents in its
|
|
35
|
+
sidebar while silently swallowing everything else — `mailto:`, folders, relative paths and unknown
|
|
36
|
+
kinds. The allowlist existed three times (a terminal module, the App's TypeScript, and the App's
|
|
37
|
+
Rust), which is the drift the parity rules exist to prevent. One policy in the Harness, used by
|
|
38
|
+
both surfaces, is the smallest thing that makes a link behave the same everywhere.
|
|
39
|
+
|
|
40
|
+
## Consequences
|
|
41
|
+
|
|
42
|
+
A refused link is reported, never ignored: the terminal posts a notice and the App reports an
|
|
43
|
+
error. Opening a document still hands its bytes to whichever application the system has associated
|
|
44
|
+
with that kind, which is inherent to the request; the deny list and the executable-bit check are
|
|
45
|
+
the boundary, not a sandbox. A host that wants different kinds to open replaces `linkOpener`, and
|
|
46
|
+
an architecture change would be needed to let a model open a link on its own, because that would
|
|
47
|
+
put an operating-system action inside the gate's reach.
|