@xingular/harness 1.0.0 → 1.2.0
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 +46 -5
- package/README.md +75 -21
- package/dist/cli.js +17421 -8711
- package/dist/sdk/accounts/accounts.d.ts +27 -3
- package/dist/sdk/accounts/accounts.js +78 -24
- package/dist/sdk/accounts/secrets.d.ts +12 -0
- package/dist/sdk/accounts/secrets.js +114 -7
- package/dist/sdk/accounts/store.d.ts +26 -1
- package/dist/sdk/accounts/store.js +1 -1
- package/dist/sdk/agents/builtin.d.ts +2 -0
- package/dist/sdk/agents/builtin.js +48 -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 +5 -0
- package/dist/sdk/agents/planResearch.js +19 -0
- package/dist/sdk/agents/profiles.d.ts +81 -0
- package/dist/sdk/agents/profiles.js +226 -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 +871 -0
- package/dist/sdk/annotations/part.d.ts +10 -0
- package/dist/sdk/annotations/part.js +155 -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 +167 -0
- package/dist/sdk/annotations/store.js +394 -0
- package/dist/sdk/browser/backend.d.ts +16 -0
- package/dist/sdk/browser/backend.js +17 -0
- package/dist/sdk/browser/contracts.d.ts +19 -0
- package/dist/sdk/browser/contracts.js +116 -0
- package/dist/sdk/browser/index.d.ts +14 -3
- package/dist/sdk/browser/index.js +11 -4
- package/dist/sdk/browser/serverMethods.d.ts +3 -0
- package/dist/sdk/browser/serverMethods.js +7 -0
- package/dist/sdk/browser/session.d.ts +1 -0
- package/dist/sdk/browser/session.js +45 -9
- package/dist/sdk/browser/tools.d.ts +1 -4
- package/dist/sdk/browser/tools.js +14 -91
- package/dist/sdk/cli.js +24 -15
- package/dist/sdk/commands/list.d.ts +3 -0
- package/dist/sdk/commands/list.js +75 -0
- package/dist/sdk/commands/registry.d.ts +250 -0
- package/dist/sdk/commands/registry.js +47 -0
- package/dist/sdk/commands/routes.d.ts +16 -0
- package/dist/sdk/commands/routes.js +33 -0
- package/dist/sdk/core/bus.js +1 -1
- package/dist/sdk/core/commandBudget.d.ts +23 -0
- package/dist/sdk/core/commandBudget.js +57 -0
- package/dist/sdk/core/env.d.ts +1 -1
- package/dist/sdk/core/env.js +1 -1
- package/dist/sdk/core/index.js +17 -1
- package/dist/sdk/core/interactiveProfile.d.ts +46 -0
- package/dist/sdk/core/interactiveProfile.js +143 -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 +4 -0
- package/dist/sdk/core/workspaceBashTool.js +36 -0
- package/dist/sdk/core/workspaceSandbox.d.ts +31 -0
- package/dist/sdk/core/workspaceSandbox.js +320 -0
- package/dist/sdk/core/workspaceWriteOperations.d.ts +22 -0
- package/dist/sdk/core/workspaceWriteOperations.js +206 -0
- package/dist/sdk/doctor/serverMethods.d.ts +3 -0
- package/dist/sdk/doctor/serverMethods.js +8 -0
- package/dist/sdk/doctor/types.d.ts +2 -2
- package/dist/sdk/harness.d.ts +22 -0
- package/dist/sdk/harness.js +84 -5
- package/dist/sdk/history/recall.js +8 -8
- package/dist/sdk/history/serverMethods.d.ts +3 -0
- package/dist/sdk/history/serverMethods.js +8 -0
- package/dist/sdk/hub/cli.d.ts +1 -1
- package/dist/sdk/hub/cli.js +1 -1
- package/dist/sdk/hub/schema.d.ts +1 -1
- package/dist/sdk/hub/serverMethods.d.ts +3 -0
- package/dist/sdk/hub/serverMethods.js +11 -0
- package/dist/sdk/index.d.ts +16 -1
- package/dist/sdk/index.js +10 -0
- package/dist/sdk/mcp/connections.js +14 -7
- package/dist/sdk/mcp/serverMethods.d.ts +3 -0
- package/dist/sdk/mcp/serverMethods.js +22 -0
- package/dist/sdk/pi/runtime.d.ts +2 -1
- package/dist/sdk/pi/runtime.js +2 -2
- package/dist/sdk/plugins/builtin.d.ts +1 -0
- package/dist/sdk/plugins/builtin.js +145 -33
- package/dist/sdk/plugins/builtinRegistry.d.ts +60 -0
- package/dist/sdk/plugins/builtinRegistry.js +71 -0
- package/dist/sdk/plugins/catalogue.js +2 -1
- package/dist/sdk/plugins/cli.d.ts +1 -1
- package/dist/sdk/plugins/cli.js +4 -3
- package/dist/sdk/plugins/commandPrefix.d.ts +8 -0
- package/dist/sdk/plugins/commandPrefix.js +21 -0
- package/dist/sdk/plugins/firstParty.d.ts +1 -1
- package/dist/sdk/plugins/firstParty.js +8 -2
- package/dist/sdk/plugins/inventory.js +4 -3
- package/dist/sdk/plugins/manifest.d.ts +2 -0
- package/dist/sdk/plugins/manifest.js +2 -1
- package/dist/sdk/plugins/surfaces.d.ts +5 -0
- package/dist/sdk/plugins/surfaces.js +11 -0
- package/dist/sdk/plugins/types.d.ts +15 -0
- package/dist/sdk/prompt/compile.d.ts +19 -2
- package/dist/sdk/prompt/compile.js +79 -26
- package/dist/sdk/prompt/standard.d.ts +17 -0
- package/dist/sdk/prompt/standard.js +21 -0
- package/dist/sdk/refine/cli.d.ts +1 -1
- package/dist/sdk/refine/cli.js +2 -2
- package/dist/sdk/refine/serverMethods.d.ts +3 -0
- package/dist/sdk/refine/serverMethods.js +20 -0
- package/dist/sdk/server/methods.js +27 -86
- package/dist/sdk/server/params.d.ts +4 -0
- package/dist/sdk/server/params.js +11 -0
- package/dist/sdk/server/remote.js +36 -11
- package/dist/sdk/sessions/compactionCheckpoint.d.ts +11 -0
- package/dist/sdk/sessions/compactionCheckpoint.js +79 -0
- package/dist/sdk/sessions/continuation.d.ts +3 -0
- package/dist/sdk/sessions/continuation.js +5 -1
- package/dist/sdk/sessions/contracts.d.ts +185 -0
- package/dist/sdk/sessions/contracts.js +101 -4
- package/dist/sdk/sessions/control.d.ts +72 -0
- package/dist/sdk/sessions/control.js +158 -0
- package/dist/sdk/sessions/initialBash.d.ts +7 -0
- package/dist/sdk/sessions/initialBash.js +7 -0
- package/dist/sdk/sessions/planMode.d.ts +18 -4
- package/dist/sdk/sessions/planMode.js +82 -16
- package/dist/sdk/sessions/reasoningSummaries.d.ts +2 -2
- package/dist/sdk/sessions/reasoningSummaries.js +3 -3
- package/dist/sdk/sessions/registry.d.ts +2 -1
- package/dist/sdk/sessions/registry.js +6 -3
- package/dist/sdk/sessions/runIndex.js +7 -7
- package/dist/sdk/sessions/runStore.d.ts +14 -0
- package/dist/sdk/sessions/runStore.js +38 -1
- package/dist/sdk/sessions/runner.d.ts +40 -2
- package/dist/sdk/sessions/runner.js +163 -15
- package/dist/sdk/sessions/sessions.d.ts +40 -8
- package/dist/sdk/sessions/sessions.js +279 -27
- 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 +22 -2
- package/dist/sdk/sessions/subagentService.js +93 -16
- package/dist/sdk/sessions/subagents.d.ts +9 -1
- package/dist/sdk/sessions/subagents.js +19 -0
- package/dist/sdk/sessions/workSlice.d.ts +103 -0
- package/dist/sdk/sessions/workSlice.js +297 -0
- package/dist/sdk/sessions/workspaceBoundary.d.ts +15 -0
- package/dist/sdk/sessions/workspaceBoundary.js +46 -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/commandHelp.d.ts +17 -0
- package/dist/sdk/terminal/commandHelp.js +20 -0
- package/dist/sdk/terminal/controller.d.ts +15 -1
- package/dist/sdk/terminal/controller.js +67 -8
- package/dist/sdk/terminal/opentui/subagentsWidget.d.ts +28 -0
- package/dist/sdk/terminal/opentui/subagentsWidget.js +52 -0
- package/dist/sdk/terminal/opentui/theme.d.ts +43 -0
- package/dist/sdk/terminal/opentui/theme.js +87 -0
- package/dist/sdk/terminal/piExtension.d.ts +6 -1
- package/dist/sdk/terminal/piExtension.js +169 -84
- package/dist/sdk/terminal/socket.d.ts +6 -3
- package/dist/sdk/terminal/socket.js +40 -9
- package/dist/sdk/terminal/standalone.d.ts +9 -0
- package/dist/sdk/terminal/standalone.js +118 -19
- package/dist/sdk/terminal/subagentMonitor.d.ts +47 -0
- package/dist/sdk/terminal/subagentMonitor.js +152 -0
- package/dist/sdk/terminal/terminals.d.ts +60 -7
- package/dist/sdk/terminal/terminals.js +598 -47
- package/dist/sdk/terminal/trajectory.js +2 -2
- package/dist/sdk/terminal/tui/annotateCommand.d.ts +3 -0
- package/dist/sdk/terminal/tui/annotateCommand.js +22 -0
- package/dist/sdk/terminal/tui/commandPages.d.ts +7 -1
- package/dist/sdk/terminal/tui/commandPages.js +57 -6
- package/dist/sdk/terminal/tui/commands.d.ts +10 -4
- package/dist/sdk/terminal/tui/commands.js +269 -65
- package/dist/sdk/terminal/tui/dialogGeometry.d.ts +2 -2
- package/dist/sdk/terminal/tui/dialogGeometry.js +4 -2
- package/dist/sdk/terminal/tui/dialogs.d.ts +6 -1
- package/dist/sdk/terminal/tui/dialogs.js +9 -2
- package/dist/sdk/terminal/tui/list.d.ts +14 -1
- package/dist/sdk/terminal/tui/list.js +96 -14
- package/dist/sdk/terminal/tui/modelPicker.js +1 -6
- package/dist/sdk/terminal/tui/page.d.ts +3 -0
- package/dist/sdk/terminal/tui/pageOverlay.js +27 -7
- package/dist/sdk/terminal/tui/pages/accountsPage.d.ts +26 -4
- package/dist/sdk/terminal/tui/pages/accountsPage.js +264 -36
- 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/doctorPage.d.ts +2 -0
- package/dist/sdk/terminal/tui/pages/doctorPage.js +103 -15
- 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/pluginsPage.d.ts +0 -5
- package/dist/sdk/terminal/tui/pages/pluginsPage.js +9 -3
- package/dist/sdk/terminal/tui/pages/settingsPage.d.ts +8 -0
- package/dist/sdk/terminal/tui/pages/settingsPage.js +16 -1
- package/dist/sdk/terminal/tui/pages/subagentsPage.d.ts +24 -0
- package/dist/sdk/terminal/tui/pages/subagentsPage.js +152 -0
- package/dist/sdk/terminal/tui/pages/trajectoryPage.d.ts +12 -5
- package/dist/sdk/terminal/tui/pages/trajectoryPage.js +156 -83
- package/dist/sdk/terminal/tui/pages/usagePage.d.ts +43 -0
- package/dist/sdk/terminal/tui/pages/usagePage.js +370 -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 +1 -2
- package/dist/sdk/terminal/tui/piAdapter.js +3 -5
- package/dist/sdk/terminal/tui/planMode.d.ts +1 -1
- package/dist/sdk/terminal/tui/planMode.js +1 -1
- package/dist/sdk/terminal/tui/pluginCommands.d.ts +16 -0
- package/dist/sdk/terminal/tui/pluginCommands.js +31 -0
- package/dist/sdk/terminal/tui/questions.d.ts +2 -0
- package/dist/sdk/terminal/tui/runtime.js +27 -5
- package/dist/sdk/terminal/tui/sessionPicker.d.ts +40 -0
- package/dist/sdk/terminal/tui/sessionPicker.js +141 -0
- package/dist/sdk/terminal/tui/settingsModel.d.ts +2 -0
- package/dist/sdk/terminal/tui/settingsModel.js +32 -2
- package/dist/sdk/terminal/tui/sideQuestion.d.ts +26 -26
- package/dist/sdk/terminal/tui/sideQuestion.js +131 -98
- package/dist/sdk/terminal/tui/ui.d.ts +2 -0
- package/dist/sdk/terminal/tui/ui.js +1 -0
- package/dist/sdk/tools/askUser.js +26 -8
- package/dist/sdk/tools/checklist.js +3 -2
- package/dist/sdk/tools/checkpoint.d.ts +27 -0
- package/dist/sdk/tools/checkpoint.js +154 -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 +2 -0
- package/dist/sdk/tools/harnessTools.js +1 -1
- package/dist/sdk/tools/spawnSubagent.js +14 -4
- 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/web/part.d.ts +10 -0
- package/dist/sdk/web/part.js +6 -0
- package/dist/sdk/web/serverMethods.d.ts +3 -0
- package/dist/sdk/web/serverMethods.js +7 -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/cli.d.ts +2 -2
- package/dist/sdk/world/cli.js +6 -6
- package/dist/sdk/world/world.d.ts +3 -1
- package/dist/sdk/world/world.js +8 -9
- package/dist/terminal-opentui.js +16456 -5966
- package/dist/terminal-pi.js +1579 -573
- package/docs/README.md +22 -2
- package/docs/architecture/00-overview.md +28 -16
- package/docs/architecture/02-sessions-and-runs.md +184 -25
- package/docs/architecture/03-variants.md +10 -2
- package/docs/architecture/04-prompt.md +65 -7
- package/docs/architecture/06-plugins-and-capabilities.md +57 -4
- package/docs/architecture/07-tools-and-gate.md +112 -17
- package/docs/architecture/08-memory-and-history.md +4 -2
- package/docs/architecture/09-accounts-and-connectors.md +39 -1
- package/docs/architecture/10-server-protocol.md +168 -4
- package/docs/architecture/11-terminal.md +251 -8
- package/docs/architecture/12-storage.md +45 -3
- package/docs/architecture/13-world-tools.md +49 -6
- package/docs/architecture/14-surfaces-and-parity.md +136 -0
- package/docs/architecture/README.md +17 -4
- package/docs/architecture/proposals/PROP-0006-run-checklist.md +4 -2
- 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 +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/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 +247 -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/README.md +39 -0
- package/docs/decisions/ADR-0001-owned-terminal.md +1 -1
- package/docs/decisions/ADR-0009-xharness-command.md +6 -5
- package/docs/decisions/ADR-0014-public-release-baseline.md +3 -2
- 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/decisions/ADR-0031-plugin-command-owner-namespaces.md +37 -0
- package/docs/decisions/ADR-0032-compaction-run-checkpoints.md +33 -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/doctor.md +10 -4
- 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 +26 -0
- package/docs/features/interfaces/README.md +1 -1
- 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 +134 -0
- package/docs/releases/1.0.0.md +2 -2
- package/docs/releases/1.1.1.md +28 -0
- package/docs/releases/1.2.0.md +49 -0
- package/docs/releases/4.0.0.md +47 -0
- package/docs/releases/README.md +37 -27
- package/docs/study/00-index.md +8 -0
- package/docs/study/STUDY-0003-long-horizon-runs.md +210 -0
- package/docs/study/autonomous-engineering-sources.md +277 -0
- package/docs/study/autonomy-sources.md +147 -0
- package/docs/study/proactive-autonomy.md +408 -0
- package/docs/study/tui-resource-browser.md +78 -0
- package/docs/terminal-tui.md +386 -113
- package/package.json +6 -5
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0033
|
|
3
|
+
title: Keep delegation selective and research-only in plan mode
|
|
4
|
+
status: accepted
|
|
5
|
+
created: 2026-10-25
|
|
6
|
+
updated: 2026-10-25
|
|
7
|
+
related: [PROP-0032, INV-RUN-8, INV-GATE-3, INV-CAP-1]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ADR-0033 — Keep delegation selective and research-only in plan mode
|
|
11
|
+
|
|
12
|
+
## Context
|
|
13
|
+
|
|
14
|
+
Subagents can reduce the cost of substantial independent work, but a child starts without the
|
|
15
|
+
parent's conversation and parallel edits create integration risk. Plan mode must remain read-only;
|
|
16
|
+
allowing every profile would let profile overrides expand its effective tools or plugins. Ordinary
|
|
17
|
+
subagent guidance also belongs in request context, not the stable system prompt.
|
|
18
|
+
|
|
19
|
+
## Decision
|
|
20
|
+
|
|
21
|
+
- In normal mode, recommend delegation only for substantial, bounded, independent work. Prefer a
|
|
22
|
+
fitting specialist, give each child a self-contained brief, parallelize only independent tasks,
|
|
23
|
+
and keep integration and verification with the parent. Simple lookups, tiny edits and tightly
|
|
24
|
+
coupled work stay with the parent.
|
|
25
|
+
- In plan mode, allow only a named profile whose resolved tool and plugin allowlists are explicit
|
|
26
|
+
and confined to read-only research. The tool gate checks each spawn's arguments before approvals;
|
|
27
|
+
the subagent service checks again before launch.
|
|
28
|
+
- A research child inherits plan mode and can use only the intersection of its profile, the parent's
|
|
29
|
+
frozen capabilities and the plan research set. It has no connectors, user questions, writes,
|
|
30
|
+
commands or nested subagents. Its evidence returns to the parent, which verifies and synthesizes it.
|
|
31
|
+
- Put normal delegation guidance in the generated Subagents prompt section and the spawn tool's
|
|
32
|
+
description. Keep plan instructions request-scoped. Do not expand the stable system prompt or add
|
|
33
|
+
a second capability, approval, storage or plan-file mechanism.
|
|
34
|
+
|
|
35
|
+
## Consequences
|
|
36
|
+
|
|
37
|
+
Normal runs receive concise advice at the point where profile choices are listed. Plan runs expose
|
|
38
|
+
only eligible profiles and enforce the same restriction at both the gate and launch service. The
|
|
39
|
+
terminal and hosts share the Harness behavior. Plan outcomes remain in the existing run history and
|
|
40
|
+
PlanCard handoff; no protocol or stored-data migration is introduced.
|
|
41
|
+
|
|
42
|
+
## Verification
|
|
43
|
+
|
|
44
|
+
Harness tests cover normal prompt guidance, plan-mode profile eligibility and overrides, pre-approval
|
|
45
|
+
refusals, child tool/plugin narrowing, plan inheritance and non-nesting. The versioned Evaluation
|
|
46
|
+
suite adds one case where research delegation helps and one small case where it should be skipped.
|
|
47
|
+
Live model comparisons require explicit authorization and credentials.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# ADR-0034 — First-class Harness terminal commands
|
|
2
|
+
|
|
3
|
+
Status: Accepted (PROP-0036, 2026-10-25).
|
|
4
|
+
Supersedes: The plugin-command ownership rule of ADR-0031 only for the Harness terminal commands listed below.
|
|
5
|
+
Related: [PROP-0036](../architecture/proposals/PROP-0036-first-class-harness-commands.md),
|
|
6
|
+
[06 Plugins and capabilities](../architecture/06-plugins-and-capabilities.md),
|
|
7
|
+
[11 Terminal](../architecture/11-terminal.md),
|
|
8
|
+
[14 Surfaces and parity](../architecture/14-surfaces-and-parity.md),
|
|
9
|
+
[ADR-0031](ADR-0031-plugin-command-owner-namespaces.md).
|
|
10
|
+
|
|
11
|
+
## Context
|
|
12
|
+
|
|
13
|
+
The required `subagents`, `history`, `doctor` and `worktrees` feature modules currently contribute terminal commands through `BuiltinPluginRegistry`. These features are not optional plugin toggles, and their terminal pages are first-class Harness surfaces. `/history` already means session-branch navigation, while `/mcp` already opens the Connections browser as a core command.
|
|
14
|
+
|
|
15
|
+
## Decision
|
|
16
|
+
|
|
17
|
+
The terminal's core command registry owns these canonical routes: `/doctor`, `/worktree`, `/trajectory [run-id]`, `/subagents` and `/agents`. `/history` and `/tree` continue to navigate session branches. `/mcp` and `/connections` continue to open Connections.
|
|
18
|
+
|
|
19
|
+
The underlying required feature descriptors, tools, server methods and services remain registered by `BuiltinPluginRegistry`; they no longer own the terminal command metadata for these routes. Other plugin-owned built-in and Pi extension commands remain `/<owner-prefix>:<command>`, including the annotations namespace.
|
|
20
|
+
|
|
21
|
+
For one release, the prior owner-qualified and `/plugin:<command>` routes for the promoted commands remain accepted as hidden compatibility aliases. They are omitted from help and completion. Core command names remain reserved under the normal collision policy.
|
|
22
|
+
|
|
23
|
+
## Consequences
|
|
24
|
+
|
|
25
|
+
The core terminal command table owns help, completion, highlighting and dispatch for the promoted routes. Plugin namespace collision checks and extension command ownership are unchanged. No server method, capability contract or stored data changes.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0035
|
|
3
|
+
title: One launch and command contract for every front end
|
|
4
|
+
status: Accepted
|
|
5
|
+
created: 2026-11-19
|
|
6
|
+
proposal: PROP-0040
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ADR-0035: One launch and command contract for every front end
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
The owner approved Complete App parity and Solo tabs; accepted
|
|
14
|
+
[PROP-0040](../architecture/proposals/PROP-0040-one-launch-path.md) records the Harness contract.
|
|
15
|
+
The foundation owns one interactive launch policy, not a policy per renderer:
|
|
16
|
+
|
|
17
|
+
- `Launch.standard` supplies shared role, working-folder and connection guidance. Hosts add only
|
|
18
|
+
attributed context, policy and declared add-ons through existing extension points.
|
|
19
|
+
- `commands/registry.ts` defines core commands; `commands.list` adds effective plugin commands,
|
|
20
|
+
prompts and skills. Session history controls use `sessions.*`; live-session operations use
|
|
21
|
+
`SessionRunInput.command` and the normal run lifecycle.
|
|
22
|
+
- Both surfaces load Harness-selected trusted resources and first-party hooks. Pi CLI built-ins
|
|
23
|
+
and the terminal-only question alias are excluded; attended planning uses `ask_user`.
|
|
24
|
+
- Interactive defaults (roots, neutral variant scope and credential backend), shared session
|
|
25
|
+
references, browser schemas and frozen capability discovery belong to Harness. Explicit choices
|
|
26
|
+
and historical pins win. Existing profiles are never silently merged or credentials copied.
|
|
27
|
+
- Optional `surfaces` metadata describes a host preference and a terminal fallback or unavailability;
|
|
28
|
+
it neither creates a plugin category nor grants permission.
|
|
29
|
+
|
|
30
|
+
## Consequences and alternatives
|
|
31
|
+
|
|
32
|
+
Separate front-end defaults and command implementations make identical labels promise different
|
|
33
|
+
behavior. A shared contract permits richer presentation without a second loader, gate or state owner.
|
|
34
|
+
Host-backed tools must refuse unsupported semantics honestly. Matching roots alone does not share
|
|
35
|
+
credentials when the backends differ.
|
|
36
|
+
|
|
37
|
+
This is an accepted design, not release or acceptance evidence. Shared-default adoption, actual
|
|
38
|
+
runtime pins, native browser behavior, actionable command pages and cross-surface session discovery
|
|
39
|
+
remain subject to implementation and both-surface acceptance. The [parity register](../parity.md)
|
|
40
|
+
tracks source status and gaps; compiler-only equality tests do not establish runtime parity.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0036
|
|
3
|
+
title: Enforce workspace writes at the filesystem operation
|
|
4
|
+
status: Accepted
|
|
5
|
+
created: 2026-10-26
|
|
6
|
+
proposal: PROP-0039
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ADR-0036: Enforce workspace writes at the filesystem operation
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
The Harness owns one filesystem-effect boundary shared by SDK sessions and the terminal. Each run
|
|
14
|
+
pins a non-root `workspaceRoot`; model-controlled native writes and default-scope Bash are confined
|
|
15
|
+
to that root by operating-system enforcement, not by prompt guidance or pathname checks alone.
|
|
16
|
+
|
|
17
|
+
- Native `write` and `edit` calls revalidate the authorized canonical target at mutation and use
|
|
18
|
+
atomic replacement under an OS-enforced write scope. Outside file targets need a one-call
|
|
19
|
+
approval; replacing a directory entry rather than truncating an inode prevents an outside
|
|
20
|
+
hard-link alias from being changed.
|
|
21
|
+
- Before default-scope Bash, Harness scans the workspace for regular-file inodes with links outside
|
|
22
|
+
it and blocks the command if the scan is incomplete or an external alias may exist. The OS
|
|
23
|
+
sandbox prevents the command from creating a cross-boundary hard link. On macOS it denies
|
|
24
|
+
hard-link creation entirely, including within the workspace.
|
|
25
|
+
- Bash outside scope is an explicit `workspaceWriteScope: 'outside'` request, or terminal
|
|
26
|
+
`!outside <command>`. The complete quoted command is shown in approval details. Approval happens
|
|
27
|
+
before execution, is human-only and nonrememberable, and runs the exact command once. An
|
|
28
|
+
undersized terminal denies the request. stdout/stderr never proves a sandbox denial and never
|
|
29
|
+
triggers approval or replay.
|
|
30
|
+
- Full Permission remains the existing explicit boundary bypass for eligible interactive runs; it
|
|
31
|
+
remains subject to hard policy, authorization, read-only, plan, unattended and refinement rules.
|
|
32
|
+
- The filesystem root is not a valid workspace. A same-user peer process outside Harness remains
|
|
33
|
+
outside this boundary. Atomic replacement preserves ordinary file mode where possible but does
|
|
34
|
+
not guarantee ACL or extended-attribute preservation.
|
|
35
|
+
|
|
36
|
+
## Rationale
|
|
37
|
+
|
|
38
|
+
Canonical path checks alone do not contain effects through hard links and are vulnerable to
|
|
39
|
+
pathname changes between authorization and mutation. Atomic replacement avoids writing through a
|
|
40
|
+
shared inode, while an OS scope constrains the helper if a path changes. Shell output is controlled
|
|
41
|
+
by the command and cannot authenticate a denial event; explicit pre-execution scope requests avoid
|
|
42
|
+
replaying partial side effects and make broad writes an intentional decision.
|
|
43
|
+
|
|
44
|
+
## Consequences and alternatives
|
|
45
|
+
|
|
46
|
+
Workspaces with external hard-link aliases cannot use default Bash until repaired. Unsupported or
|
|
47
|
+
incomplete sandbox enforcement fails closed. Outside writes remain possible through the explicit
|
|
48
|
+
one-call approval path. A private copy-on-write workspace would also isolate against same-user peer
|
|
49
|
+
processes, but changes visibility, writeback, conflict handling, metadata and performance; it remains
|
|
50
|
+
out of scope unless that threat must be covered.
|
|
51
|
+
|
|
52
|
+
This decision is not release evidence. See [PROP-0039](../architecture/proposals/PROP-0039-workspace-boundary-hardening.md),
|
|
53
|
+
[the gate contract](../architecture/07-tools-and-gate.md), [terminal parity](../architecture/11-terminal.md)
|
|
54
|
+
and [the release note](../releases/1.2.0.md) for implementation and validation status.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# ADR-0037: Usage analytics read a derived ledger; provider limits are read, never guessed
|
|
2
|
+
|
|
3
|
+
**Status:** Accepted (2026-10-26)
|
|
4
|
+
|
|
5
|
+
## Context
|
|
6
|
+
|
|
7
|
+
Token and cost figures already reach the harness per model request, but only inside run events,
|
|
8
|
+
and the index stores no usage. Provider limits have a schema and health rules but no producer.
|
|
9
|
+
A person needs both answers without reading run folders, and a subscription's plan window must
|
|
10
|
+
not be presented as a made-up percentage.
|
|
11
|
+
|
|
12
|
+
## Decision
|
|
13
|
+
|
|
14
|
+
- **The usage ledger is derived.** `usage_requests` and `usage_indexed` live in `index.sqlite`,
|
|
15
|
+
are written from `usage.updated` events, and are rebuilt from `runs/` like recall. No run file,
|
|
16
|
+
folder or schema changes.
|
|
17
|
+
- **Analytics are bounded and scope-first.** One scope, one period, top-ten breakdowns, an
|
|
18
|
+
unpriced-request count, and cost estimates marked separately from provider figures.
|
|
19
|
+
- **Limits have a stated source.** Response headers first (free and fresh), then a small registry
|
|
20
|
+
of documented provider endpoints read with the credential `Models.getAuth` resolves, then an
|
|
21
|
+
explicit unavailable reason. Undocumented endpoints are off unless `experimentalProbes` is on.
|
|
22
|
+
- **Freshness is a person's choice.** Readings are cached for a configurable interval and
|
|
23
|
+
refreshed on page open or `r`, never by a background timer.
|
|
24
|
+
- **One built-in plugin owns the capability.** `usage` contributes the methods and the two
|
|
25
|
+
namespaced terminal commands; the public method table still comes from `server/methods.ts`.
|
|
26
|
+
|
|
27
|
+
## Consequences
|
|
28
|
+
|
|
29
|
+
The index carries one more derived table set, with an append-only migration. `AccountState`
|
|
30
|
+
gains an optional readout list and `Limit` optional absolute fields, both additive. A page open
|
|
31
|
+
may make a read-only provider request with the account's existing credential; nothing is written
|
|
32
|
+
to a credential file and no model request is made. Hosts can present the same methods later; the
|
|
33
|
+
terminal is the reference surface.
|
|
34
|
+
|
|
35
|
+
## Alternatives rejected
|
|
36
|
+
|
|
37
|
+
Reading raw run logs per page (unbounded), a new data folder (duplicates derived data), scraping
|
|
38
|
+
dashboards (no stable API), inventing percentages (misleading), background polling (surprise
|
|
39
|
+
egress).
|
|
40
|
+
|
|
41
|
+
## References
|
|
42
|
+
|
|
43
|
+
[PROP-0042](../architecture/proposals/PROP-0042-usage-and-provider-limits.md), architecture pages
|
|
44
|
+
02, 06, 08, 09, 10, 11, 12 and 14.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ADR-0038
|
|
3
|
+
title: Plan-mode Bash is read-only by OS sandbox, not by command parsing
|
|
4
|
+
status: Accepted
|
|
5
|
+
created: 2026-10-26
|
|
6
|
+
proposal: PROP-0043
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ADR-0038: Plan-mode Bash is read-only by OS sandbox, not by command parsing
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
Plan runs may use Bash, and each call runs in the workspace sandbox's `read-only` scope: no writes
|
|
14
|
+
except a discarded per-call temp folder, no network, no signals outside the sandbox, and (macOS) no
|
|
15
|
+
mach services. Nothing widens that scope in plan mode. A small denylist of system-acting commands is
|
|
16
|
+
checked by the gate as defence in depth only.
|
|
17
|
+
|
|
18
|
+
## Rationale
|
|
19
|
+
|
|
20
|
+
Whether a shell command writes cannot be decided reliably from its text; many read-looking commands
|
|
21
|
+
can run others or write through flags. The Harness already depends on `sandbox-exec` and `bwrap` for
|
|
22
|
+
the workspace boundary (ADR-0036), so the same mechanism with no write roots gives a kernel-enforced
|
|
23
|
+
read-only guarantee at little cost.
|
|
24
|
+
|
|
25
|
+
## Consequences
|
|
26
|
+
|
|
27
|
+
Plans can inspect with real commands. Commands that need to write, such as most builds and tests,
|
|
28
|
+
fail in plan mode. Platforms without a sandbox refuse plan Bash. See
|
|
29
|
+
[PROP-0043](../architecture/proposals/PROP-0043-read-only-plan-bash.md).
|
package/docs/doctor.md
CHANGED
|
@@ -15,11 +15,17 @@ domain”. MCP checks connect/list only. Browser checks use a disposable headles
|
|
|
15
15
|
offline synthetic page; configured CDP attachment is blocked. Computer input is blocked unless the
|
|
16
16
|
host supplies a disposable diagnostic surface; the current desktop host supplies readiness only.
|
|
17
17
|
|
|
18
|
+
The report keeps mode, progress, account/model and status counts visible above the findings. Wide
|
|
19
|
+
layouts use aligned Status, Check, Category and Verification columns; evidence and any next step
|
|
20
|
+
appear beneath each finding. Narrow layouts stack those fields. Status colors follow the active
|
|
21
|
+
theme: pass is green, warning/blocked amber, fail red, disabled dim and unverified muted.
|
|
22
|
+
|
|
18
23
|
`r` refreshes local readiness, `t` retries a selected local check, `c` cancels, and Escape closes
|
|
19
|
-
and cancels pending work.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
and
|
|
24
|
+
and cancels pending work. Use Up/Down to scroll by line, PgUp/PgDn or the mouse wheel to scroll by
|
|
25
|
+
page, and Home/End to jump to the first/last finding. Completed findings survive cancellation. Every finding includes
|
|
26
|
+
evidence and, where useful, a next step. Doctor never signs in, switches accounts, installs, grants
|
|
27
|
+
access, or repairs settings. Findings and jobs are retained in memory until shutdown; live run
|
|
28
|
+
records and usage remain in normal Harness storage.
|
|
23
29
|
|
|
24
30
|
## Embedding
|
|
25
31
|
|