@astrale-os/cli 1.0.0-beta.9 → 1.0.0-npm-deprecated.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 (617) hide show
  1. package/README.md +14 -166
  2. package/package.json +10 -102
  3. package/.check-workspace.cjs +0 -40
  4. package/LICENSE +0 -202
  5. package/THIRD-PARTY-NOTICES.md +0 -27
  6. package/dist/astrale.js +0 -93344
  7. package/dist/public/connect-core.js +0 -29187
  8. package/dist/public/keys/index.js +0 -5651
  9. package/dist/public/paths/index.js +0 -4282
  10. package/dist/types/admin/binding.d.ts +0 -19
  11. package/dist/types/admin/instance/client.d.ts +0 -22
  12. package/dist/types/admin/instance/index.d.ts +0 -2
  13. package/dist/types/admin/instance/model.d.ts +0 -33
  14. package/dist/types/connect-core.d.ts +0 -22
  15. package/dist/types/connection/auth.d.ts +0 -39
  16. package/dist/types/connection/call.d.ts +0 -3
  17. package/dist/types/connection/command.d.ts +0 -27
  18. package/dist/types/connection/credential.d.ts +0 -14
  19. package/dist/types/connection/errors.d.ts +0 -1
  20. package/dist/types/connection/exchange.d.ts +0 -9
  21. package/dist/types/connection/failure/classify.d.ts +0 -2
  22. package/dist/types/connection/failure/index.d.ts +0 -5
  23. package/dist/types/connection/failure/model.d.ts +0 -25
  24. package/dist/types/connection/failure/render.d.ts +0 -3
  25. package/dist/types/connection/index.d.ts +0 -8
  26. package/dist/types/connection/reasons.d.ts +0 -37
  27. package/dist/types/connection/self.d.ts +0 -37
  28. package/dist/types/connection/session.d.ts +0 -31
  29. package/dist/types/connection/target.d.ts +0 -38
  30. package/dist/types/errors.d.ts +0 -23
  31. package/dist/types/identity/registry.d.ts +0 -25
  32. package/dist/types/keys/algorithm.d.ts +0 -6
  33. package/dist/types/keys/credential.d.ts +0 -21
  34. package/dist/types/keys/index.d.ts +0 -4
  35. package/dist/types/keys/pair.d.ts +0 -34
  36. package/dist/types/lib/admin-instance.d.ts +0 -17
  37. package/dist/types/lib/admin-target.d.ts +0 -78
  38. package/dist/types/lib/ca-fetch.d.ts +0 -2
  39. package/dist/types/lib/config.d.ts +0 -71
  40. package/dist/types/lib/failure-debug.d.ts +0 -1
  41. package/dist/types/lib/format.d.ts +0 -1
  42. package/dist/types/lib/idp-session.d.ts +0 -33
  43. package/dist/types/lib/idp.d.ts +0 -404
  44. package/dist/types/lib/instance-target.d.ts +0 -38
  45. package/dist/types/lib/instance.d.ts +0 -202
  46. package/dist/types/lib/invocation.d.ts +0 -3
  47. package/dist/types/lib/log.d.ts +0 -33
  48. package/dist/types/lib/login-flow.d.ts +0 -49
  49. package/dist/types/lib/meta.d.ts +0 -36
  50. package/dist/types/lib/output.d.ts +0 -87
  51. package/dist/types/lib/proc.d.ts +0 -43
  52. package/dist/types/lib/self.d.ts +0 -9
  53. package/dist/types/lib/table.d.ts +0 -18
  54. package/dist/types/lib/update.d.ts +0 -131
  55. package/dist/types/lib/validation.d.ts +0 -11
  56. package/dist/types/paths/index.d.ts +0 -2
  57. package/dist/types/state/exchange-credentials.d.ts +0 -25
  58. package/dist/types/state/files.d.ts +0 -9
  59. package/dist/types/state/identities.d.ts +0 -42
  60. package/dist/types/state/index.d.ts +0 -8
  61. package/dist/types/state/paths.d.ts +0 -32
  62. package/src/__tests__/fixtures/publication.ts +0 -20
  63. package/src/admin/.spec/api.d.ts +0 -3
  64. package/src/admin/.spec/architecture.md +0 -15
  65. package/src/admin/.spec/icon.svg +0 -3
  66. package/src/admin/.spec/layout.ts +0 -6
  67. package/src/admin/__tests__/binding.test.ts +0 -31
  68. package/src/admin/__tests__/fixture.ts +0 -101
  69. package/src/admin/binding.ts +0 -98
  70. package/src/admin/catalog/.spec/api.d.ts +0 -65
  71. package/src/admin/catalog/.spec/architecture.md +0 -6
  72. package/src/admin/catalog/.spec/icon.svg +0 -3
  73. package/src/admin/catalog/.spec/layout.ts +0 -6
  74. package/src/admin/catalog/__tests__/client.test.ts +0 -142
  75. package/src/admin/catalog/client.ts +0 -218
  76. package/src/admin/catalog/index.ts +0 -13
  77. package/src/admin/catalog/model.ts +0 -41
  78. package/src/admin/catalog/tsconfig.json +0 -8
  79. package/src/admin/graph/.spec/api.d.ts +0 -22
  80. package/src/admin/graph/.spec/architecture.md +0 -5
  81. package/src/admin/graph/.spec/icon.svg +0 -3
  82. package/src/admin/graph/.spec/layout.ts +0 -3
  83. package/src/admin/graph/index.ts +0 -6
  84. package/src/admin/graph/nodes.ts +0 -56
  85. package/src/admin/index.ts +0 -2
  86. package/src/admin/instance/.spec/api.d.ts +0 -66
  87. package/src/admin/instance/.spec/architecture.md +0 -10
  88. package/src/admin/instance/.spec/icon.svg +0 -3
  89. package/src/admin/instance/.spec/layout.ts +0 -6
  90. package/src/admin/instance/__tests__/client.test.ts +0 -166
  91. package/src/admin/instance/client.ts +0 -196
  92. package/src/admin/instance/index.ts +0 -15
  93. package/src/admin/instance/model.ts +0 -56
  94. package/src/admin/instance/tsconfig.json +0 -8
  95. package/src/commands/__tests__/admin-instance.test.ts +0 -91
  96. package/src/commands/__tests__/auth-login.test.ts +0 -231
  97. package/src/commands/__tests__/auth-token.test.ts +0 -223
  98. package/src/commands/__tests__/call-describe.test.ts +0 -80
  99. package/src/commands/__tests__/call.test.ts +0 -29
  100. package/src/commands/__tests__/domain-install-operation.test.ts +0 -126
  101. package/src/commands/__tests__/domain-install-owned.test.ts +0 -191
  102. package/src/commands/__tests__/domain-list.test.ts +0 -133
  103. package/src/commands/__tests__/domain-uninstall.test.ts +0 -53
  104. package/src/commands/__tests__/install-direct.test.ts +0 -21
  105. package/src/commands/__tests__/install-identity-override.test.ts +0 -76
  106. package/src/commands/__tests__/instance-bookmark.test.ts +0 -166
  107. package/src/commands/__tests__/instance-list-admin.test.ts +0 -26
  108. package/src/commands/__tests__/instance-list-rows.test.ts +0 -64
  109. package/src/commands/__tests__/instance-use.test.ts +0 -67
  110. package/src/commands/__tests__/introspect-parse.test.ts +0 -21
  111. package/src/commands/__tests__/logs.test.ts +0 -97
  112. package/src/commands/__tests__/read-commands.test.ts +0 -294
  113. package/src/commands/__tests__/setup-plan.test.ts +0 -61
  114. package/src/commands/__tests__/studio-descriptor.test.ts +0 -22
  115. package/src/commands/__tests__/token-ttl.test.ts +0 -21
  116. package/src/commands/__tests__/update.test.ts +0 -95
  117. package/src/commands/__tests__/view-build.test.ts +0 -58
  118. package/src/commands/__tests__/view.test.ts +0 -149
  119. package/src/commands/admin/status.ts +0 -61
  120. package/src/commands/admin/use.ts +0 -100
  121. package/src/commands/auth/login.ts +0 -82
  122. package/src/commands/auth/logout.ts +0 -52
  123. package/src/commands/auth/status.ts +0 -86
  124. package/src/commands/auth/token.ts +0 -174
  125. package/src/commands/browser.ts +0 -207
  126. package/src/commands/call-describe.ts +0 -123
  127. package/src/commands/call.ts +0 -205
  128. package/src/commands/domain/install.ts +0 -548
  129. package/src/commands/domain/list.ts +0 -155
  130. package/src/commands/domain/publish.ts +0 -136
  131. package/src/commands/domain/uninstall.ts +0 -128
  132. package/src/commands/get.ts +0 -69
  133. package/src/commands/identity/__tests__/register.test.ts +0 -93
  134. package/src/commands/identity/create.ts +0 -35
  135. package/src/commands/identity/delete.ts +0 -24
  136. package/src/commands/identity/export.ts +0 -46
  137. package/src/commands/identity/import.ts +0 -61
  138. package/src/commands/identity/list.ts +0 -56
  139. package/src/commands/identity/register.ts +0 -196
  140. package/src/commands/identity/sync.ts +0 -38
  141. package/src/commands/identity/unsync.ts +0 -34
  142. package/src/commands/identity/use.ts +0 -24
  143. package/src/commands/identity/whoami.ts +0 -34
  144. package/src/commands/idp/add.ts +0 -150
  145. package/src/commands/idp/list.ts +0 -57
  146. package/src/commands/idp/refresh.ts +0 -38
  147. package/src/commands/idp/remove.ts +0 -36
  148. package/src/commands/idp/show.ts +0 -29
  149. package/src/commands/instance/active.ts +0 -73
  150. package/src/commands/instance/bookmark.ts +0 -101
  151. package/src/commands/instance/create.ts +0 -61
  152. package/src/commands/instance/delete.ts +0 -69
  153. package/src/commands/instance/forget.ts +0 -26
  154. package/src/commands/instance/list.ts +0 -197
  155. package/src/commands/instance/status.ts +0 -38
  156. package/src/commands/instance/use.ts +0 -263
  157. package/src/commands/introspect.ts +0 -110
  158. package/src/commands/logs.ts +0 -283
  159. package/src/commands/mutate.ts +0 -122
  160. package/src/commands/query.ts +0 -136
  161. package/src/commands/session/analyze.ts +0 -50
  162. package/src/commands/session/list.ts +0 -36
  163. package/src/commands/setup.ts +0 -54
  164. package/src/commands/status.ts +0 -60
  165. package/src/commands/studio.ts +0 -434
  166. package/src/commands/token.ts +0 -107
  167. package/src/commands/update.ts +0 -334
  168. package/src/commands/use.ts +0 -86
  169. package/src/commands/view-serve.ts +0 -26
  170. package/src/commands/view.ts +0 -614
  171. package/src/connect-core.test.ts +0 -38
  172. package/src/connect-core.ts +0 -42
  173. package/src/connection/.spec/api.d.ts +0 -110
  174. package/src/connection/.spec/architecture.md +0 -47
  175. package/src/connection/.spec/capabilities/connection.ts +0 -13
  176. package/src/connection/.spec/examples/call.ts +0 -7
  177. package/src/connection/.spec/flows/command.ts +0 -20
  178. package/src/connection/.spec/flows/session.ts +0 -61
  179. package/src/connection/.spec/laws/connection.ts +0 -205
  180. package/src/connection/.spec/layout.ts +0 -21
  181. package/src/connection/__tests__/auth.test.ts +0 -128
  182. package/src/connection/__tests__/ca-fetch.test.ts +0 -60
  183. package/src/connection/__tests__/call.test.ts +0 -17
  184. package/src/connection/__tests__/credential.test.ts +0 -138
  185. package/src/connection/__tests__/errors.test.ts +0 -577
  186. package/src/connection/__tests__/exchange.test.ts +0 -295
  187. package/src/connection/__tests__/failure-fixtures.ts +0 -39
  188. package/src/connection/__tests__/failure-safety.test.ts +0 -75
  189. package/src/connection/__tests__/fixtures/localhost-cert.pem +0 -19
  190. package/src/connection/__tests__/fixtures/localhost-key.base64 +0 -1
  191. package/src/connection/__tests__/managed.test.ts +0 -39
  192. package/src/connection/__tests__/reasons.test.ts +0 -78
  193. package/src/connection/__tests__/self.test.ts +0 -71
  194. package/src/connection/__tests__/session.test.ts +0 -140
  195. package/src/connection/__tests__/target.test.ts +0 -94
  196. package/src/connection/auth.ts +0 -249
  197. package/src/connection/call.ts +0 -7
  198. package/src/connection/command.ts +0 -67
  199. package/src/connection/credential.ts +0 -117
  200. package/src/connection/errors.ts +0 -1
  201. package/src/connection/exchange.ts +0 -311
  202. package/src/connection/failure/classify.ts +0 -110
  203. package/src/connection/failure/index.ts +0 -18
  204. package/src/connection/failure/model.ts +0 -28
  205. package/src/connection/failure/render.ts +0 -116
  206. package/src/connection/index.ts +0 -8
  207. package/src/connection/reasons.ts +0 -209
  208. package/src/connection/self.ts +0 -138
  209. package/src/connection/session.ts +0 -196
  210. package/src/connection/target.ts +0 -112
  211. package/src/connection/tsconfig.json +0 -6
  212. package/src/errors.ts +0 -66
  213. package/src/graph/.spec/api.d.ts +0 -41
  214. package/src/graph/.spec/laws/documents.ts +0 -24
  215. package/src/graph/.spec/laws/projection.ts +0 -13
  216. package/src/graph/.spec/layout.ts +0 -14
  217. package/src/graph/__tests__/mutation.test.ts +0 -51
  218. package/src/graph/__tests__/projection.test.ts +0 -22
  219. package/src/graph/__tests__/query.test.ts +0 -173
  220. package/src/graph/class.ts +0 -30
  221. package/src/graph/index.ts +0 -4
  222. package/src/graph/mutation.ts +0 -46
  223. package/src/graph/projection.ts +0 -21
  224. package/src/graph/query.ts +0 -97
  225. package/src/graph/tsconfig.json +0 -6
  226. package/src/identity/.history/ard/bootstrap-root-transfer.md +0 -57
  227. package/src/identity/.history/ard/domain-mediated-registration.md +0 -36
  228. package/src/identity/.spec/api.d.ts +0 -124
  229. package/src/identity/.spec/architecture.md +0 -33
  230. package/src/identity/.spec/capabilities/identity.ts +0 -7
  231. package/src/identity/.spec/flows/bootstrap-root.ts +0 -79
  232. package/src/identity/.spec/flows/domain-mediated-registration.ts +0 -51
  233. package/src/identity/.spec/flows/import.ts +0 -29
  234. package/src/identity/.spec/laws/identity.ts +0 -56
  235. package/src/identity/.spec/layout.ts +0 -13
  236. package/src/identity/.spec/schemas/identity-export-v1.schema.json +0 -25
  237. package/src/identity/__tests__/fixtures/registry-journey.ts +0 -53
  238. package/src/identity/__tests__/registration.test.ts +0 -64
  239. package/src/identity/__tests__/registry.test.ts +0 -70
  240. package/src/identity/__tests__/transfer.test.ts +0 -198
  241. package/src/identity/index.ts +0 -23
  242. package/src/identity/registration.ts +0 -72
  243. package/src/identity/registry.ts +0 -179
  244. package/src/identity/transfer.ts +0 -187
  245. package/src/identity/tsconfig.json +0 -6
  246. package/src/index.ts +0 -1
  247. package/src/keys/.spec/api.d.ts +0 -74
  248. package/src/keys/.spec/architecture.md +0 -13
  249. package/src/keys/.spec/laws/keys.ts +0 -43
  250. package/src/keys/.spec/layout.ts +0 -6
  251. package/src/keys/__tests__/algorithm.test.ts +0 -39
  252. package/src/keys/__tests__/keys.test.ts +0 -168
  253. package/src/keys/algorithm.ts +0 -33
  254. package/src/keys/credential.ts +0 -112
  255. package/src/keys/index.ts +0 -14
  256. package/src/keys/pair.ts +0 -219
  257. package/src/keys/tsconfig.json +0 -6
  258. package/src/lib/__tests__/admin-target.test.ts +0 -184
  259. package/src/lib/__tests__/binary.test.ts +0 -55
  260. package/src/lib/__tests__/command-dx.test.ts +0 -102
  261. package/src/lib/__tests__/concurrency.test.ts +0 -62
  262. package/src/lib/__tests__/config.test.ts +0 -54
  263. package/src/lib/__tests__/design.test.ts +0 -99
  264. package/src/lib/__tests__/domain-publication.test.ts +0 -138
  265. package/src/lib/__tests__/format.test.ts +0 -22
  266. package/src/lib/__tests__/idp-session.driver.ts +0 -53
  267. package/src/lib/__tests__/idp-session.test.ts +0 -379
  268. package/src/lib/__tests__/idp.test.ts +0 -415
  269. package/src/lib/__tests__/instance-candidates.test.ts +0 -146
  270. package/src/lib/__tests__/instance-target.test.ts +0 -213
  271. package/src/lib/__tests__/instance.test.ts +0 -192
  272. package/src/lib/__tests__/local-status.test.ts +0 -202
  273. package/src/lib/__tests__/log-errors.test.ts +0 -64
  274. package/src/lib/__tests__/log.test.ts +0 -31
  275. package/src/lib/__tests__/meta.test.ts +0 -55
  276. package/src/lib/__tests__/output.test.ts +0 -162
  277. package/src/lib/__tests__/panel.test.ts +0 -40
  278. package/src/lib/__tests__/port.test.ts +0 -44
  279. package/src/lib/__tests__/prompt.test.ts +0 -25
  280. package/src/lib/__tests__/sdk-deps.test.ts +0 -68
  281. package/src/lib/__tests__/self.test.ts +0 -50
  282. package/src/lib/__tests__/studio-server-deps.test.ts +0 -111
  283. package/src/lib/__tests__/table.test.ts +0 -53
  284. package/src/lib/__tests__/update.test.ts +0 -351
  285. package/src/lib/__tests__/use-target.test.ts +0 -56
  286. package/src/lib/__tests__/validation.test.ts +0 -34
  287. package/src/lib/__tests__/view-assets.test.ts +0 -146
  288. package/src/lib/__tests__/view-open-intent.test.ts +0 -280
  289. package/src/lib/__tests__/view-port-allocation.test.ts +0 -82
  290. package/src/lib/__tests__/view-server.test.ts +0 -68
  291. package/src/lib/__tests__/view-session.test.ts +0 -99
  292. package/src/lib/__tests__/view-snapshot.test.ts +0 -77
  293. package/src/lib/admin-domain.ts +0 -43
  294. package/src/lib/admin-instance.ts +0 -56
  295. package/src/lib/admin-target.ts +0 -290
  296. package/src/lib/binary.ts +0 -110
  297. package/src/lib/browser.ts +0 -150
  298. package/src/lib/ca-fetch.ts +0 -133
  299. package/src/lib/command-dx.ts +0 -191
  300. package/src/lib/concurrency.ts +0 -31
  301. package/src/lib/config.ts +0 -46
  302. package/src/lib/domain-publication.ts +0 -104
  303. package/src/lib/failure-debug.ts +0 -26
  304. package/src/lib/format.ts +0 -4
  305. package/src/lib/idp-session.ts +0 -134
  306. package/src/lib/idp.ts +0 -906
  307. package/src/lib/instance-candidates.ts +0 -49
  308. package/src/lib/instance-target.ts +0 -197
  309. package/src/lib/instance.ts +0 -467
  310. package/src/lib/invocation.ts +0 -11
  311. package/src/lib/local-status.ts +0 -152
  312. package/src/lib/log.ts +0 -143
  313. package/src/lib/login-flow.ts +0 -201
  314. package/src/lib/meta.ts +0 -90
  315. package/src/lib/output.ts +0 -238
  316. package/src/lib/panel.ts +0 -61
  317. package/src/lib/port.ts +0 -41
  318. package/src/lib/proc.ts +0 -82
  319. package/src/lib/prompt.ts +0 -136
  320. package/src/lib/provision-instance.ts +0 -139
  321. package/src/lib/sdk-deps.ts +0 -104
  322. package/src/lib/self.ts +0 -22
  323. package/src/lib/skills.ts +0 -171
  324. package/src/lib/table.ts +0 -62
  325. package/src/lib/update.ts +0 -409
  326. package/src/lib/use-target.ts +0 -24
  327. package/src/lib/validation.ts +0 -59
  328. package/src/lib/view/assets.ts +0 -78
  329. package/src/lib/view/open-intent.ts +0 -67
  330. package/src/lib/view/port-allocation.ts +0 -19
  331. package/src/lib/view/resolve.ts +0 -111
  332. package/src/lib/view/server.ts +0 -244
  333. package/src/lib/view/session.ts +0 -152
  334. package/src/lib/view/snapshot.ts +0 -101
  335. package/src/paths/.spec/api.d.ts +0 -13
  336. package/src/paths/.spec/architecture.md +0 -5
  337. package/src/paths/.spec/layout.ts +0 -3
  338. package/src/paths/index.ts +0 -13
  339. package/src/program/.spec/api.d.ts +0 -42
  340. package/src/program/.spec/architecture.md +0 -18
  341. package/src/program/.spec/laws/program.ts +0 -29
  342. package/src/program/.spec/layout.ts +0 -14
  343. package/src/program/__tests__/program.test.ts +0 -378
  344. package/src/program/build.ts +0 -183
  345. package/src/program/command.ts +0 -42
  346. package/src/program/index.ts +0 -2
  347. package/src/program/options.ts +0 -41
  348. package/src/program/registry.ts +0 -63
  349. package/src/program/tsconfig.json +0 -6
  350. package/src/setup/__tests__/instance-step.test.ts +0 -256
  351. package/src/setup/__tests__/util.test.ts +0 -29
  352. package/src/setup/engine.ts +0 -83
  353. package/src/setup/render.ts +0 -107
  354. package/src/setup/steps/admin.ts +0 -93
  355. package/src/setup/steps/agent-browser.ts +0 -81
  356. package/src/setup/steps/auth.ts +0 -54
  357. package/src/setup/steps/domain.ts +0 -68
  358. package/src/setup/steps/index.ts +0 -18
  359. package/src/setup/steps/instance.ts +0 -206
  360. package/src/setup/steps/skills-bridge.ts +0 -70
  361. package/src/setup/steps/skills.ts +0 -59
  362. package/src/setup/types.ts +0 -61
  363. package/src/setup/util.ts +0 -34
  364. package/src/state/.spec/api.d.ts +0 -133
  365. package/src/state/.spec/architecture.md +0 -31
  366. package/src/state/.spec/capabilities/state.ts +0 -7
  367. package/src/state/.spec/flows/identity-update.ts +0 -22
  368. package/src/state/.spec/laws/state.ts +0 -73
  369. package/src/state/.spec/layout.ts +0 -14
  370. package/src/state/__tests__/exchange-credentials.test.ts +0 -188
  371. package/src/state/__tests__/files.test.ts +0 -113
  372. package/src/state/__tests__/fixtures/identity-transition.ts +0 -37
  373. package/src/state/__tests__/identities.test.ts +0 -142
  374. package/src/state/__tests__/paths.test.ts +0 -27
  375. package/src/state/exchange-credentials.ts +0 -219
  376. package/src/state/files.ts +0 -129
  377. package/src/state/identities.ts +0 -229
  378. package/src/state/index.ts +0 -29
  379. package/src/state/paths.ts +0 -61
  380. package/src/state/tsconfig.json +0 -6
  381. package/src/telemetry/__tests__/gate.test.ts +0 -63
  382. package/src/telemetry/__tests__/recorder.test.ts +0 -110
  383. package/src/telemetry/__tests__/redact.test.ts +0 -79
  384. package/src/telemetry/__tests__/session.test.ts +0 -166
  385. package/src/telemetry/__tests__/trigger.test.ts +0 -49
  386. package/src/telemetry/adapters/__tests__/claude-code.test.ts +0 -89
  387. package/src/telemetry/adapters/__tests__/codex.test.ts +0 -138
  388. package/src/telemetry/adapters/__tests__/index.test.ts +0 -88
  389. package/src/telemetry/adapters/claude-code.ts +0 -90
  390. package/src/telemetry/adapters/codex.ts +0 -160
  391. package/src/telemetry/adapters/index.ts +0 -45
  392. package/src/telemetry/adapters/types.ts +0 -21
  393. package/src/telemetry/analyze.ts +0 -227
  394. package/src/telemetry/gate.ts +0 -79
  395. package/src/telemetry/recorder.ts +0 -57
  396. package/src/telemetry/redact.ts +0 -53
  397. package/src/telemetry/session.ts +0 -88
  398. package/src/telemetry/settings.ts +0 -26
  399. package/src/telemetry/store.ts +0 -91
  400. package/src/telemetry/trigger.ts +0 -119
  401. package/src/telemetry/types.ts +0 -64
  402. package/src/test-utils.ts +0 -18
  403. package/studio/client/dist/assets/elk-api-ByzoDZWH.js +0 -1
  404. package/studio/client/dist/assets/elk-worker.min-C9JGDOE-.js +0 -6312
  405. package/studio/client/dist/assets/index-B0RCgUOT.js +0 -8
  406. package/studio/client/dist/assets/index-BiGR8Oo9.css +0 -1
  407. package/studio/client/dist/assets/index-ChOr3yP0.css +0 -1
  408. package/studio/client/dist/assets/index-N8J8EKlB.js +0 -81
  409. package/studio/client/dist/index.html +0 -13
  410. package/studio/package.json +0 -65
  411. package/studio/server/agent/ask.test.ts +0 -74
  412. package/studio/server/agent/ask.ts +0 -71
  413. package/studio/server/agent/bridge/client.test.ts +0 -49
  414. package/studio/server/agent/bridge/client.ts +0 -37
  415. package/studio/server/agent/bridge/grant.test.ts +0 -62
  416. package/studio/server/agent/bridge/grant.ts +0 -84
  417. package/studio/server/agent/bridge/routes.test.ts +0 -151
  418. package/studio/server/agent/bridge/routes.ts +0 -148
  419. package/studio/server/agent/bridge/stdio.ts +0 -195
  420. package/studio/server/agent/conversation.test.ts +0 -89
  421. package/studio/server/agent/conversation.ts +0 -158
  422. package/studio/server/agent/harness/adapter.ts +0 -171
  423. package/studio/server/agent/harness/claude/adapter.test.ts +0 -348
  424. package/studio/server/agent/harness/claude/adapter.ts +0 -71
  425. package/studio/server/agent/harness/claude/ask.ts +0 -114
  426. package/studio/server/agent/harness/claude/capabilities.ts +0 -27
  427. package/studio/server/agent/harness/claude/command.ts +0 -63
  428. package/studio/server/agent/harness/claude/events.ts +0 -215
  429. package/studio/server/agent/harness/claude/loadout.ts +0 -132
  430. package/studio/server/agent/harness/claude/mcp.test.ts +0 -36
  431. package/studio/server/agent/harness/claude/mcp.ts +0 -41
  432. package/studio/server/agent/harness/claude/skills.ts +0 -43
  433. package/studio/server/agent/harness/codex/adapter.test.ts +0 -269
  434. package/studio/server/agent/harness/codex/adapter.ts +0 -116
  435. package/studio/server/agent/harness/codex/ask.test.ts +0 -176
  436. package/studio/server/agent/harness/codex/ask.ts +0 -181
  437. package/studio/server/agent/harness/codex/command.test.ts +0 -69
  438. package/studio/server/agent/harness/codex/command.ts +0 -43
  439. package/studio/server/agent/harness/codex/events.test.ts +0 -94
  440. package/studio/server/agent/harness/codex/events.ts +0 -132
  441. package/studio/server/agent/harness/codex/exec.ts +0 -113
  442. package/studio/server/agent/harness/codex/loadout.ts +0 -60
  443. package/studio/server/agent/harness/codex/mcp.test.ts +0 -32
  444. package/studio/server/agent/harness/codex/mcp.ts +0 -27
  445. package/studio/server/agent/harness/codex/models.test.ts +0 -167
  446. package/studio/server/agent/harness/codex/models.ts +0 -211
  447. package/studio/server/agent/harness/codex/skills.ts +0 -33
  448. package/studio/server/agent/harness/gateway/config.test.ts +0 -98
  449. package/studio/server/agent/harness/gateway/config.ts +0 -214
  450. package/studio/server/agent/harness/gateway/token.test.ts +0 -133
  451. package/studio/server/agent/harness/gateway/token.ts +0 -166
  452. package/studio/server/agent/harness/mock/adapter.ts +0 -190
  453. package/studio/server/agent/harness/mock/domain-edit.ts +0 -41
  454. package/studio/server/agent/harness/process.test.ts +0 -46
  455. package/studio/server/agent/harness/process.ts +0 -104
  456. package/studio/server/agent/harness/registry.ts +0 -37
  457. package/studio/server/agent/harness/selection.test.ts +0 -75
  458. package/studio/server/agent/harness/selection.ts +0 -85
  459. package/studio/server/agent/harness/skills.test.ts +0 -95
  460. package/studio/server/agent/harness/skills.ts +0 -100
  461. package/studio/server/agent/layout.test.ts +0 -95
  462. package/studio/server/agent/notify.ts +0 -12
  463. package/studio/server/agent/prompts/anchors.test.ts +0 -70
  464. package/studio/server/agent/prompts/anchors.ts +0 -153
  465. package/studio/server/agent/prompts/ask.ts +0 -34
  466. package/studio/server/agent/prompts/system.test.ts +0 -13
  467. package/studio/server/agent/prompts/system.ts +0 -99
  468. package/studio/server/agent/prompts/turn.ts +0 -66
  469. package/studio/server/agent/routes.test.ts +0 -176
  470. package/studio/server/agent/routes.ts +0 -214
  471. package/studio/server/agent/run/completion.ts +0 -193
  472. package/studio/server/agent/run/coordinator.test.ts +0 -337
  473. package/studio/server/agent/run/coordinator.ts +0 -104
  474. package/studio/server/agent/run/live-state.ts +0 -73
  475. package/studio/server/agent/run/preparation.ts +0 -163
  476. package/studio/server/agent/run/transcript.test.ts +0 -81
  477. package/studio/server/agent/run/transcript.ts +0 -196
  478. package/studio/server/agent/run/usage.test.ts +0 -70
  479. package/studio/server/agent/run/usage.ts +0 -62
  480. package/studio/server/agent/stream.ts +0 -37
  481. package/studio/server/agent/telemetry.ts +0 -13
  482. package/studio/server/api/canvas.ts +0 -43
  483. package/studio/server/api/comments.ts +0 -85
  484. package/studio/server/api/context.ts +0 -61
  485. package/studio/server/api/deployment.ts +0 -39
  486. package/studio/server/api/documents.ts +0 -55
  487. package/studio/server/api/domain.ts +0 -59
  488. package/studio/server/api/http.ts +0 -45
  489. package/studio/server/api/project.ts +0 -57
  490. package/studio/server/api/schema.ts +0 -12
  491. package/studio/server/api/views.ts +0 -57
  492. package/studio/server/api/workspace.ts +0 -60
  493. package/studio/server/api-agent-loadout.test.ts +0 -69
  494. package/studio/server/api.test.ts +0 -147
  495. package/studio/server/api.ts +0 -34
  496. package/studio/server/cache.test.ts +0 -122
  497. package/studio/server/cache.ts +0 -303
  498. package/studio/server/cli-consumers.test.ts +0 -494
  499. package/studio/server/cli.test.ts +0 -88
  500. package/studio/server/cli.ts +0 -240
  501. package/studio/server/client-package.test.ts +0 -147
  502. package/studio/server/client-package.ts +0 -266
  503. package/studio/server/detect.ts +0 -81
  504. package/studio/server/domain.test.ts +0 -77
  505. package/studio/server/domain.ts +0 -124
  506. package/studio/server/environment/dotenv-preview.test.ts +0 -39
  507. package/studio/server/environment/dotenv-preview.ts +0 -27
  508. package/studio/server/environment/files.test.ts +0 -53
  509. package/studio/server/environment/files.ts +0 -120
  510. package/studio/server/handoff/copy.ts +0 -171
  511. package/studio/server/handoff/service.test.ts +0 -22
  512. package/studio/server/handoff/service.ts +0 -62
  513. package/studio/server/index.ts +0 -148
  514. package/studio/server/instances/active.ts +0 -72
  515. package/studio/server/instances/deploy-record.test.ts +0 -31
  516. package/studio/server/instances/deploy-record.ts +0 -37
  517. package/studio/server/instances/deploy.ts +0 -56
  518. package/studio/server/instances/probe.test.ts +0 -67
  519. package/studio/server/instances/probe.ts +0 -67
  520. package/studio/server/instances/status.test.ts +0 -12
  521. package/studio/server/instances/status.ts +0 -49
  522. package/studio/server/introspect/anatomy/client-tree.ts +0 -57
  523. package/studio/server/introspect/anatomy/env-fields.ts +0 -66
  524. package/studio/server/introspect/anatomy/schema-definition.ts +0 -53
  525. package/studio/server/introspect/anatomy/source.ts +0 -181
  526. package/studio/server/introspect/anatomy/views/routes.ts +0 -114
  527. package/studio/server/introspect/anatomy/views.ts +0 -53
  528. package/studio/server/introspect/anatomy-extras.test.ts +0 -265
  529. package/studio/server/introspect/anatomy-extras.ts +0 -10
  530. package/studio/server/introspect/anatomy.test.ts +0 -41
  531. package/studio/server/introspect/anatomy.ts +0 -147
  532. package/studio/server/introspect/bundle.ts +0 -69
  533. package/studio/server/introspect/canonical-schema.test.ts +0 -179
  534. package/studio/server/introspect/canonical-schema.ts +0 -583
  535. package/studio/server/introspect/config-preview.test.ts +0 -32
  536. package/studio/server/introspect/config-preview.ts +0 -119
  537. package/studio/server/introspect/core-extractor.ts +0 -30
  538. package/studio/server/introspect/core.ts +0 -45
  539. package/studio/server/introspect/diff.test.ts +0 -124
  540. package/studio/server/introspect/diff.ts +0 -316
  541. package/studio/server/introspect/extractor.ts +0 -41
  542. package/studio/server/introspect/hash.ts +0 -24
  543. package/studio/server/introspect/overlay-tsmorph.test.ts +0 -146
  544. package/studio/server/introspect/overlay-tsmorph.ts +0 -9
  545. package/studio/server/introspect/overlay.test.ts +0 -44
  546. package/studio/server/introspect/overlay.ts +0 -40
  547. package/studio/server/introspect/revision.test.ts +0 -54
  548. package/studio/server/introspect/revision.ts +0 -49
  549. package/studio/server/introspect/runtime.test.ts +0 -157
  550. package/studio/server/introspect/runtime.ts +0 -140
  551. package/studio/server/introspect/schema-ir-json.test.ts +0 -70
  552. package/studio/server/introspect/schema-ir-json.ts +0 -151
  553. package/studio/server/introspect/schema-refs.test.ts +0 -55
  554. package/studio/server/introspect/schema-refs.ts +0 -32
  555. package/studio/server/introspect/source-overlay/annotations.ts +0 -14
  556. package/studio/server/introspect/source-overlay/handlers.ts +0 -161
  557. package/studio/server/introspect/source-overlay/kernel-calls.ts +0 -46
  558. package/studio/server/introspect/source-overlay/project.ts +0 -248
  559. package/studio/server/introspect/source-overlay/spans.ts +0 -330
  560. package/studio/server/json.ts +0 -46
  561. package/studio/server/lifecycle.ts +0 -42
  562. package/studio/server/sse.test.ts +0 -26
  563. package/studio/server/sse.ts +0 -60
  564. package/studio/server/state/baseline.test.ts +0 -267
  565. package/studio/server/state/baseline.ts +0 -354
  566. package/studio/server/state/comments.test.ts +0 -94
  567. package/studio/server/state/comments.ts +0 -484
  568. package/studio/server/state/context.ts +0 -199
  569. package/studio/server/state/documents.ts +0 -111
  570. package/studio/server/state/integrations.ts +0 -81
  571. package/studio/server/state/layout.test.ts +0 -34
  572. package/studio/server/state/layout.ts +0 -82
  573. package/studio/server/state/settings.test.ts +0 -78
  574. package/studio/server/state/settings.ts +0 -73
  575. package/studio/server/state/store.test.ts +0 -122
  576. package/studio/server/state/store.ts +0 -146
  577. package/studio/server/state/visibility.ts +0 -48
  578. package/studio/server/views/model.test.ts +0 -57
  579. package/studio/server/views/model.ts +0 -66
  580. package/studio/server/views/runtime.ts +0 -40
  581. package/studio/server/views/selection-repository.test.ts +0 -31
  582. package/studio/server/views/selection-repository.ts +0 -60
  583. package/studio/server/views/session.test.ts +0 -73
  584. package/studio/server/views/session.ts +0 -166
  585. package/studio/server/views/target.test.ts +0 -78
  586. package/studio/server/views/target.ts +0 -222
  587. package/studio/server/watch.test.ts +0 -36
  588. package/studio/server/watch.ts +0 -93
  589. package/studio/server/workspace/catalog.test.ts +0 -17
  590. package/studio/server/workspace/catalog.ts +0 -43
  591. package/studio/server/workspace/create.test.ts +0 -37
  592. package/studio/server/workspace/create.ts +0 -162
  593. package/studio/server/workspace/git.ts +0 -75
  594. package/studio/server/workspace/updates.ts +0 -83
  595. package/studio/server/workspace-state.ts +0 -26
  596. package/studio/server/workspace-watch.ts +0 -106
  597. package/studio/shared/agent-effort.test.ts +0 -12
  598. package/studio/shared/agent-effort.ts +0 -15
  599. package/studio/shared/agent-models.test.ts +0 -9
  600. package/studio/shared/agent-models.ts +0 -14
  601. package/studio/shared/contracts/README.md +0 -16
  602. package/studio/shared/contracts/agent.ts +0 -270
  603. package/studio/shared/contracts/runtime.ts +0 -50
  604. package/studio/shared/contracts/schema.ts +0 -393
  605. package/studio/shared/contracts/surface.test.ts +0 -317
  606. package/studio/shared/contracts/workspace.ts +0 -265
  607. package/studio/shared/layout.test.ts +0 -116
  608. package/studio/shared/schema/identity.test.ts +0 -34
  609. package/studio/shared/schema/identity.ts +0 -68
  610. package/studio/shared/settings-values.test.ts +0 -18
  611. package/studio/shared/settings-values.ts +0 -20
  612. package/studio/shared/types.ts +0 -14
  613. package/studio/tsconfig.json +0 -23
  614. package/tsconfig.json +0 -14
  615. package/viewer/dist/index.html +0 -93
  616. package/viewer/dist/main.js +0 -76
  617. package/viewer/tsconfig.json +0 -13
