@xingular/harness 2.0.0 → 2.0.1-unstable

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1095) hide show
  1. package/CHANGELOG.md +635 -0
  2. package/LICENSE +202 -0
  3. package/NOTICE.md +50 -0
  4. package/README.md +241 -90
  5. package/THIRD_PARTY_LICENSES.md +942 -0
  6. package/browser-extension/README.md +32 -0
  7. package/browser-extension/background.js +612 -0
  8. package/browser-extension/manifest.json +16 -0
  9. package/browser-extension/overlay.js +97 -0
  10. package/browser-extension/popup.css +19 -0
  11. package/browser-extension/popup.html +30 -0
  12. package/browser-extension/popup.js +101 -0
  13. package/browser-extension/site-access.js +63 -0
  14. package/builtin/skills/plugin-authoring/SKILL.md +53 -0
  15. package/dist/cli.js +32851 -17155
  16. package/dist/sdk/accounts/accounts.d.ts +195 -0
  17. package/dist/sdk/accounts/accounts.js +821 -0
  18. package/dist/sdk/accounts/choices.d.ts +41 -0
  19. package/dist/sdk/accounts/choices.js +89 -0
  20. package/dist/sdk/accounts/env.d.ts +78 -0
  21. package/dist/sdk/accounts/env.js +294 -0
  22. package/dist/sdk/accounts/secrets.d.ts +28 -0
  23. package/dist/sdk/accounts/secrets.js +147 -0
  24. package/dist/sdk/accounts/store.d.ts +139 -0
  25. package/dist/sdk/accounts/store.js +255 -0
  26. package/dist/sdk/agents/builtin.d.ts +2 -0
  27. package/dist/sdk/agents/builtin.js +50 -0
  28. package/dist/sdk/agents/narrow.d.ts +13 -0
  29. package/dist/sdk/agents/narrow.js +29 -0
  30. package/dist/sdk/agents/planResearch.d.ts +27 -0
  31. package/dist/sdk/agents/planResearch.js +82 -0
  32. package/dist/sdk/agents/profiles.d.ts +93 -0
  33. package/dist/sdk/agents/profiles.js +289 -0
  34. package/dist/sdk/annotations/bridge.d.ts +44 -0
  35. package/dist/sdk/annotations/bridge.js +268 -0
  36. package/dist/sdk/annotations/capture.d.ts +158 -0
  37. package/dist/sdk/annotations/capture.js +409 -0
  38. package/dist/sdk/annotations/delivery.d.ts +79 -0
  39. package/dist/sdk/annotations/delivery.js +163 -0
  40. package/dist/sdk/annotations/inspect.d.ts +10 -0
  41. package/dist/sdk/annotations/inspect.js +34 -0
  42. package/dist/sdk/annotations/isolated.d.ts +6 -0
  43. package/dist/sdk/annotations/isolated.js +51 -0
  44. package/dist/sdk/annotations/pageScript.d.ts +28 -0
  45. package/dist/sdk/annotations/pageScript.js +871 -0
  46. package/dist/sdk/annotations/part.d.ts +8 -0
  47. package/dist/sdk/annotations/part.js +126 -0
  48. package/dist/sdk/annotations/queue.d.ts +4 -0
  49. package/dist/sdk/annotations/queue.js +45 -0
  50. package/dist/sdk/annotations/serverMethods.d.ts +3 -0
  51. package/dist/sdk/annotations/serverMethods.js +66 -0
  52. package/dist/sdk/annotations/store.d.ts +159 -0
  53. package/dist/sdk/annotations/store.js +404 -0
  54. package/dist/sdk/browser/backend.d.ts +16 -0
  55. package/dist/sdk/browser/backend.js +17 -0
  56. package/dist/sdk/browser/config.d.ts +19 -0
  57. package/dist/sdk/browser/config.js +23 -0
  58. package/dist/sdk/browser/contracts.d.ts +19 -0
  59. package/dist/sdk/browser/contracts.js +116 -0
  60. package/dist/sdk/browser/diagnostics.d.ts +4 -0
  61. package/dist/sdk/browser/diagnostics.js +38 -0
  62. package/dist/sdk/browser/extension/bridge.d.ts +55 -0
  63. package/dist/sdk/browser/extension/bridge.js +336 -0
  64. package/dist/sdk/browser/extension/session.d.ts +50 -0
  65. package/dist/sdk/browser/extension/session.js +321 -0
  66. package/dist/sdk/browser/index.d.ts +33 -0
  67. package/dist/sdk/browser/index.js +105 -0
  68. package/dist/sdk/browser/network.d.ts +10 -0
  69. package/dist/sdk/browser/network.js +59 -0
  70. package/dist/sdk/browser/serverMethods.d.ts +3 -0
  71. package/dist/sdk/browser/serverMethods.js +10 -0
  72. package/dist/sdk/browser/session.d.ts +85 -0
  73. package/dist/sdk/browser/session.js +228 -0
  74. package/dist/sdk/browser/tools.d.ts +102 -0
  75. package/dist/sdk/browser/tools.js +257 -0
  76. package/dist/sdk/capabilities/api.d.ts +22 -0
  77. package/dist/sdk/capabilities/api.js +54 -0
  78. package/dist/sdk/capabilities/runSnapshot.d.ts +18 -0
  79. package/dist/sdk/capabilities/runSnapshot.js +53 -0
  80. package/dist/sdk/capabilities/types.d.ts +29 -0
  81. package/dist/sdk/capabilities/types.js +1 -0
  82. package/dist/sdk/cli.d.ts +2 -0
  83. package/dist/sdk/cli.js +172 -0
  84. package/dist/sdk/commands/extensionOwners.d.ts +4 -0
  85. package/dist/sdk/commands/extensionOwners.js +17 -0
  86. package/dist/sdk/commands/list.d.ts +3 -0
  87. package/dist/sdk/commands/list.js +90 -0
  88. package/dist/sdk/commands/promptLoader.d.ts +5 -0
  89. package/dist/sdk/commands/promptLoader.js +76 -0
  90. package/dist/sdk/commands/promptRoutes.d.ts +13 -0
  91. package/dist/sdk/commands/promptRoutes.js +46 -0
  92. package/dist/sdk/commands/registry.d.ts +299 -0
  93. package/dist/sdk/commands/registry.js +54 -0
  94. package/dist/sdk/commands/routes.d.ts +16 -0
  95. package/dist/sdk/commands/routes.js +33 -0
  96. package/dist/sdk/commands/runtimeRouter.d.ts +4 -0
  97. package/dist/sdk/commands/runtimeRouter.js +48 -0
  98. package/dist/sdk/computer/boundary.d.ts +40 -0
  99. package/dist/sdk/computer/boundary.js +79 -0
  100. package/dist/sdk/computer/contracts.d.ts +127 -0
  101. package/dist/sdk/computer/contracts.js +13 -0
  102. package/dist/sdk/computer/control.d.ts +34 -0
  103. package/dist/sdk/computer/control.js +112 -0
  104. package/dist/sdk/computer/screenshot.d.ts +32 -0
  105. package/dist/sdk/computer/screenshot.js +35 -0
  106. package/dist/sdk/computer/terminalCapture.d.ts +26 -0
  107. package/dist/sdk/computer/terminalCapture.js +64 -0
  108. package/dist/sdk/computer/volatileImages.d.ts +9 -0
  109. package/dist/sdk/computer/volatileImages.js +50 -0
  110. package/dist/sdk/context/attribution.d.ts +18 -0
  111. package/dist/sdk/context/attribution.js +295 -0
  112. package/dist/sdk/context/runDetails.d.ts +16 -0
  113. package/dist/sdk/context/runDetails.js +22 -0
  114. package/dist/sdk/context/types.d.ts +94 -0
  115. package/dist/sdk/context/types.js +10 -0
  116. package/dist/sdk/core/bus.d.ts +23 -0
  117. package/dist/sdk/core/bus.js +76 -0
  118. package/dist/sdk/core/caller.d.ts +22 -0
  119. package/dist/sdk/core/caller.js +16 -0
  120. package/dist/sdk/core/changes.d.ts +15 -0
  121. package/dist/sdk/core/changes.js +15 -0
  122. package/dist/sdk/core/commandBudget.d.ts +23 -0
  123. package/dist/sdk/core/commandBudget.js +62 -0
  124. package/dist/sdk/core/effort.d.ts +2 -0
  125. package/dist/sdk/core/effort.js +1 -0
  126. package/dist/sdk/core/env.d.ts +18 -0
  127. package/dist/sdk/core/env.js +8 -0
  128. package/dist/sdk/core/errors.d.ts +15 -0
  129. package/dist/sdk/core/errors.js +24 -0
  130. package/dist/sdk/core/frontmatter.d.ts +12 -0
  131. package/dist/sdk/core/frontmatter.js +50 -0
  132. package/dist/sdk/core/fs.d.ts +18 -0
  133. package/dist/sdk/core/fs.js +106 -0
  134. package/dist/sdk/core/index.d.ts +24 -0
  135. package/dist/sdk/core/index.js +203 -0
  136. package/dist/sdk/core/interactiveProfile.d.ts +46 -0
  137. package/dist/sdk/core/interactiveProfile.js +143 -0
  138. package/dist/sdk/core/links.d.ts +51 -0
  139. package/dist/sdk/core/links.js +155 -0
  140. package/dist/sdk/core/path.d.ts +7 -0
  141. package/dist/sdk/core/path.js +79 -0
  142. package/dist/sdk/core/projects.d.ts +18 -0
  143. package/dist/sdk/core/projects.js +67 -0
  144. package/dist/sdk/core/secrets.d.ts +2 -0
  145. package/dist/sdk/core/secrets.js +5 -0
  146. package/dist/sdk/core/shell.d.ts +20 -0
  147. package/dist/sdk/core/shell.js +73 -0
  148. package/dist/sdk/core/text.d.ts +7 -0
  149. package/dist/sdk/core/text.js +40 -0
  150. package/dist/sdk/core/workspace.d.ts +13 -0
  151. package/dist/sdk/core/workspace.js +88 -0
  152. package/dist/sdk/core/workspaceBashTool.d.ts +20 -0
  153. package/dist/sdk/core/workspaceBashTool.js +50 -0
  154. package/dist/sdk/core/workspaceSandbox.d.ts +41 -0
  155. package/dist/sdk/core/workspaceSandbox.js +360 -0
  156. package/dist/sdk/core/workspaceWriteOperations.d.ts +57 -0
  157. package/dist/sdk/core/workspaceWriteOperations.js +245 -0
  158. package/dist/sdk/doctor/checks.d.ts +5 -0
  159. package/dist/sdk/doctor/checks.js +270 -0
  160. package/dist/sdk/doctor/probe.d.ts +4 -0
  161. package/dist/sdk/doctor/probe.js +94 -0
  162. package/dist/sdk/doctor/serverMethods.d.ts +3 -0
  163. package/dist/sdk/doctor/serverMethods.js +8 -0
  164. package/dist/sdk/doctor/service.d.ts +23 -0
  165. package/dist/sdk/doctor/service.js +144 -0
  166. package/dist/sdk/doctor/types.d.ts +141 -0
  167. package/dist/sdk/doctor/types.js +29 -0
  168. package/dist/sdk/harness.d.ts +172 -0
  169. package/dist/sdk/harness.js +387 -0
  170. package/dist/sdk/history/lessonPrompt.d.ts +2 -0
  171. package/dist/sdk/history/lessonPrompt.js +15 -0
  172. package/dist/sdk/history/lessons.d.ts +52 -0
  173. package/dist/sdk/history/lessons.js +173 -0
  174. package/dist/sdk/history/recall.d.ts +68 -0
  175. package/dist/sdk/history/recall.js +199 -0
  176. package/dist/sdk/history/serverMethods.d.ts +3 -0
  177. package/dist/sdk/history/serverMethods.js +8 -0
  178. package/dist/sdk/history/trajectory.d.ts +7 -0
  179. package/dist/sdk/history/trajectory.js +218 -0
  180. package/dist/sdk/hub/catalog.json +123 -0
  181. package/dist/sdk/hub/cli.d.ts +7 -0
  182. package/dist/sdk/hub/cli.js +81 -0
  183. package/dist/sdk/hub/hub.d.ts +74 -0
  184. package/dist/sdk/hub/hub.js +476 -0
  185. package/dist/sdk/hub/schema.d.ts +280 -0
  186. package/dist/sdk/hub/schema.js +78 -0
  187. package/dist/sdk/hub/serverMethods.d.ts +3 -0
  188. package/dist/sdk/hub/serverMethods.js +11 -0
  189. package/dist/sdk/index.d.ts +80 -0
  190. package/dist/sdk/index.js +60 -0
  191. package/dist/sdk/mcp/connections.d.ts +83 -0
  192. package/dist/sdk/mcp/connections.js +676 -0
  193. package/dist/sdk/mcp/manager.d.ts +26 -0
  194. package/dist/sdk/mcp/manager.js +124 -0
  195. package/dist/sdk/mcp/oauth.d.ts +35 -0
  196. package/dist/sdk/mcp/oauth.js +171 -0
  197. package/dist/sdk/mcp/scopeMigration.d.ts +19 -0
  198. package/dist/sdk/mcp/scopeMigration.js +198 -0
  199. package/dist/sdk/mcp/serverMethods.d.ts +3 -0
  200. package/dist/sdk/mcp/serverMethods.js +22 -0
  201. package/dist/sdk/mcp/service.d.ts +160 -0
  202. package/dist/sdk/mcp/service.js +510 -0
  203. package/dist/sdk/mcp/types.d.ts +131 -0
  204. package/dist/sdk/mcp/types.js +49 -0
  205. package/dist/sdk/pi/retryPolicy.d.ts +19 -0
  206. package/dist/sdk/pi/retryPolicy.js +11 -0
  207. package/dist/sdk/pi/runtime.d.ts +14 -0
  208. package/dist/sdk/pi/runtime.js +31 -0
  209. package/dist/sdk/plugins/api.d.ts +66 -0
  210. package/dist/sdk/plugins/api.js +155 -0
  211. package/dist/sdk/plugins/attachments.d.ts +46 -0
  212. package/dist/sdk/plugins/attachments.js +111 -0
  213. package/dist/sdk/plugins/builtin.d.ts +7 -0
  214. package/dist/sdk/plugins/builtin.js +182 -0
  215. package/dist/sdk/plugins/builtinRegistry.d.ts +62 -0
  216. package/dist/sdk/plugins/builtinRegistry.js +77 -0
  217. package/dist/sdk/plugins/catalogue.d.ts +29 -0
  218. package/dist/sdk/plugins/catalogue.js +197 -0
  219. package/dist/sdk/plugins/cli.d.ts +13 -0
  220. package/dist/sdk/plugins/cli.js +188 -0
  221. package/dist/sdk/plugins/commandPrefix.d.ts +8 -0
  222. package/dist/sdk/plugins/commandPrefix.js +21 -0
  223. package/dist/sdk/plugins/discover.d.ts +48 -0
  224. package/dist/sdk/plugins/discover.js +230 -0
  225. package/dist/sdk/plugins/firstParty.d.ts +50 -0
  226. package/dist/sdk/plugins/firstParty.js +119 -0
  227. package/dist/sdk/plugins/hooks.d.ts +94 -0
  228. package/dist/sdk/plugins/hooks.js +162 -0
  229. package/dist/sdk/plugins/identity.d.ts +19 -0
  230. package/dist/sdk/plugins/identity.js +48 -0
  231. package/dist/sdk/plugins/install.d.ts +24 -0
  232. package/dist/sdk/plugins/install.js +160 -0
  233. package/dist/sdk/plugins/inventory.d.ts +22 -0
  234. package/dist/sdk/plugins/inventory.js +111 -0
  235. package/dist/sdk/plugins/manifest.d.ts +21 -0
  236. package/dist/sdk/plugins/manifest.js +94 -0
  237. package/dist/sdk/plugins/plugins.d.ts +106 -0
  238. package/dist/sdk/plugins/plugins.js +165 -0
  239. package/dist/sdk/plugins/proposals.d.ts +17 -0
  240. package/dist/sdk/plugins/proposals.js +147 -0
  241. package/dist/sdk/plugins/runtime.d.ts +9 -0
  242. package/dist/sdk/plugins/runtime.js +95 -0
  243. package/dist/sdk/plugins/surfaces.d.ts +5 -0
  244. package/dist/sdk/plugins/surfaces.js +11 -0
  245. package/dist/sdk/plugins/trust.d.ts +44 -0
  246. package/dist/sdk/plugins/trust.js +120 -0
  247. package/dist/sdk/plugins/types.d.ts +174 -0
  248. package/dist/sdk/plugins/types.js +7 -0
  249. package/dist/sdk/prompt/compile.d.ts +245 -0
  250. package/dist/sdk/prompt/compile.js +535 -0
  251. package/dist/sdk/prompt/reporting.d.ts +2 -0
  252. package/dist/sdk/prompt/reporting.js +94 -0
  253. package/dist/sdk/prompt/standard.d.ts +32 -0
  254. package/dist/sdk/prompt/standard.js +76 -0
  255. package/dist/sdk/refine/cli.d.ts +4 -0
  256. package/dist/sdk/refine/cli.js +186 -0
  257. package/dist/sdk/refine/demo.d.ts +21 -0
  258. package/dist/sdk/refine/demo.js +114 -0
  259. package/dist/sdk/refine/evidence.d.ts +55 -0
  260. package/dist/sdk/refine/evidence.js +330 -0
  261. package/dist/sdk/refine/host.d.ts +59 -0
  262. package/dist/sdk/refine/host.js +105 -0
  263. package/dist/sdk/refine/ledger.d.ts +48 -0
  264. package/dist/sdk/refine/ledger.js +76 -0
  265. package/dist/sdk/refine/library.d.ts +55 -0
  266. package/dist/sdk/refine/library.js +177 -0
  267. package/dist/sdk/refine/pi.d.ts +72 -0
  268. package/dist/sdk/refine/pi.js +248 -0
  269. package/dist/sdk/refine/prompts.d.ts +60 -0
  270. package/dist/sdk/refine/prompts.js +434 -0
  271. package/dist/sdk/refine/recursion.d.ts +113 -0
  272. package/dist/sdk/refine/recursion.js +258 -0
  273. package/dist/sdk/refine/runner.d.ts +83 -0
  274. package/dist/sdk/refine/runner.js +151 -0
  275. package/dist/sdk/refine/selection.d.ts +57 -0
  276. package/dist/sdk/refine/selection.js +251 -0
  277. package/dist/sdk/refine/serverMethods.d.ts +3 -0
  278. package/dist/sdk/refine/serverMethods.js +23 -0
  279. package/dist/sdk/refine/service.d.ts +115 -0
  280. package/dist/sdk/refine/service.js +280 -0
  281. package/dist/sdk/refine/suite.d.ts +67 -0
  282. package/dist/sdk/refine/suite.js +174 -0
  283. package/dist/sdk/refine/trajectory.d.ts +9 -0
  284. package/dist/sdk/refine/trajectory.js +73 -0
  285. package/dist/sdk/refine/types.d.ts +93 -0
  286. package/dist/sdk/refine/types.js +10 -0
  287. package/dist/sdk/remote/addresses.d.ts +19 -0
  288. package/dist/sdk/remote/addresses.js +52 -0
  289. package/dist/sdk/remote/pairing.d.ts +59 -0
  290. package/dist/sdk/remote/pairing.js +160 -0
  291. package/dist/sdk/remote/seal.d.ts +28 -0
  292. package/dist/sdk/remote/seal.js +84 -0
  293. package/dist/sdk/remote/server.d.ts +28 -0
  294. package/dist/sdk/remote/server.js +158 -0
  295. package/dist/sdk/remote/service.d.ts +125 -0
  296. package/dist/sdk/remote/service.js +330 -0
  297. package/dist/sdk/remote/webClient.d.ts +4 -0
  298. package/dist/sdk/remote/webClient.js +452 -0
  299. package/dist/sdk/server/methods.d.ts +3 -0
  300. package/dist/sdk/server/methods.js +365 -0
  301. package/dist/sdk/server/params.d.ts +4 -0
  302. package/dist/sdk/server/params.js +11 -0
  303. package/dist/sdk/server/remote.d.ts +19 -0
  304. package/dist/sdk/server/remote.js +109 -0
  305. package/dist/sdk/server/rpc.d.ts +20 -0
  306. package/dist/sdk/server/rpc.js +102 -0
  307. package/dist/sdk/server/serve.d.ts +13 -0
  308. package/dist/sdk/server/serve.js +25 -0
  309. package/dist/sdk/server/socket.d.ts +28 -0
  310. package/dist/sdk/server/socket.js +122 -0
  311. package/dist/sdk/sessions/approvals.d.ts +47 -0
  312. package/dist/sdk/sessions/approvals.js +119 -0
  313. package/dist/sdk/sessions/checkpoint.d.ts +7 -0
  314. package/dist/sdk/sessions/checkpoint.js +41 -0
  315. package/dist/sdk/sessions/compactionCheckpoint.d.ts +18 -0
  316. package/dist/sdk/sessions/compactionCheckpoint.js +79 -0
  317. package/dist/sdk/sessions/completionCheck.d.ts +51 -0
  318. package/dist/sdk/sessions/completionCheck.js +161 -0
  319. package/dist/sdk/sessions/continuation.d.ts +53 -0
  320. package/dist/sdk/sessions/continuation.js +90 -0
  321. package/dist/sdk/sessions/contracts.d.ts +991 -0
  322. package/dist/sdk/sessions/contracts.js +545 -0
  323. package/dist/sdk/sessions/control.d.ts +72 -0
  324. package/dist/sdk/sessions/control.js +158 -0
  325. package/dist/sdk/sessions/extensionUi.d.ts +19 -0
  326. package/dist/sdk/sessions/extensionUi.js +64 -0
  327. package/dist/sdk/sessions/goal.d.ts +145 -0
  328. package/dist/sdk/sessions/goal.js +405 -0
  329. package/dist/sdk/sessions/goalLoop.d.ts +37 -0
  330. package/dist/sdk/sessions/goalLoop.js +125 -0
  331. package/dist/sdk/sessions/goalPrompts.d.ts +4 -0
  332. package/dist/sdk/sessions/goalPrompts.js +93 -0
  333. package/dist/sdk/sessions/goalStop.d.ts +27 -0
  334. package/dist/sdk/sessions/goalStop.js +41 -0
  335. package/dist/sdk/sessions/history.d.ts +16 -0
  336. package/dist/sdk/sessions/history.js +68 -0
  337. package/dist/sdk/sessions/initialBash.d.ts +7 -0
  338. package/dist/sdk/sessions/initialBash.js +7 -0
  339. package/dist/sdk/sessions/lineageJoin.d.ts +2 -0
  340. package/dist/sdk/sessions/lineageJoin.js +61 -0
  341. package/dist/sdk/sessions/live.d.ts +101 -0
  342. package/dist/sdk/sessions/live.js +265 -0
  343. package/dist/sdk/sessions/planMode.d.ts +116 -0
  344. package/dist/sdk/sessions/planMode.js +281 -0
  345. package/dist/sdk/sessions/policy.d.ts +43 -0
  346. package/dist/sdk/sessions/policy.js +1 -0
  347. package/dist/sdk/sessions/pricing.d.ts +34 -0
  348. package/dist/sdk/sessions/pricing.js +40 -0
  349. package/dist/sdk/sessions/reasoningSummaries.d.ts +11 -0
  350. package/dist/sdk/sessions/reasoningSummaries.js +61 -0
  351. package/dist/sdk/sessions/registry.d.ts +124 -0
  352. package/dist/sdk/sessions/registry.js +392 -0
  353. package/dist/sdk/sessions/runIndex.d.ts +21 -0
  354. package/dist/sdk/sessions/runIndex.js +65 -0
  355. package/dist/sdk/sessions/runStore.d.ts +82 -0
  356. package/dist/sdk/sessions/runStore.js +393 -0
  357. package/dist/sdk/sessions/runner.d.ts +291 -0
  358. package/dist/sdk/sessions/runner.js +1040 -0
  359. package/dist/sdk/sessions/sessionState.d.ts +13 -0
  360. package/dist/sdk/sessions/sessionState.js +31 -0
  361. package/dist/sdk/sessions/sessions.d.ts +238 -0
  362. package/dist/sdk/sessions/sessions.js +923 -0
  363. package/dist/sdk/sessions/sideQuestionServerMethods.d.ts +3 -0
  364. package/dist/sdk/sessions/sideQuestionServerMethods.js +19 -0
  365. package/dist/sdk/sessions/sideQuestions.d.ts +66 -0
  366. package/dist/sdk/sessions/sideQuestions.js +290 -0
  367. package/dist/sdk/sessions/stallWatch.d.ts +35 -0
  368. package/dist/sdk/sessions/stallWatch.js +42 -0
  369. package/dist/sdk/sessions/subagentServerMethods.d.ts +3 -0
  370. package/dist/sdk/sessions/subagentServerMethods.js +41 -0
  371. package/dist/sdk/sessions/subagentService.d.ts +88 -0
  372. package/dist/sdk/sessions/subagentService.js +546 -0
  373. package/dist/sdk/sessions/subagents.d.ts +98 -0
  374. package/dist/sdk/sessions/subagents.js +136 -0
  375. package/dist/sdk/sessions/workSlice.d.ts +167 -0
  376. package/dist/sdk/sessions/workSlice.js +266 -0
  377. package/dist/sdk/sessions/workspaceBoundary.d.ts +15 -0
  378. package/dist/sdk/sessions/workspaceBoundary.js +46 -0
  379. package/dist/sdk/terminal/accountsMenu.d.ts +46 -0
  380. package/dist/sdk/terminal/accountsMenu.js +392 -0
  381. package/dist/sdk/terminal/browser.d.ts +62 -0
  382. package/dist/sdk/terminal/browser.js +41 -0
  383. package/dist/sdk/terminal/browserControl.d.ts +29 -0
  384. package/dist/sdk/terminal/browserControl.js +187 -0
  385. package/dist/sdk/terminal/cli.d.ts +20 -0
  386. package/dist/sdk/terminal/cli.js +121 -0
  387. package/dist/sdk/terminal/client.d.ts +20 -0
  388. package/dist/sdk/terminal/client.js +148 -0
  389. package/dist/sdk/terminal/commandHelp.d.ts +17 -0
  390. package/dist/sdk/terminal/commandHelp.js +20 -0
  391. package/dist/sdk/terminal/control.d.ts +4 -0
  392. package/dist/sdk/terminal/control.js +25 -0
  393. package/dist/sdk/terminal/controller.d.ts +136 -0
  394. package/dist/sdk/terminal/controller.js +579 -0
  395. package/dist/sdk/terminal/credentialStore.d.ts +4 -0
  396. package/dist/sdk/terminal/credentialStore.js +33 -0
  397. package/dist/sdk/terminal/daemon.d.ts +44 -0
  398. package/dist/sdk/terminal/daemon.js +264 -0
  399. package/dist/sdk/terminal/hubMenu.d.ts +10 -0
  400. package/dist/sdk/terminal/hubMenu.js +34 -0
  401. package/dist/sdk/terminal/launch.d.ts +5 -0
  402. package/dist/sdk/terminal/launch.js +27 -0
  403. package/dist/sdk/terminal/liveTerminal.d.ts +96 -0
  404. package/dist/sdk/terminal/liveTerminal.js +436 -0
  405. package/dist/sdk/terminal/logs.d.ts +14 -0
  406. package/dist/sdk/terminal/logs.js +59 -0
  407. package/dist/sdk/terminal/opentui/ansi.d.ts +25 -0
  408. package/dist/sdk/terminal/opentui/ansi.js +192 -0
  409. package/dist/sdk/terminal/opentui/model.d.ts +163 -0
  410. package/dist/sdk/terminal/opentui/model.js +484 -0
  411. package/dist/sdk/terminal/opentui/subagentsWidget.d.ts +28 -0
  412. package/dist/sdk/terminal/opentui/subagentsWidget.js +54 -0
  413. package/dist/sdk/terminal/opentui/theme.d.ts +47 -0
  414. package/dist/sdk/terminal/opentui/theme.js +93 -0
  415. package/dist/sdk/terminal/piExtension.d.ts +12 -0
  416. package/dist/sdk/terminal/piExtension.js +847 -0
  417. package/dist/sdk/terminal/pluginMenu.d.ts +34 -0
  418. package/dist/sdk/terminal/pluginMenu.js +101 -0
  419. package/dist/sdk/terminal/socket.d.ts +73 -0
  420. package/dist/sdk/terminal/socket.js +287 -0
  421. package/dist/sdk/terminal/standalone.d.ts +52 -0
  422. package/dist/sdk/terminal/standalone.js +329 -0
  423. package/dist/sdk/terminal/subagentMonitor.d.ts +62 -0
  424. package/dist/sdk/terminal/subagentMonitor.js +176 -0
  425. package/dist/sdk/terminal/terminals.d.ts +312 -0
  426. package/dist/sdk/terminal/terminals.js +1782 -0
  427. package/dist/sdk/terminal/toolName.d.ts +6 -0
  428. package/dist/sdk/terminal/toolName.js +12 -0
  429. package/dist/sdk/terminal/trajectory.d.ts +15 -0
  430. package/dist/sdk/terminal/trajectory.js +38 -0
  431. package/dist/sdk/terminal/tui/annotateCommand.d.ts +7 -0
  432. package/dist/sdk/terminal/tui/annotateCommand.js +36 -0
  433. package/dist/sdk/terminal/tui/annotateSend.d.ts +30 -0
  434. package/dist/sdk/terminal/tui/annotateSend.js +40 -0
  435. package/dist/sdk/terminal/tui/chrome.d.ts +68 -0
  436. package/dist/sdk/terminal/tui/chrome.js +182 -0
  437. package/dist/sdk/terminal/tui/clipboardFiles.d.ts +11 -0
  438. package/dist/sdk/terminal/tui/clipboardFiles.js +74 -0
  439. package/dist/sdk/terminal/tui/commandPages.d.ts +16 -0
  440. package/dist/sdk/terminal/tui/commandPages.js +136 -0
  441. package/dist/sdk/terminal/tui/commands.d.ts +71 -0
  442. package/dist/sdk/terminal/tui/commands.js +496 -0
  443. package/dist/sdk/terminal/tui/dialogGeometry.d.ts +27 -0
  444. package/dist/sdk/terminal/tui/dialogGeometry.js +52 -0
  445. package/dist/sdk/terminal/tui/dialogs.d.ts +81 -0
  446. package/dist/sdk/terminal/tui/dialogs.js +372 -0
  447. package/dist/sdk/terminal/tui/goalCommand.d.ts +19 -0
  448. package/dist/sdk/terminal/tui/goalCommand.js +83 -0
  449. package/dist/sdk/terminal/tui/harnessRuntime.d.ts +8 -0
  450. package/dist/sdk/terminal/tui/harnessRuntime.js +771 -0
  451. package/dist/sdk/terminal/tui/keybindings.d.ts +11 -0
  452. package/dist/sdk/terminal/tui/keybindings.js +49 -0
  453. package/dist/sdk/terminal/tui/list.d.ts +86 -0
  454. package/dist/sdk/terminal/tui/list.js +278 -0
  455. package/dist/sdk/terminal/tui/markdown.d.ts +16 -0
  456. package/dist/sdk/terminal/tui/markdown.js +55 -0
  457. package/dist/sdk/terminal/tui/modeChoices.d.ts +61 -0
  458. package/dist/sdk/terminal/tui/modeChoices.js +95 -0
  459. package/dist/sdk/terminal/tui/modelPicker.d.ts +55 -0
  460. package/dist/sdk/terminal/tui/modelPicker.js +150 -0
  461. package/dist/sdk/terminal/tui/mouse.d.ts +3 -0
  462. package/dist/sdk/terminal/tui/mouse.js +3 -0
  463. package/dist/sdk/terminal/tui/mouseReport.d.ts +30 -0
  464. package/dist/sdk/terminal/tui/mouseReport.js +80 -0
  465. package/dist/sdk/terminal/tui/page.d.ts +17 -0
  466. package/dist/sdk/terminal/tui/page.js +1 -0
  467. package/dist/sdk/terminal/tui/pageOverlay.d.ts +30 -0
  468. package/dist/sdk/terminal/tui/pageOverlay.js +183 -0
  469. package/dist/sdk/terminal/tui/pages/accountsPage.d.ts +76 -0
  470. package/dist/sdk/terminal/tui/pages/accountsPage.js +409 -0
  471. package/dist/sdk/terminal/tui/pages/agentsPage.d.ts +74 -0
  472. package/dist/sdk/terminal/tui/pages/agentsPage.js +193 -0
  473. package/dist/sdk/terminal/tui/pages/annotatePage.d.ts +148 -0
  474. package/dist/sdk/terminal/tui/pages/annotatePage.js +576 -0
  475. package/dist/sdk/terminal/tui/pages/browserPage.d.ts +87 -0
  476. package/dist/sdk/terminal/tui/pages/browserPage.js +739 -0
  477. package/dist/sdk/terminal/tui/pages/componentsPage.d.ts +47 -0
  478. package/dist/sdk/terminal/tui/pages/componentsPage.js +119 -0
  479. package/dist/sdk/terminal/tui/pages/contextPage.d.ts +91 -0
  480. package/dist/sdk/terminal/tui/pages/contextPage.js +585 -0
  481. package/dist/sdk/terminal/tui/pages/doctorPage.d.ts +39 -0
  482. package/dist/sdk/terminal/tui/pages/doctorPage.js +233 -0
  483. package/dist/sdk/terminal/tui/pages/followUpQueuePage.d.ts +34 -0
  484. package/dist/sdk/terminal/tui/pages/followUpQueuePage.js +130 -0
  485. package/dist/sdk/terminal/tui/pages/hubPage.d.ts +52 -0
  486. package/dist/sdk/terminal/tui/pages/hubPage.js +292 -0
  487. package/dist/sdk/terminal/tui/pages/logPage.d.ts +38 -0
  488. package/dist/sdk/terminal/tui/pages/logPage.js +189 -0
  489. package/dist/sdk/terminal/tui/pages/permissionsPage.d.ts +44 -0
  490. package/dist/sdk/terminal/tui/pages/permissionsPage.js +124 -0
  491. package/dist/sdk/terminal/tui/pages/pluginsPage.d.ts +65 -0
  492. package/dist/sdk/terminal/tui/pages/pluginsPage.js +519 -0
  493. package/dist/sdk/terminal/tui/pages/remoteControlPage.d.ts +32 -0
  494. package/dist/sdk/terminal/tui/pages/remoteControlPage.js +170 -0
  495. package/dist/sdk/terminal/tui/pages/settingsPage.d.ts +63 -0
  496. package/dist/sdk/terminal/tui/pages/settingsPage.js +103 -0
  497. package/dist/sdk/terminal/tui/pages/subagentsPage.d.ts +24 -0
  498. package/dist/sdk/terminal/tui/pages/subagentsPage.js +155 -0
  499. package/dist/sdk/terminal/tui/pages/textPage.d.ts +17 -0
  500. package/dist/sdk/terminal/tui/pages/textPage.js +52 -0
  501. package/dist/sdk/terminal/tui/pages/trajectoryPage.d.ts +66 -0
  502. package/dist/sdk/terminal/tui/pages/trajectoryPage.js +490 -0
  503. package/dist/sdk/terminal/tui/pages/usagePage.d.ts +45 -0
  504. package/dist/sdk/terminal/tui/pages/usagePage.js +397 -0
  505. package/dist/sdk/terminal/tui/pages/worktreesPage.d.ts +72 -0
  506. package/dist/sdk/terminal/tui/pages/worktreesPage.js +203 -0
  507. package/dist/sdk/terminal/tui/piAdapter.d.ts +17 -0
  508. package/dist/sdk/terminal/tui/piAdapter.js +46 -0
  509. package/dist/sdk/terminal/tui/planMode.d.ts +2 -0
  510. package/dist/sdk/terminal/tui/planMode.js +2 -0
  511. package/dist/sdk/terminal/tui/pluginCommands.d.ts +16 -0
  512. package/dist/sdk/terminal/tui/pluginCommands.js +41 -0
  513. package/dist/sdk/terminal/tui/qr.d.ts +4 -0
  514. package/dist/sdk/terminal/tui/qr.js +35 -0
  515. package/dist/sdk/terminal/tui/questionPicker.d.ts +20 -0
  516. package/dist/sdk/terminal/tui/questionPicker.js +150 -0
  517. package/dist/sdk/terminal/tui/questions.d.ts +21 -0
  518. package/dist/sdk/terminal/tui/questions.js +42 -0
  519. package/dist/sdk/terminal/tui/runtime.d.ts +117 -0
  520. package/dist/sdk/terminal/tui/runtime.js +544 -0
  521. package/dist/sdk/terminal/tui/search.d.ts +22 -0
  522. package/dist/sdk/terminal/tui/search.js +61 -0
  523. package/dist/sdk/terminal/tui/selection.d.ts +16 -0
  524. package/dist/sdk/terminal/tui/selection.js +16 -0
  525. package/dist/sdk/terminal/tui/sessionPicker.d.ts +40 -0
  526. package/dist/sdk/terminal/tui/sessionPicker.js +141 -0
  527. package/dist/sdk/terminal/tui/sessionUi.d.ts +3 -0
  528. package/dist/sdk/terminal/tui/sessionUi.js +30 -0
  529. package/dist/sdk/terminal/tui/settingsModel.d.ts +14 -0
  530. package/dist/sdk/terminal/tui/settingsModel.js +195 -0
  531. package/dist/sdk/terminal/tui/sideQuestion.d.ts +57 -0
  532. package/dist/sdk/terminal/tui/sideQuestion.js +241 -0
  533. package/dist/sdk/terminal/tui/skillInvocation.d.ts +28 -0
  534. package/dist/sdk/terminal/tui/skillInvocation.js +63 -0
  535. package/dist/sdk/terminal/tui/status.d.ts +18 -0
  536. package/dist/sdk/terminal/tui/status.js +67 -0
  537. package/dist/sdk/terminal/tui/theme.d.ts +54 -0
  538. package/dist/sdk/terminal/tui/theme.js +185 -0
  539. package/dist/sdk/terminal/tui/thinkingLevels.d.ts +11 -0
  540. package/dist/sdk/terminal/tui/thinkingLevels.js +31 -0
  541. package/dist/sdk/terminal/tui/treeModel.d.ts +79 -0
  542. package/dist/sdk/terminal/tui/treeModel.js +483 -0
  543. package/dist/sdk/terminal/tui/treePicker.d.ts +49 -0
  544. package/dist/sdk/terminal/tui/treePicker.js +251 -0
  545. package/dist/sdk/terminal/tui/ui.d.ts +49 -0
  546. package/dist/sdk/terminal/tui/ui.js +149 -0
  547. package/dist/sdk/terminal/tui/variantCommands.d.ts +32 -0
  548. package/dist/sdk/terminal/tui/variantCommands.js +359 -0
  549. package/dist/sdk/terminal/tui/workingStatus.d.ts +9 -0
  550. package/dist/sdk/terminal/tui/workingStatus.js +229 -0
  551. package/dist/sdk/terminal/variantControl.d.ts +24 -0
  552. package/dist/sdk/terminal/variantControl.js +145 -0
  553. package/dist/sdk/tools/askUser.d.ts +6 -0
  554. package/dist/sdk/tools/askUser.js +92 -0
  555. package/dist/sdk/tools/defaultSkills.d.ts +23 -0
  556. package/dist/sdk/tools/defaultSkills.js +46 -0
  557. package/dist/sdk/tools/definitions.d.ts +32 -0
  558. package/dist/sdk/tools/definitions.js +133 -0
  559. package/dist/sdk/tools/dispatch.d.ts +16 -0
  560. package/dist/sdk/tools/dispatch.js +92 -0
  561. package/dist/sdk/tools/getCapabilities.d.ts +31 -0
  562. package/dist/sdk/tools/getCapabilities.js +34 -0
  563. package/dist/sdk/tools/harnessTools.d.ts +8 -0
  564. package/dist/sdk/tools/harnessTools.js +20 -0
  565. package/dist/sdk/tools/sessionName.d.ts +16 -0
  566. package/dist/sdk/tools/sessionName.js +78 -0
  567. package/dist/sdk/tools/spawnSubagent.d.ts +4 -0
  568. package/dist/sdk/tools/spawnSubagent.js +63 -0
  569. package/dist/sdk/tools/todo.d.ts +15 -0
  570. package/dist/sdk/tools/todo.js +66 -0
  571. package/dist/sdk/tools/types.d.ts +48 -0
  572. package/dist/sdk/tools/types.js +1 -0
  573. package/dist/sdk/usage/analytics.d.ts +20 -0
  574. package/dist/sdk/usage/analytics.js +151 -0
  575. package/dist/sdk/usage/ledger.d.ts +38 -0
  576. package/dist/sdk/usage/ledger.js +142 -0
  577. package/dist/sdk/usage/limits/adapters.d.ts +11 -0
  578. package/dist/sdk/usage/limits/adapters.js +349 -0
  579. package/dist/sdk/usage/limits/capture.d.ts +8 -0
  580. package/dist/sdk/usage/limits/capture.js +47 -0
  581. package/dist/sdk/usage/limits/http.d.ts +12 -0
  582. package/dist/sdk/usage/limits/http.js +51 -0
  583. package/dist/sdk/usage/limits/normalize.d.ts +15 -0
  584. package/dist/sdk/usage/limits/normalize.js +211 -0
  585. package/dist/sdk/usage/limits/service.d.ts +30 -0
  586. package/dist/sdk/usage/limits/service.js +176 -0
  587. package/dist/sdk/usage/limits/types.d.ts +65 -0
  588. package/dist/sdk/usage/limits/types.js +1 -0
  589. package/dist/sdk/usage/serverMethods.d.ts +3 -0
  590. package/dist/sdk/usage/serverMethods.js +22 -0
  591. package/dist/sdk/usage/service.d.ts +32 -0
  592. package/dist/sdk/usage/service.js +66 -0
  593. package/dist/sdk/usage/settings.d.ts +7 -0
  594. package/dist/sdk/usage/settings.js +28 -0
  595. package/dist/sdk/usage/types.d.ts +60 -0
  596. package/dist/sdk/usage/types.js +4 -0
  597. package/dist/sdk/variant/components.d.ts +34 -0
  598. package/dist/sdk/variant/components.js +230 -0
  599. package/dist/sdk/variant/materialise.d.ts +66 -0
  600. package/dist/sdk/variant/materialise.js +81 -0
  601. package/dist/sdk/variant/migrate.d.ts +4 -0
  602. package/dist/sdk/variant/migrate.js +41 -0
  603. package/dist/sdk/variant/seed.d.ts +20 -0
  604. package/dist/sdk/variant/seed.js +116 -0
  605. package/dist/sdk/variant/store.d.ts +114 -0
  606. package/dist/sdk/variant/store.js +256 -0
  607. package/dist/sdk/variant/surface.d.ts +56 -0
  608. package/dist/sdk/variant/surface.js +81 -0
  609. package/dist/sdk/variant/trust.d.ts +27 -0
  610. package/dist/sdk/variant/trust.js +64 -0
  611. package/dist/sdk/variant/variant.d.ts +71 -0
  612. package/dist/sdk/variant/variant.js +331 -0
  613. package/dist/sdk/web/markdown.d.ts +10 -0
  614. package/dist/sdk/web/markdown.js +66 -0
  615. package/dist/sdk/web/part.d.ts +10 -0
  616. package/dist/sdk/web/part.js +6 -0
  617. package/dist/sdk/web/safeRequest.d.ts +34 -0
  618. package/dist/sdk/web/safeRequest.js +175 -0
  619. package/dist/sdk/web/search.d.ts +53 -0
  620. package/dist/sdk/web/search.js +168 -0
  621. package/dist/sdk/web/serverMethods.d.ts +3 -0
  622. package/dist/sdk/web/serverMethods.js +7 -0
  623. package/dist/sdk/web/text.d.ts +2 -0
  624. package/dist/sdk/web/text.js +7 -0
  625. package/dist/sdk/web/tools.d.ts +22 -0
  626. package/dist/sdk/web/tools.js +195 -0
  627. package/dist/sdk/web/turndown-plugin-gfm.d.ts +4 -0
  628. package/dist/sdk/wiki/notes.d.ts +68 -0
  629. package/dist/sdk/wiki/notes.js +297 -0
  630. package/dist/sdk/wiki/serverMethods.d.ts +3 -0
  631. package/dist/sdk/wiki/serverMethods.js +26 -0
  632. package/dist/sdk/worktrees/cli.d.ts +11 -0
  633. package/dist/sdk/worktrees/cli.js +146 -0
  634. package/dist/sdk/worktrees/copy.d.ts +9 -0
  635. package/dist/sdk/worktrees/copy.js +111 -0
  636. package/dist/sdk/worktrees/git.d.ts +18 -0
  637. package/dist/sdk/worktrees/git.js +89 -0
  638. package/dist/sdk/worktrees/serverMethods.d.ts +3 -0
  639. package/dist/sdk/worktrees/serverMethods.js +30 -0
  640. package/dist/sdk/worktrees/service.d.ts +73 -0
  641. package/dist/sdk/worktrees/service.js +483 -0
  642. package/dist/sdk/worktrees/setup.d.ts +23 -0
  643. package/dist/sdk/worktrees/setup.js +65 -0
  644. package/dist/sdk/worktrees/snapshot.d.ts +16 -0
  645. package/dist/sdk/worktrees/snapshot.js +83 -0
  646. package/dist/sdk/worktrees/types.d.ts +91 -0
  647. package/dist/sdk/worktrees/types.js +1 -0
  648. package/dist/sdk/world/actions.d.ts +23 -0
  649. package/dist/sdk/world/actions.js +31 -0
  650. package/dist/sdk/world/cli.d.ts +12 -0
  651. package/dist/sdk/world/cli.js +166 -0
  652. package/dist/sdk/world/images.d.ts +20 -0
  653. package/dist/sdk/world/images.js +48 -0
  654. package/dist/sdk/world/untrusted.d.ts +12 -0
  655. package/dist/sdk/world/untrusted.js +20 -0
  656. package/dist/sdk/world/world.d.ts +75 -0
  657. package/dist/sdk/world/world.js +117 -0
  658. package/dist/terminal-opentui.js +30986 -0
  659. package/dist/terminal-pi.js +3008 -610
  660. package/docs/README.md +45 -1
  661. package/docs/architecture/00-overview.md +171 -0
  662. package/docs/architecture/01-extension-points.md +78 -0
  663. package/docs/architecture/02-sessions-and-runs.md +505 -0
  664. package/docs/architecture/03-variants.md +122 -0
  665. package/docs/architecture/04-prompt.md +277 -0
  666. package/docs/architecture/05-refinement.md +134 -0
  667. package/docs/architecture/06-plugins-and-capabilities.md +208 -0
  668. package/docs/architecture/07-tools-and-gate.md +245 -0
  669. package/docs/architecture/08-memory-and-history.md +100 -0
  670. package/docs/architecture/09-accounts-and-connectors.md +153 -0
  671. package/docs/architecture/10-server-protocol.md +403 -0
  672. package/docs/architecture/11-terminal.md +555 -0
  673. package/docs/architecture/12-storage.md +118 -0
  674. package/docs/architecture/13-world-tools.md +114 -0
  675. package/docs/architecture/14-surfaces-and-parity.md +151 -0
  676. package/docs/architecture/15-remote-control.md +120 -0
  677. package/docs/architecture/README.md +143 -0
  678. package/docs/architecture/proposals/PROP-0001-reporting-section.md +106 -0
  679. package/docs/architecture/proposals/PROP-0002-retain-rollout-workspaces.md +104 -0
  680. package/docs/architecture/proposals/PROP-0003-executor-settings.md +81 -0
  681. package/docs/architecture/proposals/PROP-0004-flexible-reporting-guidance.md +71 -0
  682. package/docs/architecture/proposals/PROP-0005-xharness-cli-name.md +78 -0
  683. package/docs/architecture/proposals/PROP-0006-run-checklist.md +72 -0
  684. package/docs/architecture/proposals/PROP-0007-run-continuation.md +80 -0
  685. package/docs/architecture/proposals/PROP-0008-lessons-from-runs.md +80 -0
  686. package/docs/architecture/proposals/PROP-0009-foundation-and-variants.md +78 -0
  687. package/docs/architecture/proposals/PROP-0010-session-names.md +73 -0
  688. package/docs/architecture/proposals/PROP-0011-doctor.md +63 -0
  689. package/docs/architecture/proposals/PROP-0012-release-baseline.md +56 -0
  690. package/docs/architecture/proposals/PROP-0013-resource-browser.md +58 -0
  691. package/docs/architecture/proposals/PROP-0014-fullscreen-browser-tabs.md +58 -0
  692. package/docs/architecture/proposals/PROP-0015-one-capability-surface.md +88 -0
  693. package/docs/architecture/proposals/PROP-0016-managed-worktrees.md +156 -0
  694. package/docs/architecture/proposals/PROP-0017-page-annotations.md +131 -0
  695. package/docs/architecture/proposals/PROP-0018-annotation-queue-and-app-targets.md +183 -0
  696. package/docs/architecture/proposals/PROP-0019-contextual-side-questions.md +122 -0
  697. package/docs/architecture/proposals/PROP-0020-builtin-feature-plugins.md +105 -0
  698. package/docs/architecture/proposals/PROP-0021-command-namespaces-and-duplicates.md +99 -0
  699. package/docs/architecture/proposals/PROP-0022-plan-only-questions.md +102 -0
  700. package/docs/architecture/proposals/PROP-0023-xagent-cli-name.md +61 -0
  701. package/docs/architecture/proposals/PROP-0024-question-sketch-previews.md +130 -0
  702. package/docs/architecture/proposals/PROP-0025-contextual-question-wireframes.md +49 -0
  703. package/docs/architecture/proposals/PROP-0026-connected-sketch-display.md +96 -0
  704. package/docs/architecture/proposals/PROP-0027-xingular-agent-product-identity.md +60 -0
  705. package/docs/architecture/proposals/PROP-0028-normalize-question-wireframes.md +55 -0
  706. package/docs/architecture/proposals/PROP-0029-agent-profiles.md +124 -0
  707. package/docs/architecture/proposals/PROP-0030-subagent-title.md +86 -0
  708. package/docs/architecture/proposals/PROP-0031-plugin-command-owner-namespaces.md +54 -0
  709. package/docs/architecture/proposals/PROP-0032-planning-quality.md +196 -0
  710. package/docs/architecture/proposals/PROP-0033-compaction-plan-checkpoints.md +75 -0
  711. package/docs/architecture/proposals/PROP-0034-conversation-fast-mode.md +120 -0
  712. package/docs/architecture/proposals/PROP-0035-retain-subagent-status.md +47 -0
  713. package/docs/architecture/proposals/PROP-0036-first-class-harness-commands.md +59 -0
  714. package/docs/architecture/proposals/PROP-0037-workspace-write-boundary.md +63 -0
  715. package/docs/architecture/proposals/PROP-0038-annotate-open-shadow-roots.md +73 -0
  716. package/docs/architecture/proposals/PROP-0039-workspace-boundary-hardening.md +139 -0
  717. package/docs/architecture/proposals/PROP-0040-one-launch-path.md +87 -0
  718. package/docs/architecture/proposals/PROP-0041-bounded-work-slices.md +260 -0
  719. package/docs/architecture/proposals/PROP-0042-usage-and-provider-limits.md +127 -0
  720. package/docs/architecture/proposals/PROP-0043-read-only-plan-bash.md +74 -0
  721. package/docs/architecture/proposals/PROP-0044-work-slice-defaults.md +93 -0
  722. package/docs/architecture/proposals/PROP-0045-rename-checklist-to-todo.md +132 -0
  723. package/docs/architecture/proposals/PROP-0046-progress-aware-stall-guards.md +82 -0
  724. package/docs/architecture/proposals/PROP-0047-plugins-hub-separation.md +122 -0
  725. package/docs/architecture/proposals/PROP-0048-simple-annotate.md +85 -0
  726. package/docs/architecture/proposals/PROP-0049-context-attribution.md +415 -0
  727. package/docs/architecture/proposals/PROP-0050-run-stop-codes-and-refusals.md +30 -0
  728. package/docs/architecture/proposals/PROP-0051-unfinished-run-handoff.md +110 -0
  729. package/docs/architecture/proposals/PROP-0052-terminal-refine-and-variant-switch.md +111 -0
  730. package/docs/architecture/proposals/README.md +123 -0
  731. package/docs/decisions/ADR-0001-owned-terminal.md +10 -3
  732. package/docs/decisions/ADR-0003-shared-asynchronous-subagents.md +3 -1
  733. package/docs/decisions/ADR-0004-fullscreen-terminal-layout.md +3 -2
  734. package/docs/decisions/ADR-0006-opentui-only-terminal.md +47 -0
  735. package/docs/decisions/ADR-0007-reporting-section.md +33 -0
  736. package/docs/decisions/ADR-0008-flexible-reporting-guidance.md +41 -0
  737. package/docs/decisions/ADR-0009-xharness-command.md +39 -0
  738. package/docs/decisions/ADR-0010-lessons-in-the-wiki.md +31 -0
  739. package/docs/decisions/ADR-0011-foundation-and-variants.md +28 -0
  740. package/docs/decisions/ADR-0012-native-session-names.md +34 -0
  741. package/docs/decisions/ADR-0013-doctor.md +27 -0
  742. package/docs/decisions/ADR-0014-public-release-baseline.md +22 -0
  743. package/docs/decisions/ADR-0015-resource-browser.md +28 -0
  744. package/docs/decisions/ADR-0016-fullscreen-browser-tabs.md +31 -0
  745. package/docs/decisions/ADR-0017-one-capability-surface.md +34 -0
  746. package/docs/decisions/ADR-0018-builtin-feature-plugins.md +35 -0
  747. package/docs/decisions/ADR-0019-managed-git-worktrees.md +31 -0
  748. package/docs/decisions/ADR-0020-page-annotations.md +37 -0
  749. package/docs/decisions/ADR-0021-required-command-namespaces.md +40 -0
  750. package/docs/decisions/ADR-0022-plan-only-question-tools.md +34 -0
  751. package/docs/decisions/ADR-0023-contextual-side-question-runs.md +35 -0
  752. package/docs/decisions/ADR-0024-xagent-command.md +40 -0
  753. package/docs/decisions/ADR-0025-question-choice-sketches.md +49 -0
  754. package/docs/decisions/ADR-0026-contextual-question-wireframes.md +58 -0
  755. package/docs/decisions/ADR-0027-connected-sketch-display.md +62 -0
  756. package/docs/decisions/ADR-0028-xingular-agent-product-identity.md +56 -0
  757. package/docs/decisions/ADR-0029-normalized-question-wireframe-borders.md +33 -0
  758. package/docs/decisions/ADR-0030-agent-profiles.md +43 -0
  759. package/docs/decisions/ADR-0031-plugin-command-owner-namespaces.md +37 -0
  760. package/docs/decisions/ADR-0032-compaction-run-checkpoints.md +35 -0
  761. package/docs/decisions/ADR-0033-plan-mode-research-delegation.md +47 -0
  762. package/docs/decisions/ADR-0034-first-class-harness-terminal-commands.md +25 -0
  763. package/docs/decisions/ADR-0035-one-launch-path.md +40 -0
  764. package/docs/decisions/ADR-0036-workspace-write-operation-boundary.md +54 -0
  765. package/docs/decisions/ADR-0037-usage-ledger-and-provider-limits.md +44 -0
  766. package/docs/decisions/ADR-0038-plan-bash-os-read-only.md +29 -0
  767. package/docs/decisions/ADR-0039-progress-aware-stall-guards.md +43 -0
  768. package/docs/decisions/ADR-0040-architecture-change-workflow.md +31 -0
  769. package/docs/decisions/ADR-0041-plugins-hub-separation.md +41 -0
  770. package/docs/decisions/ADR-0042-windows-shell-without-sandbox.md +40 -0
  771. package/docs/decisions/ADR-0043-parents-continue-stopped-subagents.md +49 -0
  772. package/docs/decisions/ADR-0044-annotations-pending-or-sent.md +24 -0
  773. package/docs/decisions/ADR-0045-default-plugin-authoring-skill.md +9 -0
  774. package/docs/decisions/ADR-0046-hash-bound-plugin-proposals.md +20 -0
  775. package/docs/decisions/ADR-0047-links-open-with-the-os-handler.md +47 -0
  776. package/docs/decisions/ADR-0048-required-skills-from-a-message.md +42 -0
  777. package/docs/decisions/ADR-0050-approved-window-screenshots.md +19 -0
  778. package/docs/decisions/ADR-0051-terminal-decision-wait.md +10 -0
  779. package/docs/decisions/ADR-0052-per-profile-subagent-budgets.md +25 -0
  780. package/docs/decisions/ADR-0053-no-repeated-work-guard.md +45 -0
  781. package/docs/decisions/ADR-0054-terminal-reply-heartbeat-and-stall.md +52 -0
  782. package/docs/decisions/ADR-0055-plan-output-repair.md +51 -0
  783. package/docs/decisions/ADR-0056-remote-control.md +53 -0
  784. package/docs/decisions/ADR-0057-structured-plan-outcomes.md +39 -0
  785. package/docs/decisions/ADR-0058-ask-user-only-plan-clarification.md +36 -0
  786. package/docs/decisions/ADR-0059-run-diagnostic-evidence.md +35 -0
  787. package/docs/decisions/ADR-0060-approvals-are-controls.md +40 -0
  788. package/docs/decisions/ADR-0061-strict-plugin-command-namespaces.md +41 -0
  789. package/docs/decisions/ADR-0062-shared-account-state.md +67 -0
  790. package/docs/decisions/ADR-0063-unfinished-work-handoffs.md +34 -0
  791. package/docs/decisions/ADR-0064-account-model-fallback-on-resume.md +79 -0
  792. package/docs/decisions/ADR-0065-variant-switch-at-turn-boundaries.md +31 -0
  793. package/docs/decisions/ADR-0066-guided-refinement-from-turn-snapshots.md +37 -0
  794. package/docs/decisions/ADR-0067-cache-stable-compaction-checkpoint.md +54 -0
  795. package/docs/decisions/ADR-0068-scope-and-completion-report.md +60 -0
  796. package/docs/decisions/ADR-0069-stop-gate-and-finish.md +136 -0
  797. package/docs/decisions/ADR-0070-terminal-slice-continuation.md +49 -0
  798. package/docs/decisions/ADR-0071-completion-check.md +104 -0
  799. package/docs/decisions/ADR-0072-codex-prompts-and-goal.md +108 -0
  800. package/docs/decisions/ADR-0073-large-reporting-prompt.md +89 -0
  801. package/docs/decisions/ADR-0074-report-content-not-report-blocks.md +90 -0
  802. package/docs/decisions/ADR-0075-no-todo-gate.md +84 -0
  803. package/docs/decisions/ADR-0076-codex-final-answer-verbatim.md +98 -0
  804. package/docs/decisions/ADR-0077-plan-runs-may-conclude-no-plan-needed.md +120 -0
  805. package/docs/decisions/ADR-0078-child-aware-stall-watch.md +46 -0
  806. package/docs/decisions/ADR-0079-phase-led-reporting-guidance.md +72 -0
  807. package/docs/decisions/ADR-0080-fixed-width-question-sketch-canvas.md +50 -0
  808. package/docs/decisions/ADR-0081-no-work-slice-budget-by-default.md +36 -0
  809. package/docs/decisions/ADR-0082-connected-brave-browser.md +72 -0
  810. package/docs/decisions/ADR-0083-one-live-session-runtime.md +256 -0
  811. package/docs/doctor.md +95 -0
  812. package/docs/experiments/EXP-0001-terminal-input-latency/plan.md +81 -0
  813. package/docs/experiments/EXP-0001-terminal-input-latency/results.md +46 -0
  814. package/docs/experiments/EXP-0002-opentui-typing-latency/plan.md +70 -0
  815. package/docs/experiments/EXP-0002-opentui-typing-latency/results.md +92 -0
  816. package/docs/experiments/EXP-0003-performance-audit/data/session-runtime-replication.json +420 -0
  817. package/docs/experiments/EXP-0003-performance-audit/data/session-runtime.json +420 -0
  818. package/docs/experiments/EXP-0003-performance-audit/data/terminal-compact.json +376 -0
  819. package/docs/experiments/EXP-0003-performance-audit/data/terminal-history.json +422 -0
  820. package/docs/experiments/EXP-0003-performance-audit/data/terminal-question.json +95 -0
  821. package/docs/experiments/EXP-0003-performance-audit/data/terminal-wide.json +1036 -0
  822. package/docs/experiments/EXP-0003-performance-audit/plan.md +109 -0
  823. package/docs/experiments/EXP-0003-performance-audit/results.md +151 -0
  824. package/docs/features/README.md +46 -0
  825. package/docs/features/automations/README.md +41 -0
  826. package/docs/features/cores/README.md +39 -0
  827. package/docs/features/google-harness2/README.md +52 -0
  828. package/docs/features/integrations/README.md +40 -0
  829. package/docs/features/interfaces/README.md +29 -0
  830. package/docs/features/memory/README.md +28 -0
  831. package/docs/future-work.md +48 -0
  832. package/docs/handoff-2026-10-25-app-parity-and-solo-tabs.md +202 -0
  833. package/docs/parity.md +158 -0
  834. package/docs/releases/1.0.0.md +40 -0
  835. package/docs/releases/1.1.1.md +28 -0
  836. package/docs/releases/1.2.0.md +49 -0
  837. package/docs/releases/1.3.0.md +21 -0
  838. package/docs/releases/1.3.1-unstable.1.md +8 -0
  839. package/docs/releases/1.3.1-unstable.2.md +11 -0
  840. package/docs/releases/1.3.1-unstable.3.md +54 -0
  841. package/docs/releases/1.3.1-unstable.4.md +56 -0
  842. package/docs/releases/1.3.1-unstable.5.md +53 -0
  843. package/docs/releases/1.3.1-unstable.6.md +31 -0
  844. package/docs/releases/1.3.1-unstable.7.md +17 -0
  845. package/docs/releases/1.3.1-unstable.8.md +19 -0
  846. package/docs/releases/1.3.1-unstable.9.md +54 -0
  847. package/docs/releases/1.4.0-unstable.md +25 -0
  848. package/docs/releases/1.5.0-unstable.md +32 -0
  849. package/docs/releases/1.5.1-unstable.md +24 -0
  850. package/docs/releases/1.6.0-unstable.md +59 -0
  851. package/docs/releases/2.0.1-unstable.md +63 -0
  852. package/docs/releases/4.0.0.md +47 -0
  853. package/docs/releases/README.md +49 -0
  854. package/docs/study/00-index.md +112 -0
  855. package/docs/study/STUDY-0003-long-horizon-runs.md +210 -0
  856. package/docs/study/STUDY-0004-turn-end-controls.md +130 -0
  857. package/docs/study/STUDY-0005-skill-installation-guidance.md +146 -0
  858. package/docs/study/STUDY-0006-reporting-prompts.md +119 -0
  859. package/docs/study/STUDY-0007-claude-code-prompt.md +162 -0
  860. package/docs/study/STUDY-0008-browser-control.md +281 -0
  861. package/docs/study/STUDY-0009-claude-code-reporting.md +205 -0
  862. package/docs/study/arms/00-matrix.md +20 -0
  863. package/docs/study/arms/01-system-prompt.md +211 -0
  864. package/docs/study/arms/02-tools.md +79 -0
  865. package/docs/study/arms/03-subagents.md +90 -0
  866. package/docs/study/arms/04-skills.md +81 -0
  867. package/docs/study/arms/05-context-management.md +90 -0
  868. package/docs/study/arms/06-memory.md +90 -0
  869. package/docs/study/arms/07-governance.md +71 -0
  870. package/docs/study/arms/08-execution.md +69 -0
  871. package/docs/study/arms/09-observability.md +60 -0
  872. package/docs/study/arms/10-refinement.md +110 -0
  873. package/docs/study/autonomous-engineering-sources.md +277 -0
  874. package/docs/study/autonomy-sources.md +147 -0
  875. package/docs/study/btw-comparison.md +37 -0
  876. package/docs/study/feature-gap-review.md +42 -0
  877. package/docs/study/insights.md +123 -0
  878. package/docs/study/proactive-autonomy.md +408 -0
  879. package/docs/study/roadmap.md +72 -0
  880. package/docs/study/sources/claude-code.md +56 -0
  881. package/docs/study/sources/deepseek-harness.md +102 -0
  882. package/docs/study/sources/harness2.md +50 -0
  883. package/docs/study/sources/kimi-cli.md +42 -0
  884. package/docs/study/sources/omp.md +93 -0
  885. package/docs/study/sources/opencode.md +43 -0
  886. package/docs/study/sources/openhands.md +46 -0
  887. package/docs/study/sources/smolagents.md +40 -0
  888. package/docs/study/sources/swe-agent.md +34 -0
  889. package/docs/study/tui-resource-browser.md +78 -0
  890. package/docs/system-prompt-design.md +196 -0
  891. package/docs/terminal-tui.md +887 -109
  892. package/package.json +46 -13
  893. package/src/accounts/accounts.test.ts +0 -419
  894. package/src/accounts/accounts.ts +0 -760
  895. package/src/accounts/env.test.ts +0 -95
  896. package/src/accounts/env.ts +0 -338
  897. package/src/accounts/secrets.ts +0 -50
  898. package/src/accounts/store.ts +0 -338
  899. package/src/capabilities/api.ts +0 -75
  900. package/src/capabilities/runSnapshot.ts +0 -59
  901. package/src/capabilities/types.ts +0 -34
  902. package/src/cli.ts +0 -118
  903. package/src/core/bus.test.ts +0 -22
  904. package/src/core/bus.ts +0 -49
  905. package/src/core/changes.ts +0 -33
  906. package/src/core/env.ts +0 -27
  907. package/src/core/errors.ts +0 -32
  908. package/src/core/frontmatter.ts +0 -47
  909. package/src/core/fs.test.ts +0 -38
  910. package/src/core/fs.ts +0 -92
  911. package/src/core/index.ts +0 -193
  912. package/src/core/path.test.ts +0 -14
  913. package/src/core/path.ts +0 -79
  914. package/src/core/projects.ts +0 -90
  915. package/src/core/text.ts +0 -39
  916. package/src/harness.ts +0 -322
  917. package/src/hub/catalog.json +0 -123
  918. package/src/hub/cli.ts +0 -59
  919. package/src/hub/hub.test.ts +0 -205
  920. package/src/hub/hub.ts +0 -256
  921. package/src/hub/schema.ts +0 -81
  922. package/src/index.ts +0 -80
  923. package/src/mcp/connections.ts +0 -641
  924. package/src/mcp/manager.ts +0 -130
  925. package/src/mcp/oauth.ts +0 -195
  926. package/src/mcp/scopeMigration.test.ts +0 -79
  927. package/src/mcp/scopeMigration.ts +0 -204
  928. package/src/mcp/service.test.ts +0 -422
  929. package/src/mcp/service.ts +0 -560
  930. package/src/mcp/types.ts +0 -118
  931. package/src/memory/api.test.ts +0 -82
  932. package/src/memory/api.ts +0 -303
  933. package/src/memory/blocks.test.ts +0 -78
  934. package/src/memory/blocks.ts +0 -408
  935. package/src/memory/caller.ts +0 -69
  936. package/src/memory/curation.test.ts +0 -206
  937. package/src/memory/curation.ts +0 -64
  938. package/src/memory/dispatch.ts +0 -64
  939. package/src/memory/facts.test.ts +0 -41
  940. package/src/memory/facts.ts +0 -248
  941. package/src/memory/graph.ts +0 -103
  942. package/src/memory/health.test.ts +0 -130
  943. package/src/memory/health.ts +0 -74
  944. package/src/memory/maintainer.ts +0 -272
  945. package/src/memory/maintenance.test.ts +0 -192
  946. package/src/memory/maintenance.ts +0 -679
  947. package/src/memory/migrate.ts +0 -79
  948. package/src/memory/operations.ts +0 -150
  949. package/src/memory/proposals.test.ts +0 -168
  950. package/src/memory/proposals.ts +0 -584
  951. package/src/memory/recall.test.ts +0 -115
  952. package/src/memory/recall.ts +0 -279
  953. package/src/memory/references.ts +0 -77
  954. package/src/memory/runContext.ts +0 -93
  955. package/src/memory/secrets.ts +0 -6
  956. package/src/memory/store.test.ts +0 -66
  957. package/src/memory/store.ts +0 -385
  958. package/src/memory/trajectory.test.ts +0 -178
  959. package/src/memory/trajectory.ts +0 -220
  960. package/src/memory/wiki.test.ts +0 -47
  961. package/src/memory/wiki.ts +0 -423
  962. package/src/memory/wikiIndex.test.ts +0 -88
  963. package/src/memory/wikiIndex.ts +0 -117
  964. package/src/plugins/api.ts +0 -181
  965. package/src/plugins/attachments.test.ts +0 -84
  966. package/src/plugins/attachments.ts +0 -141
  967. package/src/plugins/builtin.ts +0 -84
  968. package/src/plugins/catalogue.test.ts +0 -254
  969. package/src/plugins/catalogue.ts +0 -251
  970. package/src/plugins/cli.ts +0 -184
  971. package/src/plugins/discover.ts +0 -151
  972. package/src/plugins/firstParty.test.ts +0 -143
  973. package/src/plugins/firstParty.ts +0 -129
  974. package/src/plugins/hooks.test.ts +0 -250
  975. package/src/plugins/hooks.ts +0 -239
  976. package/src/plugins/identity.ts +0 -37
  977. package/src/plugins/install.test.ts +0 -107
  978. package/src/plugins/install.ts +0 -106
  979. package/src/plugins/inventory.ts +0 -123
  980. package/src/plugins/manifest.ts +0 -76
  981. package/src/plugins/plugins.test.ts +0 -205
  982. package/src/plugins/plugins.ts +0 -189
  983. package/src/plugins/proposal.ts +0 -121
  984. package/src/plugins/runtime.test.ts +0 -40
  985. package/src/plugins/runtime.ts +0 -82
  986. package/src/plugins/trust.ts +0 -142
  987. package/src/plugins/types.ts +0 -149
  988. package/src/prompt/compile.test.ts +0 -261
  989. package/src/prompt/compile.ts +0 -732
  990. package/src/server/methods.ts +0 -355
  991. package/src/server/remote.ts +0 -77
  992. package/src/server/rpc.ts +0 -116
  993. package/src/server/serve.ts +0 -28
  994. package/src/server/server.test.ts +0 -193
  995. package/src/sessions/approvals.test.ts +0 -49
  996. package/src/sessions/approvals.ts +0 -140
  997. package/src/sessions/contracts.ts +0 -336
  998. package/src/sessions/conversation.test.ts +0 -233
  999. package/src/sessions/extensionSession.test.ts +0 -74
  1000. package/src/sessions/extensionUi.test.ts +0 -65
  1001. package/src/sessions/extensionUi.ts +0 -102
  1002. package/src/sessions/history.ts +0 -51
  1003. package/src/sessions/lineageJoin.ts +0 -75
  1004. package/src/sessions/policy.ts +0 -36
  1005. package/src/sessions/pricing.ts +0 -60
  1006. package/src/sessions/questionBatches.test.ts +0 -110
  1007. package/src/sessions/reasoningSummaries.ts +0 -59
  1008. package/src/sessions/registry.ts +0 -412
  1009. package/src/sessions/runIndex.ts +0 -99
  1010. package/src/sessions/runStore.test.ts +0 -152
  1011. package/src/sessions/runStore.ts +0 -346
  1012. package/src/sessions/runner.ts +0 -610
  1013. package/src/sessions/runtimeResources.test.ts +0 -61
  1014. package/src/sessions/sessions.test.ts +0 -588
  1015. package/src/sessions/sessions.ts +0 -331
  1016. package/src/sessions/subagentService.test.ts +0 -159
  1017. package/src/sessions/subagentService.ts +0 -236
  1018. package/src/sessions/subagents.ts +0 -97
  1019. package/src/skills/registry.test.ts +0 -104
  1020. package/src/skills/registry.ts +0 -413
  1021. package/src/terminal/accountsMenu.test.ts +0 -225
  1022. package/src/terminal/accountsMenu.ts +0 -382
  1023. package/src/terminal/cli.ts +0 -149
  1024. package/src/terminal/client.ts +0 -74
  1025. package/src/terminal/control.test.ts +0 -23
  1026. package/src/terminal/control.ts +0 -23
  1027. package/src/terminal/controller.ts +0 -354
  1028. package/src/terminal/hubMenu.ts +0 -24
  1029. package/src/terminal/launch.test.ts +0 -25
  1030. package/src/terminal/launch.ts +0 -48
  1031. package/src/terminal/piExtension.lifecycle.test.ts +0 -55
  1032. package/src/terminal/piExtension.ts +0 -295
  1033. package/src/terminal/pluginControl.test.ts +0 -146
  1034. package/src/terminal/pluginMenu.ts +0 -112
  1035. package/src/terminal/socket.test.ts +0 -94
  1036. package/src/terminal/socket.ts +0 -256
  1037. package/src/terminal/standalone.test.ts +0 -167
  1038. package/src/terminal/standalone.ts +0 -165
  1039. package/src/terminal/terminal.test.ts +0 -534
  1040. package/src/terminal/terminals.ts +0 -661
  1041. package/src/terminal/trajectory.test.ts +0 -66
  1042. package/src/terminal/trajectory.ts +0 -44
  1043. package/src/terminal/tui/application.test.ts +0 -290
  1044. package/src/terminal/tui/application.ts +0 -653
  1045. package/src/terminal/tui/commands.test.ts +0 -278
  1046. package/src/terminal/tui/commands.ts +0 -443
  1047. package/src/terminal/tui/dialogs.ts +0 -301
  1048. package/src/terminal/tui/editor.test.ts +0 -113
  1049. package/src/terminal/tui/editor.ts +0 -109
  1050. package/src/terminal/tui/keybindings.test.ts +0 -30
  1051. package/src/terminal/tui/keybindings.ts +0 -59
  1052. package/src/terminal/tui/piAdapter.ts +0 -62
  1053. package/src/terminal/tui/planMode.test.ts +0 -10
  1054. package/src/terminal/tui/planMode.ts +0 -12
  1055. package/src/terminal/tui/presentation.test.ts +0 -79
  1056. package/src/terminal/tui/questions.test.ts +0 -41
  1057. package/src/terminal/tui/questions.ts +0 -47
  1058. package/src/terminal/tui/runtime.socket.test.ts +0 -178
  1059. package/src/terminal/tui/runtime.test.ts +0 -225
  1060. package/src/terminal/tui/runtime.ts +0 -403
  1061. package/src/terminal/tui/screen.test.ts +0 -143
  1062. package/src/terminal/tui/screen.ts +0 -121
  1063. package/src/terminal/tui/sessionUi.ts +0 -24
  1064. package/src/terminal/tui/settings.test.ts +0 -150
  1065. package/src/terminal/tui/settings.ts +0 -188
  1066. package/src/terminal/tui/skillInvocation.test.ts +0 -71
  1067. package/src/terminal/tui/skillInvocation.ts +0 -51
  1068. package/src/terminal/tui/status.test.ts +0 -48
  1069. package/src/terminal/tui/status.ts +0 -82
  1070. package/src/terminal/tui/theme.ts +0 -185
  1071. package/src/terminal/tui/tools.test.ts +0 -145
  1072. package/src/terminal/tui/tools.ts +0 -142
  1073. package/src/terminal/tui/trajectoryPanel.test.ts +0 -99
  1074. package/src/terminal/tui/trajectoryPanel.ts +0 -226
  1075. package/src/terminal/tui/transcript.test.ts +0 -39
  1076. package/src/terminal/tui/transcript.ts +0 -135
  1077. package/src/terminal/tui/ui.test.ts +0 -313
  1078. package/src/terminal/tui/ui.ts +0 -166
  1079. package/src/terminal/tui/welcome.ts +0 -102
  1080. package/src/terminal/tui/workingStatus.test.ts +0 -44
  1081. package/src/terminal/tui/workingStatus.ts +0 -238
  1082. package/src/tools/askUser.test.ts +0 -69
  1083. package/src/tools/askUser.ts +0 -59
  1084. package/src/tools/definitions.ts +0 -228
  1085. package/src/tools/maintenance.ts +0 -29
  1086. package/src/tools/memoryTools.ts +0 -22
  1087. package/src/tools/pluginPropose.ts +0 -41
  1088. package/src/tools/registryWrite.test.ts +0 -101
  1089. package/src/tools/registryWrite.ts +0 -182
  1090. package/src/tools/spawnSubagent.ts +0 -47
  1091. package/src/tools/types.ts +0 -41
  1092. package/src/web/safeRequest.ts +0 -171
  1093. package/src/web/text.ts +0 -53
  1094. package/src/web/tools.ts +0 -134
  1095. package/src/web/web.test.ts +0 -141
