@xingular/harness 0.1.7 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (819) hide show
  1. package/CHANGELOG.md +125 -1
  2. package/LICENSE +202 -0
  3. package/NOTICE.md +22 -0
  4. package/README.md +239 -86
  5. package/THIRD_PARTY_LICENSES.md +942 -0
  6. package/dist/cli.js +17853 -13114
  7. package/dist/sdk/accounts/accounts.d.ts +165 -0
  8. package/dist/sdk/accounts/accounts.js +730 -0
  9. package/dist/sdk/accounts/choices.d.ts +23 -0
  10. package/dist/sdk/accounts/choices.js +62 -0
  11. package/dist/sdk/accounts/env.d.ts +78 -0
  12. package/dist/sdk/accounts/env.js +294 -0
  13. package/dist/sdk/accounts/secrets.d.ts +16 -0
  14. package/dist/sdk/accounts/secrets.js +40 -0
  15. package/dist/sdk/accounts/store.d.ts +114 -0
  16. package/dist/sdk/accounts/store.js +255 -0
  17. package/dist/sdk/agents/builtin.d.ts +2 -0
  18. package/dist/sdk/agents/builtin.js +34 -0
  19. package/dist/sdk/agents/narrow.d.ts +13 -0
  20. package/dist/sdk/agents/narrow.js +29 -0
  21. package/dist/sdk/agents/profiles.d.ts +80 -0
  22. package/dist/sdk/agents/profiles.js +221 -0
  23. package/dist/sdk/annotations/bridge.d.ts +42 -0
  24. package/dist/sdk/annotations/bridge.js +264 -0
  25. package/dist/sdk/annotations/capture.d.ts +116 -0
  26. package/dist/sdk/annotations/capture.js +308 -0
  27. package/dist/sdk/annotations/delivery.d.ts +72 -0
  28. package/dist/sdk/annotations/delivery.js +130 -0
  29. package/dist/sdk/annotations/inspect.d.ts +10 -0
  30. package/dist/sdk/annotations/inspect.js +33 -0
  31. package/dist/sdk/annotations/isolated.d.ts +6 -0
  32. package/dist/sdk/annotations/isolated.js +51 -0
  33. package/dist/sdk/annotations/pageScript.d.ts +28 -0
  34. package/dist/sdk/annotations/pageScript.js +570 -0
  35. package/dist/sdk/annotations/part.d.ts +10 -0
  36. package/dist/sdk/annotations/part.js +144 -0
  37. package/dist/sdk/annotations/queue.d.ts +4 -0
  38. package/dist/sdk/annotations/queue.js +40 -0
  39. package/dist/sdk/annotations/serverMethods.d.ts +3 -0
  40. package/dist/sdk/annotations/serverMethods.js +62 -0
  41. package/dist/sdk/annotations/store.d.ts +160 -0
  42. package/dist/sdk/annotations/store.js +386 -0
  43. package/dist/sdk/browser/config.d.ts +16 -0
  44. package/dist/sdk/browser/config.js +22 -0
  45. package/dist/sdk/browser/diagnostics.d.ts +4 -0
  46. package/dist/sdk/browser/diagnostics.js +38 -0
  47. package/dist/sdk/browser/index.d.ts +28 -0
  48. package/dist/sdk/browser/index.js +72 -0
  49. package/dist/sdk/browser/network.d.ts +10 -0
  50. package/dist/sdk/browser/network.js +59 -0
  51. package/dist/sdk/browser/serverMethods.d.ts +3 -0
  52. package/dist/sdk/browser/serverMethods.js +7 -0
  53. package/dist/sdk/browser/session.d.ts +85 -0
  54. package/dist/sdk/browser/session.js +228 -0
  55. package/dist/sdk/browser/tools.d.ts +8 -0
  56. package/dist/sdk/browser/tools.js +329 -0
  57. package/dist/sdk/capabilities/api.d.ts +22 -0
  58. package/dist/sdk/capabilities/api.js +54 -0
  59. package/dist/sdk/capabilities/runSnapshot.d.ts +18 -0
  60. package/dist/sdk/capabilities/runSnapshot.js +47 -0
  61. package/dist/sdk/capabilities/types.d.ts +29 -0
  62. package/dist/sdk/capabilities/types.js +1 -0
  63. package/dist/sdk/cli.d.ts +2 -0
  64. package/dist/sdk/cli.js +150 -0
  65. package/dist/sdk/core/bus.d.ts +23 -0
  66. package/dist/sdk/core/bus.js +76 -0
  67. package/dist/sdk/core/caller.d.ts +22 -0
  68. package/dist/sdk/core/caller.js +16 -0
  69. package/dist/sdk/core/changes.d.ts +15 -0
  70. package/dist/sdk/core/changes.js +15 -0
  71. package/dist/sdk/core/effort.d.ts +2 -0
  72. package/dist/sdk/core/effort.js +1 -0
  73. package/dist/sdk/core/env.d.ts +18 -0
  74. package/dist/sdk/core/env.js +8 -0
  75. package/dist/sdk/core/errors.d.ts +15 -0
  76. package/dist/sdk/core/errors.js +24 -0
  77. package/dist/sdk/core/frontmatter.d.ts +12 -0
  78. package/dist/sdk/core/frontmatter.js +50 -0
  79. package/dist/sdk/core/fs.d.ts +18 -0
  80. package/dist/sdk/core/fs.js +106 -0
  81. package/dist/sdk/core/index.d.ts +24 -0
  82. package/dist/sdk/core/index.js +187 -0
  83. package/dist/sdk/core/path.d.ts +7 -0
  84. package/dist/sdk/core/path.js +79 -0
  85. package/dist/sdk/core/projects.d.ts +18 -0
  86. package/dist/sdk/core/projects.js +67 -0
  87. package/dist/sdk/core/secrets.d.ts +2 -0
  88. package/dist/sdk/core/secrets.js +5 -0
  89. package/dist/sdk/core/text.d.ts +7 -0
  90. package/dist/sdk/core/text.js +40 -0
  91. package/dist/sdk/doctor/checks.d.ts +5 -0
  92. package/dist/sdk/doctor/checks.js +208 -0
  93. package/dist/sdk/doctor/probe.d.ts +4 -0
  94. package/dist/sdk/doctor/probe.js +92 -0
  95. package/dist/sdk/doctor/serverMethods.d.ts +3 -0
  96. package/dist/sdk/doctor/serverMethods.js +8 -0
  97. package/dist/sdk/doctor/service.d.ts +23 -0
  98. package/dist/sdk/doctor/service.js +144 -0
  99. package/dist/sdk/doctor/types.d.ts +141 -0
  100. package/dist/sdk/doctor/types.js +29 -0
  101. package/dist/sdk/harness.d.ts +148 -0
  102. package/dist/sdk/harness.js +338 -0
  103. package/dist/sdk/history/lessonPrompt.d.ts +2 -0
  104. package/dist/sdk/history/lessonPrompt.js +15 -0
  105. package/dist/sdk/history/lessons.d.ts +52 -0
  106. package/dist/sdk/history/lessons.js +173 -0
  107. package/dist/sdk/history/recall.d.ts +68 -0
  108. package/dist/sdk/history/recall.js +199 -0
  109. package/dist/sdk/history/serverMethods.d.ts +3 -0
  110. package/dist/sdk/history/serverMethods.js +8 -0
  111. package/dist/sdk/history/trajectory.d.ts +7 -0
  112. package/dist/sdk/history/trajectory.js +216 -0
  113. package/dist/sdk/hub/catalog.json +123 -0
  114. package/dist/sdk/hub/cli.d.ts +7 -0
  115. package/dist/sdk/hub/cli.js +81 -0
  116. package/dist/sdk/hub/hub.d.ts +74 -0
  117. package/dist/sdk/hub/hub.js +474 -0
  118. package/dist/sdk/hub/schema.d.ts +280 -0
  119. package/dist/sdk/hub/schema.js +78 -0
  120. package/dist/sdk/hub/serverMethods.d.ts +3 -0
  121. package/dist/sdk/hub/serverMethods.js +11 -0
  122. package/dist/sdk/index.d.ts +73 -0
  123. package/dist/sdk/index.js +55 -0
  124. package/dist/sdk/mcp/connections.d.ts +83 -0
  125. package/dist/sdk/mcp/connections.js +676 -0
  126. package/dist/sdk/mcp/manager.d.ts +26 -0
  127. package/dist/sdk/mcp/manager.js +124 -0
  128. package/dist/sdk/mcp/oauth.d.ts +35 -0
  129. package/dist/sdk/mcp/oauth.js +171 -0
  130. package/dist/sdk/mcp/scopeMigration.d.ts +19 -0
  131. package/dist/sdk/mcp/scopeMigration.js +198 -0
  132. package/dist/sdk/mcp/serverMethods.d.ts +3 -0
  133. package/dist/sdk/mcp/serverMethods.js +22 -0
  134. package/dist/sdk/mcp/service.d.ts +160 -0
  135. package/dist/sdk/mcp/service.js +510 -0
  136. package/dist/sdk/mcp/types.d.ts +131 -0
  137. package/dist/sdk/mcp/types.js +49 -0
  138. package/dist/sdk/pi/runtime.d.ts +13 -0
  139. package/dist/sdk/pi/runtime.js +31 -0
  140. package/dist/sdk/plugins/api.d.ts +66 -0
  141. package/dist/sdk/plugins/api.js +155 -0
  142. package/dist/sdk/plugins/attachments.d.ts +46 -0
  143. package/dist/sdk/plugins/attachments.js +111 -0
  144. package/dist/sdk/plugins/builtin.d.ts +7 -0
  145. package/dist/sdk/plugins/builtin.js +163 -0
  146. package/dist/sdk/plugins/builtinRegistry.d.ts +53 -0
  147. package/dist/sdk/plugins/builtinRegistry.js +49 -0
  148. package/dist/sdk/plugins/catalogue.d.ts +29 -0
  149. package/dist/sdk/plugins/catalogue.js +196 -0
  150. package/dist/sdk/plugins/cli.d.ts +13 -0
  151. package/dist/sdk/plugins/cli.js +188 -0
  152. package/dist/sdk/plugins/discover.d.ts +42 -0
  153. package/dist/sdk/plugins/discover.js +115 -0
  154. package/dist/sdk/plugins/firstParty.d.ts +50 -0
  155. package/dist/sdk/plugins/firstParty.js +113 -0
  156. package/dist/sdk/plugins/hooks.d.ts +94 -0
  157. package/dist/sdk/plugins/hooks.js +162 -0
  158. package/dist/sdk/plugins/identity.d.ts +19 -0
  159. package/dist/sdk/plugins/identity.js +48 -0
  160. package/dist/sdk/plugins/install.d.ts +20 -0
  161. package/dist/sdk/plugins/install.js +110 -0
  162. package/dist/sdk/plugins/inventory.d.ts +22 -0
  163. package/dist/sdk/plugins/inventory.js +110 -0
  164. package/dist/sdk/plugins/manifest.d.ts +13 -0
  165. package/dist/sdk/plugins/manifest.js +56 -0
  166. package/dist/sdk/plugins/plugins.d.ts +104 -0
  167. package/dist/sdk/plugins/plugins.js +164 -0
  168. package/dist/sdk/plugins/runtime.d.ts +9 -0
  169. package/dist/sdk/plugins/runtime.js +95 -0
  170. package/dist/sdk/plugins/trust.d.ts +44 -0
  171. package/dist/sdk/plugins/trust.js +120 -0
  172. package/dist/sdk/plugins/types.d.ts +159 -0
  173. package/dist/sdk/plugins/types.js +7 -0
  174. package/dist/sdk/prompt/compile.d.ts +177 -0
  175. package/dist/sdk/prompt/compile.js +413 -0
  176. package/dist/sdk/refine/cli.d.ts +4 -0
  177. package/dist/sdk/refine/cli.js +186 -0
  178. package/dist/sdk/refine/demo.d.ts +21 -0
  179. package/dist/sdk/refine/demo.js +114 -0
  180. package/dist/sdk/refine/evidence.d.ts +55 -0
  181. package/dist/sdk/refine/evidence.js +330 -0
  182. package/dist/sdk/refine/host.d.ts +51 -0
  183. package/dist/sdk/refine/host.js +76 -0
  184. package/dist/sdk/refine/ledger.d.ts +48 -0
  185. package/dist/sdk/refine/ledger.js +76 -0
  186. package/dist/sdk/refine/library.d.ts +55 -0
  187. package/dist/sdk/refine/library.js +177 -0
  188. package/dist/sdk/refine/pi.d.ts +72 -0
  189. package/dist/sdk/refine/pi.js +248 -0
  190. package/dist/sdk/refine/prompts.d.ts +45 -0
  191. package/dist/sdk/refine/prompts.js +390 -0
  192. package/dist/sdk/refine/recursion.d.ts +113 -0
  193. package/dist/sdk/refine/recursion.js +258 -0
  194. package/dist/sdk/refine/runner.d.ts +81 -0
  195. package/dist/sdk/refine/runner.js +150 -0
  196. package/dist/sdk/refine/selection.d.ts +57 -0
  197. package/dist/sdk/refine/selection.js +251 -0
  198. package/dist/sdk/refine/serverMethods.d.ts +3 -0
  199. package/dist/sdk/refine/serverMethods.js +20 -0
  200. package/dist/sdk/refine/service.d.ts +84 -0
  201. package/dist/sdk/refine/service.js +165 -0
  202. package/dist/sdk/refine/suite.d.ts +67 -0
  203. package/dist/sdk/refine/suite.js +174 -0
  204. package/dist/sdk/refine/trajectory.d.ts +9 -0
  205. package/dist/sdk/refine/trajectory.js +68 -0
  206. package/dist/sdk/refine/types.d.ts +77 -0
  207. package/dist/sdk/refine/types.js +10 -0
  208. package/dist/sdk/server/methods.d.ts +3 -0
  209. package/dist/sdk/server/methods.js +293 -0
  210. package/dist/sdk/server/params.d.ts +4 -0
  211. package/dist/sdk/server/params.js +11 -0
  212. package/dist/sdk/server/remote.d.ts +19 -0
  213. package/dist/sdk/server/remote.js +84 -0
  214. package/dist/sdk/server/rpc.d.ts +20 -0
  215. package/dist/sdk/server/rpc.js +102 -0
  216. package/dist/sdk/server/serve.d.ts +10 -0
  217. package/dist/sdk/server/serve.js +18 -0
  218. package/dist/sdk/sessions/approvals.d.ts +47 -0
  219. package/dist/sdk/sessions/approvals.js +119 -0
  220. package/dist/sdk/sessions/continuation.d.ts +48 -0
  221. package/dist/sdk/sessions/continuation.js +85 -0
  222. package/dist/sdk/sessions/contracts.d.ts +551 -0
  223. package/dist/sdk/sessions/contracts.js +338 -0
  224. package/dist/sdk/sessions/extensionUi.d.ts +19 -0
  225. package/dist/sdk/sessions/extensionUi.js +64 -0
  226. package/dist/sdk/sessions/history.d.ts +16 -0
  227. package/dist/sdk/sessions/history.js +68 -0
  228. package/dist/sdk/sessions/lineageJoin.d.ts +2 -0
  229. package/dist/sdk/sessions/lineageJoin.js +61 -0
  230. package/dist/sdk/sessions/planMode.d.ts +39 -0
  231. package/dist/sdk/sessions/planMode.js +93 -0
  232. package/dist/sdk/sessions/policy.d.ts +43 -0
  233. package/dist/sdk/sessions/policy.js +1 -0
  234. package/dist/sdk/sessions/pricing.d.ts +34 -0
  235. package/dist/sdk/sessions/pricing.js +40 -0
  236. package/dist/sdk/sessions/reasoningSummaries.d.ts +11 -0
  237. package/dist/sdk/sessions/reasoningSummaries.js +61 -0
  238. package/dist/sdk/sessions/registry.d.ts +103 -0
  239. package/dist/sdk/sessions/registry.js +386 -0
  240. package/dist/sdk/sessions/runIndex.d.ts +21 -0
  241. package/dist/sdk/sessions/runIndex.js +65 -0
  242. package/dist/sdk/sessions/runStore.d.ts +66 -0
  243. package/dist/sdk/sessions/runStore.js +337 -0
  244. package/dist/sdk/sessions/runner.d.ts +213 -0
  245. package/dist/sdk/sessions/runner.js +589 -0
  246. package/dist/sdk/sessions/sessions.d.ts +152 -0
  247. package/dist/sdk/sessions/sessions.js +461 -0
  248. package/dist/sdk/sessions/sideQuestionServerMethods.d.ts +3 -0
  249. package/dist/sdk/sessions/sideQuestionServerMethods.js +19 -0
  250. package/dist/sdk/sessions/sideQuestions.d.ts +66 -0
  251. package/dist/sdk/sessions/sideQuestions.js +290 -0
  252. package/dist/sdk/sessions/subagentServerMethods.d.ts +3 -0
  253. package/dist/sdk/sessions/subagentServerMethods.js +41 -0
  254. package/dist/sdk/sessions/subagentService.d.ts +52 -0
  255. package/dist/sdk/sessions/subagentService.js +265 -0
  256. package/dist/sdk/sessions/subagents.d.ts +58 -0
  257. package/dist/sdk/sessions/subagents.js +87 -0
  258. package/dist/sdk/terminal/accountsMenu.d.ts +46 -0
  259. package/dist/sdk/terminal/accountsMenu.js +392 -0
  260. package/dist/sdk/terminal/browser.d.ts +62 -0
  261. package/dist/sdk/terminal/browser.js +41 -0
  262. package/dist/sdk/terminal/browserControl.d.ts +29 -0
  263. package/dist/sdk/terminal/browserControl.js +186 -0
  264. package/dist/sdk/terminal/cli.d.ts +20 -0
  265. package/dist/sdk/terminal/cli.js +121 -0
  266. package/dist/sdk/terminal/client.d.ts +15 -0
  267. package/dist/sdk/terminal/client.js +126 -0
  268. package/dist/sdk/terminal/commandHelp.d.ts +17 -0
  269. package/dist/sdk/terminal/commandHelp.js +20 -0
  270. package/dist/sdk/terminal/control.d.ts +4 -0
  271. package/dist/sdk/terminal/control.js +25 -0
  272. package/dist/sdk/terminal/controller.d.ts +78 -0
  273. package/dist/sdk/terminal/controller.js +383 -0
  274. package/dist/sdk/terminal/hubMenu.d.ts +10 -0
  275. package/dist/sdk/terminal/hubMenu.js +34 -0
  276. package/dist/sdk/terminal/launch.d.ts +5 -0
  277. package/dist/sdk/terminal/launch.js +27 -0
  278. package/dist/sdk/terminal/logs.d.ts +14 -0
  279. package/dist/sdk/terminal/logs.js +59 -0
  280. package/dist/sdk/terminal/opentui/subagentsWidget.d.ts +28 -0
  281. package/dist/sdk/terminal/opentui/subagentsWidget.js +52 -0
  282. package/dist/sdk/terminal/piExtension.d.ts +6 -0
  283. package/dist/sdk/terminal/piExtension.js +377 -0
  284. package/dist/sdk/terminal/pluginMenu.d.ts +34 -0
  285. package/dist/sdk/terminal/pluginMenu.js +101 -0
  286. package/dist/sdk/terminal/socket.d.ts +73 -0
  287. package/dist/sdk/terminal/socket.js +287 -0
  288. package/dist/sdk/terminal/standalone.d.ts +20 -0
  289. package/dist/sdk/terminal/standalone.js +186 -0
  290. package/dist/sdk/terminal/subagentMonitor.d.ts +38 -0
  291. package/dist/sdk/terminal/subagentMonitor.js +121 -0
  292. package/dist/sdk/terminal/terminals.d.ts +212 -0
  293. package/dist/sdk/terminal/terminals.js +1108 -0
  294. package/dist/sdk/terminal/trajectory.d.ts +10 -0
  295. package/dist/sdk/terminal/trajectory.js +30 -0
  296. package/dist/sdk/terminal/tui/annotateCommand.d.ts +3 -0
  297. package/dist/sdk/terminal/tui/annotateCommand.js +22 -0
  298. package/dist/sdk/terminal/tui/chrome.d.ts +64 -0
  299. package/dist/sdk/terminal/tui/chrome.js +169 -0
  300. package/dist/sdk/terminal/tui/clipboardFiles.d.ts +11 -0
  301. package/dist/sdk/terminal/tui/clipboardFiles.js +74 -0
  302. package/dist/sdk/terminal/tui/commandPages.d.ts +11 -0
  303. package/dist/sdk/terminal/tui/commandPages.js +111 -0
  304. package/dist/sdk/terminal/tui/commands.d.ts +46 -0
  305. package/dist/sdk/terminal/tui/commands.js +399 -0
  306. package/dist/sdk/terminal/tui/dialogGeometry.d.ts +27 -0
  307. package/dist/sdk/terminal/tui/dialogGeometry.js +52 -0
  308. package/dist/sdk/terminal/tui/dialogs.d.ts +80 -0
  309. package/dist/sdk/terminal/tui/dialogs.js +370 -0
  310. package/dist/sdk/terminal/tui/keybindings.d.ts +11 -0
  311. package/dist/sdk/terminal/tui/keybindings.js +49 -0
  312. package/dist/sdk/terminal/tui/list.d.ts +73 -0
  313. package/dist/sdk/terminal/tui/list.js +196 -0
  314. package/dist/sdk/terminal/tui/modeChoices.d.ts +42 -0
  315. package/dist/sdk/terminal/tui/modeChoices.js +70 -0
  316. package/dist/sdk/terminal/tui/modelPicker.d.ts +55 -0
  317. package/dist/sdk/terminal/tui/modelPicker.js +150 -0
  318. package/dist/sdk/terminal/tui/mouse.d.ts +3 -0
  319. package/dist/sdk/terminal/tui/mouse.js +3 -0
  320. package/dist/sdk/terminal/tui/page.d.ts +17 -0
  321. package/dist/sdk/terminal/tui/page.js +1 -0
  322. package/dist/sdk/terminal/tui/pageOverlay.d.ts +27 -0
  323. package/dist/sdk/terminal/tui/pageOverlay.js +156 -0
  324. package/dist/sdk/terminal/tui/pages/accountsPage.d.ts +76 -0
  325. package/dist/sdk/terminal/tui/pages/accountsPage.js +409 -0
  326. package/dist/sdk/terminal/tui/pages/agentsPage.d.ts +74 -0
  327. package/dist/sdk/terminal/tui/pages/agentsPage.js +190 -0
  328. package/dist/sdk/terminal/tui/pages/annotatePage.d.ts +94 -0
  329. package/dist/sdk/terminal/tui/pages/annotatePage.js +341 -0
  330. package/dist/sdk/terminal/tui/pages/browserPage.d.ts +87 -0
  331. package/dist/sdk/terminal/tui/pages/browserPage.js +738 -0
  332. package/dist/sdk/terminal/tui/pages/componentsPage.d.ts +47 -0
  333. package/dist/sdk/terminal/tui/pages/componentsPage.js +119 -0
  334. package/dist/sdk/terminal/tui/pages/doctorPage.d.ts +39 -0
  335. package/dist/sdk/terminal/tui/pages/doctorPage.js +233 -0
  336. package/dist/sdk/terminal/tui/pages/hubPage.d.ts +39 -0
  337. package/dist/sdk/terminal/tui/pages/hubPage.js +128 -0
  338. package/dist/sdk/terminal/tui/pages/logPage.d.ts +38 -0
  339. package/dist/sdk/terminal/tui/pages/logPage.js +189 -0
  340. package/dist/sdk/terminal/tui/pages/notesPage.d.ts +75 -0
  341. package/dist/sdk/terminal/tui/pages/notesPage.js +201 -0
  342. package/dist/sdk/terminal/tui/pages/permissionsPage.d.ts +44 -0
  343. package/dist/sdk/terminal/tui/pages/permissionsPage.js +124 -0
  344. package/dist/sdk/terminal/tui/pages/pluginsPage.d.ts +57 -0
  345. package/dist/sdk/terminal/tui/pages/pluginsPage.js +243 -0
  346. package/dist/sdk/terminal/tui/pages/settingsPage.d.ts +63 -0
  347. package/dist/sdk/terminal/tui/pages/settingsPage.js +103 -0
  348. package/dist/sdk/terminal/tui/pages/subagentsPage.d.ts +23 -0
  349. package/dist/sdk/terminal/tui/pages/subagentsPage.js +70 -0
  350. package/dist/sdk/terminal/tui/pages/trajectoryPage.d.ts +65 -0
  351. package/dist/sdk/terminal/tui/pages/trajectoryPage.js +450 -0
  352. package/dist/sdk/terminal/tui/pages/worktreesPage.d.ts +72 -0
  353. package/dist/sdk/terminal/tui/pages/worktreesPage.js +203 -0
  354. package/dist/sdk/terminal/tui/piAdapter.d.ts +18 -0
  355. package/dist/sdk/terminal/tui/piAdapter.js +48 -0
  356. package/dist/sdk/terminal/tui/planMode.d.ts +2 -0
  357. package/dist/sdk/terminal/tui/planMode.js +2 -0
  358. package/dist/sdk/terminal/tui/pluginCommands.d.ts +14 -0
  359. package/dist/sdk/terminal/tui/pluginCommands.js +27 -0
  360. package/dist/sdk/terminal/tui/questionPicker.d.ts +20 -0
  361. package/dist/sdk/terminal/tui/questionPicker.js +150 -0
  362. package/dist/sdk/terminal/tui/questions.d.ts +21 -0
  363. package/dist/sdk/terminal/tui/questions.js +42 -0
  364. package/dist/sdk/terminal/tui/runtime.d.ts +114 -0
  365. package/dist/sdk/terminal/tui/runtime.js +443 -0
  366. package/dist/sdk/terminal/tui/search.d.ts +22 -0
  367. package/dist/sdk/terminal/tui/search.js +60 -0
  368. package/dist/sdk/terminal/tui/selection.d.ts +16 -0
  369. package/dist/sdk/terminal/tui/selection.js +16 -0
  370. package/dist/sdk/terminal/tui/sessionUi.d.ts +3 -0
  371. package/dist/sdk/terminal/tui/sessionUi.js +30 -0
  372. package/dist/sdk/terminal/tui/settingsModel.d.ts +14 -0
  373. package/dist/sdk/terminal/tui/settingsModel.js +114 -0
  374. package/dist/sdk/terminal/tui/sideQuestion.d.ts +53 -0
  375. package/dist/sdk/terminal/tui/sideQuestion.js +230 -0
  376. package/dist/sdk/terminal/tui/skillInvocation.d.ts +9 -0
  377. package/dist/sdk/terminal/tui/skillInvocation.js +43 -0
  378. package/dist/sdk/terminal/tui/status.d.ts +18 -0
  379. package/dist/sdk/terminal/tui/status.js +67 -0
  380. package/dist/sdk/terminal/tui/theme.d.ts +45 -0
  381. package/dist/sdk/terminal/tui/theme.js +176 -0
  382. package/dist/sdk/terminal/tui/treeModel.d.ts +79 -0
  383. package/dist/sdk/terminal/tui/treeModel.js +483 -0
  384. package/dist/sdk/terminal/tui/treePicker.d.ts +49 -0
  385. package/dist/sdk/terminal/tui/treePicker.js +251 -0
  386. package/dist/sdk/terminal/tui/ui.d.ts +49 -0
  387. package/dist/sdk/terminal/tui/ui.js +149 -0
  388. package/dist/sdk/terminal/tui/workingStatus.d.ts +9 -0
  389. package/dist/sdk/terminal/tui/workingStatus.js +229 -0
  390. package/dist/sdk/tools/askUser.d.ts +6 -0
  391. package/dist/sdk/tools/askUser.js +92 -0
  392. package/dist/sdk/tools/checklist.d.ts +9 -0
  393. package/dist/sdk/tools/checklist.js +54 -0
  394. package/dist/sdk/tools/definitions.d.ts +30 -0
  395. package/dist/sdk/tools/definitions.js +117 -0
  396. package/dist/sdk/tools/dispatch.d.ts +16 -0
  397. package/dist/sdk/tools/dispatch.js +67 -0
  398. package/dist/sdk/tools/harnessTools.d.ts +8 -0
  399. package/dist/sdk/tools/harnessTools.js +20 -0
  400. package/dist/sdk/tools/sessionName.d.ts +7 -0
  401. package/dist/sdk/tools/sessionName.js +31 -0
  402. package/dist/sdk/tools/spawnSubagent.d.ts +4 -0
  403. package/dist/sdk/tools/spawnSubagent.js +58 -0
  404. package/dist/sdk/tools/types.d.ts +48 -0
  405. package/dist/sdk/tools/types.js +1 -0
  406. package/dist/sdk/variant/components.d.ts +34 -0
  407. package/dist/sdk/variant/components.js +230 -0
  408. package/dist/sdk/variant/materialise.d.ts +66 -0
  409. package/dist/sdk/variant/materialise.js +81 -0
  410. package/dist/sdk/variant/migrate.d.ts +4 -0
  411. package/dist/sdk/variant/migrate.js +41 -0
  412. package/dist/sdk/variant/seed.d.ts +20 -0
  413. package/dist/sdk/variant/seed.js +116 -0
  414. package/dist/sdk/variant/store.d.ts +82 -0
  415. package/dist/sdk/variant/store.js +151 -0
  416. package/dist/sdk/variant/surface.d.ts +56 -0
  417. package/dist/sdk/variant/surface.js +81 -0
  418. package/dist/sdk/variant/trust.d.ts +27 -0
  419. package/dist/sdk/variant/trust.js +64 -0
  420. package/dist/sdk/variant/variant.d.ts +71 -0
  421. package/dist/sdk/variant/variant.js +331 -0
  422. package/dist/sdk/web/markdown.d.ts +10 -0
  423. package/dist/sdk/web/markdown.js +66 -0
  424. package/dist/sdk/web/part.d.ts +10 -0
  425. package/dist/sdk/web/part.js +6 -0
  426. package/dist/sdk/web/safeRequest.d.ts +34 -0
  427. package/dist/sdk/web/safeRequest.js +175 -0
  428. package/dist/sdk/web/search.d.ts +53 -0
  429. package/dist/sdk/web/search.js +168 -0
  430. package/dist/sdk/web/serverMethods.d.ts +3 -0
  431. package/dist/sdk/web/serverMethods.js +7 -0
  432. package/dist/sdk/web/text.d.ts +2 -0
  433. package/dist/sdk/web/text.js +7 -0
  434. package/dist/sdk/web/tools.d.ts +22 -0
  435. package/dist/sdk/web/tools.js +195 -0
  436. package/dist/sdk/web/turndown-plugin-gfm.d.ts +4 -0
  437. package/dist/sdk/wiki/notes.d.ts +68 -0
  438. package/dist/sdk/wiki/notes.js +297 -0
  439. package/dist/sdk/wiki/serverMethods.d.ts +3 -0
  440. package/dist/sdk/wiki/serverMethods.js +26 -0
  441. package/dist/sdk/worktrees/cli.d.ts +11 -0
  442. package/dist/sdk/worktrees/cli.js +146 -0
  443. package/dist/sdk/worktrees/copy.d.ts +9 -0
  444. package/dist/sdk/worktrees/copy.js +111 -0
  445. package/dist/sdk/worktrees/git.d.ts +16 -0
  446. package/dist/sdk/worktrees/git.js +81 -0
  447. package/dist/sdk/worktrees/serverMethods.d.ts +3 -0
  448. package/dist/sdk/worktrees/serverMethods.js +30 -0
  449. package/dist/sdk/worktrees/service.d.ts +73 -0
  450. package/dist/sdk/worktrees/service.js +483 -0
  451. package/dist/sdk/worktrees/setup.d.ts +23 -0
  452. package/dist/sdk/worktrees/setup.js +65 -0
  453. package/dist/sdk/worktrees/types.d.ts +91 -0
  454. package/dist/sdk/worktrees/types.js +1 -0
  455. package/dist/sdk/world/actions.d.ts +23 -0
  456. package/dist/sdk/world/actions.js +31 -0
  457. package/dist/sdk/world/cli.d.ts +12 -0
  458. package/dist/sdk/world/cli.js +166 -0
  459. package/dist/sdk/world/images.d.ts +20 -0
  460. package/dist/sdk/world/images.js +48 -0
  461. package/dist/sdk/world/untrusted.d.ts +12 -0
  462. package/dist/sdk/world/untrusted.js +20 -0
  463. package/dist/sdk/world/world.d.ts +67 -0
  464. package/dist/sdk/world/world.js +79 -0
  465. package/dist/terminal-opentui.js +20778 -0
  466. package/dist/terminal-pi.js +794 -518
  467. package/docs/README.md +42 -0
  468. package/docs/architecture/00-overview.md +171 -0
  469. package/docs/architecture/01-extension-points.md +78 -0
  470. package/docs/architecture/02-sessions-and-runs.md +203 -0
  471. package/docs/architecture/03-variants.md +103 -0
  472. package/docs/architecture/04-prompt.md +122 -0
  473. package/docs/architecture/05-refinement.md +107 -0
  474. package/docs/architecture/06-plugins-and-capabilities.md +129 -0
  475. package/docs/architecture/07-tools-and-gate.md +103 -0
  476. package/docs/architecture/08-memory-and-history.md +94 -0
  477. package/docs/architecture/09-accounts-and-connectors.md +98 -0
  478. package/docs/architecture/10-server-protocol.md +193 -0
  479. package/docs/architecture/11-terminal.md +261 -0
  480. package/docs/architecture/12-storage.md +75 -0
  481. package/docs/architecture/13-world-tools.md +45 -0
  482. package/docs/architecture/14-surfaces-and-parity.md +89 -0
  483. package/docs/architecture/README.md +125 -0
  484. package/docs/architecture/proposals/PROP-0001-reporting-section.md +106 -0
  485. package/docs/architecture/proposals/PROP-0002-retain-rollout-workspaces.md +104 -0
  486. package/docs/architecture/proposals/PROP-0003-executor-settings.md +81 -0
  487. package/docs/architecture/proposals/PROP-0004-flexible-reporting-guidance.md +71 -0
  488. package/docs/architecture/proposals/PROP-0005-xharness-cli-name.md +78 -0
  489. package/docs/architecture/proposals/PROP-0006-run-checklist.md +70 -0
  490. package/docs/architecture/proposals/PROP-0007-run-continuation.md +80 -0
  491. package/docs/architecture/proposals/PROP-0008-lessons-from-runs.md +80 -0
  492. package/docs/architecture/proposals/PROP-0009-foundation-and-variants.md +78 -0
  493. package/docs/architecture/proposals/PROP-0010-session-names.md +73 -0
  494. package/docs/architecture/proposals/PROP-0011-doctor.md +63 -0
  495. package/docs/architecture/proposals/PROP-0012-release-baseline.md +56 -0
  496. package/docs/architecture/proposals/PROP-0013-resource-browser.md +58 -0
  497. package/docs/architecture/proposals/PROP-0014-fullscreen-browser-tabs.md +58 -0
  498. package/docs/architecture/proposals/PROP-0015-one-capability-surface.md +88 -0
  499. package/docs/architecture/proposals/PROP-0016-managed-worktrees.md +156 -0
  500. package/docs/architecture/proposals/PROP-0017-page-annotations.md +127 -0
  501. package/docs/architecture/proposals/PROP-0018-annotation-queue-and-app-targets.md +179 -0
  502. package/docs/architecture/proposals/PROP-0019-contextual-side-questions.md +122 -0
  503. package/docs/architecture/proposals/PROP-0020-builtin-feature-plugins.md +105 -0
  504. package/docs/architecture/proposals/PROP-0021-command-namespaces-and-duplicates.md +99 -0
  505. package/docs/architecture/proposals/PROP-0022-plan-only-questions.md +102 -0
  506. package/docs/architecture/proposals/PROP-0023-xagent-cli-name.md +61 -0
  507. package/docs/architecture/proposals/PROP-0024-question-sketch-previews.md +130 -0
  508. package/docs/architecture/proposals/PROP-0025-contextual-question-wireframes.md +49 -0
  509. package/docs/architecture/proposals/PROP-0026-connected-sketch-display.md +94 -0
  510. package/docs/architecture/proposals/PROP-0027-xingular-agent-product-identity.md +60 -0
  511. package/docs/architecture/proposals/PROP-0028-normalize-question-wireframes.md +55 -0
  512. package/docs/architecture/proposals/PROP-0029-agent-profiles.md +124 -0
  513. package/docs/architecture/proposals/PROP-0030-subagent-title.md +86 -0
  514. package/docs/architecture/proposals/README.md +101 -0
  515. package/docs/decisions/ADR-0002-native-subagent-lifecycle.md +49 -0
  516. package/docs/decisions/ADR-0003-shared-asynchronous-subagents.md +70 -0
  517. package/docs/decisions/ADR-0004-fullscreen-terminal-layout.md +50 -0
  518. package/docs/decisions/ADR-0005-app-provided-oauth-clients.md +54 -0
  519. package/docs/decisions/ADR-0006-opentui-only-terminal.md +47 -0
  520. package/docs/decisions/ADR-0007-reporting-section.md +33 -0
  521. package/docs/decisions/ADR-0008-flexible-reporting-guidance.md +38 -0
  522. package/docs/decisions/ADR-0009-xharness-command.md +39 -0
  523. package/docs/decisions/ADR-0010-lessons-in-the-wiki.md +31 -0
  524. package/docs/decisions/ADR-0011-foundation-and-variants.md +28 -0
  525. package/docs/decisions/ADR-0012-native-session-names.md +34 -0
  526. package/docs/decisions/ADR-0013-doctor.md +27 -0
  527. package/docs/decisions/ADR-0014-public-release-baseline.md +22 -0
  528. package/docs/decisions/ADR-0015-resource-browser.md +28 -0
  529. package/docs/decisions/ADR-0016-fullscreen-browser-tabs.md +31 -0
  530. package/docs/decisions/ADR-0017-one-capability-surface.md +34 -0
  531. package/docs/decisions/ADR-0018-builtin-feature-plugins.md +35 -0
  532. package/docs/decisions/ADR-0019-managed-git-worktrees.md +31 -0
  533. package/docs/decisions/ADR-0020-page-annotations.md +37 -0
  534. package/docs/decisions/ADR-0021-required-command-namespaces.md +40 -0
  535. package/docs/decisions/ADR-0022-plan-only-question-tools.md +34 -0
  536. package/docs/decisions/ADR-0023-contextual-side-question-runs.md +35 -0
  537. package/docs/decisions/ADR-0024-xagent-command.md +40 -0
  538. package/docs/decisions/ADR-0025-question-choice-sketches.md +49 -0
  539. package/docs/decisions/ADR-0026-contextual-question-wireframes.md +58 -0
  540. package/docs/decisions/ADR-0027-connected-sketch-display.md +60 -0
  541. package/docs/decisions/ADR-0028-xingular-agent-product-identity.md +56 -0
  542. package/docs/decisions/ADR-0029-normalized-question-wireframe-borders.md +33 -0
  543. package/docs/decisions/ADR-0030-agent-profiles.md +43 -0
  544. package/docs/doctor.md +80 -0
  545. package/docs/experiments/EXP-0001-terminal-input-latency/plan.md +81 -0
  546. package/docs/experiments/EXP-0001-terminal-input-latency/results.md +46 -0
  547. package/docs/experiments/EXP-0002-opentui-typing-latency/plan.md +70 -0
  548. package/docs/experiments/EXP-0002-opentui-typing-latency/results.md +92 -0
  549. package/docs/features/README.md +46 -0
  550. package/docs/features/automations/README.md +41 -0
  551. package/docs/features/cores/README.md +39 -0
  552. package/docs/features/google-harness2/README.md +52 -0
  553. package/docs/features/integrations/README.md +40 -0
  554. package/docs/features/interfaces/README.md +29 -0
  555. package/docs/features/memory/README.md +28 -0
  556. package/docs/future-work.md +48 -0
  557. package/docs/parity.md +78 -0
  558. package/docs/releases/1.0.0.md +40 -0
  559. package/docs/releases/4.0.0.md +46 -0
  560. package/docs/releases/README.md +41 -0
  561. package/docs/study/00-index.md +83 -0
  562. package/docs/study/arms/00-matrix.md +20 -0
  563. package/docs/study/arms/01-system-prompt.md +211 -0
  564. package/docs/study/arms/02-tools.md +79 -0
  565. package/docs/study/arms/03-subagents.md +90 -0
  566. package/docs/study/arms/04-skills.md +75 -0
  567. package/docs/study/arms/05-context-management.md +90 -0
  568. package/docs/study/arms/06-memory.md +90 -0
  569. package/docs/study/arms/07-governance.md +71 -0
  570. package/docs/study/arms/08-execution.md +69 -0
  571. package/docs/study/arms/09-observability.md +60 -0
  572. package/docs/study/arms/10-refinement.md +110 -0
  573. package/docs/study/autonomous-engineering-sources.md +277 -0
  574. package/docs/study/autonomy-sources.md +147 -0
  575. package/docs/study/btw-comparison.md +37 -0
  576. package/docs/study/feature-gap-review.md +42 -0
  577. package/docs/study/insights.md +123 -0
  578. package/docs/study/proactive-autonomy.md +408 -0
  579. package/docs/study/roadmap.md +72 -0
  580. package/docs/study/sources/claude-code.md +44 -0
  581. package/docs/study/sources/deepseek-harness.md +102 -0
  582. package/docs/study/sources/harness2.md +50 -0
  583. package/docs/study/sources/kimi-cli.md +42 -0
  584. package/docs/study/sources/omp.md +93 -0
  585. package/docs/study/sources/opencode.md +43 -0
  586. package/docs/study/sources/openhands.md +46 -0
  587. package/docs/study/sources/smolagents.md +40 -0
  588. package/docs/study/sources/swe-agent.md +34 -0
  589. package/docs/study/tui-resource-browser.md +78 -0
  590. package/docs/system-prompt-design.md +196 -0
  591. package/docs/terminal-tui.md +707 -58
  592. package/package.json +43 -13
  593. package/docs/evidence/terminal-2026-10-17/120x40-completed-transcript.ansi.gz +0 -0
  594. package/docs/evidence/terminal-2026-10-17/40x20-settings-interaction.ansi.gz +0 -0
  595. package/docs/evidence/terminal-2026-10-17/40x20-settings-keyboard.ansi.gz +0 -0
  596. package/docs/evidence/terminal-2026-10-17/40x20-welcome.ansi.gz +0 -0
  597. package/docs/evidence/terminal-2026-10-17/80x24-approval-0.ansi.gz +0 -0
  598. package/docs/evidence/terminal-2026-10-17/80x24-question.ansi.gz +0 -0
  599. package/docs/evidence/terminal-2026-10-17/verification.json +0 -130
  600. package/docs/evidence/terminal-2026-10-17-followup/120x40-completed-transcript.ansi.gz +0 -0
  601. package/docs/evidence/terminal-2026-10-17-followup/40x20-settings-interaction.ansi.gz +0 -0
  602. package/docs/evidence/terminal-2026-10-17-followup/40x20-settings-keyboard.ansi.gz +0 -0
  603. package/docs/evidence/terminal-2026-10-17-followup/40x20-welcome.ansi.gz +0 -0
  604. package/docs/evidence/terminal-2026-10-17-followup/80x24-approval-0.ansi.gz +0 -0
  605. package/docs/evidence/terminal-2026-10-17-followup/80x24-plugin-light.ansi.gz +0 -0
  606. package/docs/evidence/terminal-2026-10-17-followup/80x24-question-batch.ansi.gz +0 -0
  607. package/docs/evidence/terminal-2026-10-17-followup/80x24-question.ansi.gz +0 -0
  608. package/docs/evidence/terminal-2026-10-17-followup/app-bundle/80x24-approval-0.ansi.gz +0 -0
  609. package/docs/evidence/terminal-2026-10-17-followup/app-bundle/80x24-plugin-light.ansi.gz +0 -0
  610. package/docs/evidence/terminal-2026-10-17-followup/app-bundle/80x24-question-batch.ansi.gz +0 -0
  611. package/docs/evidence/terminal-2026-10-17-followup/app-bundle/80x24-question.ansi.gz +0 -0
  612. package/docs/evidence/terminal-2026-10-17-followup/app-bundle/verification.json +0 -95
  613. package/docs/evidence/terminal-2026-10-17-followup/global-install/80x24-approval-0.ansi.gz +0 -0
  614. package/docs/evidence/terminal-2026-10-17-followup/global-install/80x24-plugin-light.ansi.gz +0 -0
  615. package/docs/evidence/terminal-2026-10-17-followup/global-install/80x24-question-batch.ansi.gz +0 -0
  616. package/docs/evidence/terminal-2026-10-17-followup/global-install/80x24-question.ansi.gz +0 -0
  617. package/docs/evidence/terminal-2026-10-17-followup/global-install/README.md +0 -27
  618. package/docs/evidence/terminal-2026-10-17-followup/global-install/shell-command-80x24.ansi.gz +0 -0
  619. package/docs/evidence/terminal-2026-10-17-followup/global-install/shell-command.json +0 -18
  620. package/docs/evidence/terminal-2026-10-17-followup/global-install/verification.json +0 -95
  621. package/docs/evidence/terminal-2026-10-17-followup/harness-reference-80x24.json.gz +0 -0
  622. package/docs/evidence/terminal-2026-10-17-followup/harness-reference-final-80x24.json.gz +0 -0
  623. package/docs/evidence/terminal-2026-10-17-followup/harness-reference-scenario.json +0 -60
  624. package/docs/evidence/terminal-2026-10-17-followup/live-codex/README.md +0 -24
  625. package/docs/evidence/terminal-2026-10-17-followup/live-codex/complete-80x24.ansi.gz +0 -0
  626. package/docs/evidence/terminal-2026-10-17-followup/live-codex/verification.json +0 -57
  627. package/docs/evidence/terminal-2026-10-17-followup/omp-reference-80x24-early.json.gz +0 -0
  628. package/docs/evidence/terminal-2026-10-17-followup/omp-reference-80x24.json.gz +0 -0
  629. package/docs/evidence/terminal-2026-10-17-followup/omp-reference-scenario.json +0 -58
  630. package/docs/evidence/terminal-2026-10-17-followup/omp-supplemental-static.json.gz +0 -0
  631. package/docs/evidence/terminal-2026-10-17-followup/rea-artifacts.json +0 -320
  632. package/docs/evidence/terminal-2026-10-17-followup/reference-comparison.json +0 -30
  633. package/docs/evidence/terminal-2026-10-17-followup/reference-comparison.md +0 -133
  634. package/docs/evidence/terminal-2026-10-17-followup/reference-source-observations.json +0 -20
  635. package/docs/evidence/terminal-2026-10-17-followup/verification.json +0 -207
  636. package/src/accounts/accounts.test.ts +0 -333
  637. package/src/accounts/accounts.ts +0 -658
  638. package/src/accounts/env.test.ts +0 -95
  639. package/src/accounts/env.ts +0 -338
  640. package/src/accounts/secrets.ts +0 -50
  641. package/src/accounts/store.ts +0 -338
  642. package/src/capabilities/api.ts +0 -75
  643. package/src/capabilities/runSnapshot.ts +0 -59
  644. package/src/capabilities/types.ts +0 -34
  645. package/src/cli.ts +0 -118
  646. package/src/core/bus.ts +0 -34
  647. package/src/core/changes.ts +0 -33
  648. package/src/core/env.ts +0 -27
  649. package/src/core/errors.ts +0 -32
  650. package/src/core/frontmatter.ts +0 -47
  651. package/src/core/fs.test.ts +0 -38
  652. package/src/core/fs.ts +0 -92
  653. package/src/core/index.ts +0 -193
  654. package/src/core/path.test.ts +0 -14
  655. package/src/core/path.ts +0 -79
  656. package/src/core/projects.ts +0 -90
  657. package/src/core/text.ts +0 -39
  658. package/src/harness.ts +0 -312
  659. package/src/hub/catalog.json +0 -123
  660. package/src/hub/cli.ts +0 -59
  661. package/src/hub/hub.test.ts +0 -205
  662. package/src/hub/hub.ts +0 -256
  663. package/src/hub/schema.ts +0 -81
  664. package/src/index.ts +0 -75
  665. package/src/mcp/connections.ts +0 -614
  666. package/src/mcp/manager.ts +0 -130
  667. package/src/mcp/oauth.ts +0 -195
  668. package/src/mcp/scopeMigration.test.ts +0 -79
  669. package/src/mcp/scopeMigration.ts +0 -204
  670. package/src/mcp/service.test.ts +0 -376
  671. package/src/mcp/service.ts +0 -549
  672. package/src/mcp/types.ts +0 -108
  673. package/src/memory/api.test.ts +0 -82
  674. package/src/memory/api.ts +0 -303
  675. package/src/memory/blocks.test.ts +0 -78
  676. package/src/memory/blocks.ts +0 -408
  677. package/src/memory/caller.ts +0 -69
  678. package/src/memory/curation.test.ts +0 -163
  679. package/src/memory/curation.ts +0 -64
  680. package/src/memory/dispatch.ts +0 -59
  681. package/src/memory/facts.test.ts +0 -41
  682. package/src/memory/facts.ts +0 -248
  683. package/src/memory/graph.ts +0 -103
  684. package/src/memory/health.test.ts +0 -130
  685. package/src/memory/health.ts +0 -74
  686. package/src/memory/maintainer.ts +0 -272
  687. package/src/memory/maintenance.test.ts +0 -176
  688. package/src/memory/maintenance.ts +0 -518
  689. package/src/memory/migrate.ts +0 -79
  690. package/src/memory/operations.ts +0 -150
  691. package/src/memory/proposals.test.ts +0 -168
  692. package/src/memory/proposals.ts +0 -584
  693. package/src/memory/recall.test.ts +0 -115
  694. package/src/memory/recall.ts +0 -278
  695. package/src/memory/references.ts +0 -77
  696. package/src/memory/runContext.ts +0 -93
  697. package/src/memory/secrets.ts +0 -6
  698. package/src/memory/store.test.ts +0 -66
  699. package/src/memory/store.ts +0 -385
  700. package/src/memory/wiki.test.ts +0 -47
  701. package/src/memory/wiki.ts +0 -422
  702. package/src/memory/wikiIndex.test.ts +0 -88
  703. package/src/memory/wikiIndex.ts +0 -116
  704. package/src/plugins/api.ts +0 -181
  705. package/src/plugins/attachments.test.ts +0 -84
  706. package/src/plugins/attachments.ts +0 -141
  707. package/src/plugins/builtin.ts +0 -82
  708. package/src/plugins/catalogue.test.ts +0 -254
  709. package/src/plugins/catalogue.ts +0 -251
  710. package/src/plugins/cli.ts +0 -184
  711. package/src/plugins/discover.ts +0 -151
  712. package/src/plugins/firstParty.test.ts +0 -143
  713. package/src/plugins/firstParty.ts +0 -129
  714. package/src/plugins/hooks.test.ts +0 -250
  715. package/src/plugins/hooks.ts +0 -239
  716. package/src/plugins/identity.ts +0 -37
  717. package/src/plugins/install.test.ts +0 -107
  718. package/src/plugins/install.ts +0 -106
  719. package/src/plugins/inventory.ts +0 -123
  720. package/src/plugins/manifest.ts +0 -76
  721. package/src/plugins/plugins.test.ts +0 -205
  722. package/src/plugins/plugins.ts +0 -189
  723. package/src/plugins/proposal.ts +0 -121
  724. package/src/plugins/runtime.test.ts +0 -40
  725. package/src/plugins/runtime.ts +0 -82
  726. package/src/plugins/trust.ts +0 -142
  727. package/src/plugins/types.ts +0 -149
  728. package/src/prompt/compile.test.ts +0 -261
  729. package/src/prompt/compile.ts +0 -732
  730. package/src/server/methods.ts +0 -349
  731. package/src/server/remote.ts +0 -77
  732. package/src/server/rpc.ts +0 -116
  733. package/src/server/serve.ts +0 -28
  734. package/src/server/server.test.ts +0 -174
  735. package/src/sessions/approvals.ts +0 -118
  736. package/src/sessions/contracts.ts +0 -336
  737. package/src/sessions/conversation.test.ts +0 -177
  738. package/src/sessions/extensionSession.test.ts +0 -74
  739. package/src/sessions/extensionUi.test.ts +0 -65
  740. package/src/sessions/extensionUi.ts +0 -102
  741. package/src/sessions/history.ts +0 -51
  742. package/src/sessions/lineageJoin.ts +0 -75
  743. package/src/sessions/policy.ts +0 -36
  744. package/src/sessions/pricing.ts +0 -60
  745. package/src/sessions/questionBatches.test.ts +0 -110
  746. package/src/sessions/reasoningSummaries.ts +0 -59
  747. package/src/sessions/registry.ts +0 -381
  748. package/src/sessions/runIndex.ts +0 -99
  749. package/src/sessions/runStore.test.ts +0 -152
  750. package/src/sessions/runStore.ts +0 -332
  751. package/src/sessions/runner.ts +0 -604
  752. package/src/sessions/runtimeResources.test.ts +0 -61
  753. package/src/sessions/sessions.test.ts +0 -549
  754. package/src/sessions/sessions.ts +0 -339
  755. package/src/skills/registry.test.ts +0 -104
  756. package/src/skills/registry.ts +0 -413
  757. package/src/terminal/accountsMenu.test.ts +0 -225
  758. package/src/terminal/accountsMenu.ts +0 -382
  759. package/src/terminal/cli.ts +0 -149
  760. package/src/terminal/client.ts +0 -74
  761. package/src/terminal/control.test.ts +0 -23
  762. package/src/terminal/control.ts +0 -23
  763. package/src/terminal/controller.ts +0 -291
  764. package/src/terminal/hubMenu.ts +0 -24
  765. package/src/terminal/launch.test.ts +0 -25
  766. package/src/terminal/launch.ts +0 -48
  767. package/src/terminal/piExtension.lifecycle.test.ts +0 -55
  768. package/src/terminal/piExtension.ts +0 -259
  769. package/src/terminal/pluginControl.test.ts +0 -146
  770. package/src/terminal/pluginMenu.ts +0 -112
  771. package/src/terminal/socket.test.ts +0 -71
  772. package/src/terminal/socket.ts +0 -232
  773. package/src/terminal/standalone.test.ts +0 -167
  774. package/src/terminal/standalone.ts +0 -153
  775. package/src/terminal/terminal.test.ts +0 -399
  776. package/src/terminal/terminals.ts +0 -553
  777. package/src/terminal/tui/application.test.ts +0 -114
  778. package/src/terminal/tui/application.ts +0 -491
  779. package/src/terminal/tui/commands.test.ts +0 -218
  780. package/src/terminal/tui/commands.ts +0 -361
  781. package/src/terminal/tui/dialogs.ts +0 -301
  782. package/src/terminal/tui/editor.test.ts +0 -84
  783. package/src/terminal/tui/editor.ts +0 -79
  784. package/src/terminal/tui/keybindings.test.ts +0 -22
  785. package/src/terminal/tui/keybindings.ts +0 -50
  786. package/src/terminal/tui/piAdapter.ts +0 -62
  787. package/src/terminal/tui/presentation.test.ts +0 -79
  788. package/src/terminal/tui/questions.test.ts +0 -41
  789. package/src/terminal/tui/questions.ts +0 -47
  790. package/src/terminal/tui/runtime.socket.test.ts +0 -104
  791. package/src/terminal/tui/runtime.test.ts +0 -215
  792. package/src/terminal/tui/runtime.ts +0 -388
  793. package/src/terminal/tui/sessionUi.ts +0 -24
  794. package/src/terminal/tui/settings.test.ts +0 -150
  795. package/src/terminal/tui/settings.ts +0 -188
  796. package/src/terminal/tui/status.test.ts +0 -70
  797. package/src/terminal/tui/status.ts +0 -109
  798. package/src/terminal/tui/theme.ts +0 -174
  799. package/src/terminal/tui/tools.test.ts +0 -145
  800. package/src/terminal/tui/tools.ts +0 -142
  801. package/src/terminal/tui/transcript.test.ts +0 -25
  802. package/src/terminal/tui/transcript.ts +0 -124
  803. package/src/terminal/tui/ui.test.ts +0 -313
  804. package/src/terminal/tui/ui.ts +0 -166
  805. package/src/terminal/tui/welcome.ts +0 -102
  806. package/src/tools/askUser.test.ts +0 -69
  807. package/src/tools/askUser.ts +0 -59
  808. package/src/tools/definitions.ts +0 -187
  809. package/src/tools/maintenance.ts +0 -24
  810. package/src/tools/memoryTools.ts +0 -22
  811. package/src/tools/pluginPropose.ts +0 -41
  812. package/src/tools/registryWrite.test.ts +0 -101
  813. package/src/tools/registryWrite.ts +0 -182
  814. package/src/tools/spawnSubagent.ts +0 -92
  815. package/src/tools/types.ts +0 -39
  816. package/src/web/safeRequest.ts +0 -171
  817. package/src/web/text.ts +0 -53
  818. package/src/web/tools.ts +0 -134
  819. package/src/web/web.test.ts +0 -141