@@ -1,18 +0,0 @@
1
- # CLI program architecture
2
-
3
- The program module owns Commander composition, not command effects or process lifecycle. It loads
4
- the existing command definitions only when `buildProgram` runs, attaches the single shared Kernel
5
- option set, and returns a fresh unparsed tree. Command modules own their actions; the binary owns
6
- argv, telemetry, signal, error, and exit handling.
7
-
8
- ```mermaid
9
- flowchart LR
10
- B[Binary entrypoint] --> P[buildProgram]
11
- D[Command definitions] --> P
12
- O[Shared Kernel options] --> P
13
- P --> C[Fresh Commander tree]
14
- C --> B
15
- ```
16
-
17
- The module is private to the CLI package. The exhaustive user-facing grammar remains the generated
18
- Commander inventory rather than a duplicate declaration tree.
@@ -1,29 +0,0 @@
1
- import { defineLaw } from '@astrale-os/spec/authoring'
2
-
3
- export const CLI_PROGRAM_LEDGERED_SURFACE = defineLaw({
4
- id: 'CLI-PROGRAM-LEDGERED-SURFACE',
5
- statement:
6
- 'Program composition exposes one exact root and nested command surface; metadata, options, aliases, visibility, Commander behavior, rendered help, and package-derived version change only through a deliberate compatibility-ledger entry.',
7
- tests: [
8
- {
9
- file: '__tests__/program.test.ts',
10
- id: 'TEST-CLI-PROGRAM-MATCHES-LEDGERED-SURFACE',
11
- },
12
- {
13
- file: '__tests__/program.test.ts',
14
- id: 'TEST-CLI-PROGRAM-VERSION-SINGLE-SOURCE',
15
- },
16
- ],
17
- })
18
-
19
- export const CLI_PROGRAM_FRESH_ROOT = defineLaw({
20
- id: 'CLI-PROGRAM-FRESH-ROOT',
21
- statement:
22
- 'Each build produces an independent unparsed Commander root; mutation by one consumer cannot alter a later build.',
23
- tests: [
24
- {
25
- file: '__tests__/program.test.ts',
26
- id: 'TEST-CLI-PROGRAM-BUILDS-ISOLATED-ROOTS',
27
- },
28
- ],
29
- })
@@ -1,14 +0,0 @@
1
- import { defineLayout } from '@astrale-os/spec/authoring'
2
-
3
- export default defineLayout({
4
- entries: [
5
- '__tests__/',
6
- 'build.ts',
7
- 'command.ts',
8
- 'index.ts',
9
- 'options.ts',
10
- 'registry.ts',
11
- 'tsconfig.json',
12
- ],
13
- exact: true,
14
- })
@@ -1,378 +0,0 @@
1
- import type { Command } from 'commander'
2
-
3
- import { describe, expect, test } from 'bun:test'
4
- import { createHash } from 'node:crypto'
5
- import { existsSync, readFileSync } from 'node:fs'
6
- import { join } from 'node:path'
7
-
8
- import { buildProgram } from '../index'
9
-
10
- // Help output is the public CLI contract: version, spec anchors, and skill mirror stay in sync.
11
-
12
- const cliRoot = join(import.meta.dir, '../../..')
13
-
14
- /** Every command in the tree (root + groups + nested subgroups), depth-first. */
15
- function allCommands(cmd: Command): Command[] {
16
- return [cmd, ...cmd.commands.flatMap(allCommands)]
17
- }
18
-
19
- describe('help contract — version is single-sourced', () => {
20
- /** @evidence TEST-CLI-PROGRAM-VERSION-SINGLE-SOURCE */
21
- test('program version === package.json === release-please manifest', async () => {
22
- const program = await buildProgram()
23
- const pkg = JSON.parse(readFileSync(join(cliRoot, 'package.json'), 'utf8')) as {
24
- version: string
25
- }
26
- const manifest = JSON.parse(
27
- readFileSync(join(cliRoot, '.release-please-manifest.json'), 'utf8'),
28
- ) as Record<string, string>
29
-
30
- // Program version must follow both package.json and release-please metadata.
31
- expect(program.version()).toBe(pkg.version)
32
- expect(manifest['.']).toBe(pkg.version)
33
- })
34
- })
35
-
36
- type InspectedCommand = Command & {
37
- readonly _allowExcessArguments?: boolean
38
- readonly _allowUnknownOption?: boolean
39
- readonly _combineFlagAndOptionalValue?: boolean
40
- readonly _enablePositionalOptions?: boolean
41
- readonly _hidden?: boolean
42
- readonly _passThroughOptions?: boolean
43
- readonly _showHelpAfterError?: boolean
44
- readonly _showSuggestionAfterError?: boolean
45
- readonly _storeOptionsAsProperties?: boolean
46
- }
47
-
48
- type InspectedArgument = Command['registeredArguments'][number] & {
49
- readonly parseArg?: unknown
50
- }
51
-
52
- type InspectedOption = Command['options'][number] & {
53
- readonly conflictsWith?: readonly string[]
54
- readonly implied?: Readonly<Record<string, unknown>>
55
- }
56
-
57
- function ledgeredSurface(root: Command): readonly object[] {
58
- const rows: object[] = []
59
- const visit = (command: Command, parents: readonly string[]): void => {
60
- const inspected = command as InspectedCommand
61
- rows.push({
62
- command: parents.join(' '),
63
- aliases: command.aliases(),
64
- description: command.description(),
65
- summary: command.summary(),
66
- arguments: command.registeredArguments.map((argument) => {
67
- const inspectedArgument = argument as InspectedArgument
68
- return {
69
- name: argument.name(),
70
- description: argument.description,
71
- required: Boolean(argument.required),
72
- variadic: Boolean(argument.variadic),
73
- defaultValue: argument.defaultValue ?? null,
74
- choices: argument.argChoices ?? null,
75
- hasParser: typeof inspectedArgument.parseArg === 'function',
76
- }
77
- }),
78
- options: command.options.map((option) => {
79
- const inspectedOption = option as InspectedOption
80
- return {
81
- flags: option.flags,
82
- attribute: option.attributeName(),
83
- description: option.description,
84
- required: Boolean(option.required),
85
- optional: Boolean(option.optional),
86
- variadic: Boolean(option.variadic),
87
- mandatory: Boolean(option.mandatory),
88
- negate: Boolean(option.negate),
89
- hidden: Boolean(option.hidden),
90
- defaultValue: option.defaultValue ?? null,
91
- presetArg: option.presetArg ?? null,
92
- envVar: option.envVar ?? null,
93
- choices: option.argChoices ?? null,
94
- conflictsWith: inspectedOption.conflictsWith ?? [],
95
- implied: inspectedOption.implied ?? null,
96
- hasParser: typeof option.parseArg === 'function',
97
- }
98
- }),
99
- behavior: {
100
- allowExcessArguments: Boolean(inspected._allowExcessArguments),
101
- allowUnknownOption: Boolean(inspected._allowUnknownOption),
102
- combineFlagAndOptionalValue: Boolean(inspected._combineFlagAndOptionalValue),
103
- enablePositionalOptions: Boolean(inspected._enablePositionalOptions),
104
- passThroughOptions: Boolean(inspected._passThroughOptions),
105
- showHelpAfterError: Boolean(inspected._showHelpAfterError),
106
- showSuggestionAfterError: Boolean(inspected._showSuggestionAfterError),
107
- storeOptionsAsProperties: Boolean(inspected._storeOptionsAsProperties),
108
- },
109
- hidden: Boolean(inspected._hidden),
110
- help: command.helpInformation(),
111
- })
112
- for (const child of command.commands) visit(child, [...parents, child.name()])
113
- }
114
- visit(root, [])
115
- return rows.sort((left, right) => {
116
- const leftName = (left as { command: string }).command
117
- const rightName = (right as { command: string }).command
118
- return leftName.localeCompare(rightName)
119
- })
120
- }
121
-
122
- describe('program composition', () => {
123
- /** @evidence TEST-CLI-PROGRAM-MATCHES-LEDGERED-SURFACE */
124
- test('matches the complete ledgered command and help surface', async () => {
125
- const surface = ledgeredSurface(await buildProgram())
126
- const paths = surface.map((entry) => (entry as { command: string }).command)
127
-
128
- expect(paths).toEqual([
129
- '',
130
- '__view-serve',
131
- 'admin',
132
- 'admin status',
133
- 'admin use',
134
- 'auth',
135
- 'auth login',
136
- 'auth logout',
137
- 'auth status',
138
- 'auth token',
139
- 'browser',
140
- 'call',
141
- 'domain',
142
- 'domain install',
143
- 'domain list',
144
- 'domain publish',
145
- 'domain uninstall',
146
- 'get',
147
- 'identity',
148
- 'identity create',
149
- 'identity delete',
150
- 'identity export',
151
- 'identity import',
152
- 'identity list',
153
- 'identity register',
154
- 'identity sync',
155
- 'identity unsync',
156
- 'identity use',
157
- 'identity whoami',
158
- 'idp',
159
- 'idp add',
160
- 'idp list',
161
- 'idp refresh',
162
- 'idp remove',
163
- 'idp show',
164
- 'instance',
165
- 'instance active',
166
- 'instance bookmark',
167
- 'instance create',
168
- 'instance delete',
169
- 'instance forget',
170
- 'instance list',
171
- 'instance status',
172
- 'instance use',
173
- 'introspect',
174
- 'logs',
175
- 'mutate',
176
- 'query',
177
- 'session',
178
- 'session analyze',
179
- 'session list',
180
- 'setup',
181
- 'status',
182
- 'studio',
183
- 'token',
184
- 'update',
185
- 'use',
186
- 'view',
187
- 'whoami',
188
- ])
189
- expect(createHash('sha256').update(JSON.stringify(surface)).digest('hex')).toBe(
190
- 'abd4d584cbefa707ecc2c939d990b0bfdff8f4d1b28bce9fe4b206fdd1a3e3e9',
191
- )
192
- })
193
-
194
- /** @evidence TEST-CLI-PROGRAM-BUILDS-ISOLATED-ROOTS */
195
- test('builds a fresh Commander root for each consumer', async () => {
196
- const first = await buildProgram()
197
- first.command('__temporary-test-command')
198
-
199
- const second = await buildProgram()
200
- expect(second).not.toBe(first)
201
- expect(second.commands.some((command) => command.name() === '__temporary-test-command')).toBe(
202
- false,
203
- )
204
- })
205
- })
206
-
207
- describe('help contract — no internal SPEC anchors leak to users', () => {
208
- test('no rendered --help text contains a § section anchor', async () => {
209
- const program = await buildProgram()
210
- const offenders = allCommands(program)
211
- .filter((c) => c.helpInformation().includes('§'))
212
- .map((c) => c.name() || '<root>')
213
-
214
- expect(offenders).toEqual([])
215
- })
216
-
217
- test('Kernel and Instance vocabulary does not expose retired Host or Interface concepts', async () => {
218
- const program = await buildProgram()
219
- const help = allCommands(program)
220
- .map((command) => command.helpInformation())
221
- .join('\n')
222
-
223
- expect(help).not.toContain('host.astrale.ai')
224
- expect(help).not.toContain(':interface.')
225
- expect(help).not.toContain('Class or Interface')
226
- expect(help).not.toContain('emulated host')
227
- expect(help).not.toContain('Host shell')
228
- })
229
- })
230
-
231
- describe('help contract — IdP/auth surface is registered', () => {
232
- test('idp group and auth commands are visible in --help tree', async () => {
233
- const program = await buildProgram()
234
- const names = allCommands(program).map((command) => command.name())
235
-
236
- expect(names).toContain('idp')
237
- expect(names).toContain('add')
238
- expect(names).toContain('login')
239
- expect(names).toContain('token')
240
- expect(names).toContain('update')
241
- expect(program.helpInformation()).toContain('idp')
242
- expect(program.helpInformation()).toContain('update')
243
- })
244
- })
245
-
246
- describe('help contract — admin target surface is registered', () => {
247
- test('admin group and admin-target flags are visible', async () => {
248
- const program = await buildProgram()
249
- const names = allCommands(program).map((command) => command.name())
250
- const instanceCreate = allCommands(program).find((command) => command.name() === 'create')
251
-
252
- expect(names).toContain('admin')
253
- expect(names).toContain('status')
254
- expect(names).toContain('use')
255
- expect(program.helpInformation()).toContain('admin')
256
- expect(instanceCreate?.helpInformation()).toContain('--admin <name>')
257
- expect(instanceCreate?.helpInformation()).toContain('--admin-url <url>')
258
-
259
- const adminUse = program.commands
260
- .find((command) => command.name() === 'admin')
261
- ?.commands.find((command) => command.name() === 'use')
262
- expect(adminUse?.helpInformation()).toContain('--kernel-issuer <url>')
263
- expect(adminUse?.helpInformation()).toContain('--domain-issuer <url>')
264
- expect(adminUse?.helpInformation()).not.toContain('--issuer <url>')
265
- })
266
-
267
- test('instance create delegates infrastructure placement to Admin', async () => {
268
- const program = await buildProgram()
269
- const instanceCreate = allCommands(program).find((command) => command.name() === 'create')
270
- const help = instanceCreate?.helpInformation() ?? ''
271
-
272
- expect(help).toContain('Provision an instance through the Admin control plane')
273
- expect(help).not.toContain('Host')
274
- expect(help).not.toContain('Fleet')
275
- expect(help).not.toContain('--host-id')
276
- expect(help).not.toContain('--no-use')
277
- expect(help).not.toContain('Instance.init')
278
- })
279
- })
280
-
281
- describe('help contract — connect-only command surface', () => {
282
- test('runtime management commands are not registered', async () => {
283
- const program = await buildProgram()
284
- const names = allCommands(program).map((command) => command.name())
285
-
286
- // `logs` and `domain` have managed/admin meanings, so only retired verbs are absent.
287
- for (const removed of [
288
- 'init',
289
- 'start',
290
- 'stop',
291
- 'restart',
292
- 'reset',
293
- 'bootstrap',
294
- 'tunnel',
295
- 'graph',
296
- 'server',
297
- 'env',
298
- 'ls',
299
- 'describe',
300
- ]) {
301
- expect(names).not.toContain(removed)
302
- }
303
- })
304
- })
305
-
306
- describe('help contract — read command split', () => {
307
- test('get is point-read only and query owns structured read flags', async () => {
308
- const program = await buildProgram()
309
- const get = allCommands(program).find((command) => command.name() === 'get')
310
- const query = allCommands(program).find((command) => command.name() === 'query')
311
- const getHelp = get?.helpInformation() ?? ''
312
- const queryHelp = query?.helpInformation() ?? ''
313
-
314
- expect(getHelp).toContain('Usage: astrale get [options] <target>')
315
- expect(getHelp).not.toContain('-l, --long')
316
- expect(getHelp).not.toContain('--depth')
317
- expect(getHelp).not.toContain('--children')
318
- expect(getHelp).not.toContain('--edges')
319
- expect(getHelp).not.toContain('--graph')
320
-
321
- expect(queryHelp).toContain('Usage: astrale query [options] [sources...]')
322
- expect(queryHelp).not.toContain('--depth <n>')
323
- expect(queryHelp).not.toContain('--children <json>')
324
- expect(queryHelp).not.toContain('--edges <json>')
325
- expect(queryHelp).toContain('--ast <json>')
326
- expect(queryHelp).toContain('--definition <path>')
327
- expect(queryHelp).toContain('--edge <class>')
328
- expect(queryHelp).toContain('--direction <direction>')
329
- expect(queryHelp).toContain('--limit <n>')
330
- expect(queryHelp).toContain('--cursor <token>')
331
- expect(queryHelp).not.toContain('--cypher <query>')
332
- })
333
- })
334
-
335
- describe('help contract — explicit anonymous authentication', () => {
336
- test('kernel commands expose the credential-less session flag', async () => {
337
- const program = await buildProgram()
338
- const call = allCommands(program).find((command) => command.name() === 'call')
339
-
340
- expect(call?.helpInformation()).toContain('--anonymous')
341
- expect(call?.helpInformation()).toContain('Send no credential')
342
- })
343
- })
344
-
345
- describe('help contract — payload sources', () => {
346
- test('call excludes --file while mutate supports it', async () => {
347
- const program = await buildProgram()
348
- const call = allCommands(program).find((command) => command.name() === 'call')
349
- const mutate = allCommands(program).find((command) => command.name() === 'mutate')
350
- const callHelp = call?.helpInformation() ?? ''
351
- const mutateHelp = mutate?.helpInformation() ?? ''
352
-
353
- expect(callHelp).toContain('--data <json>')
354
- expect(callHelp).not.toContain('--file <path>')
355
- expect(callHelp).not.toContain('--describe')
356
- expect(mutateHelp).toContain('--data <json>')
357
- expect(mutateHelp).toContain('--file <path>')
358
- })
359
- })
360
-
361
- describe('help contract — skill is single-source, not duplicated', () => {
362
- const canonical = join(cliRoot, 'skills/astrale-cli/SKILL.md')
363
- // Workspace mirror lives in the superrepo, outside this submodule. Absent
364
- // when the CLI repo is tested standalone — only assert parity when present.
365
- const mirror = join(cliRoot, '../.agents/skills/astrale-cli/SKILL.md')
366
-
367
- test('canonical skill file exists and is non-empty', () => {
368
- expect(existsSync(canonical)).toBe(true)
369
- expect(readFileSync(canonical, 'utf8').length).toBeGreaterThan(0)
370
- })
371
-
372
- test.skipIf(!existsSync(mirror))(
373
- 'workspace mirror is byte-identical to the canonical skill',
374
- () => {
375
- expect(readFileSync(mirror, 'utf8')).toBe(readFileSync(canonical, 'utf8'))
376
- },
377
- )
378
- })
@@ -1,183 +0,0 @@
1
- import { Command, Option } from 'commander'
2
-
3
- import pkg from '../../package.json' with { type: 'json' }
4
- import { withKernelOptions } from './options'
5
- import { registerCommand, registerGroup } from './registry'
6
-
7
- /**
8
- * Build the fully-wired Commander program (every command + group registered)
9
- * WITHOUT parsing argv. `bin/astrale.ts` is a thin shim that calls this and
10
- * `.parse()`; tests import it to walk the command tree (the `--help` surface
11
- * is asserted to be the source of truth it claims to be — see
12
- * `program/__tests__/program.test.ts`).
13
- */
14
- export async function buildProgram(): Promise<Command> {
15
- const program = new Command()
16
-
17
- program
18
- .name('astrale')
19
- .description('Astrale CLI — connect to existing Astrale kernels')
20
- // Single source of truth = package.json (bumped by release-please together
21
- // with .release-please-manifest.json). Never hand-write a version literal.
22
- .version(pkg.version)
23
- .showSuggestionAfterError(true)
24
- .addOption(new Option('--ci', 'Machine mode: no prompts, structured errors on stderr'))
25
- .addOption(new Option('--no-prompt', 'Disable interactive prompts'))
26
- .action(async () => {
27
- // Bare `astrale` in an interactive terminal with nothing connected yet →
28
- // launch the guided setup. Otherwise (configured, piped, or CI) show help.
29
- if (process.stdin.isTTY && process.stdout.isTTY) {
30
- const { shouldAutostartSetup } = await import('../setup/engine')
31
- if (await shouldAutostartSetup()) {
32
- await (await import('../commands/setup')).default.action(undefined, {})
33
- return
34
- }
35
- }
36
- program.help()
37
- })
38
-
39
- // Verbatim alias of `identity whoami` — defer to the command-definition
40
- // module so options stay in sync.
41
- const whoamiMod = await import('../commands/identity/whoami')
42
- registerCommand(program, {
43
- name: 'whoami',
44
- description: 'Show the current default identity (alias for identity whoami)',
45
- options: whoamiMod.default.options,
46
- action: whoamiMod.default.action,
47
- })
48
- registerCommand(program, (await import('../commands/setup')).default)
49
- registerCommand(program, (await import('../commands/use')).default)
50
- registerCommand(program, (await import('../commands/update')).default)
51
-
52
- // ── Graph / kernel ─────────────────────────────────────────────
53
- registerCommand(program, withKernelOptions((await import('../commands/call')).default))
54
- registerCommand(program, withKernelOptions((await import('../commands/token')).default))
55
- registerCommand(program, withKernelOptions((await import('../commands/get')).default))
56
- registerCommand(program, withKernelOptions((await import('../commands/mutate')).default))
57
- registerCommand(program, withKernelOptions((await import('../commands/query')).default))
58
- registerCommand(program, withKernelOptions((await import('../commands/introspect')).default))
59
- registerCommand(program, withKernelOptions((await import('../commands/logs')).default))
60
- registerCommand(program, withKernelOptions((await import('../commands/view')).default))
61
- registerCommand(program, (await import('../commands/status')).default)
62
- registerCommand(program, (await import('../commands/browser')).default)
63
- registerCommand(program, (await import('../commands/view-serve')).default)
64
- registerCommand(program, (await import('../commands/studio')).default)
65
-
66
- registerGroup(program, {
67
- name: 'instance',
68
- description: 'Manage admin-provisioned instances and local bookmarks',
69
- commands: [
70
- withKernelOptions((await import('../commands/instance/list')).default),
71
- (await import('../commands/instance/bookmark')).default,
72
- (await import('../commands/instance/forget')).default,
73
- withKernelOptions((await import('../commands/instance/create')).default),
74
- withKernelOptions((await import('../commands/instance/delete')).default),
75
- withKernelOptions((await import('../commands/instance/status')).default),
76
- (await import('../commands/instance/active')).default,
77
- (await import('../commands/instance/use')).default,
78
- ],
79
- })
80
-
81
- registerGroup(program, {
82
- name: 'domain',
83
- description: 'List, publish, install, and uninstall domains',
84
- commands: [
85
- withKernelOptions((await import('../commands/domain/list')).default),
86
- withKernelOptions((await import('../commands/domain/publish')).default),
87
- withKernelOptions((await import('../commands/domain/install')).default),
88
- withKernelOptions((await import('../commands/domain/uninstall')).default),
89
- ],
90
- })
91
-
92
- registerGroup(program, {
93
- name: 'admin',
94
- description: 'Configure the admin kernel',
95
- commands: [
96
- (await import('../commands/admin/status')).default,
97
- (await import('../commands/admin/use')).default,
98
- ],
99
- })
100
-
101
- registerGroup(program, {
102
- name: 'identity',
103
- description: 'Manage CLI identities & delegation keypairs',
104
- commands: [
105
- (await import('../commands/identity/create')).default,
106
- withKernelOptions((await import('../commands/identity/register')).default),
107
- (await import('../commands/identity/list')).default,
108
- (await import('../commands/identity/use')).default,
109
- (await import('../commands/identity/whoami')).default,
110
- (await import('../commands/identity/delete')).default,
111
- (await import('../commands/identity/sync')).default,
112
- (await import('../commands/identity/unsync')).default,
113
- (await import('../commands/identity/export')).default,
114
- (await import('../commands/identity/import')).default,
115
- ],
116
- })
117
-
118
- registerGroup(program, {
119
- name: 'auth',
120
- description: 'Authenticate with configured identity providers',
121
- commands: [
122
- (await import('../commands/auth/login')).default,
123
- (await import('../commands/auth/token')).default,
124
- (await import('../commands/auth/logout')).default,
125
- (await import('../commands/auth/status')).default,
126
- ],
127
- })
128
-
129
- registerGroup(program, {
130
- name: 'session',
131
- description: 'Locally recorded work sessions: list and DX-analyze them',
132
- commands: [
133
- (await import('../commands/session/list')).default,
134
- (await import('../commands/session/analyze')).default,
135
- ],
136
- })
137
-
138
- registerGroup(program, {
139
- name: 'idp',
140
- description: 'Manage OpenID Connect identity providers',
141
- commands: [
142
- (await import('../commands/idp/add')).default,
143
- (await import('../commands/idp/list')).default,
144
- (await import('../commands/idp/show')).default,
145
- (await import('../commands/idp/refresh')).default,
146
- (await import('../commands/idp/remove')).default,
147
- ],
148
- })
149
-
150
- program.addHelpText(
151
- 'after',
152
- `
153
- Command groups:
154
- Getting started setup (sign in, pick an instance, equip your workspace)
155
- Kernel get, mutate, call, query, introspect, logs, view, token
156
- Management admin, instance, domain, identity, auth, idp, update
157
- Agent browser (drive the GUI via agent-browser)
158
- Studio studio (launch the local Domain Studio GUI for a workspace)
159
-
160
- Path syntax:
161
- /:origin Domain root
162
- /:origin:class.Name Class node
163
- /:origin:class.Name:method Static callable
164
- <nodePath>::method Instance method dispatch — double colon ::
165
- @nodeId Reference a node by its UID
166
- @nodeId::method Instance method on a node by UID
167
-
168
- Examples:
169
- $ astrale studio
170
- $ astrale admin status
171
- $ astrale update --check
172
- $ astrale instance bookmark staging --url https://kernel.example.com
173
- $ astrale instance create my-app
174
- $ astrale instance status staging
175
- $ astrale token --audience shell.astrale.ai --ttl 3600
176
- $ astrale query /:notes.example.dev:class.Note --limit 50
177
- $ astrale introspect /:kernel.astrale.ai:class.Identity:whois
178
- $ astrale query --file query.v6.json --cursor "$CURSOR"
179
- `,
180
- )
181
-
182
- return program
183
- }
@@ -1,42 +0,0 @@
1
- export interface CommandArgument {
2
- readonly name: string
3
- readonly description: string
4
- readonly required?: boolean
5
- }
6
-
7
- export interface CommandOption {
8
- readonly flags: string
9
- readonly description: string
10
- readonly default?: string
11
- readonly choices?: string[]
12
- }
13
-
14
- export interface CommandDefinition {
15
- readonly name: string
16
- readonly description: string
17
- /** One-line summary shown in the parent's command list (Commander `.summary()`). */
18
- readonly summary?: string
19
- /** Hide from help listings (internal entries, e.g. `__view-serve`). */
20
- readonly hidden?: boolean
21
- readonly aliases?: string[]
22
- readonly arguments?: CommandArgument[]
23
- readonly options?: CommandOption[]
24
- /**
25
- * Free-form prose appended to `<cmd> --help` (Commander `addHelpText('after')`).
26
- * Use for command-local behavior the flag list cannot express + canonical
27
- * examples. Pre-wrap lines to ~78 cols — Commander prints it verbatim.
28
- */
29
- readonly afterHelpText?: string
30
- /** Opaque Commander callback; each command module owns its concrete argument tuple. */
31
- readonly action: (...args: never[]) => Promise<void>
32
- }
33
-
34
- export interface CommandGroup {
35
- readonly name: string
36
- readonly description: string
37
- /** One-line summary shown in the program's command list (Commander `.summary()`). */
38
- readonly summary?: string
39
- readonly commands: CommandDefinition[]
40
- /** Nested subgroups (one extra level of `astrale foo bar baz` nesting). */
41
- readonly subgroups?: CommandGroup[]
42
- }
@@ -1,2 +0,0 @@
1
- export { buildProgram } from './build.js'
2
- export type { CommandArgument, CommandDefinition, CommandGroup, CommandOption } from './command.js'