@xingular/harness 0.1.7 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (683) hide show
  1. package/CHANGELOG.md +97 -1
  2. package/LICENSE +202 -0
  3. package/NOTICE.md +22 -0
  4. package/README.md +187 -85
  5. package/THIRD_PARTY_LICENSES.md +942 -0
  6. package/dist/cli.js +13701 -13498
  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/browser/config.d.ts +16 -0
  18. package/dist/sdk/browser/config.js +22 -0
  19. package/dist/sdk/browser/diagnostics.d.ts +4 -0
  20. package/dist/sdk/browser/diagnostics.js +38 -0
  21. package/dist/sdk/browser/index.d.ts +17 -0
  22. package/dist/sdk/browser/index.js +65 -0
  23. package/dist/sdk/browser/network.d.ts +10 -0
  24. package/dist/sdk/browser/network.js +59 -0
  25. package/dist/sdk/browser/session.d.ts +84 -0
  26. package/dist/sdk/browser/session.js +192 -0
  27. package/dist/sdk/browser/tools.d.ts +8 -0
  28. package/dist/sdk/browser/tools.js +329 -0
  29. package/dist/sdk/capabilities/api.d.ts +22 -0
  30. package/dist/sdk/capabilities/api.js +54 -0
  31. package/dist/sdk/capabilities/runSnapshot.d.ts +18 -0
  32. package/dist/sdk/capabilities/runSnapshot.js +47 -0
  33. package/dist/sdk/capabilities/types.d.ts +29 -0
  34. package/dist/sdk/capabilities/types.js +1 -0
  35. package/dist/sdk/cli.d.ts +2 -0
  36. package/dist/sdk/cli.js +142 -0
  37. package/dist/sdk/core/bus.d.ts +23 -0
  38. package/dist/sdk/core/bus.js +76 -0
  39. package/dist/sdk/core/caller.d.ts +22 -0
  40. package/dist/sdk/core/caller.js +16 -0
  41. package/dist/sdk/core/changes.d.ts +15 -0
  42. package/dist/sdk/core/changes.js +15 -0
  43. package/dist/sdk/core/effort.d.ts +2 -0
  44. package/dist/sdk/core/effort.js +1 -0
  45. package/dist/sdk/core/env.d.ts +18 -0
  46. package/dist/sdk/core/env.js +8 -0
  47. package/dist/sdk/core/errors.d.ts +15 -0
  48. package/dist/sdk/core/errors.js +24 -0
  49. package/dist/sdk/core/frontmatter.d.ts +12 -0
  50. package/dist/sdk/core/frontmatter.js +50 -0
  51. package/dist/sdk/core/fs.d.ts +18 -0
  52. package/dist/sdk/core/fs.js +106 -0
  53. package/dist/sdk/core/index.d.ts +24 -0
  54. package/dist/sdk/core/index.js +187 -0
  55. package/dist/sdk/core/path.d.ts +7 -0
  56. package/dist/sdk/core/path.js +79 -0
  57. package/dist/sdk/core/projects.d.ts +18 -0
  58. package/dist/sdk/core/projects.js +67 -0
  59. package/dist/sdk/core/secrets.d.ts +2 -0
  60. package/dist/sdk/core/secrets.js +5 -0
  61. package/dist/sdk/core/text.d.ts +7 -0
  62. package/dist/sdk/core/text.js +40 -0
  63. package/dist/sdk/doctor/checks.d.ts +5 -0
  64. package/dist/sdk/doctor/checks.js +208 -0
  65. package/dist/sdk/doctor/probe.d.ts +4 -0
  66. package/dist/sdk/doctor/probe.js +92 -0
  67. package/dist/sdk/doctor/service.d.ts +23 -0
  68. package/dist/sdk/doctor/service.js +144 -0
  69. package/dist/sdk/doctor/types.d.ts +141 -0
  70. package/dist/sdk/doctor/types.js +29 -0
  71. package/dist/sdk/harness.d.ts +133 -0
  72. package/dist/sdk/harness.js +299 -0
  73. package/dist/sdk/history/lessonPrompt.d.ts +2 -0
  74. package/dist/sdk/history/lessonPrompt.js +15 -0
  75. package/dist/sdk/history/lessons.d.ts +52 -0
  76. package/dist/sdk/history/lessons.js +173 -0
  77. package/dist/sdk/history/recall.d.ts +68 -0
  78. package/dist/sdk/history/recall.js +199 -0
  79. package/dist/sdk/history/trajectory.d.ts +7 -0
  80. package/dist/sdk/history/trajectory.js +216 -0
  81. package/dist/sdk/hub/catalog.json +123 -0
  82. package/dist/sdk/hub/cli.d.ts +7 -0
  83. package/dist/sdk/hub/cli.js +81 -0
  84. package/dist/sdk/hub/hub.d.ts +74 -0
  85. package/dist/sdk/hub/hub.js +474 -0
  86. package/dist/sdk/hub/schema.d.ts +280 -0
  87. package/dist/sdk/hub/schema.js +78 -0
  88. package/dist/sdk/index.d.ts +63 -0
  89. package/dist/sdk/index.js +48 -0
  90. package/dist/sdk/mcp/connections.d.ts +83 -0
  91. package/dist/sdk/mcp/connections.js +669 -0
  92. package/dist/sdk/mcp/manager.d.ts +26 -0
  93. package/dist/sdk/mcp/manager.js +124 -0
  94. package/dist/sdk/mcp/oauth.d.ts +35 -0
  95. package/dist/sdk/mcp/oauth.js +171 -0
  96. package/dist/sdk/mcp/scopeMigration.d.ts +19 -0
  97. package/dist/sdk/mcp/scopeMigration.js +198 -0
  98. package/dist/sdk/mcp/service.d.ts +160 -0
  99. package/dist/sdk/mcp/service.js +510 -0
  100. package/dist/sdk/mcp/types.d.ts +131 -0
  101. package/dist/sdk/mcp/types.js +49 -0
  102. package/dist/sdk/pi/runtime.d.ts +13 -0
  103. package/dist/sdk/pi/runtime.js +31 -0
  104. package/dist/sdk/plugins/api.d.ts +66 -0
  105. package/dist/sdk/plugins/api.js +155 -0
  106. package/dist/sdk/plugins/attachments.d.ts +46 -0
  107. package/dist/sdk/plugins/attachments.js +111 -0
  108. package/dist/sdk/plugins/builtin.d.ts +6 -0
  109. package/dist/sdk/plugins/builtin.js +68 -0
  110. package/dist/sdk/plugins/catalogue.d.ts +29 -0
  111. package/dist/sdk/plugins/catalogue.js +196 -0
  112. package/dist/sdk/plugins/cli.d.ts +13 -0
  113. package/dist/sdk/plugins/cli.js +187 -0
  114. package/dist/sdk/plugins/discover.d.ts +42 -0
  115. package/dist/sdk/plugins/discover.js +115 -0
  116. package/dist/sdk/plugins/firstParty.d.ts +50 -0
  117. package/dist/sdk/plugins/firstParty.js +113 -0
  118. package/dist/sdk/plugins/hooks.d.ts +94 -0
  119. package/dist/sdk/plugins/hooks.js +162 -0
  120. package/dist/sdk/plugins/identity.d.ts +19 -0
  121. package/dist/sdk/plugins/identity.js +48 -0
  122. package/dist/sdk/plugins/install.d.ts +20 -0
  123. package/dist/sdk/plugins/install.js +110 -0
  124. package/dist/sdk/plugins/inventory.d.ts +22 -0
  125. package/dist/sdk/plugins/inventory.js +110 -0
  126. package/dist/sdk/plugins/manifest.d.ts +13 -0
  127. package/dist/sdk/plugins/manifest.js +56 -0
  128. package/dist/sdk/plugins/plugins.d.ts +104 -0
  129. package/dist/sdk/plugins/plugins.js +164 -0
  130. package/dist/sdk/plugins/runtime.d.ts +9 -0
  131. package/dist/sdk/plugins/runtime.js +95 -0
  132. package/dist/sdk/plugins/trust.d.ts +44 -0
  133. package/dist/sdk/plugins/trust.js +120 -0
  134. package/dist/sdk/plugins/types.d.ts +159 -0
  135. package/dist/sdk/plugins/types.js +7 -0
  136. package/dist/sdk/prompt/compile.d.ts +174 -0
  137. package/dist/sdk/prompt/compile.js +396 -0
  138. package/dist/sdk/refine/cli.d.ts +4 -0
  139. package/dist/sdk/refine/cli.js +186 -0
  140. package/dist/sdk/refine/demo.d.ts +21 -0
  141. package/dist/sdk/refine/demo.js +114 -0
  142. package/dist/sdk/refine/evidence.d.ts +55 -0
  143. package/dist/sdk/refine/evidence.js +330 -0
  144. package/dist/sdk/refine/host.d.ts +51 -0
  145. package/dist/sdk/refine/host.js +76 -0
  146. package/dist/sdk/refine/ledger.d.ts +48 -0
  147. package/dist/sdk/refine/ledger.js +76 -0
  148. package/dist/sdk/refine/library.d.ts +55 -0
  149. package/dist/sdk/refine/library.js +177 -0
  150. package/dist/sdk/refine/pi.d.ts +72 -0
  151. package/dist/sdk/refine/pi.js +248 -0
  152. package/dist/sdk/refine/prompts.d.ts +45 -0
  153. package/dist/sdk/refine/prompts.js +390 -0
  154. package/dist/sdk/refine/recursion.d.ts +113 -0
  155. package/dist/sdk/refine/recursion.js +258 -0
  156. package/dist/sdk/refine/runner.d.ts +81 -0
  157. package/dist/sdk/refine/runner.js +150 -0
  158. package/dist/sdk/refine/selection.d.ts +57 -0
  159. package/dist/sdk/refine/selection.js +251 -0
  160. package/dist/sdk/refine/service.d.ts +84 -0
  161. package/dist/sdk/refine/service.js +165 -0
  162. package/dist/sdk/refine/suite.d.ts +67 -0
  163. package/dist/sdk/refine/suite.js +174 -0
  164. package/dist/sdk/refine/trajectory.d.ts +9 -0
  165. package/dist/sdk/refine/trajectory.js +68 -0
  166. package/dist/sdk/refine/types.d.ts +77 -0
  167. package/dist/sdk/refine/types.js +10 -0
  168. package/dist/sdk/server/methods.d.ts +3 -0
  169. package/dist/sdk/server/methods.js +370 -0
  170. package/dist/sdk/server/remote.d.ts +19 -0
  171. package/dist/sdk/server/remote.js +84 -0
  172. package/dist/sdk/server/rpc.d.ts +20 -0
  173. package/dist/sdk/server/rpc.js +102 -0
  174. package/dist/sdk/server/serve.d.ts +10 -0
  175. package/dist/sdk/server/serve.js +18 -0
  176. package/dist/sdk/sessions/approvals.d.ts +47 -0
  177. package/dist/sdk/sessions/approvals.js +119 -0
  178. package/dist/sdk/sessions/continuation.d.ts +48 -0
  179. package/dist/sdk/sessions/continuation.js +85 -0
  180. package/dist/sdk/sessions/contracts.d.ts +534 -0
  181. package/dist/sdk/sessions/contracts.js +299 -0
  182. package/dist/sdk/sessions/extensionUi.d.ts +19 -0
  183. package/dist/sdk/sessions/extensionUi.js +64 -0
  184. package/dist/sdk/sessions/history.d.ts +16 -0
  185. package/dist/sdk/sessions/history.js +68 -0
  186. package/dist/sdk/sessions/lineageJoin.d.ts +2 -0
  187. package/dist/sdk/sessions/lineageJoin.js +61 -0
  188. package/dist/sdk/sessions/planMode.d.ts +36 -0
  189. package/dist/sdk/sessions/planMode.js +84 -0
  190. package/dist/sdk/sessions/policy.d.ts +43 -0
  191. package/dist/sdk/sessions/policy.js +1 -0
  192. package/dist/sdk/sessions/pricing.d.ts +34 -0
  193. package/dist/sdk/sessions/pricing.js +40 -0
  194. package/dist/sdk/sessions/reasoningSummaries.d.ts +11 -0
  195. package/dist/sdk/sessions/reasoningSummaries.js +61 -0
  196. package/dist/sdk/sessions/registry.d.ts +102 -0
  197. package/dist/sdk/sessions/registry.js +383 -0
  198. package/dist/sdk/sessions/runIndex.d.ts +21 -0
  199. package/dist/sdk/sessions/runIndex.js +65 -0
  200. package/dist/sdk/sessions/runStore.d.ts +66 -0
  201. package/dist/sdk/sessions/runStore.js +335 -0
  202. package/dist/sdk/sessions/runner.d.ts +213 -0
  203. package/dist/sdk/sessions/runner.js +589 -0
  204. package/dist/sdk/sessions/sessions.d.ts +140 -0
  205. package/dist/sdk/sessions/sessions.js +394 -0
  206. package/dist/sdk/sessions/subagentService.d.ts +41 -0
  207. package/dist/sdk/sessions/subagentService.js +247 -0
  208. package/dist/sdk/sessions/subagents.d.ts +50 -0
  209. package/dist/sdk/sessions/subagents.js +68 -0
  210. package/dist/sdk/terminal/accountsMenu.d.ts +46 -0
  211. package/dist/sdk/terminal/accountsMenu.js +392 -0
  212. package/dist/sdk/terminal/cli.d.ts +20 -0
  213. package/dist/sdk/terminal/cli.js +121 -0
  214. package/dist/sdk/terminal/client.d.ts +15 -0
  215. package/dist/sdk/terminal/client.js +126 -0
  216. package/dist/sdk/terminal/control.d.ts +4 -0
  217. package/dist/sdk/terminal/control.js +25 -0
  218. package/dist/sdk/terminal/controller.d.ts +72 -0
  219. package/dist/sdk/terminal/controller.js +351 -0
  220. package/dist/sdk/terminal/hubMenu.d.ts +10 -0
  221. package/dist/sdk/terminal/hubMenu.js +34 -0
  222. package/dist/sdk/terminal/launch.d.ts +5 -0
  223. package/dist/sdk/terminal/launch.js +27 -0
  224. package/dist/sdk/terminal/logs.d.ts +14 -0
  225. package/dist/sdk/terminal/logs.js +59 -0
  226. package/dist/sdk/terminal/piExtension.d.ts +6 -0
  227. package/dist/sdk/terminal/piExtension.js +392 -0
  228. package/dist/sdk/terminal/pluginMenu.d.ts +34 -0
  229. package/dist/sdk/terminal/pluginMenu.js +101 -0
  230. package/dist/sdk/terminal/socket.d.ts +70 -0
  231. package/dist/sdk/terminal/socket.js +256 -0
  232. package/dist/sdk/terminal/standalone.d.ts +18 -0
  233. package/dist/sdk/terminal/standalone.js +146 -0
  234. package/dist/sdk/terminal/terminals.d.ts +176 -0
  235. package/dist/sdk/terminal/terminals.js +767 -0
  236. package/dist/sdk/terminal/trajectory.d.ts +10 -0
  237. package/dist/sdk/terminal/trajectory.js +30 -0
  238. package/dist/sdk/terminal/tui/chrome.d.ts +64 -0
  239. package/dist/sdk/terminal/tui/chrome.js +169 -0
  240. package/dist/sdk/terminal/tui/clipboardFiles.d.ts +11 -0
  241. package/dist/sdk/terminal/tui/clipboardFiles.js +74 -0
  242. package/dist/sdk/terminal/tui/commandPages.d.ts +7 -0
  243. package/dist/sdk/terminal/tui/commandPages.js +63 -0
  244. package/dist/sdk/terminal/tui/commands.d.ts +42 -0
  245. package/dist/sdk/terminal/tui/commands.js +276 -0
  246. package/dist/sdk/terminal/tui/dialogGeometry.d.ts +27 -0
  247. package/dist/sdk/terminal/tui/dialogGeometry.js +50 -0
  248. package/dist/sdk/terminal/tui/dialogs.d.ts +75 -0
  249. package/dist/sdk/terminal/tui/dialogs.js +363 -0
  250. package/dist/sdk/terminal/tui/keybindings.d.ts +11 -0
  251. package/dist/sdk/terminal/tui/keybindings.js +49 -0
  252. package/dist/sdk/terminal/tui/list.d.ts +73 -0
  253. package/dist/sdk/terminal/tui/list.js +196 -0
  254. package/dist/sdk/terminal/tui/modeChoices.d.ts +42 -0
  255. package/dist/sdk/terminal/tui/modeChoices.js +70 -0
  256. package/dist/sdk/terminal/tui/modelPicker.d.ts +55 -0
  257. package/dist/sdk/terminal/tui/modelPicker.js +155 -0
  258. package/dist/sdk/terminal/tui/mouse.d.ts +3 -0
  259. package/dist/sdk/terminal/tui/mouse.js +3 -0
  260. package/dist/sdk/terminal/tui/page.d.ts +14 -0
  261. package/dist/sdk/terminal/tui/page.js +1 -0
  262. package/dist/sdk/terminal/tui/pageOverlay.d.ts +27 -0
  263. package/dist/sdk/terminal/tui/pageOverlay.js +145 -0
  264. package/dist/sdk/terminal/tui/pages/accountsPage.d.ts +54 -0
  265. package/dist/sdk/terminal/tui/pages/accountsPage.js +181 -0
  266. package/dist/sdk/terminal/tui/pages/componentsPage.d.ts +47 -0
  267. package/dist/sdk/terminal/tui/pages/componentsPage.js +119 -0
  268. package/dist/sdk/terminal/tui/pages/doctorPage.d.ts +37 -0
  269. package/dist/sdk/terminal/tui/pages/doctorPage.js +145 -0
  270. package/dist/sdk/terminal/tui/pages/hubPage.d.ts +39 -0
  271. package/dist/sdk/terminal/tui/pages/hubPage.js +128 -0
  272. package/dist/sdk/terminal/tui/pages/logPage.d.ts +38 -0
  273. package/dist/sdk/terminal/tui/pages/logPage.js +189 -0
  274. package/dist/sdk/terminal/tui/pages/permissionsPage.d.ts +44 -0
  275. package/dist/sdk/terminal/tui/pages/permissionsPage.js +124 -0
  276. package/dist/sdk/terminal/tui/pages/pluginsPage.d.ts +57 -0
  277. package/dist/sdk/terminal/tui/pages/pluginsPage.js +243 -0
  278. package/dist/sdk/terminal/tui/pages/settingsPage.d.ts +55 -0
  279. package/dist/sdk/terminal/tui/pages/settingsPage.js +88 -0
  280. package/dist/sdk/terminal/tui/pages/trajectoryPage.d.ts +58 -0
  281. package/dist/sdk/terminal/tui/pages/trajectoryPage.js +377 -0
  282. package/dist/sdk/terminal/tui/piAdapter.d.ts +18 -0
  283. package/dist/sdk/terminal/tui/piAdapter.js +48 -0
  284. package/dist/sdk/terminal/tui/planMode.d.ts +2 -0
  285. package/dist/sdk/terminal/tui/planMode.js +2 -0
  286. package/dist/sdk/terminal/tui/questionPicker.d.ts +20 -0
  287. package/dist/sdk/terminal/tui/questionPicker.js +150 -0
  288. package/dist/sdk/terminal/tui/questions.d.ts +19 -0
  289. package/dist/sdk/terminal/tui/questions.js +42 -0
  290. package/dist/sdk/terminal/tui/runtime.d.ts +114 -0
  291. package/dist/sdk/terminal/tui/runtime.js +441 -0
  292. package/dist/sdk/terminal/tui/search.d.ts +22 -0
  293. package/dist/sdk/terminal/tui/search.js +60 -0
  294. package/dist/sdk/terminal/tui/selection.d.ts +16 -0
  295. package/dist/sdk/terminal/tui/selection.js +16 -0
  296. package/dist/sdk/terminal/tui/sessionUi.d.ts +3 -0
  297. package/dist/sdk/terminal/tui/sessionUi.js +30 -0
  298. package/dist/sdk/terminal/tui/settingsModel.d.ts +12 -0
  299. package/dist/sdk/terminal/tui/settingsModel.js +84 -0
  300. package/dist/sdk/terminal/tui/sideQuestion.d.ts +53 -0
  301. package/dist/sdk/terminal/tui/sideQuestion.js +197 -0
  302. package/dist/sdk/terminal/tui/skillInvocation.d.ts +9 -0
  303. package/dist/sdk/terminal/tui/skillInvocation.js +43 -0
  304. package/dist/sdk/terminal/tui/status.d.ts +18 -0
  305. package/dist/sdk/terminal/tui/status.js +67 -0
  306. package/dist/sdk/terminal/tui/theme.d.ts +45 -0
  307. package/dist/sdk/terminal/tui/theme.js +176 -0
  308. package/dist/sdk/terminal/tui/treeModel.d.ts +79 -0
  309. package/dist/sdk/terminal/tui/treeModel.js +483 -0
  310. package/dist/sdk/terminal/tui/treePicker.d.ts +49 -0
  311. package/dist/sdk/terminal/tui/treePicker.js +251 -0
  312. package/dist/sdk/terminal/tui/ui.d.ts +47 -0
  313. package/dist/sdk/terminal/tui/ui.js +148 -0
  314. package/dist/sdk/terminal/tui/workingStatus.d.ts +9 -0
  315. package/dist/sdk/terminal/tui/workingStatus.js +229 -0
  316. package/dist/sdk/tools/askUser.d.ts +6 -0
  317. package/dist/sdk/tools/askUser.js +74 -0
  318. package/dist/sdk/tools/checklist.d.ts +9 -0
  319. package/dist/sdk/tools/checklist.js +54 -0
  320. package/dist/sdk/tools/definitions.d.ts +30 -0
  321. package/dist/sdk/tools/definitions.js +117 -0
  322. package/dist/sdk/tools/dispatch.d.ts +16 -0
  323. package/dist/sdk/tools/dispatch.js +67 -0
  324. package/dist/sdk/tools/harnessTools.d.ts +6 -0
  325. package/dist/sdk/tools/harnessTools.js +20 -0
  326. package/dist/sdk/tools/sessionName.d.ts +7 -0
  327. package/dist/sdk/tools/sessionName.js +31 -0
  328. package/dist/sdk/tools/spawnSubagent.d.ts +4 -0
  329. package/dist/sdk/tools/spawnSubagent.js +49 -0
  330. package/dist/sdk/tools/types.d.ts +48 -0
  331. package/dist/sdk/tools/types.js +1 -0
  332. package/dist/sdk/variant/components.d.ts +34 -0
  333. package/dist/sdk/variant/components.js +230 -0
  334. package/dist/sdk/variant/materialise.d.ts +66 -0
  335. package/dist/sdk/variant/materialise.js +81 -0
  336. package/dist/sdk/variant/migrate.d.ts +4 -0
  337. package/dist/sdk/variant/migrate.js +41 -0
  338. package/dist/sdk/variant/seed.d.ts +20 -0
  339. package/dist/sdk/variant/seed.js +116 -0
  340. package/dist/sdk/variant/store.d.ts +82 -0
  341. package/dist/sdk/variant/store.js +151 -0
  342. package/dist/sdk/variant/surface.d.ts +56 -0
  343. package/dist/sdk/variant/surface.js +81 -0
  344. package/dist/sdk/variant/trust.d.ts +27 -0
  345. package/dist/sdk/variant/trust.js +64 -0
  346. package/dist/sdk/variant/variant.d.ts +71 -0
  347. package/dist/sdk/variant/variant.js +331 -0
  348. package/dist/sdk/web/markdown.d.ts +10 -0
  349. package/dist/sdk/web/markdown.js +66 -0
  350. package/dist/sdk/web/safeRequest.d.ts +34 -0
  351. package/dist/sdk/web/safeRequest.js +175 -0
  352. package/dist/sdk/web/search.d.ts +53 -0
  353. package/dist/sdk/web/search.js +168 -0
  354. package/dist/sdk/web/text.d.ts +2 -0
  355. package/dist/sdk/web/text.js +7 -0
  356. package/dist/sdk/web/tools.d.ts +22 -0
  357. package/dist/sdk/web/tools.js +195 -0
  358. package/dist/sdk/web/turndown-plugin-gfm.d.ts +4 -0
  359. package/dist/sdk/wiki/notes.d.ts +68 -0
  360. package/dist/sdk/wiki/notes.js +297 -0
  361. package/dist/sdk/world/actions.d.ts +23 -0
  362. package/dist/sdk/world/actions.js +31 -0
  363. package/dist/sdk/world/cli.d.ts +12 -0
  364. package/dist/sdk/world/cli.js +166 -0
  365. package/dist/sdk/world/images.d.ts +20 -0
  366. package/dist/sdk/world/images.js +48 -0
  367. package/dist/sdk/world/untrusted.d.ts +12 -0
  368. package/dist/sdk/world/untrusted.js +20 -0
  369. package/dist/sdk/world/world.d.ts +65 -0
  370. package/dist/sdk/world/world.js +80 -0
  371. package/dist/terminal-opentui.js +13612 -0
  372. package/dist/terminal-pi.js +808 -151
  373. package/docs/README.md +22 -0
  374. package/docs/architecture/00-overview.md +159 -0
  375. package/docs/architecture/01-extension-points.md +78 -0
  376. package/docs/architecture/02-sessions-and-runs.md +146 -0
  377. package/docs/architecture/03-variants.md +95 -0
  378. package/docs/architecture/04-prompt.md +102 -0
  379. package/docs/architecture/05-refinement.md +107 -0
  380. package/docs/architecture/06-plugins-and-capabilities.md +93 -0
  381. package/docs/architecture/07-tools-and-gate.md +88 -0
  382. package/docs/architecture/08-memory-and-history.md +94 -0
  383. package/docs/architecture/09-accounts-and-connectors.md +90 -0
  384. package/docs/architecture/10-server-protocol.md +84 -0
  385. package/docs/architecture/11-terminal.md +81 -0
  386. package/docs/architecture/12-storage.md +61 -0
  387. package/docs/architecture/13-world-tools.md +23 -0
  388. package/docs/architecture/README.md +114 -0
  389. package/docs/architecture/proposals/PROP-0001-reporting-section.md +106 -0
  390. package/docs/architecture/proposals/PROP-0002-retain-rollout-workspaces.md +104 -0
  391. package/docs/architecture/proposals/PROP-0003-executor-settings.md +81 -0
  392. package/docs/architecture/proposals/PROP-0004-flexible-reporting-guidance.md +71 -0
  393. package/docs/architecture/proposals/PROP-0005-xharness-cli-name.md +78 -0
  394. package/docs/architecture/proposals/PROP-0006-run-checklist.md +68 -0
  395. package/docs/architecture/proposals/PROP-0007-run-continuation.md +80 -0
  396. package/docs/architecture/proposals/PROP-0008-lessons-from-runs.md +80 -0
  397. package/docs/architecture/proposals/PROP-0009-foundation-and-variants.md +78 -0
  398. package/docs/architecture/proposals/PROP-0010-session-names.md +73 -0
  399. package/docs/architecture/proposals/PROP-0011-doctor.md +63 -0
  400. package/docs/architecture/proposals/PROP-0012-release-baseline.md +56 -0
  401. package/docs/architecture/proposals/README.md +76 -0
  402. package/docs/decisions/ADR-0002-native-subagent-lifecycle.md +49 -0
  403. package/docs/decisions/ADR-0003-shared-asynchronous-subagents.md +70 -0
  404. package/docs/decisions/ADR-0004-fullscreen-terminal-layout.md +50 -0
  405. package/docs/decisions/ADR-0005-app-provided-oauth-clients.md +54 -0
  406. package/docs/decisions/ADR-0006-opentui-only-terminal.md +47 -0
  407. package/docs/decisions/ADR-0007-reporting-section.md +33 -0
  408. package/docs/decisions/ADR-0008-flexible-reporting-guidance.md +38 -0
  409. package/docs/decisions/ADR-0009-xharness-command.md +38 -0
  410. package/docs/decisions/ADR-0010-lessons-in-the-wiki.md +31 -0
  411. package/docs/decisions/ADR-0011-foundation-and-variants.md +28 -0
  412. package/docs/decisions/ADR-0012-native-session-names.md +34 -0
  413. package/docs/decisions/ADR-0013-doctor.md +27 -0
  414. package/docs/decisions/ADR-0014-public-release-baseline.md +21 -0
  415. package/docs/doctor.md +74 -0
  416. package/docs/experiments/EXP-0001-terminal-input-latency/plan.md +81 -0
  417. package/docs/experiments/EXP-0001-terminal-input-latency/results.md +46 -0
  418. package/docs/experiments/EXP-0002-opentui-typing-latency/plan.md +70 -0
  419. package/docs/experiments/EXP-0002-opentui-typing-latency/results.md +92 -0
  420. package/docs/features/README.md +20 -0
  421. package/docs/features/automations/README.md +41 -0
  422. package/docs/features/cores/README.md +39 -0
  423. package/docs/features/google-harness2/README.md +52 -0
  424. package/docs/features/integrations/README.md +40 -0
  425. package/docs/features/interfaces/README.md +29 -0
  426. package/docs/features/memory/README.md +28 -0
  427. package/docs/releases/1.0.0.md +40 -0
  428. package/docs/releases/README.md +36 -0
  429. package/docs/study/00-index.md +78 -0
  430. package/docs/study/arms/00-matrix.md +20 -0
  431. package/docs/study/arms/01-system-prompt.md +211 -0
  432. package/docs/study/arms/02-tools.md +79 -0
  433. package/docs/study/arms/03-subagents.md +90 -0
  434. package/docs/study/arms/04-skills.md +75 -0
  435. package/docs/study/arms/05-context-management.md +90 -0
  436. package/docs/study/arms/06-memory.md +90 -0
  437. package/docs/study/arms/07-governance.md +71 -0
  438. package/docs/study/arms/08-execution.md +69 -0
  439. package/docs/study/arms/09-observability.md +60 -0
  440. package/docs/study/arms/10-refinement.md +110 -0
  441. package/docs/study/btw-comparison.md +37 -0
  442. package/docs/study/feature-gap-review.md +42 -0
  443. package/docs/study/insights.md +123 -0
  444. package/docs/study/roadmap.md +72 -0
  445. package/docs/study/sources/claude-code.md +44 -0
  446. package/docs/study/sources/deepseek-harness.md +102 -0
  447. package/docs/study/sources/harness2.md +50 -0
  448. package/docs/study/sources/kimi-cli.md +42 -0
  449. package/docs/study/sources/omp.md +93 -0
  450. package/docs/study/sources/opencode.md +43 -0
  451. package/docs/study/sources/openhands.md +46 -0
  452. package/docs/study/sources/smolagents.md +40 -0
  453. package/docs/study/sources/swe-agent.md +34 -0
  454. package/docs/system-prompt-design.md +196 -0
  455. package/docs/terminal-tui.md +473 -56
  456. package/package.json +43 -13
  457. package/docs/evidence/terminal-2026-10-17/120x40-completed-transcript.ansi.gz +0 -0
  458. package/docs/evidence/terminal-2026-10-17/40x20-settings-interaction.ansi.gz +0 -0
  459. package/docs/evidence/terminal-2026-10-17/40x20-settings-keyboard.ansi.gz +0 -0
  460. package/docs/evidence/terminal-2026-10-17/40x20-welcome.ansi.gz +0 -0
  461. package/docs/evidence/terminal-2026-10-17/80x24-approval-0.ansi.gz +0 -0
  462. package/docs/evidence/terminal-2026-10-17/80x24-question.ansi.gz +0 -0
  463. package/docs/evidence/terminal-2026-10-17/verification.json +0 -130
  464. package/docs/evidence/terminal-2026-10-17-followup/120x40-completed-transcript.ansi.gz +0 -0
  465. package/docs/evidence/terminal-2026-10-17-followup/40x20-settings-interaction.ansi.gz +0 -0
  466. package/docs/evidence/terminal-2026-10-17-followup/40x20-settings-keyboard.ansi.gz +0 -0
  467. package/docs/evidence/terminal-2026-10-17-followup/40x20-welcome.ansi.gz +0 -0
  468. package/docs/evidence/terminal-2026-10-17-followup/80x24-approval-0.ansi.gz +0 -0
  469. package/docs/evidence/terminal-2026-10-17-followup/80x24-plugin-light.ansi.gz +0 -0
  470. package/docs/evidence/terminal-2026-10-17-followup/80x24-question-batch.ansi.gz +0 -0
  471. package/docs/evidence/terminal-2026-10-17-followup/80x24-question.ansi.gz +0 -0
  472. package/docs/evidence/terminal-2026-10-17-followup/app-bundle/80x24-approval-0.ansi.gz +0 -0
  473. package/docs/evidence/terminal-2026-10-17-followup/app-bundle/80x24-plugin-light.ansi.gz +0 -0
  474. package/docs/evidence/terminal-2026-10-17-followup/app-bundle/80x24-question-batch.ansi.gz +0 -0
  475. package/docs/evidence/terminal-2026-10-17-followup/app-bundle/80x24-question.ansi.gz +0 -0
  476. package/docs/evidence/terminal-2026-10-17-followup/app-bundle/verification.json +0 -95
  477. package/docs/evidence/terminal-2026-10-17-followup/global-install/80x24-approval-0.ansi.gz +0 -0
  478. package/docs/evidence/terminal-2026-10-17-followup/global-install/80x24-plugin-light.ansi.gz +0 -0
  479. package/docs/evidence/terminal-2026-10-17-followup/global-install/80x24-question-batch.ansi.gz +0 -0
  480. package/docs/evidence/terminal-2026-10-17-followup/global-install/80x24-question.ansi.gz +0 -0
  481. package/docs/evidence/terminal-2026-10-17-followup/global-install/README.md +0 -27
  482. package/docs/evidence/terminal-2026-10-17-followup/global-install/shell-command-80x24.ansi.gz +0 -0
  483. package/docs/evidence/terminal-2026-10-17-followup/global-install/shell-command.json +0 -18
  484. package/docs/evidence/terminal-2026-10-17-followup/global-install/verification.json +0 -95
  485. package/docs/evidence/terminal-2026-10-17-followup/harness-reference-80x24.json.gz +0 -0
  486. package/docs/evidence/terminal-2026-10-17-followup/harness-reference-final-80x24.json.gz +0 -0
  487. package/docs/evidence/terminal-2026-10-17-followup/harness-reference-scenario.json +0 -60
  488. package/docs/evidence/terminal-2026-10-17-followup/live-codex/README.md +0 -24
  489. package/docs/evidence/terminal-2026-10-17-followup/live-codex/complete-80x24.ansi.gz +0 -0
  490. package/docs/evidence/terminal-2026-10-17-followup/live-codex/verification.json +0 -57
  491. package/docs/evidence/terminal-2026-10-17-followup/omp-reference-80x24-early.json.gz +0 -0
  492. package/docs/evidence/terminal-2026-10-17-followup/omp-reference-80x24.json.gz +0 -0
  493. package/docs/evidence/terminal-2026-10-17-followup/omp-reference-scenario.json +0 -58
  494. package/docs/evidence/terminal-2026-10-17-followup/omp-supplemental-static.json.gz +0 -0
  495. package/docs/evidence/terminal-2026-10-17-followup/rea-artifacts.json +0 -320
  496. package/docs/evidence/terminal-2026-10-17-followup/reference-comparison.json +0 -30
  497. package/docs/evidence/terminal-2026-10-17-followup/reference-comparison.md +0 -133
  498. package/docs/evidence/terminal-2026-10-17-followup/reference-source-observations.json +0 -20
  499. package/docs/evidence/terminal-2026-10-17-followup/verification.json +0 -207
  500. package/src/accounts/accounts.test.ts +0 -333
  501. package/src/accounts/accounts.ts +0 -658
  502. package/src/accounts/env.test.ts +0 -95
  503. package/src/accounts/env.ts +0 -338
  504. package/src/accounts/secrets.ts +0 -50
  505. package/src/accounts/store.ts +0 -338
  506. package/src/capabilities/api.ts +0 -75
  507. package/src/capabilities/runSnapshot.ts +0 -59
  508. package/src/capabilities/types.ts +0 -34
  509. package/src/cli.ts +0 -118
  510. package/src/core/bus.ts +0 -34
  511. package/src/core/changes.ts +0 -33
  512. package/src/core/env.ts +0 -27
  513. package/src/core/errors.ts +0 -32
  514. package/src/core/frontmatter.ts +0 -47
  515. package/src/core/fs.test.ts +0 -38
  516. package/src/core/fs.ts +0 -92
  517. package/src/core/index.ts +0 -193
  518. package/src/core/path.test.ts +0 -14
  519. package/src/core/path.ts +0 -79
  520. package/src/core/projects.ts +0 -90
  521. package/src/core/text.ts +0 -39
  522. package/src/harness.ts +0 -312
  523. package/src/hub/catalog.json +0 -123
  524. package/src/hub/cli.ts +0 -59
  525. package/src/hub/hub.test.ts +0 -205
  526. package/src/hub/hub.ts +0 -256
  527. package/src/hub/schema.ts +0 -81
  528. package/src/index.ts +0 -75
  529. package/src/mcp/connections.ts +0 -614
  530. package/src/mcp/manager.ts +0 -130
  531. package/src/mcp/oauth.ts +0 -195
  532. package/src/mcp/scopeMigration.test.ts +0 -79
  533. package/src/mcp/scopeMigration.ts +0 -204
  534. package/src/mcp/service.test.ts +0 -376
  535. package/src/mcp/service.ts +0 -549
  536. package/src/mcp/types.ts +0 -108
  537. package/src/memory/api.test.ts +0 -82
  538. package/src/memory/api.ts +0 -303
  539. package/src/memory/blocks.test.ts +0 -78
  540. package/src/memory/blocks.ts +0 -408
  541. package/src/memory/caller.ts +0 -69
  542. package/src/memory/curation.test.ts +0 -163
  543. package/src/memory/curation.ts +0 -64
  544. package/src/memory/dispatch.ts +0 -59
  545. package/src/memory/facts.test.ts +0 -41
  546. package/src/memory/facts.ts +0 -248
  547. package/src/memory/graph.ts +0 -103
  548. package/src/memory/health.test.ts +0 -130
  549. package/src/memory/health.ts +0 -74
  550. package/src/memory/maintainer.ts +0 -272
  551. package/src/memory/maintenance.test.ts +0 -176
  552. package/src/memory/maintenance.ts +0 -518
  553. package/src/memory/migrate.ts +0 -79
  554. package/src/memory/operations.ts +0 -150
  555. package/src/memory/proposals.test.ts +0 -168
  556. package/src/memory/proposals.ts +0 -584
  557. package/src/memory/recall.test.ts +0 -115
  558. package/src/memory/recall.ts +0 -278
  559. package/src/memory/references.ts +0 -77
  560. package/src/memory/runContext.ts +0 -93
  561. package/src/memory/secrets.ts +0 -6
  562. package/src/memory/store.test.ts +0 -66
  563. package/src/memory/store.ts +0 -385
  564. package/src/memory/wiki.test.ts +0 -47
  565. package/src/memory/wiki.ts +0 -422
  566. package/src/memory/wikiIndex.test.ts +0 -88
  567. package/src/memory/wikiIndex.ts +0 -116
  568. package/src/plugins/api.ts +0 -181
  569. package/src/plugins/attachments.test.ts +0 -84
  570. package/src/plugins/attachments.ts +0 -141
  571. package/src/plugins/builtin.ts +0 -82
  572. package/src/plugins/catalogue.test.ts +0 -254
  573. package/src/plugins/catalogue.ts +0 -251
  574. package/src/plugins/cli.ts +0 -184
  575. package/src/plugins/discover.ts +0 -151
  576. package/src/plugins/firstParty.test.ts +0 -143
  577. package/src/plugins/firstParty.ts +0 -129
  578. package/src/plugins/hooks.test.ts +0 -250
  579. package/src/plugins/hooks.ts +0 -239
  580. package/src/plugins/identity.ts +0 -37
  581. package/src/plugins/install.test.ts +0 -107
  582. package/src/plugins/install.ts +0 -106
  583. package/src/plugins/inventory.ts +0 -123
  584. package/src/plugins/manifest.ts +0 -76
  585. package/src/plugins/plugins.test.ts +0 -205
  586. package/src/plugins/plugins.ts +0 -189
  587. package/src/plugins/proposal.ts +0 -121
  588. package/src/plugins/runtime.test.ts +0 -40
  589. package/src/plugins/runtime.ts +0 -82
  590. package/src/plugins/trust.ts +0 -142
  591. package/src/plugins/types.ts +0 -149
  592. package/src/prompt/compile.test.ts +0 -261
  593. package/src/prompt/compile.ts +0 -732
  594. package/src/server/methods.ts +0 -349
  595. package/src/server/remote.ts +0 -77
  596. package/src/server/rpc.ts +0 -116
  597. package/src/server/serve.ts +0 -28
  598. package/src/server/server.test.ts +0 -174
  599. package/src/sessions/approvals.ts +0 -118
  600. package/src/sessions/contracts.ts +0 -336
  601. package/src/sessions/conversation.test.ts +0 -177
  602. package/src/sessions/extensionSession.test.ts +0 -74
  603. package/src/sessions/extensionUi.test.ts +0 -65
  604. package/src/sessions/extensionUi.ts +0 -102
  605. package/src/sessions/history.ts +0 -51
  606. package/src/sessions/lineageJoin.ts +0 -75
  607. package/src/sessions/policy.ts +0 -36
  608. package/src/sessions/pricing.ts +0 -60
  609. package/src/sessions/questionBatches.test.ts +0 -110
  610. package/src/sessions/reasoningSummaries.ts +0 -59
  611. package/src/sessions/registry.ts +0 -381
  612. package/src/sessions/runIndex.ts +0 -99
  613. package/src/sessions/runStore.test.ts +0 -152
  614. package/src/sessions/runStore.ts +0 -332
  615. package/src/sessions/runner.ts +0 -604
  616. package/src/sessions/runtimeResources.test.ts +0 -61
  617. package/src/sessions/sessions.test.ts +0 -549
  618. package/src/sessions/sessions.ts +0 -339
  619. package/src/skills/registry.test.ts +0 -104
  620. package/src/skills/registry.ts +0 -413
  621. package/src/terminal/accountsMenu.test.ts +0 -225
  622. package/src/terminal/accountsMenu.ts +0 -382
  623. package/src/terminal/cli.ts +0 -149
  624. package/src/terminal/client.ts +0 -74
  625. package/src/terminal/control.test.ts +0 -23
  626. package/src/terminal/control.ts +0 -23
  627. package/src/terminal/controller.ts +0 -291
  628. package/src/terminal/hubMenu.ts +0 -24
  629. package/src/terminal/launch.test.ts +0 -25
  630. package/src/terminal/launch.ts +0 -48
  631. package/src/terminal/piExtension.lifecycle.test.ts +0 -55
  632. package/src/terminal/piExtension.ts +0 -259
  633. package/src/terminal/pluginControl.test.ts +0 -146
  634. package/src/terminal/pluginMenu.ts +0 -112
  635. package/src/terminal/socket.test.ts +0 -71
  636. package/src/terminal/socket.ts +0 -232
  637. package/src/terminal/standalone.test.ts +0 -167
  638. package/src/terminal/standalone.ts +0 -153
  639. package/src/terminal/terminal.test.ts +0 -399
  640. package/src/terminal/terminals.ts +0 -553
  641. package/src/terminal/tui/application.test.ts +0 -114
  642. package/src/terminal/tui/application.ts +0 -491
  643. package/src/terminal/tui/commands.test.ts +0 -218
  644. package/src/terminal/tui/commands.ts +0 -361
  645. package/src/terminal/tui/dialogs.ts +0 -301
  646. package/src/terminal/tui/editor.test.ts +0 -84
  647. package/src/terminal/tui/editor.ts +0 -79
  648. package/src/terminal/tui/keybindings.test.ts +0 -22
  649. package/src/terminal/tui/keybindings.ts +0 -50
  650. package/src/terminal/tui/piAdapter.ts +0 -62
  651. package/src/terminal/tui/presentation.test.ts +0 -79
  652. package/src/terminal/tui/questions.test.ts +0 -41
  653. package/src/terminal/tui/questions.ts +0 -47
  654. package/src/terminal/tui/runtime.socket.test.ts +0 -104
  655. package/src/terminal/tui/runtime.test.ts +0 -215
  656. package/src/terminal/tui/runtime.ts +0 -388
  657. package/src/terminal/tui/sessionUi.ts +0 -24
  658. package/src/terminal/tui/settings.test.ts +0 -150
  659. package/src/terminal/tui/settings.ts +0 -188
  660. package/src/terminal/tui/status.test.ts +0 -70
  661. package/src/terminal/tui/status.ts +0 -109
  662. package/src/terminal/tui/theme.ts +0 -174
  663. package/src/terminal/tui/tools.test.ts +0 -145
  664. package/src/terminal/tui/tools.ts +0 -142
  665. package/src/terminal/tui/transcript.test.ts +0 -25
  666. package/src/terminal/tui/transcript.ts +0 -124
  667. package/src/terminal/tui/ui.test.ts +0 -313
  668. package/src/terminal/tui/ui.ts +0 -166
  669. package/src/terminal/tui/welcome.ts +0 -102
  670. package/src/tools/askUser.test.ts +0 -69
  671. package/src/tools/askUser.ts +0 -59
  672. package/src/tools/definitions.ts +0 -187
  673. package/src/tools/maintenance.ts +0 -24
  674. package/src/tools/memoryTools.ts +0 -22
  675. package/src/tools/pluginPropose.ts +0 -41
  676. package/src/tools/registryWrite.test.ts +0 -101
  677. package/src/tools/registryWrite.ts +0 -182
  678. package/src/tools/spawnSubagent.ts +0 -92
  679. package/src/tools/types.ts +0 -39
  680. package/src/web/safeRequest.ts +0 -171
  681. package/src/web/text.ts +0 -53
  682. package/src/web/tools.ts +0 -134
  683. package/src/web/web.test.ts +0 -141
