@astrale-os/cli 1.0.0-beta.32 → 1.0.0-beta.43

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 (441) hide show
  1. package/CHANGELOG.md +928 -0
  2. package/README.md +53 -43
  3. package/THIRD-PARTY-NOTICES.md +37 -1
  4. package/dist/astrale.js +349631 -83669
  5. package/dist/public/connect-core.js +16 -47
  6. package/dist/public/keys/index.js +1 -1
  7. package/dist/types/admin/contract.d.ts +11 -0
  8. package/dist/types/admin/graph/index.d.ts +1 -0
  9. package/dist/types/admin/graph/nodes.d.ts +12 -0
  10. package/dist/types/admin/instance/client.d.ts +2 -0
  11. package/dist/types/connection/lifetime.d.ts +1 -1
  12. package/dist/types/errors.d.ts +3 -0
  13. package/dist/types/lib/proc.d.ts +1 -0
  14. package/dist/types/lib/update.d.ts +15 -7
  15. package/package.json +8 -6
  16. package/studio/client/dist/assets/index-5C1uT6ML.css +2 -0
  17. package/studio/client/dist/assets/index-C4kNlvwF.js +80 -0
  18. package/studio/client/dist/assets/schema-studio-BR9d0faB.js +8 -0
  19. package/studio/client/dist/index.html +13 -2
  20. package/studio/package.json +2 -1
  21. package/studio/server/agent/ask.test.ts +7 -1
  22. package/studio/server/agent/bridge/grant.ts +15 -3
  23. package/studio/server/agent/prompts/system.test.ts +5 -0
  24. package/studio/server/agent/prompts/system.ts +19 -4
  25. package/studio/server/agent/routes.test.ts +39 -1
  26. package/studio/server/agent/routes.ts +3 -0
  27. package/studio/server/agent/run/coordinator.test.ts +7 -1
  28. package/studio/server/agent/run/preparation.ts +1 -0
  29. package/studio/server/agent/run/transcript.test.ts +47 -2
  30. package/studio/server/agent/run/transcript.ts +32 -3
  31. package/studio/server/api/documents.test.ts +31 -0
  32. package/studio/server/api/documents.ts +35 -1
  33. package/studio/server/api-agent-loadout.test.ts +7 -1
  34. package/studio/server/api.test.ts +7 -1
  35. package/studio/server/cache.ts +4 -4
  36. package/studio/server/detect.ts +9 -12
  37. package/studio/server/domain.test.ts +83 -3
  38. package/studio/server/domain.ts +205 -27
  39. package/studio/server/handoff/service.ts +1 -1
  40. package/studio/server/index.ts +5 -8
  41. package/studio/server/introspect/extractor.ts +111 -17
  42. package/studio/server/introspect/overlay-tsmorph.test.ts +9 -9
  43. package/studio/server/introspect/overlay.ts +1 -1
  44. package/studio/server/introspect/runtime.ts +9 -1
  45. package/studio/server/introspect/source-overlay/spans.ts +2 -5
  46. package/studio/server/lifecycle.ts +1 -1
  47. package/studio/server/state/baseline.test.ts +14 -0
  48. package/studio/server/state/baseline.ts +16 -2
  49. package/studio/server/watch.test.ts +2 -1
  50. package/studio/server/watch.ts +5 -2
  51. package/studio/server/workspace/create.ts +9 -8
  52. package/studio/server/workspace-state.ts +4 -6
  53. package/studio/server/workspace-watch.ts +33 -22
  54. package/studio/shared/contracts/agent.ts +3 -0
  55. package/viewer/dist/main.js +12 -12
  56. package/src/__tests__/fixtures/publication.ts +0 -20
  57. package/src/admin/.spec/api.d.ts +0 -3
  58. package/src/admin/.spec/architecture.md +0 -22
  59. package/src/admin/.spec/icon.svg +0 -3
  60. package/src/admin/.spec/layout.ts +0 -6
  61. package/src/admin/__tests__/fixture.ts +0 -25
  62. package/src/admin/catalog/.spec/api.d.ts +0 -63
  63. package/src/admin/catalog/.spec/architecture.md +0 -7
  64. package/src/admin/catalog/.spec/icon.svg +0 -3
  65. package/src/admin/catalog/.spec/layout.ts +0 -6
  66. package/src/admin/catalog/__tests__/client.test.ts +0 -245
  67. package/src/admin/catalog/client.ts +0 -195
  68. package/src/admin/catalog/index.ts +0 -13
  69. package/src/admin/catalog/model.ts +0 -41
  70. package/src/admin/catalog/tsconfig.json +0 -8
  71. package/src/admin/contract.ts +0 -47
  72. package/src/admin/graph/.spec/api.d.ts +0 -22
  73. package/src/admin/graph/.spec/architecture.md +0 -5
  74. package/src/admin/graph/.spec/icon.svg +0 -3
  75. package/src/admin/graph/.spec/layout.ts +0 -3
  76. package/src/admin/graph/index.ts +0 -6
  77. package/src/admin/graph/nodes.ts +0 -56
  78. package/src/admin/index.ts +0 -2
  79. package/src/admin/instance/.spec/api.d.ts +0 -62
  80. package/src/admin/instance/.spec/architecture.md +0 -10
  81. package/src/admin/instance/.spec/icon.svg +0 -3
  82. package/src/admin/instance/.spec/layout.ts +0 -6
  83. package/src/admin/instance/__tests__/client.test.ts +0 -273
  84. package/src/admin/instance/client.ts +0 -191
  85. package/src/admin/instance/index.ts +0 -15
  86. package/src/admin/instance/model.ts +0 -59
  87. package/src/admin/instance/tsconfig.json +0 -8
  88. package/src/commands/__tests__/admin-instance.test.ts +0 -91
  89. package/src/commands/__tests__/auth-login.test.ts +0 -231
  90. package/src/commands/__tests__/auth-token.test.ts +0 -223
  91. package/src/commands/__tests__/call-describe.test.ts +0 -80
  92. package/src/commands/__tests__/call.test.ts +0 -63
  93. package/src/commands/__tests__/domain-install-operation.test.ts +0 -145
  94. package/src/commands/__tests__/domain-install-owned.test.ts +0 -191
  95. package/src/commands/__tests__/domain-list.test.ts +0 -133
  96. package/src/commands/__tests__/domain-uninstall.test.ts +0 -53
  97. package/src/commands/__tests__/install-direct.test.ts +0 -128
  98. package/src/commands/__tests__/install-identity-override.test.ts +0 -76
  99. package/src/commands/__tests__/instance-bookmark.test.ts +0 -166
  100. package/src/commands/__tests__/instance-list-admin.test.ts +0 -26
  101. package/src/commands/__tests__/instance-list-rows.test.ts +0 -64
  102. package/src/commands/__tests__/instance-status.test.ts +0 -139
  103. package/src/commands/__tests__/instance-use.test.ts +0 -67
  104. package/src/commands/__tests__/introspect-parse.test.ts +0 -100
  105. package/src/commands/__tests__/logs.test.ts +0 -345
  106. package/src/commands/__tests__/read-commands.test.ts +0 -377
  107. package/src/commands/__tests__/setup-plan.test.ts +0 -61
  108. package/src/commands/__tests__/studio-descriptor.test.ts +0 -22
  109. package/src/commands/__tests__/token-ttl.test.ts +0 -66
  110. package/src/commands/__tests__/update.test.ts +0 -95
  111. package/src/commands/__tests__/view-build.test.ts +0 -58
  112. package/src/commands/__tests__/view.test.ts +0 -197
  113. package/src/commands/admin/status.ts +0 -61
  114. package/src/commands/admin/use.ts +0 -100
  115. package/src/commands/auth/login.ts +0 -82
  116. package/src/commands/auth/logout.ts +0 -53
  117. package/src/commands/auth/status.ts +0 -86
  118. package/src/commands/auth/token.ts +0 -174
  119. package/src/commands/browser.ts +0 -236
  120. package/src/commands/call-describe.ts +0 -123
  121. package/src/commands/call.ts +0 -230
  122. package/src/commands/domain/install.ts +0 -575
  123. package/src/commands/domain/list.ts +0 -155
  124. package/src/commands/domain/publish.ts +0 -136
  125. package/src/commands/domain/uninstall.ts +0 -128
  126. package/src/commands/get.ts +0 -69
  127. package/src/commands/identity/__tests__/register.test.ts +0 -93
  128. package/src/commands/identity/create.ts +0 -35
  129. package/src/commands/identity/delete.ts +0 -24
  130. package/src/commands/identity/export.ts +0 -46
  131. package/src/commands/identity/import.ts +0 -61
  132. package/src/commands/identity/list.ts +0 -56
  133. package/src/commands/identity/register.ts +0 -195
  134. package/src/commands/identity/sync.ts +0 -38
  135. package/src/commands/identity/unsync.ts +0 -34
  136. package/src/commands/identity/use.ts +0 -24
  137. package/src/commands/identity/whoami.ts +0 -34
  138. package/src/commands/idp/add.ts +0 -150
  139. package/src/commands/idp/list.ts +0 -57
  140. package/src/commands/idp/refresh.ts +0 -38
  141. package/src/commands/idp/remove.ts +0 -36
  142. package/src/commands/idp/show.ts +0 -29
  143. package/src/commands/instance/active.ts +0 -73
  144. package/src/commands/instance/bookmark.ts +0 -101
  145. package/src/commands/instance/create.ts +0 -61
  146. package/src/commands/instance/delete.ts +0 -69
  147. package/src/commands/instance/forget.ts +0 -26
  148. package/src/commands/instance/list.ts +0 -197
  149. package/src/commands/instance/status.ts +0 -92
  150. package/src/commands/instance/use.ts +0 -263
  151. package/src/commands/introspect.ts +0 -129
  152. package/src/commands/logs.ts +0 -371
  153. package/src/commands/mutate.ts +0 -122
  154. package/src/commands/query.ts +0 -142
  155. package/src/commands/session/analyze.ts +0 -72
  156. package/src/commands/session/list.ts +0 -36
  157. package/src/commands/setup.ts +0 -54
  158. package/src/commands/status.ts +0 -60
  159. package/src/commands/studio.ts +0 -434
  160. package/src/commands/token.ts +0 -121
  161. package/src/commands/ui/__tests__/commands.test.ts +0 -152
  162. package/src/commands/ui/add.ts +0 -51
  163. package/src/commands/ui/doctor.ts +0 -21
  164. package/src/commands/ui/init.ts +0 -38
  165. package/src/commands/ui/list.ts +0 -26
  166. package/src/commands/ui/preset-apply.ts +0 -19
  167. package/src/commands/ui/preset-list.ts +0 -12
  168. package/src/commands/ui/shared.ts +0 -25
  169. package/src/commands/update.ts +0 -356
  170. package/src/commands/use.ts +0 -86
  171. package/src/commands/view-serve.ts +0 -26
  172. package/src/commands/view.ts +0 -658
  173. package/src/connect-core.test.ts +0 -38
  174. package/src/connect-core.ts +0 -42
  175. package/src/connection/.spec/api.d.ts +0 -110
  176. package/src/connection/.spec/architecture.md +0 -58
  177. package/src/connection/.spec/capabilities/connection.ts +0 -13
  178. package/src/connection/.spec/examples/call.ts +0 -7
  179. package/src/connection/.spec/flows/command.ts +0 -20
  180. package/src/connection/.spec/flows/session.ts +0 -62
  181. package/src/connection/.spec/laws/connection.ts +0 -213
  182. package/src/connection/.spec/layout.ts +0 -22
  183. package/src/connection/__tests__/auth.test.ts +0 -129
  184. package/src/connection/__tests__/ca-fetch.test.ts +0 -60
  185. package/src/connection/__tests__/call.test.ts +0 -17
  186. package/src/connection/__tests__/credential.test.ts +0 -254
  187. package/src/connection/__tests__/errors.test.ts +0 -577
  188. package/src/connection/__tests__/exchange.test.ts +0 -404
  189. package/src/connection/__tests__/failure-fixtures.ts +0 -39
  190. package/src/connection/__tests__/failure-safety.test.ts +0 -75
  191. package/src/connection/__tests__/fixtures/localhost-cert.pem +0 -19
  192. package/src/connection/__tests__/fixtures/localhost-key.base64 +0 -1
  193. package/src/connection/__tests__/managed.test.ts +0 -39
  194. package/src/connection/__tests__/reasons.test.ts +0 -78
  195. package/src/connection/__tests__/self.test.ts +0 -71
  196. package/src/connection/__tests__/session.test.ts +0 -144
  197. package/src/connection/__tests__/target.test.ts +0 -95
  198. package/src/connection/auth.ts +0 -265
  199. package/src/connection/call.ts +0 -7
  200. package/src/connection/command.ts +0 -67
  201. package/src/connection/credential.ts +0 -138
  202. package/src/connection/errors.ts +0 -1
  203. package/src/connection/exchange.ts +0 -394
  204. package/src/connection/failure/classify.ts +0 -110
  205. package/src/connection/failure/index.ts +0 -18
  206. package/src/connection/failure/model.ts +0 -28
  207. package/src/connection/failure/render.ts +0 -116
  208. package/src/connection/index.ts +0 -8
  209. package/src/connection/lifetime.ts +0 -25
  210. package/src/connection/reasons.ts +0 -209
  211. package/src/connection/self.ts +0 -138
  212. package/src/connection/session.ts +0 -203
  213. package/src/connection/target.ts +0 -112
  214. package/src/connection/tsconfig.json +0 -6
  215. package/src/errors.ts +0 -66
  216. package/src/graph/.spec/api.d.ts +0 -41
  217. package/src/graph/.spec/laws/documents.ts +0 -24
  218. package/src/graph/.spec/laws/projection.ts +0 -13
  219. package/src/graph/.spec/layout.ts +0 -14
  220. package/src/graph/__tests__/mutation.test.ts +0 -51
  221. package/src/graph/__tests__/projection.test.ts +0 -22
  222. package/src/graph/__tests__/query.test.ts +0 -180
  223. package/src/graph/class.ts +0 -30
  224. package/src/graph/index.ts +0 -4
  225. package/src/graph/mutation.ts +0 -46
  226. package/src/graph/projection.ts +0 -21
  227. package/src/graph/query.ts +0 -95
  228. package/src/graph/tsconfig.json +0 -6
  229. package/src/identity/.history/ard/bootstrap-root-transfer.md +0 -57
  230. package/src/identity/.history/ard/domain-mediated-registration.md +0 -36
  231. package/src/identity/.spec/api.d.ts +0 -124
  232. package/src/identity/.spec/architecture.md +0 -33
  233. package/src/identity/.spec/capabilities/identity.ts +0 -7
  234. package/src/identity/.spec/flows/bootstrap-root.ts +0 -79
  235. package/src/identity/.spec/flows/domain-mediated-registration.ts +0 -51
  236. package/src/identity/.spec/flows/import.ts +0 -29
  237. package/src/identity/.spec/laws/identity.ts +0 -56
  238. package/src/identity/.spec/layout.ts +0 -13
  239. package/src/identity/__tests__/fixtures/registry-journey.ts +0 -65
  240. package/src/identity/__tests__/registration.test.ts +0 -64
  241. package/src/identity/__tests__/registry.test.ts +0 -74
  242. package/src/identity/__tests__/transfer.test.ts +0 -198
  243. package/src/identity/index.ts +0 -23
  244. package/src/identity/registration.ts +0 -72
  245. package/src/identity/registry.ts +0 -181
  246. package/src/identity/transfer.ts +0 -187
  247. package/src/identity/tsconfig.json +0 -6
  248. package/src/index.ts +0 -1
  249. package/src/keys/.spec/api.d.ts +0 -74
  250. package/src/keys/.spec/architecture.md +0 -13
  251. package/src/keys/.spec/laws/keys.ts +0 -43
  252. package/src/keys/.spec/layout.ts +0 -6
  253. package/src/keys/__tests__/algorithm.test.ts +0 -39
  254. package/src/keys/__tests__/keys.test.ts +0 -172
  255. package/src/keys/algorithm.ts +0 -33
  256. package/src/keys/credential.ts +0 -113
  257. package/src/keys/index.ts +0 -14
  258. package/src/keys/pair.ts +0 -219
  259. package/src/keys/tsconfig.json +0 -6
  260. package/src/lib/__tests__/admin-target.test.ts +0 -184
  261. package/src/lib/__tests__/binary.test.ts +0 -70
  262. package/src/lib/__tests__/browser-retention.test.ts +0 -212
  263. package/src/lib/__tests__/command-dx.test.ts +0 -102
  264. package/src/lib/__tests__/concurrency.test.ts +0 -62
  265. package/src/lib/__tests__/config.test.ts +0 -81
  266. package/src/lib/__tests__/design.test.ts +0 -99
  267. package/src/lib/__tests__/domain-publication.test.ts +0 -138
  268. package/src/lib/__tests__/format.test.ts +0 -22
  269. package/src/lib/__tests__/idp-session.driver.ts +0 -60
  270. package/src/lib/__tests__/idp-session.test.ts +0 -404
  271. package/src/lib/__tests__/idp.test.ts +0 -415
  272. package/src/lib/__tests__/instance-candidates.test.ts +0 -146
  273. package/src/lib/__tests__/instance-target.test.ts +0 -213
  274. package/src/lib/__tests__/instance.test.ts +0 -192
  275. package/src/lib/__tests__/local-status.test.ts +0 -202
  276. package/src/lib/__tests__/log-errors.test.ts +0 -64
  277. package/src/lib/__tests__/log.test.ts +0 -31
  278. package/src/lib/__tests__/meta.test.ts +0 -55
  279. package/src/lib/__tests__/output.test.ts +0 -162
  280. package/src/lib/__tests__/panel.test.ts +0 -40
  281. package/src/lib/__tests__/port.test.ts +0 -44
  282. package/src/lib/__tests__/prompt.test.ts +0 -25
  283. package/src/lib/__tests__/sdk-deps.test.ts +0 -68
  284. package/src/lib/__tests__/self.test.ts +0 -50
  285. package/src/lib/__tests__/skills.test.ts +0 -834
  286. package/src/lib/__tests__/studio-server-deps.test.ts +0 -111
  287. package/src/lib/__tests__/table.test.ts +0 -53
  288. package/src/lib/__tests__/update.test.ts +0 -511
  289. package/src/lib/__tests__/use-target.test.ts +0 -56
  290. package/src/lib/__tests__/validation.test.ts +0 -34
  291. package/src/lib/__tests__/view-assets.test.ts +0 -171
  292. package/src/lib/__tests__/view-external-open-intent.test.ts +0 -150
  293. package/src/lib/__tests__/view-external-open-origins.test.ts +0 -27
  294. package/src/lib/__tests__/view-open-intent.test.ts +0 -280
  295. package/src/lib/__tests__/view-port-allocation.test.ts +0 -82
  296. package/src/lib/__tests__/view-server.test.ts +0 -91
  297. package/src/lib/__tests__/view-session.test.ts +0 -100
  298. package/src/lib/__tests__/view-snapshot.test.ts +0 -77
  299. package/src/lib/admin-domain.ts +0 -43
  300. package/src/lib/admin-instance.ts +0 -56
  301. package/src/lib/admin-target.ts +0 -290
  302. package/src/lib/binary.ts +0 -127
  303. package/src/lib/browser-retention.ts +0 -210
  304. package/src/lib/browser.ts +0 -150
  305. package/src/lib/ca-fetch.ts +0 -133
  306. package/src/lib/command-dx.ts +0 -191
  307. package/src/lib/concurrency.ts +0 -31
  308. package/src/lib/config.ts +0 -57
  309. package/src/lib/credential-lifetime.ts +0 -24
  310. package/src/lib/domain-publication.ts +0 -104
  311. package/src/lib/failure-debug.ts +0 -26
  312. package/src/lib/format.ts +0 -4
  313. package/src/lib/idp-session.ts +0 -156
  314. package/src/lib/idp.ts +0 -926
  315. package/src/lib/instance-candidates.ts +0 -49
  316. package/src/lib/instance-target.ts +0 -197
  317. package/src/lib/instance.ts +0 -468
  318. package/src/lib/invocation.ts +0 -11
  319. package/src/lib/local-status.ts +0 -152
  320. package/src/lib/log.ts +0 -143
  321. package/src/lib/login-flow.ts +0 -201
  322. package/src/lib/meta.ts +0 -90
  323. package/src/lib/output.ts +0 -238
  324. package/src/lib/panel.ts +0 -61
  325. package/src/lib/port.ts +0 -41
  326. package/src/lib/proc.ts +0 -87
  327. package/src/lib/prompt.ts +0 -136
  328. package/src/lib/provision-instance.ts +0 -139
  329. package/src/lib/sdk-deps.ts +0 -104
  330. package/src/lib/self.ts +0 -22
  331. package/src/lib/skills/lock.ts +0 -117
  332. package/src/lib/skills/sync.ts +0 -878
  333. package/src/lib/skills.ts +0 -120
  334. package/src/lib/table.ts +0 -62
  335. package/src/lib/update.ts +0 -568
  336. package/src/lib/use-target.ts +0 -24
  337. package/src/lib/validation.ts +0 -59
  338. package/src/lib/view/assets.ts +0 -87
  339. package/src/lib/view/external-open-intent.ts +0 -41
  340. package/src/lib/view/external-open-origins.ts +0 -37
  341. package/src/lib/view/host-capabilities.ts +0 -17
  342. package/src/lib/view/open-intent.ts +0 -67
  343. package/src/lib/view/port-allocation.ts +0 -19
  344. package/src/lib/view/resolve.ts +0 -111
  345. package/src/lib/view/server.ts +0 -259
  346. package/src/lib/view/session.ts +0 -154
  347. package/src/lib/view/snapshot.ts +0 -101
  348. package/src/paths/.spec/api.d.ts +0 -13
  349. package/src/paths/.spec/architecture.md +0 -5
  350. package/src/paths/.spec/layout.ts +0 -3
  351. package/src/paths/index.ts +0 -13
  352. package/src/program/.spec/api.d.ts +0 -43
  353. package/src/program/.spec/architecture.md +0 -18
  354. package/src/program/.spec/laws/program.ts +0 -29
  355. package/src/program/.spec/layout.ts +0 -14
  356. package/src/program/__tests__/program.test.ts +0 -556
  357. package/src/program/argv.ts +0 -14
  358. package/src/program/build.ts +0 -205
  359. package/src/program/command.ts +0 -43
  360. package/src/program/index.ts +0 -3
  361. package/src/program/options.ts +0 -41
  362. package/src/program/registry.ts +0 -64
  363. package/src/program/tsconfig.json +0 -6
  364. package/src/setup/__tests__/instance-step.test.ts +0 -256
  365. package/src/setup/__tests__/util.test.ts +0 -29
  366. package/src/setup/engine.ts +0 -83
  367. package/src/setup/render.ts +0 -107
  368. package/src/setup/steps/admin.ts +0 -93
  369. package/src/setup/steps/agent-browser.ts +0 -81
  370. package/src/setup/steps/auth.ts +0 -54
  371. package/src/setup/steps/domain.ts +0 -68
  372. package/src/setup/steps/index.ts +0 -18
  373. package/src/setup/steps/instance.ts +0 -206
  374. package/src/setup/steps/skills-bridge.ts +0 -70
  375. package/src/setup/steps/skills.ts +0 -61
  376. package/src/setup/types.ts +0 -61
  377. package/src/setup/util.ts +0 -34
  378. package/src/state/.spec/api.d.ts +0 -152
  379. package/src/state/.spec/architecture.md +0 -45
  380. package/src/state/.spec/capabilities/state.ts +0 -7
  381. package/src/state/.spec/flows/identity-update.ts +0 -22
  382. package/src/state/.spec/laws/state.ts +0 -73
  383. package/src/state/.spec/layout.ts +0 -15
  384. package/src/state/__tests__/exchange-credentials.test.ts +0 -341
  385. package/src/state/__tests__/files.test.ts +0 -136
  386. package/src/state/__tests__/fixtures/identity-transition.ts +0 -37
  387. package/src/state/__tests__/fixtures/session-route-process.ts +0 -93
  388. package/src/state/__tests__/identities.test.ts +0 -142
  389. package/src/state/__tests__/paths.test.ts +0 -28
  390. package/src/state/__tests__/session-routes.test.ts +0 -138
  391. package/src/state/exchange-credentials.ts +0 -250
  392. package/src/state/files.ts +0 -170
  393. package/src/state/identities.ts +0 -229
  394. package/src/state/index.ts +0 -31
  395. package/src/state/paths.ts +0 -64
  396. package/src/state/session-routes.ts +0 -34
  397. package/src/state/tsconfig.json +0 -6
  398. package/src/telemetry/__tests__/analyze-log.test.ts +0 -38
  399. package/src/telemetry/__tests__/gate.test.ts +0 -63
  400. package/src/telemetry/__tests__/recorder.test.ts +0 -111
  401. package/src/telemetry/__tests__/redact.test.ts +0 -79
  402. package/src/telemetry/__tests__/retention.test.ts +0 -267
  403. package/src/telemetry/__tests__/session.test.ts +0 -166
  404. package/src/telemetry/__tests__/settings.test.ts +0 -102
  405. package/src/telemetry/__tests__/store-scan.test.ts +0 -128
  406. package/src/telemetry/__tests__/trigger.test.ts +0 -78
  407. package/src/telemetry/adapters/__tests__/claude-code.test.ts +0 -89
  408. package/src/telemetry/adapters/__tests__/codex.test.ts +0 -138
  409. package/src/telemetry/adapters/__tests__/index.test.ts +0 -88
  410. package/src/telemetry/adapters/claude-code.ts +0 -90
  411. package/src/telemetry/adapters/codex.ts +0 -160
  412. package/src/telemetry/adapters/index.ts +0 -45
  413. package/src/telemetry/adapters/types.ts +0 -21
  414. package/src/telemetry/analyze.ts +0 -249
  415. package/src/telemetry/gate.ts +0 -79
  416. package/src/telemetry/recorder.ts +0 -68
  417. package/src/telemetry/redact.ts +0 -53
  418. package/src/telemetry/retention.ts +0 -176
  419. package/src/telemetry/session.ts +0 -94
  420. package/src/telemetry/settings.ts +0 -79
  421. package/src/telemetry/store.ts +0 -174
  422. package/src/telemetry/trigger.ts +0 -107
  423. package/src/telemetry/types.ts +0 -64
  424. package/src/test-utils.ts +0 -18
  425. package/src/ui/.spec/api.d.ts +0 -14
  426. package/src/ui/.spec/architecture.md +0 -14
  427. package/src/ui/.spec/laws.ts +0 -50
  428. package/src/ui/.spec/layout.ts +0 -16
  429. package/src/ui/__tests__/ui.test.ts +0 -1742
  430. package/src/ui/index.ts +0 -13
  431. package/src/ui/lock.ts +0 -89
  432. package/src/ui/model.ts +0 -83
  433. package/src/ui/operations.ts +0 -1044
  434. package/src/ui/project.ts +0 -333
  435. package/src/ui/release.ts +0 -398
  436. package/src/ui/runner.ts +0 -18
  437. package/studio/client/dist/assets/index-BFVFs_8x.js +0 -81
  438. package/studio/client/dist/assets/index-DuB9iUdu.css +0 -2
  439. package/studio/client/dist/assets/schema-studio-DH6oEWME.js +0 -8
  440. package/studio/tsconfig.json +0 -24
  441. package/viewer/tsconfig.json +0 -13
