omp-fabric 0.85.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 (772) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +170 -0
  3. package/THIRD_PARTY_NOTICES.md +33 -0
  4. package/dist/activity/store.d.ts +32 -0
  5. package/dist/activity/store.d.ts.map +1 -0
  6. package/dist/activity/types.d.ts +104 -0
  7. package/dist/activity/types.d.ts.map +1 -0
  8. package/dist/actors/binding-store.d.ts +17 -0
  9. package/dist/actors/binding-store.d.ts.map +1 -0
  10. package/dist/actors/context.d.ts +13 -0
  11. package/dist/actors/context.d.ts.map +1 -0
  12. package/dist/actors/delivery-policy.d.ts +8 -0
  13. package/dist/actors/delivery-policy.d.ts.map +1 -0
  14. package/dist/actors/directory.d.ts +47 -0
  15. package/dist/actors/directory.d.ts.map +1 -0
  16. package/dist/actors/global-registry.d.ts +47 -0
  17. package/dist/actors/global-registry.d.ts.map +1 -0
  18. package/dist/actors/host-event-observer.d.ts +5 -0
  19. package/dist/actors/host-event-observer.d.ts.map +1 -0
  20. package/dist/actors/host-event-payload.d.ts +14 -0
  21. package/dist/actors/host-event-payload.d.ts.map +1 -0
  22. package/dist/actors/manager.d.ts +175 -0
  23. package/dist/actors/manager.d.ts.map +1 -0
  24. package/dist/actors/predicate.d.ts +7 -0
  25. package/dist/actors/predicate.d.ts.map +1 -0
  26. package/dist/actors/types.d.ts +211 -0
  27. package/dist/actors/types.d.ts.map +1 -0
  28. package/dist/agents/bash-worktree-add.d.ts +24 -0
  29. package/dist/agents/bash-worktree-add.d.ts.map +1 -0
  30. package/dist/agents/budget-ledger.d.ts +88 -0
  31. package/dist/agents/budget-ledger.d.ts.map +1 -0
  32. package/dist/agents/claude-cli.d.ts +32 -0
  33. package/dist/agents/claude-cli.d.ts.map +1 -0
  34. package/dist/agents/claude-cli.js +17 -0
  35. package/dist/agents/claude-cli.js.map +7 -0
  36. package/dist/agents/clone-first-worktree.d.ts +17 -0
  37. package/dist/agents/clone-first-worktree.d.ts.map +1 -0
  38. package/dist/agents/compact-control.d.ts +32 -0
  39. package/dist/agents/compact-control.d.ts.map +1 -0
  40. package/dist/agents/compact-control.js +127 -0
  41. package/dist/agents/compact-control.js.map +7 -0
  42. package/dist/agents/constants.d.ts +5 -0
  43. package/dist/agents/constants.d.ts.map +1 -0
  44. package/dist/agents/cow-clone.d.ts +8 -0
  45. package/dist/agents/cow-clone.d.ts.map +1 -0
  46. package/dist/agents/handoff.d.ts +19 -0
  47. package/dist/agents/handoff.d.ts.map +1 -0
  48. package/dist/agents/manager.d.ts +68 -0
  49. package/dist/agents/manager.d.ts.map +1 -0
  50. package/dist/agents/omp-binary.d.ts +7 -0
  51. package/dist/agents/omp-binary.d.ts.map +1 -0
  52. package/dist/agents/rm.d.ts +15 -0
  53. package/dist/agents/rm.d.ts.map +1 -0
  54. package/dist/agents/semaphore.d.ts +7 -0
  55. package/dist/agents/semaphore.d.ts.map +1 -0
  56. package/dist/agents/session-export.d.ts +9 -0
  57. package/dist/agents/session-export.d.ts.map +1 -0
  58. package/dist/agents/thinking-transfer.d.ts +39 -0
  59. package/dist/agents/thinking-transfer.d.ts.map +1 -0
  60. package/dist/agents/transports/herdr-transport.d.ts +10 -0
  61. package/dist/agents/transports/herdr-transport.d.ts.map +1 -0
  62. package/dist/agents/transports/localterm-transport.d.ts +7 -0
  63. package/dist/agents/transports/localterm-transport.d.ts.map +1 -0
  64. package/dist/agents/transports/process-transport.d.ts +7 -0
  65. package/dist/agents/transports/process-transport.d.ts.map +1 -0
  66. package/dist/agents/transports/process-utils.d.ts +29 -0
  67. package/dist/agents/transports/process-utils.d.ts.map +1 -0
  68. package/dist/agents/transports/screen-transport.d.ts +7 -0
  69. package/dist/agents/transports/screen-transport.d.ts.map +1 -0
  70. package/dist/agents/transports/tmux-transport.d.ts +7 -0
  71. package/dist/agents/transports/tmux-transport.d.ts.map +1 -0
  72. package/dist/agents/types.d.ts +251 -0
  73. package/dist/agents/types.d.ts.map +1 -0
  74. package/dist/agents/veda-cli.d.ts +22 -0
  75. package/dist/agents/veda-cli.d.ts.map +1 -0
  76. package/dist/agents/veda-cli.js +13 -0
  77. package/dist/agents/veda-cli.js.map +7 -0
  78. package/dist/agents/worktree-manager.d.ts +14 -0
  79. package/dist/agents/worktree-manager.d.ts.map +1 -0
  80. package/dist/agents/worktree-paths.d.ts +5 -0
  81. package/dist/agents/worktree-paths.d.ts.map +1 -0
  82. package/dist/async-settlement.d.ts +4 -0
  83. package/dist/async-settlement.d.ts.map +1 -0
  84. package/dist/audit/details.d.ts +82 -0
  85. package/dist/audit/details.d.ts.map +1 -0
  86. package/dist/audit/index.d.ts +4 -0
  87. package/dist/audit/index.d.ts.map +1 -0
  88. package/dist/audit/projection.d.ts +20 -0
  89. package/dist/audit/projection.d.ts.map +1 -0
  90. package/dist/audit/trace.d.ts +95 -0
  91. package/dist/audit/trace.d.ts.map +1 -0
  92. package/dist/capture/catalog.d.ts +29 -0
  93. package/dist/capture/catalog.d.ts.map +1 -0
  94. package/dist/capture/interceptor.d.ts +21 -0
  95. package/dist/capture/interceptor.d.ts.map +1 -0
  96. package/dist/capture/wrapper.d.ts +15 -0
  97. package/dist/capture/wrapper.d.ts.map +1 -0
  98. package/dist/chunks/chunk-2GQC324T.js +5001 -0
  99. package/dist/chunks/chunk-2GQC324T.js.map +7 -0
  100. package/dist/chunks/chunk-2KEWFW56.js +1229 -0
  101. package/dist/chunks/chunk-2KEWFW56.js.map +7 -0
  102. package/dist/chunks/chunk-3J7BKUNG.js +354 -0
  103. package/dist/chunks/chunk-3J7BKUNG.js.map +7 -0
  104. package/dist/chunks/chunk-4A4MVZQW.js +253 -0
  105. package/dist/chunks/chunk-4A4MVZQW.js.map +7 -0
  106. package/dist/chunks/chunk-4HQDSTHN.js +221 -0
  107. package/dist/chunks/chunk-4HQDSTHN.js.map +7 -0
  108. package/dist/chunks/chunk-4LEDA76O.js +688 -0
  109. package/dist/chunks/chunk-4LEDA76O.js.map +7 -0
  110. package/dist/chunks/chunk-5GTPD4BA.js +1318 -0
  111. package/dist/chunks/chunk-5GTPD4BA.js.map +7 -0
  112. package/dist/chunks/chunk-5IWFSDU5.js +87 -0
  113. package/dist/chunks/chunk-5IWFSDU5.js.map +7 -0
  114. package/dist/chunks/chunk-6N4XGAZY.js +21 -0
  115. package/dist/chunks/chunk-6N4XGAZY.js.map +7 -0
  116. package/dist/chunks/chunk-6QBPSZJ5.js +647 -0
  117. package/dist/chunks/chunk-6QBPSZJ5.js.map +7 -0
  118. package/dist/chunks/chunk-6X6WUU2K.js +73 -0
  119. package/dist/chunks/chunk-6X6WUU2K.js.map +7 -0
  120. package/dist/chunks/chunk-7363CD5A.js +38 -0
  121. package/dist/chunks/chunk-7363CD5A.js.map +7 -0
  122. package/dist/chunks/chunk-77FQHHZD.js +231 -0
  123. package/dist/chunks/chunk-77FQHHZD.js.map +7 -0
  124. package/dist/chunks/chunk-7BIA5BJN.js +112 -0
  125. package/dist/chunks/chunk-7BIA5BJN.js.map +7 -0
  126. package/dist/chunks/chunk-7BOAOKWH.js +64 -0
  127. package/dist/chunks/chunk-7BOAOKWH.js.map +7 -0
  128. package/dist/chunks/chunk-7TB7NXSL.js +58 -0
  129. package/dist/chunks/chunk-7TB7NXSL.js.map +7 -0
  130. package/dist/chunks/chunk-7VIQNUPS.js +17 -0
  131. package/dist/chunks/chunk-7VIQNUPS.js.map +7 -0
  132. package/dist/chunks/chunk-CT2AJ2UI.js +225 -0
  133. package/dist/chunks/chunk-CT2AJ2UI.js.map +7 -0
  134. package/dist/chunks/chunk-DLXPTBPL.js +151 -0
  135. package/dist/chunks/chunk-DLXPTBPL.js.map +7 -0
  136. package/dist/chunks/chunk-ED3BRM6P.js +17 -0
  137. package/dist/chunks/chunk-ED3BRM6P.js.map +7 -0
  138. package/dist/chunks/chunk-G2IBGGBM.js +42 -0
  139. package/dist/chunks/chunk-G2IBGGBM.js.map +7 -0
  140. package/dist/chunks/chunk-GKOFZ76R.js +1596 -0
  141. package/dist/chunks/chunk-GKOFZ76R.js.map +7 -0
  142. package/dist/chunks/chunk-HDJBUXDX.js +1102 -0
  143. package/dist/chunks/chunk-HDJBUXDX.js.map +7 -0
  144. package/dist/chunks/chunk-IGVDD2HT.js +10 -0
  145. package/dist/chunks/chunk-IGVDD2HT.js.map +7 -0
  146. package/dist/chunks/chunk-JHKOG5GS.js +187 -0
  147. package/dist/chunks/chunk-JHKOG5GS.js.map +7 -0
  148. package/dist/chunks/chunk-JP4LIZFT.js +1334 -0
  149. package/dist/chunks/chunk-JP4LIZFT.js.map +7 -0
  150. package/dist/chunks/chunk-JSBTB3P6.js +127 -0
  151. package/dist/chunks/chunk-JSBTB3P6.js.map +7 -0
  152. package/dist/chunks/chunk-KAD7UWT2.js +99 -0
  153. package/dist/chunks/chunk-KAD7UWT2.js.map +7 -0
  154. package/dist/chunks/chunk-KIH3KLZU.js +95 -0
  155. package/dist/chunks/chunk-KIH3KLZU.js.map +7 -0
  156. package/dist/chunks/chunk-KIREBD2V.js +2208 -0
  157. package/dist/chunks/chunk-KIREBD2V.js.map +7 -0
  158. package/dist/chunks/chunk-LMAVZN7J.js +8 -0
  159. package/dist/chunks/chunk-LMAVZN7J.js.map +7 -0
  160. package/dist/chunks/chunk-NCPJZXLM.js +57 -0
  161. package/dist/chunks/chunk-NCPJZXLM.js.map +7 -0
  162. package/dist/chunks/chunk-OJZNMROB.js +195 -0
  163. package/dist/chunks/chunk-OJZNMROB.js.map +7 -0
  164. package/dist/chunks/chunk-OPTP4PSE.js +469 -0
  165. package/dist/chunks/chunk-OPTP4PSE.js.map +7 -0
  166. package/dist/chunks/chunk-QPXSCMTG.js +24 -0
  167. package/dist/chunks/chunk-QPXSCMTG.js.map +7 -0
  168. package/dist/chunks/chunk-ROKMBLGN.js +1265 -0
  169. package/dist/chunks/chunk-ROKMBLGN.js.map +7 -0
  170. package/dist/chunks/chunk-SXMWV447.js +2445 -0
  171. package/dist/chunks/chunk-SXMWV447.js.map +7 -0
  172. package/dist/chunks/chunk-T5ZA5YRU.js +786 -0
  173. package/dist/chunks/chunk-T5ZA5YRU.js.map +7 -0
  174. package/dist/chunks/chunk-T6OAX4FO.js +1835 -0
  175. package/dist/chunks/chunk-T6OAX4FO.js.map +7 -0
  176. package/dist/chunks/chunk-U5FYOMG5.js +119 -0
  177. package/dist/chunks/chunk-U5FYOMG5.js.map +7 -0
  178. package/dist/chunks/chunk-UOSJZXJV.js +142 -0
  179. package/dist/chunks/chunk-UOSJZXJV.js.map +7 -0
  180. package/dist/chunks/chunk-UPCARIJP.js +6627 -0
  181. package/dist/chunks/chunk-UPCARIJP.js.map +7 -0
  182. package/dist/chunks/chunk-VPPIJRNZ.js +50 -0
  183. package/dist/chunks/chunk-VPPIJRNZ.js.map +7 -0
  184. package/dist/chunks/chunk-XU5Z4JCQ.js +297 -0
  185. package/dist/chunks/chunk-XU5Z4JCQ.js.map +7 -0
  186. package/dist/chunks/chunk-YWEXP724.js +427 -0
  187. package/dist/chunks/chunk-YWEXP724.js.map +7 -0
  188. package/dist/chunks/chunk-YZZIKJX6.js +60 -0
  189. package/dist/chunks/chunk-YZZIKJX6.js.map +7 -0
  190. package/dist/chunks/chunk-ZNAJDPT7.js +2203 -0
  191. package/dist/chunks/chunk-ZNAJDPT7.js.map +7 -0
  192. package/dist/chunks/chunk-ZTM45GH5.js +163 -0
  193. package/dist/chunks/chunk-ZTM45GH5.js.map +7 -0
  194. package/dist/commands/fabric.d.ts +17 -0
  195. package/dist/commands/fabric.d.ts.map +1 -0
  196. package/dist/compaction/bounds.d.ts +23 -0
  197. package/dist/compaction/bounds.d.ts.map +1 -0
  198. package/dist/compaction/branch-details.d.ts +83 -0
  199. package/dist/compaction/branch-details.d.ts.map +1 -0
  200. package/dist/compaction/branch-summary.d.ts +9 -0
  201. package/dist/compaction/branch-summary.d.ts.map +1 -0
  202. package/dist/compaction/enrichers.d.ts +10 -0
  203. package/dist/compaction/enrichers.d.ts.map +1 -0
  204. package/dist/compaction/hook.d.ts +98 -0
  205. package/dist/compaction/hook.d.ts.map +1 -0
  206. package/dist/compaction/hook.js +19 -0
  207. package/dist/compaction/hook.js.map +7 -0
  208. package/dist/compaction/instructions.d.ts +38 -0
  209. package/dist/compaction/instructions.d.ts.map +1 -0
  210. package/dist/compaction/normalize.d.ts +83 -0
  211. package/dist/compaction/normalize.d.ts.map +1 -0
  212. package/dist/compaction/projections.d.ts +31 -0
  213. package/dist/compaction/projections.d.ts.map +1 -0
  214. package/dist/compaction/qa.d.ts +27 -0
  215. package/dist/compaction/qa.d.ts.map +1 -0
  216. package/dist/compaction/render.d.ts +10 -0
  217. package/dist/compaction/render.d.ts.map +1 -0
  218. package/dist/compaction/threshold.d.ts +5 -0
  219. package/dist/compaction/threshold.d.ts.map +1 -0
  220. package/dist/compaction/trace-events.d.ts +23 -0
  221. package/dist/compaction/trace-events.d.ts.map +1 -0
  222. package/dist/components/catalog.d.ts +25 -0
  223. package/dist/components/catalog.d.ts.map +1 -0
  224. package/dist/components/effect-scope.d.ts +31 -0
  225. package/dist/components/effect-scope.d.ts.map +1 -0
  226. package/dist/components/loader.d.ts +27 -0
  227. package/dist/components/loader.d.ts.map +1 -0
  228. package/dist/components/model-guidance.d.ts +48 -0
  229. package/dist/components/model-guidance.d.ts.map +1 -0
  230. package/dist/components/provider-component.d.ts +31 -0
  231. package/dist/components/provider-component.d.ts.map +1 -0
  232. package/dist/components/supervisor.d.ts +29 -0
  233. package/dist/components/supervisor.d.ts.map +1 -0
  234. package/dist/components/types.d.ts +140 -0
  235. package/dist/components/types.d.ts.map +1 -0
  236. package/dist/config-migrations.d.ts +11 -0
  237. package/dist/config-migrations.d.ts.map +1 -0
  238. package/dist/config.d.ts +269 -0
  239. package/dist/config.d.ts.map +1 -0
  240. package/dist/core/action-registry.d.ts +159 -0
  241. package/dist/core/action-registry.d.ts.map +1 -0
  242. package/dist/core/action-registry.js +17 -0
  243. package/dist/core/action-registry.js.map +7 -0
  244. package/dist/core/action-repair.d.ts +20 -0
  245. package/dist/core/action-repair.d.ts.map +1 -0
  246. package/dist/core/agent-dir.d.ts +2 -0
  247. package/dist/core/agent-dir.d.ts.map +1 -0
  248. package/dist/core/approval-controller.d.ts +30 -0
  249. package/dist/core/approval-controller.d.ts.map +1 -0
  250. package/dist/core/atomic-write.d.ts +15 -0
  251. package/dist/core/atomic-write.d.ts.map +1 -0
  252. package/dist/core/auto-approval-classifier.d.ts +13 -0
  253. package/dist/core/auto-approval-classifier.d.ts.map +1 -0
  254. package/dist/core/call-preview.d.ts +8 -0
  255. package/dist/core/call-preview.d.ts.map +1 -0
  256. package/dist/core/child-tool-allowlist.d.ts +3 -0
  257. package/dist/core/child-tool-allowlist.d.ts.map +1 -0
  258. package/dist/core/compact-controller.d.ts +42 -0
  259. package/dist/core/compact-controller.d.ts.map +1 -0
  260. package/dist/core/core-override-guidance.d.ts +7 -0
  261. package/dist/core/core-override-guidance.d.ts.map +1 -0
  262. package/dist/core/direct-tool-approval.d.ts +19 -0
  263. package/dist/core/direct-tool-approval.d.ts.map +1 -0
  264. package/dist/core/effect-conflict.d.ts +3 -0
  265. package/dist/core/effect-conflict.d.ts.map +1 -0
  266. package/dist/core/file-lock.d.ts +12 -0
  267. package/dist/core/file-lock.d.ts.map +1 -0
  268. package/dist/core/model-resolution.d.ts +62 -0
  269. package/dist/core/model-resolution.d.ts.map +1 -0
  270. package/dist/core/model-usage.d.ts +8 -0
  271. package/dist/core/model-usage.d.ts.map +1 -0
  272. package/dist/core/omp-bash-error.d.ts +11 -0
  273. package/dist/core/omp-bash-error.d.ts.map +1 -0
  274. package/dist/core/omp-tools.d.ts +9 -0
  275. package/dist/core/omp-tools.d.ts.map +1 -0
  276. package/dist/core/provider-bindings.d.ts +47 -0
  277. package/dist/core/provider-bindings.d.ts.map +1 -0
  278. package/dist/core/proxy-contract.d.ts +18 -0
  279. package/dist/core/proxy-contract.d.ts.map +1 -0
  280. package/dist/core/session-context.d.ts +6 -0
  281. package/dist/core/session-context.d.ts.map +1 -0
  282. package/dist/core/skill-block.d.ts +10 -0
  283. package/dist/core/skill-block.d.ts.map +1 -0
  284. package/dist/core/skill-dir.d.ts +4 -0
  285. package/dist/core/skill-dir.d.ts.map +1 -0
  286. package/dist/core/skill-prompt.d.ts +3 -0
  287. package/dist/core/skill-prompt.d.ts.map +1 -0
  288. package/dist/core/skill-references.d.ts +7 -0
  289. package/dist/core/skill-references.d.ts.map +1 -0
  290. package/dist/core/stable-hash.d.ts +3 -0
  291. package/dist/core/stable-hash.d.ts.map +1 -0
  292. package/dist/core/system-guidance.d.ts +12 -0
  293. package/dist/core/system-guidance.d.ts.map +1 -0
  294. package/dist/core/token-math.d.ts +16 -0
  295. package/dist/core/token-math.d.ts.map +1 -0
  296. package/dist/core/tool-ownership.d.ts +52 -0
  297. package/dist/core/tool-ownership.d.ts.map +1 -0
  298. package/dist/core/tool-result-proxy.d.ts +18 -0
  299. package/dist/core/tool-result-proxy.d.ts.map +1 -0
  300. package/dist/entropy/active.d.ts +7 -0
  301. package/dist/entropy/active.d.ts.map +1 -0
  302. package/dist/entropy/compiled-store.d.ts +16 -0
  303. package/dist/entropy/compiled-store.d.ts.map +1 -0
  304. package/dist/entropy/compiled-surface.d.ts +51 -0
  305. package/dist/entropy/compiled-surface.d.ts.map +1 -0
  306. package/dist/entropy/compiler.d.ts +28 -0
  307. package/dist/entropy/compiler.d.ts.map +1 -0
  308. package/dist/entropy/corpus.d.ts +22 -0
  309. package/dist/entropy/corpus.d.ts.map +1 -0
  310. package/dist/entropy/fingerprint.d.ts +9 -0
  311. package/dist/entropy/fingerprint.d.ts.map +1 -0
  312. package/dist/entropy/index.d.ts +15 -0
  313. package/dist/entropy/index.d.ts.map +1 -0
  314. package/dist/entropy/index.js +172 -0
  315. package/dist/entropy/index.js.map +7 -0
  316. package/dist/entropy/meter.d.ts +10 -0
  317. package/dist/entropy/meter.d.ts.map +1 -0
  318. package/dist/entropy/passes.d.ts +13 -0
  319. package/dist/entropy/passes.d.ts.map +1 -0
  320. package/dist/entropy/pool-store.d.ts +15 -0
  321. package/dist/entropy/pool-store.d.ts.map +1 -0
  322. package/dist/entropy/pool.d.ts +41 -0
  323. package/dist/entropy/pool.d.ts.map +1 -0
  324. package/dist/entropy/presentation.d.ts +13 -0
  325. package/dist/entropy/presentation.d.ts.map +1 -0
  326. package/dist/entropy/sessions.d.ts +47 -0
  327. package/dist/entropy/sessions.d.ts.map +1 -0
  328. package/dist/entropy/surface.d.ts +30 -0
  329. package/dist/entropy/surface.d.ts.map +1 -0
  330. package/dist/entropy/trial.d.ts +35 -0
  331. package/dist/entropy/trial.d.ts.map +1 -0
  332. package/dist/entropy/types.d.ts +158 -0
  333. package/dist/entropy/types.d.ts.map +1 -0
  334. package/dist/execution-service.d.ts +63 -0
  335. package/dist/execution-service.d.ts.map +1 -0
  336. package/dist/fabric-exec-arguments.d.ts +5 -0
  337. package/dist/fabric-exec-arguments.d.ts.map +1 -0
  338. package/dist/fabric-exec-tool.d.ts +8 -0
  339. package/dist/fabric-exec-tool.d.ts.map +1 -0
  340. package/dist/fabric-runtime-state.d.ts +90 -0
  341. package/dist/fabric-runtime-state.d.ts.map +1 -0
  342. package/dist/fabric-runtime-state.js +13060 -0
  343. package/dist/fabric-runtime-state.js.map +7 -0
  344. package/dist/fabric-state.d.ts +89 -0
  345. package/dist/fabric-state.d.ts.map +1 -0
  346. package/dist/failure-progress.d.ts +3 -0
  347. package/dist/failure-progress.d.ts.map +1 -0
  348. package/dist/host-compatibility.d.ts +5 -0
  349. package/dist/host-compatibility.d.ts.map +1 -0
  350. package/dist/index.d.ts +6 -0
  351. package/dist/index.d.ts.map +1 -0
  352. package/dist/index.js +5719 -0
  353. package/dist/index.js.map +7 -0
  354. package/dist/lifecycle/broker.d.ts +30 -0
  355. package/dist/lifecycle/broker.d.ts.map +1 -0
  356. package/dist/lifecycle/delivery-scheduler.d.ts +30 -0
  357. package/dist/lifecycle/delivery-scheduler.d.ts.map +1 -0
  358. package/dist/lifecycle/types.d.ts +91 -0
  359. package/dist/lifecycle/types.d.ts.map +1 -0
  360. package/dist/log-tail.d.ts +11 -0
  361. package/dist/log-tail.d.ts.map +1 -0
  362. package/dist/main-agent.d.ts +70 -0
  363. package/dist/main-agent.d.ts.map +1 -0
  364. package/dist/memory/context.d.ts +112 -0
  365. package/dist/memory/context.d.ts.map +1 -0
  366. package/dist/memory/digest.d.ts +48 -0
  367. package/dist/memory/digest.d.ts.map +1 -0
  368. package/dist/memory/digest.js +7 -0
  369. package/dist/memory/digest.js.map +7 -0
  370. package/dist/memory/discovery.d.ts +43 -0
  371. package/dist/memory/discovery.d.ts.map +1 -0
  372. package/dist/memory/discovery.js +23 -0
  373. package/dist/memory/discovery.js.map +7 -0
  374. package/dist/memory/index.d.ts +107 -0
  375. package/dist/memory/index.d.ts.map +1 -0
  376. package/dist/memory/lineage.d.ts +20 -0
  377. package/dist/memory/lineage.d.ts.map +1 -0
  378. package/dist/memory/normalize.d.ts +170 -0
  379. package/dist/memory/normalize.d.ts.map +1 -0
  380. package/dist/memory/normalize.js +22 -0
  381. package/dist/memory/normalize.js.map +7 -0
  382. package/dist/memory/regex.d.ts +19 -0
  383. package/dist/memory/regex.d.ts.map +1 -0
  384. package/dist/memory/search.d.ts +98 -0
  385. package/dist/memory/search.d.ts.map +1 -0
  386. package/dist/memory/search.js +22 -0
  387. package/dist/memory/search.js.map +7 -0
  388. package/dist/memory/tokenize.d.ts +24 -0
  389. package/dist/memory/tokenize.d.ts.map +1 -0
  390. package/dist/mesh/store.d.ts +78 -0
  391. package/dist/mesh/store.d.ts.map +1 -0
  392. package/dist/output-budget.d.ts +12 -0
  393. package/dist/output-budget.d.ts.map +1 -0
  394. package/dist/prewalk/arm.d.ts +8 -0
  395. package/dist/prewalk/arm.d.ts.map +1 -0
  396. package/dist/prewalk/controller.d.ts +60 -0
  397. package/dist/prewalk/controller.d.ts.map +1 -0
  398. package/dist/prewalk/fs-drift.d.ts +19 -0
  399. package/dist/prewalk/fs-drift.d.ts.map +1 -0
  400. package/dist/prewalk/handoff.d.ts +45 -0
  401. package/dist/prewalk/handoff.d.ts.map +1 -0
  402. package/dist/protocol.d.ts +273 -0
  403. package/dist/protocol.d.ts.map +1 -0
  404. package/dist/protocol.js +46 -0
  405. package/dist/protocol.js.map +7 -0
  406. package/dist/providers/agents-actions.d.ts +3 -0
  407. package/dist/providers/agents-actions.d.ts.map +1 -0
  408. package/dist/providers/agents-provider.d.ts +59 -0
  409. package/dist/providers/agents-provider.d.ts.map +1 -0
  410. package/dist/providers/arg-normalization.d.ts +15 -0
  411. package/dist/providers/arg-normalization.d.ts.map +1 -0
  412. package/dist/providers/captured-tools-provider.d.ts +23 -0
  413. package/dist/providers/captured-tools-provider.d.ts.map +1 -0
  414. package/dist/providers/compact-provider.d.ts +14 -0
  415. package/dist/providers/compact-provider.d.ts.map +1 -0
  416. package/dist/providers/components-provider.d.ts +12 -0
  417. package/dist/providers/components-provider.d.ts.map +1 -0
  418. package/dist/providers/mcp-descriptor-cache.d.ts +47 -0
  419. package/dist/providers/mcp-descriptor-cache.d.ts.map +1 -0
  420. package/dist/providers/mcp-provider.d.ts +27 -0
  421. package/dist/providers/mcp-provider.d.ts.map +1 -0
  422. package/dist/providers/memory-provider.d.ts +35 -0
  423. package/dist/providers/memory-provider.d.ts.map +1 -0
  424. package/dist/providers/memory-provider.js +16 -0
  425. package/dist/providers/memory-provider.js.map +7 -0
  426. package/dist/providers/mesh-provider.d.ts +17 -0
  427. package/dist/providers/mesh-provider.d.ts.map +1 -0
  428. package/dist/providers/omp-bash-cwd.d.ts +31 -0
  429. package/dist/providers/omp-bash-cwd.d.ts.map +1 -0
  430. package/dist/providers/omp-tools-provider.d.ts +15 -0
  431. package/dist/providers/omp-tools-provider.d.ts.map +1 -0
  432. package/dist/providers/schema-provider.d.ts +15 -0
  433. package/dist/providers/schema-provider.d.ts.map +1 -0
  434. package/dist/providers/state-provider.d.ts +16 -0
  435. package/dist/providers/state-provider.d.ts.map +1 -0
  436. package/dist/providers/write-diff-limits.d.ts +5 -0
  437. package/dist/providers/write-diff-limits.d.ts.map +1 -0
  438. package/dist/providers/write-preview.d.ts +3 -0
  439. package/dist/providers/write-preview.d.ts.map +1 -0
  440. package/dist/ref-names.d.ts +2 -0
  441. package/dist/ref-names.d.ts.map +1 -0
  442. package/dist/repairs/active.d.ts +7 -0
  443. package/dist/repairs/active.d.ts.map +1 -0
  444. package/dist/repairs/apply.d.ts +7 -0
  445. package/dist/repairs/apply.d.ts.map +1 -0
  446. package/dist/repairs/catalog-digest.d.ts +5 -0
  447. package/dist/repairs/catalog-digest.d.ts.map +1 -0
  448. package/dist/repairs/classify.d.ts +10 -0
  449. package/dist/repairs/classify.d.ts.map +1 -0
  450. package/dist/repairs/compiler.d.ts +33 -0
  451. package/dist/repairs/compiler.d.ts.map +1 -0
  452. package/dist/repairs/promote.d.ts +4 -0
  453. package/dist/repairs/promote.d.ts.map +1 -0
  454. package/dist/repairs/store.d.ts +10 -0
  455. package/dist/repairs/store.d.ts.map +1 -0
  456. package/dist/repairs/types.d.ts +49 -0
  457. package/dist/repairs/types.d.ts.map +1 -0
  458. package/dist/residency/actor-client.d.ts +16 -0
  459. package/dist/residency/actor-client.d.ts.map +1 -0
  460. package/dist/residency/actor-client.js +9 -0
  461. package/dist/residency/actor-client.js.map +7 -0
  462. package/dist/residency/client.d.ts +44 -0
  463. package/dist/residency/client.d.ts.map +1 -0
  464. package/dist/residency/host.d.ts +3 -0
  465. package/dist/residency/host.d.ts.map +1 -0
  466. package/dist/residency/host.js +25 -0
  467. package/dist/residency/host.js.map +7 -0
  468. package/dist/residency/launcher-owner.d.ts +7 -0
  469. package/dist/residency/launcher-owner.d.ts.map +1 -0
  470. package/dist/residency/launcher.d.ts +3 -0
  471. package/dist/residency/launcher.d.ts.map +1 -0
  472. package/dist/residency/launcher.js +152 -0
  473. package/dist/residency/launcher.js.map +7 -0
  474. package/dist/residency/omp-entry.d.ts +3 -0
  475. package/dist/residency/omp-entry.d.ts.map +1 -0
  476. package/dist/residency/omp-entry.js +41 -0
  477. package/dist/residency/omp-entry.js.map +7 -0
  478. package/dist/residency/protocol.d.ts +119 -0
  479. package/dist/residency/protocol.d.ts.map +1 -0
  480. package/dist/run-display.d.ts +3 -0
  481. package/dist/run-display.d.ts.map +1 -0
  482. package/dist/runtime/core-override-guest-types.d.ts +15 -0
  483. package/dist/runtime/core-override-guest-types.d.ts.map +1 -0
  484. package/dist/runtime/core-override-guest-types.js +291 -0
  485. package/dist/runtime/core-override-guest-types.js.map +7 -0
  486. package/dist/runtime/core-tool-properties.d.ts +6 -0
  487. package/dist/runtime/core-tool-properties.d.ts.map +1 -0
  488. package/dist/runtime/dynamic-guest-types.d.ts +3 -0
  489. package/dist/runtime/dynamic-guest-types.d.ts.map +1 -0
  490. package/dist/runtime/dynamic-guest-types.js +226 -0
  491. package/dist/runtime/dynamic-guest-types.js.map +7 -0
  492. package/dist/runtime/guest-code-repair.d.ts +2 -0
  493. package/dist/runtime/guest-code-repair.d.ts.map +1 -0
  494. package/dist/runtime/guest-stack-map.d.ts +11 -0
  495. package/dist/runtime/guest-stack-map.d.ts.map +1 -0
  496. package/dist/runtime/guest-types.d.ts +35 -0
  497. package/dist/runtime/guest-types.d.ts.map +1 -0
  498. package/dist/runtime/guest-types.js +13 -0
  499. package/dist/runtime/guest-types.js.map +7 -0
  500. package/dist/runtime/node-process-child-source.d.ts +2 -0
  501. package/dist/runtime/node-process-child-source.d.ts.map +1 -0
  502. package/dist/runtime/node-process-runtime.d.ts +10 -0
  503. package/dist/runtime/node-process-runtime.d.ts.map +1 -0
  504. package/dist/runtime/node-process-runtime.js +319 -0
  505. package/dist/runtime/node-process-runtime.js.map +7 -0
  506. package/dist/runtime/orchestration.d.ts +3 -0
  507. package/dist/runtime/orchestration.d.ts.map +1 -0
  508. package/dist/runtime/quickjs-runtime.d.ts +24 -0
  509. package/dist/runtime/quickjs-runtime.d.ts.map +1 -0
  510. package/dist/runtime/quickjs-runtime.js +12 -0
  511. package/dist/runtime/quickjs-runtime.js.map +7 -0
  512. package/dist/runtime/type-checker.d.ts +21 -0
  513. package/dist/runtime/type-checker.d.ts.map +1 -0
  514. package/dist/runtime/type-checker.js +15 -0
  515. package/dist/runtime/type-checker.js.map +7 -0
  516. package/dist/runtime-paths.d.ts +7 -0
  517. package/dist/runtime-paths.d.ts.map +1 -0
  518. package/dist/schema/controller.d.ts +35 -0
  519. package/dist/schema/controller.d.ts.map +1 -0
  520. package/dist/schema/types.d.ts +86 -0
  521. package/dist/schema/types.d.ts.map +1 -0
  522. package/dist/schema/workspace.d.ts +19 -0
  523. package/dist/schema/workspace.d.ts.map +1 -0
  524. package/dist/speculation/eligibility.d.ts +22 -0
  525. package/dist/speculation/eligibility.d.ts.map +1 -0
  526. package/dist/speculation/freshness.d.ts +10 -0
  527. package/dist/speculation/freshness.d.ts.map +1 -0
  528. package/dist/speculation/partial-json.d.ts +9 -0
  529. package/dist/speculation/partial-json.d.ts.map +1 -0
  530. package/dist/speculation/scanner.d.ts +13 -0
  531. package/dist/speculation/scanner.d.ts.map +1 -0
  532. package/dist/speculation/scanner.js +182 -0
  533. package/dist/speculation/scanner.js.map +7 -0
  534. package/dist/speculation/store.d.ts +39 -0
  535. package/dist/speculation/store.d.ts.map +1 -0
  536. package/dist/speculation/stream-tap.d.ts +27 -0
  537. package/dist/speculation/stream-tap.d.ts.map +1 -0
  538. package/dist/speculation/types.d.ts +44 -0
  539. package/dist/speculation/types.d.ts.map +1 -0
  540. package/dist/state/complexity.d.ts +13 -0
  541. package/dist/state/complexity.d.ts.map +1 -0
  542. package/dist/state/evidence-runner.d.ts +17 -0
  543. package/dist/state/evidence-runner.d.ts.map +1 -0
  544. package/dist/state/store.d.ts +76 -0
  545. package/dist/state/store.d.ts.map +1 -0
  546. package/dist/state/types.d.ts +165 -0
  547. package/dist/state/types.d.ts.map +1 -0
  548. package/dist/storage/retention.d.ts +22 -0
  549. package/dist/storage/retention.d.ts.map +1 -0
  550. package/dist/thinking.d.ts +19 -0
  551. package/dist/thinking.d.ts.map +1 -0
  552. package/dist/topology/control-plane.d.ts +58 -0
  553. package/dist/topology/control-plane.d.ts.map +1 -0
  554. package/dist/topology/participant-directory.d.ts +33 -0
  555. package/dist/topology/participant-directory.d.ts.map +1 -0
  556. package/dist/topology/peer-settle.d.ts +51 -0
  557. package/dist/topology/peer-settle.d.ts.map +1 -0
  558. package/dist/topology/records.d.ts +6 -0
  559. package/dist/topology/records.d.ts.map +1 -0
  560. package/dist/topology/types.d.ts +89 -0
  561. package/dist/topology/types.d.ts.map +1 -0
  562. package/dist/type-error-guidance.d.ts +3 -0
  563. package/dist/type-error-guidance.d.ts.map +1 -0
  564. package/dist/ui/arc-group.d.ts +17 -0
  565. package/dist/ui/arc-group.d.ts.map +1 -0
  566. package/dist/ui/code-preview-shell.d.ts +26 -0
  567. package/dist/ui/code-preview-shell.d.ts.map +1 -0
  568. package/dist/ui/code-preview.d.ts +53 -0
  569. package/dist/ui/code-preview.d.ts.map +1 -0
  570. package/dist/ui/controller.d.ts +20 -0
  571. package/dist/ui/controller.d.ts.map +1 -0
  572. package/dist/ui/conversation-chrome.d.ts +15 -0
  573. package/dist/ui/conversation-chrome.d.ts.map +1 -0
  574. package/dist/ui/conversation-chrome.js +10 -0
  575. package/dist/ui/conversation-chrome.js.map +7 -0
  576. package/dist/ui/conversation-native-reader.d.ts +106 -0
  577. package/dist/ui/conversation-native-reader.d.ts.map +1 -0
  578. package/dist/ui/conversation-native-reader.js +784 -0
  579. package/dist/ui/conversation-native-reader.js.map +7 -0
  580. package/dist/ui/conversation-queue-store.d.ts +12 -0
  581. package/dist/ui/conversation-queue-store.d.ts.map +1 -0
  582. package/dist/ui/conversation-queue.d.ts +242 -0
  583. package/dist/ui/conversation-queue.d.ts.map +1 -0
  584. package/dist/ui/conversation-render.d.ts +45 -0
  585. package/dist/ui/conversation-render.d.ts.map +1 -0
  586. package/dist/ui/conversation-shortcut.d.ts +3 -0
  587. package/dist/ui/conversation-shortcut.d.ts.map +1 -0
  588. package/dist/ui/conversation-targets.d.ts +7 -0
  589. package/dist/ui/conversation-targets.d.ts.map +1 -0
  590. package/dist/ui/conversation-targets.js +12 -0
  591. package/dist/ui/conversation-targets.js.map +7 -0
  592. package/dist/ui/conversation-transcript.d.ts +25 -0
  593. package/dist/ui/conversation-transcript.d.ts.map +1 -0
  594. package/dist/ui/conversation.d.ts +170 -0
  595. package/dist/ui/conversation.d.ts.map +1 -0
  596. package/dist/ui/conversation.js +1868 -0
  597. package/dist/ui/conversation.js.map +7 -0
  598. package/dist/ui/core-tool-render.d.ts +20 -0
  599. package/dist/ui/core-tool-render.d.ts.map +1 -0
  600. package/dist/ui/dashboard-detail.d.ts +68 -0
  601. package/dist/ui/dashboard-detail.d.ts.map +1 -0
  602. package/dist/ui/dashboard-fabric-graph.d.ts +50 -0
  603. package/dist/ui/dashboard-fabric-graph.d.ts.map +1 -0
  604. package/dist/ui/dashboard-model.d.ts +111 -0
  605. package/dist/ui/dashboard-model.d.ts.map +1 -0
  606. package/dist/ui/dashboard-presentation.d.ts +6 -0
  607. package/dist/ui/dashboard-presentation.d.ts.map +1 -0
  608. package/dist/ui/dashboard.d.ts +188 -0
  609. package/dist/ui/dashboard.d.ts.map +1 -0
  610. package/dist/ui/dashboard.js +4604 -0
  611. package/dist/ui/dashboard.js.map +7 -0
  612. package/dist/ui/diff-background.d.ts +12 -0
  613. package/dist/ui/diff-background.d.ts.map +1 -0
  614. package/dist/ui/dynamic-border.d.ts +8 -0
  615. package/dist/ui/dynamic-border.d.ts.map +1 -0
  616. package/dist/ui/escape-halt.d.ts +11 -0
  617. package/dist/ui/escape-halt.d.ts.map +1 -0
  618. package/dist/ui/fabric-actor-delivery-selector.d.ts +17 -0
  619. package/dist/ui/fabric-actor-delivery-selector.d.ts.map +1 -0
  620. package/dist/ui/fabric-actor-tool-selector.d.ts +22 -0
  621. package/dist/ui/fabric-actor-tool-selector.d.ts.map +1 -0
  622. package/dist/ui/fabric-code-parser.d.ts +8 -0
  623. package/dist/ui/fabric-code-parser.d.ts.map +1 -0
  624. package/dist/ui/fabric-host-event-selector.d.ts +29 -0
  625. package/dist/ui/fabric-host-event-selector.d.ts.map +1 -0
  626. package/dist/ui/fabric-model-selector.d.ts +64 -0
  627. package/dist/ui/fabric-model-selector.d.ts.map +1 -0
  628. package/dist/ui/fabric-render.d.ts +113 -0
  629. package/dist/ui/fabric-render.d.ts.map +1 -0
  630. package/dist/ui/fabric-thinking-selector.d.ts +26 -0
  631. package/dist/ui/fabric-thinking-selector.d.ts.map +1 -0
  632. package/dist/ui/fabric-title-hint.d.ts +2 -0
  633. package/dist/ui/fabric-title-hint.d.ts.map +1 -0
  634. package/dist/ui/format.d.ts +9 -0
  635. package/dist/ui/format.d.ts.map +1 -0
  636. package/dist/ui/highlight.d.ts +69 -0
  637. package/dist/ui/highlight.d.ts.map +1 -0
  638. package/dist/ui/model-picker.d.ts +46 -0
  639. package/dist/ui/model-picker.d.ts.map +1 -0
  640. package/dist/ui/model-picker.js +17 -0
  641. package/dist/ui/model-picker.js.map +7 -0
  642. package/dist/ui/preview-lines.d.ts +16 -0
  643. package/dist/ui/preview-lines.d.ts.map +1 -0
  644. package/dist/ui/row-balance.d.ts +29 -0
  645. package/dist/ui/row-balance.d.ts.map +1 -0
  646. package/dist/ui/settings.d.ts +57 -0
  647. package/dist/ui/settings.d.ts.map +1 -0
  648. package/dist/ui/settings.js +1908 -0
  649. package/dist/ui/settings.js.map +7 -0
  650. package/dist/ui/shiki-language.d.ts +7 -0
  651. package/dist/ui/shiki-language.d.ts.map +1 -0
  652. package/dist/ui/shiki-theme.d.ts +7 -0
  653. package/dist/ui/shiki-theme.d.ts.map +1 -0
  654. package/dist/ui/snapshot.d.ts +7 -0
  655. package/dist/ui/snapshot.d.ts.map +1 -0
  656. package/dist/ui/spinner.d.ts +6 -0
  657. package/dist/ui/spinner.d.ts.map +1 -0
  658. package/dist/ui/state-file-preview.d.ts +13 -0
  659. package/dist/ui/state-file-preview.d.ts.map +1 -0
  660. package/dist/ui/structured.d.ts +9 -0
  661. package/dist/ui/structured.d.ts.map +1 -0
  662. package/dist/ui/symbol-theme.d.ts +3 -0
  663. package/dist/ui/symbol-theme.d.ts.map +1 -0
  664. package/dist/ui/tool-call-timing.d.ts +2 -0
  665. package/dist/ui/tool-call-timing.d.ts.map +1 -0
  666. package/dist/ui/tool-display.d.ts +8 -0
  667. package/dist/ui/tool-display.d.ts.map +1 -0
  668. package/dist/ui/topology.d.ts +162 -0
  669. package/dist/ui/topology.d.ts.map +1 -0
  670. package/dist/ui/transcript-parser.d.ts +18 -0
  671. package/dist/ui/transcript-parser.d.ts.map +1 -0
  672. package/dist/ui/transcript-reader.d.ts +10 -0
  673. package/dist/ui/transcript-reader.d.ts.map +1 -0
  674. package/dist/ui/transcript-sanitization.d.ts +14 -0
  675. package/dist/ui/transcript-sanitization.d.ts.map +1 -0
  676. package/dist/ui/transcript.d.ts +52 -0
  677. package/dist/ui/transcript.d.ts.map +1 -0
  678. package/dist/ui/types.d.ts +84 -0
  679. package/dist/ui/types.d.ts.map +1 -0
  680. package/dist/ui/widget.d.ts +16 -0
  681. package/dist/ui/widget.d.ts.map +1 -0
  682. package/dist/ui/word-diff/alignment.d.ts +6 -0
  683. package/dist/ui/word-diff/alignment.d.ts.map +1 -0
  684. package/dist/ui/word-diff/change-block.d.ts +18 -0
  685. package/dist/ui/word-diff/change-block.d.ts.map +1 -0
  686. package/dist/ui/word-diff/changed-line.d.ts +14 -0
  687. package/dist/ui/word-diff/changed-line.d.ts.map +1 -0
  688. package/dist/ui/word-diff/emphasis.d.ts +9 -0
  689. package/dist/ui/word-diff/emphasis.d.ts.map +1 -0
  690. package/dist/ui/word-diff/line-emphasis.d.ts +7 -0
  691. package/dist/ui/word-diff/line-emphasis.d.ts.map +1 -0
  692. package/dist/ui/word-diff/line-matching.d.ts +10 -0
  693. package/dist/ui/word-diff/line-matching.d.ts.map +1 -0
  694. package/dist/ui/word-diff/line-similarity.d.ts +16 -0
  695. package/dist/ui/word-diff/line-similarity.d.ts.map +1 -0
  696. package/dist/ui/word-diff/normalize.d.ts +3 -0
  697. package/dist/ui/word-diff/normalize.d.ts.map +1 -0
  698. package/dist/ui/word-diff/parse.d.ts +17 -0
  699. package/dist/ui/word-diff/parse.d.ts.map +1 -0
  700. package/dist/ui/word-diff/range-refinement.d.ts +5 -0
  701. package/dist/ui/word-diff/range-refinement.d.ts.map +1 -0
  702. package/dist/ui/word-diff/ranges.d.ts +11 -0
  703. package/dist/ui/word-diff/ranges.d.ts.map +1 -0
  704. package/dist/ui/word-diff/smart-filter.d.ts +3 -0
  705. package/dist/ui/word-diff/smart-filter.d.ts.map +1 -0
  706. package/dist/ui/word-diff/sparse-line-matching.d.ts +25 -0
  707. package/dist/ui/word-diff/sparse-line-matching.d.ts.map +1 -0
  708. package/dist/ui/word-diff/text-boundaries.d.ts +11 -0
  709. package/dist/ui/word-diff/text-boundaries.d.ts.map +1 -0
  710. package/dist/ui/word-diff/token-alignment.d.ts +9 -0
  711. package/dist/ui/word-diff/token-alignment.d.ts.map +1 -0
  712. package/dist/ui/word-diff/token-text-refinement.d.ts +4 -0
  713. package/dist/ui/word-diff/token-text-refinement.d.ts.map +1 -0
  714. package/dist/ui/word-diff/tokens.d.ts +16 -0
  715. package/dist/ui/word-diff/tokens.d.ts.map +1 -0
  716. package/dist/ui/word-diff/types.d.ts +10 -0
  717. package/dist/ui/word-diff/types.d.ts.map +1 -0
  718. package/dist/util.d.ts +3 -0
  719. package/dist/util.d.ts.map +1 -0
  720. package/dist/worker/options.d.ts +3 -0
  721. package/dist/worker/options.d.ts.map +1 -0
  722. package/dist/worker/options.js +104 -0
  723. package/dist/worker/options.js.map +7 -0
  724. package/dist/worker/run-record.d.ts +22 -0
  725. package/dist/worker/run-record.d.ts.map +1 -0
  726. package/dist/worker/run-record.js +123 -0
  727. package/dist/worker/run-record.js.map +7 -0
  728. package/dist/worker/session-export.d.ts +45 -0
  729. package/dist/worker/session-export.d.ts.map +1 -0
  730. package/dist/worker/session-export.js +91 -0
  731. package/dist/worker/session-export.js.map +7 -0
  732. package/dist/worker.d.ts +3 -0
  733. package/dist/worker.d.ts.map +1 -0
  734. package/dist/worker.js +1061 -0
  735. package/dist/worker.js.map +7 -0
  736. package/docs/agents.md +564 -0
  737. package/docs/architecture.md +139 -0
  738. package/docs/audit-trace.md +116 -0
  739. package/docs/certification.md +134 -0
  740. package/docs/compaction.md +332 -0
  741. package/docs/component-calculus.md +191 -0
  742. package/docs/components.md +329 -0
  743. package/docs/configuration.md +478 -0
  744. package/docs/entropy.md +396 -0
  745. package/docs/interface.md +149 -0
  746. package/docs/memory-recall.md +614 -0
  747. package/docs/programmatic-compaction.md +207 -0
  748. package/docs/provider-component-calculus.md +378 -0
  749. package/docs/providers.md +109 -0
  750. package/docs/repairs.md +69 -0
  751. package/docs/residency-runtime.md +82 -0
  752. package/docs/schema-enforcement.md +166 -0
  753. package/docs/skills.md +48 -0
  754. package/docs/speculation.md +132 -0
  755. package/docs/state-layer.md +197 -0
  756. package/package.json +116 -0
  757. package/skills/fabric-advisor/SKILL.md +29 -0
  758. package/skills/fabric-ambient/SKILL.md +44 -0
  759. package/skills/fabric-ambient/references/setup.md +90 -0
  760. package/skills/fabric-council/SKILL.md +94 -0
  761. package/skills/fabric-exec/SKILL.md +123 -0
  762. package/skills/fabric-exec/references/agents.md +211 -0
  763. package/skills/fabric-exec/references/mcp.md +49 -0
  764. package/skills/fabric-exec/references/mesh.md +51 -0
  765. package/skills/fabric-fusion/SKILL.md +332 -0
  766. package/skills/fabric-guide/SKILL.md +28 -0
  767. package/skills/fabric-rlm/SKILL.md +284 -0
  768. package/skills/fabric-schema/SKILL.md +121 -0
  769. package/skills/fabric-spec/SKILL.md +42 -0
  770. package/skills/fabric-supervisor/SKILL.md +37 -0
  771. package/skills/fabric-swarm/SKILL.md +80 -0
  772. package/skills/fabric-workflow/SKILL.md +133 -0