@@ -0,0 +1,72 @@
1
+ # Adoption roadmap — implementing these findings in this harness
2
+
3
+ Derived from `arms/01–10` and `insights.md`. Tiering: **T1** = landed patterns
4
+ from battle-tested open harnesses, adopt now; **T2** = adopt after a check or a
5
+ measurement; **T3** = park. Every item lands through one of the seven surfaces
6
+ (prompt sections, tool providers, `ToolPolicy`, `SecretStore`, `Directory`,
7
+ plugin descriptions, `RefineHost`) or the tree/refine machinery already in
8
+ `src/`, never by naming an application concept. Check plan: `npm run typecheck`,
9
+ `npm test`; `npm run prove` when the server/CLI/startup changes.
10
+
11
+ ## Tier 1 — adopt now
12
+
13
+ | # | What | Where it lands | Why & source | Verification |
14
+ |---|---|---|---|---|
15
+ | 1 | **Prompt-section ordering contract**: contributors declare a numeric order; compilation sorts (order, then name), rejects duplicate ids, scoped entries shadow globals | prompt compilation in `src/prompt/compile.ts` + plugin descriptor (`src/plugins/builtin.ts`) | dsh's section contract — deterministic ordering is a *cache* and *reasoning* asset (arm 01, insight 3) | unit tests incl. duplicate-order throws and shadowing either-order |
16
+ | 2 | **Tool approval tiers**: every ToolSpec declares `read\|write\|exec`; standing-approval policy wording derives from tiers | `ToolPolicy` + `src/tools/types.ts` (+ tool providers' default rows) | omp's tier×policy legibility (arm 02/07) | the tier is mandatory in the gate path; docs |
17
+ | 3 | **Policy-missing ⇒ ask** invariant with tests | gate in `src/` (`ToolPolicy` evaluation) | omp fails closed; dsh bundle default (arm 07) | a gate test per missing-policy shape |
18
+ | 4 | **Tool descriptions as template files**: description text lives in `.md` (interpolating `{product}`), imported `type:"text"` — no inline instruction literals in tool definitions | `src/tools/*` | omp's "prompts never in code"; reviewability (arm 02) | build renders identical output; no behavior change |
19
+ | 5 | **Subagent receipts self-describe limits** (24k cap, delivery semantics) inside the receipt text | `src/tools/spawnSubagent.ts` | ours — the cap exists but is implicit (arm 03, S2) | receipt content test |
20
+ | 6 | **Tree validation adopts harness²'s discard rules** where missing: skill trigger-line presence in always-on text; braces checking; script-existence (re-verify which already hold in `validate()`) | `src/tree/tree.ts` + tests | harness² turns prompt conventions into machine gates (arms 04/10, K2/K3) | a failing-tree test per rule |
21
+ | 7 | **Sync refinement prompts with upstream drift**: pull changed sentences from harness² `adapt` pack (pool-anonymity, deliverable-shape rule) into `src/refine/prompts.ts` | `src/refine/prompts.ts` | upstream evolved past our port snapshot (arm 10, R1) | existing refine tests stay green; wording-insensitive assertions |
22
+ | 8 | **`<notes>` decision-audit format** added to compose/selection stages (kept\|revised\|dropped → edit → evidence) | `src/refine/prompts.ts` | tts pack's auditability upgrade (arm 10, R2) | schema on notes parse |
23
+ | 9 | **Volatile-value placement rule**: no date/cwd/env in the stable prefix ever; supply via `xingular-context` channel or a user-turn injection | `src/prompt/compile.ts` (nothing, if currently absent — confirm) | omp's invalidation lesson (arm 01, A1; **verified**: our compiler injects none today) | a lint-style test asserting the prefix has no volatile lines |
24
+ | 10 | **Normative docs**: one-subprocess-service norm and identity-blind transport commitment for any future telemetry-like export | repo README / docs | dsh (arms 08/09, E2/O1) | ADR text only |
25
+
26
+ ## Tier 2 — adopt after a check or measurement
27
+
28
+ | # | What | Precondition | Landing surface |
29
+ |---|---|---|---|
30
+ | 11 | Compaction shapes: fixed named-template summary + verbatim tail checkpoint + prune-first ordering | inventory our current compaction behavior first (Pi-native history; no `src/` compaction found) | `RefineHost`/session docs, then prompt sections for restoration text (arm 05, C1–C3) |
31
+ | 12 | `toolOrder` validation for pinned tool sets (unknown/rejected/marker rules) | confirm our capability freezing can't already be ordered inconsistently | `sessions.run` freeze path (arm 02, A4) |
32
+ | 13 | Restriction masks equivalent to dsh `ctx.tools.restrict` — check whether `capabilities.intersect` already covers scoped narrow-and-lift before adding anything | read `src/capabilities/` | none if covered (arm 02) |
33
+ | 14 | Skill-catalog deltas in `xingular-context` when tree versions change mid-run | assess token cost of name+description deltas vs tree sections | context update contents (arm 04, K1) |
34
+ | 15 | Substrate-parity test R5: an upstream harness² candidate tree validates under `PI_SURFACE` without edit | none — test only | `src/tree/` tests (arm 10, R5) |
35
+ | 16 | **Cache warming** near TTL (omp `cache-warmer.ts`) and the cache-*stable-prefix* probe protocol: engineering lives app-side; the harness may only need to expose request timing in run events | measure with `probe-chat-cache-app.py` from the App repo, with the account owner's permission | nothing harness-side unless events lack durations (arm 01, A5) |
36
+ | 17 | Sandbox classes offered as `ToolPolicy` options (read-only/workspace-write) | app-level sandbox plumbing exists | ToolPolicy (arm 08, E1) |
37
+
38
+ ## Evaluation of the harness — suite and sweep items
39
+
40
+ How the harness itself gets measured over time (STUDY-0001; the mechanism is
41
+ `src/refine/`, with frozen tasks and sweeps owned by the Evaluation repo).
42
+
43
+ | # | What | Where it lives | Status |
44
+ |---|---|---|---|
45
+ | E1 | **Evaluation matrix** (`runMatrix`): tree × task deliverability records with comparability keys (task-hash, executor, package version, fingerprint); `refine matrix` CLI taking tree dirs or committed scope versions; records beside refinements (`refine/<id>/matrix.json`) | `src/refine/suite.ts`, `refine/cli.ts` | **landed** (05/12 pages updated) |
46
+ | E2 | No-model CI lane: the matrix through the demo executor, proved standalone | `scripts/prove-standalone.mjs` | **landed** |
47
+ | E3 | Tree-lineage sweep: matrix across every adopted version of a scope | suite `{scope, version}` entries; a driver later | capability landed |
48
+ | E4 | Frozen task library: answer-stripped `RefineTask` records + source fixtures + leak globs | Evaluation repo | pending |
49
+ | E5 | Commit-range sweep: per commit, git worktree → `refine matrix` → matrix rows | Evaluation repo (drives production code; never fakes a session) | pending |
50
+ | E6 | Regression report: flip table (delivered⇄empty), cost-per-delivered between two matrices | Evaluation repo dashboard | pending |
51
+ | E7 | Suite-based adoption gate: `adopt` only when the chosen tree wins the frozen suite, else `keep_base` | `refine/service.ts` policy; suite data from Evaluation | pending |
52
+ | E8 | Real PiExecutor lane with cost/wall budget stops | Evaluation repo + App; needs the account owner's approval | parked until approved |
53
+
54
+ ## Parked / anti-candidates (recorded, do not build)
55
+
56
+ - `memory://` protocol over wiki tools (omp mnemopi) — caps/budgets suffice for now (arm 06, M2).
57
+ - `fork`-style history-seeded children (dsh) — breaks the fresh-child accounting model (arm 03).
58
+ - Free code-as-action for model tools (smolagents) — the per-call gate is a load-bearing contract; revisit only behind a RefineHost-scope opt-in (arm 02).
59
+ - In-harness judge module — requires the family-layering decision (Evaluation owns measurement) before any port; if ever ported, port the *decoupling shape* verbatim (arm 10, R4).
60
+ - omp's in-process coretools shell environment — an execution detail of
61
+ omp/pi-shell, host-supervised here; not adoptable machinery (arm 08).
62
+
63
+ ## Sequencing
64
+
65
+ 1. Items 1–4 (contract tier: prompt ordering, tiers, fail-closed, template descriptions) — one focused change each, with tests; land first because later items build on the vocabulary.
66
+ 2. Items 5–9 (mechanical: receipts, validation, prompt sync/notes, placement rule).
67
+ 3. Item 10 + Tier-2 checks (12–15) as a small batch.
68
+ 4. Measurement-gated items (11, 16) last, through the App scripts where indicated.
69
+
70
+ Every landed item updates the relevant arm doc's "adoption candidates" row to
71
+ `landed: <path>` and adds an ADR when the change alters a contract (server
72
+ methods, tool gate semantics, tree validation).
@@ -0,0 +1,44 @@
1
+ # Source: Claude Code (Anthropic) — no local code
2
+
3
+ - Origin: [Anthropic Claude Code](https://www.anthropic.com/claude-code). Not open
4
+ source: no clone. Material to audit: the npm package (`@anthropic-ai/claude-code`,
5
+ bundled JS — inspect for system prompt and tool descriptions), Anthropic's
6
+ engineering blog posts on Claude Code (agent loop, harness internals, sub-agent
7
+ guidance, compaction), the skills spec (agent skills API), and observed CLI
8
+ behavior (`/hooks`, `Permission` modes, CLAUDE.md hierarchy, memory
9
+ instructions).
10
+ - Why studied: the de-facto reference for UX-shaped harness conventions — CLAUDE.md
11
+ hierarchy, skills, subagents as first-class configs, hook events, plan mode,
12
+ permission modes. Every other harness in this study copies it knowingly or not.
13
+
14
+ ## Map to arms (from public, verifiable material — no code claims)
15
+
16
+ - Arm 01 (prompt): CLAUDE.md hierarchy (enterprise/user/project/local), `@file`
17
+ imports, `#` quick-memory, output styles forcing; the leak-history repo
18
+ (community) documents the shipped system prompt — cite carefully, it changes.
19
+ - Arm 02 (tools): bundled tools w/ rich descriptions ("use when…" instructions
20
+ live in tool descriptions, not the prompt); MCP support.
21
+ - Arm 03 (subagents): `.claude/agents/*.md` subagent files w/ own name/description/
22
+ toolset/model; auto-delegation by description matching.
23
+ - Arm 04 (skills): SKILL.md progressive disclosure (name+description only loaded;
24
+ body read on demand), script support.
25
+ - Arm 05 (context): compaction thresholds, `--continue/--resume`, context restore
26
+ via note files.
27
+ - Arm 06 (memory): `CLAUDE.local.md`, `#` memory notes, user memory file.
28
+ - Arm 07 (governance): permission modes (default/acceptEdits/plan/
29
+ bypassPermissions), allow/deny rules patterns, hooks (PreToolUse/PostToolUse)
30
+ as policy handlers, sandboxed bash per platform.
31
+ - Arm 08 (execution): bash w/ working-dir constraints; desktop app tooling.
32
+
33
+ ## Open questions for the audit (each needs its citation landing)
34
+
35
+ 1. SKILL.md spec: exact progressive-disclosure contract; compare against this
36
+ harness's skill loader c7/c8 + trust requirements.
37
+ 2. Hooks: which events exist, do they mutate tool input (``PreToolUse`` update
38
+ semantics) — contrast with the here-rule "a hook is told, never asked".
39
+ 3. Subagent file spec: fields, tool inheritance, model pinning; our extension
40
+ point answer.
41
+ 4. Plan mode mechanics (bilateral approval) — how does its gate differ from our
42
+ refinement probes (answer-free, no world effect).
43
+ 5. Verbatim from a recent npm bundle: capture current system prompt + tool
44
+ descriptions and date-stamp them.
@@ -0,0 +1,102 @@
1
+ # Source: deepseek-harness (dsh)
2
+
3
+ - Origin: [deepseek-ai/deepseek-harness](https://github.com/deepseek-ai/deepseek-harness),
4
+ released Aug 2026, MIT, developer preview (compatibility-breaking expected).
5
+ Built on the Cordis meta-framework ("spatiotemporal composability"); one radical
6
+ claim: **everything is a plugin** — model adapters, tool registry, session log,
7
+ sandboxes, and the agent loop itself have no privileged core.
8
+ - Local clone: `external/deepseek-harness` (205 MB).
9
+ - Status: **arm-01 audited; arms 02–06 audited** (explorer report; verified spot
10
+ checks pending — treat claims below as explorer-verified until I re-read).
11
+
12
+ ## Verified layout
13
+
14
+ `packages/` (arm-shaped): `acp`, `api`, `attachment`, `boot`, `browser-use`,
15
+ `bundle`, `client`, `compaction`, `computer-use`, `context`, `core` (with
16
+ `packages/core/tools`, `packages/core/system-prompt`, `packages/core/agent-loop`),
17
+ `credentials`, `deliverables`, `fs`, `guard`, `host`, `identity`, `interaction`,
18
+ `jobs`, `llm`, `lsp`, `mcp`, `plan`, `preset`, `ptc-runtime`, `sandbox`,
19
+ `schedule`, `session`, `session-query`, `settings`, `shell`, `skill`, `spill`,
20
+ `ssh`, `storage`, `subagent`, `subprocess`, `telemetry`, `terminal`, `todo`,
21
+ `util`, `web`, `workflow`, `workspace`.
22
+
23
+ ## Core facts per arm (audited)
24
+
25
+ **02 tools.** Canonical registry is `ctx.tools` (dsh-tools), not the loop:
26
+ declaring a tool via `defineTool` makes it visible, and ToolRuntime feeds the
27
+ system prompt automatically (`packages/core/tools/README.md:30,34-62`;
28
+ `packages/core/tools/src/index.ts:857`). Two presentation modes: `native`
29
+ (all schemas) vs `ptc` (models see only `run_code` + generated SDK — programmatic
30
+ tool calling), with per-agent `presentAs` override
31
+ (`packages/core/tools/README.md:68-81`). Plain restriction API:
32
+ `ctx.tools.restrict(filter)` allow/deny masks that intersect and lift on dispose
33
+ (`README.md:85`). **The gate is inside dsh-tools**, a fixed pipeline:
34
+ `tools/pre-execute` (allow/deny/ask) → monotonic `ctx.tools.guard()` reasons →
35
+ `tools/execute` → `tools/post-execute` → observe-only `tools/result`
36
+ (`README.md:89,109`; ask at `packages/core/tools/src/index.ts:608-612,1513-1527`).
37
+ `packages/guard` is *not* the gate — it is loop hygiene (repeat-tool reminder,
38
+ timeout policy). `toolOrder` is validated config: explicit model-facing order,
39
+ exactly one `<unlisted-tools>` rest entry, unknown names fail assembly
40
+ (`packages/core/system-prompt/README.md:50-52,179`). Bundle = profile patch
41
+ layer stacked over `dsh-base`, which ships a default wallet policy confining
42
+ file writes and asking before risky actions
43
+ (`packages/bundle/README.md:12`, `packages/bundle/base/README.md:50`).
44
+
45
+ **03 subagents.** `ctx.subagents` + provider backends + tool plugins
46
+ (`packages/subagent/README.md:27-35`). Spawn returns immediately with
47
+ `started subagent <childId>`; completion notice delivered later
48
+ (`tool-subagent/README.md:59`). Two kinds: fresh child (`spawn`) vs `fork`
49
+ seeded from the parent's completed history (`README.md:28-29`); local children
50
+ are continuable; external backends (ACP/Codex/Claude Code) "execute once"
51
+ (`README.md:12,61`). Capacity defaults: 8 active, depth 1
52
+ (`subagent/src/README.md:53,49`). **No description-based auto-routing** in dsh —
53
+ the model names a preset from an enum allowlist (`tool-subagent/README.md:52,68`).
54
+
55
+ **04 skills.** Progressive disclosure: before the first request the model gets a
56
+ durable catalog of names + capped descriptions (default cap 500 chars), and
57
+ loads full body via the `skill` tool; `/name` invocation injects the same
58
+ instructions (`packages/skill/tool-skill/README.md:12,54-56`); catalog changes
59
+ append a complete replacement; empty catalog retires names
60
+ (`:57`).
61
+
62
+ **05 context.** `compaction-basic` triggers at
63
+ `floor(min(W×0.8, W−O−headroom))` with 65_536 headroom, keeps the newest 16%,
64
+ one extra model request, only the summary retained
65
+ (`packages/compaction/compaction-basic/README.md:12,32,62-68`; `config.ts:75-78`);
66
+ oversized tool outputs pruned first, image placeholders swapped for offloaded
67
+ images (`packages/compaction/README.md:31-32`). `session-query` = SQLite FTS5
68
+ search over the durable log, independent of compaction
69
+ (`packages/session-query/README.md:12,30`).
70
+
71
+ **06 memory.** No memory package by design. Durables: immutable canonical JSONL
72
+ sessions with checkpoint policy (`packages/session/README.md:38-39`), todo lists
73
+ persisting across sessions (owned by the session, whole-list replace,
74
+ `packages/todo/README.md:12`), `spill` = full text stored outside context with
75
+ locator + retrieval guidance (`packages/spill/README.md:12,30-31`),
76
+ `storage` = non-session app data, never model-visible
77
+ (`packages/storage/README.md:12,27-30`), `deliverables` = per-turn outputs as
78
+ client-only session events with `workspace/changes` derived from git snapshots
79
+ (`packages/deliverables/README.md:12,27-28`). Cross-session agent memory:
80
+ unaddressed.
81
+
82
+ **07–09 briefs.** Sandbox = file-effect policy classes
83
+ (read-only/workspace-write/danger-full-access) with Landlock/Seatbelt/Windows
84
+ backends and one-time approved escalation (`packages/sandbox/README.md:12,30`);
85
+ one shell executor per composition (`packages/shell/README.md:12,38`); one
86
+ `ctx.subprocess` service with bounded output and scrubbed env
87
+ (`packages/subprocess/README.md:12,27`); telemetry is an OTel transport with
88
+ `FEEDBACK_ONLY` default (`packages/telemetry/README.md:12,25`,
89
+ `packages/bundle/base/README.md:50`).
90
+
91
+ ## Open questions, answered
92
+
93
+ 1. Tool plugin interface → `defineTool` + `ctx.tools` registry; schemas flow to
94
+ the prompt via ToolRuntime's self-registration.
95
+ 2. `guard` → not the approval mechanism; gate = `tools/pre-execute` pipeline in
96
+ dsh-tools.
97
+ 3. `ptc-runtime` → programmatic tool calling: models get exactly `run_code` plus
98
+ a generated SDK; executionInstructions carry syntax/state guidance.
99
+ 4. `spill` → out-of-context storage returning locators; feeds compaction policy.
100
+ 5. `acp` → Agent Client Protocol islands (one of several subagent backends).
101
+ 6. Plugin prompt contributions → ordered sections incl. `.tools()` providers;
102
+ ordering is a validated contract (see arm 01).
@@ -0,0 +1,50 @@
1
+ # Source: harness² (Google Research)
2
+
3
+ - Origin: [google-research/harness2](https://github.com/google-research/harness2)
4
+ (Apache 2.0) and the paper *Harness²: Recursive Agent Harnessing for an Open
5
+ World* — Xu et al., 2026, [arXiv:2610.14224](https://arxiv.org/abs/2610.14224)
6
+ (PDF saved at `external/harness2/harness2-arxiv-2610.14224.pdf`). Project page:
7
+ [harness2.github.io](https://harness2.github.io/). Site: 11.5 pts WorkBuddy-Bench
8
+ etc. — verify exact numbers from the paper before citing.
9
+ - Local clone: `external/harness2` (Python). Note: substrate adapters include
10
+ `opencode.py` and `codex.py` — harness² wraps other harnesses.
11
+ - Why studied: the conceptual core of this study. A harness = everything around a
12
+ frozen model (prompts, tools, memory, skills, orchestration); harnessing =
13
+ optimizing that system recursively, at task level (edit → probe → compose) and
14
+ harness level (experience reflector → improvement harness).
15
+
16
+ ## Verified layout
17
+
18
+ `harness2/core/`: `prompts.py`, `proposer.py`, `recursion.py`, `selection.py`,
19
+ `judge.py`, `library.py`, `ledger.py`, `tree.py`, `context.py`, `spec.py`,
20
+ `schedule.py`, `runmark.py`, `report.py`.
21
+
22
+ `harness2/substrate/`: `base.py`, `codex.py`, `opencode.py`.
23
+
24
+ `harness2/cli/`: `bridge.py`, `judge.py`, `run_sweep.py`, `check.py`, `report.py`,
25
+ `setup.py`, `demo.py`.
26
+
27
+ Docs: `docs/BENCHMARKS.md`, `docs/EXPERIMENTS.md`, `docs/SETUP.md`.
28
+
29
+ ## Map to arms
30
+
31
+ - Arm 10 (refinement ⭐ — primary): `proposer` (harness editor: invariant vs domain
32
+ edits), probes/executor for candidates, `selection` (composer choosing among
33
+ candidates), `recursion` (two levels), `judge` (answer-free self-labelling of
34
+ rollouts), `library` (experience library), `ledger` — compare against this
35
+ harness's Propose–Probe–Compose, answer-free selection, experience library,
36
+ refine/ledger identity, and `RefineHost` isolation.
37
+ - Arm 01 (prompt): `tree.py` + `context.py` — what their harness tree/editable
38
+ files look like vs this harness's versions never, only superseded.
39
+ - Arm 06 (memory): `library.py` — cross-task experience write-back policy.
40
+
41
+ ## Open questions for the audit
42
+
43
+ 1. What is editable in their harness tree, what is invariant, and how does
44
+ "invariant" map to this harness's capped/validated c1–c4?
45
+ 2. How does their self-judge stay answer-free — is its label visible to proposer
46
+ and composer, and does its error bar matter?
47
+ 3. How are candidate probes isolated (workspace, approvals refused)?
48
+ 4. What does the experience reflector write back, with what schema and trigger?
49
+ 5. Which substrate contract does `substrate/opencode.py` actually need — is one
50
+ substrate adapter for this harness feasible via `RefineHost`?
@@ -0,0 +1,42 @@
1
+ # Source: Kimi CLI (Moonshot)
2
+
3
+ - Origin: [MoonshotAI/Kimi-CLI](https://github.com/MoonshotAI/Kimi-CLI) — Moonshot's
4
+ coding agent CLI for Kimi models; also source for the K2 agent-harness lessons in
5
+ [the Kimi K2 technical report](https://github.com/MoonshotAI/Kimi-K2/blob/main/tech_report.md)
6
+ (agent-related: tool design, agentic data pipeline, prompt formats — offline read).
7
+ - Local clone: `external/kimi-cli` (30 MB, Python + Bun packages). **Note: neuron
8
+ shipped archived** — `packages/kosong/README.md:3-5` states the package (and the
9
+ Kimi CLI monorepo) is no longer maintained; PyPI versions remain. Treat as a
10
+ historical design point, not a living one.
11
+ - Why studied: they report agent-capability numbers from harness choices
12
+ (tool-call reliability, cross-platform behavior), and their harness is young —
13
+ a good contrast to opencode/dsh maturity.
14
+
15
+ ## Verified layout
16
+
17
+ **Archived, no longer maintained** — `external/kimi-cli/packages/kosong/README.md:3-5`
18
+ states the Kimi CLI monorepo is archived; kosong itself ("LLM abstraction layer:
19
+ unified messages, async tool orchestration, pluggable providers", `README.md:9-10`)
20
+ remains published on PyPI.
21
+ - `packages/`: `kaos`, `kimi-code`, `kosong` — names suggest an OS-abstraction
22
+ layer (kaos), the coding product (kimi-code), and a core/primitive crate
23
+ (kosong). Verify.
24
+ - `klips/`, `sdks/`, `examples/`, `docs/`.
25
+
26
+ ## Map to arms (pending verification per claim)
27
+
28
+ - Arm 02 (tools): kosong primitives (tool call protocol), shell/file tools.
29
+ - Arm 08 (execution): kaos (platform abstraction — include zsh/POSIX-specific
30
+ behavior matrices from their reports).
31
+ - Arm 01 (prompt): kimi-code's prompt assembly; system prompt size/variants.
32
+ - Arm 03 (subagents): verify — does kimi-cli have subagents or just parallel
33
+ tools?
34
+ - Arm 09 (observability): `klips`/vis.
35
+
36
+ ## Open questions for the audit
37
+
38
+ 1. What is kosong's tool interface, and does it version tool schemas?
39
+ 2. kaos: which OS differences do they encode (Windows/macOS sandbox quirks)?
40
+ 3. How does the CLI do cost/usage accounting and context tracking?
41
+ 4. Tech report: what harness decisions do they credit for SWE-bench/ToolBench
42
+ deltas —tool granularity, prompting, or sandboxing?
@@ -0,0 +1,93 @@
1
+ # Source: oh-my-pi (omp) — the open tuning of pi
2
+
3
+ - Origin: [can1357/oh-my-pi](https://github.com/can1357/oh-my-pi); a fork of
4
+ [badlogic/pi-mono](https://github.com/badlogic/pi-mono) by @mariozechner. This
5
+ harness family's Pi session runtime is upstream pi; omp is the sharpened sibling.
6
+ - Local clone: `external/omp` (907 MB incl. assets/Bazel).
7
+ - Status: **arm-01 verified in person; arms 02–06 audited** (explorer report;
8
+ my spot-check of `date-cwd-reminder.ts` done).
9
+
10
+ ## Verified layout
11
+
12
+ Rust crates (`crates/`): `pi-ast`, `pi-builtins`, `pi-diff`, `pi-edit`, `pi-iso`,
13
+ `pi-natives`, `pi-predict`, `pi-shell`, `pi-vcs`, `pi-vfs`, `pi-voice`,
14
+ `pi-walker`. Bun/TS packages: `coding-agent` (the surface), `metaharness`,
15
+ `mnemopi`, `snapcompact`, `agent`, `stats`, `tui`, `wire`, `catalog`.
16
+
17
+ ## Core facts per arm (audited)
18
+
19
+ **02 tools.** 30 built-in tool names as a const list
20
+ (`packages/coding-agent/src/tools/builtin-names.ts:1-32`) + 3 hidden
21
+ (`think/yield/goal`, `:36`; root README's "31" claim disagrees — unverified).
22
+ `createTools` resolves/constructs/registers into `session.toolRegistry`
23
+ (`.../tools/index.ts:554-591,831-861`); settings gate each tool
24
+ (`:96-105`). Tool definition is rich: `AgentTool` extends `Tool` with label,
25
+ TypeBox parameters, execute, renderCall/renderResult hooks, an **approval tier
26
+ declaration** (read|write|exec, exec default), `loadMode` essential/discoverable,
27
+ `docTopics` (`xd://` links), per-call concurrency (shared/exclusive), and
28
+ speculation policy (`packages/agent/src/types.ts:1129-1243`). Descriptions are
29
+ rendered from static `.md` templates via a dynamic getter (`.../tools/read.ts:975-996`).
30
+ Tool prompts never inline (`AGENTS.md` "Prompts never in code"). Rust side:
31
+ `pi-natives` = PTY/grep/diff/EditStore/snapcompact.rs bindings;
32
+ `pi-edit` = patch engine; `pi-shell` = in-process bash host **with vendored
33
+ uutils coretools (`pi-builtins`) — a real Unix environment**; `pi-edit`+`pi-shell`
34
+ compose the editing/shell backbone
35
+ (`crates/pi-shell/Cargo.toml:18`; `crates/pi-builtins/src/`). MCP: `mcp__<server>_<tool>`
36
+ names, 64-char cap, deduped transforms before registry reconciliation
37
+ (`.../mcp/tool-bridge.ts:428,468-491`; `session/session-tools.ts:2231-2264`).
38
+
39
+ **Gate (02/07).** Tier × policy per tool: user-overridable `allow|deny|prompt`
40
+ per tool; modes `always-ask | write | yolo`; missing context **fails closed**
41
+ to always-ask (`.../tools/approval.ts:17-18,53-84,100`). Extension hooks wrap
42
+ every call (`extensibility/hooks/tool-wrapper.ts`).
43
+
44
+ **03 subagents.** The `task` tool; agent definitions discovered from bundled +
45
+ `~/.omp/agent/agents/*.md` + `.omp/agents/*.md` (`.../task/index.ts:4-10`,
46
+ `task/discovery.ts`). `SpawnRun` holds a semaphore permit, streams progress,
47
+ adopted by the owner on abort/binding (`task/spawn-run.ts:1-9,47-88`);
48
+ **speculative launch** starts children while the `tasks[]` arguments are still
49
+ streaming (`task/speculative-launch.ts`). Isolation: pinned child settings,
50
+ advisor forced off, **mid-turn compaction forced on** (whole assignment = one
51
+ turn), isolated runs get their own **worktree** and may not expose roots outside
52
+ it (`task/executor.ts:1132,4033-4055,4339`; `docs/compaction.md:76`). Structured
53
+ children always get `yield`; depth-limited recursion (`task/index.ts:45`).
54
+ `autoresearch` is a hillclimb/eval loop with dashboard + own git branch — no
55
+ spawn refs found (**unverified** whether it uses task).
56
+
57
+ **05 context.** Compaction triggers post-turn above
58
+ `resolveThresholdTokens`, mid-turn before requests, idle, and on
59
+ overflow-recovery (`.../session/session-maintenance.ts:626,2147,2246,2412`).
60
+ `compaction.methodOrder` strategy ladder: LLM summarize (regular/handoff), `shake`
61
+ (local mechanical elision to `artifact://` refs), `snapcompact`
62
+ (`docs/compaction.md:202-215`). **Snapcompact = deterministic, no LLM**:
63
+ discarded history serialized with caps into provider-aware PNG bitmaps
64
+ (fonts per provider family), persisted and re-attached each rebuild
65
+ (`packages/snapcompact/README.md:3-29,44-68`). Sizing: archive gets half the
66
+ headroom; kept context ≤ 60% of threshold, target ≤ 80%
67
+ (`docs/compaction.md:217,221`). Cache care: pruned outputs blanked only within
68
+ the model's `prompt-cache-lookback` bound (`docs/compaction.md:248`); summary
69
+ drops whole call/result pairs (`:250`); **byte-stable system prompt between
70
+ turns is a session invariant** (`session/agent-session.ts:2607`).
71
+ `compress/` is unrelated — a separate "dense prompt register" rewriter
72
+ (`compress/index.ts:2-11`).
73
+
74
+ **06 memory.** Five `memory.backend` modes: off | local | hindsight | mnemopi |
75
+ sharpshooter (`docs/memory.md:3-11`). Injection = Memory Guidance block at
76
+ session start from a project summary; outputs are per-project `MEMORY.md` +
77
+ lessons + `skills/` on disk. Pipeline: startup background job, two phases
78
+ (per-session extraction → global consolidation with lease+heartbeat; skipped
79
+ for subagents), SQLite job queues (`memories/index.ts:29-67`; `docs/memory.md:74-89`).
80
+ Injection budget shares 5000 tokens (summary+lessons, `docs/memory.md:132`);
81
+ `learn` lessons capped 100 × 2000 chars and redacted (`docs/memory.md:70`).
82
+ `hindsight` = remote vector service; recall on first turn, auto-retain every N
83
+ turns (`hindsight/state.ts:385-388`). `mnemopi` = local SQLite working/episodic
84
+ engine + `memory://` read protocol; user-facing tools `recall/retain/reflect/
85
+ memory_edit` (`packages/mnemopi/README.md:5-8`; `docs/memory.md:34-46`).
86
+ Written on minutes/days cadence — not immediately at task end.
87
+
88
+ **07–09 briefs.** `judgment/` resolves a Judge model role for typed judgments
89
+ (`judgment/index.ts:1-10`); `capability/` is the provider/extension loading
90
+ registry. Execution: inside-process unix env via pi-shell, always
91
+ non-interactive env (pagers off, TERM=dumb) (`exec/non-interactive-env.ts:6-25`);
92
+ no OS-level sandbox located (**unverified**). `omp stats` = local usage
93
+ dashboard, live ingest, port 3847 (`packages/stats/README.md:3,9,31-35`).
@@ -0,0 +1,43 @@
1
+ # Source: opencode
2
+
3
+ - Origin: [sst/opencode](https://github.com/sst/opencode), the coding agent this
4
+ harness family uses day-to-day. TypeScript/Bun monorepo.
5
+ - Local clone: `external/opencode` (shallow, cloned 2026-10-21).
6
+ - Why studied as an anchor: battle-tested open harness; this harness already borrows
7
+ its mental model of sessions/agents/tools, so deltas are cheap to evaluate.
8
+
9
+ ## Verified layout
10
+
11
+ - `packages/core/src/` — the harness core. Observed top-level: `agent.ts`,
12
+ `permission.ts`, `mcp.ts`, `filesystem.ts`, `instructions` dir,
13
+ `instruction-discovery.ts`, `compaction`? (not yet verified below alphabet
14
+ cut), `codemode/`, `config/`, `event-logger.ts`, `persistent-pty.ts`,
15
+ `models-dev/`, `job.ts`, `kv.ts`.
16
+ - `packages/` of interest beyond core: `agent`, `cli`, `plugin`,
17
+ `plugin-browser`, `plugins`, `server`, `session-ui`, `tui`, `codemode`,
18
+ `httpapi-codegen`, `protocol`, `sdk`.
19
+ - AGENTS.md at repo root states their engineering expectations.
20
+
21
+ ## Map to arms (pending verification per claim)
22
+
23
+ - Arm 01 (prompt): `instructions/`, `instruction-discovery` — AGENTS.md-style
24
+ instruction discovery; ayurveda of stable/dynamic sections unknown.
25
+ - Arm 02 (tools): built-in tool set + MCP (`mcp.ts`) + tool providers via plugins.
26
+ - Arm 03 (subagents): `agent.ts` — primary/secondary agents by description.
27
+ - Arm 04 (skills): plugins and community plugins; the `plugins/` package.
28
+ - Arm 05 (context): compaction (verify location), message queueing.
29
+ - Arm 06 (memory): no first-class memory beyond instructions; community plugins.
30
+ - Arm 07 (governance): `permission.ts` — permission model, per-tool approval modes.
31
+ - Arm 08 (execution): `persistent-pty.ts`, `terminal/` package, containers package.
32
+ - Arm 09 (observability): `event-logger.ts`, events bus (`bus.ts`), TUI
33
+ trajectories.
34
+
35
+ ## Open questions for the audit
36
+
37
+ 1. Where is the session system prompt assembled, and is any of it cache-stable?
38
+ 2. How do tool descriptions reach the model: generated, hardcoded, or provider
39
+ overridable?
40
+ 3. What compaction exists in core, and is it triggered in-band?
41
+ 4. How does the permission model express "always/deny/ask" per tool and per
42
+ pattern?
43
+ 5. What do plugin tool providers get access to (context object shape)?
@@ -0,0 +1,46 @@
1
+ # Source: OpenHands (All Hands AI)
2
+
3
+ - Origin: [All-Hands-AI/OpenHands](https://github.com/All-Hands-AI/OpenHands) is now
4
+ the **Agent Canvas frontend** (TypeScript UI + backend orchestration); the agent
5
+ runtime itself lives in the [OpenHands/software-agent-sdk](https://github.com/OpenHands/software-agent-sdk)
6
+ (`openhands-sdk`, `openhands-agent-server`, `openhands-tools`,
7
+ `openhands-workspace`). README: each conversation runs in its own Docker
8
+ container with its own Agent Server and tools; Agent Server is a REST API on a
9
+ host/port.
10
+ - Local clones: `external/openhands` (41 MB UI/orchestration) and
11
+ `external/openhands-agent-sdk` (runtime).
12
+ - Why studied: the most productized open harness — UI, server, containers,
13
+ scheduling, and a clean agent/skill/microagent story in Python.
14
+
15
+ ## Verified layout
16
+
17
+ - `external/openhands-agent-sdk/`: `openhands-sdk/` (agent, tools, llm, events),
18
+ `openhands-agent-server/`, `openhands-tools/`, `openhands-workspace/`,
19
+ `clients/`. (Deeper inventory pending.)
20
+ - `external/openhands/src/`: React app (`routes`, `stores`, `services`,
21
+ `extensions`, `hooks`).
22
+
23
+ ## Map to arms (pending verification per claim)
24
+
25
+ - Arm 03 (subagents): SDK agents + Agent Server's conversation-per-container
26
+ isolation; scheduling via the separate `automation` repo.
27
+ - Arm 04 (skills): SDK's skill/microagent model (condenser? verify) — historically
28
+ "microagents" from `.openhands/` folders.
29
+ - Arm 05 (context): SDK condensation pipeline (researched: LLM-based
30
+ condensers) — worth auditing closely; this harness has explicit opinions here.
31
+ - Arm 06 (memory): microagents + per-agent state in SDK; frontend `library/`?
32
+ - Arm 07 (governance): server-side confirmation policy, sandboxed exec, security
33
+ modes.
34
+ - Arm 08 (execution): workspace containers, per-conversation isolation.
35
+ - Arm 09 (observability): event stream persisted per conversation; frontend
36
+ trajectory UI.
37
+
38
+ ## Open questions for the audit
39
+
40
+ 1. SDK `openhands-sdk/`: how are tools, skills, agents wired — what is the
41
+ `llm.py` ↔ tool schema path?
42
+ 2. Condensers: which ones exist, when triggered, how events are rewritten — does
43
+ it preserve caching/prefix stability?
44
+ 3. What does the Agent Server persist per conversation (format, retention).
45
+ 4. How do microagents differ from skills (trigger on file/mention vs on-demand)?
46
+ 5. Where does the UI fit in governance (approval UI) vs server-side `ToolPolicy`.
@@ -0,0 +1,40 @@
1
+ # Source: smolagents (HF CodeAct)
2
+
3
+ - Origin: [huggingface/smolagents](https://github.com/huggingface/smolagents) —
4
+ the CodeAct lineage: the model writes Python action code instead of JSON tool
5
+ calls ("simple = true"). Paper: *CodeAct* (arXiv:2402.01030, executable-code
6
+ actions outperform JSON); smolagents docs echo it.
7
+ - Local clone: `external/smolagents` (4.3 MB, Python; smallest source here).
8
+ - Why studied: the sharpest *alternative* to JSON tool calls — code-as-action
9
+ changes every arm at once (tools, context, memory, governance).
10
+
11
+ ## Verified layout
12
+
13
+ `src/smolagents/`: `agents.py`, `memory.py`, `tools.py`, `default_tools.py`,
14
+ `prompts/`, `local_python_executor.py`, `models.py`, `mcp_client.py`,
15
+ `tool_validation.py`, `_function_type_hints_utils.py`, `serialization.py`,
16
+ `monitoring.py`, `gradio_ui.py`, `vision_web_browser.py`, `remote_executors.py`.
17
+
18
+ ## Map to arms (pending verification per claim)
19
+
20
+ - Arm 02 (tools): `tools.py` + `@tool` decorator + `tool_validation.py` — tool =
21
+ Python function w/ schema from type hints; `default_tools.py` set.
22
+ - Arm 08+02 (code-as-action): `local_python_executor.py`, `remote_executors.py`
23
+ (sandbox: local interception vs E2B etc.), `sandbox resolution`.
24
+ - Arm 05 (context): `memory.py` — the agent's step memory structure (planning
25
+ steps, tool logs); re-writable by design.
26
+ - Arm 01 (prompt): `prompts/` templates incl. system prompt for CodeAct loops,
27
+ planning prompts.
28
+ - Arm 09 (observability): `monitoring.py`, `gradio_ui.py`.
29
+ - Arm 02-interop: `mcp_client.py` — MCP tools bridged into code actions.
30
+
31
+ ## Open questions for the audit
32
+
33
+ 1. How is memory.py structured (system prompt + zipped action log) and what does
34
+ the model re-see each step?
35
+ 2. What does the local executor intercept (imports? outputs?) and how does the
36
+ sandbox story compare with `RefineHost` probe isolation?
37
+ 3. How do MCP tools become callable from generated code — namespace injection?
38
+ 4. What is definitely not adoptable here (this harness has a strict tool-gate model;
39
+ free code execution is anathema), yet may translate as *internal* code actions
40
+ (cf. opencode codemode, dsh ptc-runtime)?
@@ -0,0 +1,34 @@
1
+ # Source: SWE-agent
2
+
3
+ - Origin: [SWE-agent/SWE-agent](https://github.com/SWE-agent/SWE-agent) (formerly
4
+ princeton-nlp), research framework whose thesis is that *the environment
5
+ interface is the model's feature surface*: IC = Agent–Computer Interface design.
6
+ - Local clone: `external/swe-agent` (65 MB, Python).
7
+ - Why studied: the clearest published statement of "tools + interface shape
8
+ agent success" (arXiv:2405.15793); benchmark-native harness (SWE-bench).
9
+
10
+ ## Verified layout
11
+
12
+ - `sweagent/`: `agent/`, `environment/`, `run/`, `tools/`, `inspector/`,
13
+ `exceptions.py`, `types.py`, `utils/`.
14
+ - `tools/` at repo root: tool bundles (separate package). `config/`: agent configs
15
+ (YAML per model). `trajectories/`: run artifacts in-tree. `mkdocs.yml` + `docs/`.
16
+
17
+ ## Map to arms (pending verification per claim)
18
+
19
+ - Arm 02 (tools): tool bundles (`tools/`), command-parsing interface state
20
+ (`agent/`), explicit "no dangerous commands" curation lists.
21
+ - Arm 01 (prompt): `config/` YAML templates + `sweagent/agent/` template
22
+ variables.
23
+ - Arm 08 (execution): `sweagent/environment/` — containerized bash sandboxes.
24
+ - Arm 09 (observability): `trajectories/` + `inspector/` — offline trajectory
25
+ viewer.
26
+
27
+ ## Open questions for the audit
28
+
29
+ 1. How much of their gain came from interface design (evidence in paper §)?
30
+ 2. How are tool bundles declared/loaded, and what is their gate story?
31
+ 3. Is there anything analogous to compaction (their runs are bounded) — or do they
32
+ rely on truncation and restarts?
33
+ 4. What is worth copying given they optimize for single-shot benchmark runs, not
34
+ interactive use?