@kya-os/cli 1.8.1 → 1.8.3

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 (385) hide show
  1. package/dist/commands/agent.d.ts +35 -0
  2. package/dist/commands/agent.d.ts.map +1 -0
  3. package/dist/commands/agent.js +321 -0
  4. package/dist/commands/agent.js.map +1 -0
  5. package/dist/commands/build.js +2 -2
  6. package/dist/commands/build.js.map +1 -1
  7. package/dist/commands/check.js +3 -3
  8. package/dist/commands/check.js.map +1 -1
  9. package/dist/commands/checkpoint-init.d.ts +1 -1
  10. package/dist/commands/checkpoint-init.d.ts.map +1 -1
  11. package/dist/commands/checkpoint-init.js +8 -41
  12. package/dist/commands/checkpoint-init.js.map +1 -1
  13. package/dist/commands/claim.js +2 -2
  14. package/dist/commands/claim.js.map +1 -1
  15. package/dist/commands/dco.d.ts +59 -0
  16. package/dist/commands/dco.d.ts.map +1 -1
  17. package/dist/commands/dco.js +280 -5
  18. package/dist/commands/dco.js.map +1 -1
  19. package/dist/commands/dev.js +1 -1
  20. package/dist/commands/dev.js.map +1 -1
  21. package/dist/commands/doctor.d.ts.map +1 -1
  22. package/dist/commands/doctor.js +18 -24
  23. package/dist/commands/doctor.js.map +1 -1
  24. package/dist/commands/env.js +6 -6
  25. package/dist/commands/env.js.map +1 -1
  26. package/dist/commands/identity.js +3 -3
  27. package/dist/commands/identity.js.map +1 -1
  28. package/dist/commands/init-stages.d.ts +141 -0
  29. package/dist/commands/init-stages.d.ts.map +1 -0
  30. package/dist/commands/init-stages.js +684 -0
  31. package/dist/commands/init-stages.js.map +1 -0
  32. package/dist/commands/init.d.ts +46 -16
  33. package/dist/commands/init.d.ts.map +1 -1
  34. package/dist/commands/init.js +229 -279
  35. package/dist/commands/init.js.map +1 -1
  36. package/dist/commands/orchestrator.d.ts +18 -0
  37. package/dist/commands/orchestrator.d.ts.map +1 -0
  38. package/dist/commands/orchestrator.js +251 -0
  39. package/dist/commands/orchestrator.js.map +1 -0
  40. package/dist/commands/register.d.ts +1 -1
  41. package/dist/commands/register.d.ts.map +1 -1
  42. package/dist/commands/register.js +35 -7
  43. package/dist/commands/register.js.map +1 -1
  44. package/dist/commands/review.d.ts +48 -0
  45. package/dist/commands/review.d.ts.map +1 -0
  46. package/dist/commands/review.js +220 -0
  47. package/dist/commands/review.js.map +1 -0
  48. package/dist/commands/rotate.js +4 -4
  49. package/dist/commands/rotate.js.map +1 -1
  50. package/dist/commands/score.d.ts +15 -0
  51. package/dist/commands/score.d.ts.map +1 -0
  52. package/dist/commands/score.js +471 -0
  53. package/dist/commands/score.js.map +1 -0
  54. package/dist/commands/start.js +3 -3
  55. package/dist/commands/start.js.map +1 -1
  56. package/dist/commands/status.js +1 -1
  57. package/dist/commands/status.js.map +1 -1
  58. package/dist/commands/verify.js +6 -6
  59. package/dist/commands/verify.js.map +1 -1
  60. package/dist/dco.d.ts +4 -0
  61. package/dist/dco.d.ts.map +1 -0
  62. package/dist/dco.js +23 -0
  63. package/dist/dco.js.map +1 -0
  64. package/dist/index.js +52 -9
  65. package/dist/orchestrator/daemon.d.ts +137 -0
  66. package/dist/orchestrator/daemon.d.ts.map +1 -0
  67. package/dist/orchestrator/daemon.js +242 -0
  68. package/dist/orchestrator/daemon.js.map +1 -0
  69. package/dist/orchestrator/db/dispatches.d.ts +108 -0
  70. package/dist/orchestrator/db/dispatches.d.ts.map +1 -0
  71. package/dist/orchestrator/db/dispatches.js +122 -0
  72. package/dist/orchestrator/db/dispatches.js.map +1 -0
  73. package/dist/orchestrator/db/index.d.ts +50 -0
  74. package/dist/orchestrator/db/index.d.ts.map +1 -0
  75. package/dist/orchestrator/db/index.js +116 -0
  76. package/dist/orchestrator/db/index.js.map +1 -0
  77. package/dist/orchestrator/db/journal.d.ts +93 -0
  78. package/dist/orchestrator/db/journal.d.ts.map +1 -0
  79. package/dist/orchestrator/db/journal.js +91 -0
  80. package/dist/orchestrator/db/journal.js.map +1 -0
  81. package/dist/orchestrator/db/liveness.d.ts +97 -0
  82. package/dist/orchestrator/db/liveness.d.ts.map +1 -0
  83. package/dist/orchestrator/db/liveness.js +105 -0
  84. package/dist/orchestrator/db/liveness.js.map +1 -0
  85. package/dist/orchestrator/db/mission.d.ts +78 -0
  86. package/dist/orchestrator/db/mission.d.ts.map +1 -0
  87. package/dist/orchestrator/db/mission.js +99 -0
  88. package/dist/orchestrator/db/mission.js.map +1 -0
  89. package/dist/orchestrator/db/schema.d.ts +14 -0
  90. package/dist/orchestrator/db/schema.d.ts.map +1 -0
  91. package/dist/orchestrator/db/schema.js +169 -0
  92. package/dist/orchestrator/db/schema.js.map +1 -0
  93. package/dist/orchestrator/db/tickets.d.ts +147 -0
  94. package/dist/orchestrator/db/tickets.d.ts.map +1 -0
  95. package/dist/orchestrator/db/tickets.js +238 -0
  96. package/dist/orchestrator/db/tickets.js.map +1 -0
  97. package/dist/orchestrator/db/verdicts.d.ts +187 -0
  98. package/dist/orchestrator/db/verdicts.d.ts.map +1 -0
  99. package/dist/orchestrator/db/verdicts.js +197 -0
  100. package/dist/orchestrator/db/verdicts.js.map +1 -0
  101. package/dist/orchestrator/events.d.ts +69 -0
  102. package/dist/orchestrator/events.d.ts.map +1 -0
  103. package/dist/orchestrator/events.js +20 -0
  104. package/dist/orchestrator/events.js.map +1 -0
  105. package/dist/orchestrator/github-credential-anchor-sender.d.ts +159 -0
  106. package/dist/orchestrator/github-credential-anchor-sender.d.ts.map +1 -0
  107. package/dist/orchestrator/github-credential-anchor-sender.js +313 -0
  108. package/dist/orchestrator/github-credential-anchor-sender.js.map +1 -0
  109. package/dist/orchestrator/hub-dispatch.d.ts +120 -0
  110. package/dist/orchestrator/hub-dispatch.d.ts.map +1 -0
  111. package/dist/orchestrator/hub-dispatch.js +257 -0
  112. package/dist/orchestrator/hub-dispatch.js.map +1 -0
  113. package/dist/orchestrator/hub-observer.d.ts +201 -0
  114. package/dist/orchestrator/hub-observer.d.ts.map +1 -0
  115. package/dist/orchestrator/hub-observer.js +474 -0
  116. package/dist/orchestrator/hub-observer.js.map +1 -0
  117. package/dist/orchestrator/journal-writer.d.ts +80 -0
  118. package/dist/orchestrator/journal-writer.d.ts.map +1 -0
  119. package/dist/orchestrator/journal-writer.js +113 -0
  120. package/dist/orchestrator/journal-writer.js.map +1 -0
  121. package/dist/orchestrator/mcp/server.d.ts +136 -0
  122. package/dist/orchestrator/mcp/server.d.ts.map +1 -0
  123. package/dist/orchestrator/mcp/server.js +582 -0
  124. package/dist/orchestrator/mcp/server.js.map +1 -0
  125. package/dist/orchestrator/mcp/stdio.d.ts +22 -0
  126. package/dist/orchestrator/mcp/stdio.d.ts.map +1 -0
  127. package/dist/orchestrator/mcp/stdio.js +51 -0
  128. package/dist/orchestrator/mcp/stdio.js.map +1 -0
  129. package/dist/orchestrator/review.d.ts +131 -0
  130. package/dist/orchestrator/review.d.ts.map +1 -0
  131. package/dist/orchestrator/review.js +322 -0
  132. package/dist/orchestrator/review.js.map +1 -0
  133. package/dist/tui/app.d.ts +33 -0
  134. package/dist/tui/app.d.ts.map +1 -0
  135. package/dist/tui/app.js +71 -0
  136. package/dist/tui/app.js.map +1 -0
  137. package/dist/tui/components.d.ts +110 -0
  138. package/dist/tui/components.d.ts.map +1 -0
  139. package/dist/tui/components.js +118 -0
  140. package/dist/tui/components.js.map +1 -0
  141. package/dist/tui/index.d.ts +30 -0
  142. package/dist/tui/index.d.ts.map +1 -0
  143. package/dist/tui/index.js +95 -0
  144. package/dist/tui/index.js.map +1 -0
  145. package/dist/tui/keymap.d.ts +33 -0
  146. package/dist/tui/keymap.d.ts.map +1 -0
  147. package/dist/tui/keymap.js +49 -0
  148. package/dist/tui/keymap.js.map +1 -0
  149. package/dist/tui/nav.d.ts +29 -0
  150. package/dist/tui/nav.d.ts.map +1 -0
  151. package/dist/tui/nav.js +39 -0
  152. package/dist/tui/nav.js.map +1 -0
  153. package/dist/tui/sanitize.d.ts +25 -0
  154. package/dist/tui/sanitize.d.ts.map +1 -0
  155. package/dist/tui/sanitize.js +36 -0
  156. package/dist/tui/sanitize.js.map +1 -0
  157. package/dist/tui/theme.d.ts +32 -0
  158. package/dist/tui/theme.d.ts.map +1 -0
  159. package/dist/tui/theme.js +63 -0
  160. package/dist/tui/theme.js.map +1 -0
  161. package/dist/tui/views/agents.d.ts +67 -0
  162. package/dist/tui/views/agents.d.ts.map +1 -0
  163. package/dist/tui/views/agents.js +231 -0
  164. package/dist/tui/views/agents.js.map +1 -0
  165. package/dist/tui/views/index.d.ts +93 -0
  166. package/dist/tui/views/index.d.ts.map +1 -0
  167. package/dist/tui/views/index.js +150 -0
  168. package/dist/tui/views/index.js.map +1 -0
  169. package/dist/tui/views/registry.d.ts +22 -0
  170. package/dist/tui/views/registry.d.ts.map +1 -0
  171. package/dist/tui/views/registry.js +110 -0
  172. package/dist/tui/views/registry.js.map +1 -0
  173. package/dist/utils/agent/backoff.d.ts +31 -0
  174. package/dist/utils/agent/backoff.d.ts.map +1 -0
  175. package/dist/utils/agent/backoff.js +51 -0
  176. package/dist/utils/agent/backoff.js.map +1 -0
  177. package/dist/utils/agent/markers.d.ts +87 -0
  178. package/dist/utils/agent/markers.d.ts.map +1 -0
  179. package/dist/utils/agent/markers.js +147 -0
  180. package/dist/utils/agent/markers.js.map +1 -0
  181. package/dist/utils/agent/review.d.ts +67 -0
  182. package/dist/utils/agent/review.d.ts.map +1 -0
  183. package/dist/utils/agent/review.js +305 -0
  184. package/dist/utils/agent/review.js.map +1 -0
  185. package/dist/utils/agent/spawn-agent.d.ts +117 -0
  186. package/dist/utils/agent/spawn-agent.d.ts.map +1 -0
  187. package/dist/utils/agent/spawn-agent.js +177 -0
  188. package/dist/utils/agent/spawn-agent.js.map +1 -0
  189. package/dist/utils/agent/task.d.ts +101 -0
  190. package/dist/utils/agent/task.d.ts.map +1 -0
  191. package/dist/utils/agent/task.js +357 -0
  192. package/dist/utils/agent/task.js.map +1 -0
  193. package/dist/utils/agent/verify.d.ts +47 -0
  194. package/dist/utils/agent/verify.d.ts.map +1 -0
  195. package/dist/utils/agent/verify.js +144 -0
  196. package/dist/utils/agent/verify.js.map +1 -0
  197. package/dist/utils/agent-detector.d.ts +48 -0
  198. package/dist/utils/agent-detector.d.ts.map +1 -0
  199. package/dist/utils/agent-detector.js +74 -0
  200. package/dist/utils/agent-detector.js.map +1 -0
  201. package/dist/utils/agent-profile-stage.d.ts +70 -0
  202. package/dist/utils/agent-profile-stage.d.ts.map +1 -0
  203. package/dist/utils/agent-profile-stage.js +153 -0
  204. package/dist/utils/agent-profile-stage.js.map +1 -0
  205. package/dist/utils/agent-profiles.d.ts +27 -0
  206. package/dist/utils/agent-profiles.d.ts.map +1 -0
  207. package/dist/utils/agent-profiles.js +61 -0
  208. package/dist/utils/agent-profiles.js.map +1 -0
  209. package/dist/utils/checkpoint-api.d.ts +1 -1
  210. package/dist/utils/checkpoint-api.js +1 -1
  211. package/dist/utils/checkpoint-env.d.ts +1 -1
  212. package/dist/utils/checkpoint-env.js +2 -2
  213. package/dist/utils/checkpoint-env.js.map +1 -1
  214. package/dist/utils/checkpoint-scaffold.d.ts +1 -1
  215. package/dist/utils/checkpoint-scaffold.js +1 -1
  216. package/dist/utils/cli-kit/browser.d.ts +24 -0
  217. package/dist/utils/cli-kit/browser.d.ts.map +1 -0
  218. package/dist/utils/cli-kit/browser.js +58 -0
  219. package/dist/utils/cli-kit/browser.js.map +1 -0
  220. package/dist/utils/cli-kit/claim-polling.d.ts +18 -0
  221. package/dist/utils/cli-kit/claim-polling.d.ts.map +1 -0
  222. package/dist/utils/{claim-polling.js → cli-kit/claim-polling.js} +19 -26
  223. package/dist/utils/cli-kit/claim-polling.js.map +1 -0
  224. package/dist/utils/cli-kit/diagnostics.d.ts +9 -0
  225. package/dist/utils/cli-kit/diagnostics.d.ts.map +1 -0
  226. package/dist/utils/cli-kit/diagnostics.js +11 -0
  227. package/dist/utils/cli-kit/diagnostics.js.map +1 -0
  228. package/dist/utils/cli-kit/fs-safe.d.ts +14 -0
  229. package/dist/utils/cli-kit/fs-safe.d.ts.map +1 -0
  230. package/dist/utils/cli-kit/fs-safe.js +20 -0
  231. package/dist/utils/cli-kit/fs-safe.js.map +1 -0
  232. package/dist/utils/cli-kit/index.d.ts +15 -0
  233. package/dist/utils/cli-kit/index.d.ts.map +1 -0
  234. package/dist/utils/cli-kit/index.js +10 -0
  235. package/dist/utils/cli-kit/index.js.map +1 -0
  236. package/dist/utils/cli-kit/json-file.d.ts +21 -0
  237. package/dist/utils/cli-kit/json-file.d.ts.map +1 -0
  238. package/dist/utils/cli-kit/json-file.js +51 -0
  239. package/dist/utils/cli-kit/json-file.js.map +1 -0
  240. package/dist/utils/cli-kit/marker-block.d.ts +26 -0
  241. package/dist/utils/cli-kit/marker-block.d.ts.map +1 -0
  242. package/dist/utils/cli-kit/marker-block.js +61 -0
  243. package/dist/utils/cli-kit/marker-block.js.map +1 -0
  244. package/dist/utils/cli-kit/paths.d.ts +15 -0
  245. package/dist/utils/cli-kit/paths.d.ts.map +1 -0
  246. package/dist/utils/cli-kit/paths.js +21 -0
  247. package/dist/utils/cli-kit/paths.js.map +1 -0
  248. package/dist/utils/cli-kit/secure-storage.d.ts +14 -0
  249. package/dist/utils/cli-kit/secure-storage.d.ts.map +1 -0
  250. package/dist/utils/cli-kit/secure-storage.js +20 -0
  251. package/dist/utils/cli-kit/secure-storage.js.map +1 -0
  252. package/dist/utils/cli-kit/step-report.d.ts +16 -0
  253. package/dist/utils/cli-kit/step-report.d.ts.map +1 -0
  254. package/dist/utils/cli-kit/step-report.js +36 -0
  255. package/dist/utils/cli-kit/step-report.js.map +1 -0
  256. package/dist/utils/dco/agent-metadata.d.ts +1 -1
  257. package/dist/utils/dco/agent-metadata.js +1 -1
  258. package/dist/utils/dco/agent-metadata.js.map +1 -1
  259. package/dist/utils/dco/claude-config.d.ts +18 -14
  260. package/dist/utils/dco/claude-config.d.ts.map +1 -1
  261. package/dist/utils/dco/claude-config.js +31 -97
  262. package/dist/utils/dco/claude-config.js.map +1 -1
  263. package/dist/utils/dco/dispatch.d.ts +134 -0
  264. package/dist/utils/dco/dispatch.d.ts.map +1 -0
  265. package/dist/utils/dco/dispatch.js +399 -0
  266. package/dist/utils/dco/dispatch.js.map +1 -0
  267. package/dist/utils/dco/fix.d.ts +122 -0
  268. package/dist/utils/dco/fix.d.ts.map +1 -0
  269. package/dist/utils/dco/fix.js +560 -0
  270. package/dist/utils/dco/fix.js.map +1 -0
  271. package/dist/utils/dco/git-config.d.ts.map +1 -1
  272. package/dist/utils/dco/git-config.js +5 -3
  273. package/dist/utils/dco/git-config.js.map +1 -1
  274. package/dist/utils/dco/github.d.ts +101 -0
  275. package/dist/utils/dco/github.d.ts.map +1 -1
  276. package/dist/utils/dco/github.js +133 -0
  277. package/dist/utils/dco/github.js.map +1 -1
  278. package/dist/utils/dco/paths.d.ts +1 -8
  279. package/dist/utils/dco/paths.d.ts.map +1 -1
  280. package/dist/utils/dco/paths.js +3 -12
  281. package/dist/utils/dco/paths.js.map +1 -1
  282. package/dist/utils/dco/render.d.ts +1 -1
  283. package/dist/utils/dco/render.d.ts.map +1 -1
  284. package/dist/utils/dco/render.js +4 -21
  285. package/dist/utils/dco/render.js.map +1 -1
  286. package/dist/utils/dco/resolve-agent.d.ts +54 -0
  287. package/dist/utils/dco/resolve-agent.d.ts.map +1 -0
  288. package/dist/utils/dco/resolve-agent.js +164 -0
  289. package/dist/utils/dco/resolve-agent.js.map +1 -0
  290. package/dist/utils/dco/setup.d.ts +10 -7
  291. package/dist/utils/dco/setup.d.ts.map +1 -1
  292. package/dist/utils/dco/setup.js +264 -200
  293. package/dist/utils/dco/setup.js.map +1 -1
  294. package/dist/utils/dco/signing-key-writer.d.ts +40 -0
  295. package/dist/utils/dco/signing-key-writer.d.ts.map +1 -0
  296. package/dist/utils/dco/signing-key-writer.js +76 -0
  297. package/dist/utils/dco/signing-key-writer.js.map +1 -0
  298. package/dist/utils/dco/ssh-key.d.ts +50 -0
  299. package/dist/utils/dco/ssh-key.d.ts.map +1 -1
  300. package/dist/utils/dco/ssh-key.js +129 -8
  301. package/dist/utils/dco/ssh-key.js.map +1 -1
  302. package/dist/utils/dco/status.d.ts +1 -1
  303. package/dist/utils/dco/status.d.ts.map +1 -1
  304. package/dist/utils/dco/status.js +3 -3
  305. package/dist/utils/dco/status.js.map +1 -1
  306. package/dist/utils/dco/verify.d.ts +170 -0
  307. package/dist/utils/dco/verify.d.ts.map +1 -0
  308. package/dist/utils/dco/verify.js +550 -0
  309. package/dist/utils/dco/verify.js.map +1 -0
  310. package/dist/utils/dependency-installer.d.ts +37 -0
  311. package/dist/utils/dependency-installer.d.ts.map +1 -0
  312. package/dist/utils/dependency-installer.js +32 -0
  313. package/dist/utils/dependency-installer.js.map +1 -0
  314. package/dist/utils/github-credential-stage.d.ts +87 -0
  315. package/dist/utils/github-credential-stage.d.ts.map +1 -0
  316. package/dist/utils/github-credential-stage.js +168 -0
  317. package/dist/utils/github-credential-stage.js.map +1 -0
  318. package/dist/utils/github-credential.d.ts +160 -0
  319. package/dist/utils/github-credential.d.ts.map +1 -0
  320. package/dist/utils/github-credential.js +308 -0
  321. package/dist/utils/github-credential.js.map +1 -0
  322. package/dist/utils/gitignore.d.ts +17 -0
  323. package/dist/utils/gitignore.d.ts.map +1 -0
  324. package/dist/utils/gitignore.js +40 -0
  325. package/dist/utils/gitignore.js.map +1 -0
  326. package/dist/utils/hub-config.d.ts +21 -0
  327. package/dist/utils/hub-config.d.ts.map +1 -0
  328. package/dist/utils/hub-config.js +28 -0
  329. package/dist/utils/hub-config.js.map +1 -0
  330. package/dist/utils/identity-heal.d.ts +16 -0
  331. package/dist/utils/identity-heal.d.ts.map +1 -0
  332. package/dist/utils/identity-heal.js +37 -0
  333. package/dist/utils/identity-heal.js.map +1 -0
  334. package/dist/utils/init/pipeline.d.ts +74 -0
  335. package/dist/utils/init/pipeline.d.ts.map +1 -0
  336. package/dist/utils/init/pipeline.js +96 -0
  337. package/dist/utils/init/pipeline.js.map +1 -0
  338. package/dist/utils/poll.d.ts +15 -1
  339. package/dist/utils/poll.d.ts.map +1 -1
  340. package/dist/utils/poll.js +6 -3
  341. package/dist/utils/poll.js.map +1 -1
  342. package/dist/utils/register-agent-identity.d.ts +67 -0
  343. package/dist/utils/register-agent-identity.d.ts.map +1 -0
  344. package/dist/utils/register-agent-identity.js +34 -0
  345. package/dist/utils/register-agent-identity.js.map +1 -0
  346. package/dist/utils/review/did-web-key.d.ts +34 -0
  347. package/dist/utils/review/did-web-key.d.ts.map +1 -0
  348. package/dist/utils/review/did-web-key.js +104 -0
  349. package/dist/utils/review/did-web-key.js.map +1 -0
  350. package/dist/utils/review/load-registry.d.ts +33 -0
  351. package/dist/utils/review/load-registry.d.ts.map +1 -0
  352. package/dist/utils/review/load-registry.js +62 -0
  353. package/dist/utils/review/load-registry.js.map +1 -0
  354. package/dist/utils/review/verdict-verify.d.ts +43 -0
  355. package/dist/utils/review/verdict-verify.d.ts.map +1 -0
  356. package/dist/utils/review/verdict-verify.js +53 -0
  357. package/dist/utils/review/verdict-verify.js.map +1 -0
  358. package/dist/utils/review-registry-writer.d.ts +52 -0
  359. package/dist/utils/review-registry-writer.d.ts.map +1 -0
  360. package/dist/utils/review-registry-writer.js +79 -0
  361. package/dist/utils/review-registry-writer.js.map +1 -0
  362. package/dist/utils/should-install-dependency.d.ts +17 -0
  363. package/dist/utils/should-install-dependency.d.ts.map +1 -0
  364. package/dist/utils/should-install-dependency.js +25 -0
  365. package/dist/utils/should-install-dependency.js.map +1 -0
  366. package/dist/utils/tool-readiness.d.ts +57 -0
  367. package/dist/utils/tool-readiness.d.ts.map +1 -0
  368. package/dist/utils/tool-readiness.js +114 -0
  369. package/dist/utils/tool-readiness.js.map +1 -0
  370. package/dist/utils/which.d.ts +2 -0
  371. package/dist/utils/which.d.ts.map +1 -0
  372. package/dist/utils/which.js +22 -0
  373. package/dist/utils/which.js.map +1 -0
  374. package/dist/version.d.ts +15 -0
  375. package/dist/version.d.ts.map +1 -0
  376. package/dist/version.js +29 -0
  377. package/dist/version.js.map +1 -0
  378. package/package.json +19 -6
  379. package/dist/utils/claim-polling.d.ts +0 -21
  380. package/dist/utils/claim-polling.d.ts.map +0 -1
  381. package/dist/utils/claim-polling.js.map +0 -1
  382. package/dist/utils/dco/fs-safe.d.ts +0 -14
  383. package/dist/utils/dco/fs-safe.d.ts.map +0 -1
  384. package/dist/utils/dco/fs-safe.js +0 -20
  385. package/dist/utils/dco/fs-safe.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verdict-verify.js","sourceRoot":"","sources":["../../../src/utils/review/verdict-verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EACL,qBAAqB,GAEtB,MAAM,0BAA0B,CAAC;AASlC;;;;;;;GAOG;AACH,MAAM,UAAU,6BAA6B,CAC3C,IAAuB,EACvB,YAAoB;IAEpB,IAAI,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;QACjE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,wBAAwB,CAAC,IAAI,EAAE,YAAY,CAAC;QACjD,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;QACjB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,oBAAoB,GAAG,4CAA4C,CAAC;AAE1E;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAgB;IACzD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { type ReviewerRegistry, type ReviewerRegistryEntry } from "@kya-os/contracts/review";
