@xingular/harness 0.1.7 → 1.1.1
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 +125 -1
- package/LICENSE +202 -0
- package/NOTICE.md +22 -0
- package/README.md +239 -86
- package/THIRD_PARTY_LICENSES.md +942 -0
- package/dist/cli.js +17853 -13114
- package/dist/sdk/accounts/accounts.d.ts +165 -0
- package/dist/sdk/accounts/accounts.js +730 -0
- package/dist/sdk/accounts/choices.d.ts +23 -0
- package/dist/sdk/accounts/choices.js +62 -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 +16 -0
- package/dist/sdk/accounts/secrets.js +40 -0
- package/dist/sdk/accounts/store.d.ts +114 -0
- package/dist/sdk/accounts/store.js +255 -0
- package/dist/sdk/agents/builtin.d.ts +2 -0
- package/dist/sdk/agents/builtin.js +34 -0
- package/dist/sdk/agents/narrow.d.ts +13 -0
- package/dist/sdk/agents/narrow.js +29 -0
- package/dist/sdk/agents/profiles.d.ts +80 -0
- package/dist/sdk/agents/profiles.js +221 -0
- package/dist/sdk/annotations/bridge.d.ts +42 -0
- package/dist/sdk/annotations/bridge.js +264 -0
- package/dist/sdk/annotations/capture.d.ts +116 -0
- package/dist/sdk/annotations/capture.js +308 -0
- package/dist/sdk/annotations/delivery.d.ts +72 -0
- package/dist/sdk/annotations/delivery.js +130 -0
- package/dist/sdk/annotations/inspect.d.ts +10 -0
- package/dist/sdk/annotations/inspect.js +33 -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 +570 -0
- package/dist/sdk/annotations/part.d.ts +10 -0
- package/dist/sdk/annotations/part.js +144 -0
- package/dist/sdk/annotations/queue.d.ts +4 -0
- package/dist/sdk/annotations/queue.js +40 -0
- package/dist/sdk/annotations/serverMethods.d.ts +3 -0
- package/dist/sdk/annotations/serverMethods.js +62 -0
- package/dist/sdk/annotations/store.d.ts +160 -0
- package/dist/sdk/annotations/store.js +386 -0
- package/dist/sdk/browser/config.d.ts +16 -0
- package/dist/sdk/browser/config.js +22 -0
- package/dist/sdk/browser/diagnostics.d.ts +4 -0
- package/dist/sdk/browser/diagnostics.js +38 -0
- package/dist/sdk/browser/index.d.ts +28 -0
- package/dist/sdk/browser/index.js +72 -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 +7 -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 +8 -0
- package/dist/sdk/browser/tools.js +329 -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 +47 -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 +150 -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/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 +187 -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/text.d.ts +7 -0
- package/dist/sdk/core/text.js +40 -0
- package/dist/sdk/doctor/checks.d.ts +5 -0
- package/dist/sdk/doctor/checks.js +208 -0
- package/dist/sdk/doctor/probe.d.ts +4 -0
- package/dist/sdk/doctor/probe.js +92 -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 +148 -0
- package/dist/sdk/harness.js +338 -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 +216 -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 +474 -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 +73 -0
- package/dist/sdk/index.js +55 -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/runtime.d.ts +13 -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 +163 -0
- package/dist/sdk/plugins/builtinRegistry.d.ts +53 -0
- package/dist/sdk/plugins/builtinRegistry.js +49 -0
- package/dist/sdk/plugins/catalogue.d.ts +29 -0
- package/dist/sdk/plugins/catalogue.js +196 -0
- package/dist/sdk/plugins/cli.d.ts +13 -0
- package/dist/sdk/plugins/cli.js +188 -0
- package/dist/sdk/plugins/discover.d.ts +42 -0
- package/dist/sdk/plugins/discover.js +115 -0
- package/dist/sdk/plugins/firstParty.d.ts +50 -0
- package/dist/sdk/plugins/firstParty.js +113 -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 +20 -0
- package/dist/sdk/plugins/install.js +110 -0
- package/dist/sdk/plugins/inventory.d.ts +22 -0
- package/dist/sdk/plugins/inventory.js +110 -0
- package/dist/sdk/plugins/manifest.d.ts +13 -0
- package/dist/sdk/plugins/manifest.js +56 -0
- package/dist/sdk/plugins/plugins.d.ts +104 -0
- package/dist/sdk/plugins/plugins.js +164 -0
- package/dist/sdk/plugins/runtime.d.ts +9 -0
- package/dist/sdk/plugins/runtime.js +95 -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 +159 -0
- package/dist/sdk/plugins/types.js +7 -0
- package/dist/sdk/prompt/compile.d.ts +177 -0
- package/dist/sdk/prompt/compile.js +413 -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 +51 -0
- package/dist/sdk/refine/host.js +76 -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 +45 -0
- package/dist/sdk/refine/prompts.js +390 -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 +81 -0
- package/dist/sdk/refine/runner.js +150 -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 +20 -0
- package/dist/sdk/refine/service.d.ts +84 -0
- package/dist/sdk/refine/service.js +165 -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 +68 -0
- package/dist/sdk/refine/types.d.ts +77 -0
- package/dist/sdk/refine/types.js +10 -0
- package/dist/sdk/server/methods.d.ts +3 -0
- package/dist/sdk/server/methods.js +293 -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 +84 -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 +10 -0
- package/dist/sdk/server/serve.js +18 -0
- package/dist/sdk/sessions/approvals.d.ts +47 -0
- package/dist/sdk/sessions/approvals.js +119 -0
- package/dist/sdk/sessions/continuation.d.ts +48 -0
- package/dist/sdk/sessions/continuation.js +85 -0
- package/dist/sdk/sessions/contracts.d.ts +551 -0
- package/dist/sdk/sessions/contracts.js +338 -0
- package/dist/sdk/sessions/extensionUi.d.ts +19 -0
- package/dist/sdk/sessions/extensionUi.js +64 -0
- package/dist/sdk/sessions/history.d.ts +16 -0
- package/dist/sdk/sessions/history.js +68 -0
- package/dist/sdk/sessions/lineageJoin.d.ts +2 -0
- package/dist/sdk/sessions/lineageJoin.js +61 -0
- package/dist/sdk/sessions/planMode.d.ts +39 -0
- package/dist/sdk/sessions/planMode.js +93 -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 +103 -0
- package/dist/sdk/sessions/registry.js +386 -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 +66 -0
- package/dist/sdk/sessions/runStore.js +337 -0
- package/dist/sdk/sessions/runner.d.ts +213 -0
- package/dist/sdk/sessions/runner.js +589 -0
- package/dist/sdk/sessions/sessions.d.ts +152 -0
- package/dist/sdk/sessions/sessions.js +461 -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/subagentServerMethods.d.ts +3 -0
- package/dist/sdk/sessions/subagentServerMethods.js +41 -0
- package/dist/sdk/sessions/subagentService.d.ts +52 -0
- package/dist/sdk/sessions/subagentService.js +265 -0
- package/dist/sdk/sessions/subagents.d.ts +58 -0
- package/dist/sdk/sessions/subagents.js +87 -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 +186 -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 +15 -0
- package/dist/sdk/terminal/client.js +126 -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 +78 -0
- package/dist/sdk/terminal/controller.js +383 -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/logs.d.ts +14 -0
- package/dist/sdk/terminal/logs.js +59 -0
- package/dist/sdk/terminal/opentui/subagentsWidget.d.ts +28 -0
- package/dist/sdk/terminal/opentui/subagentsWidget.js +52 -0
- package/dist/sdk/terminal/piExtension.d.ts +6 -0
- package/dist/sdk/terminal/piExtension.js +377 -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 +20 -0
- package/dist/sdk/terminal/standalone.js +186 -0
- package/dist/sdk/terminal/subagentMonitor.d.ts +38 -0
- package/dist/sdk/terminal/subagentMonitor.js +121 -0
- package/dist/sdk/terminal/terminals.d.ts +212 -0
- package/dist/sdk/terminal/terminals.js +1108 -0
- package/dist/sdk/terminal/trajectory.d.ts +10 -0
- package/dist/sdk/terminal/trajectory.js +30 -0
- package/dist/sdk/terminal/tui/annotateCommand.d.ts +3 -0
- package/dist/sdk/terminal/tui/annotateCommand.js +22 -0
- package/dist/sdk/terminal/tui/chrome.d.ts +64 -0
- package/dist/sdk/terminal/tui/chrome.js +169 -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 +11 -0
- package/dist/sdk/terminal/tui/commandPages.js +111 -0
- package/dist/sdk/terminal/tui/commands.d.ts +46 -0
- package/dist/sdk/terminal/tui/commands.js +399 -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 +80 -0
- package/dist/sdk/terminal/tui/dialogs.js +370 -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 +73 -0
- package/dist/sdk/terminal/tui/list.js +196 -0
- package/dist/sdk/terminal/tui/modeChoices.d.ts +42 -0
- package/dist/sdk/terminal/tui/modeChoices.js +70 -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/page.d.ts +17 -0
- package/dist/sdk/terminal/tui/page.js +1 -0
- package/dist/sdk/terminal/tui/pageOverlay.d.ts +27 -0
- package/dist/sdk/terminal/tui/pageOverlay.js +156 -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 +190 -0
- package/dist/sdk/terminal/tui/pages/annotatePage.d.ts +94 -0
- package/dist/sdk/terminal/tui/pages/annotatePage.js +341 -0
- package/dist/sdk/terminal/tui/pages/browserPage.d.ts +87 -0
- package/dist/sdk/terminal/tui/pages/browserPage.js +738 -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/doctorPage.d.ts +39 -0
- package/dist/sdk/terminal/tui/pages/doctorPage.js +233 -0
- package/dist/sdk/terminal/tui/pages/hubPage.d.ts +39 -0
- package/dist/sdk/terminal/tui/pages/hubPage.js +128 -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/notesPage.d.ts +75 -0
- package/dist/sdk/terminal/tui/pages/notesPage.js +201 -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 +57 -0
- package/dist/sdk/terminal/tui/pages/pluginsPage.js +243 -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 +23 -0
- package/dist/sdk/terminal/tui/pages/subagentsPage.js +70 -0
- package/dist/sdk/terminal/tui/pages/trajectoryPage.d.ts +65 -0
- package/dist/sdk/terminal/tui/pages/trajectoryPage.js +450 -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 +18 -0
- package/dist/sdk/terminal/tui/piAdapter.js +48 -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 +14 -0
- package/dist/sdk/terminal/tui/pluginCommands.js +27 -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 +114 -0
- package/dist/sdk/terminal/tui/runtime.js +443 -0
- package/dist/sdk/terminal/tui/search.d.ts +22 -0
- package/dist/sdk/terminal/tui/search.js +60 -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/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 +114 -0
- package/dist/sdk/terminal/tui/sideQuestion.d.ts +53 -0
- package/dist/sdk/terminal/tui/sideQuestion.js +230 -0
- package/dist/sdk/terminal/tui/skillInvocation.d.ts +9 -0
- package/dist/sdk/terminal/tui/skillInvocation.js +43 -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 +45 -0
- package/dist/sdk/terminal/tui/theme.js +176 -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/workingStatus.d.ts +9 -0
- package/dist/sdk/terminal/tui/workingStatus.js +229 -0
- package/dist/sdk/tools/askUser.d.ts +6 -0
- package/dist/sdk/tools/askUser.js +92 -0
- package/dist/sdk/tools/checklist.d.ts +9 -0
- package/dist/sdk/tools/checklist.js +54 -0
- package/dist/sdk/tools/definitions.d.ts +30 -0
- package/dist/sdk/tools/definitions.js +117 -0
- package/dist/sdk/tools/dispatch.d.ts +16 -0
- package/dist/sdk/tools/dispatch.js +67 -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 +7 -0
- package/dist/sdk/tools/sessionName.js +31 -0
- package/dist/sdk/tools/spawnSubagent.d.ts +4 -0
- package/dist/sdk/tools/spawnSubagent.js +58 -0
- package/dist/sdk/tools/types.d.ts +48 -0
- package/dist/sdk/tools/types.js +1 -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 +82 -0
- package/dist/sdk/variant/store.js +151 -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 +16 -0
- package/dist/sdk/worktrees/git.js +81 -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/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 +67 -0
- package/dist/sdk/world/world.js +79 -0
- package/dist/terminal-opentui.js +20778 -0
- package/dist/terminal-pi.js +794 -518
- package/docs/README.md +42 -0
- 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 +203 -0
- package/docs/architecture/03-variants.md +103 -0
- package/docs/architecture/04-prompt.md +122 -0
- package/docs/architecture/05-refinement.md +107 -0
- package/docs/architecture/06-plugins-and-capabilities.md +129 -0
- package/docs/architecture/07-tools-and-gate.md +103 -0
- package/docs/architecture/08-memory-and-history.md +94 -0
- package/docs/architecture/09-accounts-and-connectors.md +98 -0
- package/docs/architecture/10-server-protocol.md +193 -0
- package/docs/architecture/11-terminal.md +261 -0
- package/docs/architecture/12-storage.md +75 -0
- package/docs/architecture/13-world-tools.md +45 -0
- package/docs/architecture/14-surfaces-and-parity.md +89 -0
- package/docs/architecture/README.md +125 -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 +70 -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 +127 -0
- package/docs/architecture/proposals/PROP-0018-annotation-queue-and-app-targets.md +179 -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 +94 -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/README.md +101 -0
- package/docs/decisions/ADR-0002-native-subagent-lifecycle.md +49 -0
- package/docs/decisions/ADR-0003-shared-asynchronous-subagents.md +70 -0
- package/docs/decisions/ADR-0004-fullscreen-terminal-layout.md +50 -0
- package/docs/decisions/ADR-0005-app-provided-oauth-clients.md +54 -0
- 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 +38 -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 +60 -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/doctor.md +80 -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/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/parity.md +78 -0
- package/docs/releases/1.0.0.md +40 -0
- package/docs/releases/4.0.0.md +46 -0
- package/docs/releases/README.md +41 -0
- package/docs/study/00-index.md +83 -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 +75 -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 +44 -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 +707 -58
- package/package.json +43 -13
- package/docs/evidence/terminal-2026-10-17/120x40-completed-transcript.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17/40x20-settings-interaction.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17/40x20-settings-keyboard.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17/40x20-welcome.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17/80x24-approval-0.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17/80x24-question.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17/verification.json +0 -130
- package/docs/evidence/terminal-2026-10-17-followup/120x40-completed-transcript.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/40x20-settings-interaction.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/40x20-settings-keyboard.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/40x20-welcome.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/80x24-approval-0.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/80x24-plugin-light.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/80x24-question-batch.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/80x24-question.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/app-bundle/80x24-approval-0.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/app-bundle/80x24-plugin-light.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/app-bundle/80x24-question-batch.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/app-bundle/80x24-question.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/app-bundle/verification.json +0 -95
- package/docs/evidence/terminal-2026-10-17-followup/global-install/80x24-approval-0.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/global-install/80x24-plugin-light.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/global-install/80x24-question-batch.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/global-install/80x24-question.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/global-install/README.md +0 -27
- package/docs/evidence/terminal-2026-10-17-followup/global-install/shell-command-80x24.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/global-install/shell-command.json +0 -18
- package/docs/evidence/terminal-2026-10-17-followup/global-install/verification.json +0 -95
- package/docs/evidence/terminal-2026-10-17-followup/harness-reference-80x24.json.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/harness-reference-final-80x24.json.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/harness-reference-scenario.json +0 -60
- package/docs/evidence/terminal-2026-10-17-followup/live-codex/README.md +0 -24
- package/docs/evidence/terminal-2026-10-17-followup/live-codex/complete-80x24.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/live-codex/verification.json +0 -57
- package/docs/evidence/terminal-2026-10-17-followup/omp-reference-80x24-early.json.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/omp-reference-80x24.json.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/omp-reference-scenario.json +0 -58
- package/docs/evidence/terminal-2026-10-17-followup/omp-supplemental-static.json.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/rea-artifacts.json +0 -320
- package/docs/evidence/terminal-2026-10-17-followup/reference-comparison.json +0 -30
- package/docs/evidence/terminal-2026-10-17-followup/reference-comparison.md +0 -133
- package/docs/evidence/terminal-2026-10-17-followup/reference-source-observations.json +0 -20
- package/docs/evidence/terminal-2026-10-17-followup/verification.json +0 -207
- package/src/accounts/accounts.test.ts +0 -333
- package/src/accounts/accounts.ts +0 -658
- 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.ts +0 -34
- 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 -312
- 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 -75
- package/src/mcp/connections.ts +0 -614
- 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 -376
- package/src/mcp/service.ts +0 -549
- package/src/mcp/types.ts +0 -108
- 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 -163
- package/src/memory/curation.ts +0 -64
- package/src/memory/dispatch.ts +0 -59
- 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 -176
- package/src/memory/maintenance.ts +0 -518
- 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 -278
- 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/wiki.test.ts +0 -47
- package/src/memory/wiki.ts +0 -422
- package/src/memory/wikiIndex.test.ts +0 -88
- package/src/memory/wikiIndex.ts +0 -116
- 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 -82
- 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 -349
- 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 -174
- package/src/sessions/approvals.ts +0 -118
- package/src/sessions/contracts.ts +0 -336
- package/src/sessions/conversation.test.ts +0 -177
- 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 -381
- package/src/sessions/runIndex.ts +0 -99
- package/src/sessions/runStore.test.ts +0 -152
- package/src/sessions/runStore.ts +0 -332
- package/src/sessions/runner.ts +0 -604
- package/src/sessions/runtimeResources.test.ts +0 -61
- package/src/sessions/sessions.test.ts +0 -549
- package/src/sessions/sessions.ts +0 -339
- 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 -291
- 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 -259
- package/src/terminal/pluginControl.test.ts +0 -146
- package/src/terminal/pluginMenu.ts +0 -112
- package/src/terminal/socket.test.ts +0 -71
- package/src/terminal/socket.ts +0 -232
- package/src/terminal/standalone.test.ts +0 -167
- package/src/terminal/standalone.ts +0 -153
- package/src/terminal/terminal.test.ts +0 -399
- package/src/terminal/terminals.ts +0 -553
- package/src/terminal/tui/application.test.ts +0 -114
- package/src/terminal/tui/application.ts +0 -491
- package/src/terminal/tui/commands.test.ts +0 -218
- package/src/terminal/tui/commands.ts +0 -361
- package/src/terminal/tui/dialogs.ts +0 -301
- package/src/terminal/tui/editor.test.ts +0 -84
- package/src/terminal/tui/editor.ts +0 -79
- package/src/terminal/tui/keybindings.test.ts +0 -22
- package/src/terminal/tui/keybindings.ts +0 -50
- package/src/terminal/tui/piAdapter.ts +0 -62
- 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 -104
- package/src/terminal/tui/runtime.test.ts +0 -215
- package/src/terminal/tui/runtime.ts +0 -388
- 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/status.test.ts +0 -70
- package/src/terminal/tui/status.ts +0 -109
- package/src/terminal/tui/theme.ts +0 -174
- package/src/terminal/tui/tools.test.ts +0 -145
- package/src/terminal/tui/tools.ts +0 -142
- package/src/terminal/tui/transcript.test.ts +0 -25
- package/src/terminal/tui/transcript.ts +0 -124
- 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/tools/askUser.test.ts +0 -69
- package/src/tools/askUser.ts +0 -59
- package/src/tools/definitions.ts +0 -187
- package/src/tools/maintenance.ts +0 -24
- 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 -92
- package/src/tools/types.ts +0 -39
- 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,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0003
|
|
3
|
+
title: Shared asynchronous subagents with native-history delivery receipts
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-10-18
|
|
6
|
+
updated: 2026-10-18
|
|
7
|
+
supersedes: ADR-0002
|
|
8
|
+
---
|
|
9
|
+
# ADR-0003 — Shared asynchronous subagents with native-history delivery receipts
|
|
10
|
+
|
|
11
|
+
## Context and decision
|
|
12
|
+
|
|
13
|
+
The owner selected reliable delivery, asynchronous spawn/wait, and one SDK/terminal/App API after
|
|
14
|
+
studying OMP. They chose attached children joined before the parent finishes, async spawning by
|
|
15
|
+
default, availability for every interactive caller within its capability ceiling, and recovery
|
|
16
|
+
only when the user explicitly resumes. This supersedes the blocking tool contract in ADR-0002.
|
|
17
|
+
|
|
18
|
+
`harness.subagents` owns spawning, selective waits and results. SDK and terminal adapters register
|
|
19
|
+
live, frozen parent context with it; no model argument supplies caller, account or replacement
|
|
20
|
+
launch metadata. The terminal adapter uses its private control key. Children use normal Harness
|
|
21
|
+
sessions, isolated accounts, fresh history, existing gates and capability intersection. The old
|
|
22
|
+
`sessions.spawnSubagent` entry point forwards to the service for compatibility.
|
|
23
|
+
|
|
24
|
+
A parent reserves each child in `runs/<parent>/subagents.json` through the run store before startup.
|
|
25
|
+
A native branch owner marker is persisted before a real parent accepts spawns. Results are delivered
|
|
26
|
+
at turn boundaries or through explicit blocking tools. Native messages and tool results carry typed
|
|
27
|
+
receipts; only receipts on the selected branch acknowledge delivery. Constructing a delivery draft
|
|
28
|
+
never acknowledges it. Large batches acknowledge only the included children. The final settlement
|
|
29
|
+
hook joins children and injects remaining results; an adapter verification guard refuses successful
|
|
30
|
+
completion if persisted native history still lacks a result. The stable system prefix is unchanged.
|
|
31
|
+
|
|
32
|
+
On explicit resume, matching owner markers, caller/account/folder/native identity and run lineage
|
|
33
|
+
restore undelivered results. A startup reservation that never opened becomes an interrupted run.
|
|
34
|
+
Existing startup recovery interrupts orphaned active runs. Neither recovery path restarts model
|
|
35
|
+
work. Cancellation settles approvals and questions before waiting for SDK abort, preventing blocked
|
|
36
|
+
child interactions from deadlocking parent shutdown.
|
|
37
|
+
|
|
38
|
+
Interactive sessions enable the tools by default, `null` disables them, and explicit capability
|
|
39
|
+
sets can exclude them. Unattended callers remain off unless the host explicitly enables them.
|
|
40
|
+
Default nesting remains one, with a maximum of three. There is no new scheduler, reusable-worker
|
|
41
|
+
lifecycle, model routing, workspace isolation system, concurrency cap or family budget here.
|
|
42
|
+
|
|
43
|
+
## Alternatives and consequences
|
|
44
|
+
|
|
45
|
+
A tool-owned launcher leaves terminal and SDK behavior divergent. An in-memory delivery flag loses
|
|
46
|
+
results across restart; searching prose for run IDs confuses mentions with delivery. Native-history
|
|
47
|
+
receipts identify persisted context without adding a second acknowledgement store. Run records
|
|
48
|
+
remain the outcome source of truth, while the parent file preserves startup reservations.
|
|
49
|
+
|
|
50
|
+
The App owns organization delegation and resolves native ancestry for thread routing, tools,
|
|
51
|
+
isolation and connections. Its existing work-budget accounting includes native descendants. Harness
|
|
52
|
+
learns no organizational role or application concept. Native completion records execution outcome;
|
|
53
|
+
it does not certify the child's findings or artifacts.
|
|
54
|
+
|
|
55
|
+
## Evidence and limits
|
|
56
|
+
|
|
57
|
+
`subagentService.test.ts` covers selective waits, foreign handles, cancellation, bounded batches and
|
|
58
|
+
recovery windows. Real scripted Pi tests in `conversation.test.ts` cover async delivery, inline
|
|
59
|
+
receipts and interruption during a child question. `runtime.socket.test.ts` exercises the real
|
|
60
|
+
terminal socket, private controls, native execution and child decision routing. RPC and App host
|
|
61
|
+
regressions cover protocol shapes and ancestry. Tests use disposable storage without external
|
|
62
|
+
model requests. These changes shipped in `@xingular/harness` 2.0.0 (commit `44471bc`); release does not imply live-provider acceptance.
|
|
63
|
+
|
|
64
|
+
Verification on 2026-10-18: Harness typecheck, 455 tests (two skipped), unchanged golden fixtures,
|
|
65
|
+
build and standalone proof passed. App typecheck, layer/UI checks, sidecar build, 30 sidecar tests
|
|
66
|
+
and 217 Rust tests passed (one ignored). The renderer suite passed 491 tests and retained its
|
|
67
|
+
pre-existing `PendingRequestDock.test.ts` heading-text assertion failure. No live account or
|
|
68
|
+
user-data-root testing was performed.
|
|
69
|
+
|
|
70
|
+
Release verification on 2026-10-18: npm 10 clean install, typecheck, 515 tests (two skipped), build and standalone proof passed. GitHub CI passed on Ubuntu and macOS, and the npm publish workflow released version 2.0.0 with provenance. No live provider requests were made during release verification.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0004
|
|
3
|
+
title: Fullscreen terminal layout with a fixed dock
|
|
4
|
+
status: superseded
|
|
5
|
+
created: 2026-10-18
|
|
6
|
+
updated: 2026-10-21
|
|
7
|
+
supersedes: none
|
|
8
|
+
superseded_by: ADR-0006
|
|
9
|
+
---
|
|
10
|
+
# ADR-0004 — Fullscreen terminal layout with a fixed dock
|
|
11
|
+
|
|
12
|
+
## Context and decision
|
|
13
|
+
|
|
14
|
+
The owned terminal drew its transcript and composer as one flowing list on the main screen. With a
|
|
15
|
+
short transcript the composer sat under the last line and moved down as the transcript grew. Harness
|
|
16
|
+
also kept its own scroll offset, mouse regions and paging, which duplicated the viewport Pi already
|
|
17
|
+
provides in fullscreen.
|
|
18
|
+
|
|
19
|
+
Harness now uses Pi's fullscreen renderer by default. The welcome and transcript form a scroll view
|
|
20
|
+
that fills the terminal; the dock (working line, queue and notices, widgets, editor and status band,
|
|
21
|
+
footer) sits fixed below it. Pi's `tuiMode`, `fullscreenScrollbar`, `fullscreenWheelScrollLines`,
|
|
22
|
+
`fullscreenCopyOnSelect` and `fullscreenExitOutput` settings are read from the account and honoured.
|
|
23
|
+
`tuiMode: "regular"` keeps the flowing layout on the main screen. When fullscreen ends with
|
|
24
|
+
`fullscreenExitOutput: "transcript"`, the rendered conversation is copied into the normal scrollback.
|
|
25
|
+
|
|
26
|
+
## Consequences
|
|
27
|
+
|
|
28
|
+
- While fullscreen is running, the transcript is not in the terminal's scrollback. Mouse capture is
|
|
29
|
+
on, so terminal drag-selection gives way to the application's selection, which copies on release.
|
|
30
|
+
These are Pi's defaults and remain changeable in settings.
|
|
31
|
+
- Harness no longer owns scroll state, wheel handling or paging. Those come from Pi's viewport and its
|
|
32
|
+
`tui.altScreen.*` bindings, and the keyboard list shows the scroll keys only in fullscreen.
|
|
33
|
+
- Regular mode has no Harness-managed scroll position; scrolling there belongs to the terminal.
|
|
34
|
+
- When the screen is short, a long notice shows its first rows and scrolls for the rest. The prompt
|
|
35
|
+
and status are never clipped; the head of a notice stays readable, so the newest line of a long
|
|
36
|
+
list may need a scroll.
|
|
37
|
+
- Only `transcript` exit output is implemented. Other values write nothing on exit.
|
|
38
|
+
|
|
39
|
+
## Alternatives considered
|
|
40
|
+
|
|
41
|
+
Padding the main-screen output to the terminal height also keeps the composer on the last rows for a
|
|
42
|
+
short transcript. It keeps native scrollback, but Harness would still own its scrolling and mouse
|
|
43
|
+
handling, and the composer would scroll away with the terminal's scrollback once the transcript
|
|
44
|
+
overflowed. That was rejected because it keeps the duplicated code this change removes.
|
|
45
|
+
|
|
46
|
+
## Evidence
|
|
47
|
+
|
|
48
|
+
The layout is covered by `src/terminal/tui/screen.test.ts`: the dock stays on the last rows as the
|
|
49
|
+
transcript grows and scrolls, regular mode flows in order, and the exit copy is written with its styles
|
|
50
|
+
reset. The PTY verification of the built CLI is recorded in [the terminal reference](../terminal-tui.md).
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0005
|
|
3
|
+
title: Application-provided OAuth clients for connected apps
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-10-18
|
|
6
|
+
updated: 2026-10-18
|
|
7
|
+
supersedes: none
|
|
8
|
+
---
|
|
9
|
+
# ADR-0005 — Application-provided OAuth clients for connected apps
|
|
10
|
+
|
|
11
|
+
## Context and decision
|
|
12
|
+
|
|
13
|
+
Every remote connected app so far authenticated one of two ways: the server registers this app
|
|
14
|
+
dynamically (RFC 7591), or the person registers a client with the provider and pastes its ID and
|
|
15
|
+
secret into Connections. Google's Workspace MCP servers support neither in practice: they have no
|
|
16
|
+
dynamic registration, and requiring every person to create a Google Cloud project before connecting
|
|
17
|
+
Gmail is not a product.
|
|
18
|
+
|
|
19
|
+
A connection's `oauthClient` now has a third value, `app`: **the application supplies the client**.
|
|
20
|
+
The host does so through one extension point on the harness:
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
export interface AppOAuthClients {
|
|
24
|
+
ids(): string[]
|
|
25
|
+
get(catalogId: string): Promise<{ clientId: string; clientSecret?: string } | null>
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
`HarnessOptions.oauthClients` carries it. Only a connection whose `catalogId` appears in `ids()` can
|
|
30
|
+
use it — a hand-typed connection, a Hub connector recipe, and a plugin template cannot, because none
|
|
31
|
+
of them can name a client the application actually holds. `connections.appClients` reports the ids so
|
|
32
|
+
an application can offer only the connectors it can actually sign in for.
|
|
33
|
+
|
|
34
|
+
The client is resolved inside `Connections.oauthLoad` and placed in the OAuth state as
|
|
35
|
+
`staticClient`, exactly where a user-registered client goes. `oauthSave` already strips
|
|
36
|
+
`staticClient`, so the client is never written to `connections.json` or the secret store; it is
|
|
37
|
+
re-resolved on each load. Refresh tokens continue to be stored per connection.
|
|
38
|
+
|
|
39
|
+
## Consequences
|
|
40
|
+
|
|
41
|
+
- The harness learns no product concept: it knows a catalog entry id, a client, and a sign-in. Which
|
|
42
|
+
entries an application can serve is entirely the host's answer.
|
|
43
|
+
- A build without a client is a first-class state, not an error: `ids()` is empty, `signIn` refuses
|
|
44
|
+
with "This connector has no app sign-in in this build", and the application hides those catalog
|
|
45
|
+
entries instead of offering a dead end.
|
|
46
|
+
- A client secret in a distributed desktop build is extractable, so it is treated as public. The real
|
|
47
|
+
controls stay Google's consent screen, the requested scopes, and the tool approval gate.
|
|
48
|
+
- One client can serve several catalog entries (five Google servers, one client). Each entry is still
|
|
49
|
+
its own connection with its own tokens, so signing in to one does not authorize another.
|
|
50
|
+
- The per-user path is untouched: `oauthClient: 'user'` still stores a person's own client in
|
|
51
|
+
Keychain, and it remains the only route for providers or accounts an application cannot pre-register
|
|
52
|
+
for.
|
|
53
|
+
- Google's Developer Preview terms, app verification and CASA assessment for restricted scopes are
|
|
54
|
+
outside this decision; they decide who can use the shipped client, not how it is delivered.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0006
|
|
3
|
+
title: OpenTUI is the only terminal frontend
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-10-21
|
|
6
|
+
updated: 2026-10-21
|
|
7
|
+
supersedes: ADR-0004
|
|
8
|
+
---
|
|
9
|
+
# ADR-0006 — OpenTUI is the only terminal frontend
|
|
10
|
+
|
|
11
|
+
## Context and decision
|
|
12
|
+
|
|
13
|
+
Harness carried two terminal frontends: the owned Pi terminal and an OpenTUI/Solid frontend behind
|
|
14
|
+
`XINGULAR_HARNESS_TUI=opentui`. The split kept two launch paths, two input and rendering stacks, and
|
|
15
|
+
a fallback that let the terminal start without the OpenTUI build. The requested terminal is the
|
|
16
|
+
OpenTUI one, so the second frontend no longer earns its maintenance and test surface.
|
|
17
|
+
|
|
18
|
+
`Terminals.prepare()` now always returns Bun with `--conditions=browser` and
|
|
19
|
+
`dist/terminal-opentui.js`. The harness no longer reads `XINGULAR_HARNESS_TUI`, the CLI no longer
|
|
20
|
+
has the internal `terminal-frontend` command, and the legacy frontend modules are removed.
|
|
21
|
+
`TerminalAssets.openTui` is required. `XINGULAR_HARNESS_BUN` still selects the Bun executable.
|
|
22
|
+
|
|
23
|
+
Bun 1.3.14 or newer is required to build and run the terminal. `npm run build:tui` fails with a
|
|
24
|
+
clear error when Bun is unavailable instead of writing a placeholder or leaving the old frontend.
|
|
25
|
+
`HarnessOptions.piProgram` remains accepted for source compatibility but is ignored.
|
|
26
|
+
|
|
27
|
+
## Consequences
|
|
28
|
+
|
|
29
|
+
- There is one launch path, one frontend test surface, and no silent fallback to a different UI.
|
|
30
|
+
- A machine that installs the package must have Bun; Node remains the runtime for the CLI, server,
|
|
31
|
+
accounts and Pi sessions.
|
|
32
|
+
- The OpenTUI page dialogs, composer, Bash mode and palette are the shipped presentation; the
|
|
33
|
+
fullscreen layout in ADR-0004 is history.
|
|
34
|
+
- Embedders that construct `TerminalAssets` themselves must provide `openTui`.
|
|
35
|
+
|
|
36
|
+
## Alternatives considered
|
|
37
|
+
|
|
38
|
+
Keeping the legacy frontend as an unreachable fallback preserves dead code and two mental models
|
|
39
|
+
for input, rendering and exit behavior. Keeping OpenTUI opt-in preserves the split the change was
|
|
40
|
+
asked to remove. Both were rejected.
|
|
41
|
+
|
|
42
|
+
## Evidence
|
|
43
|
+
|
|
44
|
+
Unit and integration tests construct launches and exercise the shared runtime without a real
|
|
45
|
+
provider request. A PTY probe of the standalone command with `XINGULAR_HARNESS_TUI` unset renders
|
|
46
|
+
the OpenTUI home and exits 0; the capture and build hashes are in
|
|
47
|
+
[the console evidence](../evidence/terminal-2026-10-20-console-tui/default-opentui-probe.json).
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0007
|
|
3
|
+
title: A fixed Reporting section shapes the final reply
|
|
4
|
+
status: superseded
|
|
5
|
+
created: 2026-10-21
|
|
6
|
+
updated: 2026-10-21
|
|
7
|
+
superseded_by: ADR-0008
|
|
8
|
+
---
|
|
9
|
+
# ADR-0007 — A fixed Reporting section shapes the final reply
|
|
10
|
+
|
|
11
|
+
## Context and decision
|
|
12
|
+
|
|
13
|
+
Nothing in the compiled prompt said how a run should end, so final replies buried the answer and
|
|
14
|
+
rarely listed files changed, blockers or unverified work. Other harnesses (opencode, omp, Claude
|
|
15
|
+
Code, Codex CLI, kimi-cli) keep final-answer rules in their fixed prompt text; the comparison is in
|
|
16
|
+
[PROP-0001](../architecture/proposals/PROP-0001-reporting-section.md).
|
|
17
|
+
|
|
18
|
+
The compiler now adds a harness-owned `reporting` section to every pack (`SECTION_ORDER.reporting`
|
|
19
|
+
95, after `tools`; text `REPORTING_GUIDANCE` in `src/prompt/compile.ts`; budget 2,000, never cut,
|
|
20
|
+
never dynamic). It asks for the answer first, then only the parts with content — Files, Blocked,
|
|
21
|
+
Worth a look, Check by hand, Next steps — and Markdown tables where several items share fields. A
|
|
22
|
+
format the person, the application or the current mode asks for takes precedence.
|
|
23
|
+
|
|
24
|
+
## Consequences
|
|
25
|
+
|
|
26
|
+
- Every session and every application gets the same reply shape without configuration.
|
|
27
|
+
- The stable prefix changes once; existing sessions miss the provider cache once after upgrade.
|
|
28
|
+
- The model writes the file list. A harness-built list from run events remains possible later.
|
|
29
|
+
|
|
30
|
+
## Alternatives considered
|
|
31
|
+
|
|
32
|
+
Default tree text (old trees never get it, refinement could drop it); an application section
|
|
33
|
+
(every application repeats it, the terminal has none); doing nothing. All rejected.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0008
|
|
3
|
+
title: Flexible reporting guidance with optional human inspection
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-10-21
|
|
6
|
+
updated: 2026-10-21
|
|
7
|
+
supersedes: ADR-0007
|
|
8
|
+
---
|
|
9
|
+
# ADR-0008 — Flexible reporting guidance with optional human inspection
|
|
10
|
+
|
|
11
|
+
## Context and decision
|
|
12
|
+
|
|
13
|
+
ADR-0007 added stable, harness-owned guidance for final replies, but its fixed heading list could
|
|
14
|
+
produce generic sections and did not clearly identify when a person must perform a check the agent
|
|
15
|
+
could not perform or observe. The user accepted [PROP-0004](../architecture/proposals/PROP-0004-flexible-reporting-guidance.md).
|
|
16
|
+
|
|
17
|
+
Keep the `reporting` section in the stable system prompt and lead with the outcome, but do not
|
|
18
|
+
require a fixed set of headings. Use only structure that helps explain the work. **Need human
|
|
19
|
+
inspection** is an optional heading for a concrete verification that requires a person because the
|
|
20
|
+
agent could not perform or observe it; state what remains unverified, why, and the specific check
|
|
21
|
+
to make. Do not use it for checks already performed or generic risks. Report only checks actually
|
|
22
|
+
run and their results.
|
|
23
|
+
|
|
24
|
+
## Consequences
|
|
25
|
+
|
|
26
|
+
- Every session receives the same concise, flexible reporting guidance.
|
|
27
|
+
- The stable prefix changes once; existing sessions may miss the provider cache once after upgrade.
|
|
28
|
+
- No stored data or server protocol changes. Applications bundling the harness need a rebuild to
|
|
29
|
+
receive the updated prompt.
|
|
30
|
+
- Cache behavior is measured only with real application requests and the account owner's
|
|
31
|
+
permission, as required by INV-PRM-8.
|
|
32
|
+
|
|
33
|
+
## Alternatives considered
|
|
34
|
+
|
|
35
|
+
- Keep the fixed headings: rejected because they can add generic structure and mislabel follow-up.
|
|
36
|
+
- Remove all guidance about unverified work: rejected because concrete human checks could be omitted.
|
|
37
|
+
- Make **Need human inspection** mandatory: rejected because most tasks do not require a person to
|
|
38
|
+
perform a check.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0009
|
|
3
|
+
title: Publish the Harness CLI as xharness
|
|
4
|
+
status: superseded
|
|
5
|
+
created: 2026-10-22
|
|
6
|
+
updated: 2026-10-24
|
|
7
|
+
related: [PROP-0005]
|
|
8
|
+
supersedes: null
|
|
9
|
+
superseded_by: ADR-0024
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# ADR-0009 — Publish the Harness CLI as xharness (superseded)
|
|
13
|
+
|
|
14
|
+
## Context and decision drivers
|
|
15
|
+
|
|
16
|
+
The published package used `xingular-harness` as its executable, while the desired short command is
|
|
17
|
+
`xharness`. The CLI already starts the Harness-owned OpenTUI terminal when invoked without a
|
|
18
|
+
subcommand, so the frontend and session runtime need no changes. The npm registry's latest release
|
|
19
|
+
is `3.0.0`; replacing the published executable is a breaking change.
|
|
20
|
+
|
|
21
|
+
## Decision
|
|
22
|
+
|
|
23
|
+
Publish `@xingular/harness` `4.0.0` with one binary, `xharness`, mapped to `dist/cli.js`. Do not
|
|
24
|
+
ship `xingular-harness` as a compatibility alias. Keep the package name, `terminal` alias, host
|
|
25
|
+
subcommands, data/state directory names, and `XINGULAR_HARNESS_*` environment variables unchanged.
|
|
26
|
+
|
|
27
|
+
## Consequences
|
|
28
|
+
|
|
29
|
+
- Users and scripts that invoke `xingular-harness` must migrate to `xharness`.
|
|
30
|
+
- Running `xharness` with no command opens the existing OpenTUI terminal.
|
|
31
|
+
- No account, data, or state migration is required.
|
|
32
|
+
- The release requires Node 22.19+ and Bun 1.3.14+ for the standalone terminal build/runtime.
|
|
33
|
+
|
|
34
|
+
## Implementation and verification
|
|
35
|
+
|
|
36
|
+
- The `bin` mapping and CLI help are tested by [`src/cli.test.ts`](../../src/cli.test.ts).
|
|
37
|
+
- CI, the packed-tarball smoke test and the npm publication blocker are recorded in
|
|
38
|
+
[PROP-0005](../architecture/proposals/PROP-0005-xharness-cli-name.md). The executable-name decision
|
|
39
|
+
is superseded by [ADR-0024](ADR-0024-xagent-command.md).
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0010
|
|
3
|
+
title: Lessons from ordinary runs live in the Wiki, not in trees or the refinement library
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-10-22
|
|
6
|
+
updated: 2026-10-22
|
|
7
|
+
---
|
|
8
|
+
# ADR-0010 — Lessons from ordinary runs live in the Wiki
|
|
9
|
+
|
|
10
|
+
## Context and decision
|
|
11
|
+
|
|
12
|
+
[PROP-0008](../architecture/proposals/PROP-0008-lessons-from-runs.md) adds an opt-in reflection
|
|
13
|
+
after a finished run. The harness already has three places that hold what agents learn: the
|
|
14
|
+
harness tree (c3 memory, instructions), the refinement experience library (whole trees plus a
|
|
15
|
+
lesson, per scope and area), and the Wiki (reference notes).
|
|
16
|
+
|
|
17
|
+
Lessons from ordinary runs go to the Wiki, under `library/lessons/`, with refinement's lesson
|
|
18
|
+
shape (cue, lesson, evidence, confidence, or nothing).
|
|
19
|
+
|
|
20
|
+
- The tree changes only through refinement and a person's `adopt`. A lesson from one run is not
|
|
21
|
+
enough evidence to change instructions every later run receives.
|
|
22
|
+
- The refinement library stores whole trees keyed by task area; an ordinary run has neither.
|
|
23
|
+
- The Wiki is reference material by contract (INV-MEM-1): an agent reads a lesson when it searches,
|
|
24
|
+
and a person can read, edit or delete it like any note. A lesson that keeps proving itself is
|
|
25
|
+
evidence for a later refinement, which is where behaviour changes.
|
|
26
|
+
|
|
27
|
+
## Consequences
|
|
28
|
+
|
|
29
|
+
- Lessons are visible and editable through every Wiki surface, versioned, and announced to hooks.
|
|
30
|
+
- They do not reach the stable prefix; only a count reaches the dynamic `wiki` pointer.
|
|
31
|
+
- The lesson shape is shared with refinement (`parseExperience`), so the two stay comparable.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0011
|
|
3
|
+
title: The harness is a fixed foundation running a mutating variant
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-10-22
|
|
6
|
+
updated: 2026-10-22
|
|
7
|
+
---
|
|
8
|
+
# ADR-0011 — The harness is a fixed foundation running a mutating variant
|
|
9
|
+
|
|
10
|
+
## Context and decision
|
|
11
|
+
|
|
12
|
+
[PROP-0009](../architecture/proposals/PROP-0009-foundation-and-variants.md). The harness lets a
|
|
13
|
+
running host improve the harness itself, so two kinds of part must be told apart at all times: the
|
|
14
|
+
ones that never move during that improvement, and the ones that are meant to.
|
|
15
|
+
|
|
16
|
+
We call the first the **foundation** and the second a **variant**. A variant is one whole c1–c8
|
|
17
|
+
tree for one scope. The foundation decides what a variant may contain and how it runs; a variant
|
|
18
|
+
decides what the agent is told and may load. Refinement edits a copy of a variant, and only a
|
|
19
|
+
person's `adopt` makes it the head.
|
|
20
|
+
|
|
21
|
+
## Consequences
|
|
22
|
+
|
|
23
|
+
- Specs, code, storage and the protocol use the two words (`variants/`, `variants.*`,
|
|
24
|
+
`VariantChoice`). `INV-FND-1` and `INV-FND-2` state the one-way rule.
|
|
25
|
+
- The same split names the prompt-level design in DESIGN-0001 (foundation text and the adapting
|
|
26
|
+
surface).
|
|
27
|
+
- Breaking release (5.0.0). Stored data is migrated on `open`.
|
|
28
|
+
- The improver prompts keep the Harness² paper's wording, so the method is unchanged.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0012
|
|
3
|
+
title: Agents name their own native Pi sessions
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-10-22
|
|
6
|
+
updated: 2026-10-22
|
|
7
|
+
related: [PROP-0010]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ADR-0012: Agents name their own native Pi sessions
|
|
11
|
+
|
|
12
|
+
## Context
|
|
13
|
+
The terminal already supports manual native Pi session names. The user requested agent
|
|
14
|
+
creation and revision, with a six-word limit and a name after the working metrics, in all
|
|
15
|
+
Harness execution paths. The user approved this implementation plan.
|
|
16
|
+
|
|
17
|
+
## Decision
|
|
18
|
+
A shared foundation tool binds to the current native session and uses Pi session-info
|
|
19
|
+
history as the only writer and source of truth. The normal gate and capability selection
|
|
20
|
+
apply. Plan mode permits naming as session metadata maintenance. Fixed tool guidance asks
|
|
21
|
+
the agent to name work early and rename on objective changes; no changing name enters the
|
|
22
|
+
system prompt. The terminal refreshes through the existing native metadata event.
|
|
23
|
+
|
|
24
|
+
## Alternatives
|
|
25
|
+
A separate model call adds latency and cost. Separate title storage duplicates native
|
|
26
|
+
metadata and requires synchronization. Manual-only names do not meet the requested behavior.
|
|
27
|
+
|
|
28
|
+
## Consequences and evidence
|
|
29
|
+
No migration or new host RPC is needed. The agent chooses when to invoke the tool, so
|
|
30
|
+
actual naming frequency depends on model compliance. Manual names can be revised by the
|
|
31
|
+
agent. Tests in `src/tools/sessionName.test.ts`, `src/sessions/sessions.test.ts`, and the
|
|
32
|
+
terminal lifecycle, runtime, working-line and application tests cover the contract.
|
|
33
|
+
Implementation and verification status are tracked in
|
|
34
|
+
[PROP-0010](../architecture/proposals/PROP-0010-session-names.md).
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0013
|
|
3
|
+
title: Evidence-based diagnostics with opt-in live probes
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-10-22
|
|
6
|
+
updated: 2026-10-22
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ADR-0013 — Evidence-based diagnostics with opt-in live probes
|
|
10
|
+
|
|
11
|
+
## Context and decision
|
|
12
|
+
|
|
13
|
+
[PROP-0011](../architecture/proposals/PROP-0011-doctor.md) records the user-approved plan.
|
|
14
|
+
A configured tool or locally available model is not evidence of a successful request.
|
|
15
|
+
`/doctor` therefore checks readiness offline and labels live verification separately.
|
|
16
|
+
|
|
17
|
+
The foundation owns bounded, cancellable diagnostic jobs and validated findings. Tool-provider
|
|
18
|
+
callbacks supply backend-specific evidence using the existing extension point. Live tool calls
|
|
19
|
+
use the production gate and current capabilities. One synthetic model request uses the selected
|
|
20
|
+
account's Pi runtime and records usage in a separate diagnostic run.
|
|
21
|
+
|
|
22
|
+
## Consequences
|
|
23
|
+
|
|
24
|
+
Existing providers remain compatible. Unsupported checks are unverified, disabled capabilities
|
|
25
|
+
are disabled, and permission or isolation constraints are blocked. No diagnostic changes an
|
|
26
|
+
account, configuration or permission. Browser tests have a disposable profile and offline page;
|
|
27
|
+
computer input tests require a host-supplied disposable surface. No live tests run automatically.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0014
|
|
3
|
+
title: A compiled public SDK and explicit 1.0.0 baseline
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-10-22
|
|
6
|
+
updated: 2026-10-22
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ADR-0014 — A compiled public SDK and explicit 1.0.0 baseline
|
|
10
|
+
|
|
11
|
+
The user approved [PROP-0012](../architecture/proposals/PROP-0012-release-baseline.md) through the
|
|
12
|
+
release implementation plan. Keep @xingular/harness and the then-current `xharness` executable, use
|
|
13
|
+
Apache-2.0 for original code, publish compiled ESM/declarations, and preserve upstream notices and
|
|
14
|
+
historical releases. The executable-name portion was superseded by [ADR-0024](ADR-0024-xagent-command.md); the other release-baseline decisions remain.
|
|
15
|
+
|
|
16
|
+
Generic isolated browser execution belongs in the foundation; App browser presentation, tab
|
|
17
|
+
sharing and OS/computer integration remain with the host. No application concept or object is
|
|
18
|
+
introduced into the Harness. Provider diagnostics continue through the existing tool surface.
|
|
19
|
+
|
|
20
|
+
The 1.0.0 baseline deliberately resets development numbering. The release pipeline publishes
|
|
21
|
+
one tested tarball with provenance and explicitly assigns latest. Registry and unrestricted CI
|
|
22
|
+
verification are mandatory; accepted design and local builds do not prove publication.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# ADR-0015 — One terminal browser for resources and discovery
|
|
2
|
+
|
|
3
|
+
Status: Accepted (user requested implementation of the agreed plan, 2026-10-22).
|
|
4
|
+
Related: [PROP-0013](../architecture/proposals/PROP-0013-resource-browser.md),
|
|
5
|
+
[source study](../study/tui-resource-browser.md).
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
Skills, plugins, Hub items and variant additions have different entry points and misleading
|
|
10
|
+
availability labels. Users need to identify what exists, what this session can use, and what changes later.
|
|
11
|
+
|
|
12
|
+
## Decision
|
|
13
|
+
|
|
14
|
+
Use a shared responsive browser with section shortcuts, Installed/Discover views, provenance and
|
|
15
|
+
inspection before management. Join saved configuration with actual runtime resources; never infer
|
|
16
|
+
loaded state from attachment settings or the latest variant head. Keep the loader, gate and service
|
|
17
|
+
ownership intact. Show foundation and variant as different ownership layers.
|
|
18
|
+
|
|
19
|
+
## Alternatives
|
|
20
|
+
|
|
21
|
+
Separate pages retain navigation fragmentation. A single combined remote/local list confuses
|
|
22
|
+
installation with availability. A full editor expands the task beyond browse/manage.
|
|
23
|
+
|
|
24
|
+
## Consequences
|
|
25
|
+
|
|
26
|
+
The browser adds a protected service adapter and focused navigation state. Resource reads are bounded,
|
|
27
|
+
credentials stay masked, and installing does not activate resources. Existing commands remain shortcuts.
|
|
28
|
+
Implementation and verification evidence belong in the terminal guide, not in this decision record.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# ADR-0016 — Full-screen browser with persistent resource tabs
|
|
2
|
+
|
|
3
|
+
Status: Accepted (user requested implementation of the agreed plan, 2026-10-23).
|
|
4
|
+
Related: [PROP-0014](../architecture/proposals/PROP-0014-fullscreen-browser-tabs.md),
|
|
5
|
+
[ADR-0015](ADR-0015-resource-browser.md).
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
The unified browser's centered layout and nested section/detail navigation leave little space
|
|
10
|
+
for inventory and inspection. The user wants one full-page workspace with resource-section tabs.
|
|
11
|
+
|
|
12
|
+
## Decision
|
|
13
|
+
|
|
14
|
+
Resource-browser commands use a full-screen surface with persistent section tabs. Wide terminals
|
|
15
|
+
show inventory beside an inspector containing metadata, actions and content. Compact terminals
|
|
16
|
+
show inline detail views under the same tab strip. Tab moves focus, arrows change a focused tab,
|
|
17
|
+
and mouse tab selection targets the section directly.
|
|
18
|
+
|
|
19
|
+
TerminalPage declares its presentation and optionally supports direct tab selection. Centered
|
|
20
|
+
presentation remains the default for other pages. Resource services keep their existing ownership.
|
|
21
|
+
|
|
22
|
+
## Alternatives
|
|
23
|
+
|
|
24
|
+
Keeping the centered panel restricts working space. Replacing the list with details at all widths
|
|
25
|
+
loses inventory context. Variant c1–c8 tabs do not match the selected resource-navigation intent.
|
|
26
|
+
|
|
27
|
+
## Consequences
|
|
28
|
+
|
|
29
|
+
The browser owns responsive inventory/inspector focus and preserves section search and selection.
|
|
30
|
+
Small terminals use compact tab navigation. There are no storage or protocol changes.
|
|
31
|
+
Verification belongs in the terminal guide and its automated page and PTY checks.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# ADR-0017 — One capability surface for the terminal and every host
|
|
2
|
+
|
|
3
|
+
Status: Accepted (owner approved the parity plan, 2026-10-23).
|
|
4
|
+
Related: [PROP-0015](../architecture/proposals/PROP-0015-one-capability-surface.md),
|
|
5
|
+
[PROP-0016](../architecture/proposals/PROP-0016-managed-worktrees.md),
|
|
6
|
+
[PROP-0017](../architecture/proposals/PROP-0017-page-annotations.md),
|
|
7
|
+
[14 Surfaces and parity](../architecture/14-surfaces-and-parity.md).
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
Capabilities grew in the App alone, so the Harness terminal could not do what the App did, and
|
|
12
|
+
ownership between the repositories was unclear. The owner wants the App to be a richer
|
|
13
|
+
presentation of the Harness, with the same capabilities as the terminal, and room for future
|
|
14
|
+
host-only surfaces such as interactive agent output.
|
|
15
|
+
|
|
16
|
+
## Decision
|
|
17
|
+
|
|
18
|
+
Every user capability is a Harness capability with a terminal surface (INV-PAR-1, INV-PAR-2).
|
|
19
|
+
Capabilities that need an operating-system object only a host has define a generic contract and a
|
|
20
|
+
terminal fallback (INV-PAR-3). Host-only surfaces own no capability and are registered by the host
|
|
21
|
+
with an owner decision (INV-PAR-4). Managed worktrees and page annotations move into the Harness
|
|
22
|
+
under PROP-0016 and PROP-0017. Orchestration across agents (organizations, routed chats, group
|
|
23
|
+
chats, delegated work queues) is not a Harness capability; the App removes it and keeps it only in
|
|
24
|
+
an archived version.
|
|
25
|
+
|
|
26
|
+
## Alternatives
|
|
27
|
+
|
|
28
|
+
Keeping the App as the full product leaves two products. Identical front ends cannot accommodate
|
|
29
|
+
presentation a terminal cannot show. Doing nothing lets the gap grow.
|
|
30
|
+
|
|
31
|
+
## Consequences
|
|
32
|
+
|
|
33
|
+
New user features start in the Harness with a terminal surface. The register `docs/parity.md`
|
|
34
|
+
tracks gaps until both surfaces pass. Hosts keep native bridges, windows and presentation.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# ADR-0018 — Built-in feature modules and namespaced commands
|
|
2
|
+
|
|
3
|
+
Status: Accepted (owner requested implementation of the plan, 2026-10-24).
|
|
4
|
+
Related: [PROP-0020](../architecture/proposals/PROP-0020-builtin-feature-plugins.md),
|
|
5
|
+
[06 Plugins and capabilities](../architecture/06-plugins-and-capabilities.md),
|
|
6
|
+
[11 Terminal](../architecture/11-terminal.md).
|
|
7
|
+
|
|
8
|
+
## Context
|
|
9
|
+
|
|
10
|
+
First-party plugin descriptors existed, but runtime assembly, server handlers and TUI command
|
|
11
|
+
dispatch were centralized in separate files. Plugin commands shared the same unprefixed namespace
|
|
12
|
+
as core commands. Duplicate Pi extension commands were silently assigned suffixes by the SDK.
|
|
13
|
+
|
|
14
|
+
## Decision
|
|
15
|
+
|
|
16
|
+
Use a typed internal registry for built-in plugin modules. Modules own their existing plugin
|
|
17
|
+
descriptor and may supply world parts, public method handlers, terminal command metadata and
|
|
18
|
+
lifecycle. Foundation keeps plugin loading and trust, capability attachment and gating, the TUI
|
|
19
|
+
framework, and the generic isolated browser engine. Plugin commands use `/plugin:<command>`;
|
|
20
|
+
duplicate names are rejected with owner diagnostics. The ownership taxonomy is documentation only.
|
|
21
|
+
|
|
22
|
+
Retire old unprefixed forms for doctor, worktree, trajectory, subagents, notes and annotate at the
|
|
23
|
+
cutover. Public server methods and stored data keep their current names and shapes.
|
|
24
|
+
|
|
25
|
+
## Alternatives
|
|
26
|
+
|
|
27
|
+
Keeping direct central dispatch preserves the current drift between plugin descriptions and
|
|
28
|
+
runtime ownership. Exposing categories in public metadata adds a schema without a runtime need.
|
|
29
|
+
Letting the SDK suffix duplicate commands makes their identity depend on extension load order.
|
|
30
|
+
|
|
31
|
+
## Consequences
|
|
32
|
+
|
|
33
|
+
New Harness-managed features register through the built-in plugin registry. The terminal owns the
|
|
34
|
+
page adapter and UI; feature plugins contribute namespaced command metadata. Embedding hosts see
|
|
35
|
+
the existing method table and capability contracts.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# ADR-0019 — Managed Git worktrees are a Harness capability
|
|
2
|
+
|
|
3
|
+
Status: Accepted (owner approved the parity plan, 2026-10-23).
|
|
4
|
+
Related: [PROP-0016](../architecture/proposals/PROP-0016-managed-worktrees.md),
|
|
5
|
+
[02 Sessions and runs](../architecture/02-sessions-and-runs.md),
|
|
6
|
+
[14 Surfaces and parity](../architecture/14-surfaces-and-parity.md).
|
|
7
|
+
|
|
8
|
+
## Context
|
|
9
|
+
|
|
10
|
+
Worktrees isolate source changes, but an App-only implementation leaves terminal users without
|
|
11
|
+
that capability and lets each host invent its own lifecycle and safety rules.
|
|
12
|
+
|
|
13
|
+
## Decision
|
|
14
|
+
|
|
15
|
+
The Harness owns the worktree registry, lifecycle, session leases, and server methods. Managed
|
|
16
|
+
worktrees are disposable detached checkouts in device-local state; permanent worktrees are retained.
|
|
17
|
+
Creating a worktree disables repository filters, carries source changes only under the defined
|
|
18
|
+
copy/apply rules, and runs setup scripts only after exact-text trust. Leases prevent concurrent
|
|
19
|
+
removal; removal snapshots recoverable work before deleting a checkout. Hosts call `worktrees.*`
|
|
20
|
+
rather than managing these records independently, and the terminal provides the reference surface.
|
|
21
|
+
|
|
22
|
+
## Alternatives
|
|
23
|
+
|
|
24
|
+
Keeping the feature in the App breaks terminal/host parity. Putting large worktree checkouts inside
|
|
25
|
+
source repositories pollutes them and makes the data visible to tools and editors. Platform-specific
|
|
26
|
+
copy-on-write clones were deferred in favor of Git's portable linked-worktree behavior.
|
|
27
|
+
|
|
28
|
+
## Consequences
|
|
29
|
+
|
|
30
|
+
`worktreeId` identifies a Harness-managed worktree in a run. Worktree state is device-local under
|
|
31
|
+
the Harness state directory. Hosts can present richer controls but do not own lifecycle or safety.
|