@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,123 @@
|
|
|
1
|
+
# Cross-arm comparison insights
|
|
2
|
+
|
|
3
|
+
Standing conclusions from the arm audits (arms 01–10, `docs/study/arms/`).
|
|
4
|
+
Each insight cites the arm that backs it. These are the ideas with the highest
|
|
5
|
+
leverage for designing this harness; per-action items live in `roadmap.md`.
|
|
6
|
+
|
|
7
|
+
## 1. Everyone rebuilt the same five-layer architecture
|
|
8
|
+
|
|
9
|
+
Prompt assembly, tool registry + gate, subagent machinery, compaction/context,
|
|
10
|
+
and durable records appeared independently in opencode, omp, dsh, harness² and
|
|
11
|
+
ours — with the same *problems*, not the same *solutions* (arms 01–06, 08–09).
|
|
12
|
+
The design space is covered; the interesting work is picking positions per
|
|
13
|
+
layer, not inventing layers. Harness² even distributes the same c1–c8 component
|
|
14
|
+
taxonomy across substrates (`external/harness2/harness2/core/prompts.py:424-431`)
|
|
15
|
+
that this harness independently uses for its trees — and this harness's
|
|
16
|
+
`src/refine/` is a documented port of harness² (arm 10). Convergence is
|
|
17
|
+
evidence both directions were right.
|
|
18
|
+
|
|
19
|
+
## 2. The stable prefix is an invariant, dynamic content is a protocol
|
|
20
|
+
|
|
21
|
+
Four projects converge hard: keep system prompt byte-stable; put changing state
|
|
22
|
+
into *appended*, dated, superseding messages (omp user-turn reminder
|
|
23
|
+
`date-cwd-reminder.ts:44-48`; dsh "Current runtime context… supersedes earlier"
|
|
24
|
+
snapshot `system-prompt/src/index.ts:314-318`; opencode instruction deltas
|
|
25
|
+
between history and the prompt; ours: `xingular-context`). The subtle
|
|
26
|
+
engineering is where volatile values may NOT live (omp: a tail date line
|
|
27
|
+
invalidated the whole tool array). Never place date/cwd/workspace state in the
|
|
28
|
+
prefix; never rewrite sections in place (arm 01, A1).
|
|
29
|
+
|
|
30
|
+
## 3. There are only three sincere answers to "who contributed this prompt text"
|
|
31
|
+
|
|
32
|
+
(a) **Declaration with an ordering contract** (dsh: numeric order → name ties,
|
|
33
|
+
duplicate names throw, scoped shadowing, `complete` replacement) — most
|
|
34
|
+
legible for caching and reasoning;
|
|
35
|
+
(b) **Ability/extension slots** (omp capabilities; opencode internal tools +
|
|
36
|
+
tool hooks) — most permissive;
|
|
37
|
+
(c) **A validated tree** (ours c1–c8; harness² tree files with machine
|
|
38
|
+
validation) — most durable, at the cost of pipeline ceremony.
|
|
39
|
+
Any addition to our prompt surface should strengthen (a)'s contract or (c)'s
|
|
40
|
+
machines, never invent a fourth pattern. When a plugin contributes a section,
|
|
41
|
+
deterministic ordering and duplicate rejection belong to the compiler
|
|
42
|
+
(`src/prompt/compile.ts`), not to plugin scheduling (arm 01, A2).
|
|
43
|
+
|
|
44
|
+
## 4. Tool interfaces are where public instruction lives
|
|
45
|
+
|
|
46
|
+
All sources push "how to use this" into tool descriptions and keep the system
|
|
47
|
+
prompt shorter. Where that text lives differs: inline strings (opencode),
|
|
48
|
+
static md templates (omp: "Prompts never in code"), fully erased behind a
|
|
49
|
+
generated SDK (dsh's PTC), whole prose files (claude-code's TODOWRITE
|
|
50
|
+
descendant in opencode `todowrite.txt`). For this harness, md-template
|
|
51
|
+
descriptions are the highest leverage per line changed: reviewable diffs,
|
|
52
|
+
`{product}` interpolation stays (arm 02, A3).
|
|
53
|
+
|
|
54
|
+
## 5. Gate taxonomies converge on *tiers × per-call decisions*
|
|
55
|
+
|
|
56
|
+
read/write/exec tier declarations + per-call allow/deny/ask outcomes +
|
|
57
|
+
fail-closed defaults, expressed as tiers (omp), per-leaf asserts (opencode),
|
|
58
|
+
pipeline events (dsh) or a final gate (ours). Two universals worth canonizing
|
|
59
|
+
here: **policy missing ⇒ ask**, and **one-time escalations with audit trails**
|
|
60
|
+
(dsh sandbox escalation ≈ our single-use approvals). Hooks may *advise*;
|
|
61
|
+
neither hooks nor tools *decide* (arm 07, G2).
|
|
62
|
+
|
|
63
|
+
## 6. Subagent geometry: fresh children, explicit delivery, no forks
|
|
64
|
+
|
|
65
|
+
Inheritance of parent history into children is rare (only dsh's explicit
|
|
66
|
+
`fork`; omp/ours/claude-code/opencode default fresh). Delivery splits between
|
|
67
|
+
block-on-result (simpler, slower), background + never-poll instruction
|
|
68
|
+
(opencode), and receipts with automatic delivery (ours). Depth and capacity
|
|
69
|
+
defaults (8 active / depth 1 dsh) are good calibrations. dsh's `fork` is the
|
|
70
|
+
one mechanism worth studying further but the anti-pattern posture ("no more
|
|
71
|
+
capabilities than you") should stay (arm 03).
|
|
72
|
+
|
|
73
|
+
## 7. Compaction is a strategy ladder, not a single pass
|
|
74
|
+
|
|
75
|
+
Trigger at a formula of the window; prune oversized tool outputs first;
|
|
76
|
+
summarize to a fixed, named template; keep a verbatim tail checkpoint; retry
|
|
77
|
+
down-scaled on provider rejection; log usage at the anchor + estimates beyond.
|
|
78
|
+
The distinctive frontier is opencode's whole-transcript-to-summarizer-for-
|
|
79
|
+
cache-reuse against omp's deterministic, no-LLM archive rung (snapcompact) —
|
|
80
|
+
an SRE-quality safety net no other source has. For this harness: adopt the
|
|
81
|
+
shape and invariants; do not adopt the machinery (arm 05, C1–C3).
|
|
82
|
+
|
|
83
|
+
## 8. Memory products are files with contracts, not databases
|
|
84
|
+
|
|
85
|
+
Where memory is model-facing, it is a file (`MEMORY.md`, our Wiki, harness²'s
|
|
86
|
+
`LongTermMEMORY.md`) with caps, a lesson shape (cue/lesson, never task facts)
|
|
87
|
+
and redaction; where memory is engine-facing (mnemopi's `memory://`), it is an
|
|
88
|
+
optional accelerator, never the source of truth. dsh deliberately ships *no*
|
|
89
|
+
memory package — durability only (JSONL session log + todos + spill). The
|
|
90
|
+
difference between them is one offer: "does the next session need to behave
|
|
91
|
+
differently?" (arm 06, M1).
|
|
92
|
+
|
|
93
|
+
## 9. Measurement has exactly one defensible home inside the harness: after selection, decoupled
|
|
94
|
+
|
|
95
|
+
harness²'s judge reads only the chosen run, never feeds selection, fails to
|
|
96
|
+
None, and is excluded from denominators (`judge.py:15-19,37-40`). omp puts a
|
|
97
|
+
judgment role next to subagents; our family places measurement in Evaluation.
|
|
98
|
+
The adoptable principle is the *decoupling shape*, whatever module ends up
|
|
99
|
+
owning the measurement (arm 10, R4 — decide layering before porting).
|
|
100
|
+
|
|
101
|
+
## 10. Editorial discipline is a competitive feature
|
|
102
|
+
|
|
103
|
+
harness² turns prompt-writing conventions into machine validation: unnamed
|
|
104
|
+
skills discarded, template braces rejected, unshipped scripts rejected,
|
|
105
|
+
always-on prose priced by output budget ("ALWAYS-ON PROSE IS THE EXPENSIVE
|
|
106
|
+
OPTION", `prompts.py:129-146`). omp similarly: prompts never in code, model
|
|
107
|
+
policy never code (KDL tables), one JSON judge-questions file per feature.
|
|
108
|
+
This harness already validates trees; the opportunity is extending
|
|
109
|
+
validation to prompt-behavior contracts spotted above (trigger lines, delta
|
|
110
|
+
protocols, tier coverage) rather than more prose (arms 01, 02, 04, 10).
|
|
111
|
+
|
|
112
|
+
## 11. Anti-patterns known across sources
|
|
113
|
+
|
|
114
|
+
- Instruction discovery with no caps (opencode AGENTS.md walk) — unbounded cost
|
|
115
|
+
drift into sessions.
|
|
116
|
+
- Model-conditional code (`id.includes("claude")`-style) — omp bans it; policy
|
|
117
|
+
belongs in tables (omp KDL; opencode's per-model prompt plugins are the
|
|
118
|
+
hook-flavored equivalent).
|
|
119
|
+
- Any module that can rewrite its own pending tool call (claude-code
|
|
120
|
+
PreToolUse mutation, harness² plugin `tool` registration for *capability
|
|
121
|
+
edits* mid-run needs trust gating we already have for c8).
|
|
122
|
+
- Polling loops from the model (opencode had to say "DO NOT sleep, poll" in
|
|
123
|
+
the spawn tool description; ours prevents it structurally with receipts).
|
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: STUDY-0002
|
|
3
|
+
title: Proactive autonomy — a harness with its own readable agenda
|
|
4
|
+
status: research-and-hypotheses
|
|
5
|
+
created: 2026-10-23
|
|
6
|
+
updated: 2026-10-23
|
|
7
|
+
related:
|
|
8
|
+
- STUDY-0001
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Proactive autonomy: a harness with its own readable agenda
|
|
12
|
+
|
|
13
|
+
**Recommendation:** explore three connected features: **Night Shift**, which decides what
|
|
14
|
+
deserves work; **Product Ghosts**, which experiences the UI and repairs friction; and
|
|
15
|
+
**Evolution Garden**, which turns cleanup and feature ideas into experiments it can learn
|
|
16
|
+
from. Let the system take initiative and present evidence afterward. Keep its intentions,
|
|
17
|
+
decisions and uncertainty readable enough for a person to redirect in a minute.
|
|
18
|
+
|
|
19
|
+
This is exploratory research, not an accepted specification or an implementation. The feature
|
|
20
|
+
directions are deliberately open-ended, as requested. Their combinations are proposed ideas;
|
|
21
|
+
novelty has not been established by an exhaustive prior-art search. Research date: 2026-10-23.
|
|
22
|
+
|
|
23
|
+
## Reading map and scope
|
|
24
|
+
|
|
25
|
+
This document combines the current foundation's source and binding specification with fresh
|
|
26
|
+
primary-source research. Detailed external findings are in [proactive systems](autonomy-sources.md)
|
|
27
|
+
and [autonomous engineering](autonomous-engineering-sources.md). The appendices below record
|
|
28
|
+
how the three ideas were generated and what would make them fail.
|
|
29
|
+
|
|
30
|
+
The user's seeds were recurring jobs, choosing the next action without a command, finding UI
|
|
31
|
+
problems, cleanup, new features, analytics, and accepting more risk for a more interesting
|
|
32
|
+
product. The follow-up confirmed that **all of those areas** matter. Personal examples of
|
|
33
|
+
past failures and actual product analytics were not supplied; user-value claims remain
|
|
34
|
+
hypotheses. Nothing in this study establishes that a surveyed system can independently run
|
|
35
|
+
a successful product team.
|
|
36
|
+
|
|
37
|
+
Evidence labels used throughout:
|
|
38
|
+
|
|
39
|
+
- **Observed source:** a behavior is visible in the inspected implementation or local snapshot.
|
|
40
|
+
- **Documented:** a first party describes a capability; it was not exercised here.
|
|
41
|
+
- **Reported research:** the authors report an experiment; results were not reproduced here.
|
|
42
|
+
- **Hypothesis:** a proposed design or inference for this package and its host.
|
|
43
|
+
|
|
44
|
+
## What the other systems teach
|
|
45
|
+
|
|
46
|
+
| System | Primary-source finding | What to borrow |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| OpenClaw | Current source consolidates proactive work into Automations, with persistent job scratch, occurrence outcomes and quiet result handling. Some live heartbeat guidance trails source. | Keep the durable obligation and the human notification as separate things. [Migration source](https://github.com/openclaw/openclaw/blob/42c0d5a8f9d00e113c48090c3d259977e67b5b5a/docs/gateway/heartbeat.md), [detailed audit](autonomy-sources.md). |
|
|
49
|
+
| Paperclip | Its activity gate, routine coalescing and no-progress throttling explicitly address agents repeatedly waking themselves. Its run/issue links expose ownership. | A useful autonomy loop must recognize its own activity and avoid treating it as new demand. [Activity-gate contract](https://github.com/paperclipai/paperclip/blob/def4726bea0e3b340457100038d80ca55c2b7d4f/skills/paperclip/references/routines.md#L87), [detailed audit](autonomy-sources.md). |
|
|
50
|
+
| Letta Code | Its current reflection direction uses versioned memory files and separate worktrees; the older server sleep-time model is being sunset. | Prepare future context between foreground runs; retain a readable memory diff. [Reflection procedure](https://github.com/letta-ai/letta-code/blob/035bb8c8917b5dd94a3989d4adf04860a2ce8fea/src/agent/subagents/builtin/reflection-v2.md), [migration evidence](autonomy-sources.md). |
|
|
51
|
+
| Claude Code | An editable default maintenance order already exists; session scheduling and hosted scheduling have different lifecycles. | Differentiate on judgment. [Scheduled tasks](https://code.claude.com/docs/en/scheduled-tasks). |
|
|
52
|
+
| Anthropic long-running harnesses | Progress artifacts support continuity; browser evidence can locate a source handler; evaluator complexity depends on workload and model. | Persist handoffs and use the running product as evidence. [2025 experiment](https://www.anthropic.com/research/effective-harnesses-for-long-running-agents), [2026 experiment](https://www.anthropic.com/research/harness-design-long-running-apps). |
|
|
53
|
+
| OpenHands | SDK conversation execution and the automation service's scheduling, dispatch and history have distinct owners. | Add a host control loop around the foundation. [SDK](https://github.com/OpenHands/software-agent-sdk/blob/main/README.md), [automation](https://github.com/OpenHands/automation/blob/main/README.md). |
|
|
54
|
+
| Cursor Automations | Cron/event starts, persistent editable memories, browser interaction and PR creation are already documented capabilities. | A scheduled coding agent is an existing baseline. The opportunity is explaining and improving its choices. [Automations](https://cursor.com/docs/cloud-agent/automations). |
|
|
55
|
+
| SWE-agent / mini-swe-agent | The project now recommends its simpler successor; issue-repair benchmarks supply the problem to solve. | Keep execution small. Task selection requires additional evidence. [Current project direction](https://github.com/SWE-agent/SWE-agent/blob/main/README.md), [successor](https://github.com/SWE-agent/mini-swe-agent/blob/main/README.md). |
|
|
56
|
+
| OMP | The inspected snapshot persists a goal, tracks budgets, steers continuation and fingerprints tool activity to detect repeated work. | Make completion and lack of progress explicit. This is evidence of continuation, not a durable cron service. [Local goal state](../../external/omp/packages/coding-agent/src/goals/state.ts), [runtime](../../external/omp/packages/coding-agent/src/goals/runtime.ts). |
|
|
57
|
+
| LangGraph | Checkpointers persist thread execution state; stores persist information across threads. Replay after a checkpoint can re-execute subsequent API calls. | A saved conversation and a recoverable external action need distinct treatment. [Persistence](https://docs.langchain.com/oss/python/langgraph/persistence), [checkpointers](https://docs.langchain.com/oss/python/langgraph/checkpointers). |
|
|
58
|
+
|
|
59
|
+
**Reported research:** Agentic Harness Engineering associates edits with predictions and later
|
|
60
|
+
outcomes, and reports improvements on coding benchmarks. This supports investigating evidence
|
|
61
|
+
and decision records; it does not prove that autonomous product changes improve customer value.
|
|
62
|
+
The abstract is sufficient for that limited claim; this study did not reproduce its experiments
|
|
63
|
+
or audit the complete method. [AHE, v4, 2026-05-18](https://arxiv.org/abs/2604.25850v4).
|
|
64
|
+
|
|
65
|
+
**Reported research:** TriggerBench and ProEvent expose missed proactive actions, excessive
|
|
66
|
+
actions and cancellation problems in their respective memory/chat settings. These motivate
|
|
67
|
+
explicit future-intent records and measuring false actions; they do not predict local failure
|
|
68
|
+
rates. [TriggerBench](https://arxiv.org/abs/2606.23459), [ProEvent](https://arxiv.org/abs/2607.17701).
|
|
69
|
+
|
|
70
|
+
**Synthesis:** wakeups are becoming ordinary infrastructure. A more interesting system makes
|
|
71
|
+
three decisions well: *what deserves attention, what intervention to try, and whether the
|
|
72
|
+
result deserves to survive*. That is the organizing idea for the three features below.
|
|
73
|
+
|
|
74
|
+
## Current foundation and the missing loop
|
|
75
|
+
|
|
76
|
+
The package already owns much of the execution substrate. An older
|
|
77
|
+
[feature-gap review](feature-gap-review.md) includes a historical overview plus later landed
|
|
78
|
+
capabilities; its original missing-browser row should not be read as today's browser inventory.
|
|
79
|
+
Current source and binding pages take precedence.
|
|
80
|
+
|
|
81
|
+
| Need | What exists now | What remains |
|
|
82
|
+
|---|---|---|
|
|
83
|
+
| Readable progress | Whole-list `checklist_write` updates persisted as run events | A durable agenda and acceptance state across runs, owned by the host |
|
|
84
|
+
| Recovery | `runs.continuation` describes a stopped run; `continueFrom` starts a new run with the prior pins | Host scheduling, durable work identity, leases, reconciliation and a decision to continue |
|
|
85
|
+
| Remembering useful lessons | Opt-in lessons reflection stores general lessons through the Wiki API | A durable scouting/consolidation queue; the current lessons queue is process-local |
|
|
86
|
+
| Seeing a web UI | Navigation, snapshots, reading and screenshots | Mapping observed elements to their source ownership; unattended interaction against a disposable environment |
|
|
87
|
+
| Knowing what a run cost | Validated usage/tool/status events and trajectory reads | Host outcome aggregation and product telemetry; run usage is not customer analytics |
|
|
88
|
+
| Checking tool readiness | Doctor local checks and explicitly confirmed live probes | A recurring product-quality observer; Doctor itself is not an autonomous maintenance scheduler |
|
|
89
|
+
|
|
90
|
+
Source anchors: [sessions input](../../src/sessions/sessions.ts) (`:73`, `:108`),
|
|
91
|
+
[checklist and usage schemas](../../src/sessions/contracts.ts) (`:146`, `:180`),
|
|
92
|
+
[continuation](../../src/sessions/continuation.ts) (`:46`, `:96`),
|
|
93
|
+
[lessons queue](../../src/history/lessons.ts) (`:93`),
|
|
94
|
+
[browser tools](../../src/browser/tools.ts) (`:20`, `:61`, `:156`),
|
|
95
|
+
[Doctor contracts](../../src/doctor/types.ts) (`:27`, `:54`).
|
|
96
|
+
|
|
97
|
+
Two constraints matter before any unattended pilot:
|
|
98
|
+
|
|
99
|
+
1. **Browser interaction currently needs attendance.** `attendedOnly` in
|
|
100
|
+
`src/browser/tools.ts:61` refuses page actions for unattended runs and subagents. A screenshot
|
|
101
|
+
scout is available; a cron worker clicking through forms is not enabled by selecting those
|
|
102
|
+
tool names. A host could supply its own isolated interaction provider through existing
|
|
103
|
+
surfaces, subject to its policy. Relaxing the foundation backend would require a proposal.
|
|
104
|
+
2. **The unattended flag is not a complete interaction guarantee.** It configures no context-file
|
|
105
|
+
discovery in `src/sessions/runner.ts:574`. However, the general gate's approval refusal is
|
|
106
|
+
trigger-specific (`src/sessions/sessions.ts:198`), and `ask_user` is constructed independently
|
|
107
|
+
of that flag (`:397`). The flag alone therefore does not establish `INV-RUN-5`. This static
|
|
108
|
+
source finding is recorded as [known drift D-11](../architecture/README.md#known-drift);
|
|
109
|
+
it was not reproduced in a live model session.
|
|
110
|
+
|
|
111
|
+
### Ownership that keeps the ideas compatible
|
|
112
|
+
|
|
113
|
+
**Foundation:** run execution, pinning, compiler, capabilities, per-call gate, run evidence,
|
|
114
|
+
memory APIs and generic observation tools. **Variant:** mutable c1–c8 behavior committed
|
|
115
|
+
through the existing validated door. **Host:** intentions, schedules, cross-run agenda, product
|
|
116
|
+
events, workspaces, deployment decisions and the human UI. The ownership rules are in
|
|
117
|
+
[00 Overview](../architecture/00-overview.md), [seven surfaces](../architecture/01-extension-points.md)
|
|
118
|
+
and the [family routing guide](../../../AGENTS.md).
|
|
119
|
+
|
|
120
|
+
The host can begin by supplying a mandate and current evidence through `SessionRunInput.text`
|
|
121
|
+
or a dynamic `launch.sections` entry, with action decisions through `ToolPolicy` and tools
|
|
122
|
+
through `ToolProvider`. Unattended resource discovery intentionally does not load arbitrary
|
|
123
|
+
project context files: the host must explicitly supply the chosen content. Changing state
|
|
124
|
+
continues to arrive through the prompt compiler's updates, not a rewritten system prefix.
|
|
125
|
+
These are proposed uses of existing surfaces, not a new eighth surface.
|
|
126
|
+
|
|
127
|
+
Keep a human-editable mandate in a **host-owned document**, not in Wiki notes masquerading as
|
|
128
|
+
instructions. The Wiki remains reference material under `INV-MEM-1`. Keep agenda/experiment
|
|
129
|
+
records outside `runs/<id>/`; the host does not become a run-record writer.
|
|
130
|
+
|
|
131
|
+
## 1. Night Shift
|
|
132
|
+
|
|
133
|
+
**Hypothesis:** give the system a standing intention, and it should come back with work worth
|
|
134
|
+
having done. A person writes something like “make the first successful session feel effortless”;
|
|
135
|
+
Night Shift decides whether today's next useful move is repairing a failed journey, finishing
|
|
136
|
+
an abandoned change, cleaning a recurring source of trouble, or trying a small feature.
|
|
137
|
+
|
|
138
|
+
The product feeling is a colleague who arrived early and left a useful desk note. The person
|
|
139
|
+
opens the application to see what the system noticed, why it chose that work, and the actual
|
|
140
|
+
result. The agenda stays editable: changing its direction affects future runs without needing
|
|
141
|
+
another conversation or erasing the old decision record.
|
|
142
|
+
|
|
143
|
+
An illustrative host document, **not a proposed parser contract**:
|
|
144
|
+
|
|
145
|
+
```markdown
|
|
146
|
+
# Night Shift
|
|
147
|
+
Direction: Make first success easier and keep this project pleasant to change.
|
|
148
|
+
Look for: broken journeys, repeated friction, recurring failures, useful simplifications.
|
|
149
|
+
Explore: one unexpected idea when evidence suggests something is missing.
|
|
150
|
+
Freedom: choose work and prepare working changes without a new task from me.
|
|
151
|
+
Deliver: a usable preview, what changed, and what still looks uncertain.
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
A scheduled or event-triggered wake checks what changed since its last meaningful decision,
|
|
155
|
+
selects an obligation, and runs one bounded piece of it. Its persistent agenda can distinguish
|
|
156
|
+
unfinished work, fresh opportunities, intentional waiting, cancelled ideas and work already
|
|
157
|
+
being done elsewhere. No new evidence is a valid reason to sleep. A completed run is evidence
|
|
158
|
+
about a turn; it does not automatically close the larger obligation.
|
|
159
|
+
|
|
160
|
+
**Why it could feel new:** the agenda is both the operating agreement and the person's control
|
|
161
|
+
surface. The user changes direction in ordinary prose; the system maintains a concrete view
|
|
162
|
+
of the next action and its evidence. Existing schedules and goal loops are ingredients. The
|
|
163
|
+
proposed value is how naturally a person can supervise an agent that chooses its own work.
|
|
164
|
+
|
|
165
|
+
**Safety traded for coolness:** allow the system to pick unassigned work, reinterpret priorities
|
|
166
|
+
within the mandate, and commit ordinary maintenance to its branch before a human reviews it.
|
|
167
|
+
The owner accepts wasted work and occasional misguided changes. A particularly adventurous
|
|
168
|
+
host could preauthorize integration of a narrow maintenance class and show an undoable receipt;
|
|
169
|
+
this is a future product choice, not present authorization or an implemented behavior.
|
|
170
|
+
|
|
171
|
+
**First revealing demonstration:** leave one project overnight with an unfinished obligation,
|
|
172
|
+
one fresh failure and stale noise. The morning result should show why one thing deserved work,
|
|
173
|
+
what actually changed, what was left alone, and what would trigger the next wake. Include a
|
|
174
|
+
restart and a cancelled obligation in the pilot; a credible system must preserve both decisions.
|
|
175
|
+
|
|
176
|
+
**Riskiest assumption:** the system can choose work the owner values. More defensible starting
|
|
177
|
+
point: let it select among observed failures and unfinished commitments before expanding into
|
|
178
|
+
new initiatives. Judge it by retained useful changes and owner corrections, not run count.
|
|
179
|
+
|
|
180
|
+
## 2. Product Ghosts
|
|
181
|
+
|
|
182
|
+
**Hypothesis:** the harness should experience the product through several believable points of
|
|
183
|
+
view, remember where each journey hurts, and return with a repair already demonstrated.
|
|
184
|
+
|
|
185
|
+
One ghost arrives with an empty account and no product vocabulary. Another uses only a
|
|
186
|
+
keyboard. Another returns to an interrupted session. These are **synthetic probes**, not
|
|
187
|
+
validated substitutes for real people. Their purpose is to expose plausible friction and
|
|
188
|
+
produce repeatable journeys, which actual usage and human reactions can later confirm.
|
|
189
|
+
|
|
190
|
+
Instead of “button looks odd,” a ghost leaves a little story: “I tried to start, reached an
|
|
191
|
+
empty screen, could not tell whether it was loading, and stopped.” It links the route, state,
|
|
192
|
+
viewport, screenshot and action sequence to the candidate component or handler. It then makes
|
|
193
|
+
a change and reruns the same journey. The morning artifact can put the old and new experiences
|
|
194
|
+
side by side, including what remains uncertain.
|
|
195
|
+
|
|
196
|
+
Knowing where to fix the UI requires a causal trail:
|
|
197
|
+
|
|
198
|
+
```mermaid
|
|
199
|
+
flowchart LR
|
|
200
|
+
A[Journey and observed friction] --> B[Reproduce in disposable app]
|
|
201
|
+
B --> C[Map route and element to source]
|
|
202
|
+
C --> D[Patch the owning component]
|
|
203
|
+
D --> E[Replay the same journey]
|
|
204
|
+
E --> F[Readable before and after]
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**Hypothesis, implementation direction:** combine browser evidence with code search, route
|
|
208
|
+
manifests, source maps or framework metadata where available. Those techniques suggest an
|
|
209
|
+
owner; they are not a universal DOM-to-source mapping. Preserve failed source-location attempts
|
|
210
|
+
as uncertainty instead of inventing a component address. For terminal UI, an equivalent ghost
|
|
211
|
+
would need a host PTY/terminal interaction surface; web browser tools do not inspect a TUI.
|
|
212
|
+
|
|
213
|
+
Source ownership matters in this repository family. A problem with a shared primitive, font,
|
|
214
|
+
spacing token or shell goes to the shared UI package; a page-specific behavior belongs to the
|
|
215
|
+
application. The ghost can learn that routing from host-supplied repository guidance. The
|
|
216
|
+
foundation should not contain application paths or special-case names.
|
|
217
|
+
|
|
218
|
+
**Why it could feel new:** each ghost has continuity. It remembers the point where it got stuck,
|
|
219
|
+
returns after a relevant change, and can say whether the product became easier to use. Pairing
|
|
220
|
+
that memory with a working repair makes it more useful than a scheduled screenshot report.
|
|
221
|
+
The underlying browser, patch and review mechanics already have precedents in the
|
|
222
|
+
[engineering source study](autonomous-engineering-sources.md).
|
|
223
|
+
|
|
224
|
+
**Safety traded for coolness:** permit unattended exploration and subjective presentation fixes
|
|
225
|
+
in a disposable app, including abandoning an existing design choice. The owner accepts taste
|
|
226
|
+
drift and false alarms in exchange for discovering issues nobody filed. Integration of those
|
|
227
|
+
patches is a separate autonomy setting; interactive exploration needs the host provider or
|
|
228
|
+
foundation proposal described above.
|
|
229
|
+
|
|
230
|
+
**First revealing demonstration:** give the ghosts several real journeys without telling them
|
|
231
|
+
where the known defects are. Compare discoveries with a maintainer's independent list. The
|
|
232
|
+
interesting result is one reproducible issue, a credible source owner, and a visible repair;
|
|
233
|
+
count invented defects and regressions as well as discoveries.
|
|
234
|
+
|
|
235
|
+
**Riskiest assumption:** synthetic frustration predicts human frustration. Start with observable
|
|
236
|
+
failures—clipping, unreachable controls, dead ends, lost state—and label preference judgments
|
|
237
|
+
as speculative. Real customer feedback must be able to overturn a ghost's opinion.
|
|
238
|
+
|
|
239
|
+
## 3. Evolution Garden
|
|
240
|
+
|
|
241
|
+
**Hypothesis:** give the system a small allowance to improve the product, and let it grow useful
|
|
242
|
+
features while pruning work that no longer earns its complexity. Its memory should record
|
|
243
|
+
which ideas failed and why, so future runs can stop rediscovering them.
|
|
244
|
+
|
|
245
|
+
This joins analytics, cleanup and feature invention in one loop. A recurring detour suggests
|
|
246
|
+
a shortcut; a repeated support request suggests a missing capability; a brittle duplicate
|
|
247
|
+
suggests simplification. The agent writes a prediction, prepares an intervention and looks for
|
|
248
|
+
an outcome. Sometimes its best feature idea is removing a step or consolidating two controls.
|
|
249
|
+
|
|
250
|
+
An illustrative experiment note:
|
|
251
|
+
|
|
252
|
+
```markdown
|
|
253
|
+
# A smaller first-run experience
|
|
254
|
+
Signal: People repeatedly open settings before their first successful action.
|
|
255
|
+
Guess: They are looking for a required choice that is hidden there.
|
|
256
|
+
Alternative: They may simply be exploring; the event names may also be misleading.
|
|
257
|
+
Bet: Put that choice beside the first action and remove the duplicate detour.
|
|
258
|
+
Expected result: More first attempts reach success without extra errors.
|
|
259
|
+
Observation: Pending real usage; the synthetic journey only confirms it can work.
|
|
260
|
+
Decision: Keep, revise or revert after the outcome window.
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
The example is invented, not a finding about current users. There is no inspected product
|
|
264
|
+
telemetry dataset in this study. The host would need event definitions, feedback, release
|
|
265
|
+
identity and outcomes. Run cost and tool failures can guide engineering maintenance today;
|
|
266
|
+
they cannot establish that customers need a new feature. Observational changes alone do not
|
|
267
|
+
prove causality, and missing telemetry is uncertainty rather than a zero.
|
|
268
|
+
|
|
269
|
+
Cleanup gets the same treatment. “No imports found” is a lead, not proof of dead code: public
|
|
270
|
+
exports, plugins, dynamic loading and generated entry points can matter. The agent can propose
|
|
271
|
+
a removal and demonstrate the behavior it checked. Low feature usage alone is also insufficient
|
|
272
|
+
evidence for deletion. The interesting power is being willing to simplify the product when
|
|
273
|
+
several forms of evidence agree.
|
|
274
|
+
|
|
275
|
+
**Why it could feel new:** the system develops an explicit, revisable taste for what deserves
|
|
276
|
+
to survive. Its decision journal can say “I tried this, it did not help, and here is what would
|
|
277
|
+
make it worth revisiting.” A removed idea remains discoverable; a person can revive it with
|
|
278
|
+
new evidence. The proposed journal borrows the prediction/outcome idea discussed in
|
|
279
|
+
[AHE](https://arxiv.org/abs/2604.25850v4), but customer-value optimization remains unverified.
|
|
280
|
+
|
|
281
|
+
**Safety traded for coolness:** let the system invent and implement small experiments, prune
|
|
282
|
+
ordinary code and revise its own priority ordering without a task-by-task instruction. A
|
|
283
|
+
future host could additionally allow a limited rollout and automatic rollback. The owner
|
|
284
|
+
accepts temporary regressions and failed bets in exchange for continuous product exploration.
|
|
285
|
+
Undo should include configuration and rollout state: reverting a commit does not reverse a
|
|
286
|
+
customer action or every data effect.
|
|
287
|
+
|
|
288
|
+
**First revealing demonstration:** take a project with existing friction evidence, prepare one
|
|
289
|
+
new capability and one simplification, and state what would justify keeping either. Release
|
|
290
|
+
measurement comes only when the host has real telemetry and an authorized rollout mechanism;
|
|
291
|
+
without those, the honest output is a working preview with an untested value hypothesis.
|
|
292
|
+
|
|
293
|
+
**Riskiest assumption:** observed signals identify a valuable intervention. Require competing
|
|
294
|
+
explanations and retain rejected predictions. Do not reward the agent for generating more
|
|
295
|
+
ideas, deleting more lines or increasing its own activity.
|
|
296
|
+
|
|
297
|
+
## How they fit together
|
|
298
|
+
|
|
299
|
+
```mermaid
|
|
300
|
+
flowchart TD
|
|
301
|
+
M[Human editable mandate] --> N[Night Shift chooses attention]
|
|
302
|
+
S[Schedule or new evidence] --> N
|
|
303
|
+
N --> G[Product Ghosts find and repair friction]
|
|
304
|
+
N --> E[Evolution Garden tests features and simplification]
|
|
305
|
+
G --> R[Existing foundation runs and evidence]
|
|
306
|
+
E --> R
|
|
307
|
+
R --> J[Readable agenda and decision journal]
|
|
308
|
+
J --> N
|
|
309
|
+
U[Human corrections and real product outcomes] --> J
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
This is a conceptual flow, not new internal modules. Start with Night Shift's durable agenda,
|
|
313
|
+
use Product Ghosts for concrete evidence, then let Evolution Garden widen the initiative.
|
|
314
|
+
The first version could live largely in a host using today's execution surfaces. A generic
|
|
315
|
+
reusable host package might become worthwhile after a second consumer demonstrates the seam;
|
|
316
|
+
moving schedules into the foundation is not required to explore these ideas.
|
|
317
|
+
|
|
318
|
+
### Where to spend the risk
|
|
319
|
+
|
|
320
|
+
The useful trade is **fewer approvals over work selection and ordinary reversible changes**,
|
|
321
|
+
plus more freedom to make subjective bets. Readable evidence and an undo path make that freedom
|
|
322
|
+
usable; neither guarantees the changes are correct. Keep the risk attached to a visible product
|
|
323
|
+
setting: choose work, prepare patches, integrate selected change classes, or run experiments.
|
|
324
|
+
An ambiguous sentence in a memory note should not silently expand the action setting.
|
|
325
|
+
|
|
326
|
+
The existing refinement method remains a different mechanism. Its probes do not act in the
|
|
327
|
+
world, its evidence stays answer-free, and adoption is a person's action
|
|
328
|
+
(`INV-REF-1`, `INV-REF-4`, `INV-REF-6`). Product-outcome experiments should initially use ordinary
|
|
329
|
+
runs and host records. Automatically adopting variants, feeding grader results into current
|
|
330
|
+
refinement, or editing foundation code from an improver would require explicit architecture
|
|
331
|
+
changes, not a reinterpretation of the word “automatic.”
|
|
332
|
+
|
|
333
|
+
### What would make the autonomy credible
|
|
334
|
+
|
|
335
|
+
These are **proposed evaluation questions**, not measured results or new benchmark tasks:
|
|
336
|
+
|
|
337
|
+
| Question | Evidence to inspect |
|
|
338
|
+
|---|---|
|
|
339
|
+
| Does it choose worthwhile work? | Changes retained by the owner; corrected priorities; false starts and rejected work |
|
|
340
|
+
| Does it know when to stop? | Repeated-work rate, intentional idle decisions, cancellations honored, stale suggestions suppressed |
|
|
341
|
+
| Does it repair the experienced problem? | Same journey before and after; correct source ownership; neighboring behavior and regressions |
|
|
342
|
+
| Does it improve something people value? | Defined product outcome, observation window, competing explanations and a defensible comparison |
|
|
343
|
+
| Is autonomy affordable? | Whole-obligation cost including scouting, critics, retries, reflection and abandoned experiments |
|
|
344
|
+
| Is it readable? | Whether a person can find the chosen action, reason, evidence, uncertainty and undo path without reading a transcript |
|
|
345
|
+
|
|
346
|
+
The scheduler should plan for at-least-once delivery and reconciliation of uncertain actions.
|
|
347
|
+
Durable occurrence IDs and worker leases prevent many duplicates; an external side effect
|
|
348
|
+
still needs an idempotency key or an explicit check of whether it happened. A normal “complete”
|
|
349
|
+
run event proves the run ended; product acceptance and keeping an experiment are host decisions.
|
|
350
|
+
This is design reasoning, not an exactly-once guarantee from the existing foundation.
|
|
351
|
+
|
|
352
|
+
## Appendix: idea generation and selection
|
|
353
|
+
|
|
354
|
+
**Frame:** move from a person assigning tasks to a system proposing and performing useful work
|
|
355
|
+
under an editable direction. Include people who have not adopted the product and the person who
|
|
356
|
+
must judge its output, not only the developer watching a terminal.
|
|
357
|
+
|
|
358
|
+
The following capability/context matrix is exploratory. All 30 cells are unvalidated raw
|
|
359
|
+
ideas, not additional recommended features. “Seed” identifies a direct extension of the user's
|
|
360
|
+
requested capabilities.
|
|
361
|
+
|
|
362
|
+
| Context | Choose attention | Experience a journey | Locate and change source | Remember across runs | Compare outcomes |
|
|
363
|
+
|---|---|---|---|---|---|
|
|
364
|
+
| Developer returning tomorrow | Prepare tomorrow's best next action (seed) | Replay yesterday's failed path | Finish the smallest abandoned patch | Preserve why other work was deferred | Show useful work retained after review |
|
|
365
|
+
| Maintainer away for a week | Select recurring failures before cosmetics (seed) | Revisit recently changed routes | Consolidate a duplicate at its owner (seed) | Remember what should never be auto-cleaned | Compare regressions and maintenance churn |
|
|
366
|
+
| First-time visitor who has not adopted | Find the first unexplained decision | Navigate with an empty account (seed) | Add a contextual hint beside the blockage | Keep an evolving first-visit story | Compare first success with prior behavior |
|
|
367
|
+
| Former user who abandoned the product | Revisit the reason they left | Return to an interrupted journey | Prepare a reduced version of a complex flow | Retain rejected assumptions about that user | Seek evidence that the original obstacle changed |
|
|
368
|
+
| Accessibility reviewer judging the output | Select inaccessible journeys | Complete a keyboard-only route | Fix shared focus behavior at its source | Retain an interaction ledger with uncertainty | Compare reachability and task success |
|
|
369
|
+
| Product owner looking for direction | Choose one unexplained usage pattern (seed) | Experience the suspected detour | Prepare a feature or remove a step (seed) | Keep a graveyard of disproved ideas | Compare an explicit prediction with an outcome (seed) |
|
|
370
|
+
|
|
371
|
+
Five obvious answers were transformed: a cron wrapper became a readable standing mandate;
|
|
372
|
+
a screenshot monitor became a remembering user journey; an automated linter became
|
|
373
|
+
evidence-based simplification; a feature suggestion box became a working experiment; a token
|
|
374
|
+
dashboard became a journal of cost versus retained outcomes.
|
|
375
|
+
|
|
376
|
+
The divergence lenses were **inversion** (the system acts and the person steers), **timing**
|
|
377
|
+
(new evidence earns a wake), **a garden analogy** (prune as well as grow), **extreme users**
|
|
378
|
+
(empty-account and keyboard-only journeys), and **removing the per-task instruction constraint**
|
|
379
|
+
(choose a useful obligation from direction). Six promising threads—readable mandate, durable
|
|
380
|
+
agenda, remembering journeys, source ownership, simplification and product bets—were merged
|
|
381
|
+
into the three recommended concepts.
|
|
382
|
+
|
|
383
|
+
The editorial scores below are judgments on a 1–5 scale, not measurements. Feasibility means
|
|
384
|
+
a focused local pilot; the user supplied no delivery deadline. Novelty rates the proposed
|
|
385
|
+
combination, not a claim to have invented its ingredients.
|
|
386
|
+
|
|
387
|
+
| Concept | Novelty | Pain addressed | Fit with this foundation | Pilot feasibility | Ease of getting evidence |
|
|
388
|
+
|---|---:|---:|---:|---:|---:|
|
|
389
|
+
| Night Shift | 3 | 5 | 5 | 4 | 4 |
|
|
390
|
+
| Product Ghosts | 4 | 4 | 4 | 3 | 4 |
|
|
391
|
+
| Evolution Garden | 4 | 4 | 3 | 2 | 2 |
|
|
392
|
+
|
|
393
|
+
## Research limits and source trace
|
|
394
|
+
|
|
395
|
+
Local source inspection used the working tree, which already contained unrelated terminal and
|
|
396
|
+
browser edits. No product code, cron jobs, permissions, model requests or deployments were
|
|
397
|
+
changed. The OMP comparison is pinned to local commit
|
|
398
|
+
`63a7ba5dcc74cca2cb0ecb710770eb756102035d`; key anchors are
|
|
399
|
+
`goals/runtime.ts:8`, `goals/state.ts:23` and `:50`, plus its
|
|
400
|
+
[continuation instruction](../../external/omp/packages/coding-agent/src/prompts/goals/goal-continuation.md).
|
|
401
|
+
It is a snapshot, not a claim about the latest upstream release.
|
|
402
|
+
|
|
403
|
+
The companion studies give external source identities, inspected portions, changed behavior
|
|
404
|
+
versus older guidance, and the limits of reported experiments. Live documentation can change;
|
|
405
|
+
versioned source has priority where those disagree. This study did not run surveyed products,
|
|
406
|
+
measure customer outcomes or prove general reliability. The first decision is whether the
|
|
407
|
+
three directions are desirable; formal proposals and implementation should follow concrete
|
|
408
|
+
pilots and the repository's architecture process.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Adoption roadmap — implementing these findings in this harness
|
|
2
|
+
|
|
3
|
+
Derived from `arms/01–10` and `insights.md`. Tiering: **T1** = landed patterns
|
|
4
|
+
from battle-tested open harnesses, adopt now; **T2** = adopt after a check or a
|
|
5
|
+
measurement; **T3** = park. Every item lands through one of the seven surfaces
|
|
6
|
+
(prompt sections, tool providers, `ToolPolicy`, `SecretStore`, `Directory`,
|
|
7
|
+
plugin descriptions, `RefineHost`) or the tree/refine machinery already in
|
|
8
|
+
`src/`, never by naming an application concept. Check plan: `npm run typecheck`,
|
|
9
|
+
`npm test`; `npm run prove` when the server/CLI/startup changes.
|
|
10
|
+
|
|
11
|
+
## Tier 1 — adopt now
|
|
12
|
+
|
|
13
|
+
| # | What | Where it lands | Why & source | Verification |
|
|
14
|
+
|---|---|---|---|---|
|
|
15
|
+
| 1 | **Prompt-section ordering contract**: contributors declare a numeric order; compilation sorts (order, then name), rejects duplicate ids, scoped entries shadow globals | prompt compilation in `src/prompt/compile.ts` + plugin descriptor (`src/plugins/builtin.ts`) | dsh's section contract — deterministic ordering is a *cache* and *reasoning* asset (arm 01, insight 3) | unit tests incl. duplicate-order throws and shadowing either-order |
|
|
16
|
+
| 2 | **Tool approval tiers**: every ToolSpec declares `read\|write\|exec`; standing-approval policy wording derives from tiers | `ToolPolicy` + `src/tools/types.ts` (+ tool providers' default rows) | omp's tier×policy legibility (arm 02/07) | the tier is mandatory in the gate path; docs |
|
|
17
|
+
| 3 | **Policy-missing ⇒ ask** invariant with tests | gate in `src/` (`ToolPolicy` evaluation) | omp fails closed; dsh bundle default (arm 07) | a gate test per missing-policy shape |
|
|
18
|
+
| 4 | **Tool descriptions as template files**: description text lives in `.md` (interpolating `{product}`), imported `type:"text"` — no inline instruction literals in tool definitions | `src/tools/*` | omp's "prompts never in code"; reviewability (arm 02) | build renders identical output; no behavior change |
|
|
19
|
+
| 5 | **Subagent receipts self-describe limits** (24k cap, delivery semantics) inside the receipt text | `src/tools/spawnSubagent.ts` | ours — the cap exists but is implicit (arm 03, S2) | receipt content test |
|
|
20
|
+
| 6 | **Tree validation adopts harness²'s discard rules** where missing: skill trigger-line presence in always-on text; braces checking; script-existence (re-verify which already hold in `validate()`) | `src/tree/tree.ts` + tests | harness² turns prompt conventions into machine gates (arms 04/10, K2/K3) | a failing-tree test per rule |
|
|
21
|
+
| 7 | **Sync refinement prompts with upstream drift**: pull changed sentences from harness² `adapt` pack (pool-anonymity, deliverable-shape rule) into `src/refine/prompts.ts` | `src/refine/prompts.ts` | upstream evolved past our port snapshot (arm 10, R1) | existing refine tests stay green; wording-insensitive assertions |
|
|
22
|
+
| 8 | **`<notes>` decision-audit format** added to compose/selection stages (kept\|revised\|dropped → edit → evidence) | `src/refine/prompts.ts` | tts pack's auditability upgrade (arm 10, R2) | schema on notes parse |
|
|
23
|
+
| 9 | **Volatile-value placement rule**: no date/cwd/env in the stable prefix ever; supply via `xingular-context` channel or a user-turn injection | `src/prompt/compile.ts` (nothing, if currently absent — confirm) | omp's invalidation lesson (arm 01, A1; **verified**: our compiler injects none today) | a lint-style test asserting the prefix has no volatile lines |
|
|
24
|
+
| 10 | **Normative docs**: one-subprocess-service norm and identity-blind transport commitment for any future telemetry-like export | repo README / docs | dsh (arms 08/09, E2/O1) | ADR text only |
|
|
25
|
+
|
|
26
|
+
## Tier 2 — adopt after a check or measurement
|
|
27
|
+
|
|
28
|
+
| # | What | Precondition | Landing surface |
|
|
29
|
+
|---|---|---|---|
|
|
30
|
+
| 11 | Compaction shapes: fixed named-template summary + verbatim tail checkpoint + prune-first ordering | inventory our current compaction behavior first (Pi-native history; no `src/` compaction found) | `RefineHost`/session docs, then prompt sections for restoration text (arm 05, C1–C3) |
|
|
31
|
+
| 12 | `toolOrder` validation for pinned tool sets (unknown/rejected/marker rules) | confirm our capability freezing can't already be ordered inconsistently | `sessions.run` freeze path (arm 02, A4) |
|
|
32
|
+
| 13 | Restriction masks equivalent to dsh `ctx.tools.restrict` — check whether `capabilities.intersect` already covers scoped narrow-and-lift before adding anything | read `src/capabilities/` | none if covered (arm 02) |
|
|
33
|
+
| 14 | Skill-catalog deltas in `xingular-context` when tree versions change mid-run | assess token cost of name+description deltas vs tree sections | context update contents (arm 04, K1) |
|
|
34
|
+
| 15 | Substrate-parity test R5: an upstream harness² candidate tree validates under `PI_SURFACE` without edit | none — test only | `src/tree/` tests (arm 10, R5) |
|
|
35
|
+
| 16 | **Cache warming** near TTL (omp `cache-warmer.ts`) and the cache-*stable-prefix* probe protocol: engineering lives app-side; the harness may only need to expose request timing in run events | measure with `probe-chat-cache-app.py` from the App repo, with the account owner's permission | nothing harness-side unless events lack durations (arm 01, A5) |
|
|
36
|
+
| 17 | Sandbox classes offered as `ToolPolicy` options (read-only/workspace-write) | app-level sandbox plumbing exists | ToolPolicy (arm 08, E1) |
|
|
37
|
+
|
|
38
|
+
## Evaluation of the harness — suite and sweep items
|
|
39
|
+
|
|
40
|
+
How the harness itself gets measured over time (STUDY-0001; the mechanism is
|
|
41
|
+
`src/refine/`, with frozen tasks and sweeps owned by the Evaluation repo).
|
|
42
|
+
|
|
43
|
+
| # | What | Where it lives | Status |
|
|
44
|
+
|---|---|---|---|
|
|
45
|
+
| E1 | **Evaluation matrix** (`runMatrix`): tree × task deliverability records with comparability keys (task-hash, executor, package version, fingerprint); `refine matrix` CLI taking tree dirs or committed scope versions; records beside refinements (`refine/<id>/matrix.json`) | `src/refine/suite.ts`, `refine/cli.ts` | **landed** (05/12 pages updated) |
|
|
46
|
+
| E2 | No-model CI lane: the matrix through the demo executor, proved standalone | `scripts/prove-standalone.mjs` | **landed** |
|
|
47
|
+
| E3 | Tree-lineage sweep: matrix across every adopted version of a scope | suite `{scope, version}` entries; a driver later | capability landed |
|
|
48
|
+
| E4 | Frozen task library: answer-stripped `RefineTask` records + source fixtures + leak globs | Evaluation repo | pending |
|
|
49
|
+
| E5 | Commit-range sweep: per commit, git worktree → `refine matrix` → matrix rows | Evaluation repo (drives production code; never fakes a session) | pending |
|
|
50
|
+
| E6 | Regression report: flip table (delivered⇄empty), cost-per-delivered between two matrices | Evaluation repo dashboard | pending |
|
|
51
|
+
| E7 | Suite-based adoption gate: `adopt` only when the chosen tree wins the frozen suite, else `keep_base` | `refine/service.ts` policy; suite data from Evaluation | pending |
|
|
52
|
+
| E8 | Real PiExecutor lane with cost/wall budget stops | Evaluation repo + App; needs the account owner's approval | parked until approved |
|
|
53
|
+
|
|
54
|
+
## Parked / anti-candidates (recorded, do not build)
|
|
55
|
+
|
|
56
|
+
- `memory://` protocol over wiki tools (omp mnemopi) — caps/budgets suffice for now (arm 06, M2).
|
|
57
|
+
- `fork`-style history-seeded children (dsh) — breaks the fresh-child accounting model (arm 03).
|
|
58
|
+
- Free code-as-action for model tools (smolagents) — the per-call gate is a load-bearing contract; revisit only behind a RefineHost-scope opt-in (arm 02).
|
|
59
|
+
- In-harness judge module — requires the family-layering decision (Evaluation owns measurement) before any port; if ever ported, port the *decoupling shape* verbatim (arm 10, R4).
|
|
60
|
+
- omp's in-process coretools shell environment — an execution detail of
|
|
61
|
+
omp/pi-shell, host-supervised here; not adoptable machinery (arm 08).
|
|
62
|
+
|
|
63
|
+
## Sequencing
|
|
64
|
+
|
|
65
|
+
1. Items 1–4 (contract tier: prompt ordering, tiers, fail-closed, template descriptions) — one focused change each, with tests; land first because later items build on the vocabulary.
|
|
66
|
+
2. Items 5–9 (mechanical: receipts, validation, prompt sync/notes, placement rule).
|
|
67
|
+
3. Item 10 + Tier-2 checks (12–15) as a small batch.
|
|
68
|
+
4. Measurement-gated items (11, 16) last, through the App scripts where indicated.
|
|
69
|
+
|
|
70
|
+
Every landed item updates the relevant arm doc's "adoption candidates" row to
|
|
71
|
+
`landed: <path>` and adds an ADR when the change alters a contract (server
|
|
72
|
+
methods, tool gate semantics, tree validation).
|