@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,81 @@
|
|
|
1
|
+
# Arm 04 — Skills & loading
|
|
2
|
+
|
|
3
|
+
Status: **three sources audited** (dsh, opencode, harness² + our tree);
|
|
4
|
+
omp's skill tool verified as builtin only (`manage_skill`); claude-code/openhands pending.
|
|
5
|
+
|
|
6
|
+
## Design space
|
|
7
|
+
|
|
8
|
+
Skill format and discovery, what ships in context (name+description only vs
|
|
9
|
+
whole body), how bodies are fetched (tool call vs command), trust (does loading
|
|
10
|
+
run code?), and the ruling constraint here: the harness is the only loader, with
|
|
11
|
+
extension discovery switched off.
|
|
12
|
+
|
|
13
|
+
## Comparison
|
|
14
|
+
|
|
15
|
+
**this harness.** Skills are part of the versioned tree (c6), loaded only when
|
|
16
|
+
their exact code is trusted (`src/tree/trust.ts`), surfaced via tree sections
|
|
17
|
+
and `Plugins.loading` (src/plugins/) — extension discovery is disabled; the
|
|
18
|
+
seed includes an `autotrigger` mechanism (`src/tree/tree.ts`, used by
|
|
19
|
+
`src/tree/seed.ts`) — skills may carry trigger conditions compiled into
|
|
20
|
+
always-on text.
|
|
21
|
+
|
|
22
|
+
**opencode.** `SKILL.md` files found by a depth-6 scan
|
|
23
|
+
(`.../core/src/config/plugin/skill-scan.ts:3,29`), also fetched from URL
|
|
24
|
+
indexes into a global dir (`.../skill/discovery.ts:112,194`); availability is
|
|
25
|
+
permission-gated (`.../skill.ts:33-34`). Progressive disclosure: instructions
|
|
26
|
+
list skills in system context; the `skill` tool lazily loads the body "when
|
|
27
|
+
the task at hand matches its description", including a sampled file list
|
|
28
|
+
(`.../tool/plugin/skill.ts:19-33`).
|
|
29
|
+
|
|
30
|
+
**omp.** `manage_skill` builtin (30 builtins list,
|
|
31
|
+
`.../tools/builtin-names.ts:24`); skills also **emitted as a product of memory
|
|
32
|
+
consolidation** (`docs/memory.md:78-88` — learned lessons land in `skills/` on
|
|
33
|
+
disk), an unusual write-back path. Trust/approval per separate ability loading
|
|
34
|
+
unverified.
|
|
35
|
+
|
|
36
|
+
**dsh.** The cleanest contract: before the first request the model receives a
|
|
37
|
+
**durable catalog** — "available skill names and capped descriptions"
|
|
38
|
+
(default cap 500 chars) — and loads body instructions through the `skill` tool;
|
|
39
|
+
`/name` invocation injects the same instructions the user named;
|
|
40
|
+
catalog changes append a **complete replacement** message, empty catalog retires
|
|
41
|
+
old names (`.../packages/skill/tool-skill/README.md:12,54-57`).
|
|
42
|
+
|
|
43
|
+
**harness² — the validation-first school.** Frontmatter requires `name:`
|
|
44
|
+
matching the directory and a `description:`; a malformed file is silently dropped
|
|
45
|
+
load if malformed (`.../core/prompts.py:113-115` in the tts pack: naming rules,
|
|
46
|
+
and `.../prompts.py:151-157`: "An unnamed skill is never opened anyway").
|
|
47
|
+
Its three discard rules (trigger line naming the skill in always-on text; no
|
|
48
|
+
template braces; shipped scripts travel with the skill,
|
|
49
|
+
`.../prompts.py:148-167`, `.../core/tree.py` validation) turn prompt-prose
|
|
50
|
+
conventions into machine-checks — the same philosophy as our `validate()`.
|
|
51
|
+
|
|
52
|
+
**claude-code / openhands (pending).** SKILL.md progressive disclosure spec and
|
|
53
|
+
SDK microagents respectively.
|
|
54
|
+
|
|
55
|
+
## Trade-offs
|
|
56
|
+
|
|
57
|
+
- **Catalog hygiene.** dsh's "complete replacement + empty retires" keeps
|
|
58
|
+
staleness windows near-zero on a cheap message; opencode's rescan keeps
|
|
59
|
+
file-truth simplicity. The durable-catalog variant is the better fit for our
|
|
60
|
+
file truth. The durable-catalog variant is the better fit for our
|
|
61
|
+
stable-prefix diagnostics (context updates could carry skill deltas).
|
|
62
|
+
- **Validation turns conventions into gates.** harness² proves skill trigger
|
|
63
|
+
lines and shipped scripts can be enforced mechanically; ours additionally
|
|
64
|
+
require trust for *code* — the sharpest position (everything model-visible is
|
|
65
|
+
a plugin, c8 loads only trusted content).
|
|
66
|
+
- **Cost shape.** Everyone: bodies are free until invoked; naming is the true
|
|
67
|
+
gate. An unnamed skill is dead weight in all four.
|
|
68
|
+
|
|
69
|
+
## Adoption candidates
|
|
70
|
+
|
|
71
|
+
| # | Idea | From | Land as | Tier |
|
|
72
|
+
|---|---|---|---|---|
|
|
73
|
+
| K1 | Emit a **skill catalog delta** (name + capped description) in the hidden `xingular-context` message instead of relying on static tree text alone, when trees change mid-run | dsh durable-catalog + our context-update channel | `src/prompt/compile.ts` context update contents | T2 |
|
|
74
|
+
| K2 | Adopt harness²'s three validation rules into `validate()` (trigger-line presence for skills; script existence paths already enforced, re-verify) | harness² | tree validation + tests | T1 verify-first |
|
|
75
|
+
| K3 | **Enforce skill trigger lines mechanically** (autotrigger already carries triggers; keep prose+code in sync) | both | `src/tree/tree.ts` validation | T1 verify-first |
|
|
76
|
+
|
|
77
|
+
## Related
|
|
78
|
+
|
|
79
|
+
Installation — where a skill is placed, globally or per project, and what the model is told about
|
|
80
|
+
it — is a separate question from loading. See
|
|
81
|
+
[STUDY-0005](../STUDY-0005-skill-installation-guidance.md).
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Arm 05 — Context management
|
|
2
|
+
|
|
3
|
+
Status: **core three audited** (opencode, omp, dsh); smolagents skeleton;
|
|
4
|
+
ours=pending inventory beyond contracts; claude-code/openhands pending.
|
|
5
|
+
|
|
6
|
+
## Design space
|
|
7
|
+
|
|
8
|
+
What is sent per turn vs fetched on demand; compaction triggers and strategies;
|
|
9
|
+
where summarization sits relative to the cache; truncation of tool outputs;
|
|
10
|
+
token accounting granularity (uncached input / cache read+write separation).
|
|
11
|
+
|
|
12
|
+
## Comparison
|
|
13
|
+
|
|
14
|
+
**this harness (contracts).** Stable system prefix + hidden `xingular-context`
|
|
15
|
+
native-history message for changing state; usage accounting: `inputTokens` is
|
|
16
|
+
uncached input, cache reads/writes separate, reasoning inside output,
|
|
17
|
+
`usage.updated` cumulative per run (repo contracts). Compaction story pending
|
|
18
|
+
inventory (whether sessions rely on Pi native history management + context
|
|
19
|
+
updates).
|
|
20
|
+
|
|
21
|
+
**opencode — summarizer as a resident agent.** Triggers: `auto` when estimated
|
|
22
|
+
context ≥ ceiling (window − max(15%, 16k) reserve), `overflow` after provider
|
|
23
|
+
rejection, `manual` (`.../session/compaction.ts:53-57,93-101,849-856`); auto
|
|
24
|
+
skips until a fresh provider measurement exists (`:245-253`).
|
|
25
|
+
Strategy: a dedicated compaction agent/model summarizes every dialog into a
|
|
26
|
+
**fixed template** (Objective / Requirements / Decision / Work State / Next
|
|
27
|
+
Move / Relevant Files) while keeping the newest `keep` tokens verbatim as a
|
|
28
|
+
`<conversation-checkpoint>`; **the whole conversation is sent to the
|
|
29
|
+
summarizer to reuse the prefix cache** (`:107-138,256-332`). Rejection retries
|
|
30
|
+
at 70/50/35% of the rejected size (`:455-461`). Generic ToolOutput truncation to
|
|
31
|
+
maxLines/maxBytes with `metadata.truncated`
|
|
32
|
+
(`.../core/src/tool-output.ts:28-88`); shell saves full output to a file and
|
|
33
|
+
returns a bounded tail (`.../tool/plugin/shell.ts:42-43`).
|
|
34
|
+
Accounting: latest assistant response is the anchor
|
|
35
|
+
(`input+cacheRead+cacheWrite+output+reasoning` measured) plus an estimate of
|
|
36
|
+
unmeasured since (`:812-842`); 4 chars/token estimate ±15%
|
|
37
|
+
(`.../session/model-request.ts:53-54`).
|
|
38
|
+
|
|
39
|
+
**omp — the strategy ladder + deterministic frontier.** Trigger points: post-turn
|
|
40
|
+
over `resolveThresholdTokens`, mid-turn, idle, overflow-recovery
|
|
41
|
+
(`.../session/session-maintenance.ts:626,2147,2246,2412`).
|
|
42
|
+
`compaction.methodOrder` ladder: LLM summarize (regular/handoff), `shake`
|
|
43
|
+
(local mechanical elision to `artifact://` refs), `snapcompact`
|
|
44
|
+
(`docs/compaction.md:202-215`). **Snapcompact is local/deterministic, no LLM**:
|
|
45
|
+
discarded history serialized with per-result caps into provider-aware PNG
|
|
46
|
+
bitmap frames (typography per provider family), persisted and re-attached each
|
|
47
|
+
rebuild (`packages/snapcompact/README.md:3-29,44-68`). Budgets: kept context
|
|
48
|
+
≤60% of threshold, target ≤80% (`docs/compaction.md:217,221`). Cache care:
|
|
49
|
+
pruning blanks outputs only within the model's `prompt-cache-lookback`
|
|
50
|
+
(`docs/compaction.md:248`); summaries drop whole call/result pairs (`:250`).
|
|
51
|
+
Byte-stable system prompt between turns is an invariant
|
|
52
|
+
(`.../session/agent-session.ts:2607`).
|
|
53
|
+
|
|
54
|
+
**dsh — formulas + query-ability.** `compaction-basic` trigger:
|
|
55
|
+
`floor(min(W×0.8, W−O−headroom))`, headroom 65_536, keeps newest 16% of the
|
|
56
|
+
usable window, one extra model request, summary-only retention
|
|
57
|
+
(`.../packages/compaction/compaction-basic/README.md:12,32,62-68`).
|
|
58
|
+
Oversized tool results pruned first; images offloaded to placeholders
|
|
59
|
+
(`.../packages/compaction/README.md:31-32`). `session-query` = SQLite FTS5
|
|
60
|
+
full-text search over the durable log, independent of compaction
|
|
61
|
+
(`.../packages/session-query/README.md:12,30`).
|
|
62
|
+
|
|
63
|
+
**smolagents.** `AgentMemory` is a step log (ToolCall/ActionStep/PlanningStep/
|
|
64
|
+
FinalAnswer) rebuilt to messages with `summary_mode` each step — replay-style,
|
|
65
|
+
no incremental fades (`external/smolagents/src/smolagents/memory.py:25,46,92,206-229`).
|
|
66
|
+
|
|
67
|
+
## Trade-offs
|
|
68
|
+
|
|
69
|
+
- **Summarizer economics.** opencode sends the *whole transcript* to the
|
|
70
|
+
summarizer to reuse the prefix cache — larger paid input per compression, but
|
|
71
|
+
cache-discounted and higher-fidelity. dsh keeps only the summary (cheapest
|
|
72
|
+
retention). The choice hinges on whether compaction runs once or repeatedly.
|
|
73
|
+
- **A deterministic rung is the safety net.** omp's ladder means a compaction
|
|
74
|
+
never fully depends on a slow/failing LLM pass (shake/snapcompact). That
|
|
75
|
+
resilience has no counterpart in opencode/dsh (dsh retries on overflow).
|
|
76
|
+
- **Searching beats re-shipping.** dsh's session-query (and omp's shard
|
|
77
|
+
omp's shard-style retrieval in `shake`) treat old context as a database, not a
|
|
78
|
+
transcript; "retrieve details through tools when needed" matches our
|
|
79
|
+
CONTEXT_GUIDANCE wording (`src/prompt/compile.ts:333`).
|
|
80
|
+
- **Accounting honesty.** opencode's anchor-measured + estimated-elsewhere and
|
|
81
|
+
our uncached/cached split are compatible; the 4-chars/token estimate is the
|
|
82
|
+
common fixed-density fallback (dsh token-meter identical semantics).
|
|
83
|
+
|
|
84
|
+
## Adoption candidates
|
|
85
|
+
|
|
86
|
+
| # | Idea | From | Land as | Tier |
|
|
87
|
+
|---|---|---|---|---|
|
|
88
|
+
| C1 | A fixed-template summary shape (named sections) for any summarization run, so restored context is predictable and diffable | opencode compaction template | refine/trajectory or session docs; needs Pi-native compaction knowledge first | T2 verify-first |
|
|
89
|
+
| C2 | Prune-first ordering (oversized tool outputs) before any summarization | dsh + omp | facet of the context update path | T2 verify-first (what already trims?) |
|
|
90
|
+
| C3 | Keep a verbatim tail checkpoint marker in any summary | opencode | same home as C1 | T2 |
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Arm 06 — Memory
|
|
2
|
+
|
|
3
|
+
Status: **core four audited** (omp, dsh, opencode, harness²) + our Wiki;
|
|
4
|
+
claude-code/openhands pending.
|
|
5
|
+
|
|
6
|
+
## Design space
|
|
7
|
+
|
|
8
|
+
What counts as memory (instruction files, durable notes, episodic stores,
|
|
9
|
+
learned harnesses), who writes and when (model via tools, background
|
|
10
|
+
consolidation, per-write hooks), what shapes entries and their limits, and how
|
|
11
|
+
recall is gated (never ship rubrics or other answer-leaking data).
|
|
12
|
+
|
|
13
|
+
## Comparison
|
|
14
|
+
|
|
15
|
+
**this harness.** Wiki notes: `noteChange` fires once the file is in place, in
|
|
16
|
+
the background; a hook's failure never reaches the write; every new write point
|
|
17
|
+
calls it too (repo contract). Injection sections are bounded (`WIKI_BUDGET`,
|
|
18
|
+
`NOTES_LISTED` in `src/prompt/compile.ts:167` etc.), listing notes + revision,
|
|
19
|
+
with more available via `wiki-list`/`wiki-search` tools. The refine experience
|
|
20
|
+
library is a separate, answer-free lane (arm 10) — never ships rubrics
|
|
21
|
+
(`refine/evidence.ts` guard).
|
|
22
|
+
|
|
23
|
+
**omp — the memory machine.** Five `memory.backend` modes: off | local |
|
|
24
|
+
hindsight | mnemopi | sharpshooter (`docs/memory.md:3-11`). A startup
|
|
25
|
+
background job runs two phases (per-session extraction → global consolidation
|
|
26
|
+
with lease+heartbeat, skipped for subagents), producing per-project `MEMORY.md`
|
|
27
|
+
(+ summary) and lessons and **skills/** on disk
|
|
28
|
+
(`.../memories/index.ts:29-67`; `docs/memory.md:22-26,74-89`). Injection =
|
|
29
|
+
Memory Guidance block at session start sharing a 5000-token budget with
|
|
30
|
+
lessons (`docs/memory.md:132`); `learn` lessons capped 100 entries × 2000
|
|
31
|
+
chars, redacted (`docs/memory.md:70`). `mnemopi` = local SQLite
|
|
32
|
+
working/episodic engine with embeddings and a `memory://` read protocol plus
|
|
33
|
+
model-facing tools `recall|retain|reflect|memory_edit`
|
|
34
|
+
(`packages/mnemopi/README.md:5-8`; `docs/memory.md:34-46`). `hindsight` =
|
|
35
|
+
remote vector service; recall on first user turn, auto-retain every N turns
|
|
36
|
+
(`.../hindsight/state.ts:385-388`). Writes happen minutes/days later — nothing
|
|
37
|
+
is "auto right after task".
|
|
38
|
+
|
|
39
|
+
**dsh — durability without a memory package.** No memory package by design:
|
|
40
|
+
the durable session log (immutable JSONL + checkpoint policy,
|
|
41
|
+
`.../packages/session/README.md:38-39`), todos persisting across sessions
|
|
42
|
+
(owned by the session; whole-list replace, `.../packages/todo/README.md:12`),
|
|
43
|
+
`spill` storing oversized text out of context with locator+guidance
|
|
44
|
+
(`.../packages/spill/README.md:12,30-31`), `storage` for app data that is
|
|
45
|
+
**never model-visible** (`.../packages/storage/README.md:12,27-30`),
|
|
46
|
+
`deliverables` recording outputs as client-only events
|
|
47
|
+
(`.../packages/deliverables/README.md:12,27-28`). Cross-session memory:
|
|
48
|
+
deliberately absent.
|
|
49
|
+
|
|
50
|
+
**opencode.** No cross-session memory product: per-session todos (feature-gated
|
|
51
|
+
`experimental.todo`), skills/config as durable files, snapshot revert/restore
|
|
52
|
+
(`.../tool/plugin/todo.ts:50-75`; `.../session/revert.ts:37-42`). Memory is a
|
|
53
|
+
community-plugin story.
|
|
54
|
+
|
|
55
|
+
**harness².** Memory belongs to refinement: the per-domain experience library
|
|
56
|
+
carries full adopted trees + `EXPERIENCE.md` (why + lesson) per task, scoped
|
|
57
|
+
per run and domain, starting empty
|
|
58
|
+
(`external/harness2/harness2/core/library.py:15-23`). At proposal time the
|
|
59
|
+
library is *read* (`INDEX.md` browse, `prompts.py:320-328`), workspace facts
|
|
60
|
+
are re-verified before reuse — memory is a drift-checked `[cue→lesson]`, not a
|
|
61
|
+
freeform store. The editable tree also holds `LongTermMEMORY.md` as c3 durable
|
|
62
|
+
facts, "ALWAYS ON" with the output-budget price tag (`.../prompts.py:104,426`).
|
|
63
|
+
|
|
64
|
+
**claude-code (pending).** CLAUDE.local.md, `#` quick-notes, user memory file
|
|
65
|
+
(publishable specs; citations pending).
|
|
66
|
+
|
|
67
|
+
## Trade-offs
|
|
68
|
+
|
|
69
|
+
- **Where memory lives.** The file the model reads (`MEMORY.md`, our Wiki) is
|
|
70
|
+
the visible tier; the episodic store (mnemopi) is the cheap tier for
|
|
71
|
+
per-project recall. omp is the only source with both, and it pays for it with
|
|
72
|
+
background jobs and lease/heartbeat machinery.
|
|
73
|
+
- **Learning to write.** harness²'s lessons have a *scope contract*
|
|
74
|
+
(generic/procedural, but never task facts; "too generic changes nothing, task
|
|
75
|
+
facts are wrong anchors") — enforced by prompt discipline and by the `cue`
|
|
76
|
+
shape in ours (`src/refine/prompts.ts:425`). Any Wiki lesson should carry the
|
|
77
|
+
same contract (pattern vs fact).
|
|
78
|
+
- **Caps and redaction.** omp's budget regime (100×2000 lessons, injection caps)
|
|
79
|
+
caps) mirrors our WIKI_BUDGET approach; worth remembering that redaction is
|
|
80
|
+
part of the cap story, not just size.
|
|
81
|
+
- **Nothing is model-visible that shouldn't be** (dsh `storage`): keep the
|
|
82
|
+
separation of run records (ours).validate Never model-visible: run events
|
|
83
|
+
used for the Wiki must already be validated kinds (family rule).
|
|
84
|
+
|
|
85
|
+
## Adoption candidates
|
|
86
|
+
|
|
87
|
+
| # | Idea | From | Land as | Tier |
|
|
88
|
+
|---|---|---|---|---|
|
|
89
|
+
| M1 | Apply harness²'s lesson-shape contract to any Wiki note that summarizes behavior (cue = shape of situation, lesson = checkable operation, NO_ENTRY when unsupported) | harness² + omp caps | Wiki note template/validation (plugin) | landed: `src/history/lessons.ts` (PROP-0008) |
|
|
90
|
+
| M2 | Evaluate a `memory://`-style read protocol (note retrieval as URI) — compare cost against plain wiki tools before adopting | omp mnemopi | none (note only) | T3 |
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Arm 07 — Governance
|
|
2
|
+
|
|
3
|
+
Status: **core three audited** (opencode, omp, dsh) + swe-agent blocklists,
|
|
4
|
+
smolagents executor posture; claude-code/openhands pending.
|
|
5
|
+
|
|
6
|
+
## Design space
|
|
7
|
+
|
|
8
|
+
Who may call what, expressed how (per-call gate, tier×policy, event pipeline,
|
|
9
|
+
modes), approval UX (`ask` as outcome), fallback behavior (fail-closed or not),
|
|
10
|
+
trust for loaded code, secret/account isolation.
|
|
11
|
+
|
|
12
|
+
## Comparison
|
|
13
|
+
|
|
14
|
+
**this harness (contracts).** Per-call gate as the final extension; standing
|
|
15
|
+
approvals; single-use operation approvals in the app scope; account pinning
|
|
16
|
+
and redaction; tree plugins load only when their exact code is trusted
|
|
17
|
+
(`src/tree/trust.ts`).
|
|
18
|
+
|
|
19
|
+
**opencode — effect assertions with a wildcard ladder.** Rules: `allow|deny|ask`
|
|
20
|
+
literals, `findLast` wildcard resource match, default ask; agent rules and
|
|
21
|
+
session-level rules merge; a missing agent rule means deny-all
|
|
22
|
+
(`.../core/src/permission.ts:87-97,158-172`); user-saved "always allow"
|
|
23
|
+
(`:148-155`); catalog filtering only for wildcard-deny leaves
|
|
24
|
+
(`.../tool.ts:233,293-296`). Plugins may reject calls via `execute.before`
|
|
25
|
+
(`.../packages/plugin/src/effect/tool.ts:20-52`) — handy, but note the gate
|
|
26
|
+
stays the execution boundary's last authority only if core retains its own
|
|
27
|
+
assert.
|
|
28
|
+
|
|
29
|
+
**omp — declared tiers and modes.** `ToolTier = read|write|exec` per tool
|
|
30
|
+
(exec default when unclaimed), per-tool policy `allow|deny|prompt`, modes
|
|
31
|
+
`always-ask | write | yolo`; **missing context fails closed to always-ask**
|
|
32
|
+
(`.../tools/approval.ts:17-18,53-84,100,1226-1230`). Extension hooks wrap every
|
|
33
|
+
call (`extensibility/hooks/tool-wrapper.ts`).
|
|
34
|
+
|
|
35
|
+
**dsh — pipeline events, not a package.** Gate inside dsh-tools:
|
|
36
|
+
`tools/pre-execute` (allow/deny/ask) → monotonic guard() reasons → execute →
|
|
37
|
+
post-execute → result (observe-only)
|
|
38
|
+
(`.../packages/core/tools/README.md:89,109`; ask at `.../index.ts:608-612`).
|
|
39
|
+
Bundle base ships a default policy confining file writes and asking before
|
|
40
|
+
risky actions (`.../bundle/base/README.md:50`). OS sandbox separately:
|
|
41
|
+
file-effect policy classes with Landlock/Seatbelt/Windows backends and one-time
|
|
42
|
+
approved escalation (`.../packages/sandbox/README.md:12,30`).
|
|
43
|
+
|
|
44
|
+
**swe-agent.** Governance = curation: blocklist files in bundles
|
|
45
|
+
(`external/swe-agent/tools` listing); the environment's own command filter
|
|
46
|
+
(pending detail).
|
|
47
|
+
|
|
48
|
+
**smolagents.** Almost none in-source; the free executor (interception-based
|
|
49
|
+
local or paid remote) carries the risk — the anti-reference for our no-code-actions stance.
|
|
50
|
+
|
|
51
|
+
**claude-code (pending).** Permission modes + allow/deny rules + hooks.
|
|
52
|
+
|
|
53
|
+
## Trade-offs
|
|
54
|
+
|
|
55
|
+
- **Declarative vs hook-composed.** A user wanting "always allow reads, ask on
|
|
56
|
+
writes" gets legibility from omp's tables; a plugin author gets power from
|
|
57
|
+
opencode's before-hooks. Our per-call gate can host both: tiers inform, hooks
|
|
58
|
+
advise, gate decides.
|
|
59
|
+
- **Fail-closed culture.** omp fails closed on missing policy; opencode defaults
|
|
60
|
+
ask; dsh asks by bundle default. Convergent good posture — record as a
|
|
61
|
+
shared norm, and keep our own default equally closed.
|
|
62
|
+
- **Escalations are one-time, auditable.** dsh's one-time approved sandbox
|
|
63
|
+
escalation and our single-use approvals express the same idea; forcing a
|
|
64
|
+
person to re-re-approve persistent bypasses is the safer curve.
|
|
65
|
+
|
|
66
|
+
## Adoption candidates
|
|
67
|
+
|
|
68
|
+
| # | Idea | From | Land as | Tier |
|
|
69
|
+
|---|---|---|---|---|
|
|
70
|
+
| G1 | Tier-per-tool declarations inform standing-approval wording (reads bulk-allowed, writes asked) | omp | ToolPolicy documents + default policy | T1 |
|
|
71
|
+
| G2 | Codify "policy missing ⇒ ask" as an invariant test | omp fail-closed | src tests around the gate | T1 |
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Arm 08 — Execution
|
|
2
|
+
|
|
3
|
+
Status: **core three audited** (opencode, omp, dsh) + swe-agent environments,
|
|
4
|
+
smolagents executors; hands pending.
|
|
5
|
+
|
|
6
|
+
## Design space
|
|
7
|
+
|
|
8
|
+
Where a step's process runs (own process, PTY owner, container), sandbox
|
|
9
|
+
mechanics per OS, output shapes (streaming, truncation, side-files), and who
|
|
10
|
+
owns the terminal surface.
|
|
11
|
+
|
|
12
|
+
## Comparison
|
|
13
|
+
|
|
14
|
+
**this harness (contracts).** Host owns PTY and supervision; the harness owns
|
|
15
|
+
the terminal launch spec; a session runs in its account's own Pi agent folder,
|
|
16
|
+
never `~/.pi` (isolation by account).
|
|
17
|
+
|
|
18
|
+
**opencode.** The `shell` tool runs via the core Shell service returning
|
|
19
|
+
bounded tail output with full output saved to a file
|
|
20
|
+
(`.../tool/plugin/shell.ts:17-23,42-43`). `persistent-pty` is a separate
|
|
21
|
+
per-server daemon for owned PTYs rooted at `<state>/pty` — for interactive
|
|
22
|
+
frontends, distinct from the tool path
|
|
23
|
+
(`.../core/src/persistent-pty/index.ts:6-23,129` — tool-vs-PTY overlap
|
|
24
|
+
unverified).
|
|
25
|
+
|
|
26
|
+
**omp.** The strongest in-process Unix environment: bash runs inside a Rust
|
|
27
|
+
`pi-shell` host **with vendored uutils coretools (pi-builtins)** — real
|
|
28
|
+
utilities, one process (`crates/pi-shell/Cargo.toml:18`,
|
|
29
|
+
`crates/pi-builtins/src/`). Always non-interactive env (pagers off,
|
|
30
|
+
TERM=dumb, credential prompts fail via `false`)
|
|
31
|
+
(`.../exec/non-interactive-env.ts:6-25`). No OS-level sandbox located
|
|
32
|
+
(unverified absence).
|
|
33
|
+
|
|
34
|
+
**dsh.** Layered: OS sandbox classes (read-only / workspace-write /
|
|
35
|
+
danger-full-access on Landlock/Seatbelt/Windows tokens, one-time approved
|
|
36
|
+
escalation), exactly one shell executor per composition exposing `bash`/`pwsh`
|
|
37
|
+
tools, and a single `ctx.subprocess` service with bounded output and scrubbed
|
|
38
|
+
env (`.../sandbox/README.md:12,30`; `.../shell/README.md:12,38`;
|
|
39
|
+
`.../subprocess/README.md:12,27`).
|
|
40
|
+
|
|
41
|
+
**swe-agent.** Containerized bash environments per run with tool bundles
|
|
42
|
+
bound to the interface (`sweagent/environment/`); benchmark single-shot
|
|
43
|
+
workspaces.
|
|
44
|
+
|
|
45
|
+
**smolagents.** Local executor intercepts/denies dangerous calls in-process;
|
|
46
|
+
remote (E2B etc.) otherwise (`local_python_executor.py`, `remote_executors.py`).
|
|
47
|
+
|
|
48
|
+
## Trade-offs
|
|
49
|
+
|
|
50
|
+
- **In-process Unix vs OS sandbox.** omp buys speed/fidelity with a Rust-hosted
|
|
51
|
+
environment; dsh buys verifiable confinement with OS primitives. This harness
|
|
52
|
+
runs on a host's PTY, so the OS-sandbox direction (dsh) is the compatible
|
|
53
|
+
one; "in-process coretools" is an execution detail of pi, not adoptable
|
|
54
|
+
machinery here without duplicating rust-supported layers.
|
|
55
|
+
- **Two command paths is the norm.** opencode (tool shell vs owned PTY) and dsh
|
|
56
|
+
(shell executor vs subprocess service) both split "model calls" from
|
|
57
|
+
"platform plumbing" — our launch-spec/PTY split matches; the invariant to
|
|
58
|
+
keep: environments are per-account, launched by spec, never shared across
|
|
59
|
+
accounts.
|
|
60
|
+
- **Output hygiene** (bounded tails + side files, scrubbed env, non-interactive
|
|
61
|
+
defaults) is universal; treat as a checklist for any new tool rather than a
|
|
62
|
+
design to adopt.
|
|
63
|
+
|
|
64
|
+
## Adoption candidates
|
|
65
|
+
|
|
66
|
+
| # | Idea | From | Land as | Tier |
|
|
67
|
+
|---|---|---|---|---|
|
|
68
|
+
| E1 | Sandboxing classes as a ToolPolicy option (read-only/workspace-write) for *host* integrations — offered, never default | dsh | ToolPolicy scope option | T2 (needs app-level sandbox plumbing) |
|
|
69
|
+
| E2 | "One subprocess service" norm: all child spawns montage through one owned helper with bounded output + env scrub | dsh subprocess | App-sidecar ownership unchanged; only normative doc | T1 as ADR text |
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Arm 09 — Observability
|
|
2
|
+
|
|
3
|
+
Status: **core three audited** (opencode, omp, dsh) + swe-agent trajectories;
|
|
4
|
+
hands pending.
|
|
5
|
+
|
|
6
|
+
## Design space
|
|
7
|
+
|
|
8
|
+
What is recorded (events, trajectories, usage), validation of records, who may
|
|
9
|
+
write run records, live relay to interfaces, retention/redaction, and cost
|
|
10
|
+
accounting granularity.
|
|
11
|
+
|
|
12
|
+
## Comparison
|
|
13
|
+
|
|
14
|
+
**this harness (contracts).** Validated run events saved per run by the only
|
|
15
|
+
writer (`sessions/runStore.ts`); `usage.updated` cumulative per run with the
|
|
16
|
+
uncached-input / cache-read / cache-write split; app relays to UI.
|
|
17
|
+
|
|
18
|
+
**opencode.** "event-logger.ts listens on the event bus and logs only
|
|
19
|
+
allow-listed config-type events (agent/provider/model/command/config updated),
|
|
20
|
+
as a global node" (`.../core/src/event-logger.ts:10-19`). Usage published as
|
|
21
|
+
`SessionEvent.UsageRecorded` from the compaction anchor
|
|
22
|
+
(`.../session/compaction.ts:632-639`); trajectory surface lives in session-ui
|
|
23
|
+
and the TUI (packages listing).
|
|
24
|
+
|
|
25
|
+
**omp.** `omp stats` — local web dashboard with live ingest (port 3847)
|
|
26
|
+
covering AI usage, with per-session ledgers available
|
|
27
|
+
(`packages/stats/README.md:3,9,31-35`); `wire` package supplies transport;
|
|
28
|
+
judgment roles record usage too (`.../judgment/index.ts:6-10`).
|
|
29
|
+
|
|
30
|
+
**dsh.** Telemetry is an OTel transport only — "business consumers own events,
|
|
31
|
+
identities, redaction"; feedback-authorized upload, default `FEEDBACK_ONLY`
|
|
32
|
+
(`.../packages/telemetry/README.md:12,25`; `.../bundle/base/README.md:50`).
|
|
33
|
+
Business events flow through the session event stream.
|
|
34
|
+
|
|
35
|
+
**swe-agent.** trajectory JSON per run + a separate inspector to browse them
|
|
36
|
+
(`external/swe-agent/trajectories`, `sweagent/inspector/`).
|
|
37
|
+
|
|
38
|
+
**smolagents.** `monitoring.py` metrics + `AgentLogger` markdown logs; gradio UI.
|
|
39
|
+
|
|
40
|
+
## Trade-offs
|
|
41
|
+
|
|
42
|
+
- **Where transport ends.** The dsh rule — a transport package knows nothing
|
|
43
|
+
about business events — is the cleanest boundary. Our runStore already
|
|
44
|
+
*is* the business schema; be careful that nothing in run records assumes an
|
|
45
|
+
application consumer (they don't: read-only records).
|
|
46
|
+
- **Local dashboards vs relay.** omp's stats serves a self-hosted view; ours
|
|
47
|
+
hands validated events to a UI. Same functionality, different home; nothing
|
|
48
|
+
to adopt; the one check if we ever add an export path: no
|
|
49
|
+
duplicate charges on relaunch (event ids dedupe).
|
|
50
|
+
- **Cost accounting alignment.** Everyone anchors usage at the latest provider
|
|
51
|
+
response and estimates lagging items (opencode anchor pattern at
|
|
52
|
+
`compaction.ts:812-842`). Ours does the same via usage.updated — align
|
|
53
|
+
definitions (reasoning inside output) with any upstream comparisons to
|
|
54
|
+
prevent double-cost surface.
|
|
55
|
+
|
|
56
|
+
## Adoption candidates
|
|
57
|
+
|
|
58
|
+
| # | Idea | From | Land as | Tier |
|
|
59
|
+
|---|---|---|---|---|
|
|
60
|
+
| O1 | A "transport owns nothing about identities" doc commitment when any telemetry-like export exists (apps may add; harness stays identity-blind) | dsh telemetry | a para note in repo README | T1 doc |
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Arm 10 — Refinement / self-improvement
|
|
2
|
+
|
|
3
|
+
Status: **audited (self + upstream, in person)** — this arm's headline finding changes
|
|
4
|
+
the shape of the study, see §1.
|
|
5
|
+
|
|
6
|
+
## Design space
|
|
7
|
+
|
|
8
|
+
Who is improved (prompt files, tools, tree files), how candidates are made
|
|
9
|
+
(dimension-split editors?), how they are probed (isolated, unattended; approvals
|
|
10
|
+
refused), how selection stays answer-free, how experience accumulates across
|
|
11
|
+
tasks, and what no step may do (act in the world with a person's assets).
|
|
12
|
+
|
|
13
|
+
## 1. Headline finding: this harness already ports harness²
|
|
14
|
+
|
|
15
|
+
Every module of `src/refine/` is an explicit port of harness²'s core, by its own
|
|
16
|
+
header comments:
|
|
17
|
+
|
|
18
|
+
| this harness | upstream |
|
|
19
|
+
|---|---|
|
|
20
|
+
| `src/refine/recursion.ts:5` | `harness2/core/recursion.py` |
|
|
21
|
+
| `src/refine/selection.ts:5` | `harness2/core/selection.py` |
|
|
22
|
+
| `src/refine/prompts.ts:5` | `harness2/core/prompts.py` (the **adapt** pack only — `prompts.ts:1`) |
|
|
23
|
+
| `src/refine/ledger.ts:5` | `harness2/core/ledger.py` |
|
|
24
|
+
| `src/refine/library.ts:9` | `harness2/core/library.py` |
|
|
25
|
+
| `src/refine/evidence.ts:13` | `harness2/core/context.py` |
|
|
26
|
+
| `src/refine/runner.ts:6` | `harness2/core/schedule.py::run_task` (shaped after) |
|
|
27
|
+
|
|
28
|
+
Identities preserved: R = 4k rollouts / P = 3k sessions per mode
|
|
29
|
+
(`src/refine/ledger.ts:7-11`), matching upstream `recursion.py:15-19`; Stage
|
|
30
|
+
shape (`Stage {label, dim, tree, keptBase, fellBack…}` `src/refine/recursion.ts:26-37`)
|
|
31
|
+
with one-retry-then-inherit upstream `recursion.py` docstring; sequential-round
|
|
32
|
+
checkpoint anchoring incl. the "KEEP_BASE means the CURRENT checkpoint" rule
|
|
33
|
+
(`src/refine/prompts.ts:316` vs upstream `prompts.py:852-857`); the answer-free
|
|
34
|
+
selector (`src/refine/prompts.ts:399` mirrors `prompts.py:791-793`); KEEP_BASE
|
|
35
|
+
doctrine (`src/refine/prompts.ts:232` mirrors `prompts.py:333-335`).
|
|
36
|
+
|
|
37
|
+
The merge the study was asked to plan is therefore **already largely executed**.
|
|
38
|
+
What remains is a mature-upstream delta analysis, below.
|
|
39
|
+
|
|
40
|
+
## 2. Comparison with harness² as it now stands
|
|
41
|
+
|
|
42
|
+
Converged (ported): parallel/sequential recursion, INV/DOM candidate split with
|
|
43
|
+
independent same-evidence samplers, aggregator/composer with MERGE / ADOPT-ONE /
|
|
44
|
+
KEEP_BASE, anonymized answer-free selection, per-domain experience library
|
|
45
|
+
carrying the **full adopted tree plus an EXPERIENCE.ms-style why/lesson** (ours:
|
|
46
|
+
`src/refine/library.ts`; theirs: `external/harness2/harness2/core/library.py:15-23`,
|
|
47
|
+
"the whole tree is carried, never a summary"), reflection writing cue/lesson rows
|
|
48
|
+
(`src/refine/prompts.ts:418-425` mirrors their `_EXP`-driven reflector).
|
|
49
|
+
|
|
50
|
+
Deltas (upstream beyond our port):
|
|
51
|
+
|
|
52
|
+
1. **Second, hardened prompt pack ("tts").** Upstream ships two packs per stage
|
|
53
|
+
(`_tts_propose` / `_tts_aggregate` / `_tts_select` vs the base pack,
|
|
54
|
+
`external/harness2/harness2/core/prompts.py:838-839,896-897`); ours carries
|
|
55
|
+
only the adapt pack (`src/refine/prompts.ts:1`). The tts pack adds: an
|
|
56
|
+
explicit **`<notes>` decision audit format** (`kept|revised|dropped -> edit ->
|
|
57
|
+
evidence`, `.../prompts.py:765-769`), a `yardstick` slot ("WHAT GOOD PROCESS
|
|
58
|
+
LOOKS LIKE HERE", `.../prompts.py:705-706,757-761`), sharper always-on
|
|
59
|
+
economics and on-demand-first framing, and pool-anonymity emphases
|
|
60
|
+
(`PICKING AN UNMODIFIED HARNESS IS VALID`, `.../prompts.py:66-74`).
|
|
61
|
+
2. **Screenshot-era surface dialects.** Upstream maintains this c1–c8 tree for
|
|
62
|
+
two substrates (opencode and codex) with per-substrate hook/plugin mechanics
|
|
63
|
+
(`.../prompts.py:617-661`, `tree.py:41-60 SurfaceSpec`) — ours compiles one
|
|
64
|
+
Pi surface (`src/refine/recursion.ts` imports `PI_SURFACE`).
|
|
65
|
+
3. **A decoupled judge.** `harness2/core/judge.py:15-19`: measurement of the
|
|
66
|
+
chosen run happens *after selection*, **"Nothing in the method imports this
|
|
67
|
+
module"**; a judge failure is None, excluded from denominators
|
|
68
|
+
(`.../judge.py:37-40`). **Not ported** — `src/refine/` has no judge module.
|
|
69
|
+
This is the one structural piece of upstream we do not have.
|
|
70
|
+
4. **Substrate contract vs our RefineHost.** Their substrate wrap is a
|
|
71
|
+
file-level (`context/harness/` editable tree + workspace dirs); ours isolates
|
|
72
|
+
through `RefineHost` (workspace, probe session, deliverable) with probe runs
|
|
73
|
+
as unattended sessions whose approvals are refused (repo contract). Same
|
|
74
|
+
shape, different isolation vocabulary — ours is the stronger primitive, but
|
|
75
|
+
note upstream's `keep_base` inherits untouched files with no re-read
|
|
76
|
+
(`.../prompts.py:186-189`); ours should verify the same semantic survived the
|
|
77
|
+
port (pending test-level confirmation).
|
|
78
|
+
|
|
79
|
+
## 3. Trade-offs
|
|
80
|
+
|
|
81
|
+
- **Judge in or out.** Keeping measurement out of the harness (our family rule:
|
|
82
|
+
measurement belongs to Evaluation) preserves layering but forfeits private
|
|
83
|
+
experience labeling — the `<experience>` reflection then rests only on
|
|
84
|
+
trajectory contrast, which ours already guards ("A lesson resting only on
|
|
85
|
+
`confounded` rows is a guess", `src/refine/prompts.ts:425`). Upstream's
|
|
86
|
+
compromise: a judge that labels the *chosen* run only, never feeds forward, and
|
|
87
|
+
is excluded from denominators on failure — it cannot leak into selection
|
|
88
|
+
because selection already happened.
|
|
89
|
+
- **Prompt packs.** Two packs cost maintenance but let upstream evolve hardening
|
|
90
|
+
without destabilizing the published method. Ours froze one pack at port time;
|
|
91
|
+
upstream drift since then is invisible to our selectors.
|
|
92
|
+
- **One surface vs many.** Ours targets Pi only; upstream's SurfaceSpec proves
|
|
93
|
+
the same method bends to codex/opencode cheaply — a bridge test for whether
|
|
94
|
+
our `RefineHost` boundary is truly substrate-agnostic.
|
|
95
|
+
|
|
96
|
+
## 4. Adoption candidates
|
|
97
|
+
|
|
98
|
+
| # | Idea | From | Tier | Land as |
|
|
99
|
+
|---|---|---|---|---|
|
|
100
|
+
| R1 | Diff the ported prompts against upstream's `adapt` lines and pull changed sentences (e.g. pool-anonymity emphasis, deliverable-shape rule) into `src/refine/prompts.ts` | harness² drift since the port | T1 | in-place prompt text sync (tests measure wording-insensitive behavior) |
|
|
101
|
+
| R2 | Add the `<notes>` audit format to compose/selected stages so adoption decisions carry their evidence | tts pack | T1 | our prompts' notes sections |
|
|
102
|
+
| R3 | Consider the yardstick slot as an optional, app-supplied `BenchPrompts` field — *only if* an app needs a domain yardstick; it must remain prose, never a score | tts pack via `Spec` | T2 | `RefineHost` launch input, thinking hard before adding |
|
|
103
|
+
| R4 | A post-selection judge module, ported with upstream's exact decoupling (not imported by the method; None on failure excluded from denominators) **or** explicitly glued to Evaluation | judge.py | T2 with a layering decision first — see trade-off above | new `src/refine/judge.ts` behind `RefineHost`, or nothing |
|
|
104
|
+
| R5 | Re-run upstream-vs-ours substrate parity test: can our tree/validation accept an upstream-authored candidate tree without edits? (`isAllowed`, caps, autotrigger semantics) | both | T1 verification task, no code change | a test |
|
|
105
|
+
|
|
106
|
+
Anti-candidates, recorded so nobody re-proposes them: do **not** move measurement
|
|
107
|
+
or grading into `src/refine/` (family boundary: Evaluation owns measurement);
|
|
108
|
+
do **not** let any judge label reach improver or selector (answer-free is
|
|
109
|
+
invariant); do **not** carry per-task facts into the durable library without the
|
|
110
|
+
cue/lesson narrowing ours already enforces.
|