@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,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0072
|
|
3
|
+
title: Codex's prompts and /goal; the completion check moves behind /goal
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-11-01
|
|
6
|
+
updated: 2026-11-01
|
|
7
|
+
supersedes: partial — ADR-0071 ("every reply is checked", "there is no /goal command"); amends INV-TOOL-9
|
|
8
|
+
related:
|
|
9
|
+
- ADR-0069
|
|
10
|
+
- ADR-0070
|
|
11
|
+
- ADR-0071
|
|
12
|
+
- STUDY-0004
|
|
13
|
+
---
|
|
14
|
+
# ADR-0072 — Codex's prompts and `/goal`; the completion check moves behind `/goal`
|
|
15
|
+
|
|
16
|
+
> **Amended by [ADR-0075](ADR-0075-no-todo-gate.md):** the todo gate is removed, so ordinary replies
|
|
17
|
+
> rely on the prompt alone. The goal loop and its completion claim check stay.
|
|
18
|
+
|
|
19
|
+
## Context
|
|
20
|
+
|
|
21
|
+
ADR-0071 asked a model to judge, at the end of **every** reply that did work, whether the request was
|
|
22
|
+
done. Run history after it showed what was still wrong and what was not:
|
|
23
|
+
|
|
24
|
+
- In the "dont stop" handoff runs that ended on their own with work left (`62c7fc6c`, `d73804c8`,
|
|
25
|
+
`b3ab2349`) every run still had an open todo item, and the final reply said "not complete" without
|
|
26
|
+
a reason or a next step. The todo gate catches that; the check never ran for them.
|
|
27
|
+
- The check ran once in all history and failed: `sessionCheckModel` sent no session id, and
|
|
28
|
+
opencode-go answered 400 `MissingSessionID`.
|
|
29
|
+
- The person wants the evaluator only for an opt-in, long-running goal, and ordinary requests to
|
|
30
|
+
finish what they can and say plainly what is done, why it stopped and what is next. The person also
|
|
31
|
+
observed that the todo list, written after a short look at the repository, becomes the boundary of
|
|
32
|
+
the work: it is progress, not scope.
|
|
33
|
+
|
|
34
|
+
OpenAI Codex is open source (Apache-2.0). Read at commit 67f0994b53 (2026-10-31):
|
|
35
|
+
|
|
36
|
+
| Part | What Codex does |
|
|
37
|
+
|---|---|
|
|
38
|
+
| An ordinary turn | Ends when the model makes no tool call. No completion check, no plan gate. Completion pressure is prompt text only (gpt-6 "Autonomy and persistence", "When to ask the user for permission", "Compaction does not end the task"). |
|
|
39
|
+
| `update_plan` | Display only and stateless. |
|
|
40
|
+
| `/goal` | No evaluator. The model calls `update_goal(complete \| blocked \| paused)` after a strict audit prompt; the harness starts the next turn whenever the thread is idle and the goal is active. `blocked` needs the same blocker on three consecutive goal turns. Codex's history removed the "no tool call, so stop" rule and elapsed-time text because they made the model shortcut work. |
|
|
41
|
+
| Stop hooks | A hook's continuation is a user-role message, "to match training for turn loops". |
|
|
42
|
+
|
|
43
|
+
## Decision
|
|
44
|
+
|
|
45
|
+
1. **Ordinary replies** have no model-judged check. The deterministic todo gate (ADR-0069) stays:
|
|
46
|
+
three nudges, the no-progress rule, and now the text "the list shows progress; it is not the limit
|
|
47
|
+
of the work". Completion pressure is the prompt.
|
|
48
|
+
2. **The prompt adopts Codex's wording** for a person's own session, as separate stable sections:
|
|
49
|
+
`autonomy`, `permission`, `steering` and `writing` (`src/prompt/standard.ts`), and a longer
|
|
50
|
+
`reporting` section whose first rule is that unfinished work says so on the first line, with the
|
|
51
|
+
reason and the next step. They apply to every model, so the terminal and a host read the same
|
|
52
|
+
text (INV-PAR-1). Left out: text about Codex's own channels and tools, and "do not run tests
|
|
53
|
+
unless asked", which contradicts this harness.
|
|
54
|
+
3. **The todo list is progress, not scope.** `TODO_GUIDANCE` says the request and any document it
|
|
55
|
+
points to is the scope; list a handoff's steps instead of one "remaining work" item; compare the
|
|
56
|
+
request, not the list, with what is done before ending the turn.
|
|
57
|
+
4. **`/goal <objective>`** is the person's opt-in long run (terminal command, and `goal` on
|
|
58
|
+
`sessions.run`). The person sets it and the work starts at once. It adopts Codex's:
|
|
59
|
+
- tools `get_goal` and `update_goal` (descriptions and errors verbatim; offered to the model
|
|
60
|
+
only while a goal exists; **there is no `create_goal`**, the person creates goals);
|
|
61
|
+
- prompts `continuation`, `budget_limit` and `objective_updated` (the objective escaped and
|
|
62
|
+
wrapped as data);
|
|
63
|
+
- states `active | paused | blocked | usage_limited | budget_limited | complete`;
|
|
64
|
+
- brakes: three automatic rounds with no activity, three with only failed commands, a provider
|
|
65
|
+
error (`blocked`), a usage-limit error (`usage_limited`);
|
|
66
|
+
- the person's side: `/goal [<objective>|edit|pause|resume|clear]`, a replace confirmation, Esc
|
|
67
|
+
pauses a running goal, a footer label, a provenance message for each change.
|
|
68
|
+
5. **A completion claim is checked.** `update_goal(complete)` only records a claim. At the next
|
|
69
|
+
settle the same model, at low effort, with a fresh context and no tools, checks the claim against
|
|
70
|
+
the objective and the transcript (Codex's audit: completion is unproven, weak evidence is not
|
|
71
|
+
enough, quote the evidence). `done` completes the goal; `continue` keeps it active with the
|
|
72
|
+
reason; no model, an error or an unreadable answer accepts the claim. This is the only completion
|
|
73
|
+
check in the harness.
|
|
74
|
+
6. **Caps.** Rounds and hours, not tokens (the harness accounts for time, not a token budget): 30
|
|
75
|
+
rounds or 8 hours by default, `--rounds N --hours H` per goal. At the cap the goal becomes
|
|
76
|
+
`budget_limited` and gets one last round to wrap up (progress, what remains, the next step).
|
|
77
|
+
7. **INV-TOOL-9 is amended:** the model has no tool that ends or hands off its own work, except
|
|
78
|
+
`update_goal` in a goal the person started, whose `complete` is checked and whose `paused` needs
|
|
79
|
+
the person's word.
|
|
80
|
+
8. **Server runs.** `sessions.run` takes `goal: { objective, rounds?, hours? }` for a person's own
|
|
81
|
+
top-level run; the run continues in place, and `goalMode` on `run.json` records the objective,
|
|
82
|
+
status, rounds and time. A goal that crosses a work-slice boundary is carried by `continueSlice`.
|
|
83
|
+
In this change a server goal belongs to one run chain; `goal.set | get | clear` as separate
|
|
84
|
+
methods and pause/resume across unrelated runs are left for the App's screen.
|
|
85
|
+
9. **Also fixed:** `sessionCheckModel` passes the session id, so opencode-go accepts the request.
|
|
86
|
+
`XINGULAR_COMPLETION_CHECK=off` now accepts every goal claim unchecked.
|
|
87
|
+
|
|
88
|
+
## Consequences
|
|
89
|
+
|
|
90
|
+
- An ordinary reply costs no extra model request. A goal costs one request per completion claim.
|
|
91
|
+
- The stable prefix grows by about 8 to 9 thousand characters (the new sections), once. Starting a
|
|
92
|
+
goal changes the active tools once (the two goal tools), which can cost one cache miss.
|
|
93
|
+
- The goal's continuation prompt is long (about 6.5 thousand characters); it rides as a hidden user
|
|
94
|
+
message in each round, and the claim check skips it.
|
|
95
|
+
- A restored conversation shows its goal as `paused`; nothing resumes by itself.
|
|
96
|
+
- Measure, as ADR-0071 asked: the same handoff prompt on clean copies, three runs per arm (old
|
|
97
|
+
build, new ordinary reply, new `/goal`): tool calls before the reply ends, false "completed"
|
|
98
|
+
lists, permission-question stops, the first line of the final report, claim checks and cost.
|
|
99
|
+
|
|
100
|
+
## Alternatives considered
|
|
101
|
+
|
|
102
|
+
- **Codex exactly (no evaluator).** Rejected for the goal's `complete`: run history shows models
|
|
103
|
+
marking work done falsely, and a separate fresh-context look at one claim is cheap.
|
|
104
|
+
- **Keep the every-reply check, cheaper model.** Rejected by the person: ordinary requests should
|
|
105
|
+
finish on their own, and no studied harness judges ordinary replies.
|
|
106
|
+
- **A model-created goal (`create_goal`).** Not adopted: it would put a goal tool in every session.
|
|
107
|
+
- **A harness nudge when a reply's own text says work remains.** Rejected by the person for now:
|
|
108
|
+
prompt and the todo gate only.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0073
|
|
3
|
+
title: A large, content-block reporting prompt
|
|
4
|
+
status: superseded
|
|
5
|
+
created: 2026-11-01
|
|
6
|
+
updated: 2026-11-01
|
|
7
|
+
superseded_by: ADR-0074
|
|
8
|
+
supersedes: partial — ADR-0068 (its required headings and fixed-label rule)
|
|
9
|
+
amends: ADR-0008 (flexible headings stand; required content blocks are added)
|
|
10
|
+
related:
|
|
11
|
+
- ADR-0008
|
|
12
|
+
- ADR-0068
|
|
13
|
+
- ADR-0072
|
|
14
|
+
- STUDY-0006
|
|
15
|
+
---
|
|
16
|
+
# ADR-0073 — A large, content-block reporting prompt
|
|
17
|
+
|
|
18
|
+
> **Superseded by [ADR-0074](ADR-0074-report-content-not-report-blocks.md):** the four required
|
|
19
|
+
> blocks, the "Nothing needed" ending, the five examples and the 18,000-character budget are
|
|
20
|
+
> replaced by content questions, an evidence line, an optional by-hand block and free headings.
|
|
21
|
+
|
|
22
|
+
## Context
|
|
23
|
+
|
|
24
|
+
The person reading final replies asked for three things the 3,400-character `reporting` section did
|
|
25
|
+
not give: headings that fit the content, a "how to test" block, and a clear next step. A forensic
|
|
26
|
+
pass on run `07974d6e` showed the structured report existed at seq 222, but the section was thin
|
|
27
|
+
enough that a terse follow-up could replace it, and it carried no example of what a good report looks
|
|
28
|
+
like.
|
|
29
|
+
|
|
30
|
+
The peer study in [STUDY-0006](../study/STUDY-0006-reporting-prompts.md) found:
|
|
31
|
+
|
|
32
|
+
- Claude Code leads with the outcome, drops preamble and recap, answers a simple question in one to
|
|
33
|
+
three sentences, and keeps safety-critical detail complete. Its extracted reporting rules name the
|
|
34
|
+
next action, use absolute paths, quote only load-bearing snippets, and treat the final message as
|
|
35
|
+
the report.
|
|
36
|
+
- Codex keeps per-model prompt files of 6.6k–24k characters, so a large reporting section is within
|
|
37
|
+
the norm it sets.
|
|
38
|
+
- Kimi CLI has no final-report shape at all; a large prompt is an authored choice, not a universal
|
|
39
|
+
convention.
|
|
40
|
+
|
|
41
|
+
The old section mandated three headings (`## Beyond what you asked`, `## Differences from the plan`,
|
|
42
|
+
`## What would make this complete`) and no test or next-step block. It had no examples.
|
|
43
|
+
|
|
44
|
+
## Decision
|
|
45
|
+
|
|
46
|
+
Replace `REPORTING_GUIDANCE` with a ~15.8k-character text in
|
|
47
|
+
[`src/prompt/reporting.ts`](../../src/prompt/reporting.ts), imported by
|
|
48
|
+
[`src/prompt/compile.ts`](../../src/prompt/compile.ts). Raise `REPORTING_BUDGET` to 18,000 so the
|
|
49
|
+
section is never cut, and keep it last in the stable prefix.
|
|
50
|
+
|
|
51
|
+
The text keeps the outcome-first rule and defines **content blocks, not heading names**:
|
|
52
|
+
|
|
53
|
+
- Required for a change: outcome, what changed, how to test, what to do next.
|
|
54
|
+
- Optional when they apply: beyond the request, departures from the plan, unverified or needs a
|
|
55
|
+
person, open questions.
|
|
56
|
+
- Headings are the model's choice. The guidance lists synonyms ("How to test", "Try it", "Verify")
|
|
57
|
+
and says the requirement is the information, not the label.
|
|
58
|
+
- Five worked examples: a small change, a multi-file change with extra work, a blocked change, a
|
|
59
|
+
research answer, and a one-line question. An anti-pattern table and a pre-send checklist follow.
|
|
60
|
+
|
|
61
|
+
"How to test" is required only for a change. It gives numbered steps, exact commands or URLs, the
|
|
62
|
+
expected result, what the agent already ran, and what the person must run. "What to do next" names
|
|
63
|
+
the person's action or says "Nothing needed". Pure research and one-line questions stay short and
|
|
64
|
+
carry no test block.
|
|
65
|
+
|
|
66
|
+
## Consequences
|
|
67
|
+
|
|
68
|
+
- The stable prefix grows by about 12.4k characters (roughly 3.5k tokens). Every session pays it
|
|
69
|
+
once; the provider cache covers later requests, and the first request after an upgrade misses the
|
|
70
|
+
cache. The cost is measured with real application requests only, under INV-PRM-8.
|
|
71
|
+
- [`src/prompt/compile.test.ts`](../../src/prompt/compile.test.ts) now checks the content blocks,
|
|
72
|
+
the five examples, the size range, and that the section is not cut; the exact old phrases are gone.
|
|
73
|
+
- The spec ([04-prompt.md](../architecture/04-prompt.md)) and the old ADRs are updated; the three
|
|
74
|
+
old headings become examples, not requirements.
|
|
75
|
+
- A shorter or different report shape for one variant is a variant prompt change through refinement,
|
|
76
|
+
not configuration of this section.
|
|
77
|
+
|
|
78
|
+
## Alternatives
|
|
79
|
+
|
|
80
|
+
- **8k characters, three examples.** Rejected: the person chose the 16k balance for enough rules and
|
|
81
|
+
examples to cover the shapes.
|
|
82
|
+
- **24k characters, eight examples.** Rejected for now: the largest prefix; the 16k text covers the
|
|
83
|
+
five shapes the person named.
|
|
84
|
+
- **Keep the three fixed headings.** Rejected: fixed labels are what made the report rigid, and the
|
|
85
|
+
person asked for headings that fit the content.
|
|
86
|
+
- **Move the examples to a skill.** Rejected: the guidance must shape every reply without a second
|
|
87
|
+
load, and the person asked for the prompt itself to carry the rules and examples.
|
|
88
|
+
- **Always require the test and next blocks, even for a question.** Rejected: the person chose
|
|
89
|
+
changes only, so a one-line question stays one to three sentences.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0074
|
|
3
|
+
title: Report content, not report blocks
|
|
4
|
+
status: superseded
|
|
5
|
+
created: 2026-11-01
|
|
6
|
+
updated: 2026-11-01
|
|
7
|
+
superseded_by: ADR-0076
|
|
8
|
+
supersedes: ADR-0073 (its four required blocks, five examples and 18,000-character budget)
|
|
9
|
+
amends: ADR-0008 (human inspection is the only by-hand block)
|
|
10
|
+
related:
|
|
11
|
+
- ADR-0008
|
|
12
|
+
- ADR-0073
|
|
13
|
+
- STUDY-0006
|
|
14
|
+
---
|
|
15
|
+
# ADR-0074 — Report content, not report blocks
|
|
16
|
+
|
|
17
|
+
> **Superseded by [ADR-0076](ADR-0076-codex-final-answer-verbatim.md):** the four content
|
|
18
|
+
> questions, the human-check and next-step blocks, the evidence table, the anti-pattern table and
|
|
19
|
+
> the three examples are replaced by Codex's final-answer and technical-communication text.
|
|
20
|
+
|
|
21
|
+
> **Supersedes [ADR-0073](ADR-0073-large-reporting-prompt.md):** the four required blocks, the
|
|
22
|
+
> "Nothing needed" ending and the 18,000-character budget are replaced.
|
|
23
|
+
|
|
24
|
+
## Context
|
|
25
|
+
|
|
26
|
+
ADR-0073 made a change carry four required blocks — outcome, what changed, how to test, what to do
|
|
27
|
+
next — and put both the agent's own runs and the person's steps inside "how to test". In real
|
|
28
|
+
replies the two merged: a section headed for the person's testing listed `npm run typecheck —
|
|
29
|
+
passed` and `npm test — 212 test files passed`, checks the person was never going to repeat. The
|
|
30
|
+
same guidance required "or say 'Nothing needed'", and replies ended with "Nothing needed next"
|
|
31
|
+
even when the work was complete and visible.
|
|
32
|
+
|
|
33
|
+
Headings also collapsed. The four block names and their synonyms ("How to test", "Test it", "Try
|
|
34
|
+
it", "Verify") gave the model one vocabulary, so unrelated work — a document, a diagnosis, a
|
|
35
|
+
publish — arrived under "What changed / How to check / Next step".
|
|
36
|
+
|
|
37
|
+
The person asked for three things: a by-hand section for checks only a person can make (a screen,
|
|
38
|
+
a sign-in, a diff or PR, a publish), no filler ending, and headings that follow the content. The
|
|
39
|
+
earlier design already had the principle: ADR-0008 made **Need human inspection** optional and said
|
|
40
|
+
not to use it "for checks already performed or generic risks". ADR-0073 folded that block into the
|
|
41
|
+
required set and lost the distinction.
|
|
42
|
+
|
|
43
|
+
## Decision
|
|
44
|
+
|
|
45
|
+
Replace `REPORTING_GUIDANCE` in [`src/prompt/reporting.ts`](../../src/prompt/reporting.ts) with a
|
|
46
|
+
~8.9k-character text (about 2.1k o200k tokens) that defines content questions rather than blocks:
|
|
47
|
+
|
|
48
|
+
- The reply answers what happened, what changed or was decided, what only a person can check, and
|
|
49
|
+
what they do next — in any words and any order. Most replies answer two or three.
|
|
50
|
+
- The checks the agent ran are evidence: one line each, command and result. They are never steps
|
|
51
|
+
for the person, and never appear in a section headed for the person's testing.
|
|
52
|
+
- A by-hand check is optional and covers only what the agent could not do: open a screen, sign in,
|
|
53
|
+
read a document for tone, review or merge a diff, publish, deploy, use a device. It gives the
|
|
54
|
+
shortest sequence, what to look at, and the result that means it works. When nothing needs a
|
|
55
|
+
person, the block is absent — no "no manual check" line.
|
|
56
|
+
- A finished reply with nothing left ends on its last real point. "Nothing needed", "Nothing needed
|
|
57
|
+
next" and "No action required" are banned.
|
|
58
|
+
- There is no required heading and no preferred set; the section gives cross-domain examples and a
|
|
59
|
+
shape-by-work table, not a vocabulary, and says not to repeat one heading set.
|
|
60
|
+
- Three worked examples: a screen change, a backend change, a publish. The old examples' "Nothing
|
|
61
|
+
needed next" endings are gone.
|
|
62
|
+
|
|
63
|
+
`REPORTING_BUDGET` falls from 18,000 to 12,000 characters. The section stays last in the stable
|
|
64
|
+
prefix and is never cut.
|
|
65
|
+
|
|
66
|
+
## Consequences
|
|
67
|
+
|
|
68
|
+
- The stable prefix shrinks by about 6.9k characters (15,809 → 8,921) and about 1.6k o200k tokens
|
|
69
|
+
(3,736 → 2,108). Existing sessions miss the provider cache once after the upgrade; the price of a
|
|
70
|
+
request is measured only with real application requests under INV-PRM-8.
|
|
71
|
+
- [`src/prompt/compile.test.ts`](../../src/prompt/compile.test.ts) checks the content questions, the
|
|
72
|
+
evidence rule, the by-hand rule, the ending ban, the heading freedom, three examples, the size
|
|
73
|
+
range and the 12,000 budget.
|
|
74
|
+
- No data, storage or server-protocol change; the App needs a rebuilt harness only.
|
|
75
|
+
- Risk: without four required blocks, a reply could go thin. The four content questions and the
|
|
76
|
+
"before you send" list are the guard; whether replies keep the shape is checked on real work, not
|
|
77
|
+
by a test.
|
|
78
|
+
|
|
79
|
+
## Alternatives
|
|
80
|
+
|
|
81
|
+
- **Keep the four blocks and only ban "Nothing needed".** Rejected: the merge of the agent's runs
|
|
82
|
+
with the person's checks is the defect, and it comes from the block's own text.
|
|
83
|
+
- **Give the agent a separate "what I ran" block.** Rejected: one line of evidence is enough, and a
|
|
84
|
+
block invites the ceremony the person objected to.
|
|
85
|
+
- **Ban headings entirely.** Rejected: short replies drift into prose, and a report still needs
|
|
86
|
+
names for its parts.
|
|
87
|
+
- **Keep ~15.8k characters and rewrite the rules in place.** Rejected: the person chose a leaner
|
|
88
|
+
text, and the five examples restated rules already in prose.
|
|
89
|
+
- **Require the by-hand block on every change.** Rejected: most backend work has nothing a person
|
|
90
|
+
can check, and an always-present block produces filler.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0075
|
|
3
|
+
title: No todo gate; a reply ends when the model ends it
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-11-01
|
|
6
|
+
updated: 2026-11-01
|
|
7
|
+
supersedes: ADR-0069 (its stop gate), ADR-0072 (its "the todo gate stays")
|
|
8
|
+
related:
|
|
9
|
+
- ADR-0069
|
|
10
|
+
- ADR-0072
|
|
11
|
+
- STUDY-0004
|
|
12
|
+
---
|
|
13
|
+
# ADR-0075 — No todo gate; a reply ends when the model ends it
|
|
14
|
+
|
|
15
|
+
> **Supersedes the todo gate of [ADR-0069](ADR-0069-stop-gate-and-finish.md)** and the line in
|
|
16
|
+
> [ADR-0072](ADR-0072-codex-prompts-and-goal.md) that kept it. The goal loop and its claim check
|
|
17
|
+
> stay.
|
|
18
|
+
|
|
19
|
+
## Context
|
|
20
|
+
|
|
21
|
+
ADR-0069 added the stop gate: in an attended top-level reply, an item still `pending` or
|
|
22
|
+
`in_progress` at Pi's `agent_before_settle` boundary sent the reply back with a displayed
|
|
23
|
+
`xingular-stop-gate` message, up to three nudges, and then settled the run
|
|
24
|
+
`interrupted{unfinished}` with a harness-written checkpoint.
|
|
25
|
+
|
|
26
|
+
In use the messages read as noise. "Harness stop gate (1/3): your reply ended with 2 open todo
|
|
27
|
+
items…" appears in the transcript of a person's own session, and a stale item the model forgot to
|
|
28
|
+
close marks the run unfinished even when the work is done. The person asked for the nudges and the
|
|
29
|
+
unfinished status to go, and for the prompt to relax instead.
|
|
30
|
+
|
|
31
|
+
The peer check on 2026-11-01 does not make this an obvious outlier either way:
|
|
32
|
+
|
|
33
|
+
| Harness | Todo nudge at the end of a turn | Evidence |
|
|
34
|
+
|---|---|---|
|
|
35
|
+
| omp | **Yes.** `TodoTracker.checkCompletion()` appends "You stopped with N incomplete todo item(s)… Please continue" as a developer message and schedules a continuation, up to `todo.remindersMax` (default 3); it skips a reply awaiting the person and also nudges mid-run after 12 mutating tools | `external/omp/packages/coding-agent/src/session/todo-tracker.ts:221`, `src/tools/settings.ts:360-380` |
|
|
36
|
+
| Claude Code | No bounce. A gentle reminder to use TodoWrite ("This is just a gentle reminder - ignore if not applicable"); a `Stop` hook is user configuration | Extracted prompt `system-reminder-todowrite-reminder.md`, `ccVersion` 2.1.139 |
|
|
37
|
+
| Codex | No bounce. `update_plan` is opt-in since 0.152 and enforces nothing at the end of a turn | STUDY-0004; 0.152 release notes |
|
|
38
|
+
| Kimi CLI | No bounce. A todo tool and instructions only | `external/kimi-cli/src/kimi_cli/tools/todo/set_todo_list.md` |
|
|
39
|
+
| OpenHands, SWE-agent, smolagents | No todo gate | No todo tool or no end-of-turn enforcement |
|
|
40
|
+
|
|
41
|
+
So this harness had copied a real design, but it is the minority design among the studied peers,
|
|
42
|
+
and its messages are the thing the person objected to.
|
|
43
|
+
|
|
44
|
+
## Decision
|
|
45
|
+
|
|
46
|
+
Remove the gate:
|
|
47
|
+
|
|
48
|
+
- Delete the nudge extension, its state, `nudgeText`, `stopGateNotice`, `MAX_STOP_GATE_NUDGES`, and
|
|
49
|
+
the `XINGULAR_STOP_GATE` switch.
|
|
50
|
+
- A reply the model ends settles `completed`. The harness does not send it back and does not
|
|
51
|
+
overwrite its status from the todo list.
|
|
52
|
+
- A person's interrupt, the work-slice guard (INV-RUN-13) and a goal's stop (INV-RUN-16) keep their
|
|
53
|
+
statuses and checkpoints. A blocked goal settles `needs_person`; a goal on a limit, a pause or a
|
|
54
|
+
stall settles `unfinished`.
|
|
55
|
+
- The goal/checkpoint helpers move to `sessions/goalStop.ts`; the goal check's model helper moves to
|
|
56
|
+
`completionCheck.ts`.
|
|
57
|
+
- The prompt keeps the work-slice sentence as `WORK_SLICE_GUIDANCE`, and `TODO_GUIDANCE` is relaxed:
|
|
58
|
+
the list is a progress aid, the request is the scope, and a step left open is explained in the
|
|
59
|
+
reply. No text says a reply is sent back.
|
|
60
|
+
- A login that blocks the work is answered with the exact command the person must run (see
|
|
61
|
+
`04-prompt.md` § Reporting).
|
|
62
|
+
|
|
63
|
+
## Consequences
|
|
64
|
+
|
|
65
|
+
- An early stop is no longer caught by the harness. The prompt is the only layer that asks the model
|
|
66
|
+
to finish the request, and a person reading the reply has to notice a stop with work left.
|
|
67
|
+
- The App no longer shows an interrupted-run notice for open todo items; it still does for a slice,
|
|
68
|
+
a goal and a person's interrupt.
|
|
69
|
+
- The stable prefix loses the old `STOP_GATE_GUIDANCE` sentence and gains the credential rule in the
|
|
70
|
+
reporting section; existing sessions miss the provider cache once after the upgrade.
|
|
71
|
+
- `XINGULAR_STOP_GATE` is retired and ignored if set. No data or protocol change; run records
|
|
72
|
+
written before this change keep their statuses.
|
|
73
|
+
|
|
74
|
+
## Alternatives
|
|
75
|
+
|
|
76
|
+
- **Keep the gate and only make it opt-in, off by default.** Rejected: the machinery and its
|
|
77
|
+
messages would still exist for the default path people read, and the harness would carry a
|
|
78
|
+
capability nobody turns on.
|
|
79
|
+
- **Keep one reminder.** Rejected: the person asked for the nudges to go, and one reminder still
|
|
80
|
+
writes a harness message into their reply.
|
|
81
|
+
- **Remove the message but keep the `unfinished` status.** Rejected: the status comes from a list the
|
|
82
|
+
model may not maintain, so a stale item would mark finished work unfinished with no way to fix it.
|
|
83
|
+
- **Keep the gate.** Rejected: it is the thing the person objected to, and the majority of the
|
|
84
|
+
studied peers leave the end of a turn to the prompt.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0076
|
|
3
|
+
title: Codex's final-answer guidance, adopted verbatim
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-11-01
|
|
6
|
+
updated: 2026-11-02
|
|
7
|
+
supersedes: ADR-0074 (its four content questions, human-check block, next-step block and examples)
|
|
8
|
+
amended_by: ADR-0079
|
|
9
|
+
related:
|
|
10
|
+
- ADR-0074
|
|
11
|
+
- ADR-0075
|
|
12
|
+
- STUDY-0006
|
|
13
|
+
---
|
|
14
|
+
# ADR-0076 — Codex's final-answer guidance, adopted verbatim
|
|
15
|
+
|
|
16
|
+
> **Supersedes [ADR-0074](ADR-0074-report-content-not-report-blocks.md):** the four content
|
|
17
|
+
> questions, the human-check block, the next-step block, the evidence table, the anti-pattern table
|
|
18
|
+
> and the three examples are replaced by Codex's final-answer and technical-communication text.
|
|
19
|
+
|
|
20
|
+
> **Amended by [ADR-0079](ADR-0079-phase-led-reporting-guidance.md):** add the cold-reader test,
|
|
21
|
+
> explicit verification honesty, concise subagent reports and a preference for content-named `#` / `##`
|
|
22
|
+
> headings in substantial reports. The phase order is explicit; heading wording remains flexible.
|
|
23
|
+
|
|
24
|
+
## Context
|
|
25
|
+
|
|
26
|
+
ADR-0074 replaced four required blocks with four content questions, a one-line evidence rule, an
|
|
27
|
+
optional human-check block, a next-step rule and three examples. It removed the filler ending and
|
|
28
|
+
brought the section to 9,235 characters (2,188 o200k tokens).
|
|
29
|
+
|
|
30
|
+
A rule-by-rule comparison with Codex's `gpt-6.1-sol` prompt found that most of the autonomy and
|
|
31
|
+
permission text was already Codex's, word for word, while the report section carried the strictness:
|
|
32
|
+
18 prohibition phrases, 19 obligation words, a pre-send checklist and an anti-pattern table, against
|
|
33
|
+
Codex's 454-token `## Final answer` block, which mostly describes qualities and rendering.
|
|
34
|
+
|
|
35
|
+
The person chose Codex's wording for the report: self-contained final, technical communication,
|
|
36
|
+
evidence and limits, table guidance and length by complexity. They also added the model name to the
|
|
37
|
+
identity, adopted Codex's personality paragraph and unclear-scope sentence (with `ask_user`), and
|
|
38
|
+
adopted Codex's tool hygiene, test restraint and skill rules.
|
|
39
|
+
|
|
40
|
+
## Decision
|
|
41
|
+
|
|
42
|
+
- **Identity.** `harness-identity` carries the product name, `Launch.model` when the host knows it,
|
|
43
|
+
and Codex's goal sentence: "You and the user share one workspace, and your job is to collaborate
|
|
44
|
+
with them until their intended goal is completely handled." The model name is a stable-prefix
|
|
45
|
+
line; a `/model` switch after the pack is compiled leaves it naming the model the session started
|
|
46
|
+
with.
|
|
47
|
+
- **Personality.** A new standard section (`prompt/standard.ts`, order 22) carries Codex's
|
|
48
|
+
personality paragraph, with "As Codex" changed to "As an AI agent" so the harness names no other
|
|
49
|
+
product.
|
|
50
|
+
- **Unclear scope.** Codex's sentence replaces the harness wording: "If the user's intent or task
|
|
51
|
+
scope is unclear, progress towards the user's goal with the information available and then ask the
|
|
52
|
+
user for clarification while continuing independent work." A following sentence names `ask_user`
|
|
53
|
+
for the question.
|
|
54
|
+
- **Reporting.** `REPORTING_GUIDANCE` becomes Codex's final-answer block and technical-communication
|
|
55
|
+
paragraphs: self-contained, most important information, outcome first, what changed and why, how
|
|
56
|
+
it was tested, material risks and limits, the evidence needed and its limits, verification
|
|
57
|
+
summarized rather than listed, progress updates as learned/uncertain/next. Tables for mappings and
|
|
58
|
+
comparisons. Headings stay free. A shape-by-work table says what different work needs. Length
|
|
59
|
+
scales with complexity. Prose first, lists when the information is parallel or sequential. Two
|
|
60
|
+
examples (a screen change, a blocked publish) and a four-line pre-send list replace the old
|
|
61
|
+
blocks, the anti-pattern table and the three examples.
|
|
62
|
+
- **Removed from reporting.** The four content questions, "Your checks are evidence", "What only a
|
|
63
|
+
person can check", "What the person does next", "What to leave out", "Tone", "Claims carry
|
|
64
|
+
evidence" and the anti-pattern table. The exact command for a blocked login remains in
|
|
65
|
+
`autonomy` and in the blocked-publish example.
|
|
66
|
+
- **Tools.** Codex's work rules join the Native guidance: `rg` first, no decorative command
|
|
67
|
+
separators, shell text treated as code, no reused `$HOME`, no long blocking sleeps, no tests for
|
|
68
|
+
reversible changes or tests that mirror the implementation, and broadening tests only when
|
|
69
|
+
justified. Codex's skill rules (SKILL.md, user precedence, announce the first use, `$name`,
|
|
70
|
+
missing skill) and its plugin principle join the Wiki guidance.
|
|
71
|
+
- `REPORTING_BUDGET` stays 12,000; the text is 3,697 characters (about 800 o200k tokens) and is
|
|
72
|
+
never cut.
|
|
73
|
+
|
|
74
|
+
## Consequences
|
|
75
|
+
|
|
76
|
+
- The stable prefix shrinks by about 5.5k characters and 1.3k tokens. Existing sessions miss the
|
|
77
|
+
provider cache once after the upgrade.
|
|
78
|
+
- The report no longer has a by-hand check block or a next-step block. A person reading a reply gets
|
|
79
|
+
the outcome, the change, the evidence and the risks, and must notice when the reply leaves
|
|
80
|
+
something undone; ADR-0075's removal of the todo gate already accepted that.
|
|
81
|
+
- The personality section adds a sixth standard section; the terminal and every host read the same
|
|
82
|
+
text (INV-PAR-1).
|
|
83
|
+
- `Launch.model` is a new optional launch field; hosts that do not know the model get the identity
|
|
84
|
+
without "based on".
|
|
85
|
+
- No data, storage or server-protocol change.
|
|
86
|
+
|
|
87
|
+
## Alternatives
|
|
88
|
+
|
|
89
|
+
- **Keep ADR-0074 and only trim the anti-patterns.** Rejected: the comparison showed the strictness
|
|
90
|
+
was in the block structure itself, and the person chose Codex's wording.
|
|
91
|
+
- **Copy Codex's whole prompt.** Rejected: its channels, `update_plan`, `functions.exec`, apps and
|
|
92
|
+
plugin mechanics do not exist in this harness; only the report, personality, permission and work
|
|
93
|
+
rules apply.
|
|
94
|
+
- **Keep the human-check and next-step blocks alongside Codex's text.** Rejected: they were the two
|
|
95
|
+
blocks the person asked to remove, and Codex's technical communication covers what remains.
|
|
96
|
+
- **Make the model name dynamic.** Deferred: a `/model` switch would need the identity in a dynamic
|
|
97
|
+
section or a recompile, and both change the cache contract; the stable line is the simpler
|
|
98
|
+
starting point.
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0077
|
|
3
|
+
title: A plan run may conclude that no plan is needed
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-11-02
|
|
6
|
+
updated: 2026-11-02
|
|
7
|
+
supersedes: ADR-0055 (its "every attended plan reply must carry a block" criterion), ADR-0057 and ADR-0058 (their repair criterion), not their mechanisms
|
|
8
|
+
related:
|
|
9
|
+
- ADR-0055
|
|
10
|
+
- ADR-0057
|
|
11
|
+
- ADR-0058
|
|
12
|
+
- ADR-0074
|
|
13
|
+
- ADR-0075
|
|
14
|
+
---
|
|
15
|
+
# ADR-0077 — A plan run may conclude that no plan is needed
|
|
16
|
+
|
|
17
|
+
> **Supersedes the repair criterion of [ADR-0055](ADR-0055-plan-output-repair.md),
|
|
18
|
+
> [ADR-0057](ADR-0057-structured-plan-outcomes.md) and
|
|
19
|
+
> [ADR-0058](ADR-0058-ask-user-only-plan-clarification.md), not their mechanisms.** The same-run,
|
|
20
|
+
> one-attempt repair, the shared classification, the tool gate and the `<plan_blocked>` channel stay.
|
|
21
|
+
|
|
22
|
+
## Context
|
|
23
|
+
|
|
24
|
+
Plan mode had no legitimate empty outcome. Its classification recognized `plan_ready` (one complete
|
|
25
|
+
`<proposed_plan>` block), `blocked` (required input that `ask_user` could not obtain) and `invalid`
|
|
26
|
+
for everything else, so a reply that concluded there was nothing to do was a formatting failure.
|
|
27
|
+
Two instructions then demanded an artifact: the plan section ended "end the reply with exactly one
|
|
28
|
+
block", and the hidden repair turn told the model to re-send its plan inside one block and offered
|
|
29
|
+
only a blocked block as the alternative.
|
|
30
|
+
|
|
31
|
+
The result is a fabricated plan. A person who asked the agent to plan work that already exists, or
|
|
32
|
+
who said not to plan at all, received a plan anyway: the harness's own instruction outranked the
|
|
33
|
+
person's, and the repair repeated it. Two live cases in one harness test session did exactly that —
|
|
34
|
+
a no-op plan whose only content restated the request, and then, after the person rejected it, a
|
|
35
|
+
second plan produced by the repair turn. The appetite for a required artifact had already been
|
|
36
|
+
rejected elsewhere: ADR-0074 removed the required report blocks, and ADR-0075 removed the stop gate.
|
|
37
|
+
|
|
38
|
+
A second defect sits beside the first. Tag accounting was a raw substring count over the whole
|
|
39
|
+
reply, so a reply that quoted plan syntax inside a fenced or inline code block declared extra
|
|
40
|
+
outcomes and became `invalid`. That is how a plan *about* the plan tags failed its own parser.
|
|
41
|
+
|
|
42
|
+
## Decision
|
|
43
|
+
|
|
44
|
+
Add `no_plan` to the plan outcome contract:
|
|
45
|
+
|
|
46
|
+
| Reply ending | Outcome |
|
|
47
|
+
|---|---|
|
|
48
|
+
| One complete, nonempty `<proposed_plan>` block, outside code | `plan_ready` |
|
|
49
|
+
| One complete, nonempty `<plan_blocked>` block, outside code | `blocked` |
|
|
50
|
+
| No outcome tag at all, nonempty text | `no_plan` |
|
|
51
|
+
| Unbalanced, empty, duplicated or conflicting tags; legacy `<plan_clarification>`; empty reply | `invalid` |
|
|
52
|
+
|
|
53
|
+
- `no_plan` is a conclusion, not a failure. It offers no plan card, no Implement, no notice and no
|
|
54
|
+
warning in any surface, and it never costs a second model request.
|
|
55
|
+
- The plan section says that a reply with no block is a valid ending, that the model must check
|
|
56
|
+
whether the requested work already exists before designing it, and that a person's instruction
|
|
57
|
+
not to plan outranks the mode's output shape.
|
|
58
|
+
- The repair keeps its one bounded attempt, the same run and the same tool gate, but exists only
|
|
59
|
+
for `invalid`: a block the model started and left incomplete, empty or in conflict. It may finish
|
|
60
|
+
that block, may state that there is nothing to plan, or may return the blocked block. It may not
|
|
61
|
+
re-plan, research again, invent a decision or invent work to fill a block.
|
|
62
|
+
- Tags outside fenced and inline code alone declare an outcome; a quoted example is text. The rule
|
|
63
|
+
matches the one the App already used to split a plan out of a reply.
|
|
64
|
+
|
|
65
|
+
The outcome stays derived from reply text. No run event, run-record field, storage layout, server
|
|
66
|
+
method or host schema changes, so clients that understand only the plan tag keep working.
|
|
67
|
+
|
|
68
|
+
## Rationale
|
|
69
|
+
|
|
70
|
+
The contract conflated *format* with *outcome*. Once the artifact is the only way to answer, every
|
|
71
|
+
honest "nothing to do" becomes a lie about the work, and the repair turn is the machinery that asks
|
|
72
|
+
for the lie. Making the empty conclusion explicit fixes the cause instead of the symptom, and it
|
|
73
|
+
keeps the plan card exactly where it is useful: on a reply that actually contains a plan.
|
|
74
|
+
|
|
75
|
+
Text-derived classification is cheaper than the alternatives. A `no_plan` tag would still demand an
|
|
76
|
+
artifact for every request. A plan tool would change the tool list at the moment the mode switches,
|
|
77
|
+
changing the cached prompt prefix in headless runs, and would need a new renderer path in the
|
|
78
|
+
terminal and the App. A declared free-text line (`No plan needed: …`) adds a phrase the model must
|
|
79
|
+
remember and makes its absence ambiguous again.
|
|
80
|
+
|
|
81
|
+
## Consequences
|
|
82
|
+
|
|
83
|
+
- A plan request that needs no plan answers in ordinary prose. The person sees no card and no
|
|
84
|
+
warning, and the turn costs one request instead of two.
|
|
85
|
+
- A model that forgets the block for a real plan now loses the card and the Implement choice
|
|
86
|
+
silently. The reply text remains, and asking again produces the plan; the alternative was to keep
|
|
87
|
+
demanding an artifact that is sometimes fiction. The plan section still makes the block the
|
|
88
|
+
default when there is work to design.
|
|
89
|
+
- Plan mode read as "research-only mode" rather than "always produce a plan", which is what a bare
|
|
90
|
+
`/plan` toggle already meant in practice.
|
|
91
|
+
- Quoted or fenced plan syntax no longer invalidates a reply, so a reply may discuss the format
|
|
92
|
+
without being repaired.
|
|
93
|
+
- `blocked` is unchanged: it still reports a required decision that `ask_user` could not obtain, and
|
|
94
|
+
the terminal still warns about it.
|
|
95
|
+
- New final replies still must not use `<plan_clarification>` or free-text questions; `ask_user`
|
|
96
|
+
remains the clarification channel.
|
|
97
|
+
|
|
98
|
+
## Alternatives
|
|
99
|
+
|
|
100
|
+
- **Keep requiring a block and allow a "nothing to do" sentence inside it.** Rejected: that is the
|
|
101
|
+
ceremony the defect is about, and it makes a no-op plan look like a plan.
|
|
102
|
+
- **Add a `<no_plan>` tag.** Rejected: symmetric and simple to parse, but it still forces an
|
|
103
|
+
artifact and a repair for every request, so the person's "do nothing" instruction is again
|
|
104
|
+
overridden.
|
|
105
|
+
- **Add a plan tool.** Rejected for now: it changes the tool list and the cached prompt prefix, and
|
|
106
|
+
needs new renderer paths in both surfaces, for a problem a classification change solves.
|
|
107
|
+
- **Drop the repair entirely.** Rejected: an incomplete block is a real, observable failure, and one
|
|
108
|
+
bounded turn fixes it without costing the card.
|
|
109
|
+
- **Keep raw substring counting.** Rejected: a reply that quotes the tags was already misclassified,
|
|
110
|
+
and with `no_plan` in place the false `invalid` would trigger the repair for a correct answer.
|
|
111
|
+
|
|
112
|
+
## Checks
|
|
113
|
+
|
|
114
|
+
`src/sessions/planMode.test.ts` covers the outcome table, the code-fence rule, repair exclusion for
|
|
115
|
+
`no_plan` and the instruction text. `src/sessions/sessions.test.ts` covers a plain no-plan reply
|
|
116
|
+
with no repair and no warning, a repaired no-plan reply, and a malformed block repaired once.
|
|
117
|
+
`src/terminal/piExtension.lifecycle.test.ts`, `src/terminal/opentui/app.test.ts` and
|
|
118
|
+
`src/terminal/tui/runtime.socket.test.ts` cover the same contract at the terminal's settlement
|
|
119
|
+
boundary and in the plan choice. The App needs no code change: it renders a card only for a complete
|
|
120
|
+
block and shows nothing otherwise.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0078
|
|
3
|
+
title: A reply waiting on subagents is judged by its children, and the working row names the wait
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-11-01
|
|
6
|
+
updated: 2026-11-01
|
|
7
|
+
related:
|
|
8
|
+
- ADR-0054
|
|
9
|
+
---
|
|
10
|
+
# ADR-0078 — A reply waiting on subagents is judged by its children
|
|
11
|
+
|
|
12
|
+
## Context
|
|
13
|
+
|
|
14
|
+
Run `da1a7e39` ("Fix follow-up steering UX") looked stuck for 19 minutes: a spinner and a random
|
|
15
|
+
verb on the working row, a spinning subagent, and a trajectory of 40 identical heartbeats. Nothing
|
|
16
|
+
was wrong. The parent was inside `wait_subagents` and its child (run `5cd1d8aa`) did a tool call or
|
|
17
|
+
a model request every minute until it finished. The person could not tell that from a hang, and the
|
|
18
|
+
harness could not either: the stall watch saw one tool running (30-minute limit) and none of the
|
|
19
|
+
child's progress, so a child that really wedged would have held the parent for half an hour and then
|
|
20
|
+
ended the parent, not the child.
|
|
21
|
+
|
|
22
|
+
Two other limits made real outages worse: Pi's default of three retries at 2, 4 and 8 seconds ended a
|
|
23
|
+
reply after about fourteen seconds of network trouble, and the retry showed only as a passing toast.
|
|
24
|
+
|
|
25
|
+
## Decision
|
|
26
|
+
|
|
27
|
+
- Each subagent the terminal reply waits on has its own stall clock in `TerminalController`: its last
|
|
28
|
+
event other than a heartbeat and the tools it is inside. A child quiet for the reply window (15
|
|
29
|
+
minutes) or inside one tool for the tool window (30) is interrupted with reason `stalled`; the wait
|
|
30
|
+
returns it as `interrupted` and the parent continues without the person.
|
|
31
|
+
- While the only running tools of the reply are `wait_subagents` or `spawn_subagent`, the parent's own
|
|
32
|
+
rule is paused as long as a child answers to its own watch. It resumes if no child is tracked or a
|
|
33
|
+
child ignored the stop for five minutes.
|
|
34
|
+
- Heartbeats carry `activeTools` and `oldestToolMs`; the trajectory page shows what a beat was
|
|
35
|
+
inside and folds runs of beats into one row.
|
|
36
|
+
- The working row names the phase (waiting on subagents, a long tool, a silent model, a retry
|
|
37
|
+
countdown) in place of the verb whenever the verb would hide it.
|
|
38
|
+
- Model requests that fail for a transient reason are retried up to eight times over about four
|
|
39
|
+
minutes. A person's own `retry` settings are kept.
|
|
40
|
+
|
|
41
|
+
## Consequences
|
|
42
|
+
|
|
43
|
+
A long, healthy wait is no longer cut short, and a wedged child no longer costs the parent. The
|
|
44
|
+
retry budget lengthens the time before a real outage reaches the person, and the row shows the
|
|
45
|
+
countdown meanwhile. Constants (15 and 30 minutes, five-minute grace, eight retries) are unchanged
|
|
46
|
+
or new knobs in `stallWatch.ts` and `retryPolicy.ts`.
|