@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,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: PROP-0006
|
|
3
|
+
title: A run checklist the model writes, recorded as a run event
|
|
4
|
+
status: Implemented
|
|
5
|
+
created: 2026-10-22
|
|
6
|
+
updated: 2026-10-24
|
|
7
|
+
affects: [02-sessions-and-runs.md, 06-plugins-and-capabilities.md, 07-tools-and-gate.md, 10-server-protocol.md]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# PROP-0006: A run checklist the model writes, recorded as a run event
|
|
11
|
+
|
|
12
|
+
> Renamed to todo by [PROP-0045](PROP-0045-rename-checklist-to-todo.md). The names below are historical.
|
|
13
|
+
|
|
14
|
+
## Problem
|
|
15
|
+
|
|
16
|
+
A run has no structured record of progress. `goal` on a run is opaque text, and plan mode ends
|
|
17
|
+
with a `<proposed_plan>` block that lives only in message text (`sessions/planMode.ts`). An
|
|
18
|
+
application that wants to show "step 3 of 5", and a later run that wants to pick up where an
|
|
19
|
+
earlier one stopped, can only read prose. Every studied peer with long work has a model-written
|
|
20
|
+
list for this: deepseek-harness `todo_write` (whole-list replace, three statuses, a log-only
|
|
21
|
+
session event, replay projection), OpenCode `todowrite`, and Claude Code's descendant of it.
|
|
22
|
+
Gap #2 of `docs/study/feature-gap-review.md`.
|
|
23
|
+
|
|
24
|
+
## Affected rules
|
|
25
|
+
|
|
26
|
+
- 02 Contracts, the run-event list (`runEventTypeSchema`).
|
|
27
|
+
- 07 The list of harness tools ("Harness tools: `history_search`, … `ask_user`").
|
|
28
|
+
- 06 `HARNESS_PLUGINS` ("`pi`, `harness`, `subagents`, `wiki`, `history`, `ask-user`, `connected-apps`").
|
|
29
|
+
- INV-PLG-5: anything the model can see is declared by a plugin.
|
|
30
|
+
- INV-BND-2: no application concept — the tool is named "checklist", not "task" or "todo list
|
|
31
|
+
of tasks".
|
|
32
|
+
|
|
33
|
+
## Proposal
|
|
34
|
+
|
|
35
|
+
- New run event `checklist.updated`, payload `{ items: { text, status }[] }`, `status` one of
|
|
36
|
+
`pending`, `in_progress`, `completed`; at most 50 items of 1–500 characters. The latest event is
|
|
37
|
+
the whole checklist (last write wins); items have no ids.
|
|
38
|
+
- New harness tool `checklist_write` (`tools/checklist.ts`), given with `ask_user` whenever
|
|
39
|
+
`harnessTools` is not `false`. It emits through the live run, so the event is validated,
|
|
40
|
+
persisted and then relayed (INV-RUN-3). It is `readOnly` for the gate: it changes only the
|
|
41
|
+
run's own record, so plan mode allows it. Its description carries the usage rules (three or
|
|
42
|
+
more steps, exactly one `in_progress`, complete immediately), following "tool interfaces are
|
|
43
|
+
where public instruction lives" (study insight 4).
|
|
44
|
+
- New built-in plugin `checklist` declares the tool.
|
|
45
|
+
- `checklistOf(events)` projects the latest list; the server exposes it as `runs.checklist`.
|
|
46
|
+
- Terminal sessions do not get the tool yet. (Update 2026-10-24: they do now; the terminal
|
|
47
|
+
extension registers the same tool, records it through `checklist` telemetry and renders each
|
|
48
|
+
write as a checklist block. See `docs/parity.md` PAR-001.)
|
|
49
|
+
|
|
50
|
+
## Alternatives
|
|
51
|
+
|
|
52
|
+
- **A side file `runs/<id>/checklist.json`.** A new writer under `runs/<id>/` (INV-RUN-6) and a
|
|
53
|
+
second source of truth beside the events. Rejected; the event log already replays.
|
|
54
|
+
- **Parse `<proposed_plan>`.** Only plan mode produces it, and it carries no status.
|
|
55
|
+
- **Leave it to the application as a tool provider.** Every application would rebuild the same
|
|
56
|
+
generic tool, and continuation (PROP-0007) could not read it. Do nothing was rejected for the
|
|
57
|
+
same reason.
|
|
58
|
+
|
|
59
|
+
## Consequences
|
|
60
|
+
|
|
61
|
+
- Applications see one more event kind; hosts that validate event types must accept it.
|
|
62
|
+
- One more tool in every session's default list, after `ask_user`.
|
|
63
|
+
|
|
64
|
+
## Migration
|
|
65
|
+
|
|
66
|
+
None: old runs have no `checklist.updated` events and read as an empty list. Removing the tool
|
|
67
|
+
later leaves old events readable.
|
|
68
|
+
|
|
69
|
+
## Checks
|
|
70
|
+
|
|
71
|
+
`tools/checklist.test.ts`, `sessions/sessions.test.ts` (default list, plan mode, `harnessTools:
|
|
72
|
+
false`), `plugins/catalogue.test.ts`, `server/server.test.ts` (`runs.checklist`).
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: PROP-0007
|
|
3
|
+
title: Continue a stopped run as a new run with the same pins
|
|
4
|
+
status: Implemented
|
|
5
|
+
created: 2026-10-22
|
|
6
|
+
updated: 2026-10-22
|
|
7
|
+
affects: [INV-RUN-4, INV-RUN-10, 00-overview.md, 02-sessions-and-runs.md, 10-server-protocol.md]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# PROP-0007: Continue a stopped run as a new run with the same pins
|
|
11
|
+
|
|
12
|
+
## Problem
|
|
13
|
+
|
|
14
|
+
When the process stops mid-run, `open` marks the run `interrupted` (`markInterruptedRuns`) and
|
|
15
|
+
reports only a count. An application that wants to carry on has to:
|
|
16
|
+
|
|
17
|
+
- find the interrupted runs itself;
|
|
18
|
+
- locate the native history and pass `resume { sessionFile, nativeSessionId }`;
|
|
19
|
+
- remember the account, tree version and capability set the run had, or risk running on a
|
|
20
|
+
different one (INV-RUN-1 is per run, not per continuation);
|
|
21
|
+
- and the model is told nothing: it does not know it was cut off, which tool call may have half
|
|
22
|
+
happened, or which approval was never answered.
|
|
23
|
+
|
|
24
|
+
Gap #4 of `docs/study/feature-gap-review.md`. Every studied peer keeps the same rule as this
|
|
25
|
+
harness — a restart never silently restarts model work — and puts continuation on a durable log
|
|
26
|
+
plus an explicit request (deepseek-harness's session log and checkpoints, OpenHands' requeue in its
|
|
27
|
+
automation layer).
|
|
28
|
+
|
|
29
|
+
## Affected rules
|
|
30
|
+
|
|
31
|
+
- **INV-RUN-4** "A restarted harness never restarts model work. On `open`, runs left active are
|
|
32
|
+
marked `interrupted` unless another live process owns them (`owner.json`). Recovery of a
|
|
33
|
+
subagent needs the same account, caller, working folder and history branch."
|
|
34
|
+
- **INV-RUN-10** lists the runs that may not carry an initial Bash command.
|
|
35
|
+
- 02 Contracts; 10 `runs.*`, `sessions.run`; 00 lifecycle step 2 (`Recovery`).
|
|
36
|
+
|
|
37
|
+
## Proposal
|
|
38
|
+
|
|
39
|
+
- INV-RUN-4 keeps its first sentence and gains: continuing is always a new run the application
|
|
40
|
+
asks for with `continueFrom`; it pins the earlier run's account, tree version and capability
|
|
41
|
+
set, and the earlier run's record is never reopened.
|
|
42
|
+
- `Recovery.interruptedRunIds: string[]` beside the existing count.
|
|
43
|
+
- `continuationOf(root, runId, sessionDir?)` → `Continuation` (`sessions/continuation.ts`), served
|
|
44
|
+
as `runs.continuation`. It is a projection of what is already stored: `run.json`,
|
|
45
|
+
`events.jsonl` (checklist from PROP-0006, pending decisions, last tool), `capabilities.json`,
|
|
46
|
+
`subagents.json`, and the native history in `sessionDir`. No new file is written.
|
|
47
|
+
- `SessionRunInput.continueFrom` (run id): the run is refused with `continuation_unavailable` when
|
|
48
|
+
the earlier run cannot be continued, and with `continuation_mismatch` when the caller names a
|
|
49
|
+
different session, history, account or tree. Otherwise the input is filled from the earlier
|
|
50
|
+
run and a dynamic `continuation` section (order 26, budget 2000) tells the model where it
|
|
51
|
+
stopped, what its checklist was, which tool call's effect is unknown, and what to ask again.
|
|
52
|
+
It is a context update, never the stable prefix (INV-PRM-2), and is withdrawn on the next run.
|
|
53
|
+
- INV-RUN-10 adds "continuing" to the runs that may not carry an initial Bash command.
|
|
54
|
+
|
|
55
|
+
No application concept is named. The requeue policy — which interrupted runs to continue, when,
|
|
56
|
+
and whether to ask a person — stays with the application.
|
|
57
|
+
|
|
58
|
+
## Alternatives
|
|
59
|
+
|
|
60
|
+
- **Restart interrupted runs on `open`.** Breaks INV-RUN-4, spends tokens nobody asked for, and
|
|
61
|
+
repeats side effects. Rejected.
|
|
62
|
+
- **Record the history file path in `run.json`.** Would remove the `sessionDir` argument, but
|
|
63
|
+
changes the stored record; the caller already owns and passes `sessionDir`.
|
|
64
|
+
- **Do nothing.** Each application re-derives the pins, and the model resumes blind.
|
|
65
|
+
|
|
66
|
+
## Consequences
|
|
67
|
+
|
|
68
|
+
- Hosts see one more `Recovery` field, one more method, one more `sessions.run` input and two new
|
|
69
|
+
error codes.
|
|
70
|
+
- A continued run is an ordinary run with `resumedFromRunId` set.
|
|
71
|
+
|
|
72
|
+
## Migration
|
|
73
|
+
|
|
74
|
+
None. Runs interrupted before this change can be continued too: everything is derived from what
|
|
75
|
+
was already stored.
|
|
76
|
+
|
|
77
|
+
## Checks
|
|
78
|
+
|
|
79
|
+
`sessions/sessions.test.ts` ("continuing a run that stopped"), `sessions/runStore.test.ts` (ids
|
|
80
|
+
returned), `server/server.test.ts` (`runs.continuation`), `npm run prove` (startup changed).
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: PROP-0008
|
|
3
|
+
title: Opt-in lessons from finished runs, kept in the Wiki
|
|
4
|
+
status: Implemented
|
|
5
|
+
created: 2026-10-22
|
|
6
|
+
updated: 2026-10-22
|
|
7
|
+
affects: [INV-MEM-2, 02-sessions-and-runs.md, 06-plugins-and-capabilities.md, 08-memory-and-history.md, 12-storage.md, ADR-0010]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# PROP-0008: Opt-in lessons from finished runs, kept in the Wiki
|
|
11
|
+
|
|
12
|
+
## Problem
|
|
13
|
+
|
|
14
|
+
The harness learns from evidence only inside refinement: the experience library holds a cue and
|
|
15
|
+
a lesson per adopted tree, written by a reflector that never sees an answer (page 05). Ordinary
|
|
16
|
+
runs teach nothing to later ones unless an agent with `wiki_write` decides to write a note. Gap
|
|
17
|
+
#5 of `docs/study/feature-gap-review.md`: OMP runs background extraction and consolidation into
|
|
18
|
+
`MEMORY.md` and lessons (capped at about 100 × 2,000 characters); harness² keeps lessons with a
|
|
19
|
+
strict shape (cue = shape of situation, lesson = checkable operation, `NO_ENTRY` when the record
|
|
20
|
+
shows no contrast, never task facts). Nothing in the Wiki is written in the background today.
|
|
21
|
+
|
|
22
|
+
## Affected rules
|
|
23
|
+
|
|
24
|
+
- **INV-MEM-2** "The harness is the only writer of the Wiki and of run records. An application
|
|
25
|
+
reads them and writes notes only through harness methods (`wiki.*`)." It does not name the
|
|
26
|
+
writers inside the harness; this adds one.
|
|
27
|
+
- **INV-MEM-1** (unchanged, relied on): the Wiki is reference material, not instructions.
|
|
28
|
+
- **INV-TREE-1** (unchanged, relied on): only the tree shapes an agent.
|
|
29
|
+
- **INV-REF-1, INV-REF-4, INV-REF-5** (unchanged, borrowed): answer-free evidence, never acting in
|
|
30
|
+
the world, file tools only on a copy of the evidence.
|
|
31
|
+
- 02 triggers the harness reads; 06 first-party plugins; 12 the data layout.
|
|
32
|
+
|
|
33
|
+
## Proposal
|
|
34
|
+
|
|
35
|
+
- A first-party plugin `lessons`, off by default, with settings `minToolCalls` (4), `maxLessons`
|
|
36
|
+
(100) and `maxChars` (2,000). It loads no Pi code; its contribution in a run's frozen
|
|
37
|
+
capability set is what switches reflection on for that run.
|
|
38
|
+
- `Lessons` (`history/lessons.ts`) listens to the harness's own run listener. A completed,
|
|
39
|
+
top-level run that is not a `probe`, `improver` or `reflection` run is queued; one reflection
|
|
40
|
+
runs at a time; the queue is in memory only.
|
|
41
|
+
- The reflection is a `PiImprover` session with trigger `reflection`, read-only file tools, the
|
|
42
|
+
finished run's account and model, and medium effort. The gate refuses whatever would need a
|
|
43
|
+
person in a `reflection` run, as it does for refinement.
|
|
44
|
+
- The reply is parsed with refinement's `parseExperience`. A lesson is kept as
|
|
45
|
+
`wiki/library/lessons/<slug>.md` through `notes.write` (actor `reflection`), so it is versioned
|
|
46
|
+
and announced like any other note (INV-MEM-3, INV-MEM-4). `SAME <path>` adds a source run to an
|
|
47
|
+
existing lesson instead of a duplicate. At the cap nothing is written and nothing is evicted.
|
|
48
|
+
- The dynamic `wiki` pointer says how many lessons exist, so agents know to search them.
|
|
49
|
+
- INV-MEM-2 gains: "Inside the harness, the Wiki is written by `wiki_write`, by `wiki.*` methods,
|
|
50
|
+
and by `Lessons` (actor `reflection`, only under `library/lessons/`, only while the `lessons`
|
|
51
|
+
plugin is on for the run's caller)."
|
|
52
|
+
|
|
53
|
+
## Alternatives
|
|
54
|
+
|
|
55
|
+
- **Write lessons into the refinement library.** That library is keyed by tree scope and task
|
|
56
|
+
area and stores whole trees (INV-REF-7); an ordinary run has neither a candidate tree nor an
|
|
57
|
+
area. Rejected.
|
|
58
|
+
- **Write lessons into the tree's c3 memory.** Would change instructions without `adopt`
|
|
59
|
+
(INV-REF-6, INV-TREE-1). Rejected.
|
|
60
|
+
- **A plugin hook (`history.run.ended`).** Hooks are told, never asked, and cannot run a model
|
|
61
|
+
(INV-PLG-7). Rejected.
|
|
62
|
+
- **On by default.** Spends tokens after every run. The user chose opt-in.
|
|
63
|
+
- **Do nothing.** Leaves gap #5 to each application.
|
|
64
|
+
|
|
65
|
+
## Consequences
|
|
66
|
+
|
|
67
|
+
- Hosts see reflection runs (trigger `reflection`) in run lists and recall, like improver runs.
|
|
68
|
+
- When switched on, each qualifying run costs one extra short model session on its own account.
|
|
69
|
+
- A new folder `<data root>/reflection/` holds reflection sessions' native history and replies.
|
|
70
|
+
|
|
71
|
+
## Migration
|
|
72
|
+
|
|
73
|
+
None. Switching the plugin off stops new reflections; kept lessons stay as ordinary notes that a
|
|
74
|
+
person may edit or remove.
|
|
75
|
+
|
|
76
|
+
## Checks
|
|
77
|
+
|
|
78
|
+
`history/lessons.test.ts` (filters, `NO_ENTRY`, `SAME`, caps, credential and length refusals,
|
|
79
|
+
queue and close), `prompt/compile.test.ts` (pointer), `plugins/catalogue.test.ts`,
|
|
80
|
+
`terminal/pluginControl.test.ts`. No test makes a model request (INV-BND-6).
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: PROP-0009
|
|
3
|
+
title: Name the fixed half the foundation and the mutating half the variant
|
|
4
|
+
status: Accepted
|
|
5
|
+
created: 2026-10-22
|
|
6
|
+
updated: 2026-10-22
|
|
7
|
+
affects: [INV-TREE-1..7 (renamed INV-VAR-1..7), INV-BND-4, 00-overview.md, 03-variants.md, 05-refinement.md, 10-server-protocol.md, 12-storage.md, ADR-0011]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# PROP-0009: Name the fixed half the foundation and the mutating half the variant
|
|
11
|
+
|
|
12
|
+
Accepted by the user's request (2026-10-22): document the harness so that the part that is fixed
|
|
13
|
+
is called the **foundation** and the part that mutates is called a **variant**, in code, storage
|
|
14
|
+
and protocol as well as in prose.
|
|
15
|
+
|
|
16
|
+
## Problem
|
|
17
|
+
"Harness" meant two things: the package, and the editable "harness tree" that refinement
|
|
18
|
+
improves. A sentence such as "refinement changes the harness" did not say whether the compiler and
|
|
19
|
+
the gate could move. The answer is no, but nothing in the spec said so as a rule, and code, data
|
|
20
|
+
folders and server methods all carried the ambiguous word (`harnesses/`, `harnesses.*`,
|
|
21
|
+
`HarnessChoice`, `harnessScope`).
|
|
22
|
+
|
|
23
|
+
## Affected rules
|
|
24
|
+
- `INV-TREE-1`…`INV-TREE-7` (page 03): renamed `INV-VAR-1`…`INV-VAR-7`; meaning unchanged.
|
|
25
|
+
- `INV-BND-4`: "Trees, the prompt compiler and Wiki notes are synchronous" now says variants.
|
|
26
|
+
- New `INV-FND-1` and `INV-FND-2` (below).
|
|
27
|
+
- The server method group `harnesses.*` (page 10) and the data layout (page 12).
|
|
28
|
+
|
|
29
|
+
## Proposal
|
|
30
|
+
1. **Vocabulary.** *Foundation*: the fixed half (Pi hookup, compiler, sessions and the run
|
|
31
|
+
recorder, gate, accounts, trust, the surface and validator, the refinement method, the extension
|
|
32
|
+
points, the protocol). *Variant*: one tree of eight components (c1–c8) for one scope. *Head*,
|
|
33
|
+
*version*, *lineage*, *candidate* and *adopt* keep their meaning and now qualify a variant. The
|
|
34
|
+
glossary is in the spec index.
|
|
35
|
+
2. **New invariants.**
|
|
36
|
+
- `INV-FND-1` Only a variant mutates. No edit, improver session or adoption changes foundation
|
|
37
|
+
code, the surface, the validator or an invariant.
|
|
38
|
+
- `INV-FND-2` A variant changes only by committing a new validated version; refinement moves a
|
|
39
|
+
head only when a person adopts. There is no other door.
|
|
40
|
+
3. **Code.** `src/tree/` becomes `src/variant/`. `Tree`→`Variant`, `HarnessChoice`→`VariantChoice`,
|
|
41
|
+
`TreeTrust`→`VariantTrust`, `readTree`/`writeTree`→`readVariant`/`writeVariant`,
|
|
42
|
+
`seedTree`→`seedVariant`, `RunRecord.harnessScope|harnessVersion`→`variantScope|variantVersion`,
|
|
43
|
+
`Materialised.tree`→`Materialised.files`, the `sessions.run` input `harness`→`variant`,
|
|
44
|
+
`ContextPack.harness`→`variant`, source kind `harness`→`variant`, the built-in plugin `harness`
|
|
45
|
+
(title Harness)→`variant` (title Variant), error code `harness_invalid`→`variant_invalid`.
|
|
46
|
+
Unchanged: `RunRecord.harness` (the engine name, `pi`), `PI_SURFACE`, `SurfaceSpec`, the `harness.*`
|
|
47
|
+
server group (status and methods of the whole harness), and the Pi session-tree UI names
|
|
48
|
+
(`SessionTreeNode`, `navigateTree`, `/tree`).
|
|
49
|
+
4. **Storage.** `harnesses/<scope>/`→`variants/<scope>/`, `versions/<fp>/tree/`→`…/variant/`,
|
|
50
|
+
`tree-plugin-trust.json`→`variant-plugin-trust.json`, library `harnesses/<task>/harness/`→
|
|
51
|
+
`variants/<task>/variant/`, refinement `refine/<id>/harnesses/`→`variants/`.
|
|
52
|
+
5. **Protocol.** `harnesses.*`→`variants.*`, notice `harnesses.changed`→`variants.changed`, the
|
|
53
|
+
`harness` parameter of `sessions.run`, `context.compile`, `plugins.inventory`→`variant`, the
|
|
54
|
+
`tree` parameter and field of the former `harnesses.*` methods→`variant`, `treeDir`→`variantDir`.
|
|
55
|
+
6. **Deliberate exception.** The improver prompts and the evidence folder's `harness/`,
|
|
56
|
+
`base_harness/` names keep the Harness² paper's wording. They are method text; changing them
|
|
57
|
+
would change refinement and its tests (`INV-REF-3`).
|
|
58
|
+
|
|
59
|
+
## Alternatives
|
|
60
|
+
- *Docs only, keep the names.* Cheaper, but the ambiguity stays in every API a host reads.
|
|
61
|
+
- *Rename components, not the tree.* Versions and adoption always act on a whole tree, so a
|
|
62
|
+
component-level "variant" would not match how the system works.
|
|
63
|
+
- *Do nothing.*
|
|
64
|
+
|
|
65
|
+
## Consequences
|
|
66
|
+
Breaking for hosts: package version 5.0.0. Hosts must call `variants.*`, pass `variant` instead of
|
|
67
|
+
`harness`, read `variantScope`/`variantVersion`, and use plugin id `variant`. No aliases are kept.
|
|
68
|
+
Stored data moves on `open` (below); the prompt text and its stable prefix do not change.
|
|
69
|
+
|
|
70
|
+
## Migration
|
|
71
|
+
`open()` runs `migrateVariantLayout` (idempotent; never overwrites) and the trust file moves when
|
|
72
|
+
`VariantTrust` is created. Run records written with `harnessScope`/`harnessVersion` still load
|
|
73
|
+
(`upgradeRunRecord`). Finished refinement records under `harnesses/` stay readable and adoptable.
|
|
74
|
+
To undo, rename the folders back and use the previous release.
|
|
75
|
+
|
|
76
|
+
## Checks
|
|
77
|
+
`npm run typecheck`, `npm test` (including `variant/migrate.test.ts`), `npm run prove`, the demo
|
|
78
|
+
refinement, and the App's and Evaluation's checks after they adopt the new names.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: PROP-0010
|
|
3
|
+
title: Agent-managed native session names
|
|
4
|
+
status: Implemented
|
|
5
|
+
created: 2026-10-22
|
|
6
|
+
updated: 2026-10-22
|
|
7
|
+
affects: [02-sessions-and-runs.md, 04-prompt.md, 07-tools-and-gate.md, 11-terminal.md]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# PROP-0010: Agent-managed native session names
|
|
11
|
+
|
|
12
|
+
## Problem
|
|
13
|
+
Agents cannot currently name their sessions. Pi already stores a native session name,
|
|
14
|
+
and the terminal exposes manual `/name`, but the working line does not show the name.
|
|
15
|
+
|
|
16
|
+
## Affected rules
|
|
17
|
+
INV-PRM-2: "Changing state never enters" the stable system prompt.
|
|
18
|
+
INV-GATE-1: "Every tool call of every run passes the gate."
|
|
19
|
+
INV-TUI-2: "Pi owns the execution runtime, native history and rich content components."
|
|
20
|
+
The tool inventory and plan-safe metadata operations gain `session_name`.
|
|
21
|
+
|
|
22
|
+
## Proposal
|
|
23
|
+
Provide `session_name({ name: string })` in terminal and embedded Harness sessions,
|
|
24
|
+
subject to capabilities and the normal gate. Name meaningful work early; revise when its
|
|
25
|
+
overall objective changes, including a manually assigned name. Greetings need no name.
|
|
26
|
+
Agent names are short imperative sentences, at most six whitespace-separated words.
|
|
27
|
+
Normalize whitespace; reject blank names, non-whitespace control characters and terminal
|
|
28
|
+
escapes, or more than six words. Identical names do not append another history entry.
|
|
29
|
+
Plan mode permits naming as session metadata maintenance. Disabled Harness tools and host
|
|
30
|
+
restrictions continue to apply. Each session, including a child, names only itself.
|
|
31
|
+
Pi's native session-info entries are the sole persistence mechanism. No separate model
|
|
32
|
+
request, new run-event schema, or new host RPC is introduced. The terminal renders
|
|
33
|
+
` – <name>` after metrics on the active and retained completion line, outside the verb's
|
|
34
|
+
shimmer, and truncates at the terminal edge. Current names never enter the stable prompt.
|
|
35
|
+
|
|
36
|
+
## Alternatives
|
|
37
|
+
Do nothing leaves sessions unnamed. A separate title-generation model request adds latency
|
|
38
|
+
and token cost. A Harness side file duplicates Pi's existing authoritative metadata.
|
|
39
|
+
|
|
40
|
+
## Consequences
|
|
41
|
+
The foundation gains a tool and stable naming guidance. Manual names remain unrestricted;
|
|
42
|
+
agent-submitted names follow the six-word limit. Model compliance determines whether and
|
|
43
|
+
when the tool is called. An embedding host need not change its UI or protocol.
|
|
44
|
+
|
|
45
|
+
## Migration
|
|
46
|
+
None. Existing native histories and manual names remain valid; names survive reopen and
|
|
47
|
+
continuation through Pi. Removing the tool leaves stored names readable.
|
|
48
|
+
|
|
49
|
+
## Checks
|
|
50
|
+
Unit and integration tests cover validation, both execution paths, policy, capability and
|
|
51
|
+
plan handling, persistence, isolation and working-line rendering. Run Harness typecheck,
|
|
52
|
+
tests and standalone proof, plus the App compatibility checks.
|
|
53
|
+
|
|
54
|
+
## Review
|
|
55
|
+
The user selected all Harness sessions, agent revisions of manual names, and early naming
|
|
56
|
+
with objective-change revisions, then approved implementation of the presented plan.
|
|
57
|
+
|
|
58
|
+
## Implementation and verification
|
|
59
|
+
Implemented in the working tree; see
|
|
60
|
+
[ADR-0012](../../decisions/ADR-0012-native-session-names.md).
|
|
61
|
+
|
|
62
|
+
- Harness full suite: 825 passed, 3 skipped; subsequent affected suites passed after the
|
|
63
|
+
final prompt-availability and narrow-line corrections (151 passed, 2 skipped; then 36
|
|
64
|
+
display/application tests passed). Harness typecheck and the final bundle build passed.
|
|
65
|
+
- Standalone startup proof passed. A real Pi SDK / OpenTUI PTY against a loopback provider
|
|
66
|
+
completed two naming calls at both 80 and 40 columns. Screen parsing verified the full
|
|
67
|
+
name at 80 columns and right-side name truncation with intact metrics at 40 columns.
|
|
68
|
+
Fixtures used disposable account/history folders and no external model or user credentials.
|
|
69
|
+
- App typecheck, UI check, and Rust tests passed (240 passed, 1 ignored). App frontend tests
|
|
70
|
+
reported unrelated guide-link/heading failures and a streaming performance threshold.
|
|
71
|
+
The sidecar suite reported existing tree-to-variant API/import mismatches; layer checks
|
|
72
|
+
reported browser/doctor tool-name violations. These checks are not an all-clear for the
|
|
73
|
+
App workspace, and no App source was changed for this feature.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: PROP-0011
|
|
3
|
+
title: Readiness diagnostics and explicit live probes
|
|
4
|
+
status: Accepted
|
|
5
|
+
created: 2026-10-22
|
|
6
|
+
updated: 2026-10-22
|
|
7
|
+
affects: [INV-EXT-1, INV-EXT-4, INV-GATE-1, INV-TUI-4, 01-extension-points.md, 07-tools-and-gate.md, 09-accounts-and-connectors.md, 10-server-protocol.md, 11-terminal.md]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# PROP-0011: Readiness diagnostics and explicit live probes
|
|
11
|
+
|
|
12
|
+
## Problem
|
|
13
|
+
Account status and tool registration do not establish that the selected model or backend works.
|
|
14
|
+
The user approved the `/doctor` implementation plan on 2026-10-22: full readiness coverage,
|
|
15
|
+
terminal plus reusable API, offline inspection by default, selected live probes, pinned account,
|
|
16
|
+
and isolated browser/computer interaction only.
|
|
17
|
+
|
|
18
|
+
## Affected rules
|
|
19
|
+
- INV-EXT-1: “There are seven extension points.” Optional diagnostic callbacks extend tool providers, not a new surface.
|
|
20
|
+
- INV-EXT-4: “Each Node extension point has a protocol equivalent”. Remote tool registration gains diagnostic metadata and a host readiness callback.
|
|
21
|
+
- INV-GATE-1: “Every tool call of every run passes the gate.” Live probes use that gate and capability resolution.
|
|
22
|
+
- INV-TUI-4: changes through the session socket require the terminal control key. All terminal diagnostics require it, including reads and cancellation.
|
|
23
|
+
|
|
24
|
+
## Proposal
|
|
25
|
+
A foundation `Doctor` owns in-memory jobs. `doctor.start`, `doctor.read`, and `doctor.cancel` expose
|
|
26
|
+
structured, validated reports. `/doctor` uses these through its protected terminal controller.
|
|
27
|
+
Readiness and live verification are distinguished on every finding. No automatic repair occurs.
|
|
28
|
+
|
|
29
|
+
Offline account inspection uses a non-refreshing Pi runtime and read-only credential store. It
|
|
30
|
+
never verifies credentials remotely. Live model probes make one bounded synthetic request using
|
|
31
|
+
the selected account/model and write normal usage events on a separate diagnostic run.
|
|
32
|
+
|
|
33
|
+
Tool providers may attach `diagnostics(context)` to their existing callable function. Each check
|
|
34
|
+
supplies readiness inspection and optionally a declared live probe. `WorldPart` forwards the same
|
|
35
|
+
metadata through the existing provider. Remote registrations declare checks and optional single-tool
|
|
36
|
+
probe recipes; `tools.diagnose` returns readiness data, and probe recipes invoke registered tools
|
|
37
|
+
through the normal gate. Providers without diagnostics remain unverified.
|
|
38
|
+
|
|
39
|
+
Live tool probes intersect requested and current capabilities, pass the existing scope/authorization
|
|
40
|
+
gate, and never satisfy a required separate per-call approval through batch confirmation. Such calls
|
|
41
|
+
report blocked. MCP diagnostics connect/list only. Browser diagnostics use a disposable launch and
|
|
42
|
+
offline synthetic page; configured CDP attachment is blocked. Computer interaction remains blocked
|
|
43
|
+
when a host cannot provide a disposable test surface.
|
|
44
|
+
|
|
45
|
+
## Alternatives
|
|
46
|
+
Keep separate status screens (no unified evidence); make every check live (costs and side effects by
|
|
47
|
+
default); add an eighth host surface (unnecessary alongside tool providers); infer health from
|
|
48
|
+
registration (insufficient evidence).
|
|
49
|
+
|
|
50
|
+
## Consequences
|
|
51
|
+
Public API and protocol gain job methods and report schemas; provider callbacks remain optional.
|
|
52
|
+
Jobs retain partial findings, support cancellation, and are cleared at shutdown. Existing runs and
|
|
53
|
+
stored settings need no migration. Live diagnostics retain real run records and usage; reports
|
|
54
|
+
contain redacted summaries and no raw tool payloads.
|
|
55
|
+
|
|
56
|
+
## Migration
|
|
57
|
+
None. Existing provider functions remain valid. This change does not relocate tool backends.
|
|
58
|
+
The in-progress World/browser implementation's documentation mismatch is recorded as known drift.
|
|
59
|
+
|
|
60
|
+
## Checks
|
|
61
|
+
Focused service, browser, terminal-page, scope/gate, protocol and host-adapter tests; Harness
|
|
62
|
+
`typecheck`, `test`, `prove`; App `typecheck`, `test`, `check:layers`, `check:ui`, and Rust tests.
|
|
63
|
+
Real provider or interaction probes require explicit consent and are not part of automated tests.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: PROP-0012
|
|
3
|
+
title: Public 1.0.0 distribution and generic browser ownership
|
|
4
|
+
status: Accepted
|
|
5
|
+
created: 2026-10-22
|
|
6
|
+
updated: 2026-10-22
|
|
7
|
+
affects: [INV-BND-2, 00-overview.md, 07-tools-and-gate.md, 11-terminal.md]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# PROP-0012: Public 1.0.0 distribution and generic browser ownership
|
|
11
|
+
|
|
12
|
+
## Problem
|
|
13
|
+
The approved release plan requests @xingular/harness@1.0.0 as a new stable baseline, including
|
|
14
|
+
completed capabilities. Development manifests used 5.0.0 and existing tags use several higher
|
|
15
|
+
versions. Source-only exports fail in ordinary Node consumers. The implemented generic browser
|
|
16
|
+
also disagrees with the earlier categorical ownership rule (known drift D-9).
|
|
17
|
+
|
|
18
|
+
## Affected rules
|
|
19
|
+
INV-BND-2 currently forbids naming “browser, computer use” as application concepts. A generic
|
|
20
|
+
isolated browser is usable unchanged by other hosts. The App's shared WebKit workspace, tab
|
|
21
|
+
sharing, downloads/uploads, window management and computer bridge remain application behavior.
|
|
22
|
+
|
|
23
|
+
## Proposal
|
|
24
|
+
Keep the seven extension points. The foundation may provide generic web/browser capabilities,
|
|
25
|
+
with one isolated browser per session, the normal tool gate and no application state. The App
|
|
26
|
+
owns browser UI, user tab-sharing policy, OS integration and computer tools. The layer check
|
|
27
|
+
allows only the generic backend's declared tool catalog; App-only tools remain prohibited.
|
|
28
|
+
|
|
29
|
+
Publish compiled ESM modules and declarations under the current SDK and subpath interfaces,
|
|
30
|
+
retaining the xharness executable and Bun frontend. Include required resources, licenses and
|
|
31
|
+
notices; exclude tests, source-only build tools and scratch/reference folders. Use Apache-2.0
|
|
32
|
+
for original code, preserving upstream notices. Package version 1.0.0 is an intentional reset,
|
|
33
|
+
not a claim that it sorts above old versions. Preserve old tags and registry versions; set latest
|
|
34
|
+
explicitly after approval and never reuse an existing published version.
|
|
35
|
+
|
|
36
|
+
## Alternatives
|
|
37
|
+
Keep source-only distribution; postpone the stable baseline; move the reusable browser into
|
|
38
|
+
one host; invent an eighth extension point. These fail the approved release requirements or
|
|
39
|
+
reduce reuse unnecessarily.
|
|
40
|
+
|
|
41
|
+
## Consequences and migration
|
|
42
|
+
Node consumers can import the package without a TypeScript loader. Current source hosts keep
|
|
43
|
+
their sibling-source integration. Hosts migrate harnesses.* to variants.*, and harness/tree wire
|
|
44
|
+
fields to variant/files as specified in PROP-0009. Existing stored data continues through the
|
|
45
|
+
existing non-overwriting migration. Users on higher historic versions must request 1.0.0
|
|
46
|
+
explicitly or install the latest tag; numeric ranges for higher majors will not select it.
|
|
47
|
+
|
|
48
|
+
## Checks
|
|
49
|
+
Validate the actual tarball as a Node/TypeScript consumer, server and isolated terminal. Run both
|
|
50
|
+
OS CI jobs, Harness proof, App compatibility checks and license/content checks before publication.
|
|
51
|
+
Registry availability and trusted-publisher settings must be verified; unavailable network is a
|
|
52
|
+
release blocker. Tag pushing and publication require approval of the concrete release candidate.
|
|
53
|
+
|
|
54
|
+
An embedding host may set `browser: false` to disable the generic backend and its plugin
|
|
55
|
+
descriptor before supplying its own browser tool provider. The App uses this option for its
|
|
56
|
+
shared-tab browser, so matching tool names never silently select the wrong backend.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: PROP-0013
|
|
3
|
+
title: Unified terminal resource browser
|
|
4
|
+
status: Implemented
|
|
5
|
+
created: 2026-10-22
|
|
6
|
+
updated: 2026-10-22
|
|
7
|
+
affects: [INV-TUI-4, 03-variants.md, 06-plugins-and-capabilities.md, 09-accounts-and-connectors.md, 11-terminal.md]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# PROP-0013: Unified terminal resource browser
|
|
11
|
+
|
|
12
|
+
## Problem
|
|
13
|
+
|
|
14
|
+
Skills, local resources, variant additions and community discovery are split across commands.
|
|
15
|
+
See [source study](../../study/tui-resource-browser.md). The user approved the proposed UX plan
|
|
16
|
+
and requested implementation in this session.
|
|
17
|
+
|
|
18
|
+
## Affected rules
|
|
19
|
+
|
|
20
|
+
INV-TUI-4 requires a private control key for terminal configuration mutations. Extend that
|
|
21
|
+
protected route to browser reads, local imports, package install/remove and connection management.
|
|
22
|
+
INV-FND-2 (validated variant commits), INV-PLG-1 (single loader), INV-PLG-3 (installation grants
|
|
23
|
+
no trust/attachment) and INV-MCP-4 remain enforced. No extension point is added.
|
|
24
|
+
|
|
25
|
+
## Proposal
|
|
26
|
+
|
|
27
|
+
One browser exposes Overview, Foundation, Variant, Skills, Plugins, Connections, Tools and Library.
|
|
28
|
+
Resource sections share Installed/Discover. Existing commands become shortcuts. Saved and live
|
|
29
|
+
availability remain separate: session loader/tool registry proves current availability; configuration
|
|
30
|
+
and variant head describe future sessions. Inspecting never loads extensions or connects MCP.
|
|
31
|
+
The private socket adds terminal.browser.* adapters to the existing services. File reads accept
|
|
32
|
+
resource IDs and use enumerated owner paths, regular-file checks and bounded previews.
|
|
33
|
+
|
|
34
|
+
## Alternatives
|
|
35
|
+
|
|
36
|
+
Do nothing retains fragmented discovery. Separate improved pages still require users to learn
|
|
37
|
+
where a resource lives. A combined local/remote list obscures the action and availability differences.
|
|
38
|
+
|
|
39
|
+
## Consequences
|
|
40
|
+
|
|
41
|
+
No second loader, enablement store or secret store. The public host RPC framing is unchanged.
|
|
42
|
+
Optional install/remove callbacks extend the terminal adapter. Credential inputs are masked.
|
|
43
|
+
Hub documents remain inert until a separate explicit connector-setup action validates their shape.
|
|
44
|
+
|
|
45
|
+
## Migration
|
|
46
|
+
|
|
47
|
+
No data migration. Existing commands remain valid shortcuts. Existing sessions keep their resource
|
|
48
|
+
selection and variant pins. New resources require the same trust/attachment and restart as before.
|
|
49
|
+
|
|
50
|
+
## Checks
|
|
51
|
+
|
|
52
|
+
Focused model/page/socket tests, OpenTUI completion tests, isolated PTY journeys at 40x20, 80x24,
|
|
53
|
+
120x40, Harness typecheck/tests/build/proof and required sibling App checks. No real model requests.
|
|
54
|
+
|
|
55
|
+
## Implementation evidence
|
|
56
|
+
|
|
57
|
+
[Terminal acceptance and limits](../../evidence/terminal-resource-browser/README.md).
|
|
58
|
+
Implementation remains in the working tree; no release or publication is claimed.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: PROP-0014
|
|
3
|
+
title: Full-screen resource browser with persistent section tabs
|
|
4
|
+
status: Implemented
|
|
5
|
+
created: 2026-10-23
|
|
6
|
+
updated: 2026-10-23
|
|
7
|
+
affects: [11-terminal.md, terminal-tui.md]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# PROP-0014: Full-screen resource browser with persistent section tabs
|
|
11
|
+
|
|
12
|
+
Accepted by the user's request to implement the agreed plan on 2026-10-23.
|
|
13
|
+
|
|
14
|
+
## Problem
|
|
15
|
+
|
|
16
|
+
The browser's centered panel, section dropdown and wide sidebar consume space and hide
|
|
17
|
+
navigation when inspecting a resource. The user requested a full-page screen with component tabs.
|
|
18
|
+
|
|
19
|
+
## Affected rules
|
|
20
|
+
|
|
21
|
+
The terminal guide states: “The browser keeps the centered dialog size policy.”
|
|
22
|
+
This proposal replaces that browser layout contract. INV-TUI-1 through INV-TUI-6 remain intact.
|
|
23
|
+
|
|
24
|
+
## Proposal
|
|
25
|
+
|
|
26
|
+
Every resource-browser command opens the full terminal. Overview, Foundation, Variant, Skills,
|
|
27
|
+
Plugins, Connections, Tools and Library occupy a persistent top tab strip. Narrow terminals
|
|
28
|
+
show the active tab and previous/next navigation. Tab moves focus; arrows change the focused tab;
|
|
29
|
+
mouse selection selects a tab directly. Each section retains search and resource selection.
|
|
30
|
+
|
|
31
|
+
At 88 content columns, inventory and inspector share the screen; details, actions and content
|
|
32
|
+
stay beside the list. Narrow screens show details and content within the active tab. Escape
|
|
33
|
+
returns through content, inspection and search before closing. Other command pages retain
|
|
34
|
+
centered presentation. Browser actions retain existing confirmations and protected services.
|
|
35
|
+
|
|
36
|
+
## Alternatives
|
|
37
|
+
|
|
38
|
+
Keeping the centered browser leaves insufficient working space. Full-width lists with replacement
|
|
39
|
+
detail views hide useful context on wide terminals. A c1–c8 primary tab strip was considered;
|
|
40
|
+
the user selected resource sections instead.
|
|
41
|
+
|
|
42
|
+
## Consequences
|
|
43
|
+
|
|
44
|
+
This is foundation UI behavior. TerminalPage gains optional presentation and direct tab selection.
|
|
45
|
+
There is no server protocol, stored data, account, loader or gate change.
|
|
46
|
+
|
|
47
|
+
## Migration
|
|
48
|
+
|
|
49
|
+
Existing command destinations and resource state are preserved. No migration is needed.
|
|
50
|
+
The UI change is reversible without touching stored data.
|
|
51
|
+
|
|
52
|
+
## Checks
|
|
53
|
+
|
|
54
|
+
Cover page geometry, keyboard and mouse tab selection, inspection, scrolling, responsive resize,
|
|
55
|
+
shortcut destinations, and draft preservation. Run typecheck, tests, build, the isolated browser
|
|
56
|
+
PTY suite and the consuming application's required checks. No real model requests are needed.
|
|
57
|
+
|
|
58
|
+
Related decision: [ADR-0016](../../decisions/ADR-0016-fullscreen-browser-tabs.md).
|