@@ -0,0 +1,90 @@
1
+ # Arm 03 — Subagents
2
+
3
+ Status: **core four audited** (opencode, omp, dsh, plus our ADR-0003 lineage);
4
+ openhands/claude-code pending.
5
+
6
+ ## Design space
7
+
8
+ Spawn model (tool vs scheduler vs server), child context (fresh, forked, or
9
+ continuable), isolation primitives (separate session, separate history, own
10
+ worktree/capabilities), delivery (block vs background + receipts), routing
11
+ (manual naming vs description-based auto-selection), and depth/capacity limits.
12
+
13
+ ## Comparison
14
+
15
+ **this harness.** `spawn_subagent` + `wait_subagents` tools
16
+ (`src/tools/spawnSubagent.ts`): child is "a fresh child run for independent
17
+ work… no conversation history and no more capabilities than you"; spawn returns
18
+ the child run id immediately; results arrive **automatically before you finish**
19
+ (native-history delivery receipts per ADR-0003); 24k per-report cap
20
+ (`spawnSubagent.ts` `reported()`); depth limits live in
21
+ `src/sessions/subagents.ts` (exported constants). Architectural statement:
22
+ Architectural statement:
23
+ opaque-run children (runStore writes, opaque ids).
24
+
25
+ **opencode — subagent is a tool, not a scheduler.** Agents registry
26
+ (`mode: primary|subagent`) with selectability excluding subagents from direct
27
+ conversation (`.../core/src/agent.ts:74-75`). The `subagent` tool rejects
28
+ primaries/unknowns, enforces depth via config, asserts permission, then creates
29
+ a child session and prompts it "You are a subagent spawned by another session."
30
+ — **fresh context, nothing inherited** (`.../tool/plugin/subagent.ts:129-218`).
31
+ Foreground variant blocks and wraps the final text in
32
+ `<subagent sessionID=… state="completed">`; background replies immediately with
33
+ an explicit **never-poll instruction** and completion notification
34
+ (`.../subagent.ts:19-27,229-265`). **Routing is description-based**: a context
35
+ hook appends "Available subagents:" with each agent's own description to the
36
+ tool description (`.../subagent.ts:282-309`).
37
+
38
+ **omp — spawn machinery with isolation budgets.** The `task` tool; agent
39
+ definitions from bundled + `~/.omp/agent/agents/*.md` + `.omp/agents/*.md`
40
+ (`.../task/index.ts:4-10`). `SpawnRun` holds a semaphore permit and streams
41
+ progress; the owner adopts binding abort signal/sinks
42
+ (`.../task/spawn-run.ts:47-88`). **Speculative launch starts the child while
43
+ the `tasks[]` argument is still streaming** (`.../task/speculative-launch.ts`).
44
+ Isolation: pinned settings, advisor forced off, **mid-turn compaction forced on
45
+ (whole assignment is one turn)**, isolated runs get their own **worktree** and
46
+ may not expose roots outside it (`.../task/executor.ts:1132,4033-4055,4339`).
47
+ Structured children get `yield` to stream partial results
48
+ (`docs/task-agent-discovery.md:38`).
49
+
50
+ **dsh — services + backends, two child topologies.** `ctx.subagents` +
51
+ provider backends (local, ACP, Codex, Claude DSH-SDK) + a tool plugin
52
+ (`.../packages/subagent/README.md:27-35`). Spawn returns `started subagent
53
+ <childId>` immediately; a completion notice delivery later
54
+ (`.../tool-subagent/README.md:59`). `spawn` = fresh child; **`fork` = seeded
55
+ from the parent's completed history** (`.../subagent/README.md:28-29` — the one
56
+ source with tree-history in context children). Local children **continue
57
+ accepting messages** (cold-resume); external backends "execute once"
58
+ (`:12,61`). Defaults: 8 active, depth 1 (`.../subagent/README.md:53,49`).
59
+ The model names presets from an enum allowlist; **no description routing**
60
+ (`.../tool-subagent/README.md:52,68`).
61
+
62
+ **openhands (pending)** conversation-per-container REST server;
63
+ **claude-code (pending)** `.claude/agents/*.md` description routing.
64
+
65
+ ## Trade-offs
66
+
67
+ - **Receipts vs block.** Ours receipts-then-auto-deliver; opencode's
68
+ foreground blocks and the background variant needs a no-poll instruction to
69
+ stop wasted loops — our "results arrive automatically" tool description does
70
+ the same thing natively. block variants pay latency, buy simplicity.
71
+ - **What the child sees.** Everyone defaults fresh. dsh's `fork` (parent history
72
+ as seed) is the only in-history-inherited design — powerful for "continue in
73
+ the main context's condition", dangerous for either prosecution
74
+ side-venting or slow joins; ours rejects it by `"no more capabilities than
75
+ you"` + fresh-run rule.
76
+ - **Isolation granularity.** worktree (omp isolated runs) is the strongest
77
+ world-isolation; ours ties isolation to account and run records instead. The
78
+ `tools` CSV narrowing idea maps to our `capabilities.intersect` — same
79
+ primitive, different vocabulary.
80
+ - **Routing.** Description-based auto-pick (opencode, and claude-code's docs)
81
+ puts all selection power in the model's reading; ours requires named briefs
82
+ and a Directory when names exist, which matches the opaque-id
83
+ contract (no names in the harness; names arrive via Directory).
84
+
85
+ ## Adoption candidates
86
+
87
+ | # | Idea | From | Land as | Tier |
88
+ |---|---|---|---|---|
89
+ | S1 | Inject capability-set summaries (slots "Current subagents") into the tool description **when names exist via Directory**, instead of static description | opencode context hook | tool provider building the spawn tool's description | T2 (only if app supplies names) |
90
+ | S2 | Receipt text carries child tool limits next to the 24k cap (`reported()` already does this only implicitly; make the receipt self-describing) | ours (deficiency) | `spawnSubagent.ts` | T1 |
@@ -0,0 +1,75 @@
1
+ # Arm 04 — Skills & loading
2
+
3
+ Status: **three sources audited** (dsh, opencode, harness² + our tree);
4
+ omp's skill tool verified as builtin only (`manage_skill`); claude-code/openhands pending.
5
+
6
+ ## Design space
7
+
8
+ Skill format and discovery, what ships in context (name+description only vs
9
+ whole body), how bodies are fetched (tool call vs command), trust (does loading
10
+ run code?), and the ruling constraint here: the harness is the only loader, with
11
+ extension discovery switched off.
12
+
13
+ ## Comparison
14
+
15
+ **this harness.** Skills are part of the versioned tree (c6), loaded only when
16
+ their exact code is trusted (`src/tree/trust.ts`), surfaced via tree sections
17
+ and `Plugins.loading` (src/plugins/) — extension discovery is disabled; the
18
+ seed includes an `autotrigger` mechanism (`src/tree/tree.ts`, used by
19
+ `src/tree/seed.ts`) — skills may carry trigger conditions compiled into
20
+ always-on text.
21
+
22
+ **opencode.** `SKILL.md` files found by a depth-6 scan
23
+ (`.../core/src/config/plugin/skill-scan.ts:3,29`), also fetched from URL
24
+ indexes into a global dir (`.../skill/discovery.ts:112,194`); availability is
25
+ permission-gated (`.../skill.ts:33-34`). Progressive disclosure: instructions
26
+ list skills in system context; the `skill` tool lazily loads the body "when
27
+ the task at hand matches its description", including a sampled file list
28
+ (`.../tool/plugin/skill.ts:19-33`).
29
+
30
+ **omp.** `manage_skill` builtin (30 builtins list,
31
+ `.../tools/builtin-names.ts:24`); skills also **emitted as a product of memory
32
+ consolidation** (`docs/memory.md:78-88` — learned lessons land in `skills/` on
33
+ disk), an unusual write-back path. Trust/approval per separate ability loading
34
+ unverified.
35
+
36
+ **dsh.** The cleanest contract: before the first request the model receives a
37
+ **durable catalog** — "available skill names and capped descriptions"
38
+ (default cap 500 chars) — and loads body instructions through the `skill` tool;
39
+ `/name` invocation injects the same instructions the user named;
40
+ catalog changes append a **complete replacement** message, empty catalog retires
41
+ old names (`.../packages/skill/tool-skill/README.md:12,54-57`).
42
+
43
+ **harness² — the validation-first school.** Frontmatter requires `name:`
44
+ matching the directory and a `description:`; a malformed file is silently dropped
45
+ load if malformed (`.../core/prompts.py:113-115` in the tts pack: naming rules,
46
+ and `.../prompts.py:151-157`: "An unnamed skill is never opened anyway").
47
+ Its three discard rules (trigger line naming the skill in always-on text; no
48
+ template braces; shipped scripts travel with the skill,
49
+ `.../prompts.py:148-167`, `.../core/tree.py` validation) turn prompt-prose
50
+ conventions into machine-checks — the same philosophy as our `validate()`.
51
+
52
+ **claude-code / openhands (pending).** SKILL.md progressive disclosure spec and
53
+ SDK microagents respectively.
54
+
55
+ ## Trade-offs
56
+
57
+ - **Catalog hygiene.** dsh's "complete replacement + empty retires" keeps
58
+ staleness windows near-zero on a cheap message; opencode's rescan keeps
59
+ file-truth simplicity. The durable-catalog variant is the better fit for our
60
+ file truth. The durable-catalog variant is the better fit for our
61
+ stable-prefix diagnostics (context updates could carry skill deltas).
62
+ - **Validation turns conventions into gates.** harness² proves skill trigger
63
+ lines and shipped scripts can be enforced mechanically; ours additionally
64
+ require trust for *code* — the sharpest position (everything model-visible is
65
+ a plugin, c8 loads only trusted content).
66
+ - **Cost shape.** Everyone: bodies are free until invoked; naming is the true
67
+ gate. An unnamed skill is dead weight in all four.
68
+
69
+ ## Adoption candidates
70
+
71
+ | # | Idea | From | Land as | Tier |
72
+ |---|---|---|---|---|
73
+ | K1 | Emit a **skill catalog delta** (name + capped description) in the hidden `xingular-context` message instead of relying on static tree text alone, when trees change mid-run | dsh durable-catalog + our context-update channel | `src/prompt/compile.ts` context update contents | T2 |
74
+ | K2 | Adopt harness²'s three validation rules into `validate()` (trigger-line presence for skills; script existence paths already enforced, re-verify) | harness² | tree validation + tests | T1 verify-first |
75
+ | K3 | **Enforce skill trigger lines mechanically** (autotrigger already carries triggers; keep prose+code in sync) | both | `src/tree/tree.ts` validation | T1 verify-first |
@@ -0,0 +1,90 @@
1
+ # Arm 05 — Context management
2
+
3
+ Status: **core three audited** (opencode, omp, dsh); smolagents skeleton;
4
+ ours=pending inventory beyond contracts; claude-code/openhands pending.
5
+
6
+ ## Design space
7
+
8
+ What is sent per turn vs fetched on demand; compaction triggers and strategies;
9
+ where summarization sits relative to the cache; truncation of tool outputs;
10
+ token accounting granularity (uncached input / cache read+write separation).
11
+
12
+ ## Comparison
13
+
14
+ **this harness (contracts).** Stable system prefix + hidden `xingular-context`
15
+ native-history message for changing state; usage accounting: `inputTokens` is
16
+ uncached input, cache reads/writes separate, reasoning inside output,
17
+ `usage.updated` cumulative per run (repo contracts). Compaction story pending
18
+ inventory (whether sessions rely on Pi native history management + context
19
+ updates).
20
+
21
+ **opencode — summarizer as a resident agent.** Triggers: `auto` when estimated
22
+ context ≥ ceiling (window − max(15%, 16k) reserve), `overflow` after provider
23
+ rejection, `manual` (`.../session/compaction.ts:53-57,93-101,849-856`); auto
24
+ skips until a fresh provider measurement exists (`:245-253`).
25
+ Strategy: a dedicated compaction agent/model summarizes every dialog into a
26
+ **fixed template** (Objective / Requirements / Decision / Work State / Next
27
+ Move / Relevant Files) while keeping the newest `keep` tokens verbatim as a
28
+ `<conversation-checkpoint>`; **the whole conversation is sent to the
29
+ summarizer to reuse the prefix cache** (`:107-138,256-332`). Rejection retries
30
+ at 70/50/35% of the rejected size (`:455-461`). Generic ToolOutput truncation to
31
+ maxLines/maxBytes with `metadata.truncated`
32
+ (`.../core/src/tool-output.ts:28-88`); shell saves full output to a file and
33
+ returns a bounded tail (`.../tool/plugin/shell.ts:42-43`).
34
+ Accounting: latest assistant response is the anchor
35
+ (`input+cacheRead+cacheWrite+output+reasoning` measured) plus an estimate of
36
+ unmeasured since (`:812-842`); 4 chars/token estimate ±15%
37
+ (`.../session/model-request.ts:53-54`).
38
+
39
+ **omp — the strategy ladder + deterministic frontier.** Trigger points: post-turn
40
+ over `resolveThresholdTokens`, mid-turn, idle, overflow-recovery
41
+ (`.../session/session-maintenance.ts:626,2147,2246,2412`).
42
+ `compaction.methodOrder` ladder: LLM summarize (regular/handoff), `shake`
43
+ (local mechanical elision to `artifact://` refs), `snapcompact`
44
+ (`docs/compaction.md:202-215`). **Snapcompact is local/deterministic, no LLM**:
45
+ discarded history serialized with per-result caps into provider-aware PNG
46
+ bitmap frames (typography per provider family), persisted and re-attached each
47
+ rebuild (`packages/snapcompact/README.md:3-29,44-68`). Budgets: kept context
48
+ ≤60% of threshold, target ≤80% (`docs/compaction.md:217,221`). Cache care:
49
+ pruning blanks outputs only within the model's `prompt-cache-lookback`
50
+ (`docs/compaction.md:248`); summaries drop whole call/result pairs (`:250`).
51
+ Byte-stable system prompt between turns is an invariant
52
+ (`.../session/agent-session.ts:2607`).
53
+
54
+ **dsh — formulas + query-ability.** `compaction-basic` trigger:
55
+ `floor(min(W×0.8, W−O−headroom))`, headroom 65_536, keeps newest 16% of the
56
+ usable window, one extra model request, summary-only retention
57
+ (`.../packages/compaction/compaction-basic/README.md:12,32,62-68`).
58
+ Oversized tool results pruned first; images offloaded to placeholders
59
+ (`.../packages/compaction/README.md:31-32`). `session-query` = SQLite FTS5
60
+ full-text search over the durable log, independent of compaction
61
+ (`.../packages/session-query/README.md:12,30`).
62
+
63
+ **smolagents.** `AgentMemory` is a step log (ToolCall/ActionStep/PlanningStep/
64
+ FinalAnswer) rebuilt to messages with `summary_mode` each step — replay-style,
65
+ no incremental fades (`external/smolagents/src/smolagents/memory.py:25,46,92,206-229`).
66
+
67
+ ## Trade-offs
68
+
69
+ - **Summarizer economics.** opencode sends the *whole transcript* to the
70
+ summarizer to reuse the prefix cache — larger paid input per compression, but
71
+ cache-discounted and higher-fidelity. dsh keeps only the summary (cheapest
72
+ retention). The choice hinges on whether compaction runs once or repeatedly.
73
+ - **A deterministic rung is the safety net.** omp's ladder means a compaction
74
+ never fully depends on a slow/failing LLM pass (shake/snapcompact). That
75
+ resilience has no counterpart in opencode/dsh (dsh retries on overflow).
76
+ - **Searching beats re-shipping.** dsh's session-query (and omp's shard
77
+ omp's shard-style retrieval in `shake`) treat old context as a database, not a
78
+ transcript; "retrieve details through tools when needed" matches our
79
+ CONTEXT_GUIDANCE wording (`src/prompt/compile.ts:333`).
80
+ - **Accounting honesty.** opencode's anchor-measured + estimated-elsewhere and
81
+ our uncached/cached split are compatible; the 4-chars/token estimate is the
82
+ common fixed-density fallback (dsh token-meter identical semantics).
83
+
84
+ ## Adoption candidates
85
+
86
+ | # | Idea | From | Land as | Tier |
87
+ |---|---|---|---|---|
88
+ | C1 | A fixed-template summary shape (named sections) for any summarization run, so restored context is predictable and diffable | opencode compaction template | refine/trajectory or session docs; needs Pi-native compaction knowledge first | T2 verify-first |
89
+ | C2 | Prune-first ordering (oversized tool outputs) before any summarization | dsh + omp | facet of the context update path | T2 verify-first (what already trims?) |
90
+ | C3 | Keep a verbatim tail checkpoint marker in any summary | opencode | same home as C1 | T2 |
@@ -0,0 +1,90 @@
1
+ # Arm 06 — Memory
2
+
3
+ Status: **core four audited** (omp, dsh, opencode, harness²) + our Wiki;
4
+ claude-code/openhands pending.
5
+
6
+ ## Design space
7
+
8
+ What counts as memory (instruction files, durable notes, episodic stores,
9
+ learned harnesses), who writes and when (model via tools, background
10
+ consolidation, per-write hooks), what shapes entries and their limits, and how
11
+ recall is gated (never ship rubrics or other answer-leaking data).
12
+
13
+ ## Comparison
14
+
15
+ **this harness.** Wiki notes: `noteChange` fires once the file is in place, in
16
+ the background; a hook's failure never reaches the write; every new write point
17
+ calls it too (repo contract). Injection sections are bounded (`WIKI_BUDGET`,
18
+ `NOTES_LISTED` in `src/prompt/compile.ts:167` etc.), listing notes + revision,
19
+ with more available via `wiki-list`/`wiki-search` tools. The refine experience
20
+ library is a separate, answer-free lane (arm 10) — never ships rubrics
21
+ (`refine/evidence.ts` guard).
22
+
23
+ **omp — the memory machine.** Five `memory.backend` modes: off | local |
24
+ hindsight | mnemopi | sharpshooter (`docs/memory.md:3-11`). A startup
25
+ background job runs two phases (per-session extraction → global consolidation
26
+ with lease+heartbeat, skipped for subagents), producing per-project `MEMORY.md`
27
+ (+ summary) and lessons and **skills/** on disk
28
+ (`.../memories/index.ts:29-67`; `docs/memory.md:22-26,74-89`). Injection =
29
+ Memory Guidance block at session start sharing a 5000-token budget with
30
+ lessons (`docs/memory.md:132`); `learn` lessons capped 100 entries × 2000
31
+ chars, redacted (`docs/memory.md:70`). `mnemopi` = local SQLite
32
+ working/episodic engine with embeddings and a `memory://` read protocol plus
33
+ model-facing tools `recall|retain|reflect|memory_edit`
34
+ (`packages/mnemopi/README.md:5-8`; `docs/memory.md:34-46`). `hindsight` =
35
+ remote vector service; recall on first user turn, auto-retain every N turns
36
+ (`.../hindsight/state.ts:385-388`). Writes happen minutes/days later — nothing
37
+ is "auto right after task".
38
+
39
+ **dsh — durability without a memory package.** No memory package by design:
40
+ the durable session log (immutable JSONL + checkpoint policy,
41
+ `.../packages/session/README.md:38-39`), todos persisting across sessions
42
+ (owned by the session; whole-list replace, `.../packages/todo/README.md:12`),
43
+ `spill` storing oversized text out of context with locator+guidance
44
+ (`.../packages/spill/README.md:12,30-31`), `storage` for app data that is
45
+ **never model-visible** (`.../packages/storage/README.md:12,27-30`),
46
+ `deliverables` recording outputs as client-only events
47
+ (`.../packages/deliverables/README.md:12,27-28`). Cross-session memory:
48
+ deliberately absent.
49
+
50
+ **opencode.** No cross-session memory product: per-session todos (feature-gated
51
+ `experimental.todo`), skills/config as durable files, snapshot revert/restore
52
+ (`.../tool/plugin/todo.ts:50-75`; `.../session/revert.ts:37-42`). Memory is a
53
+ community-plugin story.
54
+
55
+ **harness².** Memory belongs to refinement: the per-domain experience library
56
+ carries full adopted trees + `EXPERIENCE.md` (why + lesson) per task, scoped
57
+ per run and domain, starting empty
58
+ (`external/harness2/harness2/core/library.py:15-23`). At proposal time the
59
+ library is *read* (`INDEX.md` browse, `prompts.py:320-328`), workspace facts
60
+ are re-verified before reuse — memory is a drift-checked `[cue→lesson]`, not a
61
+ freeform store. The editable tree also holds `LongTermMEMORY.md` as c3 durable
62
+ facts, "ALWAYS ON" with the output-budget price tag (`.../prompts.py:104,426`).
63
+
64
+ **claude-code (pending).** CLAUDE.local.md, `#` quick-notes, user memory file
65
+ (publishable specs; citations pending).
66
+
67
+ ## Trade-offs
68
+
69
+ - **Where memory lives.** The file the model reads (`MEMORY.md`, our Wiki) is
70
+ the visible tier; the episodic store (mnemopi) is the cheap tier for
71
+ per-project recall. omp is the only source with both, and it pays for it with
72
+ background jobs and lease/heartbeat machinery.
73
+ - **Learning to write.** harness²'s lessons have a *scope contract*
74
+ (generic/procedural, but never task facts; "too generic changes nothing, task
75
+ facts are wrong anchors") — enforced by prompt discipline and by the `cue`
76
+ shape in ours (`src/refine/prompts.ts:425`). Any Wiki lesson should carry the
77
+ same contract (pattern vs fact).
78
+ - **Caps and redaction.** omp's budget regime (100×2000 lessons, injection caps)
79
+ caps) mirrors our WIKI_BUDGET approach; worth remembering that redaction is
80
+ part of the cap story, not just size.
81
+ - **Nothing is model-visible that shouldn't be** (dsh `storage`): keep the
82
+ separation of run records (ours).validate Never model-visible: run events
83
+ used for the Wiki must already be validated kinds (family rule).
84
+
85
+ ## Adoption candidates
86
+
87
+ | # | Idea | From | Land as | Tier |
88
+ |---|---|---|---|---|
89
+ | M1 | Apply harness²'s lesson-shape contract to any Wiki note that summarizes behavior (cue = shape of situation, lesson = checkable operation, NO_ENTRY when unsupported) | harness² + omp caps | Wiki note template/validation (plugin) | landed: `src/history/lessons.ts` (PROP-0008) |
90
+ | M2 | Evaluate a `memory://`-style read protocol (note retrieval as URI) — compare cost against plain wiki tools before adopting | omp mnemopi | none (note only) | T3 |
@@ -0,0 +1,71 @@
1
+ # Arm 07 — Governance
2
+
3
+ Status: **core three audited** (opencode, omp, dsh) + swe-agent blocklists,
4
+ smolagents executor posture; claude-code/openhands pending.
5
+
6
+ ## Design space
7
+
8
+ Who may call what, expressed how (per-call gate, tier×policy, event pipeline,
9
+ modes), approval UX (`ask` as outcome), fallback behavior (fail-closed or not),
10
+ trust for loaded code, secret/account isolation.
11
+
12
+ ## Comparison
13
+
14
+ **this harness (contracts).** Per-call gate as the final extension; standing
15
+ approvals; single-use operation approvals in the app scope; account pinning
16
+ and redaction; tree plugins load only when their exact code is trusted
17
+ (`src/tree/trust.ts`).
18
+
19
+ **opencode — effect assertions with a wildcard ladder.** Rules: `allow|deny|ask`
20
+ literals, `findLast` wildcard resource match, default ask; agent rules and
21
+ session-level rules merge; a missing agent rule means deny-all
22
+ (`.../core/src/permission.ts:87-97,158-172`); user-saved "always allow"
23
+ (`:148-155`); catalog filtering only for wildcard-deny leaves
24
+ (`.../tool.ts:233,293-296`). Plugins may reject calls via `execute.before`
25
+ (`.../packages/plugin/src/effect/tool.ts:20-52`) — handy, but note the gate
26
+ stays the execution boundary's last authority only if core retains its own
27
+ assert.
28
+
29
+ **omp — declared tiers and modes.** `ToolTier = read|write|exec` per tool
30
+ (exec default when unclaimed), per-tool policy `allow|deny|prompt`, modes
31
+ `always-ask | write | yolo`; **missing context fails closed to always-ask**
32
+ (`.../tools/approval.ts:17-18,53-84,100,1226-1230`). Extension hooks wrap every
33
+ call (`extensibility/hooks/tool-wrapper.ts`).
34
+
35
+ **dsh — pipeline events, not a package.** Gate inside dsh-tools:
36
+ `tools/pre-execute` (allow/deny/ask) → monotonic guard() reasons → execute →
37
+ post-execute → result (observe-only)
38
+ (`.../packages/core/tools/README.md:89,109`; ask at `.../index.ts:608-612`).
39
+ Bundle base ships a default policy confining file writes and asking before
40
+ risky actions (`.../bundle/base/README.md:50`). OS sandbox separately:
41
+ file-effect policy classes with Landlock/Seatbelt/Windows backends and one-time
42
+ approved escalation (`.../packages/sandbox/README.md:12,30`).
43
+
44
+ **swe-agent.** Governance = curation: blocklist files in bundles
45
+ (`external/swe-agent/tools` listing); the environment's own command filter
46
+ (pending detail).
47
+
48
+ **smolagents.** Almost none in-source; the free executor (interception-based
49
+ local or paid remote) carries the risk — the anti-reference for our no-code-actions stance.
50
+
51
+ **claude-code (pending).** Permission modes + allow/deny rules + hooks.
52
+
53
+ ## Trade-offs
54
+
55
+ - **Declarative vs hook-composed.** A user wanting "always allow reads, ask on
56
+ writes" gets legibility from omp's tables; a plugin author gets power from
57
+ opencode's before-hooks. Our per-call gate can host both: tiers inform, hooks
58
+ advise, gate decides.
59
+ - **Fail-closed culture.** omp fails closed on missing policy; opencode defaults
60
+ ask; dsh asks by bundle default. Convergent good posture — record as a
61
+ shared norm, and keep our own default equally closed.
62
+ - **Escalations are one-time, auditable.** dsh's one-time approved sandbox
63
+ escalation and our single-use approvals express the same idea; forcing a
64
+ person to re-re-approve persistent bypasses is the safer curve.
65
+
66
+ ## Adoption candidates
67
+
68
+ | # | Idea | From | Land as | Tier |
69
+ |---|---|---|---|---|
70
+ | G1 | Tier-per-tool declarations inform standing-approval wording (reads bulk-allowed, writes asked) | omp | ToolPolicy documents + default policy | T1 |
71
+ | G2 | Codify "policy missing ⇒ ask" as an invariant test | omp fail-closed | src tests around the gate | T1 |
@@ -0,0 +1,69 @@
1
+ # Arm 08 — Execution
2
+
3
+ Status: **core three audited** (opencode, omp, dsh) + swe-agent environments,
4
+ smolagents executors; hands pending.
5
+
6
+ ## Design space
7
+
8
+ Where a step's process runs (own process, PTY owner, container), sandbox
9
+ mechanics per OS, output shapes (streaming, truncation, side-files), and who
10
+ owns the terminal surface.
11
+
12
+ ## Comparison
13
+
14
+ **this harness (contracts).** Host owns PTY and supervision; the harness owns
15
+ the terminal launch spec; a session runs in its account's own Pi agent folder,
16
+ never `~/.pi` (isolation by account).
17
+
18
+ **opencode.** The `shell` tool runs via the core Shell service returning
19
+ bounded tail output with full output saved to a file
20
+ (`.../tool/plugin/shell.ts:17-23,42-43`). `persistent-pty` is a separate
21
+ per-server daemon for owned PTYs rooted at `<state>/pty` — for interactive
22
+ frontends, distinct from the tool path
23
+ (`.../core/src/persistent-pty/index.ts:6-23,129` — tool-vs-PTY overlap
24
+ unverified).
25
+
26
+ **omp.** The strongest in-process Unix environment: bash runs inside a Rust
27
+ `pi-shell` host **with vendored uutils coretools (pi-builtins)** — real
28
+ utilities, one process (`crates/pi-shell/Cargo.toml:18`,
29
+ `crates/pi-builtins/src/`). Always non-interactive env (pagers off,
30
+ TERM=dumb, credential prompts fail via `false`)
31
+ (`.../exec/non-interactive-env.ts:6-25`). No OS-level sandbox located
32
+ (unverified absence).
33
+
34
+ **dsh.** Layered: OS sandbox classes (read-only / workspace-write /
35
+ danger-full-access on Landlock/Seatbelt/Windows tokens, one-time approved
36
+ escalation), exactly one shell executor per composition exposing `bash`/`pwsh`
37
+ tools, and a single `ctx.subprocess` service with bounded output and scrubbed
38
+ env (`.../sandbox/README.md:12,30`; `.../shell/README.md:12,38`;
39
+ `.../subprocess/README.md:12,27`).
40
+
41
+ **swe-agent.** Containerized bash environments per run with tool bundles
42
+ bound to the interface (`sweagent/environment/`); benchmark single-shot
43
+ workspaces.
44
+
45
+ **smolagents.** Local executor intercepts/denies dangerous calls in-process;
46
+ remote (E2B etc.) otherwise (`local_python_executor.py`, `remote_executors.py`).
47
+
48
+ ## Trade-offs
49
+
50
+ - **In-process Unix vs OS sandbox.** omp buys speed/fidelity with a Rust-hosted
51
+ environment; dsh buys verifiable confinement with OS primitives. This harness
52
+ runs on a host's PTY, so the OS-sandbox direction (dsh) is the compatible
53
+ one; "in-process coretools" is an execution detail of pi, not adoptable
54
+ machinery here without duplicating rust-supported layers.
55
+ - **Two command paths is the norm.** opencode (tool shell vs owned PTY) and dsh
56
+ (shell executor vs subprocess service) both split "model calls" from
57
+ "platform plumbing" — our launch-spec/PTY split matches; the invariant to
58
+ keep: environments are per-account, launched by spec, never shared across
59
+ accounts.
60
+ - **Output hygiene** (bounded tails + side files, scrubbed env, non-interactive
61
+ defaults) is universal; treat as a checklist for any new tool rather than a
62
+ design to adopt.
63
+
64
+ ## Adoption candidates
65
+
66
+ | # | Idea | From | Land as | Tier |
67
+ |---|---|---|---|---|
68
+ | E1 | Sandboxing classes as a ToolPolicy option (read-only/workspace-write) for *host* integrations — offered, never default | dsh | ToolPolicy scope option | T2 (needs app-level sandbox plumbing) |
69
+ | E2 | "One subprocess service" norm: all child spawns montage through one owned helper with bounded output + env scrub | dsh subprocess | App-sidecar ownership unchanged; only normative doc | T1 as ADR text |
@@ -0,0 +1,60 @@
1
+ # Arm 09 — Observability
2
+
3
+ Status: **core three audited** (opencode, omp, dsh) + swe-agent trajectories;
4
+ hands pending.
5
+
6
+ ## Design space
7
+
8
+ What is recorded (events, trajectories, usage), validation of records, who may
9
+ write run records, live relay to interfaces, retention/redaction, and cost
10
+ accounting granularity.
11
+
12
+ ## Comparison
13
+
14
+ **this harness (contracts).** Validated run events saved per run by the only
15
+ writer (`sessions/runStore.ts`); `usage.updated` cumulative per run with the
16
+ uncached-input / cache-read / cache-write split; app relays to UI.
17
+
18
+ **opencode.** "event-logger.ts listens on the event bus and logs only
19
+ allow-listed config-type events (agent/provider/model/command/config updated),
20
+ as a global node" (`.../core/src/event-logger.ts:10-19`). Usage published as
21
+ `SessionEvent.UsageRecorded` from the compaction anchor
22
+ (`.../session/compaction.ts:632-639`); trajectory surface lives in session-ui
23
+ and the TUI (packages listing).
24
+
25
+ **omp.** `omp stats` — local web dashboard with live ingest (port 3847)
26
+ covering AI usage, with per-session ledgers available
27
+ (`packages/stats/README.md:3,9,31-35`); `wire` package supplies transport;
28
+ judgment roles record usage too (`.../judgment/index.ts:6-10`).
29
+
30
+ **dsh.** Telemetry is an OTel transport only — "business consumers own events,
31
+ identities, redaction"; feedback-authorized upload, default `FEEDBACK_ONLY`
32
+ (`.../packages/telemetry/README.md:12,25`; `.../bundle/base/README.md:50`).
33
+ Business events flow through the session event stream.
34
+
35
+ **swe-agent.** trajectory JSON per run + a separate inspector to browse them
36
+ (`external/swe-agent/trajectories`, `sweagent/inspector/`).
37
+
38
+ **smolagents.** `monitoring.py` metrics + `AgentLogger` markdown logs; gradio UI.
39
+
40
+ ## Trade-offs
41
+
42
+ - **Where transport ends.** The dsh rule — a transport package knows nothing
43
+ about business events — is the cleanest boundary. Our runStore already
44
+ *is* the business schema; be careful that nothing in run records assumes an
45
+ application consumer (they don't: read-only records).
46
+ - **Local dashboards vs relay.** omp's stats serves a self-hosted view; ours
47
+ hands validated events to a UI. Same functionality, different home; nothing
48
+ to adopt; the one check if we ever add an export path: no
49
+ duplicate charges on relaunch (event ids dedupe).
50
+ - **Cost accounting alignment.** Everyone anchors usage at the latest provider
51
+ response and estimates lagging items (opencode anchor pattern at
52
+ `compaction.ts:812-842`). Ours does the same via usage.updated — align
53
+ definitions (reasoning inside output) with any upstream comparisons to
54
+ prevent double-cost surface.
55
+
56
+ ## Adoption candidates
57
+
58
+ | # | Idea | From | Land as | Tier |
59
+ |---|---|---|---|---|
60
+ | O1 | A "transport owns nothing about identities" doc commitment when any telemetry-like export exists (apps may add; harness stays identity-blind) | dsh telemetry | a para note in repo README | T1 doc |