2
+ /**
3
+ * Generates/updates `~/.mcpi/review-registry.json` from the profiles just
4
+ * created by `kya-os init`'s agent-profile stage. Deliberately MERGE-ONLY:
5
+ * `orgId`/`orgRootDid`/`repos`/`quorumN` are org-wide values a single
6
+ * developer's `init` run has no way to know, so a machine with no existing
7
+ * registry gets no invented one -- only entries in an ALREADY-PRESENT file
8
+ * are ever added or updated. A failed validation is reported, never
9
+ * silently written (a bug, not a warning, per the spec).
10
+ */
11
+ export declare function reviewRegistryPath(): string;
12
+ export type MergeReviewRegistryResult = {
13
+ status: "written";
14
+ path: string;
15
+ registry: ReviewerRegistry;
16
+ } | {
17
+ status: "skipped-no-existing-registry";
18
+ path: string;
19
+ } | {
20
+ status: "invalid-existing";
21
+ path: string;
22
+ error: string;
23
+ } | {
24
+ status: "invalid-result";
25
+ path: string;
26
+ error: string;
27
+ };
28
+ export interface MergeReviewRegistryOptions {
29
+ path?: string;
30
+ /**
31
+ * agentDids (from `newEntries`) to promote to `fixes: true` IF their
32
+ * githubLogin has no `fixes: true` entry anywhere in the MERGED registry
33
+ * (existing entries plus this run's, not just this run's own batch).
34
+ * Never demotes an existing fixer and never gives one person two.
35
+ *
36
+ * This decision belongs here, not in the caller: a caller building
37
+ * `newEntries` sees only its own batch (e.g. "the first profile created
38
+ * THIS run"), so computing `fixes` there is correct on a machine's first
39
+ * `kya-os init` but wrong on every later run that adds one more profile
40
+ * for someone who already has a fixer -- the caller has no way to know
41
+ * that without re-reading the file this function already loads.
42
+ */
43
+ designateFixerCandidates?: string[];
44
+ }
45
+ /**
46
+ * Merge freshly generated profile entries into the on-disk review registry,
47
+ * keyed by `agentDid`: a matching entry is updated in place (same array
48
+ * position), a new one is appended, and every entry this run didn't touch
49
+ * (other people's, hand-added) is preserved untouched.
50
+ */
51
+ export declare function mergeReviewRegistry(newEntries: ReviewerRegistryEntry[], options?: MergeReviewRegistryOptions): MergeReviewRegistryResult;
52
+ //# sourceMappingURL=review-registry-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-registry-writer.d.ts","sourceRoot":"","sources":["../../src/utils/review-registry-writer.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC3B,MAAM,0BAA0B,CAAC;AAGlC;;;;;;;;GAQG;AAEH,wBAAgB,kBAAkB,IAAI,MAAM,CAK3C;AAED,MAAM,MAAM,yBAAyB,GACjC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,GAC/D;IAAE,MAAM,EAAE,8BAA8B,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,MAAM,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;;OAYG;IACH,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,qBAAqB,EAAE,EACnC,OAAO,GAAE,0BAA+B,GACvC,yBAAyB,CAgE3B"}
@@ -0,0 +1,79 @@
1
+ import { existsSync, readFileSync } from "fs";
2
+ import { join, resolve } from "path";
3
+ import { ReviewerRegistrySchema, } from "@kya-os/contracts/review";
4
+ import { stateDir, writeFileAtomicSafe } from "./cli-kit/index.js";
5
+ /**
6
+ * Generates/updates `~/.mcpi/review-registry.json` from the profiles just
7
+ * created by `kya-os init`'s agent-profile stage. Deliberately MERGE-ONLY:
8
+ * `orgId`/`orgRootDid`/`repos`/`quorumN` are org-wide values a single
9
+ * developer's `init` run has no way to know, so a machine with no existing
10
+ * registry gets no invented one -- only entries in an ALREADY-PRESENT file
11
+ * are ever added or updated. A failed validation is reported, never
12
+ * silently written (a bug, not a warning, per the spec).
13
+ */
14
+ export function reviewRegistryPath() {
15
+ return resolve(process.env.MCPI_REVIEW_REGISTRY_PATH ||
16
+ join(stateDir("mcpi"), "review-registry.json"));
17
+ }
18
+ /**
19
+ * Merge freshly generated profile entries into the on-disk review registry,
20
+ * keyed by `agentDid`: a matching entry is updated in place (same array
21
+ * position), a new one is appended, and every entry this run didn't touch
22
+ * (other people's, hand-added) is preserved untouched.
23
+ */
24
+ export function mergeReviewRegistry(newEntries, options = {}) {
25
+ const path = options.path ?? reviewRegistryPath();
26
+ if (!existsSync(path)) {
27
+ return { status: "skipped-no-existing-registry", path };
28
+ }
29
+ let parsed;
30
+ try {
31
+ parsed = JSON.parse(readFileSync(path, "utf-8"));
32
+ }
33
+ catch (error) {
34
+ return {
35
+ status: "invalid-existing",
36
+ path,
37
+ error: `Could not parse ${path}: ${error instanceof Error ? error.message : String(error)}`,
38
+ };
39
+ }
40
+ const existing = ReviewerRegistrySchema.safeParse(parsed);
41
+ if (!existing.success) {
42
+ return {
43
+ status: "invalid-existing",
44
+ path,
45
+ error: `${path} fails schema validation: ${existing.error.message}`,
46
+ };
47
+ }
48
+ const byDid = new Map(existing.data.entries.map((e) => [e.agentDid, e]));
49
+ for (const entry of newEntries) {
50
+ byDid.set(entry.agentDid, entry);
51
+ }
52
+ if (options.designateFixerCandidates) {
53
+ const fixerLoginSeen = new Set(Array.from(byDid.values())
54
+ .filter((e) => e.fixes)
55
+ .map((e) => e.githubLogin));
56
+ for (const did of options.designateFixerCandidates) {
57
+ const entry = byDid.get(did);
58
+ if (!entry || fixerLoginSeen.has(entry.githubLogin))
59
+ continue;
60
+ byDid.set(did, { ...entry, fixes: true });
61
+ fixerLoginSeen.add(entry.githubLogin);
62
+ }
63
+ }
64
+ const merged = {
65
+ ...existing.data,
66
+ entries: Array.from(byDid.values()),
67
+ };
68
+ const validated = ReviewerRegistrySchema.safeParse(merged);
69
+ if (!validated.success) {
70
+ return {
71
+ status: "invalid-result",
72
+ path,
73
+ error: `Generated review registry fails schema validation: ${validated.error.message}`,
74
+ };
75
+ }
76
+ writeFileAtomicSafe(path, JSON.stringify(validated.data, null, 2) + "\n");
77
+ return { status: "written", path, registry: validated.data };
78
+ }
79
+ //# sourceMappingURL=review-registry-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-registry-writer.js","sourceRoot":"","sources":["../../src/utils/review-registry-writer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Decides whether `kya-os init` should install the missing `@kya-os/mcp-i`
3
+ * dependency, given `--install`/`--no-install`/`--yes` and whether stdin is
4
+ * a TTY. Pure decision logic, deliberately separated from init.ts's dynamic
5
+ * `import("@kya-os/mcp-i")` retry (which stays inline there -- it exists to
6
+ * survive monorepo CI ordering and isn't itself a seam) so this tri-state
7
+ * flag interaction is exhaustively unit-testable on its own.
8
+ */
9
+ export interface ShouldInstallDependencyOptions {
10
+ /** true = --install, false = --no-install, undefined = neither passed. */
11
+ install?: boolean;
12
+ /** --yes: consents to installs only, never to registration/key decisions. */
13
+ yes?: boolean;
14
+ }
15
+ export type ConfirmInstallImpl = (message: string) => Promise<boolean>;
16
+ export declare function shouldInstallDependency(options: ShouldInstallDependencyOptions, isTTY: boolean, confirmImpl: ConfirmInstallImpl): Promise<boolean>;
17
+ //# sourceMappingURL=should-install-dependency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"should-install-dependency.d.ts","sourceRoot":"","sources":["../../src/utils/should-install-dependency.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,8BAA8B;IAC7C,0EAA0E;IAC1E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEvE,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,8BAA8B,EACvC,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,kBAAkB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAelB"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Decides whether `kya-os init` should install the missing `@kya-os/mcp-i`
3
+ * dependency, given `--install`/`--no-install`/`--yes` and whether stdin is
4
+ * a TTY. Pure decision logic, deliberately separated from init.ts's dynamic
5
+ * `import("@kya-os/mcp-i")` retry (which stays inline there -- it exists to
6
+ * survive monorepo CI ordering and isn't itself a seam) so this tri-state
7
+ * flag interaction is exhaustively unit-testable on its own.
8
+ */
9
+ export async function shouldInstallDependency(options, isTTY, confirmImpl) {
10
+ // --no-install always wins: an explicit "never" overrides even --yes.
11
+ if (options.install === false) {
12
+ return false;
13
+ }
14
+ if (!isTTY) {
15
+ // Non-TTY: keep today's behavior unless --install opted in (CI). --yes
16
+ // is a TTY-prompt shortcut and has no effect off a TTY.
17
+ return options.install === true;
18
+ }
19
+ // TTY: --yes or --install both skip the prompt with an implicit yes.
20
+ if (options.yes === true || options.install === true) {
21
+ return true;
22
+ }
23
+ return confirmImpl("Install @kya-os/mcp-i now?");
24
+ }
25
+ //# sourceMappingURL=should-install-dependency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"should-install-dependency.js","sourceRoot":"","sources":["../../src/utils/should-install-dependency.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAuC,EACvC,KAAc,EACd,WAA+B;IAE/B,sEAAsE;IACtE,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,uEAAuE;QACvE,wDAAwD;QACxD,OAAO,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC;IAClC,CAAC;IACD,qEAAqE;IACrE,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,WAAW,CAAC,4BAA4B,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Checks whether the external binaries init needs (`git`, `gh`, `claude`)
3
+ * are present, and for `gh` specifically, authenticated. Table-driven and
4
+ * fully injectable (`whichImpl`, `execImpl`) so every path is testable
5
+ * without touching the real filesystem, PATH, or network -- mirrors
6
+ * `packages/cli/src/utils/agent-detector.ts`'s detection-only contract:
7
+ * this module never executes a detected binary beyond a `--version`/
8
+ * `auth status` probe, and never spawns `gh auth login` itself (that is
9
+ * interactive and must be run by the user).
10
+ */
11
+ export type ToolKind = "git" | "gh" | "claude";
12
+ export interface ToolCheck {
13
+ tool: ToolKind;
14
+ found: boolean;
15
+ version?: string;
16
+ /** `gh` only: result of `gh auth status`. */
17
+ authenticated?: boolean;
18
+ /** Exact per-platform command (or instruction) to resolve this row. */
19
+ installHint: string;
20
+ }
21
+ export interface ExecResult {
22
+ stdout: string;
23
+ stderr: string;
24
+ code: number;
25
+ }
26
+ export type WhichImpl = (bin: string) => Promise<string | null>;
27
+ export type ExecImpl = (command: string, args: string[]) => Promise<ExecResult>;
28
+ export interface ToolReadinessDeps {
29
+ whichImpl: WhichImpl;
30
+ execImpl: ExecImpl;
31
+ platform: NodeJS.Platform;
32
+ }
33
+ /**
34
+ * Detect presence (and for `gh`, auth) of the requested tools. Never
35
+ * executes a detected binary beyond a `--version`/`auth status` probe.
36
+ */
37
+ export declare function checkTools(required: ToolKind[], deps?: Partial<ToolReadinessDeps>): Promise<ToolCheck[]>;
38
+ export interface RunToolReadinessGateOptions {
39
+ interactive: boolean;
40
+ required?: ToolKind[];
41
+ deps?: Partial<ToolReadinessDeps>;
42
+ /** Injectable confirm prompt; defaults to an inquirer confirm. */
43
+ confirmImpl?: (message: string) => Promise<boolean>;
44
+ }
45
+ export interface ToolReadinessGateResult {
46
+ checks: ToolCheck[];
47
+ /** Tools whose absence should stop init entirely (today: just `git`). */
48
+ fatalMissing: ToolKind[];
49
+ }
50
+ /**
51
+ * Run the readiness check and, in interactive mode on darwin, offer to run
52
+ * the brew install command for anything missing. Non-interactive (or
53
+ * non-darwin) callers get the checks back untouched -- no prompt, no
54
+ * install, ever attempted.
55
+ */
56
+ export declare function runToolReadinessGate(options: RunToolReadinessGateOptions): Promise<ToolReadinessGateResult>;
57
+ //# sourceMappingURL=tool-readiness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-readiness.d.ts","sourceRoot":"","sources":["../../src/utils/tool-readiness.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,IAAI,GAAG,QAAQ,CAAC;AAE/C,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAChE,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAEhF,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC3B;AAiDD;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,QAAQ,EAAE,EACpB,IAAI,GAAE,OAAO,CAAC,iBAAiB,CAAM,GACpC,OAAO,CAAC,SAAS,EAAE,CAAC,CAmCtB;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClC,kEAAkE;IAClE,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,yEAAyE;IACzE,YAAY,EAAE,QAAQ,EAAE,CAAC;CAC1B;AAYD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,uBAAuB,CAAC,CA4BlC"}
@@ -0,0 +1,114 @@
1
+ import { execFile } from "child_process";
2
+ import { promisify } from "util";
3
+ import { defaultWhich } from "./which.js";
4
+ const execFileAsync = promisify(execFile);
5
+ async function defaultExec(command, args) {
6
+ try {
7
+ const { stdout, stderr } = await execFileAsync(command, args, {
8
+ encoding: "utf8",
9
+ });
10
+ return { stdout, stderr, code: 0 };
11
+ }
12
+ catch (error) {
13
+ const err = error;
14
+ return {
15
+ stdout: err.stdout ?? "",
16
+ stderr: err.stderr ?? err.message ?? "",
17
+ code: typeof err.code === "number" ? err.code : 1,
18
+ };
19
+ }
20
+ }
21
+ function defaultDeps() {
22
+ return { whichImpl: defaultWhich, execImpl: defaultExec, platform: process.platform };
23
+ }
24
+ function installHintFor(tool, platform) {
25
+ const darwin = platform === "darwin";
26
+ switch (tool) {
27
+ case "git":
28
+ return darwin
29
+ ? "brew install git"
30
+ : "Install git: https://git-scm.com/downloads";
31
+ case "gh":
32
+ return darwin
33
+ ? "brew install gh"
34
+ : "Install gh: https://cli.github.com";
35
+ case "claude":
36
+ return darwin
37
+ ? "brew install --cask claude-code"
38
+ : "Install Claude Code: https://docs.claude.com/en/docs/claude-code";
39
+ }
40
+ }
41
+ /**
42
+ * Detect presence (and for `gh`, auth) of the requested tools. Never
43
+ * executes a detected binary beyond a `--version`/`auth status` probe.
44
+ */
45
+ export async function checkTools(required, deps = {}) {
46
+ const { whichImpl, execImpl, platform } = { ...defaultDeps(), ...deps };
47
+ const results = [];
48
+ for (const tool of required) {
49
+ const binPath = await whichImpl(tool);
50
+ const found = Boolean(binPath);
51
+ let version;
52
+ let authenticated;
53
+ let installHint = installHintFor(tool, platform);
54
+ if (found) {
55
+ const versionResult = await execImpl(tool, ["--version"]);
56
+ if (versionResult.code === 0) {
57
+ version = versionResult.stdout.trim().split("\n")[0] || undefined;
58
+ }
59
+ if (tool === "gh") {
60
+ const authResult = await execImpl("gh", [
61
+ "auth",
62
+ "status",
63
+ "--hostname",
64
+ "github.com",
65
+ ]);
66
+ authenticated = authResult.code === 0;
67
+ if (!authenticated) {
68
+ installHint = "gh auth login";
69
+ }
70
+ }
71
+ }
72
+ results.push({ tool, found, version, authenticated, installHint });
73
+ }
74
+ return results;
75
+ }
76
+ const FATAL_IF_MISSING = ["git"];
77
+ async function defaultConfirm(message) {
78
+ const inquirer = (await import("inquirer")).default;
79
+ const { answer } = await inquirer.prompt([
80
+ { type: "confirm", name: "answer", message, default: true },
81
+ ]);
82
+ return answer;
83
+ }
84
+ /**
85
+ * Run the readiness check and, in interactive mode on darwin, offer to run
86
+ * the brew install command for anything missing. Non-interactive (or
87
+ * non-darwin) callers get the checks back untouched -- no prompt, no
88
+ * install, ever attempted.
89
+ */
90
+ export async function runToolReadinessGate(options) {
91
+ const required = options.required ?? ["git", "gh", "claude"];
92
+ const deps = { ...defaultDeps(), ...options.deps };
93
+ const checks = await checkTools(required, deps);
94
+ if (options.interactive && deps.platform === "darwin") {
95
+ const confirmImpl = options.confirmImpl ?? defaultConfirm;
96
+ for (let i = 0; i < checks.length; i++) {
97
+ const check = checks[i];
98
+ if (!check.found && check.installHint.startsWith("brew ")) {
99
+ const shouldInstall = await confirmImpl(`${check.tool} was not found. Run \`${check.installHint}\` now?`);
100
+ if (shouldInstall) {
101
+ const [cmd, ...args] = check.installHint.split(" ");
102
+ await deps.execImpl(cmd, args);
103
+ const [rechecked] = await checkTools([check.tool], deps);
104
+ checks[i] = rechecked;
105
+ }
106
+ }
107
+ }
108
+ }
109
+ const fatalMissing = checks
110
+ .filter((c) => FATAL_IF_MISSING.includes(c.tool) && !c.found)
111
+ .map((c) => c.tool);
112
+ return { checks, fatalMissing };
113
+ }
114
+ //# sourceMappingURL=tool-readiness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-readiness.js","sourceRoot":"","sources":["../../src/utils/tool-readiness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function defaultWhich(bin: string): Promise<string | null>;
2
+ //# sourceMappingURL=which.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"which.d.ts","sourceRoot":"","sources":["../../src/utils/which.ts"],"names":[],"mappings":"AAcA,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYtE"}
@@ -0,0 +1,22 @@
1
+ import { execFile } from "child_process";
2
+ import { promisify } from "util";
3
+ /**
4
+ * Resolve a binary's path on PATH, cross-platform (`which` on POSIX,
5
+ * `where` on Windows). Returns null rather than throwing when the binary
6
+ * isn't found -- that's the expected, non-error outcome for a presence
7
+ * check, not a failure to report. Shared by tool-readiness.ts and
8
+ * agent-detector.ts, both of which need this exact resolution as their
9
+ * default injectable `whichImpl`.
10
+ */
11
+ const execFileAsync = promisify(execFile);
12
+ export async function defaultWhich(bin) {
13
+ try {
14
+ const { stdout } = await execFileAsync(process.platform === "win32" ? "where" : "which", [bin], { encoding: "utf8" });
15
+ const path = stdout.split("\n")[0]?.trim();
16
+ return path || null;
17
+ }
18
+ catch {
19
+ return null;
20
+ }
21
+ }
22
+ //# sourceMappingURL=which.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"which.js","sourceRoot":"","sources":["../../src/utils/which.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC;;;;;;;GAOG;AAEH,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAW;IAC5C,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CACpC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAChD,CAAC,GAAG,CAAC,EACL,EAAE,QAAQ,EAAE,MAAM,EAAE,CACrB,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QAC3C,OAAO,IAAI,IAAI,IAAI,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @kya-os/cli version, read from package.json at module load time.
3
+ *
4
+ * All three bins (`kya-os`, `mcpi`, `dco`) report this so a `.version()`
5
+ * literal can never drift from the published package version the way
6
+ * "1.2.2" (index.prod.ts) and "1.0.0" (index.ts) previously did.
7
+ *
8
+ * Mirrors packages/compute/src/version.ts's approach: readFileSync +
9
+ * JSON.parse rather than a JSON import, since the latter needs an import
10
+ * attribute (`with { type: "json" }`) whose supported syntax has moved
11
+ * across Node versions.
12
+ */
13
+ declare let cliVersion: string;
14
+ export { cliVersion };
15
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,QAAA,IAAI,UAAU,QAAU,CAAC;AAYzB,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @kya-os/cli version, read from package.json at module load time.
3
+ *
4
+ * All three bins (`kya-os`, `mcpi`, `dco`) report this so a `.version()`
5
+ * literal can never drift from the published package version the way
6
+ * "1.2.2" (index.prod.ts) and "1.0.0" (index.ts) previously did.
7
+ *
8
+ * Mirrors packages/compute/src/version.ts's approach: readFileSync +
9
+ * JSON.parse rather than a JSON import, since the latter needs an import
10
+ * attribute (`with { type: "json" }`) whose supported syntax has moved
11
+ * across Node versions.
12
+ */
13
+ import { readFileSync } from "fs";
14
+ import { dirname, join } from "path";
15
+ import { fileURLToPath } from "url";
16
+ let cliVersion = "0.0.0";
17
+ try {
18
+ const pkgPath = join(dirname(fileURLToPath(import.meta.url)), "..", "package.json");
19
+ const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
20
+ const version = pkg?.version;
21
+ if (typeof version === "string") {
22
+ cliVersion = version;
23
+ }
24
+ }
25
+ catch {
26
+ // Fallback — non-fatal (e.g., running from a bundled context)
27
+ }
28
+ export { cliVersion };
29
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,IAAI,UAAU,GAAG,OAAO,CAAC;AACzB,IAAI,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IACpF,MAAM,GAAG,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,MAAM,OAAO,GAAI,GAAoC,EAAE,OAAO,CAAC;IAC/D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,UAAU,GAAG,OAAO,CAAC;IACvB,CAAC;AACH,CAAC;AAAC,MAAM,CAAC;IACP,8DAA8D;AAChE,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kya-os/cli",
3
- "version": "1.8.1",
3
+ "version": "1.8.3",
4
4
  "description": "CLI for MCP-I setup and management",
5
5
  "keywords": [
6
6
  "cli",
@@ -19,14 +19,16 @@
19
19
  "main": "dist/index.js",
20
20
  "type": "module",
21
21
  "bin": {
22
- "mcpi": "./dist/index.js"
22
+ "kya-os": "./dist/index.js",
23
+ "mcpi": "./dist/index.js",
24
+ "dco": "./dist/dco.js"
23
25
  },
24
26
  "files": [
25
27
  "dist",
26
28
  "templates"
27
29
  ],
28
30
  "scripts": {
29
- "build": "rm -f tsconfig.build.tsbuildinfo && tsc -p tsconfig.build.json && mv dist/index.prod.js dist/index.js && mv dist/index.prod.d.ts dist/index.d.ts && rm -f dist/index.prod.* && node scripts/fix-esm-imports.js && chmod +x dist/index.js",
31
+ "build": "rm -f tsconfig.build.tsbuildinfo && tsc -p tsconfig.build.json && mv dist/index.prod.js dist/index.js && mv dist/index.prod.d.ts dist/index.d.ts && rm -f dist/index.prod.* && node scripts/fix-esm-imports.js && chmod +x dist/index.js dist/dco.js && node scripts/smoke-test-dist.js",
30
32
  "dev": "tsx src/index.ts",
31
33
  "clean": "rm -rf dist",
32
34
  "prepublishOnly": "npm run clean && npm run build && node ../create-mcpi-app/scripts/validate-dependencies.js",
@@ -42,7 +44,7 @@
42
44
  },
43
45
  "dependencies": {
44
46
  "@kya-os/contracts": "^1.10.0",
45
- "@kya-os/mcp": "1.11.0",
47
+ "@kya-os/mcp": "^1.14.0",
46
48
  "@kya-os/mcp-i": "^1.12.0",
47
49
  "boxen": "^8.0.1",
48
50
  "chalk": "^5.3.0",
@@ -52,10 +54,12 @@
52
54
  "gradient-string": "^3.0.0",
53
55
  "inquirer": "^9.2.23",
54
56
  "jose": "^5.10.0",
57
+ "json-canonicalize": "2.0.0",
55
58
  "open": "^10.1.2",
56
59
  "ora": "^8.0.1",
57
60
  "terminal-image": "^3.1.1",
58
- "zod": "^3.25.67"
61
+ "zod": "^3.25.67",
62
+ "ws": "^8.20.1"
59
63
  },
60
64
  "devDependencies": {
61
65
  "@types/figlet": "^1.7.0",
@@ -64,9 +68,18 @@
64
68
  "@vitest/coverage-v8": "^4.0.18",
65
69
  "tsx": "^4.0.0",
66
70
  "typescript": "^5.0.0",
67
- "vitest": "^4.0.18"
71
+ "vitest": "^4.0.18",
72
+ "@types/better-sqlite3": "^7.6.11",
73
+ "@types/react": "^18.3.12",
74
+ "@types/ws": "^8.5.13",
75
+ "ink-testing-library": "^4.0.0"
68
76
  },
69
77
  "engines": {
70
78
  "node": ">=20.0.0"
79
+ },
80
+ "optionalDependencies": {
81
+ "better-sqlite3": "^11.7.0",
82
+ "ink": "^5.1.0",
83
+ "react": "^18.3.1"
71
84
  }
72
85
  }
@@ -1,21 +0,0 @@
1
- /**
2
- * Options for claim polling
3
- */
4
- export interface ClaimPollingOptions {
5
- verbose?: boolean;
6
- maxAttempts?: number;
7
- pollInterval?: number;
8
- }
9
- /**
10
- * Poll for agent claim status
11
- *
12
- * Polls the KTA API to check if an agent has been claimed.
13
- * Returns true when claimed, false if timeout or interrupted.
14
- *
15
- * @param agentName - The agent's name (slug) to check
16
- * @param did - The agent's DID
17
- * @param endpoint - API endpoint URL (default: https://knowthat.ai)
18
- * @param options - Polling options
19
- */
20
- export declare function pollForClaimStatus(agentName: string, did: string, endpoint?: string, options?: ClaimPollingOptions): Promise<boolean>;
21
- //# sourceMappingURL=claim-polling.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claim-polling.d.ts","sourceRoot":"","sources":["../../src/utils/claim-polling.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,MAA8B,EACxC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,OAAO,CAAC,CA4GlB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"claim-polling.js","sourceRoot":"","sources":["../../src/utils/claim-polling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AAWtB;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAiB,EACjB,GAAW,EACX,WAAmB,qBAAqB,EACxC,UAA+B,EAAE;IAEjC,MAAM,EACJ,OAAO,GAAG,KAAK,EACf,WAAW,GAAG,EAAE,EAAE,kCAAkC;IACpD,YAAY,GAAG,IAAI,EAAE,YAAY;MAClC,GAAG,OAAO,CAAC;IAEZ,MAAM,OAAO,GAAG,GAAG,CAAC;QAClB,IAAI,EAAE,wCAAwC;QAC9C,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEX,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,2CAA2C;IAC3C,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,WAAW,GAAG,IAAI,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAEtC,IAAI,CAAC;QACH,OAAO,QAAQ,GAAG,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,cAAc,GAAG,kBAAkB,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAEzF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE;oBACtD,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE;wBACP,YAAY,EAAE,YAAY;wBAC1B,MAAM,EAAE,kBAAkB;qBAC3B;iBACF,CAAC,CAAC;gBAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBAChB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAM/B,CAAC;oBAEF,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;wBACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzD,CAAC;oBAED,kDAAkD;oBAClD,IACE,IAAI;wBACJ,CAAC,IAAI,CAAC,MAAM;4BACV,IAAI,CAAC,MAAM,KAAK,QAAQ;4BACxB,IAAI,CAAC,KAAK;4BACV,IAAI,CAAC,SAAS;4BACd,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,EACzB,CAAC;wBACD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;wBAC9D,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;wBAClD,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;qBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnC,+DAA+D;oBAC/D,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,CAAC;oBAChF,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,gEAAgE;gBAChE,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CACV,0BAA0B,QAAQ,GAAG,CAAC,YACpC,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,eACrD,EAAE,CACH,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;YAClE,QAAQ,EAAE,CAAC;YAEX,qCAAqC;YACrC,MAAM,aAAa,GAAG,CAAC,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,GAAG,2CAA2C,OAAO,IAAI,OAAO;iBACzE,QAAQ,EAAE;iBACV,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;QACnC,CAAC;QAED,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAElD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;YAC1E,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAC7E,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACrC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Atomic, symlink-safe file replace.
3
- *
4
- * For `mcpi dco`, the destination and its temp sibling live in the current
5
- * working tree, which may be an untrusted cloned repo. A tracked symlink
6
- * planted at the predictable `<path>.mcpi-tmp` sibling would otherwise make
7
- * a plain writeFileSync follow it and clobber an arbitrary file the user can
8
- * write. So: unlink any pre-existing temp (rmSync removes the link itself,
9
- * never its target), then create it with O_EXCL (`wx`) so a planted or
10
- * racing symlink makes the write fail closed instead of being followed.
11
- * renameSync replaces the destination without following a symlink there.
12
- */
13
- export declare function writeFileAtomicSafe(path: string, content: string, mode?: number): void;
14
- //# sourceMappingURL=fs-safe.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fs-safe.d.ts","sourceRoot":"","sources":["../../../src/utils/dco/fs-safe.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,SAAQ,GACX,IAAI,CAKN"}
@@ -1,20 +0,0 @@
1
- import { renameSync, rmSync, writeFileSync } from "fs";
2
- /**
3
- * Atomic, symlink-safe file replace.
4
- *
5
- * For `mcpi dco`, the destination and its temp sibling live in the current
6
- * working tree, which may be an untrusted cloned repo. A tracked symlink
7
- * planted at the predictable `<path>.mcpi-tmp` sibling would otherwise make
8
- * a plain writeFileSync follow it and clobber an arbitrary file the user can
9
- * write. So: unlink any pre-existing temp (rmSync removes the link itself,
10
- * never its target), then create it with O_EXCL (`wx`) so a planted or
11
- * racing symlink makes the write fail closed instead of being followed.
12
- * renameSync replaces the destination without following a symlink there.
13
- */
14
- export function writeFileAtomicSafe(path, content, mode = 0o644) {
15
- const tempPath = `${path}.mcpi-tmp`;
16
- rmSync(tempPath, { force: true });
17
- writeFileSync(tempPath, content, { flag: "wx", mode });
18
- renameSync(tempPath, path);
19
- }
20
- //# sourceMappingURL=fs-safe.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fs-safe.js","sourceRoot":"","sources":["../../../src/utils/dco/fs-safe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,OAAe,EACf,IAAI,GAAG,KAAK;IAEZ,MAAM,QAAQ,GAAG,GAAG,IAAI,WAAW,CAAC;IACpC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC7B,CAAC"}