@@ -0,0 +1,108 @@
1
+ ---
2
+ id: ADR-0072
3
+ title: Codex's prompts and /goal; the completion check moves behind /goal
4
+ status: accepted
5
+ created: 2026-11-01
6
+ updated: 2026-11-01
7
+ supersedes: partial — ADR-0071 ("every reply is checked", "there is no /goal command"); amends INV-TOOL-9
8
+ related:
9
+ - ADR-0069
10
+ - ADR-0070
11
+ - ADR-0071
12
+ - STUDY-0004
13
+ ---
14
+ # ADR-0072 — Codex's prompts and `/goal`; the completion check moves behind `/goal`
15
+
16
+ > **Amended by [ADR-0075](ADR-0075-no-todo-gate.md):** the todo gate is removed, so ordinary replies
17
+ > rely on the prompt alone. The goal loop and its completion claim check stay.
18
+
19
+ ## Context
20
+
21
+ ADR-0071 asked a model to judge, at the end of **every** reply that did work, whether the request was
22
+ done. Run history after it showed what was still wrong and what was not:
23
+
24
+ - In the "dont stop" handoff runs that ended on their own with work left (`62c7fc6c`, `d73804c8`,
25
+ `b3ab2349`) every run still had an open todo item, and the final reply said "not complete" without
26
+ a reason or a next step. The todo gate catches that; the check never ran for them.
27
+ - The check ran once in all history and failed: `sessionCheckModel` sent no session id, and
28
+ opencode-go answered 400 `MissingSessionID`.
29
+ - The person wants the evaluator only for an opt-in, long-running goal, and ordinary requests to
30
+ finish what they can and say plainly what is done, why it stopped and what is next. The person also
31
+ observed that the todo list, written after a short look at the repository, becomes the boundary of
32
+ the work: it is progress, not scope.
33
+
34
+ OpenAI Codex is open source (Apache-2.0). Read at commit 67f0994b53 (2026-10-31):
35
+
36
+ | Part | What Codex does |
37
+ |---|---|
38
+ | An ordinary turn | Ends when the model makes no tool call. No completion check, no plan gate. Completion pressure is prompt text only (gpt-6 "Autonomy and persistence", "When to ask the user for permission", "Compaction does not end the task"). |
39
+ | `update_plan` | Display only and stateless. |
40
+ | `/goal` | No evaluator. The model calls `update_goal(complete \| blocked \| paused)` after a strict audit prompt; the harness starts the next turn whenever the thread is idle and the goal is active. `blocked` needs the same blocker on three consecutive goal turns. Codex's history removed the "no tool call, so stop" rule and elapsed-time text because they made the model shortcut work. |
41
+ | Stop hooks | A hook's continuation is a user-role message, "to match training for turn loops". |
42
+
43
+ ## Decision
44
+
45
+ 1. **Ordinary replies** have no model-judged check. The deterministic todo gate (ADR-0069) stays:
46
+ three nudges, the no-progress rule, and now the text "the list shows progress; it is not the limit
47
+ of the work". Completion pressure is the prompt.
48
+ 2. **The prompt adopts Codex's wording** for a person's own session, as separate stable sections:
49
+ `autonomy`, `permission`, `steering` and `writing` (`src/prompt/standard.ts`), and a longer
50
+ `reporting` section whose first rule is that unfinished work says so on the first line, with the
51
+ reason and the next step. They apply to every model, so the terminal and a host read the same
52
+ text (INV-PAR-1). Left out: text about Codex's own channels and tools, and "do not run tests
53
+ unless asked", which contradicts this harness.
54
+ 3. **The todo list is progress, not scope.** `TODO_GUIDANCE` says the request and any document it
55
+ points to is the scope; list a handoff's steps instead of one "remaining work" item; compare the
56
+ request, not the list, with what is done before ending the turn.
57
+ 4. **`/goal <objective>`** is the person's opt-in long run (terminal command, and `goal` on
58
+ `sessions.run`). The person sets it and the work starts at once. It adopts Codex's:
59
+ - tools `get_goal` and `update_goal` (descriptions and errors verbatim; offered to the model
60
+ only while a goal exists; **there is no `create_goal`**, the person creates goals);
61
+ - prompts `continuation`, `budget_limit` and `objective_updated` (the objective escaped and
62
+ wrapped as data);
63
+ - states `active | paused | blocked | usage_limited | budget_limited | complete`;
64
+ - brakes: three automatic rounds with no activity, three with only failed commands, a provider
65
+ error (`blocked`), a usage-limit error (`usage_limited`);
66
+ - the person's side: `/goal [<objective>|edit|pause|resume|clear]`, a replace confirmation, Esc
67
+ pauses a running goal, a footer label, a provenance message for each change.
68
+ 5. **A completion claim is checked.** `update_goal(complete)` only records a claim. At the next
69
+ settle the same model, at low effort, with a fresh context and no tools, checks the claim against
70
+ the objective and the transcript (Codex's audit: completion is unproven, weak evidence is not
71
+ enough, quote the evidence). `done` completes the goal; `continue` keeps it active with the
72
+ reason; no model, an error or an unreadable answer accepts the claim. This is the only completion
73
+ check in the harness.
74
+ 6. **Caps.** Rounds and hours, not tokens (the harness accounts for time, not a token budget): 30
75
+ rounds or 8 hours by default, `--rounds N --hours H` per goal. At the cap the goal becomes
76
+ `budget_limited` and gets one last round to wrap up (progress, what remains, the next step).
77
+ 7. **INV-TOOL-9 is amended:** the model has no tool that ends or hands off its own work, except
78
+ `update_goal` in a goal the person started, whose `complete` is checked and whose `paused` needs
79
+ the person's word.
80
+ 8. **Server runs.** `sessions.run` takes `goal: { objective, rounds?, hours? }` for a person's own
81
+ top-level run; the run continues in place, and `goalMode` on `run.json` records the objective,
82
+ status, rounds and time. A goal that crosses a work-slice boundary is carried by `continueSlice`.
83
+ In this change a server goal belongs to one run chain; `goal.set | get | clear` as separate
84
+ methods and pause/resume across unrelated runs are left for the App's screen.
85
+ 9. **Also fixed:** `sessionCheckModel` passes the session id, so opencode-go accepts the request.
86
+ `XINGULAR_COMPLETION_CHECK=off` now accepts every goal claim unchecked.
87
+
88
+ ## Consequences
89
+
90
+ - An ordinary reply costs no extra model request. A goal costs one request per completion claim.
91
+ - The stable prefix grows by about 8 to 9 thousand characters (the new sections), once. Starting a
92
+ goal changes the active tools once (the two goal tools), which can cost one cache miss.
93
+ - The goal's continuation prompt is long (about 6.5 thousand characters); it rides as a hidden user
94
+ message in each round, and the claim check skips it.
95
+ - A restored conversation shows its goal as `paused`; nothing resumes by itself.
96
+ - Measure, as ADR-0071 asked: the same handoff prompt on clean copies, three runs per arm (old
97
+ build, new ordinary reply, new `/goal`): tool calls before the reply ends, false "completed"
98
+ lists, permission-question stops, the first line of the final report, claim checks and cost.
99
+
100
+ ## Alternatives considered
101
+
102
+ - **Codex exactly (no evaluator).** Rejected for the goal's `complete`: run history shows models
103
+ marking work done falsely, and a separate fresh-context look at one claim is cheap.
104
+ - **Keep the every-reply check, cheaper model.** Rejected by the person: ordinary requests should
105
+ finish on their own, and no studied harness judges ordinary replies.
106
+ - **A model-created goal (`create_goal`).** Not adopted: it would put a goal tool in every session.
107
+ - **A harness nudge when a reply's own text says work remains.** Rejected by the person for now:
108
+ prompt and the todo gate only.
@@ -0,0 +1,89 @@
1
+ ---
2
+ id: ADR-0073
3
+ title: A large, content-block reporting prompt
4
+ status: superseded
5
+ created: 2026-11-01
6
+ updated: 2026-11-01
7
+ superseded_by: ADR-0074
8
+ supersedes: partial — ADR-0068 (its required headings and fixed-label rule)
9
+ amends: ADR-0008 (flexible headings stand; required content blocks are added)
10
+ related:
11
+ - ADR-0008
12
+ - ADR-0068
13
+ - ADR-0072
14
+ - STUDY-0006
15
+ ---
16
+ # ADR-0073 — A large, content-block reporting prompt
17
+
18
+ > **Superseded by [ADR-0074](ADR-0074-report-content-not-report-blocks.md):** the four required
19
+ > blocks, the "Nothing needed" ending, the five examples and the 18,000-character budget are
20
+ > replaced by content questions, an evidence line, an optional by-hand block and free headings.
21
+
22
+ ## Context
23
+
24
+ The person reading final replies asked for three things the 3,400-character `reporting` section did
25
+ not give: headings that fit the content, a "how to test" block, and a clear next step. A forensic
26
+ pass on run `07974d6e` showed the structured report existed at seq 222, but the section was thin
27
+ enough that a terse follow-up could replace it, and it carried no example of what a good report looks
28
+ like.
29
+
30
+ The peer study in [STUDY-0006](../study/STUDY-0006-reporting-prompts.md) found:
31
+
32
+ - Claude Code leads with the outcome, drops preamble and recap, answers a simple question in one to
33
+ three sentences, and keeps safety-critical detail complete. Its extracted reporting rules name the
34
+ next action, use absolute paths, quote only load-bearing snippets, and treat the final message as
35
+ the report.
36
+ - Codex keeps per-model prompt files of 6.6k–24k characters, so a large reporting section is within
37
+ the norm it sets.
38
+ - Kimi CLI has no final-report shape at all; a large prompt is an authored choice, not a universal
39
+ convention.
40
+
41
+ The old section mandated three headings (`## Beyond what you asked`, `## Differences from the plan`,
42
+ `## What would make this complete`) and no test or next-step block. It had no examples.
43
+
44
+ ## Decision
45
+
46
+ Replace `REPORTING_GUIDANCE` with a ~15.8k-character text in
47
+ [`src/prompt/reporting.ts`](../../src/prompt/reporting.ts), imported by
48
+ [`src/prompt/compile.ts`](../../src/prompt/compile.ts). Raise `REPORTING_BUDGET` to 18,000 so the
49
+ section is never cut, and keep it last in the stable prefix.
50
+
51
+ The text keeps the outcome-first rule and defines **content blocks, not heading names**:
52
+
53
+ - Required for a change: outcome, what changed, how to test, what to do next.
54
+ - Optional when they apply: beyond the request, departures from the plan, unverified or needs a
55
+ person, open questions.
56
+ - Headings are the model's choice. The guidance lists synonyms ("How to test", "Try it", "Verify")
57
+ and says the requirement is the information, not the label.
58
+ - Five worked examples: a small change, a multi-file change with extra work, a blocked change, a
59
+ research answer, and a one-line question. An anti-pattern table and a pre-send checklist follow.
60
+
61
+ "How to test" is required only for a change. It gives numbered steps, exact commands or URLs, the
62
+ expected result, what the agent already ran, and what the person must run. "What to do next" names
63
+ the person's action or says "Nothing needed". Pure research and one-line questions stay short and
64
+ carry no test block.
65
+
66
+ ## Consequences
67
+
68
+ - The stable prefix grows by about 12.4k characters (roughly 3.5k tokens). Every session pays it
69
+ once; the provider cache covers later requests, and the first request after an upgrade misses the
70
+ cache. The cost is measured with real application requests only, under INV-PRM-8.
71
+ - [`src/prompt/compile.test.ts`](../../src/prompt/compile.test.ts) now checks the content blocks,
72
+ the five examples, the size range, and that the section is not cut; the exact old phrases are gone.
73
+ - The spec ([04-prompt.md](../architecture/04-prompt.md)) and the old ADRs are updated; the three
74
+ old headings become examples, not requirements.
75
+ - A shorter or different report shape for one variant is a variant prompt change through refinement,
76
+ not configuration of this section.
77
+
78
+ ## Alternatives
79
+
80
+ - **8k characters, three examples.** Rejected: the person chose the 16k balance for enough rules and
81
+ examples to cover the shapes.
82
+ - **24k characters, eight examples.** Rejected for now: the largest prefix; the 16k text covers the
83
+ five shapes the person named.
84
+ - **Keep the three fixed headings.** Rejected: fixed labels are what made the report rigid, and the
85
+ person asked for headings that fit the content.
86
+ - **Move the examples to a skill.** Rejected: the guidance must shape every reply without a second
87
+ load, and the person asked for the prompt itself to carry the rules and examples.
88
+ - **Always require the test and next blocks, even for a question.** Rejected: the person chose
89
+ changes only, so a one-line question stays one to three sentences.
@@ -0,0 +1,90 @@
1
+ ---
2
+ id: ADR-0074
3
+ title: Report content, not report blocks
4
+ status: superseded
5
+ created: 2026-11-01
6
+ updated: 2026-11-01
7
+ superseded_by: ADR-0076
8
+ supersedes: ADR-0073 (its four required blocks, five examples and 18,000-character budget)
9
+ amends: ADR-0008 (human inspection is the only by-hand block)
10
+ related:
11
+ - ADR-0008
12
+ - ADR-0073
13
+ - STUDY-0006
14
+ ---
15
+ # ADR-0074 — Report content, not report blocks
16
+
17
+ > **Superseded by [ADR-0076](ADR-0076-codex-final-answer-verbatim.md):** the four content
18
+ > questions, the human-check and next-step blocks, the evidence table, the anti-pattern table and
19
+ > the three examples are replaced by Codex's final-answer and technical-communication text.
20
+
21
+ > **Supersedes [ADR-0073](ADR-0073-large-reporting-prompt.md):** the four required blocks, the
22
+ > "Nothing needed" ending and the 18,000-character budget are replaced.
23
+
24
+ ## Context
25
+
26
+ ADR-0073 made a change carry four required blocks — outcome, what changed, how to test, what to do
27
+ next — and put both the agent's own runs and the person's steps inside "how to test". In real
28
+ replies the two merged: a section headed for the person's testing listed `npm run typecheck —
29
+ passed` and `npm test — 212 test files passed`, checks the person was never going to repeat. The
30
+ same guidance required "or say 'Nothing needed'", and replies ended with "Nothing needed next"
31
+ even when the work was complete and visible.
32
+
33
+ Headings also collapsed. The four block names and their synonyms ("How to test", "Test it", "Try
34
+ it", "Verify") gave the model one vocabulary, so unrelated work — a document, a diagnosis, a
35
+ publish — arrived under "What changed / How to check / Next step".
36
+
37
+ The person asked for three things: a by-hand section for checks only a person can make (a screen,
38
+ a sign-in, a diff or PR, a publish), no filler ending, and headings that follow the content. The
39
+ earlier design already had the principle: ADR-0008 made **Need human inspection** optional and said
40
+ not to use it "for checks already performed or generic risks". ADR-0073 folded that block into the
41
+ required set and lost the distinction.
42
+
43
+ ## Decision
44
+
45
+ Replace `REPORTING_GUIDANCE` in [`src/prompt/reporting.ts`](../../src/prompt/reporting.ts) with a
46
+ ~8.9k-character text (about 2.1k o200k tokens) that defines content questions rather than blocks:
47
+
48
+ - The reply answers what happened, what changed or was decided, what only a person can check, and
49
+ what they do next — in any words and any order. Most replies answer two or three.
50
+ - The checks the agent ran are evidence: one line each, command and result. They are never steps
51
+ for the person, and never appear in a section headed for the person's testing.
52
+ - A by-hand check is optional and covers only what the agent could not do: open a screen, sign in,
53
+ read a document for tone, review or merge a diff, publish, deploy, use a device. It gives the
54
+ shortest sequence, what to look at, and the result that means it works. When nothing needs a
55
+ person, the block is absent — no "no manual check" line.
56
+ - A finished reply with nothing left ends on its last real point. "Nothing needed", "Nothing needed
57
+ next" and "No action required" are banned.
58
+ - There is no required heading and no preferred set; the section gives cross-domain examples and a
59
+ shape-by-work table, not a vocabulary, and says not to repeat one heading set.
60
+ - Three worked examples: a screen change, a backend change, a publish. The old examples' "Nothing
61
+ needed next" endings are gone.
62
+
63
+ `REPORTING_BUDGET` falls from 18,000 to 12,000 characters. The section stays last in the stable
64
+ prefix and is never cut.
65
+
66
+ ## Consequences
67
+
68
+ - The stable prefix shrinks by about 6.9k characters (15,809 → 8,921) and about 1.6k o200k tokens
69
+ (3,736 → 2,108). Existing sessions miss the provider cache once after the upgrade; the price of a
70
+ request is measured only with real application requests under INV-PRM-8.
71
+ - [`src/prompt/compile.test.ts`](../../src/prompt/compile.test.ts) checks the content questions, the
72
+ evidence rule, the by-hand rule, the ending ban, the heading freedom, three examples, the size
73
+ range and the 12,000 budget.
74
+ - No data, storage or server-protocol change; the App needs a rebuilt harness only.
75
+ - Risk: without four required blocks, a reply could go thin. The four content questions and the
76
+ "before you send" list are the guard; whether replies keep the shape is checked on real work, not
77
+ by a test.
78
+
79
+ ## Alternatives
80
+
81
+ - **Keep the four blocks and only ban "Nothing needed".** Rejected: the merge of the agent's runs
82
+ with the person's checks is the defect, and it comes from the block's own text.
83
+ - **Give the agent a separate "what I ran" block.** Rejected: one line of evidence is enough, and a
84
+ block invites the ceremony the person objected to.
85
+ - **Ban headings entirely.** Rejected: short replies drift into prose, and a report still needs
86
+ names for its parts.
87
+ - **Keep ~15.8k characters and rewrite the rules in place.** Rejected: the person chose a leaner
88
+ text, and the five examples restated rules already in prose.
89
+ - **Require the by-hand block on every change.** Rejected: most backend work has nothing a person
90
+ can check, and an always-present block produces filler.
@@ -0,0 +1,84 @@
1
+ ---
2
+ id: ADR-0075
3
+ title: No todo gate; a reply ends when the model ends it
4
+ status: accepted
5
+ created: 2026-11-01
6
+ updated: 2026-11-01
7
+ supersedes: ADR-0069 (its stop gate), ADR-0072 (its "the todo gate stays")
8
+ related:
9
+ - ADR-0069
10
+ - ADR-0072
11
+ - STUDY-0004
12
+ ---
13
+ # ADR-0075 — No todo gate; a reply ends when the model ends it
14
+
15
+ > **Supersedes the todo gate of [ADR-0069](ADR-0069-stop-gate-and-finish.md)** and the line in
16
+ > [ADR-0072](ADR-0072-codex-prompts-and-goal.md) that kept it. The goal loop and its claim check
17
+ > stay.
18
+
19
+ ## Context
20
+
21
+ ADR-0069 added the stop gate: in an attended top-level reply, an item still `pending` or
22
+ `in_progress` at Pi's `agent_before_settle` boundary sent the reply back with a displayed
23
+ `xingular-stop-gate` message, up to three nudges, and then settled the run
24
+ `interrupted{unfinished}` with a harness-written checkpoint.
25
+
26
+ In use the messages read as noise. "Harness stop gate (1/3): your reply ended with 2 open todo
27
+ items…" appears in the transcript of a person's own session, and a stale item the model forgot to
28
+ close marks the run unfinished even when the work is done. The person asked for the nudges and the
29
+ unfinished status to go, and for the prompt to relax instead.
30
+
31
+ The peer check on 2026-11-01 does not make this an obvious outlier either way:
32
+
33
+ | Harness | Todo nudge at the end of a turn | Evidence |
34
+ |---|---|---|
35
+ | omp | **Yes.** `TodoTracker.checkCompletion()` appends "You stopped with N incomplete todo item(s)… Please continue" as a developer message and schedules a continuation, up to `todo.remindersMax` (default 3); it skips a reply awaiting the person and also nudges mid-run after 12 mutating tools | `external/omp/packages/coding-agent/src/session/todo-tracker.ts:221`, `src/tools/settings.ts:360-380` |
36
+ | Claude Code | No bounce. A gentle reminder to use TodoWrite ("This is just a gentle reminder - ignore if not applicable"); a `Stop` hook is user configuration | Extracted prompt `system-reminder-todowrite-reminder.md`, `ccVersion` 2.1.139 |
37
+ | Codex | No bounce. `update_plan` is opt-in since 0.152 and enforces nothing at the end of a turn | STUDY-0004; 0.152 release notes |
38
+ | Kimi CLI | No bounce. A todo tool and instructions only | `external/kimi-cli/src/kimi_cli/tools/todo/set_todo_list.md` |
39
+ | OpenHands, SWE-agent, smolagents | No todo gate | No todo tool or no end-of-turn enforcement |
40
+
41
+ So this harness had copied a real design, but it is the minority design among the studied peers,
42
+ and its messages are the thing the person objected to.
43
+
44
+ ## Decision
45
+
46
+ Remove the gate:
47
+
48
+ - Delete the nudge extension, its state, `nudgeText`, `stopGateNotice`, `MAX_STOP_GATE_NUDGES`, and
49
+ the `XINGULAR_STOP_GATE` switch.
50
+ - A reply the model ends settles `completed`. The harness does not send it back and does not
51
+ overwrite its status from the todo list.
52
+ - A person's interrupt, the work-slice guard (INV-RUN-13) and a goal's stop (INV-RUN-16) keep their
53
+ statuses and checkpoints. A blocked goal settles `needs_person`; a goal on a limit, a pause or a
54
+ stall settles `unfinished`.
55
+ - The goal/checkpoint helpers move to `sessions/goalStop.ts`; the goal check's model helper moves to
56
+ `completionCheck.ts`.
57
+ - The prompt keeps the work-slice sentence as `WORK_SLICE_GUIDANCE`, and `TODO_GUIDANCE` is relaxed:
58
+ the list is a progress aid, the request is the scope, and a step left open is explained in the
59
+ reply. No text says a reply is sent back.
60
+ - A login that blocks the work is answered with the exact command the person must run (see
61
+ `04-prompt.md` § Reporting).
62
+
63
+ ## Consequences
64
+
65
+ - An early stop is no longer caught by the harness. The prompt is the only layer that asks the model
66
+ to finish the request, and a person reading the reply has to notice a stop with work left.
67
+ - The App no longer shows an interrupted-run notice for open todo items; it still does for a slice,
68
+ a goal and a person's interrupt.
69
+ - The stable prefix loses the old `STOP_GATE_GUIDANCE` sentence and gains the credential rule in the
70
+ reporting section; existing sessions miss the provider cache once after the upgrade.
71
+ - `XINGULAR_STOP_GATE` is retired and ignored if set. No data or protocol change; run records
72
+ written before this change keep their statuses.
73
+
74
+ ## Alternatives
75
+
76
+ - **Keep the gate and only make it opt-in, off by default.** Rejected: the machinery and its
77
+ messages would still exist for the default path people read, and the harness would carry a
78
+ capability nobody turns on.
79
+ - **Keep one reminder.** Rejected: the person asked for the nudges to go, and one reminder still
80
+ writes a harness message into their reply.
81
+ - **Remove the message but keep the `unfinished` status.** Rejected: the status comes from a list the
82
+ model may not maintain, so a stale item would mark finished work unfinished with no way to fix it.
83
+ - **Keep the gate.** Rejected: it is the thing the person objected to, and the majority of the
84
+ studied peers leave the end of a turn to the prompt.
@@ -0,0 +1,98 @@
1
+ ---
2
+ id: ADR-0076
3
+ title: Codex's final-answer guidance, adopted verbatim
4
+ status: accepted
5
+ created: 2026-11-01
6
+ updated: 2026-11-02
7
+ supersedes: ADR-0074 (its four content questions, human-check block, next-step block and examples)
8
+ amended_by: ADR-0079
9
+ related:
10
+ - ADR-0074
11
+ - ADR-0075
12
+ - STUDY-0006
13
+ ---
14
+ # ADR-0076 — Codex's final-answer guidance, adopted verbatim
15
+
16
+ > **Supersedes [ADR-0074](ADR-0074-report-content-not-report-blocks.md):** the four content
17
+ > questions, the human-check block, the next-step block, the evidence table, the anti-pattern table
18
+ > and the three examples are replaced by Codex's final-answer and technical-communication text.
19
+
20
+ > **Amended by [ADR-0079](ADR-0079-phase-led-reporting-guidance.md):** add the cold-reader test,
21
+ > explicit verification honesty, concise subagent reports and a preference for content-named `#` / `##`
22
+ > headings in substantial reports. The phase order is explicit; heading wording remains flexible.
23
+
24
+ ## Context
25
+
26
+ ADR-0074 replaced four required blocks with four content questions, a one-line evidence rule, an
27
+ optional human-check block, a next-step rule and three examples. It removed the filler ending and
28
+ brought the section to 9,235 characters (2,188 o200k tokens).
29
+
30
+ A rule-by-rule comparison with Codex's `gpt-6.1-sol` prompt found that most of the autonomy and
31
+ permission text was already Codex's, word for word, while the report section carried the strictness:
32
+ 18 prohibition phrases, 19 obligation words, a pre-send checklist and an anti-pattern table, against
33
+ Codex's 454-token `## Final answer` block, which mostly describes qualities and rendering.
34
+
35
+ The person chose Codex's wording for the report: self-contained final, technical communication,
36
+ evidence and limits, table guidance and length by complexity. They also added the model name to the
37
+ identity, adopted Codex's personality paragraph and unclear-scope sentence (with `ask_user`), and
38
+ adopted Codex's tool hygiene, test restraint and skill rules.
39
+
40
+ ## Decision
41
+
42
+ - **Identity.** `harness-identity` carries the product name, `Launch.model` when the host knows it,
43
+ and Codex's goal sentence: "You and the user share one workspace, and your job is to collaborate
44
+ with them until their intended goal is completely handled." The model name is a stable-prefix
45
+ line; a `/model` switch after the pack is compiled leaves it naming the model the session started
46
+ with.
47
+ - **Personality.** A new standard section (`prompt/standard.ts`, order 22) carries Codex's
48
+ personality paragraph, with "As Codex" changed to "As an AI agent" so the harness names no other
49
+ product.
50
+ - **Unclear scope.** Codex's sentence replaces the harness wording: "If the user's intent or task
51
+ scope is unclear, progress towards the user's goal with the information available and then ask the
52
+ user for clarification while continuing independent work." A following sentence names `ask_user`
53
+ for the question.
54
+ - **Reporting.** `REPORTING_GUIDANCE` becomes Codex's final-answer block and technical-communication
55
+ paragraphs: self-contained, most important information, outcome first, what changed and why, how
56
+ it was tested, material risks and limits, the evidence needed and its limits, verification
57
+ summarized rather than listed, progress updates as learned/uncertain/next. Tables for mappings and
58
+ comparisons. Headings stay free. A shape-by-work table says what different work needs. Length
59
+ scales with complexity. Prose first, lists when the information is parallel or sequential. Two
60
+ examples (a screen change, a blocked publish) and a four-line pre-send list replace the old
61
+ blocks, the anti-pattern table and the three examples.
62
+ - **Removed from reporting.** The four content questions, "Your checks are evidence", "What only a
63
+ person can check", "What the person does next", "What to leave out", "Tone", "Claims carry
64
+ evidence" and the anti-pattern table. The exact command for a blocked login remains in
65
+ `autonomy` and in the blocked-publish example.
66
+ - **Tools.** Codex's work rules join the Native guidance: `rg` first, no decorative command
67
+ separators, shell text treated as code, no reused `$HOME`, no long blocking sleeps, no tests for
68
+ reversible changes or tests that mirror the implementation, and broadening tests only when
69
+ justified. Codex's skill rules (SKILL.md, user precedence, announce the first use, `$name`,
70
+ missing skill) and its plugin principle join the Wiki guidance.
71
+ - `REPORTING_BUDGET` stays 12,000; the text is 3,697 characters (about 800 o200k tokens) and is
72
+ never cut.
73
+
74
+ ## Consequences
75
+
76
+ - The stable prefix shrinks by about 5.5k characters and 1.3k tokens. Existing sessions miss the
77
+ provider cache once after the upgrade.
78
+ - The report no longer has a by-hand check block or a next-step block. A person reading a reply gets
79
+ the outcome, the change, the evidence and the risks, and must notice when the reply leaves
80
+ something undone; ADR-0075's removal of the todo gate already accepted that.
81
+ - The personality section adds a sixth standard section; the terminal and every host read the same
82
+ text (INV-PAR-1).
83
+ - `Launch.model` is a new optional launch field; hosts that do not know the model get the identity
84
+ without "based on".
85
+ - No data, storage or server-protocol change.
86
+
87
+ ## Alternatives
88
+
89
+ - **Keep ADR-0074 and only trim the anti-patterns.** Rejected: the comparison showed the strictness
90
+ was in the block structure itself, and the person chose Codex's wording.
91
+ - **Copy Codex's whole prompt.** Rejected: its channels, `update_plan`, `functions.exec`, apps and
92
+ plugin mechanics do not exist in this harness; only the report, personality, permission and work
93
+ rules apply.
94
+ - **Keep the human-check and next-step blocks alongside Codex's text.** Rejected: they were the two
95
+ blocks the person asked to remove, and Codex's technical communication covers what remains.
96
+ - **Make the model name dynamic.** Deferred: a `/model` switch would need the identity in a dynamic
97
+ section or a recompile, and both change the cache contract; the stable line is the simpler
98
+ starting point.
@@ -0,0 +1,120 @@
1
+ ---
2
+ id: ADR-0077
3
+ title: A plan run may conclude that no plan is needed
4
+ status: accepted
5
+ created: 2026-11-02
6
+ updated: 2026-11-02
7
+ supersedes: ADR-0055 (its "every attended plan reply must carry a block" criterion), ADR-0057 and ADR-0058 (their repair criterion), not their mechanisms
8
+ related:
9
+ - ADR-0055
10
+ - ADR-0057
11
+ - ADR-0058
12
+ - ADR-0074
13
+ - ADR-0075
14
+ ---
15
+ # ADR-0077 — A plan run may conclude that no plan is needed
16
+
17
+ > **Supersedes the repair criterion of [ADR-0055](ADR-0055-plan-output-repair.md),
18
+ > [ADR-0057](ADR-0057-structured-plan-outcomes.md) and
19
+ > [ADR-0058](ADR-0058-ask-user-only-plan-clarification.md), not their mechanisms.** The same-run,
20
+ > one-attempt repair, the shared classification, the tool gate and the `<plan_blocked>` channel stay.
21
+
22
+ ## Context
23
+
24
+ Plan mode had no legitimate empty outcome. Its classification recognized `plan_ready` (one complete
25
+ `<proposed_plan>` block), `blocked` (required input that `ask_user` could not obtain) and `invalid`
26
+ for everything else, so a reply that concluded there was nothing to do was a formatting failure.
27
+ Two instructions then demanded an artifact: the plan section ended "end the reply with exactly one
28
+ block", and the hidden repair turn told the model to re-send its plan inside one block and offered
29
+ only a blocked block as the alternative.
30
+
31
+ The result is a fabricated plan. A person who asked the agent to plan work that already exists, or
32
+ who said not to plan at all, received a plan anyway: the harness's own instruction outranked the
33
+ person's, and the repair repeated it. Two live cases in one harness test session did exactly that —
34
+ a no-op plan whose only content restated the request, and then, after the person rejected it, a
35
+ second plan produced by the repair turn. The appetite for a required artifact had already been
36
+ rejected elsewhere: ADR-0074 removed the required report blocks, and ADR-0075 removed the stop gate.
37
+
38
+ A second defect sits beside the first. Tag accounting was a raw substring count over the whole
39
+ reply, so a reply that quoted plan syntax inside a fenced or inline code block declared extra
40
+ outcomes and became `invalid`. That is how a plan *about* the plan tags failed its own parser.
41
+
42
+ ## Decision
43
+
44
+ Add `no_plan` to the plan outcome contract:
45
+
46
+ | Reply ending | Outcome |
47
+ |---|---|
48
+ | One complete, nonempty `<proposed_plan>` block, outside code | `plan_ready` |
49
+ | One complete, nonempty `<plan_blocked>` block, outside code | `blocked` |
50
+ | No outcome tag at all, nonempty text | `no_plan` |
51
+ | Unbalanced, empty, duplicated or conflicting tags; legacy `<plan_clarification>`; empty reply | `invalid` |
52
+
53
+ - `no_plan` is a conclusion, not a failure. It offers no plan card, no Implement, no notice and no
54
+ warning in any surface, and it never costs a second model request.
55
+ - The plan section says that a reply with no block is a valid ending, that the model must check
56
+ whether the requested work already exists before designing it, and that a person's instruction
57
+ not to plan outranks the mode's output shape.
58
+ - The repair keeps its one bounded attempt, the same run and the same tool gate, but exists only
59
+ for `invalid`: a block the model started and left incomplete, empty or in conflict. It may finish
60
+ that block, may state that there is nothing to plan, or may return the blocked block. It may not
61
+ re-plan, research again, invent a decision or invent work to fill a block.
62
+ - Tags outside fenced and inline code alone declare an outcome; a quoted example is text. The rule
63
+ matches the one the App already used to split a plan out of a reply.
64
+
65
+ The outcome stays derived from reply text. No run event, run-record field, storage layout, server
66
+ method or host schema changes, so clients that understand only the plan tag keep working.
67
+
68
+ ## Rationale
69
+
70
+ The contract conflated *format* with *outcome*. Once the artifact is the only way to answer, every
71
+ honest "nothing to do" becomes a lie about the work, and the repair turn is the machinery that asks
72
+ for the lie. Making the empty conclusion explicit fixes the cause instead of the symptom, and it
73
+ keeps the plan card exactly where it is useful: on a reply that actually contains a plan.
74
+
75
+ Text-derived classification is cheaper than the alternatives. A `no_plan` tag would still demand an
76
+ artifact for every request. A plan tool would change the tool list at the moment the mode switches,
77
+ changing the cached prompt prefix in headless runs, and would need a new renderer path in the
78
+ terminal and the App. A declared free-text line (`No plan needed: …`) adds a phrase the model must
79
+ remember and makes its absence ambiguous again.
80
+
81
+ ## Consequences
82
+
83
+ - A plan request that needs no plan answers in ordinary prose. The person sees no card and no
84
+ warning, and the turn costs one request instead of two.
85
+ - A model that forgets the block for a real plan now loses the card and the Implement choice
86
+ silently. The reply text remains, and asking again produces the plan; the alternative was to keep
87
+ demanding an artifact that is sometimes fiction. The plan section still makes the block the
88
+ default when there is work to design.
89
+ - Plan mode read as "research-only mode" rather than "always produce a plan", which is what a bare
90
+ `/plan` toggle already meant in practice.
91
+ - Quoted or fenced plan syntax no longer invalidates a reply, so a reply may discuss the format
92
+ without being repaired.
93
+ - `blocked` is unchanged: it still reports a required decision that `ask_user` could not obtain, and
94
+ the terminal still warns about it.
95
+ - New final replies still must not use `<plan_clarification>` or free-text questions; `ask_user`
96
+ remains the clarification channel.
97
+
98
+ ## Alternatives
99
+
100
+ - **Keep requiring a block and allow a "nothing to do" sentence inside it.** Rejected: that is the
101
+ ceremony the defect is about, and it makes a no-op plan look like a plan.
102
+ - **Add a `<no_plan>` tag.** Rejected: symmetric and simple to parse, but it still forces an
103
+ artifact and a repair for every request, so the person's "do nothing" instruction is again
104
+ overridden.
105
+ - **Add a plan tool.** Rejected for now: it changes the tool list and the cached prompt prefix, and
106
+ needs new renderer paths in both surfaces, for a problem a classification change solves.
107
+ - **Drop the repair entirely.** Rejected: an incomplete block is a real, observable failure, and one
108
+ bounded turn fixes it without costing the card.
109
+ - **Keep raw substring counting.** Rejected: a reply that quotes the tags was already misclassified,
110
+ and with `no_plan` in place the false `invalid` would trigger the repair for a correct answer.
111
+
112
+ ## Checks
113
+
114
+ `src/sessions/planMode.test.ts` covers the outcome table, the code-fence rule, repair exclusion for
115
+ `no_plan` and the instruction text. `src/sessions/sessions.test.ts` covers a plain no-plan reply
116
+ with no repair and no warning, a repaired no-plan reply, and a malformed block repaired once.
117
+ `src/terminal/piExtension.lifecycle.test.ts`, `src/terminal/opentui/app.test.ts` and
118
+ `src/terminal/tui/runtime.socket.test.ts` cover the same contract at the terminal's settlement
119
+ boundary and in the plan choice. The App needs no code change: it renders a card only for a complete
120
+ block and shows nothing otherwise.
@@ -0,0 +1,46 @@
1
+ ---
2
+ id: ADR-0078
3
+ title: A reply waiting on subagents is judged by its children, and the working row names the wait
4
+ status: accepted
5
+ created: 2026-11-01
6
+ updated: 2026-11-01
7
+ related:
8
+ - ADR-0054
9
+ ---
10
+ # ADR-0078 — A reply waiting on subagents is judged by its children
11
+
12
+ ## Context
13
+
14
+ Run `da1a7e39` ("Fix follow-up steering UX") looked stuck for 19 minutes: a spinner and a random
15
+ verb on the working row, a spinning subagent, and a trajectory of 40 identical heartbeats. Nothing
16
+ was wrong. The parent was inside `wait_subagents` and its child (run `5cd1d8aa`) did a tool call or
17
+ a model request every minute until it finished. The person could not tell that from a hang, and the
18
+ harness could not either: the stall watch saw one tool running (30-minute limit) and none of the
19
+ child's progress, so a child that really wedged would have held the parent for half an hour and then
20
+ ended the parent, not the child.
21
+
22
+ Two other limits made real outages worse: Pi's default of three retries at 2, 4 and 8 seconds ended a
23
+ reply after about fourteen seconds of network trouble, and the retry showed only as a passing toast.
24
+
25
+ ## Decision
26
+
27
+ - Each subagent the terminal reply waits on has its own stall clock in `TerminalController`: its last
28
+ event other than a heartbeat and the tools it is inside. A child quiet for the reply window (15
29
+ minutes) or inside one tool for the tool window (30) is interrupted with reason `stalled`; the wait
30
+ returns it as `interrupted` and the parent continues without the person.
31
+ - While the only running tools of the reply are `wait_subagents` or `spawn_subagent`, the parent's own
32
+ rule is paused as long as a child answers to its own watch. It resumes if no child is tracked or a
33
+ child ignored the stop for five minutes.
34
+ - Heartbeats carry `activeTools` and `oldestToolMs`; the trajectory page shows what a beat was
35
+ inside and folds runs of beats into one row.
36
+ - The working row names the phase (waiting on subagents, a long tool, a silent model, a retry
37
+ countdown) in place of the verb whenever the verb would hide it.
38
+ - Model requests that fail for a transient reason are retried up to eight times over about four
39
+ minutes. A person's own `retry` settings are kept.
40
+
41
+ ## Consequences
42
+
43
+ A long, healthy wait is no longer cut short, and a wedged child no longer costs the parent. The
44
+ retry budget lengthens the time before a real outage reaches the person, and the row shows the
45
+ countdown meanwhile. Constants (15 and 30 minutes, five-minute grace, eight retries) are unchanged
46
+ or new knobs in `stallWatch.ts` and `retryPolicy.ts`.