@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,42 @@
1
+ # Harness feature-gap review
2
+
3
+ **Scope:** What `@xingular/harness` provides compared with the agent systems in the local harness study. This is a feature-gap review, not a parity score. Comparisons refer to the studied snapshots; the deeper OpenHands and Claude Code audits are still marked pending in the [study index](00-index.md).
4
+
5
+ ## Summary
6
+
7
+ The Harness is a generic single-run runtime, not a task manager or long-running workflow engine. Some apparent gaps are deliberate layer boundaries: the architecture assigns product tasks, schedules, teams, worktrees, and UI to the embedding application. The run record has an opaque `goal` string, but no goal lifecycle or progress model. See [00 Overview](../architecture/00-overview.md#layers) and [02 Sessions and runs](../architecture/02-sessions-and-runs.md).
8
+
9
+ | # | Capability missing from the Harness | Current state and comparison | Appropriate owner |
10
+ |---:|---|---|---|
11
+ | 1 | **First-class task lifecycle** — create, assign, track status, dependencies, review, and acceptance | Normal sessions track runs; `RefineTask` is for harness-tree refinement, not product work. OMP has a task-delegation tool. | **Application** |
12
+ | 2 | **Persistent goals and progress** — goal hierarchy, checklist, and durable progress | Plan mode produces a proposed plan, not tracked progress. `goal` on a run is opaque metadata. OpenCode has per-session todos; OMP exposes a goal helper. | **Application**, optionally through a tool provider |
13
+ | 3 | **Long-running job scheduler** — durable queue, cron/event triggers, deadlines, retries, and leases | Sessions can run asynchronously, but the Harness has no durable scheduler. The OpenHands study identifies scheduling in a separate automation project. | **Application** |
14
+ | 4 | **Crash-safe continuation** — resume from a checkpoint after a process or machine restart | Run events and Pi history persist, and terminal history can be resumed manually. However, startup marks active runs interrupted; the Harness does not restart model work. | **Harness + application**: recovery contract plus requeue policy |
15
+ | 5 | **Automatic cross-run memory consolidation** — extract useful task state and lessons from completed runs | The Harness has Wiki notes, history, and a refinement experience library, but no automatic task-state consolidation pipeline. OMP's study describes background memory extraction and consolidation. | **Harness** for generic memory; **application** for task state |
16
+ | 6 | **Team and work-queue orchestration** — persistent workers, assignments, dependencies, and shared coordination | Harness subagents are fresh parent-child runs with result delivery, not a persistent team or shared queue. OMP has task-worker machinery; product-level coordination belongs outside the Harness. | **Application** |
17
+ | 7 | **Managed per-task sandbox/workspace** — containers, worktrees, snapshots, and rollback | The host supplies the working folder and tools; the Harness tool gate is not an OS sandbox. The study contrasts this with OpenHands/SWE-agent containers and OMP worktrees. | **Application/host** |
18
+ | 8 | **Native browser and computer interaction** | Web search/fetch can be provided as tools, but browser or computer control is not built in. Plan-mode text mentioning managed controls is recorded as known drift (D-6). | **Application**, through tool providers and policy |
19
+ | 9 | **Goal-specific verification and acceptance** — tests, graders, and a “done” gate | The refinement matrix records execution and deliverability; it does not grade whether a user's goal was achieved. Frozen task grading belongs in Evaluation. | **Evaluation/application** |
20
+ | 10 | **Aggregate operations dashboard and budgets** — cross-run cost limits, alerts, and health views | The Harness records per-run events and usage. It has no built-in aggregate dashboard; an optional budget-guard plugin partially covers per-run limits. OMP's study describes a local stats dashboard. | **Application UI**, using Harness run data |
21
+
22
+ ## Status (2026-10-22)
23
+
24
+ The Harness-owned parts of three gaps have landed. The application-owned parts and the other
25
+ seven gaps are unchanged.
26
+
27
+ | # | What landed in the Harness | Taken from | Still the application's |
28
+ |---:|---|---|---|
29
+ | 2 | `checklist_write`: the model's whole checklist as a `checklist.updated` run event, read with `runs.checklist` ([PROP-0006](../architecture/proposals/PROP-0006-run-checklist.md)) | dsh `todo_write` (whole-list replace, three statuses, replayed from the log); OpenCode `todowrite` (usage rules in the tool description) | Goal records, goal hierarchy, progress across runs, showing the checklist |
30
+ | 4 | `continueFrom` and `runs.continuation`: a stopped run is continued as a new run with the same account, tree version and capabilities, and the model is told where it stopped; `Recovery.interruptedRunIds` ([PROP-0007](../architecture/proposals/PROP-0007-run-continuation.md)) | Every peer's "never restart silently" rule; dsh's durable log as the checkpoint; OpenHands' requeue outside the agent | The requeue policy: which runs to continue, when, and whether to ask first |
31
+ | 5 | The opt-in `lessons` plugin: a read-only reflection after a completed run may keep one lesson in the Wiki under `library/lessons/` ([PROP-0008](../architecture/proposals/PROP-0008-lessons-from-runs.md), [ADR-0010](../decisions/ADR-0010-lessons-in-the-wiki.md)) | harness²'s reflector (cue → lesson, `NO_ENTRY`, never task facts, answer-free guards); OMP's background extraction and caps | Task state and its consolidation; a switch for the plugin in its UI |
32
+
33
+ ## Recommendation
34
+
35
+ For products that need autonomous long-running work, start with an application-owned task/goal model and scheduler, then define how they request safe continuation of Harness runs. Keep task and schedule concepts out of the Harness itself; its architecture deliberately assigns them to the application. A useful first sequence is: (1) task and goal records with acceptance criteria, (2) durable scheduling and human handoff, (3) explicit restart/recovery policy, then (4) isolated workspaces and an evaluation gate.
36
+
37
+ ## References
38
+
39
+ - Harness ownership and application boundary: [00 Overview](../architecture/00-overview.md#layers), [02 Sessions and runs](../architecture/02-sessions-and-runs.md#invariants).
40
+ - Harness memory and refinement: [08 Memory and history](../architecture/08-memory-and-history.md), [05 Refinement](../architecture/05-refinement.md).
41
+ - Peer comparisons: [Tools](arms/02-tools.md), [Subagents](arms/03-subagents.md), [Memory](arms/06-memory.md), [Execution](arms/08-execution.md), [Observability](arms/09-observability.md), [wide comparison matrix](arms/00-matrix.md).
42
+ - Source inventories: [OpenHands](sources/openhands.md), [OMP](sources/omp.md), [SWE-agent](sources/swe-agent.md), [OpenCode](sources/opencode.md).
@@ -0,0 +1,123 @@
1
+ # Cross-arm comparison insights
2
+
3
+ Standing conclusions from the arm audits (arms 01–10, `docs/study/arms/`).
4
+ Each insight cites the arm that backs it. These are the ideas with the highest
5
+ leverage for designing this harness; per-action items live in `roadmap.md`.
6
+
7
+ ## 1. Everyone rebuilt the same five-layer architecture
8
+
9
+ Prompt assembly, tool registry + gate, subagent machinery, compaction/context,
10
+ and durable records appeared independently in opencode, omp, dsh, harness² and
11
+ ours — with the same *problems*, not the same *solutions* (arms 01–06, 08–09).
12
+ The design space is covered; the interesting work is picking positions per
13
+ layer, not inventing layers. Harness² even distributes the same c1–c8 component
14
+ taxonomy across substrates (`external/harness2/harness2/core/prompts.py:424-431`)
15
+ that this harness independently uses for its trees — and this harness's
16
+ `src/refine/` is a documented port of harness² (arm 10). Convergence is
17
+ evidence both directions were right.
18
+
19
+ ## 2. The stable prefix is an invariant, dynamic content is a protocol
20
+
21
+ Four projects converge hard: keep system prompt byte-stable; put changing state
22
+ into *appended*, dated, superseding messages (omp user-turn reminder
23
+ `date-cwd-reminder.ts:44-48`; dsh "Current runtime context… supersedes earlier"
24
+ snapshot `system-prompt/src/index.ts:314-318`; opencode instruction deltas
25
+ between history and the prompt; ours: `xingular-context`). The subtle
26
+ engineering is where volatile values may NOT live (omp: a tail date line
27
+ invalidated the whole tool array). Never place date/cwd/workspace state in the
28
+ prefix; never rewrite sections in place (arm 01, A1).
29
+
30
+ ## 3. There are only three sincere answers to "who contributed this prompt text"
31
+
32
+ (a) **Declaration with an ordering contract** (dsh: numeric order → name ties,
33
+ duplicate names throw, scoped shadowing, `complete` replacement) — most
34
+ legible for caching and reasoning;
35
+ (b) **Ability/extension slots** (omp capabilities; opencode internal tools +
36
+ tool hooks) — most permissive;
37
+ (c) **A validated tree** (ours c1–c8; harness² tree files with machine
38
+ validation) — most durable, at the cost of pipeline ceremony.
39
+ Any addition to our prompt surface should strengthen (a)'s contract or (c)'s
40
+ machines, never invent a fourth pattern. When a plugin contributes a section,
41
+ deterministic ordering and duplicate rejection belong to the compiler
42
+ (`src/prompt/compile.ts`), not to plugin scheduling (arm 01, A2).
43
+
44
+ ## 4. Tool interfaces are where public instruction lives
45
+
46
+ All sources push "how to use this" into tool descriptions and keep the system
47
+ prompt shorter. Where that text lives differs: inline strings (opencode),
48
+ static md templates (omp: "Prompts never in code"), fully erased behind a
49
+ generated SDK (dsh's PTC), whole prose files (claude-code's TODOWRITE
50
+ descendant in opencode `todowrite.txt`). For this harness, md-template
51
+ descriptions are the highest leverage per line changed: reviewable diffs,
52
+ `{product}` interpolation stays (arm 02, A3).
53
+
54
+ ## 5. Gate taxonomies converge on *tiers × per-call decisions*
55
+
56
+ read/write/exec tier declarations + per-call allow/deny/ask outcomes +
57
+ fail-closed defaults, expressed as tiers (omp), per-leaf asserts (opencode),
58
+ pipeline events (dsh) or a final gate (ours). Two universals worth canonizing
59
+ here: **policy missing ⇒ ask**, and **one-time escalations with audit trails**
60
+ (dsh sandbox escalation ≈ our single-use approvals). Hooks may *advise*;
61
+ neither hooks nor tools *decide* (arm 07, G2).
62
+
63
+ ## 6. Subagent geometry: fresh children, explicit delivery, no forks
64
+
65
+ Inheritance of parent history into children is rare (only dsh's explicit
66
+ `fork`; omp/ours/claude-code/opencode default fresh). Delivery splits between
67
+ block-on-result (simpler, slower), background + never-poll instruction
68
+ (opencode), and receipts with automatic delivery (ours). Depth and capacity
69
+ defaults (8 active / depth 1 dsh) are good calibrations. dsh's `fork` is the
70
+ one mechanism worth studying further but the anti-pattern posture ("no more
71
+ capabilities than you") should stay (arm 03).
72
+
73
+ ## 7. Compaction is a strategy ladder, not a single pass
74
+
75
+ Trigger at a formula of the window; prune oversized tool outputs first;
76
+ summarize to a fixed, named template; keep a verbatim tail checkpoint; retry
77
+ down-scaled on provider rejection; log usage at the anchor + estimates beyond.
78
+ The distinctive frontier is opencode's whole-transcript-to-summarizer-for-
79
+ cache-reuse against omp's deterministic, no-LLM archive rung (snapcompact) —
80
+ an SRE-quality safety net no other source has. For this harness: adopt the
81
+ shape and invariants; do not adopt the machinery (arm 05, C1–C3).
82
+
83
+ ## 8. Memory products are files with contracts, not databases
84
+
85
+ Where memory is model-facing, it is a file (`MEMORY.md`, our Wiki, harness²'s
86
+ `LongTermMEMORY.md`) with caps, a lesson shape (cue/lesson, never task facts)
87
+ and redaction; where memory is engine-facing (mnemopi's `memory://`), it is an
88
+ optional accelerator, never the source of truth. dsh deliberately ships *no*
89
+ memory package — durability only (JSONL session log + todos + spill). The
90
+ difference between them is one offer: "does the next session need to behave
91
+ differently?" (arm 06, M1).
92
+
93
+ ## 9. Measurement has exactly one defensible home inside the harness: after selection, decoupled
94
+
95
+ harness²'s judge reads only the chosen run, never feeds selection, fails to
96
+ None, and is excluded from denominators (`judge.py:15-19,37-40`). omp puts a
97
+ judgment role next to subagents; our family places measurement in Evaluation.
98
+ The adoptable principle is the *decoupling shape*, whatever module ends up
99
+ owning the measurement (arm 10, R4 — decide layering before porting).
100
+
101
+ ## 10. Editorial discipline is a competitive feature
102
+
103
+ harness² turns prompt-writing conventions into machine validation: unnamed
104
+ skills discarded, template braces rejected, unshipped scripts rejected,
105
+ always-on prose priced by output budget ("ALWAYS-ON PROSE IS THE EXPENSIVE
106
+ OPTION", `prompts.py:129-146`). omp similarly: prompts never in code, model
107
+ policy never code (KDL tables), one JSON judge-questions file per feature.
108
+ This harness already validates trees; the opportunity is extending
109
+ validation to prompt-behavior contracts spotted above (trigger lines, delta
110
+ protocols, tier coverage) rather than more prose (arms 01, 02, 04, 10).
111
+
112
+ ## 11. Anti-patterns known across sources
113
+
114
+ - Instruction discovery with no caps (opencode AGENTS.md walk) — unbounded cost
115
+ drift into sessions.
116
+ - Model-conditional code (`id.includes("claude")`-style) — omp bans it; policy
117
+ belongs in tables (omp KDL; opencode's per-model prompt plugins are the
118
+ hook-flavored equivalent).
119
+ - Any module that can rewrite its own pending tool call (claude-code
120
+ PreToolUse mutation, harness² plugin `tool` registration for *capability
121
+ edits* mid-run needs trust gating we already have for c8).
122
+ - Polling loops from the model (opencode had to say "DO NOT sleep, poll" in
123
+ the spawn tool description; ours prevents it structurally with receipts).
@@ -0,0 +1,408 @@
1
+ ---
2
+ id: STUDY-0002
3
+ title: Proactive autonomy — a harness with its own readable agenda
4
+ status: research-and-hypotheses
5
+ created: 2026-10-23
6
+ updated: 2026-10-23
7
+ related:
8
+ - STUDY-0001
9
+ ---
10
+
11
+ # Proactive autonomy: a harness with its own readable agenda
12
+
13
+ **Recommendation:** explore three connected features: **Night Shift**, which decides what
14
+ deserves work; **Product Ghosts**, which experiences the UI and repairs friction; and
15
+ **Evolution Garden**, which turns cleanup and feature ideas into experiments it can learn
16
+ from. Let the system take initiative and present evidence afterward. Keep its intentions,
17
+ decisions and uncertainty readable enough for a person to redirect in a minute.
18
+
19
+ This is exploratory research, not an accepted specification or an implementation. The feature
20
+ directions are deliberately open-ended, as requested. Their combinations are proposed ideas;
21
+ novelty has not been established by an exhaustive prior-art search. Research date: 2026-10-23.
22
+
23
+ ## Reading map and scope
24
+
25
+ This document combines the current foundation's source and binding specification with fresh
26
+ primary-source research. Detailed external findings are in [proactive systems](autonomy-sources.md)
27
+ and [autonomous engineering](autonomous-engineering-sources.md). The appendices below record
28
+ how the three ideas were generated and what would make them fail.
29
+
30
+ The user's seeds were recurring jobs, choosing the next action without a command, finding UI
31
+ problems, cleanup, new features, analytics, and accepting more risk for a more interesting
32
+ product. The follow-up confirmed that **all of those areas** matter. Personal examples of
33
+ past failures and actual product analytics were not supplied; user-value claims remain
34
+ hypotheses. Nothing in this study establishes that a surveyed system can independently run
35
+ a successful product team.
36
+
37
+ Evidence labels used throughout:
38
+
39
+ - **Observed source:** a behavior is visible in the inspected implementation or local snapshot.
40
+ - **Documented:** a first party describes a capability; it was not exercised here.
41
+ - **Reported research:** the authors report an experiment; results were not reproduced here.
42
+ - **Hypothesis:** a proposed design or inference for this package and its host.
43
+
44
+ ## What the other systems teach
45
+
46
+ | System | Primary-source finding | What to borrow |
47
+ |---|---|---|
48
+ | OpenClaw | Current source consolidates proactive work into Automations, with persistent job scratch, occurrence outcomes and quiet result handling. Some live heartbeat guidance trails source. | Keep the durable obligation and the human notification as separate things. [Migration source](https://github.com/openclaw/openclaw/blob/42c0d5a8f9d00e113c48090c3d259977e67b5b5a/docs/gateway/heartbeat.md), [detailed audit](autonomy-sources.md). |
49
+ | Paperclip | Its activity gate, routine coalescing and no-progress throttling explicitly address agents repeatedly waking themselves. Its run/issue links expose ownership. | A useful autonomy loop must recognize its own activity and avoid treating it as new demand. [Activity-gate contract](https://github.com/paperclipai/paperclip/blob/def4726bea0e3b340457100038d80ca55c2b7d4f/skills/paperclip/references/routines.md#L87), [detailed audit](autonomy-sources.md). |
50
+ | Letta Code | Its current reflection direction uses versioned memory files and separate worktrees; the older server sleep-time model is being sunset. | Prepare future context between foreground runs; retain a readable memory diff. [Reflection procedure](https://github.com/letta-ai/letta-code/blob/035bb8c8917b5dd94a3989d4adf04860a2ce8fea/src/agent/subagents/builtin/reflection-v2.md), [migration evidence](autonomy-sources.md). |
51
+ | Claude Code | An editable default maintenance order already exists; session scheduling and hosted scheduling have different lifecycles. | Differentiate on judgment. [Scheduled tasks](https://code.claude.com/docs/en/scheduled-tasks). |
52
+ | Anthropic long-running harnesses | Progress artifacts support continuity; browser evidence can locate a source handler; evaluator complexity depends on workload and model. | Persist handoffs and use the running product as evidence. [2025 experiment](https://www.anthropic.com/research/effective-harnesses-for-long-running-agents), [2026 experiment](https://www.anthropic.com/research/harness-design-long-running-apps). |
53
+ | OpenHands | SDK conversation execution and the automation service's scheduling, dispatch and history have distinct owners. | Add a host control loop around the foundation. [SDK](https://github.com/OpenHands/software-agent-sdk/blob/main/README.md), [automation](https://github.com/OpenHands/automation/blob/main/README.md). |
54
+ | Cursor Automations | Cron/event starts, persistent editable memories, browser interaction and PR creation are already documented capabilities. | A scheduled coding agent is an existing baseline. The opportunity is explaining and improving its choices. [Automations](https://cursor.com/docs/cloud-agent/automations). |
55
+ | SWE-agent / mini-swe-agent | The project now recommends its simpler successor; issue-repair benchmarks supply the problem to solve. | Keep execution small. Task selection requires additional evidence. [Current project direction](https://github.com/SWE-agent/SWE-agent/blob/main/README.md), [successor](https://github.com/SWE-agent/mini-swe-agent/blob/main/README.md). |
56
+ | OMP | The inspected snapshot persists a goal, tracks budgets, steers continuation and fingerprints tool activity to detect repeated work. | Make completion and lack of progress explicit. This is evidence of continuation, not a durable cron service. [Local goal state](../../external/omp/packages/coding-agent/src/goals/state.ts), [runtime](../../external/omp/packages/coding-agent/src/goals/runtime.ts). |
57
+ | LangGraph | Checkpointers persist thread execution state; stores persist information across threads. Replay after a checkpoint can re-execute subsequent API calls. | A saved conversation and a recoverable external action need distinct treatment. [Persistence](https://docs.langchain.com/oss/python/langgraph/persistence), [checkpointers](https://docs.langchain.com/oss/python/langgraph/checkpointers). |
58
+
59
+ **Reported research:** Agentic Harness Engineering associates edits with predictions and later
60
+ outcomes, and reports improvements on coding benchmarks. This supports investigating evidence
61
+ and decision records; it does not prove that autonomous product changes improve customer value.
62
+ The abstract is sufficient for that limited claim; this study did not reproduce its experiments
63
+ or audit the complete method. [AHE, v4, 2026-05-18](https://arxiv.org/abs/2604.25850v4).
64
+
65
+ **Reported research:** TriggerBench and ProEvent expose missed proactive actions, excessive
66
+ actions and cancellation problems in their respective memory/chat settings. These motivate
67
+ explicit future-intent records and measuring false actions; they do not predict local failure
68
+ rates. [TriggerBench](https://arxiv.org/abs/2606.23459), [ProEvent](https://arxiv.org/abs/2607.17701).
69
+
70
+ **Synthesis:** wakeups are becoming ordinary infrastructure. A more interesting system makes
71
+ three decisions well: *what deserves attention, what intervention to try, and whether the
72
+ result deserves to survive*. That is the organizing idea for the three features below.
73
+
74
+ ## Current foundation and the missing loop
75
+
76
+ The package already owns much of the execution substrate. An older
77
+ [feature-gap review](feature-gap-review.md) includes a historical overview plus later landed
78
+ capabilities; its original missing-browser row should not be read as today's browser inventory.
79
+ Current source and binding pages take precedence.
80
+
81
+ | Need | What exists now | What remains |
82
+ |---|---|---|
83
+ | Readable progress | Whole-list `checklist_write` updates persisted as run events | A durable agenda and acceptance state across runs, owned by the host |
84
+ | Recovery | `runs.continuation` describes a stopped run; `continueFrom` starts a new run with the prior pins | Host scheduling, durable work identity, leases, reconciliation and a decision to continue |
85
+ | Remembering useful lessons | Opt-in lessons reflection stores general lessons through the Wiki API | A durable scouting/consolidation queue; the current lessons queue is process-local |
86
+ | Seeing a web UI | Navigation, snapshots, reading and screenshots | Mapping observed elements to their source ownership; unattended interaction against a disposable environment |
87
+ | Knowing what a run cost | Validated usage/tool/status events and trajectory reads | Host outcome aggregation and product telemetry; run usage is not customer analytics |
88
+ | Checking tool readiness | Doctor local checks and explicitly confirmed live probes | A recurring product-quality observer; Doctor itself is not an autonomous maintenance scheduler |
89
+
90
+ Source anchors: [sessions input](../../src/sessions/sessions.ts) (`:73`, `:108`),
91
+ [checklist and usage schemas](../../src/sessions/contracts.ts) (`:146`, `:180`),
92
+ [continuation](../../src/sessions/continuation.ts) (`:46`, `:96`),
93
+ [lessons queue](../../src/history/lessons.ts) (`:93`),
94
+ [browser tools](../../src/browser/tools.ts) (`:20`, `:61`, `:156`),
95
+ [Doctor contracts](../../src/doctor/types.ts) (`:27`, `:54`).
96
+
97
+ Two constraints matter before any unattended pilot:
98
+
99
+ 1. **Browser interaction currently needs attendance.** `attendedOnly` in
100
+ `src/browser/tools.ts:61` refuses page actions for unattended runs and subagents. A screenshot
101
+ scout is available; a cron worker clicking through forms is not enabled by selecting those
102
+ tool names. A host could supply its own isolated interaction provider through existing
103
+ surfaces, subject to its policy. Relaxing the foundation backend would require a proposal.
104
+ 2. **The unattended flag is not a complete interaction guarantee.** It configures no context-file
105
+ discovery in `src/sessions/runner.ts:574`. However, the general gate's approval refusal is
106
+ trigger-specific (`src/sessions/sessions.ts:198`), and `ask_user` is constructed independently
107
+ of that flag (`:397`). The flag alone therefore does not establish `INV-RUN-5`. This static
108
+ source finding is recorded as [known drift D-11](../architecture/README.md#known-drift);
109
+ it was not reproduced in a live model session.
110
+
111
+ ### Ownership that keeps the ideas compatible
112
+
113
+ **Foundation:** run execution, pinning, compiler, capabilities, per-call gate, run evidence,
114
+ memory APIs and generic observation tools. **Variant:** mutable c1–c8 behavior committed
115
+ through the existing validated door. **Host:** intentions, schedules, cross-run agenda, product
116
+ events, workspaces, deployment decisions and the human UI. The ownership rules are in
117
+ [00 Overview](../architecture/00-overview.md), [seven surfaces](../architecture/01-extension-points.md)
118
+ and the [family routing guide](../../../AGENTS.md).
119
+
120
+ The host can begin by supplying a mandate and current evidence through `SessionRunInput.text`
121
+ or a dynamic `launch.sections` entry, with action decisions through `ToolPolicy` and tools
122
+ through `ToolProvider`. Unattended resource discovery intentionally does not load arbitrary
123
+ project context files: the host must explicitly supply the chosen content. Changing state
124
+ continues to arrive through the prompt compiler's updates, not a rewritten system prefix.
125
+ These are proposed uses of existing surfaces, not a new eighth surface.
126
+
127
+ Keep a human-editable mandate in a **host-owned document**, not in Wiki notes masquerading as
128
+ instructions. The Wiki remains reference material under `INV-MEM-1`. Keep agenda/experiment
129
+ records outside `runs/<id>/`; the host does not become a run-record writer.
130
+
131
+ ## 1. Night Shift
132
+
133
+ **Hypothesis:** give the system a standing intention, and it should come back with work worth
134
+ having done. A person writes something like “make the first successful session feel effortless”;
135
+ Night Shift decides whether today's next useful move is repairing a failed journey, finishing
136
+ an abandoned change, cleaning a recurring source of trouble, or trying a small feature.
137
+
138
+ The product feeling is a colleague who arrived early and left a useful desk note. The person
139
+ opens the application to see what the system noticed, why it chose that work, and the actual
140
+ result. The agenda stays editable: changing its direction affects future runs without needing
141
+ another conversation or erasing the old decision record.
142
+
143
+ An illustrative host document, **not a proposed parser contract**:
144
+
145
+ ```markdown
146
+ # Night Shift
147
+ Direction: Make first success easier and keep this project pleasant to change.
148
+ Look for: broken journeys, repeated friction, recurring failures, useful simplifications.
149
+ Explore: one unexpected idea when evidence suggests something is missing.
150
+ Freedom: choose work and prepare working changes without a new task from me.
151
+ Deliver: a usable preview, what changed, and what still looks uncertain.
152
+ ```
153
+
154
+ A scheduled or event-triggered wake checks what changed since its last meaningful decision,
155
+ selects an obligation, and runs one bounded piece of it. Its persistent agenda can distinguish
156
+ unfinished work, fresh opportunities, intentional waiting, cancelled ideas and work already
157
+ being done elsewhere. No new evidence is a valid reason to sleep. A completed run is evidence
158
+ about a turn; it does not automatically close the larger obligation.
159
+
160
+ **Why it could feel new:** the agenda is both the operating agreement and the person's control
161
+ surface. The user changes direction in ordinary prose; the system maintains a concrete view
162
+ of the next action and its evidence. Existing schedules and goal loops are ingredients. The
163
+ proposed value is how naturally a person can supervise an agent that chooses its own work.
164
+
165
+ **Safety traded for coolness:** allow the system to pick unassigned work, reinterpret priorities
166
+ within the mandate, and commit ordinary maintenance to its branch before a human reviews it.
167
+ The owner accepts wasted work and occasional misguided changes. A particularly adventurous
168
+ host could preauthorize integration of a narrow maintenance class and show an undoable receipt;
169
+ this is a future product choice, not present authorization or an implemented behavior.
170
+
171
+ **First revealing demonstration:** leave one project overnight with an unfinished obligation,
172
+ one fresh failure and stale noise. The morning result should show why one thing deserved work,
173
+ what actually changed, what was left alone, and what would trigger the next wake. Include a
174
+ restart and a cancelled obligation in the pilot; a credible system must preserve both decisions.
175
+
176
+ **Riskiest assumption:** the system can choose work the owner values. More defensible starting
177
+ point: let it select among observed failures and unfinished commitments before expanding into
178
+ new initiatives. Judge it by retained useful changes and owner corrections, not run count.
179
+
180
+ ## 2. Product Ghosts
181
+
182
+ **Hypothesis:** the harness should experience the product through several believable points of
183
+ view, remember where each journey hurts, and return with a repair already demonstrated.
184
+
185
+ One ghost arrives with an empty account and no product vocabulary. Another uses only a
186
+ keyboard. Another returns to an interrupted session. These are **synthetic probes**, not
187
+ validated substitutes for real people. Their purpose is to expose plausible friction and
188
+ produce repeatable journeys, which actual usage and human reactions can later confirm.
189
+
190
+ Instead of “button looks odd,” a ghost leaves a little story: “I tried to start, reached an
191
+ empty screen, could not tell whether it was loading, and stopped.” It links the route, state,
192
+ viewport, screenshot and action sequence to the candidate component or handler. It then makes
193
+ a change and reruns the same journey. The morning artifact can put the old and new experiences
194
+ side by side, including what remains uncertain.
195
+
196
+ Knowing where to fix the UI requires a causal trail:
197
+
198
+ ```mermaid
199
+ flowchart LR
200
+ A[Journey and observed friction] --> B[Reproduce in disposable app]
201
+ B --> C[Map route and element to source]
202
+ C --> D[Patch the owning component]
203
+ D --> E[Replay the same journey]
204
+ E --> F[Readable before and after]
205
+ ```
206
+
207
+ **Hypothesis, implementation direction:** combine browser evidence with code search, route
208
+ manifests, source maps or framework metadata where available. Those techniques suggest an
209
+ owner; they are not a universal DOM-to-source mapping. Preserve failed source-location attempts
210
+ as uncertainty instead of inventing a component address. For terminal UI, an equivalent ghost
211
+ would need a host PTY/terminal interaction surface; web browser tools do not inspect a TUI.
212
+
213
+ Source ownership matters in this repository family. A problem with a shared primitive, font,
214
+ spacing token or shell goes to the shared UI package; a page-specific behavior belongs to the
215
+ application. The ghost can learn that routing from host-supplied repository guidance. The
216
+ foundation should not contain application paths or special-case names.
217
+
218
+ **Why it could feel new:** each ghost has continuity. It remembers the point where it got stuck,
219
+ returns after a relevant change, and can say whether the product became easier to use. Pairing
220
+ that memory with a working repair makes it more useful than a scheduled screenshot report.
221
+ The underlying browser, patch and review mechanics already have precedents in the
222
+ [engineering source study](autonomous-engineering-sources.md).
223
+
224
+ **Safety traded for coolness:** permit unattended exploration and subjective presentation fixes
225
+ in a disposable app, including abandoning an existing design choice. The owner accepts taste
226
+ drift and false alarms in exchange for discovering issues nobody filed. Integration of those
227
+ patches is a separate autonomy setting; interactive exploration needs the host provider or
228
+ foundation proposal described above.
229
+
230
+ **First revealing demonstration:** give the ghosts several real journeys without telling them
231
+ where the known defects are. Compare discoveries with a maintainer's independent list. The
232
+ interesting result is one reproducible issue, a credible source owner, and a visible repair;
233
+ count invented defects and regressions as well as discoveries.
234
+
235
+ **Riskiest assumption:** synthetic frustration predicts human frustration. Start with observable
236
+ failures—clipping, unreachable controls, dead ends, lost state—and label preference judgments
237
+ as speculative. Real customer feedback must be able to overturn a ghost's opinion.
238
+
239
+ ## 3. Evolution Garden
240
+
241
+ **Hypothesis:** give the system a small allowance to improve the product, and let it grow useful
242
+ features while pruning work that no longer earns its complexity. Its memory should record
243
+ which ideas failed and why, so future runs can stop rediscovering them.
244
+
245
+ This joins analytics, cleanup and feature invention in one loop. A recurring detour suggests
246
+ a shortcut; a repeated support request suggests a missing capability; a brittle duplicate
247
+ suggests simplification. The agent writes a prediction, prepares an intervention and looks for
248
+ an outcome. Sometimes its best feature idea is removing a step or consolidating two controls.
249
+
250
+ An illustrative experiment note:
251
+
252
+ ```markdown
253
+ # A smaller first-run experience
254
+ Signal: People repeatedly open settings before their first successful action.
255
+ Guess: They are looking for a required choice that is hidden there.
256
+ Alternative: They may simply be exploring; the event names may also be misleading.
257
+ Bet: Put that choice beside the first action and remove the duplicate detour.
258
+ Expected result: More first attempts reach success without extra errors.
259
+ Observation: Pending real usage; the synthetic journey only confirms it can work.
260
+ Decision: Keep, revise or revert after the outcome window.
261
+ ```
262
+
263
+ The example is invented, not a finding about current users. There is no inspected product
264
+ telemetry dataset in this study. The host would need event definitions, feedback, release
265
+ identity and outcomes. Run cost and tool failures can guide engineering maintenance today;
266
+ they cannot establish that customers need a new feature. Observational changes alone do not
267
+ prove causality, and missing telemetry is uncertainty rather than a zero.
268
+
269
+ Cleanup gets the same treatment. “No imports found” is a lead, not proof of dead code: public
270
+ exports, plugins, dynamic loading and generated entry points can matter. The agent can propose
271
+ a removal and demonstrate the behavior it checked. Low feature usage alone is also insufficient
272
+ evidence for deletion. The interesting power is being willing to simplify the product when
273
+ several forms of evidence agree.
274
+
275
+ **Why it could feel new:** the system develops an explicit, revisable taste for what deserves
276
+ to survive. Its decision journal can say “I tried this, it did not help, and here is what would
277
+ make it worth revisiting.” A removed idea remains discoverable; a person can revive it with
278
+ new evidence. The proposed journal borrows the prediction/outcome idea discussed in
279
+ [AHE](https://arxiv.org/abs/2604.25850v4), but customer-value optimization remains unverified.
280
+
281
+ **Safety traded for coolness:** let the system invent and implement small experiments, prune
282
+ ordinary code and revise its own priority ordering without a task-by-task instruction. A
283
+ future host could additionally allow a limited rollout and automatic rollback. The owner
284
+ accepts temporary regressions and failed bets in exchange for continuous product exploration.
285
+ Undo should include configuration and rollout state: reverting a commit does not reverse a
286
+ customer action or every data effect.
287
+
288
+ **First revealing demonstration:** take a project with existing friction evidence, prepare one
289
+ new capability and one simplification, and state what would justify keeping either. Release
290
+ measurement comes only when the host has real telemetry and an authorized rollout mechanism;
291
+ without those, the honest output is a working preview with an untested value hypothesis.
292
+
293
+ **Riskiest assumption:** observed signals identify a valuable intervention. Require competing
294
+ explanations and retain rejected predictions. Do not reward the agent for generating more
295
+ ideas, deleting more lines or increasing its own activity.
296
+
297
+ ## How they fit together
298
+
299
+ ```mermaid
300
+ flowchart TD
301
+ M[Human editable mandate] --> N[Night Shift chooses attention]
302
+ S[Schedule or new evidence] --> N
303
+ N --> G[Product Ghosts find and repair friction]
304
+ N --> E[Evolution Garden tests features and simplification]
305
+ G --> R[Existing foundation runs and evidence]
306
+ E --> R
307
+ R --> J[Readable agenda and decision journal]
308
+ J --> N
309
+ U[Human corrections and real product outcomes] --> J
310
+ ```
311
+
312
+ This is a conceptual flow, not new internal modules. Start with Night Shift's durable agenda,
313
+ use Product Ghosts for concrete evidence, then let Evolution Garden widen the initiative.
314
+ The first version could live largely in a host using today's execution surfaces. A generic
315
+ reusable host package might become worthwhile after a second consumer demonstrates the seam;
316
+ moving schedules into the foundation is not required to explore these ideas.
317
+
318
+ ### Where to spend the risk
319
+
320
+ The useful trade is **fewer approvals over work selection and ordinary reversible changes**,
321
+ plus more freedom to make subjective bets. Readable evidence and an undo path make that freedom
322
+ usable; neither guarantees the changes are correct. Keep the risk attached to a visible product
323
+ setting: choose work, prepare patches, integrate selected change classes, or run experiments.
324
+ An ambiguous sentence in a memory note should not silently expand the action setting.
325
+
326
+ The existing refinement method remains a different mechanism. Its probes do not act in the
327
+ world, its evidence stays answer-free, and adoption is a person's action
328
+ (`INV-REF-1`, `INV-REF-4`, `INV-REF-6`). Product-outcome experiments should initially use ordinary
329
+ runs and host records. Automatically adopting variants, feeding grader results into current
330
+ refinement, or editing foundation code from an improver would require explicit architecture
331
+ changes, not a reinterpretation of the word “automatic.”
332
+
333
+ ### What would make the autonomy credible
334
+
335
+ These are **proposed evaluation questions**, not measured results or new benchmark tasks:
336
+
337
+ | Question | Evidence to inspect |
338
+ |---|---|
339
+ | Does it choose worthwhile work? | Changes retained by the owner; corrected priorities; false starts and rejected work |
340
+ | Does it know when to stop? | Repeated-work rate, intentional idle decisions, cancellations honored, stale suggestions suppressed |
341
+ | Does it repair the experienced problem? | Same journey before and after; correct source ownership; neighboring behavior and regressions |
342
+ | Does it improve something people value? | Defined product outcome, observation window, competing explanations and a defensible comparison |
343
+ | Is autonomy affordable? | Whole-obligation cost including scouting, critics, retries, reflection and abandoned experiments |
344
+ | Is it readable? | Whether a person can find the chosen action, reason, evidence, uncertainty and undo path without reading a transcript |
345
+
346
+ The scheduler should plan for at-least-once delivery and reconciliation of uncertain actions.
347
+ Durable occurrence IDs and worker leases prevent many duplicates; an external side effect
348
+ still needs an idempotency key or an explicit check of whether it happened. A normal “complete”
349
+ run event proves the run ended; product acceptance and keeping an experiment are host decisions.
350
+ This is design reasoning, not an exactly-once guarantee from the existing foundation.
351
+
352
+ ## Appendix: idea generation and selection
353
+
354
+ **Frame:** move from a person assigning tasks to a system proposing and performing useful work
355
+ under an editable direction. Include people who have not adopted the product and the person who
356
+ must judge its output, not only the developer watching a terminal.
357
+
358
+ The following capability/context matrix is exploratory. All 30 cells are unvalidated raw
359
+ ideas, not additional recommended features. “Seed” identifies a direct extension of the user's
360
+ requested capabilities.
361
+
362
+ | Context | Choose attention | Experience a journey | Locate and change source | Remember across runs | Compare outcomes |
363
+ |---|---|---|---|---|---|
364
+ | Developer returning tomorrow | Prepare tomorrow's best next action (seed) | Replay yesterday's failed path | Finish the smallest abandoned patch | Preserve why other work was deferred | Show useful work retained after review |
365
+ | Maintainer away for a week | Select recurring failures before cosmetics (seed) | Revisit recently changed routes | Consolidate a duplicate at its owner (seed) | Remember what should never be auto-cleaned | Compare regressions and maintenance churn |
366
+ | First-time visitor who has not adopted | Find the first unexplained decision | Navigate with an empty account (seed) | Add a contextual hint beside the blockage | Keep an evolving first-visit story | Compare first success with prior behavior |
367
+ | Former user who abandoned the product | Revisit the reason they left | Return to an interrupted journey | Prepare a reduced version of a complex flow | Retain rejected assumptions about that user | Seek evidence that the original obstacle changed |
368
+ | Accessibility reviewer judging the output | Select inaccessible journeys | Complete a keyboard-only route | Fix shared focus behavior at its source | Retain an interaction ledger with uncertainty | Compare reachability and task success |
369
+ | Product owner looking for direction | Choose one unexplained usage pattern (seed) | Experience the suspected detour | Prepare a feature or remove a step (seed) | Keep a graveyard of disproved ideas | Compare an explicit prediction with an outcome (seed) |
370
+
371
+ Five obvious answers were transformed: a cron wrapper became a readable standing mandate;
372
+ a screenshot monitor became a remembering user journey; an automated linter became
373
+ evidence-based simplification; a feature suggestion box became a working experiment; a token
374
+ dashboard became a journal of cost versus retained outcomes.
375
+
376
+ The divergence lenses were **inversion** (the system acts and the person steers), **timing**
377
+ (new evidence earns a wake), **a garden analogy** (prune as well as grow), **extreme users**
378
+ (empty-account and keyboard-only journeys), and **removing the per-task instruction constraint**
379
+ (choose a useful obligation from direction). Six promising threads—readable mandate, durable
380
+ agenda, remembering journeys, source ownership, simplification and product bets—were merged
381
+ into the three recommended concepts.
382
+
383
+ The editorial scores below are judgments on a 1–5 scale, not measurements. Feasibility means
384
+ a focused local pilot; the user supplied no delivery deadline. Novelty rates the proposed
385
+ combination, not a claim to have invented its ingredients.
386
+
387
+ | Concept | Novelty | Pain addressed | Fit with this foundation | Pilot feasibility | Ease of getting evidence |
388
+ |---|---:|---:|---:|---:|---:|
389
+ | Night Shift | 3 | 5 | 5 | 4 | 4 |
390
+ | Product Ghosts | 4 | 4 | 4 | 3 | 4 |
391
+ | Evolution Garden | 4 | 4 | 3 | 2 | 2 |
392
+
393
+ ## Research limits and source trace
394
+
395
+ Local source inspection used the working tree, which already contained unrelated terminal and
396
+ browser edits. No product code, cron jobs, permissions, model requests or deployments were
397
+ changed. The OMP comparison is pinned to local commit
398
+ `63a7ba5dcc74cca2cb0ecb710770eb756102035d`; key anchors are
399
+ `goals/runtime.ts:8`, `goals/state.ts:23` and `:50`, plus its
400
+ [continuation instruction](../../external/omp/packages/coding-agent/src/prompts/goals/goal-continuation.md).
401
+ It is a snapshot, not a claim about the latest upstream release.
402
+
403
+ The companion studies give external source identities, inspected portions, changed behavior
404
+ versus older guidance, and the limits of reported experiments. Live documentation can change;
405
+ versioned source has priority where those disagree. This study did not run surveyed products,
406
+ measure customer outcomes or prove general reliability. The first decision is whether the
407
+ three directions are desirable; formal proposals and implementation should follow concrete
408
+ pilots and the repository's architecture process.