@@ -1,356 +0,0 @@
1
- import type { CommandDefinition } from '../program/index'
2
-
3
- import pkg from '../../package.json' with { type: 'json' }
4
- import { fatal, log } from '../lib/log'
5
- import { isMachine, output, RAW_OUTPUT_OPTIONS, type RawOutputOpts } from '../lib/output'
6
- import { confirmDefaultYes } from '../lib/prompt'
7
- import {
8
- applySdkUpdate,
9
- findSdkOutdated,
10
- foreignPackageManager,
11
- inDomainProject,
12
- type SdkOutdated,
13
- } from '../lib/sdk-deps'
14
- import {
15
- checkAstraleSkills,
16
- type SkillApplyResult,
17
- type SkillCheckResult,
18
- syncAstraleSkills,
19
- } from '../lib/skills'
20
- import { DEFAULT_UPDATE_CHANNEL, packageManagedUpdateError, updateAstrale } from '../lib/update'
21
-
22
- type UpdateOpts = RawOutputOpts & {
23
- check?: boolean
24
- channel?: string
25
- version?: string
26
- skills?: boolean
27
- deps?: boolean
28
- yes?: boolean
29
- }
30
-
31
- async function refreshSkills(): Promise<SkillApplyResult> {
32
- log.step('Ensuring Astrale agent skills are current and healthy')
33
- const result = await syncAstraleSkills()
34
- if (result.status === 'unchanged') log.success('Astrale skills already up to date')
35
- else if (result.status === 'installed') log.success('Astrale skills installed')
36
- else if (result.status === 'updated') log.success('Astrale skills updated')
37
- else if (result.status === 'repaired') log.success('Astrale skills repaired and updated')
38
- return result
39
- }
40
-
41
- function skillCheckStale(skills: SkillCheckResult): boolean {
42
- return skills.status === 'update-available' || skills.status === 'repair-needed'
43
- }
44
-
45
- function printSkillCheck(skills: SkillCheckResult): void {
46
- if (skills.status === 'current') log.success('Astrale skills are up to date')
47
- else if (skills.status === 'update-available') log.info('Astrale skills update available')
48
- else if (skills.status === 'repair-needed') log.warn('Astrale skills need repair')
49
- else if (skills.status === 'unavailable') {
50
- log.warn(`Could not verify Astrale skills${skills.error ? `: ${skills.error}` : ''}`)
51
- }
52
- }
53
-
54
- /**
55
- * Keep the project's first-party `@astrale-os/*` dependencies current by
56
- * delegating to pnpm (`pnpm outdated` to detect, `pnpm update --latest` to
57
- * apply). Runs only inside a domain project (the `astrale.config.ts` marker) and
58
- * only when pnpm owns it; elsewhere it's a silent no-op. On a dry run (`check`)
59
- * it only reports. Otherwise it lists the available bumps and applies them behind
60
- * a single confirm — pnpm rewrites package.json AND the lockfile (no build scripts
61
- * run; the user runs `pnpm install` to materialize). Returns true when bumps were
62
- * available (so `--check` can exit 10). Best-effort: pnpm missing or any error
63
- * surfaces as "up to date".
64
- */
65
- async function refreshSdkDeps(check: boolean, assumeYes = false): Promise<boolean> {
66
- if (!inDomainProject()) return false
67
-
68
- const foreign = foreignPackageManager()
69
- if (foreign) {
70
- if (!check) {
71
- log.dim(
72
- ` SDK dep check uses pnpm; this project uses ${foreign} — update it with ${foreign}.`,
73
- )
74
- }
75
- return false
76
- }
77
-
78
- const outdated = await findSdkOutdated()
79
- if (outdated.length === 0) {
80
- if (!check) log.dim(' @astrale-os SDK packages are up to date')
81
- return false
82
- }
83
-
84
- const plural = outdated.length === 1 ? '' : 's'
85
- log.info(`@astrale-os SDK package${plural} with a newer release (${outdated.length}):`)
86
- for (const o of outdated) log.dim(` ${o.pkg} ${o.current} → ${o.latest}`)
87
-
88
- if (check) return true // dry run — report only
89
-
90
- if (
91
- !assumeYes &&
92
- !(await confirmDefaultYes(
93
- `Update ${outdated.length} @astrale-os dep${plural} (pnpm update --latest)?`,
94
- ))
95
- ) {
96
- log.dim(' Skipped — your package.json is unchanged.')
97
- return true
98
- }
99
- log.step('pnpm update --latest --lockfile-only "@astrale-os/*"')
100
- if (await applySdkUpdate()) {
101
- log.success(`Updated ${outdated.length} @astrale-os dep${plural} in package.json + lockfile`)
102
- log.dim(' Run `pnpm install` to materialize the new versions.')
103
- } else {
104
- log.warn(' Update did not complete — run it yourself: pnpm update --latest "@astrale-os/*"')
105
- }
106
- return true
107
- }
108
-
109
- /**
110
- * Read-only staleness report for tooling — `astrale update --check --json`.
111
- * domain-studio polls this on load to drive its "update available" badge. It is
112
- * unified and NON-THROWING: an explicit package-managed result uses npm release
113
- * identity, while script-install failures remain script failures in `error`
114
- * instead of being recategorized. The SDK axis is already best-effort. Skills
115
- * report meaningful health/freshness states. A current cohort also exposes its exact
116
- * source revision, skill trees, and entrypoints without leaking installer-local paths.
117
- */
118
- export type StaleReport = {
119
- stale: boolean
120
- cli: {
121
- stale: boolean
122
- managed: boolean
123
- current?: string
124
- latest?: string
125
- channel?: string
126
- error?: string
127
- }
128
- skills: SkillCheckResult
129
- sdk: { stale: boolean; inProject: boolean; outdated: SdkOutdated[] }
130
- }
131
-
132
- type CliStaleDependencies = {
133
- update: typeof updateAstrale
134
- fetchPackageVersion: (opts: Pick<UpdateOpts, 'channel' | 'version'>) => Promise<string>
135
- }
136
-
137
- const CLI_STALE_DEPENDENCIES: CliStaleDependencies = {
138
- update: updateAstrale,
139
- fetchPackageVersion: fetchNpmTargetVersion,
140
- }
141
-
142
- export async function cliStale(
143
- opts: Pick<UpdateOpts, 'channel' | 'version'>,
144
- dependencies: CliStaleDependencies = CLI_STALE_DEPENDENCIES,
145
- ): Promise<StaleReport['cli']> {
146
- const running = pkg.version
147
- const target = { ...opts, channel: opts.channel ?? DEFAULT_UPDATE_CHANNEL }
148
- try {
149
- const r = await dependencies.update({
150
- check: true,
151
- channel: target.channel,
152
- version: target.version,
153
- currentVersion: running,
154
- })
155
- if (r.status === 'managed') {
156
- const latest = await dependencies.fetchPackageVersion(target).catch(() => undefined)
157
- return {
158
- stale: latest !== undefined && latest !== running,
159
- managed: true,
160
- current: running,
161
- ...(latest === undefined ? {} : { latest, channel: 'npm' }),
162
- }
163
- }
164
- if (r.status === 'updated') {
165
- return {
166
- stale: false,
167
- managed: false,
168
- current: r.currentVersion,
169
- latest: r.currentVersion,
170
- channel: r.channel,
171
- }
172
- }
173
- return {
174
- stale: r.status === 'available',
175
- managed: false,
176
- current: r.currentVersion,
177
- latest: r.latestVersion,
178
- channel: r.channel,
179
- }
180
- } catch (error) {
181
- return {
182
- stale: false,
183
- managed: false,
184
- current: running,
185
- error: error instanceof Error ? error.message : String(error),
186
- }
187
- }
188
- }
189
-
190
- export async function fetchNpmTargetVersion(
191
- opts: Pick<UpdateOpts, 'channel' | 'version'>,
192
- ): Promise<string> {
193
- const channel = opts.channel ?? DEFAULT_UPDATE_CHANNEL
194
- const target = opts.version ?? (channel === 'stable' ? 'latest' : channel)
195
- const response = await fetch(`https://registry.npmjs.org/@astrale-os/cli/${target}`)
196
- if (!response.ok) throw new Error(`npm registry HTTP ${response.status}`)
197
- const body: unknown = await response.json()
198
- if (
199
- body === null ||
200
- typeof body !== 'object' ||
201
- typeof (body as { version?: unknown }).version !== 'string'
202
- ) {
203
- throw new Error('npm registry latest document is missing version')
204
- }
205
- return (body as { version: string }).version
206
- }
207
-
208
- async function sdkStale(): Promise<StaleReport['sdk']> {
209
- if (!inDomainProject() || foreignPackageManager()) {
210
- return { stale: false, inProject: inDomainProject(), outdated: [] }
211
- }
212
- const outdated = await findSdkOutdated()
213
- return { stale: outdated.length > 0, inProject: true, outdated }
214
- }
215
-
216
- export default {
217
- name: 'update',
218
- description: 'Check for and install Astrale CLI updates',
219
- options: [
220
- { flags: '--check', description: 'Only check whether an update is available' },
221
- {
222
- flags: '--channel <name>',
223
- description: 'Update from a release channel (alpha, beta, rc, canary, stable)',
224
- default: DEFAULT_UPDATE_CHANNEL,
225
- },
226
- { flags: '--version <version>', description: 'Update to an exact version tag' },
227
- { flags: '--no-skills', description: 'Skip ensuring the Astrale agent skills' },
228
- { flags: '--no-deps', description: 'Skip checking @astrale-os SDK dependency versions' },
229
- {
230
- flags: '--yes',
231
- description: 'Non-interactive: apply CLI + skills + SDK deps without prompts',
232
- },
233
- ...RAW_OUTPUT_OPTIONS,
234
- ],
235
- afterHelpText: `
236
- Behavior:
237
- Keeps three things current, in order. (1) The CLI binary: updates official
238
- script installs only — if Astrale was installed by another package manager this
239
- command refuses so that manager stays in charge; downloads are checksum-verified
240
- before the binary is replaced. (2) The Astrale agent skills: installs every
241
- top-level skill published from one resolved astrale-os/cli main commit, updates healthy older
242
- installs, repairs inconsistent installs, and verifies the result before
243
- reporting success. (3) SDK deps: inside a pnpm domain
244
- project, proposes any @astrale-os/* dependency with a newer release and, on
245
- confirm, runs "pnpm update --latest --lockfile-only" (updates package.json AND
246
- the lockfile, honoring your registry + supply-chain age policy; run "pnpm
247
- install" to materialize).
248
-
249
- The default release channel is beta; --channel overrides it for one run.
250
- --check is a dry run (binary + skills + SDK deps; exit 10 if anything is available) and
251
- never writes. With --json it emits a unified staleness report
252
- ({ stale, cli, skills, sdk }) for tooling. --yes applies all three non-interactively and
253
- is resilient — a binary that can't self-update (package-managed) warns but never
254
- blocks the skills/deps steps; a skill failure fails the command rather than
255
- claiming a partial success. --no-skills / --no-deps explicitly skip those axes.
256
-
257
- Examples:
258
- $ astrale update
259
- $ astrale update --check
260
- $ astrale update --yes
261
- $ astrale update --no-skills
262
- $ astrale update --no-deps
263
- $ astrale update --channel canary
264
- $ astrale update --version 0.4.0-alpha.10
265
- `,
266
- action: async (opts: UpdateOpts) => {
267
- try {
268
- // Tooling path: a machine-readable `--check` (e.g. domain-studio's update
269
- // badge polling `astrale update --check --json`) gets a unified,
270
- // non-throwing staleness report and exits.
271
- if (opts.check && isMachine(opts)) {
272
- const cli = await cliStale(opts)
273
- const skills: SkillCheckResult =
274
- opts.skills === false ? { status: 'skipped' } : await checkAstraleSkills()
275
- const sdk = await sdkStale()
276
- const report: StaleReport = {
277
- stale: cli.stale || skillCheckStale(skills) || sdk.stale,
278
- cli,
279
- skills,
280
- sdk,
281
- }
282
- output(report, opts)
283
- if (report.stale) process.exitCode = 10
284
- return
285
- }
286
-
287
- // Axis A — the CLI binary. Isolated so that under --yes (a non-interactive
288
- // full update, e.g. domain-studio's "Update now") a binary that can't
289
- // self-update — package-managed, no metadata — WARNS but does not abort the
290
- // skills/deps axes. Without --yes the error surfaces as before.
291
- let result: Awaited<ReturnType<typeof updateAstrale>> | null = null
292
- try {
293
- result = await updateAstrale({
294
- check: opts.check,
295
- channel: opts.channel,
296
- version: opts.version,
297
- currentVersion: pkg.version,
298
- })
299
- } catch (e) {
300
- if (!opts.yes) throw e
301
- log.warn(`CLI self-update skipped: ${e instanceof Error ? e.message : String(e)}`)
302
- }
303
-
304
- // Machine mode WITHOUT --yes (e.g. `astrale update --json`): emit the binary
305
- // result and stop — never silently refresh skills / edit deps for a pipe.
306
- if (result && isMachine(opts) && !opts.yes) {
307
- output(result, opts)
308
- return
309
- }
310
-
311
- // `available` only happens under --check (a real run already swapped the
312
- // binary and returns `updated`).
313
- let anyAvailable = false
314
- if (result?.status === 'available') {
315
- log.info(
316
- `Astrale update available: ${result.currentVersion} -> ${result.latestVersion} (${result.channel})`,
317
- )
318
- anyAvailable = true
319
- } else if (result?.status === 'up-to-date') {
320
- log.success(`Astrale is up to date: ${result.currentVersion}`)
321
- } else if (result?.status === 'updated') {
322
- log.success(`Updated astrale ${result.previousVersion} -> ${result.currentVersion}`)
323
- log.dim(` channel: ${result.channel}`)
324
- log.dim(` binary: ${result.bin}`)
325
- } else if (result?.status === 'managed') {
326
- const error = packageManagedUpdateError(result.executable)
327
- if (!opts.yes) throw error
328
- log.warn(`CLI self-update skipped: ${error.message}`)
329
- }
330
-
331
- // Axis B — agent skills. A successful real update guarantees a verified
332
- // latest cohort; --check remains read-only and reports its status.
333
- if (opts.skills !== false) {
334
- if (opts.check) {
335
- const skills = await checkAstraleSkills()
336
- printSkillCheck(skills)
337
- if (skillCheckStale(skills)) anyAvailable = true
338
- } else {
339
- await refreshSkills()
340
- }
341
- } else if (!opts.check) {
342
- log.dim(' Astrale skills skipped (--no-skills)')
343
- }
344
-
345
- // Axis C — first-party @astrale-os/* deps in the current domain project.
346
- // Runs on --check too (reports availability); --yes applies without a prompt.
347
- if (opts.deps !== false && (await refreshSdkDeps(opts.check === true, opts.yes === true))) {
348
- anyAvailable = true
349
- }
350
-
351
- if (opts.check && anyAvailable) process.exitCode = 10
352
- } catch (e) {
353
- fatal(e, opts)
354
- }
355
- },
356
- } satisfies CommandDefinition
@@ -1,86 +0,0 @@
1
- import type { CommandDefinition } from '../program/index'
2
-
3
- import { readIdentities, setDefault } from '../identity/index'
4
- import { readInstances } from '../lib/instance'
5
- import { fatal, log } from '../lib/log'
6
- import { resolveUseTarget } from '../lib/use-target'
7
- import instanceUseCommand from './instance/use'
8
-
9
- type UseOpts = {
10
- identity?: boolean
11
- instance?: boolean
12
- adoptDefault?: boolean
13
- skipJwksCheck?: boolean
14
- }
15
-
16
- async function useIdentity(name: string): Promise<void> {
17
- await setDefault(name)
18
- log.success(`Active identity set to "${name}"`)
19
- }
20
-
21
- export default {
22
- name: 'use',
23
- description: 'Set the active identity or instance when the name is unambiguous',
24
- afterHelpText: `
25
- Behavior:
26
- \`astrale use <name>\` is a convenience resolver for local CLI context. It
27
- switches identity when <name> is only an identity, switches instance when
28
- <name> is only an instance, and refuses ambiguous names. In scripts, prefer
29
- the explicit namespace commands or pass --identity / --instance.
30
-
31
- Examples:
32
- $ astrale use staging
33
- $ astrale use alice
34
- $ astrale use staging --instance
35
- $ astrale use alice --identity
36
- `,
37
- arguments: [{ name: 'name', description: 'Identity or instance name', required: true }],
38
- options: [
39
- { flags: '--identity', description: 'Treat <name> as an identity' },
40
- { flags: '--instance', description: 'Treat <name> as an instance' },
41
- { flags: '--adopt-default', description: 'When using an instance, adopt its default identity' },
42
- { flags: '--skip-jwks-check', description: 'When using an instance, skip the JWKS check' },
43
- ],
44
- action: async (name: string, opts: UseOpts) => {
45
- try {
46
- if (opts.identity && opts.instance) {
47
- fatal('Choose either --identity or --instance, not both')
48
- }
49
-
50
- if (opts.identity) {
51
- await useIdentity(name)
52
- return
53
- }
54
-
55
- if (opts.instance) {
56
- await instanceUseCommand.action(name, opts)
57
- return
58
- }
59
-
60
- const [instances, identities] = await Promise.all([readInstances(), readIdentities()])
61
- const target = resolveUseTarget(name, instances, identities)
62
-
63
- if (target.kind === 'identity') {
64
- await useIdentity(target.name)
65
- return
66
- }
67
-
68
- if (target.kind === 'instance') {
69
- await instanceUseCommand.action(target.name, opts)
70
- return
71
- }
72
-
73
- if (target.kind === 'ambiguous') {
74
- fatal(
75
- `Both an identity and an instance are named "${name}". Use: astrale identity use ${name} or astrale instance use ${name}`,
76
- )
77
- }
78
-
79
- fatal(
80
- `No identity or instance named "${name}". Try: astrale identity list or astrale instance list`,
81
- )
82
- } catch (e) {
83
- fatal(e)
84
- }
85
- },
86
- } satisfies CommandDefinition
@@ -1,26 +0,0 @@
1
- import { readFile } from 'node:fs/promises'
2
-
3
- import type { ViewServeConfig } from '../lib/view/session'
4
- import type { CommandDefinition } from '../program/index'
5
-
6
- import { startViewServer } from '../lib/view/server'
7
-
8
- /**
9
- * Internal (hidden) entry for the detached view-session server: `astrale view`
10
- * re-invokes the CLI with `__view-serve --config <file>` so the server runs
11
- * under the same runtime and codebase as the CLI itself.
12
- */
13
- export default {
14
- name: '__view-serve',
15
- hidden: true,
16
- description: 'Internal: run a view-session server from a config file',
17
- options: [{ flags: '--config <path>', description: 'ViewServeConfig JSON path' }],
18
- action: async (opts: { config?: string }) => {
19
- if (!opts.config) throw new Error('--config is required')
20
- const config = JSON.parse(await readFile(opts.config, 'utf8')) as ViewServeConfig
21
- startViewServer(config)
22
- console.log(`view session ${config.session.id} listening on ${config.session.pageUrl}`)
23
- // Keep the process alive; startViewServer owns shutdown (signals + idle).
24
- await new Promise(() => {})
25
- },
26
- } satisfies CommandDefinition