@@ -0,0 +1,112 @@
1
+ import {
2
+ readSessionHeader
3
+ } from "./chunk-6QBPSZJ5.js";
4
+
5
+ // src/memory/discovery.ts
6
+ import fs from "node:fs";
7
+ import path from "node:path";
8
+ var SESSIONS_SUBDIR = "sessions";
9
+ var isJsonlFile = (name) => name.endsWith(".jsonl");
10
+ var encodeCwdDir = (cwd) => `--${path.resolve(cwd).replace(/^[/\\]/, "").replace(/[/\\:]/g, "-")}--`;
11
+ var sessionDirForCwd = (cwd, agentDir) => path.join(agentDir, SESSIONS_SUBDIR, encodeCwdDir(cwd));
12
+ var listJsonlInDir = (dir) => {
13
+ try {
14
+ return fs.readdirSync(dir, { withFileTypes: true }).filter((entry) => entry.isFile() && isJsonlFile(entry.name)).map((entry) => path.join(dir, entry.name));
15
+ } catch {
16
+ return [];
17
+ }
18
+ };
19
+ var statMtime = (file) => {
20
+ try {
21
+ return fs.statSync(file).mtimeMs;
22
+ } catch {
23
+ return 0;
24
+ }
25
+ };
26
+ var refFromFile = (file) => {
27
+ const header = readSessionHeader(file);
28
+ return {
29
+ id: header?.sessionId ?? path.basename(file, ".jsonl"),
30
+ file,
31
+ cwd: header?.cwd ?? "",
32
+ mtime: statMtime(file)
33
+ };
34
+ };
35
+ var sessionsDirRoot = (agentDir) => path.join(agentDir, SESSIONS_SUBDIR);
36
+ var compareRefsByRecency = (left, right) => {
37
+ if (right.mtime !== left.mtime) return right.mtime - left.mtime;
38
+ return left.file < right.file ? -1 : left.file > right.file ? 1 : 0;
39
+ };
40
+ var enumerateAllSessions = (agentDir, maxSessions) => {
41
+ const root = sessionsDirRoot(agentDir);
42
+ let projectDirs = [];
43
+ try {
44
+ projectDirs = fs.readdirSync(root, { withFileTypes: true }).filter((entry) => entry.isDirectory()).map((entry) => path.join(root, entry.name));
45
+ } catch {
46
+ return [];
47
+ }
48
+ const files = [];
49
+ for (const dir of projectDirs) {
50
+ for (const file of listJsonlInDir(dir)) files.push(file);
51
+ }
52
+ return files.map(refFromFile).sort(compareRefsByRecency).slice(0, Math.max(1, maxSessions));
53
+ };
54
+ var newestSessionInDir = (dir) => {
55
+ const files = listJsonlInDir(dir);
56
+ if (files.length === 0) return null;
57
+ return files.map(refFromFile).sort(compareRefsByRecency)[0];
58
+ };
59
+ var AmbiguousSessionError = class extends Error {
60
+ constructor(session, candidates) {
61
+ super(`Session id ${JSON.stringify(session)} is ambiguous; use an exact session file path.`);
62
+ this.session = session;
63
+ this.candidates = candidates;
64
+ this.name = "AmbiguousSessionError";
65
+ }
66
+ code = "ambiguous_session";
67
+ };
68
+ var resolveSessionTarget = (agentDir, target) => {
69
+ if (target.endsWith(".jsonl") && fs.existsSync(target)) {
70
+ return refFromFile(path.resolve(target));
71
+ }
72
+ const all = enumerateAllSessions(agentDir, Number.MAX_SAFE_INTEGER);
73
+ const byId = all.filter((ref) => ref.id === target);
74
+ if (byId.length > 1) throw new AmbiguousSessionError(target, byId.map((ref) => ref.file));
75
+ if (byId.length === 1) return byId[0];
76
+ const byStem = all.filter((ref) => path.basename(ref.file, ".jsonl") === target);
77
+ if (byStem.length > 1) throw new AmbiguousSessionError(target, byStem.map((ref) => ref.file));
78
+ return byStem[0] ?? null;
79
+ };
80
+ var resolveScope = (input) => {
81
+ const scope = input.scope?.trim();
82
+ if (scope.startsWith("session:")) {
83
+ const target = scope.slice("session:".length).trim();
84
+ const ref = resolveSessionTarget(input.agentDir, target);
85
+ return ref ? [ref] : [];
86
+ }
87
+ if (scope === "global") {
88
+ return enumerateAllSessions(input.agentDir, input.maxSessions);
89
+ }
90
+ if (scope === "project") {
91
+ const dir2 = sessionDirForCwd(input.cwd, input.agentDir);
92
+ return listJsonlInDir(dir2).map(refFromFile).sort(compareRefsByRecency).slice(0, Math.max(1, input.maxSessions));
93
+ }
94
+ if (input.sessionFile) {
95
+ const ref = refFromFile(input.sessionFile);
96
+ return [ref];
97
+ }
98
+ const dir = sessionDirForCwd(input.cwd, input.agentDir);
99
+ const newest = newestSessionInDir(dir);
100
+ return newest ? [newest] : [];
101
+ };
102
+
103
+ export {
104
+ encodeCwdDir,
105
+ sessionDirForCwd,
106
+ sessionsDirRoot,
107
+ enumerateAllSessions,
108
+ AmbiguousSessionError,
109
+ resolveSessionTarget,
110
+ resolveScope
111
+ };
112
+ //# sourceMappingURL=chunk-7BIA5BJN.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/memory/discovery.ts"],
4
+ "sourcesContent": ["import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { readSessionHeader } from \"./normalize.js\";\n\nexport interface SessionRef {\n id: string;\n file: string;\n cwd: string;\n mtime: number;\n}\n\nexport interface ResolveScopeInput {\n agentDir: string;\n cwd: string;\n scope: string;\n sessionId?: string;\n sessionFile?: string;\n maxSessions: number;\n}\n\nconst SESSIONS_SUBDIR = \"sessions\";\n\nconst isJsonlFile = (name: string): boolean => name.endsWith(\".jsonl\");\n\n/** Encode a cwd into the safe directory name OMP stores session files under. */\nexport const encodeCwdDir = (cwd: string): string =>\n `--${path.resolve(cwd).replace(/^[/\\\\]/, \"\").replace(/[/\\\\:]/g, \"-\")}--`;\n\n/** Directory OMP stores this project's session JSONL files under. */\nexport const sessionDirForCwd = (cwd: string, agentDir: string): string =>\n path.join(agentDir, SESSIONS_SUBDIR, encodeCwdDir(cwd));\n\nconst listJsonlInDir = (dir: string): string[] => {\n try {\n return fs\n .readdirSync(dir, { withFileTypes: true })\n .filter((entry) => entry.isFile() && isJsonlFile(entry.name))\n .map((entry) => path.join(dir, entry.name));\n } catch {\n return [];\n }\n};\n\nconst statMtime = (file: string): number => {\n try {\n return fs.statSync(file).mtimeMs;\n } catch {\n return 0;\n }\n};\n\nconst refFromFile = (file: string): SessionRef => {\n const header = readSessionHeader(file);\n return {\n id: header?.sessionId ?? path.basename(file, \".jsonl\"),\n file,\n cwd: header?.cwd ?? \"\",\n mtime: statMtime(file),\n };\n};\n\nexport const sessionsDirRoot = (agentDir: string): string => path.join(agentDir, SESSIONS_SUBDIR);\n\nconst compareRefsByRecency = (left: SessionRef, right: SessionRef): number => {\n if (right.mtime !== left.mtime) return right.mtime - left.mtime;\n return left.file < right.file ? -1 : left.file > right.file ? 1 : 0;\n};\n\n/**\n * Enumerate every session JSONL file under the agent dir, newest first by\n * file mtime. Bounded by `maxSessions`. Returns refs with resolved cwd and\n * sessionId from each file header (falling back to the file stem).\n */\nexport const enumerateAllSessions = (agentDir: string, maxSessions: number): SessionRef[] => {\n const root = sessionsDirRoot(agentDir);\n let projectDirs: string[] = [];\n try {\n projectDirs = fs\n .readdirSync(root, { withFileTypes: true })\n .filter((entry) => entry.isDirectory())\n .map((entry) => path.join(root, entry.name));\n } catch {\n return [];\n }\n const files: string[] = [];\n for (const dir of projectDirs) {\n for (const file of listJsonlInDir(dir)) files.push(file);\n }\n return files\n .map(refFromFile)\n .sort(compareRefsByRecency)\n .slice(0, Math.max(1, maxSessions));\n};\n\nconst newestSessionInDir = (dir: string): SessionRef | null => {\n const files = listJsonlInDir(dir);\n if (files.length === 0) return null;\n return files\n .map(refFromFile)\n .sort(compareRefsByRecency)[0]!;\n};\n\nexport class AmbiguousSessionError extends Error {\n readonly code = \"ambiguous_session\";\n\n constructor(\n readonly session: string,\n readonly candidates: string[],\n ) {\n super(`Session id ${JSON.stringify(session)} is ambiguous; use an exact session file path.`);\n this.name = \"AmbiguousSessionError\";\n }\n}\n\nexport const resolveSessionTarget = (\n agentDir: string,\n target: string,\n): SessionRef | null => {\n if (target.endsWith(\".jsonl\") && fs.existsSync(target)) {\n return refFromFile(path.resolve(target));\n }\n const all = enumerateAllSessions(agentDir, Number.MAX_SAFE_INTEGER);\n const byId = all.filter((ref) => ref.id === target);\n if (byId.length > 1) throw new AmbiguousSessionError(target, byId.map((ref) => ref.file));\n if (byId.length === 1) return byId[0]!;\n const byStem = all.filter((ref) => path.basename(ref.file, \".jsonl\") === target);\n if (byStem.length > 1) throw new AmbiguousSessionError(target, byStem.map((ref) => ref.file));\n return byStem[0] ?? null;\n};\n\n/**\n * Resolve a scope string into the concrete set of session files to search.\n *\n * - `session` (default): the current session file (from invocation context\n * if available, else the newest session for the current cwd).\n * - `project`: all sessions stored under the current cwd's default session dir.\n * - `global`: all sessions under the agent dir, bounded by `maxSessions`.\n * - `session:<id-or-path>`: one specific session by id or file path.\n */\nexport const resolveScope = (input: ResolveScopeInput): SessionRef[] => {\n const scope = input.scope?.trim();\n if (scope.startsWith(\"session:\")) {\n const target = scope.slice(\"session:\".length).trim();\n const ref = resolveSessionTarget(input.agentDir, target);\n return ref ? [ref] : [];\n }\n if (scope === \"global\") {\n return enumerateAllSessions(input.agentDir, input.maxSessions);\n }\n if (scope === \"project\") {\n const dir = sessionDirForCwd(input.cwd, input.agentDir);\n return listJsonlInDir(dir)\n .map(refFromFile)\n .sort(compareRefsByRecency)\n .slice(0, Math.max(1, input.maxSessions));\n }\n // default: session\n if (input.sessionFile) {\n const ref = refFromFile(input.sessionFile);\n return [ref];\n }\n const dir = sessionDirForCwd(input.cwd, input.agentDir);\n const newest = newestSessionInDir(dir);\n return newest ? [newest] : [];\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["dir"]
7
+ }
@@ -0,0 +1,64 @@
1
+ // src/ui/model-picker.ts
2
+ import { existsSync, readFileSync } from "node:fs";
3
+ import { join } from "node:path";
4
+ var buildModelKey = (provider, id) => `${provider}/${id}`;
5
+ var INHERIT_VALUE = "Inherit";
6
+ function readModelSortLastUsed(agentDir) {
7
+ if (!agentDir) return {};
8
+ try {
9
+ const configPath = join(agentDir, "extensions", "pi-model-sort.json");
10
+ if (!existsSync(configPath)) return {};
11
+ const parsed = JSON.parse(readFileSync(configPath, "utf-8"));
12
+ return parsed.lastUsed ?? {};
13
+ } catch {
14
+ return {};
15
+ }
16
+ }
17
+ function sortByLastUsed(items, lastUsed, currentModelKey) {
18
+ const sorted = [...items];
19
+ sorted.sort((a, b) => {
20
+ const aKey = buildModelKey(a.provider, a.id);
21
+ const bKey = buildModelKey(b.provider, b.id);
22
+ if (currentModelKey !== null) {
23
+ const aIsCurrent = aKey === currentModelKey;
24
+ const bIsCurrent = bKey === currentModelKey;
25
+ if (aIsCurrent && !bIsCurrent) return -1;
26
+ if (!aIsCurrent && bIsCurrent) return 1;
27
+ }
28
+ const aLast = lastUsed[aKey] ?? 0;
29
+ const bLast = lastUsed[bKey] ?? 0;
30
+ if (aLast !== bLast) return bLast - aLast;
31
+ return a.provider.localeCompare(b.provider) || a.id.localeCompare(b.id);
32
+ });
33
+ return sorted;
34
+ }
35
+ function buildModelSource(registry, agentDir) {
36
+ let models;
37
+ try {
38
+ models = registry.getAvailable();
39
+ } catch {
40
+ models = [];
41
+ }
42
+ return { models, lastUsed: readModelSortLastUsed(agentDir) };
43
+ }
44
+ function buildClaudeModelSource(models) {
45
+ return {
46
+ models: models.map((model) => ({
47
+ provider: "claude",
48
+ id: model.value,
49
+ name: model.displayName ?? model.resolvedModel ?? model.value
50
+ })),
51
+ lastUsed: {}
52
+ };
53
+ }
54
+ var modelKey = buildModelKey;
55
+
56
+ export {
57
+ INHERIT_VALUE,
58
+ readModelSortLastUsed,
59
+ sortByLastUsed,
60
+ buildModelSource,
61
+ buildClaudeModelSource,
62
+ modelKey
63
+ };
64
+ //# sourceMappingURL=chunk-7BOAOKWH.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/ui/model-picker.ts"],
4
+ "sourcesContent": ["import { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\n\nexport type ModelLike = { provider: string; id: string; name?: string };\n\nexport type ClaudeModelLike = { value: string; displayName?: string; resolvedModel?: string };\n\n/** Structural shape buildModelSource needs; the real ModelRegistry satisfies this. */\ntype ModelRegistryLike = {\n getAvailable(): ModelLike[];\n};\n\nconst buildModelKey = (provider: string, id: string): string => `${provider}/${id}`;\n\n/** Value used for the \"no override\" picker entry. Stored as \"\" on disk. */\nexport const INHERIT_VALUE = \"Inherit\";\n\n/** A model list plus pi-model-sort's last-used timestamps, ready for the picker. */\nexport interface ModelSource {\n models: ModelLike[];\n lastUsed: Record<string, number>;\n}\n\n/**\n * Read pi-model-sort's last-used timestamps from\n * <agentDir>/extensions/pi-model-sort.json (best-effort). Returns {} when the\n * agent dir is unknown or the file is absent/unreadable so the picker degrades\n * to alphabetical order.\n *\n * The agent dir is injected by the caller because this module loads through a\n * native dynamic import (lazy dashboard) that cannot resolve OMP's\n * extension-loader alias for \"@oh-my-pi/pi-coding-agent\" (#13).\n */\nexport function readModelSortLastUsed(agentDir?: string): Record<string, number> {\n if (!agentDir) return {};\n try {\n const configPath = join(agentDir, \"extensions\", \"pi-model-sort.json\");\n if (!existsSync(configPath)) return {};\n const parsed = JSON.parse(readFileSync(configPath, \"utf-8\")) as {\n lastUsed?: Record<string, number>;\n };\n return parsed.lastUsed ?? {};\n } catch {\n return {};\n }\n}\n\n/**\n * Sort models the way pi-model-sort reorders the /model picker: current model\n * first, then most recently used (descending), then provider/id alphabetical.\n * Mirrors sortByLastUsed from pi-model-sort/src/index.ts so this picker matches\n * the order users see in /model.\n */\nexport function sortByLastUsed<T extends ModelLike>(\n items: T[],\n lastUsed: Record<string, number>,\n currentModelKey: string | null,\n): T[] {\n const sorted = [...items];\n sorted.sort((a, b) => {\n const aKey = buildModelKey(a.provider, a.id);\n const bKey = buildModelKey(b.provider, b.id);\n if (currentModelKey !== null) {\n const aIsCurrent = aKey === currentModelKey;\n const bIsCurrent = bKey === currentModelKey;\n if (aIsCurrent && !bIsCurrent) return -1;\n if (!aIsCurrent && bIsCurrent) return 1;\n }\n const aLast = lastUsed[aKey] ?? 0;\n const bLast = lastUsed[bKey] ?? 0;\n if (aLast !== bLast) return bLast - aLast;\n return a.provider.localeCompare(b.provider) || a.id.localeCompare(b.id);\n });\n return sorted;\n}\n\n/** Build a ModelSource from the registry, degrading to an empty list on failure. */\nexport function buildModelSource(registry: ModelRegistryLike, agentDir?: string): ModelSource {\n let models: ModelLike[];\n try {\n models = registry.getAvailable();\n } catch {\n models = [];\n }\n return { models, lastUsed: readModelSortLastUsed(agentDir) };\n}\n\nexport function buildClaudeModelSource(models: readonly ClaudeModelLike[]): ModelSource {\n return {\n models: models.map((model) => ({\n provider: \"claude\",\n id: model.value,\n name: model.displayName ?? model.resolvedModel ?? model.value,\n })),\n lastUsed: {},\n };\n}\n\n/** Build the canonical `provider/id` key used on disk and by `omp --model`. */\nexport const modelKey = buildModelKey;\n"],
5
+ "mappings": ";AAAA,SAAS,YAAY,oBAAoB;AACzC,SAAS,YAAY;AAWrB,IAAM,gBAAgB,CAAC,UAAkB,OAAuB,GAAG,QAAQ,IAAI,EAAE;AAG1E,IAAM,gBAAgB;AAkBtB,SAAS,sBAAsB,UAA2C;AAC/E,MAAI,CAAC,SAAU,QAAO,CAAC;AACvB,MAAI;AACF,UAAM,aAAa,KAAK,UAAU,cAAc,oBAAoB;AACpE,QAAI,CAAC,WAAW,UAAU,EAAG,QAAO,CAAC;AACrC,UAAM,SAAS,KAAK,MAAM,aAAa,YAAY,OAAO,CAAC;AAG3D,WAAO,OAAO,YAAY,CAAC;AAAA,EAC7B,QAAQ;AACN,WAAO,CAAC;AAAA,EACV;AACF;AAQO,SAAS,eACd,OACA,UACA,iBACK;AACL,QAAM,SAAS,CAAC,GAAG,KAAK;AACxB,SAAO,KAAK,CAAC,GAAG,MAAM;AACpB,UAAM,OAAO,cAAc,EAAE,UAAU,EAAE,EAAE;AAC3C,UAAM,OAAO,cAAc,EAAE,UAAU,EAAE,EAAE;AAC3C,QAAI,oBAAoB,MAAM;AAC5B,YAAM,aAAa,SAAS;AAC5B,YAAM,aAAa,SAAS;AAC5B,UAAI,cAAc,CAAC,WAAY,QAAO;AACtC,UAAI,CAAC,cAAc,WAAY,QAAO;AAAA,IACxC;AACA,UAAM,QAAQ,SAAS,IAAI,KAAK;AAChC,UAAM,QAAQ,SAAS,IAAI,KAAK;AAChC,QAAI,UAAU,MAAO,QAAO,QAAQ;AACpC,WAAO,EAAE,SAAS,cAAc,EAAE,QAAQ,KAAK,EAAE,GAAG,cAAc,EAAE,EAAE;AAAA,EACxE,CAAC;AACD,SAAO;AACT;AAGO,SAAS,iBAAiB,UAA6B,UAAgC;AAC5F,MAAI;AACJ,MAAI;AACF,aAAS,SAAS,aAAa;AAAA,EACjC,QAAQ;AACN,aAAS,CAAC;AAAA,EACZ;AACA,SAAO,EAAE,QAAQ,UAAU,sBAAsB,QAAQ,EAAE;AAC7D;AAEO,SAAS,uBAAuB,QAAiD;AACtF,SAAO;AAAA,IACL,QAAQ,OAAO,IAAI,CAAC,WAAW;AAAA,MAC7B,UAAU;AAAA,MACV,IAAI,MAAM;AAAA,MACV,MAAM,MAAM,eAAe,MAAM,iBAAiB,MAAM;AAAA,IAC1D,EAAE;AAAA,IACF,UAAU,CAAC;AAAA,EACb;AACF;AAGO,IAAM,WAAW;",
6
+ "names": []
7
+ }
@@ -0,0 +1,58 @@
1
+ // src/async-settlement.ts
2
+ var abortError = (signal) => {
3
+ const reason = signal.reason;
4
+ if (reason instanceof Error) return reason;
5
+ return new Error(typeof reason === "string" && reason ? reason : "Operation aborted");
6
+ };
7
+ var throwIfAborted = (signal) => {
8
+ if (signal?.aborted) throw abortError(signal);
9
+ };
10
+ var raceWithAbort = (operation, signal) => {
11
+ if (!signal) return Promise.resolve(operation);
12
+ if (signal.aborted) return Promise.reject(abortError(signal));
13
+ return new Promise((resolve, reject) => {
14
+ let settled = false;
15
+ const finish = (callback) => {
16
+ if (settled) return;
17
+ settled = true;
18
+ signal.removeEventListener("abort", onAbort);
19
+ callback();
20
+ };
21
+ const onAbort = () => finish(() => reject(abortError(signal)));
22
+ signal.addEventListener("abort", onAbort, { once: true });
23
+ Promise.resolve(operation).then(
24
+ (value) => finish(() => resolve(value)),
25
+ (error) => finish(() => reject(error))
26
+ );
27
+ });
28
+ };
29
+ var runAbortable = (signal, operation) => {
30
+ try {
31
+ throwIfAborted(signal);
32
+ return raceWithAbort(Promise.resolve(operation()), signal);
33
+ } catch (error) {
34
+ return Promise.reject(error);
35
+ }
36
+ };
37
+ var settleWithin = async (operations, timeoutMs) => {
38
+ const pending = [...operations].map((operation) => Promise.resolve(operation));
39
+ if (pending.length === 0) return true;
40
+ let timer;
41
+ try {
42
+ return await Promise.race([
43
+ Promise.allSettled(pending).then(() => true),
44
+ new Promise((resolve) => {
45
+ timer = setTimeout(() => resolve(false), Math.max(0, timeoutMs));
46
+ })
47
+ ]);
48
+ } finally {
49
+ if (timer) clearTimeout(timer);
50
+ }
51
+ };
52
+
53
+ export {
54
+ throwIfAborted,
55
+ runAbortable,
56
+ settleWithin
57
+ };
58
+ //# sourceMappingURL=chunk-7TB7NXSL.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/async-settlement.ts"],
4
+ "sourcesContent": ["const abortError = (signal: AbortSignal): Error => {\n const reason = signal.reason;\n if (reason instanceof Error) return reason;\n return new Error(typeof reason === \"string\" && reason ? reason : \"Operation aborted\");\n};\n\nexport const throwIfAborted = (signal: AbortSignal | undefined): void => {\n if (signal?.aborted) throw abortError(signal);\n};\n\nconst raceWithAbort = <T>(\n operation: PromiseLike<T>,\n signal: AbortSignal | undefined,\n): Promise<T> => {\n if (!signal) return Promise.resolve(operation);\n if (signal.aborted) return Promise.reject(abortError(signal));\n\n return new Promise<T>((resolve, reject) => {\n let settled = false;\n const finish = (callback: () => void): void => {\n if (settled) return;\n settled = true;\n signal.removeEventListener(\"abort\", onAbort);\n callback();\n };\n const onAbort = (): void => finish(() => reject(abortError(signal)));\n signal.addEventListener(\"abort\", onAbort, { once: true });\n Promise.resolve(operation).then(\n (value) => finish(() => resolve(value)),\n (error) => finish(() => reject(error)),\n );\n });\n};\n\nexport const runAbortable = <T>(\n signal: AbortSignal | undefined,\n operation: () => T | PromiseLike<T>,\n): Promise<T> => {\n try {\n throwIfAborted(signal);\n return raceWithAbort(Promise.resolve(operation()), signal);\n } catch (error) {\n return Promise.reject(error);\n }\n};\n\nexport const settleWithin = async (\n operations: Iterable<PromiseLike<unknown>>,\n timeoutMs: number,\n): Promise<boolean> => {\n const pending = [...operations].map((operation) => Promise.resolve(operation));\n if (pending.length === 0) return true;\n\n let timer: NodeJS.Timeout | undefined;\n try {\n return await Promise.race([\n Promise.allSettled(pending).then(() => true),\n new Promise<false>((resolve) => {\n timer = setTimeout(() => resolve(false), Math.max(0, timeoutMs));\n }),\n ]);\n } finally {\n if (timer) clearTimeout(timer);\n }\n};\n"],
5
+ "mappings": ";AAAA,IAAM,aAAa,CAAC,WAA+B;AACjD,QAAM,SAAS,OAAO;AACtB,MAAI,kBAAkB,MAAO,QAAO;AACpC,SAAO,IAAI,MAAM,OAAO,WAAW,YAAY,SAAS,SAAS,mBAAmB;AACtF;AAEO,IAAM,iBAAiB,CAAC,WAA0C;AACvE,MAAI,QAAQ,QAAS,OAAM,WAAW,MAAM;AAC9C;AAEA,IAAM,gBAAgB,CACpB,WACA,WACe;AACf,MAAI,CAAC,OAAQ,QAAO,QAAQ,QAAQ,SAAS;AAC7C,MAAI,OAAO,QAAS,QAAO,QAAQ,OAAO,WAAW,MAAM,CAAC;AAE5D,SAAO,IAAI,QAAW,CAAC,SAAS,WAAW;AACzC,QAAI,UAAU;AACd,UAAM,SAAS,CAAC,aAA+B;AAC7C,UAAI,QAAS;AACb,gBAAU;AACV,aAAO,oBAAoB,SAAS,OAAO;AAC3C,eAAS;AAAA,IACX;AACA,UAAM,UAAU,MAAY,OAAO,MAAM,OAAO,WAAW,MAAM,CAAC,CAAC;AACnE,WAAO,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AACxD,YAAQ,QAAQ,SAAS,EAAE;AAAA,MACzB,CAAC,UAAU,OAAO,MAAM,QAAQ,KAAK,CAAC;AAAA,MACtC,CAAC,UAAU,OAAO,MAAM,OAAO,KAAK,CAAC;AAAA,IACvC;AAAA,EACF,CAAC;AACH;AAEO,IAAM,eAAe,CAC1B,QACA,cACe;AACf,MAAI;AACF,mBAAe,MAAM;AACrB,WAAO,cAAc,QAAQ,QAAQ,UAAU,CAAC,GAAG,MAAM;AAAA,EAC3D,SAAS,OAAO;AACd,WAAO,QAAQ,OAAO,KAAK;AAAA,EAC7B;AACF;AAEO,IAAM,eAAe,OAC1B,YACA,cACqB;AACrB,QAAM,UAAU,CAAC,GAAG,UAAU,EAAE,IAAI,CAAC,cAAc,QAAQ,QAAQ,SAAS,CAAC;AAC7E,MAAI,QAAQ,WAAW,EAAG,QAAO;AAEjC,MAAI;AACJ,MAAI;AACF,WAAO,MAAM,QAAQ,KAAK;AAAA,MACxB,QAAQ,WAAW,OAAO,EAAE,KAAK,MAAM,IAAI;AAAA,MAC3C,IAAI,QAAe,CAAC,YAAY;AAC9B,gBAAQ,WAAW,MAAM,QAAQ,KAAK,GAAG,KAAK,IAAI,GAAG,SAAS,CAAC;AAAA,MACjE,CAAC;AAAA,IACH,CAAC;AAAA,EACH,UAAE;AACA,QAAI,MAAO,cAAa,KAAK;AAAA,EAC/B;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,17 @@
1
+ // src/ui/dynamic-border.ts
2
+ var DynamicBorder = class {
3
+ #color;
4
+ constructor(color = (str) => str) {
5
+ this.#color = color;
6
+ }
7
+ invalidate() {
8
+ }
9
+ render(width) {
10
+ return [this.#color("\u2500".repeat(Math.max(1, width)))];
11
+ }
12
+ };
13
+
14
+ export {
15
+ DynamicBorder
16
+ };
17
+ //# sourceMappingURL=chunk-7VIQNUPS.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/ui/dynamic-border.ts"],
4
+ "sourcesContent": ["// Local mirror of the host's DynamicBorder component (OMP host). Fabric only\n// constructs it with an explicit color function, so the host's global-theme\n// default (unreliable across module realms) is replaced with a pass-through\n// fallback that guards the no-color case.\n\nexport type DynamicBorderColor = (text: string) => string;\n\nexport class DynamicBorder {\n readonly #color: DynamicBorderColor;\n\n constructor(color: DynamicBorderColor = (str: string) => str) {\n this.#color = color;\n }\n\n invalidate(): void {\n // No cached state to invalidate.\n }\n\n render(width: number): string[] {\n return [this.#color(\"\u2500\".repeat(Math.max(1, width)))];\n }\n}\n"],
5
+ "mappings": ";AAOO,IAAM,gBAAN,MAAoB;AAAA,EAChB;AAAA,EAET,YAAY,QAA4B,CAAC,QAAgB,KAAK;AAC5D,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,aAAmB;AAAA,EAEnB;AAAA,EAEA,OAAO,OAAyB;AAC9B,WAAO,CAAC,KAAK,OAAO,SAAI,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;AAAA,EACrD;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,225 @@
1
+ // src/agents/claude-cli.ts
2
+ import { randomUUID } from "node:crypto";
3
+ import path from "node:path";
4
+ import crossSpawn from "cross-spawn";
5
+ var NODE_SCRIPT_EXTENSIONS = /* @__PURE__ */ new Set([".js", ".cjs", ".mjs", ".ts", ".cts", ".mts"]);
6
+ var spawnCli = (command, args, options) => NODE_SCRIPT_EXTENSIONS.has(path.extname(command).toLowerCase()) ? crossSpawn(process.execPath, [command, ...args], options) : crossSpawn(command, [...args], options);
7
+ var MODEL_DISCOVERY_TIMEOUT_MS = 1e4;
8
+ var MODEL_DISCOVERY_MAX_CHARS = 2e6;
9
+ var CLAUDE_TOOL_NAMES = {
10
+ read: "Read",
11
+ grep: "Grep",
12
+ find: "Glob",
13
+ ls: "Glob",
14
+ bash: "Bash",
15
+ edit: "Edit",
16
+ write: "Write"
17
+ };
18
+ var nonEmptyString = (value) => typeof value === "string" && value.trim() ? value.trim() : void 0;
19
+ var asClaudeModel = (value) => {
20
+ if (typeof value !== "object" || value === null || Array.isArray(value)) return void 0;
21
+ const record = value;
22
+ const modelValue = nonEmptyString(record.value);
23
+ if (!modelValue) return void 0;
24
+ const resolvedModel = nonEmptyString(record.resolvedModel) ?? modelValue;
25
+ const displayName = nonEmptyString(record.displayName) ?? modelValue;
26
+ const description = nonEmptyString(record.description) ?? resolvedModel;
27
+ const supportedEffortLevels = Array.isArray(record.supportedEffortLevels) ? record.supportedEffortLevels.filter(
28
+ (level) => typeof level === "string" && Boolean(level.trim())
29
+ ) : void 0;
30
+ return {
31
+ value: modelValue,
32
+ resolvedModel,
33
+ displayName,
34
+ description,
35
+ ...typeof record.supportsEffort === "boolean" ? { supportsEffort: record.supportsEffort } : {},
36
+ ...supportedEffortLevels && supportedEffortLevels.length > 0 ? { supportedEffortLevels } : {},
37
+ ...typeof record.supportsAdaptiveThinking === "boolean" ? { supportsAdaptiveThinking: record.supportsAdaptiveThinking } : {},
38
+ ...typeof record.supportsFastMode === "boolean" ? { supportsFastMode: record.supportsFastMode } : {},
39
+ ...typeof record.supportsAutoMode === "boolean" ? { supportsAutoMode: record.supportsAutoMode } : {}
40
+ };
41
+ };
42
+ var mapClaudeTools = (tools) => {
43
+ const mapped = [];
44
+ for (const tool of tools) {
45
+ const claudeTool = Object.hasOwn(CLAUDE_TOOL_NAMES, tool) ? CLAUDE_TOOL_NAMES[tool] : void 0;
46
+ if (!claudeTool) {
47
+ throw new Error(
48
+ `Claude runner does not support Fabric tool ${JSON.stringify(tool)}. Supported tools: ${Object.keys(
49
+ CLAUDE_TOOL_NAMES
50
+ ).join(", ")}`
51
+ );
52
+ }
53
+ if (!mapped.includes(claudeTool)) mapped.push(claudeTool);
54
+ }
55
+ return mapped;
56
+ };
57
+ var normalizeClaudeModel = (model) => {
58
+ const trimmed = model.trim();
59
+ const normalized = trimmed.startsWith("claude/") ? trimmed.slice("claude/".length) : trimmed.startsWith("anthropic/") ? trimmed.slice("anthropic/".length) : trimmed;
60
+ if (!normalized) throw new Error("Claude model must include a runtime model value");
61
+ return normalized;
62
+ };
63
+ var claudeEffort = (thinking) => thinking === "off" || thinking === "minimal" ? "low" : thinking;
64
+ var buildClaudeArguments = (options) => {
65
+ const tools = mapClaudeTools(options.tools);
66
+ const args = [
67
+ "-p",
68
+ "--input-format",
69
+ "stream-json",
70
+ "--output-format",
71
+ "stream-json",
72
+ "--verbose",
73
+ "--include-partial-messages",
74
+ "--permission-mode",
75
+ "dontAsk",
76
+ "--tools",
77
+ tools.join(",")
78
+ ];
79
+ if (tools.length > 0) args.push("--allowedTools", tools.join(","));
80
+ if (!options.extensions) args.push("--safe-mode");
81
+ if (!options.persistentSession) args.push("--no-session-persistence");
82
+ if (options.runnerSessionId) args.push("--resume", options.runnerSessionId);
83
+ if (options.model) args.push("--model", normalizeClaudeModel(options.model));
84
+ if (options.thinking) args.push("--effort", claudeEffort(options.thinking));
85
+ if (options.systemPrompt) args.push("--append-system-prompt", options.systemPrompt);
86
+ if (options.schema) args.push("--json-schema", options.schema);
87
+ if (options.name) args.push("--name", options.name);
88
+ return args;
89
+ };
90
+ var claudeUserMessage = (message, images = []) => ({
91
+ type: "user",
92
+ message: {
93
+ role: "user",
94
+ content: images.length === 0 ? message : [
95
+ { type: "text", text: message },
96
+ ...images.map((image) => ({
97
+ type: "image",
98
+ source: {
99
+ type: "base64",
100
+ media_type: image.mimeType,
101
+ data: image.data
102
+ }
103
+ }))
104
+ ]
105
+ },
106
+ parent_tool_use_id: null,
107
+ session_id: "",
108
+ uuid: randomUUID()
109
+ });
110
+ var discoverClaudeModels = async (binary, cwd, timeoutMs = MODEL_DISCOVERY_TIMEOUT_MS) => new Promise((resolve, reject) => {
111
+ const requestId = `fabric-models-${randomUUID()}`;
112
+ const child = spawnCli(
113
+ binary,
114
+ [
115
+ "-p",
116
+ "--safe-mode",
117
+ "--no-session-persistence",
118
+ "--input-format",
119
+ "stream-json",
120
+ "--output-format",
121
+ "stream-json",
122
+ "--verbose",
123
+ "--permission-mode",
124
+ "dontAsk",
125
+ "--tools",
126
+ ""
127
+ ],
128
+ { cwd, stdio: ["pipe", "pipe", "pipe"] }
129
+ );
130
+ let stdout = "";
131
+ let stderr = "";
132
+ let settled = false;
133
+ let timeout;
134
+ let forceKill;
135
+ const finish = (error, models) => {
136
+ if (settled) return;
137
+ settled = true;
138
+ if (timeout) clearTimeout(timeout);
139
+ child.kill("SIGTERM");
140
+ forceKill = setTimeout(() => child.kill("SIGKILL"), 1e3);
141
+ forceKill.unref();
142
+ if (error) reject(error);
143
+ else resolve(models ?? []);
144
+ };
145
+ const inspectLines = () => {
146
+ const lines = stdout.split("\n");
147
+ stdout = lines.pop() ?? "";
148
+ for (const line of lines) {
149
+ if (!line.trim()) continue;
150
+ let parsed;
151
+ try {
152
+ parsed = JSON.parse(line);
153
+ } catch {
154
+ continue;
155
+ }
156
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) continue;
157
+ const event = parsed;
158
+ if (event.type !== "control_response") continue;
159
+ const response = event.response;
160
+ if (typeof response !== "object" || response === null || Array.isArray(response)) continue;
161
+ const envelope = response;
162
+ if (envelope.request_id !== requestId) continue;
163
+ if (envelope.subtype !== "success") {
164
+ finish(new Error(nonEmptyString(envelope.error) ?? "Claude model discovery failed"));
165
+ return;
166
+ }
167
+ const payload = envelope.response;
168
+ if (typeof payload !== "object" || payload === null || Array.isArray(payload)) {
169
+ finish(new Error("Claude model discovery returned an invalid response"));
170
+ return;
171
+ }
172
+ const rawModels = payload.models;
173
+ const models = Array.isArray(rawModels) ? rawModels.map(asClaudeModel).filter((model) => Boolean(model)) : [];
174
+ finish(void 0, models);
175
+ return;
176
+ }
177
+ };
178
+ child.stdout?.on("data", (chunk) => {
179
+ stdout += chunk.toString("utf8");
180
+ if (stdout.length > MODEL_DISCOVERY_MAX_CHARS) {
181
+ finish(new Error("Claude model discovery output exceeded its safety limit"));
182
+ return;
183
+ }
184
+ inspectLines();
185
+ });
186
+ child.stderr?.on("data", (chunk) => {
187
+ stderr = (stderr + chunk.toString("utf8")).slice(-2e4);
188
+ });
189
+ child.once("error", (error) => finish(error));
190
+ child.once("close", (code) => {
191
+ if (forceKill) clearTimeout(forceKill);
192
+ if (settled) return;
193
+ inspectLines();
194
+ const detail = stderr.trim();
195
+ finish(
196
+ new Error(
197
+ detail || `Claude model discovery exited with code ${code ?? "unknown"} before initialization`
198
+ )
199
+ );
200
+ });
201
+ child.stdin?.on("error", () => {
202
+ });
203
+ child.stdin?.end(
204
+ `${JSON.stringify({
205
+ type: "control_request",
206
+ request_id: requestId,
207
+ request: { subtype: "initialize" }
208
+ })}
209
+ `
210
+ );
211
+ timeout = setTimeout(() => {
212
+ finish(new Error(`Claude model discovery timed out after ${timeoutMs}ms`));
213
+ }, timeoutMs);
214
+ timeout.unref();
215
+ });
216
+
217
+ export {
218
+ mapClaudeTools,
219
+ normalizeClaudeModel,
220
+ claudeEffort,
221
+ buildClaudeArguments,
222
+ claudeUserMessage,
223
+ discoverClaudeModels
224
+ };
225
+ //# sourceMappingURL=chunk-CT2AJ2UI.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/agents/claude-cli.ts"],
4
+ "sourcesContent": ["import type { ImageContent } from \"@oh-my-pi/pi-ai\";\nimport type { ChildProcess, SpawnOptions } from \"node:child_process\";\nimport { randomUUID } from \"node:crypto\";\nimport path from \"node:path\";\nimport crossSpawn from \"cross-spawn\";\nimport type { FabricThinking } from \"../thinking.js\";\n\nconst NODE_SCRIPT_EXTENSIONS = new Set([\".js\", \".cjs\", \".mjs\", \".ts\", \".cts\", \".mts\"]);\n\nconst spawnCli = (\n command: string,\n args: readonly string[],\n options: SpawnOptions,\n): ChildProcess => NODE_SCRIPT_EXTENSIONS.has(path.extname(command).toLowerCase())\n ? crossSpawn(process.execPath, [command, ...args], options)\n : crossSpawn(command, [...args], options);\n\nconst MODEL_DISCOVERY_TIMEOUT_MS = 10_000;\nconst MODEL_DISCOVERY_MAX_CHARS = 2_000_000;\n\nconst CLAUDE_TOOL_NAMES: Readonly<Record<string, string>> = {\n read: \"Read\",\n grep: \"Grep\",\n find: \"Glob\",\n ls: \"Glob\",\n bash: \"Bash\",\n edit: \"Edit\",\n write: \"Write\",\n};\n\nexport interface ClaudeModelInfo {\n value: string;\n resolvedModel: string;\n displayName: string;\n description: string;\n supportsEffort?: boolean;\n supportedEffortLevels?: string[];\n supportsAdaptiveThinking?: boolean;\n supportsFastMode?: boolean;\n supportsAutoMode?: boolean;\n}\n\ninterface ClaudeRunArguments {\n model?: string;\n thinking?: FabricThinking;\n tools: string[];\n extensions: boolean;\n systemPrompt?: string;\n schema?: string;\n runnerSessionId?: string;\n persistentSession: boolean;\n name?: string;\n}\n\nconst nonEmptyString = (value: unknown): string | undefined =>\n typeof value === \"string\" && value.trim() ? value.trim() : undefined;\n\nconst asClaudeModel = (value: unknown): ClaudeModelInfo | undefined => {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) return undefined;\n const record = value as Record<string, unknown>;\n const modelValue = nonEmptyString(record.value);\n if (!modelValue) return undefined;\n const resolvedModel = nonEmptyString(record.resolvedModel) ?? modelValue;\n const displayName = nonEmptyString(record.displayName) ?? modelValue;\n const description = nonEmptyString(record.description) ?? resolvedModel;\n const supportedEffortLevels = Array.isArray(record.supportedEffortLevels)\n ? record.supportedEffortLevels.filter(\n (level): level is string => typeof level === \"string\" && Boolean(level.trim()),\n )\n : undefined;\n return {\n value: modelValue,\n resolvedModel,\n displayName,\n description,\n ...(typeof record.supportsEffort === \"boolean\"\n ? { supportsEffort: record.supportsEffort }\n : {}),\n ...(supportedEffortLevels && supportedEffortLevels.length > 0\n ? { supportedEffortLevels }\n : {}),\n ...(typeof record.supportsAdaptiveThinking === \"boolean\"\n ? { supportsAdaptiveThinking: record.supportsAdaptiveThinking }\n : {}),\n ...(typeof record.supportsFastMode === \"boolean\"\n ? { supportsFastMode: record.supportsFastMode }\n : {}),\n ...(typeof record.supportsAutoMode === \"boolean\"\n ? { supportsAutoMode: record.supportsAutoMode }\n : {}),\n };\n};\n\nexport const mapClaudeTools = (tools: readonly string[]): string[] => {\n const mapped: string[] = [];\n for (const tool of tools) {\n const claudeTool = Object.hasOwn(CLAUDE_TOOL_NAMES, tool)\n ? CLAUDE_TOOL_NAMES[tool]\n : undefined;\n if (!claudeTool) {\n throw new Error(\n `Claude runner does not support Fabric tool ${JSON.stringify(tool)}. Supported tools: ${Object.keys(\n CLAUDE_TOOL_NAMES,\n ).join(\", \")}`,\n );\n }\n if (!mapped.includes(claudeTool)) mapped.push(claudeTool);\n }\n return mapped;\n};\n\nexport const normalizeClaudeModel = (model: string): string => {\n const trimmed = model.trim();\n const normalized = trimmed.startsWith(\"claude/\")\n ? trimmed.slice(\"claude/\".length)\n : trimmed.startsWith(\"anthropic/\")\n ? trimmed.slice(\"anthropic/\".length)\n : trimmed;\n if (!normalized) throw new Error(\"Claude model must include a runtime model value\");\n return normalized;\n};\n\nexport const claudeEffort = (thinking: FabricThinking): string =>\n thinking === \"off\" || thinking === \"minimal\" ? \"low\" : thinking;\n\nexport const buildClaudeArguments = (options: ClaudeRunArguments): string[] => {\n const tools = mapClaudeTools(options.tools);\n const args = [\n \"-p\",\n \"--input-format\",\n \"stream-json\",\n \"--output-format\",\n \"stream-json\",\n \"--verbose\",\n \"--include-partial-messages\",\n \"--permission-mode\",\n \"dontAsk\",\n \"--tools\",\n tools.join(\",\"),\n ];\n if (tools.length > 0) args.push(\"--allowedTools\", tools.join(\",\"));\n if (!options.extensions) args.push(\"--safe-mode\");\n if (!options.persistentSession) args.push(\"--no-session-persistence\");\n if (options.runnerSessionId) args.push(\"--resume\", options.runnerSessionId);\n if (options.model) args.push(\"--model\", normalizeClaudeModel(options.model));\n if (options.thinking) args.push(\"--effort\", claudeEffort(options.thinking));\n if (options.systemPrompt) args.push(\"--append-system-prompt\", options.systemPrompt);\n if (options.schema) args.push(\"--json-schema\", options.schema);\n if (options.name) args.push(\"--name\", options.name);\n return args;\n};\n\nexport const claudeUserMessage = (\n message: string,\n images: readonly ImageContent[] = [],\n): Record<string, unknown> => ({\n type: \"user\",\n message: {\n role: \"user\",\n content: images.length === 0\n ? message\n : [\n { type: \"text\", text: message },\n ...images.map((image) => ({\n type: \"image\",\n source: {\n type: \"base64\",\n media_type: image.mimeType,\n data: image.data,\n },\n })),\n ],\n },\n parent_tool_use_id: null,\n session_id: \"\",\n uuid: randomUUID(),\n});\n\nexport const discoverClaudeModels = async (\n binary: string,\n cwd: string,\n timeoutMs = MODEL_DISCOVERY_TIMEOUT_MS,\n): Promise<ClaudeModelInfo[]> =>\n new Promise<ClaudeModelInfo[]>((resolve, reject) => {\n const requestId = `fabric-models-${randomUUID()}`;\n const child = spawnCli(\n binary,\n [\n \"-p\",\n \"--safe-mode\",\n \"--no-session-persistence\",\n \"--input-format\",\n \"stream-json\",\n \"--output-format\",\n \"stream-json\",\n \"--verbose\",\n \"--permission-mode\",\n \"dontAsk\",\n \"--tools\",\n \"\",\n ],\n { cwd, stdio: [\"pipe\", \"pipe\", \"pipe\"] },\n );\n let stdout = \"\";\n let stderr = \"\";\n let settled = false;\n let timeout: NodeJS.Timeout | undefined;\n let forceKill: NodeJS.Timeout | undefined;\n const finish = (error: Error | undefined, models?: ClaudeModelInfo[]): void => {\n if (settled) return;\n settled = true;\n if (timeout) clearTimeout(timeout);\n child.kill(\"SIGTERM\");\n forceKill = setTimeout(() => child.kill(\"SIGKILL\"), 1_000);\n forceKill.unref();\n if (error) reject(error);\n else resolve(models ?? []);\n };\n const inspectLines = (): void => {\n const lines = stdout.split(\"\\n\");\n stdout = lines.pop() ?? \"\";\n for (const line of lines) {\n if (!line.trim()) continue;\n let parsed: unknown;\n try {\n parsed = JSON.parse(line) as unknown;\n } catch {\n continue;\n }\n if (typeof parsed !== \"object\" || parsed === null || Array.isArray(parsed)) continue;\n const event = parsed as Record<string, unknown>;\n if (event.type !== \"control_response\") continue;\n const response = event.response;\n if (typeof response !== \"object\" || response === null || Array.isArray(response)) continue;\n const envelope = response as Record<string, unknown>;\n if (envelope.request_id !== requestId) continue;\n if (envelope.subtype !== \"success\") {\n finish(new Error(nonEmptyString(envelope.error) ?? \"Claude model discovery failed\"));\n return;\n }\n const payload = envelope.response;\n if (typeof payload !== \"object\" || payload === null || Array.isArray(payload)) {\n finish(new Error(\"Claude model discovery returned an invalid response\"));\n return;\n }\n const rawModels = (payload as Record<string, unknown>).models;\n const models = Array.isArray(rawModels)\n ? rawModels.map(asClaudeModel).filter((model): model is ClaudeModelInfo => Boolean(model))\n : [];\n finish(undefined, models);\n return;\n }\n };\n child.stdout?.on(\"data\", (chunk: Buffer) => {\n stdout += chunk.toString(\"utf8\");\n if (stdout.length > MODEL_DISCOVERY_MAX_CHARS) {\n finish(new Error(\"Claude model discovery output exceeded its safety limit\"));\n return;\n }\n inspectLines();\n });\n child.stderr?.on(\"data\", (chunk: Buffer) => {\n stderr = (stderr + chunk.toString(\"utf8\")).slice(-20_000);\n });\n child.once(\"error\", (error) => finish(error));\n child.once(\"close\", (code) => {\n if (forceKill) clearTimeout(forceKill);\n if (settled) return;\n inspectLines();\n const detail = stderr.trim();\n finish(\n new Error(\n detail ||\n `Claude model discovery exited with code ${code ?? \"unknown\"} before initialization`,\n ),\n );\n });\n child.stdin?.on(\"error\", () => {});\n child.stdin?.end(\n `${JSON.stringify({\n type: \"control_request\",\n request_id: requestId,\n request: { subtype: \"initialize\" },\n })}\\n`,\n );\n timeout = setTimeout(() => {\n finish(new Error(`Claude model discovery timed out after ${timeoutMs}ms`));\n }, timeoutMs);\n timeout.unref();\n });\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }