@astrale-os/cli 1.0.0-beta.8 → 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 (599) 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 -93172
  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/instance/model.d.ts +0 -39
  11. package/dist/types/connect-core.d.ts +0 -22
  12. package/dist/types/connection/auth.d.ts +0 -36
  13. package/dist/types/errors.d.ts +0 -23
  14. package/dist/types/identity/registry.d.ts +0 -25
  15. package/dist/types/keys/algorithm.d.ts +0 -6
  16. package/dist/types/keys/credential.d.ts +0 -21
  17. package/dist/types/keys/index.d.ts +0 -4
  18. package/dist/types/keys/pair.d.ts +0 -34
  19. package/dist/types/lib/admin-target.d.ts +0 -78
  20. package/dist/types/lib/ca-fetch.d.ts +0 -2
  21. package/dist/types/lib/config.d.ts +0 -71
  22. package/dist/types/lib/failure-debug.d.ts +0 -1
  23. package/dist/types/lib/format.d.ts +0 -1
  24. package/dist/types/lib/idp-session.d.ts +0 -33
  25. package/dist/types/lib/idp.d.ts +0 -404
  26. package/dist/types/lib/instance-target.d.ts +0 -38
  27. package/dist/types/lib/instance.d.ts +0 -196
  28. package/dist/types/lib/invocation.d.ts +0 -3
  29. package/dist/types/lib/log.d.ts +0 -33
  30. package/dist/types/lib/login-flow.d.ts +0 -49
  31. package/dist/types/lib/meta.d.ts +0 -36
  32. package/dist/types/lib/output.d.ts +0 -87
  33. package/dist/types/lib/proc.d.ts +0 -43
  34. package/dist/types/lib/table.d.ts +0 -18
  35. package/dist/types/lib/update.d.ts +0 -131
  36. package/dist/types/lib/validation.d.ts +0 -11
  37. package/dist/types/paths/index.d.ts +0 -2
  38. package/dist/types/state/exchange-credentials.d.ts +0 -25
  39. package/dist/types/state/files.d.ts +0 -9
  40. package/dist/types/state/identities.d.ts +0 -42
  41. package/dist/types/state/index.d.ts +0 -8
  42. package/dist/types/state/paths.d.ts +0 -32
  43. package/src/__tests__/fixtures/publication.ts +0 -20
  44. package/src/admin/.spec/api.d.ts +0 -3
  45. package/src/admin/.spec/architecture.md +0 -15
  46. package/src/admin/.spec/icon.svg +0 -3
  47. package/src/admin/.spec/layout.ts +0 -6
  48. package/src/admin/__tests__/binding.test.ts +0 -31
  49. package/src/admin/__tests__/fixture.ts +0 -101
  50. package/src/admin/binding.ts +0 -98
  51. package/src/admin/catalog/.spec/api.d.ts +0 -65
  52. package/src/admin/catalog/.spec/architecture.md +0 -6
  53. package/src/admin/catalog/.spec/icon.svg +0 -3
  54. package/src/admin/catalog/.spec/layout.ts +0 -6
  55. package/src/admin/catalog/__tests__/client.test.ts +0 -142
  56. package/src/admin/catalog/client.ts +0 -218
  57. package/src/admin/catalog/index.ts +0 -13
  58. package/src/admin/catalog/model.ts +0 -41
  59. package/src/admin/catalog/tsconfig.json +0 -8
  60. package/src/admin/graph/.spec/api.d.ts +0 -22
  61. package/src/admin/graph/.spec/architecture.md +0 -5
  62. package/src/admin/graph/.spec/icon.svg +0 -3
  63. package/src/admin/graph/.spec/layout.ts +0 -3
  64. package/src/admin/graph/index.ts +0 -6
  65. package/src/admin/graph/nodes.ts +0 -56
  66. package/src/admin/index.ts +0 -2
  67. package/src/admin/instance/.spec/api.d.ts +0 -66
  68. package/src/admin/instance/.spec/architecture.md +0 -10
  69. package/src/admin/instance/.spec/icon.svg +0 -3
  70. package/src/admin/instance/.spec/layout.ts +0 -6
  71. package/src/admin/instance/__tests__/client.test.ts +0 -266
  72. package/src/admin/instance/client.ts +0 -290
  73. package/src/admin/instance/index.ts +0 -16
  74. package/src/admin/instance/model.ts +0 -66
  75. package/src/admin/instance/tsconfig.json +0 -8
  76. package/src/commands/__tests__/admin-instance.test.ts +0 -88
  77. package/src/commands/__tests__/auth-login.test.ts +0 -231
  78. package/src/commands/__tests__/auth-token.test.ts +0 -223
  79. package/src/commands/__tests__/call-describe.test.ts +0 -80
  80. package/src/commands/__tests__/call.test.ts +0 -29
  81. package/src/commands/__tests__/domain-install-operation.test.ts +0 -126
  82. package/src/commands/__tests__/domain-install-owned.test.ts +0 -191
  83. package/src/commands/__tests__/domain-list.test.ts +0 -133
  84. package/src/commands/__tests__/domain-uninstall.test.ts +0 -53
  85. package/src/commands/__tests__/install-direct.test.ts +0 -21
  86. package/src/commands/__tests__/install-identity-override.test.ts +0 -76
  87. package/src/commands/__tests__/instance-bookmark.test.ts +0 -166
  88. package/src/commands/__tests__/instance-create-hosts.test.ts +0 -29
  89. package/src/commands/__tests__/instance-list-admin.test.ts +0 -26
  90. package/src/commands/__tests__/instance-list-rows.test.ts +0 -64
  91. package/src/commands/__tests__/instance-use.test.ts +0 -67
  92. package/src/commands/__tests__/introspect-parse.test.ts +0 -21
  93. package/src/commands/__tests__/logs.test.ts +0 -97
  94. package/src/commands/__tests__/read-commands.test.ts +0 -294
  95. package/src/commands/__tests__/setup-plan.test.ts +0 -61
  96. package/src/commands/__tests__/studio-descriptor.test.ts +0 -22
  97. package/src/commands/__tests__/token-ttl.test.ts +0 -21
  98. package/src/commands/__tests__/update.test.ts +0 -95
  99. package/src/commands/__tests__/view-build.test.ts +0 -58
  100. package/src/commands/__tests__/view.test.ts +0 -149
  101. package/src/commands/admin/status.ts +0 -61
  102. package/src/commands/admin/use.ts +0 -100
  103. package/src/commands/auth/login.ts +0 -82
  104. package/src/commands/auth/logout.ts +0 -52
  105. package/src/commands/auth/status.ts +0 -86
  106. package/src/commands/auth/token.ts +0 -174
  107. package/src/commands/browser.ts +0 -207
  108. package/src/commands/call-describe.ts +0 -123
  109. package/src/commands/call.ts +0 -205
  110. package/src/commands/domain/install.ts +0 -548
  111. package/src/commands/domain/list.ts +0 -155
  112. package/src/commands/domain/publish.ts +0 -133
  113. package/src/commands/domain/uninstall.ts +0 -128
  114. package/src/commands/get.ts +0 -69
  115. package/src/commands/identity/__tests__/register.test.ts +0 -93
  116. package/src/commands/identity/create.ts +0 -35
  117. package/src/commands/identity/delete.ts +0 -24
  118. package/src/commands/identity/export.ts +0 -46
  119. package/src/commands/identity/import.ts +0 -61
  120. package/src/commands/identity/list.ts +0 -56
  121. package/src/commands/identity/register.ts +0 -196
  122. package/src/commands/identity/sync.ts +0 -38
  123. package/src/commands/identity/unsync.ts +0 -34
  124. package/src/commands/identity/use.ts +0 -24
  125. package/src/commands/identity/whoami.ts +0 -34
  126. package/src/commands/idp/add.ts +0 -150
  127. package/src/commands/idp/list.ts +0 -57
  128. package/src/commands/idp/refresh.ts +0 -38
  129. package/src/commands/idp/remove.ts +0 -36
  130. package/src/commands/idp/show.ts +0 -29
  131. package/src/commands/instance/active.ts +0 -73
  132. package/src/commands/instance/bookmark.ts +0 -101
  133. package/src/commands/instance/create.ts +0 -69
  134. package/src/commands/instance/delete.ts +0 -68
  135. package/src/commands/instance/forget.ts +0 -26
  136. package/src/commands/instance/list.ts +0 -197
  137. package/src/commands/instance/status.ts +0 -38
  138. package/src/commands/instance/use.ts +0 -259
  139. package/src/commands/introspect.ts +0 -110
  140. package/src/commands/logs.ts +0 -283
  141. package/src/commands/mutate.ts +0 -122
  142. package/src/commands/query.ts +0 -136
  143. package/src/commands/session/analyze.ts +0 -50
  144. package/src/commands/session/list.ts +0 -36
  145. package/src/commands/setup.ts +0 -54
  146. package/src/commands/status.ts +0 -60
  147. package/src/commands/studio.ts +0 -434
  148. package/src/commands/token.ts +0 -107
  149. package/src/commands/update.ts +0 -334
  150. package/src/commands/use.ts +0 -86
  151. package/src/commands/view-serve.ts +0 -26
  152. package/src/commands/view.ts +0 -614
  153. package/src/connect-core.test.ts +0 -38
  154. package/src/connect-core.ts +0 -42
  155. package/src/connection/.spec/api.d.ts +0 -110
  156. package/src/connection/.spec/architecture.md +0 -47
  157. package/src/connection/.spec/capabilities/connection.ts +0 -13
  158. package/src/connection/.spec/examples/call.ts +0 -7
  159. package/src/connection/.spec/flows/command.ts +0 -20
  160. package/src/connection/.spec/flows/session.ts +0 -61
  161. package/src/connection/.spec/laws/connection.ts +0 -205
  162. package/src/connection/.spec/layout.ts +0 -21
  163. package/src/connection/__tests__/auth.test.ts +0 -128
  164. package/src/connection/__tests__/ca-fetch.test.ts +0 -60
  165. package/src/connection/__tests__/call.test.ts +0 -17
  166. package/src/connection/__tests__/credential.test.ts +0 -119
  167. package/src/connection/__tests__/errors.test.ts +0 -577
  168. package/src/connection/__tests__/exchange.test.ts +0 -295
  169. package/src/connection/__tests__/failure-fixtures.ts +0 -39
  170. package/src/connection/__tests__/failure-safety.test.ts +0 -75
  171. package/src/connection/__tests__/fixtures/localhost-cert.pem +0 -19
  172. package/src/connection/__tests__/fixtures/localhost-key.base64 +0 -1
  173. package/src/connection/__tests__/managed.test.ts +0 -39
  174. package/src/connection/__tests__/reasons.test.ts +0 -78
  175. package/src/connection/__tests__/self.test.ts +0 -71
  176. package/src/connection/__tests__/session.test.ts +0 -140
  177. package/src/connection/__tests__/target.test.ts +0 -93
  178. package/src/connection/auth.ts +0 -236
  179. package/src/connection/call.ts +0 -7
  180. package/src/connection/command.ts +0 -67
  181. package/src/connection/credential.ts +0 -117
  182. package/src/connection/errors.ts +0 -1
  183. package/src/connection/exchange.ts +0 -311
  184. package/src/connection/failure/classify.ts +0 -110
  185. package/src/connection/failure/index.ts +0 -18
  186. package/src/connection/failure/model.ts +0 -28
  187. package/src/connection/failure/render.ts +0 -116
  188. package/src/connection/index.ts +0 -8
  189. package/src/connection/reasons.ts +0 -209
  190. package/src/connection/self.ts +0 -138
  191. package/src/connection/session.ts +0 -185
  192. package/src/connection/target.ts +0 -112
  193. package/src/connection/tsconfig.json +0 -6
  194. package/src/errors.ts +0 -66
  195. package/src/graph/.spec/api.d.ts +0 -41
  196. package/src/graph/.spec/laws/documents.ts +0 -24
  197. package/src/graph/.spec/laws/projection.ts +0 -13
  198. package/src/graph/.spec/layout.ts +0 -14
  199. package/src/graph/__tests__/mutation.test.ts +0 -51
  200. package/src/graph/__tests__/projection.test.ts +0 -22
  201. package/src/graph/__tests__/query.test.ts +0 -173
  202. package/src/graph/class.ts +0 -30
  203. package/src/graph/index.ts +0 -4
  204. package/src/graph/mutation.ts +0 -46
  205. package/src/graph/projection.ts +0 -21
  206. package/src/graph/query.ts +0 -97
  207. package/src/graph/tsconfig.json +0 -6
  208. package/src/identity/.history/ard/bootstrap-root-transfer.md +0 -57
  209. package/src/identity/.history/ard/domain-mediated-registration.md +0 -36
  210. package/src/identity/.spec/api.d.ts +0 -124
  211. package/src/identity/.spec/architecture.md +0 -33
  212. package/src/identity/.spec/capabilities/identity.ts +0 -7
  213. package/src/identity/.spec/flows/bootstrap-root.ts +0 -79
  214. package/src/identity/.spec/flows/domain-mediated-registration.ts +0 -51
  215. package/src/identity/.spec/flows/import.ts +0 -29
  216. package/src/identity/.spec/laws/identity.ts +0 -56
  217. package/src/identity/.spec/layout.ts +0 -13
  218. package/src/identity/.spec/schemas/identity-export-v1.schema.json +0 -25
  219. package/src/identity/__tests__/fixtures/registry-journey.ts +0 -53
  220. package/src/identity/__tests__/registration.test.ts +0 -64
  221. package/src/identity/__tests__/registry.test.ts +0 -70
  222. package/src/identity/__tests__/transfer.test.ts +0 -198
  223. package/src/identity/index.ts +0 -23
  224. package/src/identity/registration.ts +0 -72
  225. package/src/identity/registry.ts +0 -179
  226. package/src/identity/transfer.ts +0 -187
  227. package/src/identity/tsconfig.json +0 -6
  228. package/src/index.ts +0 -1
  229. package/src/keys/.spec/api.d.ts +0 -74
  230. package/src/keys/.spec/architecture.md +0 -13
  231. package/src/keys/.spec/laws/keys.ts +0 -43
  232. package/src/keys/.spec/layout.ts +0 -6
  233. package/src/keys/__tests__/algorithm.test.ts +0 -39
  234. package/src/keys/__tests__/keys.test.ts +0 -168
  235. package/src/keys/algorithm.ts +0 -33
  236. package/src/keys/credential.ts +0 -112
  237. package/src/keys/index.ts +0 -14
  238. package/src/keys/pair.ts +0 -219
  239. package/src/keys/tsconfig.json +0 -6
  240. package/src/lib/__tests__/admin-target.test.ts +0 -184
  241. package/src/lib/__tests__/binary.test.ts +0 -55
  242. package/src/lib/__tests__/command-dx.test.ts +0 -102
  243. package/src/lib/__tests__/concurrency.test.ts +0 -62
  244. package/src/lib/__tests__/config.test.ts +0 -54
  245. package/src/lib/__tests__/design.test.ts +0 -99
  246. package/src/lib/__tests__/domain-publication.test.ts +0 -133
  247. package/src/lib/__tests__/format.test.ts +0 -22
  248. package/src/lib/__tests__/idp-session.driver.ts +0 -53
  249. package/src/lib/__tests__/idp-session.test.ts +0 -379
  250. package/src/lib/__tests__/idp.test.ts +0 -415
  251. package/src/lib/__tests__/instance-candidates.test.ts +0 -148
  252. package/src/lib/__tests__/instance-target.test.ts +0 -212
  253. package/src/lib/__tests__/instance.test.ts +0 -192
  254. package/src/lib/__tests__/local-status.test.ts +0 -202
  255. package/src/lib/__tests__/log-errors.test.ts +0 -64
  256. package/src/lib/__tests__/log.test.ts +0 -31
  257. package/src/lib/__tests__/meta.test.ts +0 -55
  258. package/src/lib/__tests__/output.test.ts +0 -162
  259. package/src/lib/__tests__/panel.test.ts +0 -40
  260. package/src/lib/__tests__/port.test.ts +0 -44
  261. package/src/lib/__tests__/prompt.test.ts +0 -25
  262. package/src/lib/__tests__/sdk-deps.test.ts +0 -68
  263. package/src/lib/__tests__/self.test.ts +0 -50
  264. package/src/lib/__tests__/studio-server-deps.test.ts +0 -111
  265. package/src/lib/__tests__/table.test.ts +0 -53
  266. package/src/lib/__tests__/update.test.ts +0 -351
  267. package/src/lib/__tests__/use-target.test.ts +0 -56
  268. package/src/lib/__tests__/validation.test.ts +0 -34
  269. package/src/lib/__tests__/view-assets.test.ts +0 -146
  270. package/src/lib/__tests__/view-open-intent.test.ts +0 -280
  271. package/src/lib/__tests__/view-port-allocation.test.ts +0 -82
  272. package/src/lib/__tests__/view-server.test.ts +0 -68
  273. package/src/lib/__tests__/view-session.test.ts +0 -99
  274. package/src/lib/__tests__/view-snapshot.test.ts +0 -77
  275. package/src/lib/admin-domain.ts +0 -43
  276. package/src/lib/admin-instance.ts +0 -50
  277. package/src/lib/admin-target.ts +0 -290
  278. package/src/lib/binary.ts +0 -110
  279. package/src/lib/browser.ts +0 -150
  280. package/src/lib/ca-fetch.ts +0 -133
  281. package/src/lib/command-dx.ts +0 -188
  282. package/src/lib/concurrency.ts +0 -31
  283. package/src/lib/config.ts +0 -46
  284. package/src/lib/domain-publication.ts +0 -102
  285. package/src/lib/failure-debug.ts +0 -26
  286. package/src/lib/format.ts +0 -4
  287. package/src/lib/idp-session.ts +0 -134
  288. package/src/lib/idp.ts +0 -906
  289. package/src/lib/instance-candidates.ts +0 -49
  290. package/src/lib/instance-target.ts +0 -197
  291. package/src/lib/instance.ts +0 -463
  292. package/src/lib/invocation.ts +0 -11
  293. package/src/lib/local-status.ts +0 -152
  294. package/src/lib/log.ts +0 -143
  295. package/src/lib/login-flow.ts +0 -201
  296. package/src/lib/meta.ts +0 -90
  297. package/src/lib/output.ts +0 -238
  298. package/src/lib/panel.ts +0 -61
  299. package/src/lib/port.ts +0 -41
  300. package/src/lib/proc.ts +0 -82
  301. package/src/lib/prompt.ts +0 -136
  302. package/src/lib/provision-instance.ts +0 -162
  303. package/src/lib/sdk-deps.ts +0 -104
  304. package/src/lib/self.ts +0 -22
  305. package/src/lib/skills.ts +0 -171
  306. package/src/lib/table.ts +0 -62
  307. package/src/lib/update.ts +0 -409
  308. package/src/lib/use-target.ts +0 -24
  309. package/src/lib/validation.ts +0 -59
  310. package/src/lib/view/assets.ts +0 -78
  311. package/src/lib/view/open-intent.ts +0 -67
  312. package/src/lib/view/port-allocation.ts +0 -19
  313. package/src/lib/view/resolve.ts +0 -111
  314. package/src/lib/view/server.ts +0 -244
  315. package/src/lib/view/session.ts +0 -152
  316. package/src/lib/view/snapshot.ts +0 -101
  317. package/src/paths/.spec/api.d.ts +0 -13
  318. package/src/paths/.spec/architecture.md +0 -5
  319. package/src/paths/.spec/layout.ts +0 -3
  320. package/src/paths/index.ts +0 -13
  321. package/src/program/.spec/api.d.ts +0 -42
  322. package/src/program/.spec/architecture.md +0 -18
  323. package/src/program/.spec/laws/program.ts +0 -29
  324. package/src/program/.spec/layout.ts +0 -14
  325. package/src/program/__tests__/program.test.ts +0 -362
  326. package/src/program/build.ts +0 -183
  327. package/src/program/command.ts +0 -42
  328. package/src/program/index.ts +0 -2
  329. package/src/program/options.ts +0 -41
  330. package/src/program/registry.ts +0 -63
  331. package/src/program/tsconfig.json +0 -6
  332. package/src/setup/__tests__/instance-step.test.ts +0 -239
  333. package/src/setup/__tests__/util.test.ts +0 -29
  334. package/src/setup/engine.ts +0 -83
  335. package/src/setup/render.ts +0 -107
  336. package/src/setup/steps/admin.ts +0 -93
  337. package/src/setup/steps/agent-browser.ts +0 -81
  338. package/src/setup/steps/auth.ts +0 -54
  339. package/src/setup/steps/domain.ts +0 -68
  340. package/src/setup/steps/index.ts +0 -18
  341. package/src/setup/steps/instance.ts +0 -199
  342. package/src/setup/steps/skills-bridge.ts +0 -70
  343. package/src/setup/steps/skills.ts +0 -59
  344. package/src/setup/types.ts +0 -61
  345. package/src/setup/util.ts +0 -34
  346. package/src/state/.spec/api.d.ts +0 -133
  347. package/src/state/.spec/architecture.md +0 -31
  348. package/src/state/.spec/capabilities/state.ts +0 -7
  349. package/src/state/.spec/flows/identity-update.ts +0 -22
  350. package/src/state/.spec/laws/state.ts +0 -73
  351. package/src/state/.spec/layout.ts +0 -14
  352. package/src/state/__tests__/exchange-credentials.test.ts +0 -188
  353. package/src/state/__tests__/files.test.ts +0 -113
  354. package/src/state/__tests__/fixtures/identity-transition.ts +0 -37
  355. package/src/state/__tests__/identities.test.ts +0 -142
  356. package/src/state/__tests__/paths.test.ts +0 -27
  357. package/src/state/exchange-credentials.ts +0 -219
  358. package/src/state/files.ts +0 -129
  359. package/src/state/identities.ts +0 -229
  360. package/src/state/index.ts +0 -29
  361. package/src/state/paths.ts +0 -61
  362. package/src/state/tsconfig.json +0 -6
  363. package/src/telemetry/__tests__/gate.test.ts +0 -63
  364. package/src/telemetry/__tests__/recorder.test.ts +0 -110
  365. package/src/telemetry/__tests__/redact.test.ts +0 -79
  366. package/src/telemetry/__tests__/session.test.ts +0 -166
  367. package/src/telemetry/__tests__/trigger.test.ts +0 -49
  368. package/src/telemetry/adapters/__tests__/claude-code.test.ts +0 -89
  369. package/src/telemetry/adapters/__tests__/codex.test.ts +0 -138
  370. package/src/telemetry/adapters/__tests__/index.test.ts +0 -88
  371. package/src/telemetry/adapters/claude-code.ts +0 -90
  372. package/src/telemetry/adapters/codex.ts +0 -160
  373. package/src/telemetry/adapters/index.ts +0 -45
  374. package/src/telemetry/adapters/types.ts +0 -21
  375. package/src/telemetry/analyze.ts +0 -227
  376. package/src/telemetry/gate.ts +0 -79
  377. package/src/telemetry/recorder.ts +0 -57
  378. package/src/telemetry/redact.ts +0 -53
  379. package/src/telemetry/session.ts +0 -88
  380. package/src/telemetry/settings.ts +0 -26
  381. package/src/telemetry/store.ts +0 -91
  382. package/src/telemetry/trigger.ts +0 -119
  383. package/src/telemetry/types.ts +0 -64
  384. package/src/test-utils.ts +0 -18
  385. package/studio/client/dist/assets/elk-api-Di4OXGNH.js +0 -1
  386. package/studio/client/dist/assets/elk-worker.min-C9JGDOE-.js +0 -6312
  387. package/studio/client/dist/assets/index-BLm6J11H.js +0 -81
  388. package/studio/client/dist/assets/index-BiGR8Oo9.css +0 -1
  389. package/studio/client/dist/assets/index-ChOr3yP0.css +0 -1
  390. package/studio/client/dist/assets/index-DTjvkOUX.js +0 -8
  391. package/studio/client/dist/index.html +0 -13
  392. package/studio/package.json +0 -65
  393. package/studio/server/agent/ask.test.ts +0 -74
  394. package/studio/server/agent/ask.ts +0 -71
  395. package/studio/server/agent/bridge/client.test.ts +0 -49
  396. package/studio/server/agent/bridge/client.ts +0 -37
  397. package/studio/server/agent/bridge/grant.test.ts +0 -62
  398. package/studio/server/agent/bridge/grant.ts +0 -84
  399. package/studio/server/agent/bridge/routes.test.ts +0 -151
  400. package/studio/server/agent/bridge/routes.ts +0 -148
  401. package/studio/server/agent/bridge/stdio.ts +0 -195
  402. package/studio/server/agent/conversation.test.ts +0 -89
  403. package/studio/server/agent/conversation.ts +0 -158
  404. package/studio/server/agent/harness/adapter.ts +0 -171
  405. package/studio/server/agent/harness/claude/adapter.test.ts +0 -348
  406. package/studio/server/agent/harness/claude/adapter.ts +0 -71
  407. package/studio/server/agent/harness/claude/ask.ts +0 -114
  408. package/studio/server/agent/harness/claude/capabilities.ts +0 -27
  409. package/studio/server/agent/harness/claude/command.ts +0 -63
  410. package/studio/server/agent/harness/claude/events.ts +0 -215
  411. package/studio/server/agent/harness/claude/loadout.ts +0 -132
  412. package/studio/server/agent/harness/claude/mcp.test.ts +0 -36
  413. package/studio/server/agent/harness/claude/mcp.ts +0 -41
  414. package/studio/server/agent/harness/claude/skills.ts +0 -43
  415. package/studio/server/agent/harness/codex/adapter.test.ts +0 -269
  416. package/studio/server/agent/harness/codex/adapter.ts +0 -116
  417. package/studio/server/agent/harness/codex/ask.test.ts +0 -176
  418. package/studio/server/agent/harness/codex/ask.ts +0 -181
  419. package/studio/server/agent/harness/codex/command.test.ts +0 -69
  420. package/studio/server/agent/harness/codex/command.ts +0 -43
  421. package/studio/server/agent/harness/codex/events.test.ts +0 -94
  422. package/studio/server/agent/harness/codex/events.ts +0 -132
  423. package/studio/server/agent/harness/codex/exec.ts +0 -113
  424. package/studio/server/agent/harness/codex/loadout.ts +0 -60
  425. package/studio/server/agent/harness/codex/mcp.test.ts +0 -32
  426. package/studio/server/agent/harness/codex/mcp.ts +0 -27
  427. package/studio/server/agent/harness/codex/models.test.ts +0 -167
  428. package/studio/server/agent/harness/codex/models.ts +0 -211
  429. package/studio/server/agent/harness/codex/skills.ts +0 -33
  430. package/studio/server/agent/harness/gateway/config.test.ts +0 -98
  431. package/studio/server/agent/harness/gateway/config.ts +0 -214
  432. package/studio/server/agent/harness/gateway/token.test.ts +0 -133
  433. package/studio/server/agent/harness/gateway/token.ts +0 -166
  434. package/studio/server/agent/harness/mock/adapter.ts +0 -190
  435. package/studio/server/agent/harness/mock/domain-edit.ts +0 -41
  436. package/studio/server/agent/harness/process.test.ts +0 -46
  437. package/studio/server/agent/harness/process.ts +0 -104
  438. package/studio/server/agent/harness/registry.ts +0 -37
  439. package/studio/server/agent/harness/selection.test.ts +0 -75
  440. package/studio/server/agent/harness/selection.ts +0 -85
  441. package/studio/server/agent/harness/skills.test.ts +0 -95
  442. package/studio/server/agent/harness/skills.ts +0 -100
  443. package/studio/server/agent/layout.test.ts +0 -95
  444. package/studio/server/agent/notify.ts +0 -12
  445. package/studio/server/agent/prompts/anchors.test.ts +0 -70
  446. package/studio/server/agent/prompts/anchors.ts +0 -153
  447. package/studio/server/agent/prompts/ask.ts +0 -34
  448. package/studio/server/agent/prompts/system.test.ts +0 -13
  449. package/studio/server/agent/prompts/system.ts +0 -99
  450. package/studio/server/agent/prompts/turn.ts +0 -66
  451. package/studio/server/agent/routes.test.ts +0 -176
  452. package/studio/server/agent/routes.ts +0 -214
  453. package/studio/server/agent/run/completion.ts +0 -193
  454. package/studio/server/agent/run/coordinator.test.ts +0 -337
  455. package/studio/server/agent/run/coordinator.ts +0 -104
  456. package/studio/server/agent/run/live-state.ts +0 -73
  457. package/studio/server/agent/run/preparation.ts +0 -163
  458. package/studio/server/agent/run/transcript.test.ts +0 -81
  459. package/studio/server/agent/run/transcript.ts +0 -196
  460. package/studio/server/agent/run/usage.test.ts +0 -70
  461. package/studio/server/agent/run/usage.ts +0 -62
  462. package/studio/server/agent/stream.ts +0 -37
  463. package/studio/server/agent/telemetry.ts +0 -13
  464. package/studio/server/api/canvas.ts +0 -43
  465. package/studio/server/api/comments.ts +0 -85
  466. package/studio/server/api/context.ts +0 -61
  467. package/studio/server/api/deployment.ts +0 -39
  468. package/studio/server/api/documents.ts +0 -55
  469. package/studio/server/api/domain.ts +0 -59
  470. package/studio/server/api/http.ts +0 -45
  471. package/studio/server/api/project.ts +0 -57
  472. package/studio/server/api/schema.ts +0 -12
  473. package/studio/server/api/views.ts +0 -57
  474. package/studio/server/api/workspace.ts +0 -60
  475. package/studio/server/api-agent-loadout.test.ts +0 -69
  476. package/studio/server/api.test.ts +0 -147
  477. package/studio/server/api.ts +0 -34
  478. package/studio/server/cache.test.ts +0 -122
  479. package/studio/server/cache.ts +0 -303
  480. package/studio/server/cli-consumers.test.ts +0 -494
  481. package/studio/server/cli.test.ts +0 -88
  482. package/studio/server/cli.ts +0 -240
  483. package/studio/server/client-package.test.ts +0 -147
  484. package/studio/server/client-package.ts +0 -266
  485. package/studio/server/detect.ts +0 -81
  486. package/studio/server/domain.test.ts +0 -77
  487. package/studio/server/domain.ts +0 -124
  488. package/studio/server/environment/dotenv-preview.test.ts +0 -39
  489. package/studio/server/environment/dotenv-preview.ts +0 -27
  490. package/studio/server/environment/files.test.ts +0 -53
  491. package/studio/server/environment/files.ts +0 -120
  492. package/studio/server/handoff/copy.ts +0 -171
  493. package/studio/server/handoff/service.test.ts +0 -22
  494. package/studio/server/handoff/service.ts +0 -62
  495. package/studio/server/index.ts +0 -148
  496. package/studio/server/instances/active.ts +0 -72
  497. package/studio/server/instances/deploy-record.test.ts +0 -31
  498. package/studio/server/instances/deploy-record.ts +0 -37
  499. package/studio/server/instances/deploy.ts +0 -56
  500. package/studio/server/instances/probe.test.ts +0 -67
  501. package/studio/server/instances/probe.ts +0 -67
  502. package/studio/server/instances/status.test.ts +0 -12
  503. package/studio/server/instances/status.ts +0 -49
  504. package/studio/server/introspect/anatomy/client-tree.ts +0 -57
  505. package/studio/server/introspect/anatomy/env-fields.ts +0 -66
  506. package/studio/server/introspect/anatomy/schema-definition.ts +0 -53
  507. package/studio/server/introspect/anatomy/source.ts +0 -181
  508. package/studio/server/introspect/anatomy/views/routes.ts +0 -114
  509. package/studio/server/introspect/anatomy/views.ts +0 -53
  510. package/studio/server/introspect/anatomy-extras.test.ts +0 -265
  511. package/studio/server/introspect/anatomy-extras.ts +0 -10
  512. package/studio/server/introspect/anatomy.test.ts +0 -41
  513. package/studio/server/introspect/anatomy.ts +0 -147
  514. package/studio/server/introspect/bundle.ts +0 -69
  515. package/studio/server/introspect/canonical-schema.test.ts +0 -179
  516. package/studio/server/introspect/canonical-schema.ts +0 -583
  517. package/studio/server/introspect/config-preview.test.ts +0 -32
  518. package/studio/server/introspect/config-preview.ts +0 -119
  519. package/studio/server/introspect/core-extractor.ts +0 -30
  520. package/studio/server/introspect/core.ts +0 -45
  521. package/studio/server/introspect/diff.test.ts +0 -124
  522. package/studio/server/introspect/diff.ts +0 -316
  523. package/studio/server/introspect/extractor.ts +0 -41
  524. package/studio/server/introspect/hash.ts +0 -24
  525. package/studio/server/introspect/overlay-tsmorph.test.ts +0 -146
  526. package/studio/server/introspect/overlay-tsmorph.ts +0 -9
  527. package/studio/server/introspect/overlay.test.ts +0 -44
  528. package/studio/server/introspect/overlay.ts +0 -40
  529. package/studio/server/introspect/revision.test.ts +0 -54
  530. package/studio/server/introspect/revision.ts +0 -49
  531. package/studio/server/introspect/runtime.test.ts +0 -157
  532. package/studio/server/introspect/runtime.ts +0 -140
  533. package/studio/server/introspect/schema-ir-json.test.ts +0 -70
  534. package/studio/server/introspect/schema-ir-json.ts +0 -151
  535. package/studio/server/introspect/schema-refs.test.ts +0 -55
  536. package/studio/server/introspect/schema-refs.ts +0 -32
  537. package/studio/server/introspect/source-overlay/annotations.ts +0 -14
  538. package/studio/server/introspect/source-overlay/handlers.ts +0 -161
  539. package/studio/server/introspect/source-overlay/kernel-calls.ts +0 -46
  540. package/studio/server/introspect/source-overlay/project.ts +0 -248
  541. package/studio/server/introspect/source-overlay/spans.ts +0 -330
  542. package/studio/server/json.ts +0 -46
  543. package/studio/server/lifecycle.ts +0 -42
  544. package/studio/server/sse.test.ts +0 -26
  545. package/studio/server/sse.ts +0 -60
  546. package/studio/server/state/baseline.test.ts +0 -267
  547. package/studio/server/state/baseline.ts +0 -354
  548. package/studio/server/state/comments.test.ts +0 -94
  549. package/studio/server/state/comments.ts +0 -484
  550. package/studio/server/state/context.ts +0 -199
  551. package/studio/server/state/documents.ts +0 -111
  552. package/studio/server/state/integrations.ts +0 -81
  553. package/studio/server/state/layout.test.ts +0 -34
  554. package/studio/server/state/layout.ts +0 -82
  555. package/studio/server/state/settings.test.ts +0 -78
  556. package/studio/server/state/settings.ts +0 -73
  557. package/studio/server/state/store.test.ts +0 -122
  558. package/studio/server/state/store.ts +0 -146
  559. package/studio/server/state/visibility.ts +0 -48
  560. package/studio/server/views/model.test.ts +0 -57
  561. package/studio/server/views/model.ts +0 -66
  562. package/studio/server/views/runtime.ts +0 -40
  563. package/studio/server/views/selection-repository.test.ts +0 -31
  564. package/studio/server/views/selection-repository.ts +0 -60
  565. package/studio/server/views/session.test.ts +0 -73
  566. package/studio/server/views/session.ts +0 -166
  567. package/studio/server/views/target.test.ts +0 -78
  568. package/studio/server/views/target.ts +0 -222
  569. package/studio/server/watch.test.ts +0 -36
  570. package/studio/server/watch.ts +0 -93
  571. package/studio/server/workspace/catalog.test.ts +0 -17
  572. package/studio/server/workspace/catalog.ts +0 -43
  573. package/studio/server/workspace/create.test.ts +0 -37
  574. package/studio/server/workspace/create.ts +0 -162
  575. package/studio/server/workspace/git.ts +0 -75
  576. package/studio/server/workspace/updates.ts +0 -83
  577. package/studio/server/workspace-state.ts +0 -26
  578. package/studio/server/workspace-watch.ts +0 -106
  579. package/studio/shared/agent-effort.test.ts +0 -12
  580. package/studio/shared/agent-effort.ts +0 -15
  581. package/studio/shared/agent-models.test.ts +0 -9
  582. package/studio/shared/agent-models.ts +0 -14
  583. package/studio/shared/contracts/README.md +0 -16
  584. package/studio/shared/contracts/agent.ts +0 -270
  585. package/studio/shared/contracts/runtime.ts +0 -50
  586. package/studio/shared/contracts/schema.ts +0 -393
  587. package/studio/shared/contracts/surface.test.ts +0 -317
  588. package/studio/shared/contracts/workspace.ts +0 -265
  589. package/studio/shared/layout.test.ts +0 -116
  590. package/studio/shared/schema/identity.test.ts +0 -34
  591. package/studio/shared/schema/identity.ts +0 -68
  592. package/studio/shared/settings-values.test.ts +0 -18
  593. package/studio/shared/settings-values.ts +0 -20
  594. package/studio/shared/types.ts +0 -14
  595. package/studio/tsconfig.json +0 -23
  596. package/tsconfig.json +0 -14
  597. package/viewer/dist/index.html +0 -93
  598. package/viewer/dist/main.js +0 -76
  599. package/viewer/tsconfig.json +0 -13
@@ -1,162 +0,0 @@
1
- import chalk from 'chalk'
2
-
3
- import type { KernelCommandOpts } from '../connection'
4
- import type { AdminTargetCommandOpts } from './admin-target'
5
-
6
- import { AuthError } from '../errors'
7
- import { readIdentities, type IdentityStore } from '../identity/index'
8
- import { createOwnedInstance } from './admin-instance'
9
- import { setActive, upsertManagedBookmark } from './instance'
10
- import { withSpinner } from './log'
11
- import { isMachine } from './output'
12
- import { promptSelect } from './prompt'
13
- import { validateSlug } from './validation'
14
-
15
- export type ProvisionOpts = KernelCommandOpts &
16
- AdminTargetCommandOpts & {
17
- hostId?: string
18
- // Global flags (program.ts) that force non-interactive — mirrors `instance use`.
19
- ci?: boolean
20
- noPrompt?: boolean
21
- }
22
-
23
- /** The created instance plus the local-bookmark side effects of provisioning. */
24
- export type ProvisionResult = {
25
- /** The raw admin-kernel response — the stable machine surface for `--json`. */
26
- created: { url: string; organizationId?: string }
27
- slug: string
28
- /** Set when an existing bookmark of the same name was repointed to a new kernel. */
29
- repointedFrom?: string
30
- /** Set when bookmarking/activating the new instance failed (non-fatal). */
31
- selectionError?: unknown
32
- }
33
-
34
- /** Provisioning a child instance runs a multi-step saga (1-3 min). */
35
- const SAGA_TIMEOUT_MS = '240000'
36
-
37
- /**
38
- * Provision an alpha instance through the admin kernel, then bookmark it and
39
- * make it the active target. Extracted from `instance create` so `astrale
40
- * setup` provisions through the exact same saga (auth assertion → alphaCreate →
41
- * bookmark → set-active), including the interactive multi-host picker.
42
- *
43
- * Presentation is deliberately minimal here (a spinner + a one-line success);
44
- * the caller renders anything richer — `setup` follows this with a hero panel.
45
- */
46
- export async function provisionInstance(
47
- slug: string,
48
- opts: ProvisionOpts,
49
- ): Promise<ProvisionResult> {
50
- validateSlug(slug)
51
- await assertAlphaCreateAuth(opts)
52
- // The created instance must belong to the LOGGED-IN identity — never to an
53
- // identity pinned on the admin bookmark (that mismatch silently made a fresh
54
- // user's instance unusable). `--as` still wins.
55
- if (!opts.as) opts = { ...opts, as: (await readIdentities()).default }
56
-
57
- const machine = isMachine(opts)
58
- const interactive = !!process.stdin.isTTY && !(opts.ci || opts.noPrompt || process.env.CI)
59
-
60
- let repointedFrom: string | undefined
61
- let selectionError: unknown = null
62
- // The global 30s default doesn't just fail the CLIENT: the disconnect kills
63
- // the worker's request mid-saga and leaves TORN state (slug taken, routing
64
- // live, no instance node — unrecoverable by retry). Default to a saga-sized
65
- // timeout; an explicit --timeout still wins.
66
- const createOpts = { ...opts, timeout: opts.timeout ?? SAGA_TIMEOUT_MS }
67
-
68
- const runProvision = (hostId: string | undefined) =>
69
- withSpinner(
70
- `Provisioning instance ${slug}`,
71
- !machine,
72
- async () => {
73
- const created = await createOwnedInstance(createOpts, slug, hostId)
74
- try {
75
- // Org id from the create response — authoritative for token scoping
76
- // (the router's /auth/org is eventually consistent).
77
- const bookmarked = await upsertManagedBookmark(
78
- slug,
79
- slug,
80
- created.url,
81
- created.organizationId,
82
- )
83
- repointedFrom = bookmarked.repointedFrom
84
- await setActive(slug)
85
- } catch (e) {
86
- selectionError = e
87
- }
88
- return created
89
- },
90
- {
91
- success: (created) =>
92
- `Instance provisioned: ${slug} ${chalk.dim(`(${created.url})${selectionError ? '' : ' · active'}`)}`,
93
- },
94
- )
95
-
96
- // Host placement is chosen SERVER-side (the caller's ready + USE-granted
97
- // hosts). We recover ONLY from its multi-host ambiguity: pop a picker and
98
- // retry with the chosen host_id — the ambiguity error throws before any
99
- // provisioning side effect, so the retry is clean. No host / permission /
100
- // capacity / a non-interactive run all reject through to the caller's `fatal`,
101
- // surfacing the server's own message plus the listed ids. An explicit
102
- // `--host-id` skips all of this.
103
- const created = await runProvision(opts.hostId).catch(async (e: unknown) => {
104
- const hostIds = !opts.hostId && interactive ? parseEligibleHostIds(e) : null
105
- if (!hostIds) throw e
106
- const chosen = await promptSelect(
107
- `${hostIds.length} hosts available — pick one to provision on`,
108
- hostIds.map((hid) => ({ name: hid, value: hid })),
109
- )
110
- if (!chosen) throw e
111
- return runProvision(chosen)
112
- })
113
-
114
- // Warnings go to stderr so machine-readable stdout stays clean.
115
- const warn = (msg: string) => console.error(chalk.yellow('⚠'), msg)
116
- if (selectionError) {
117
- const message =
118
- selectionError instanceof Error ? selectionError.message : String(selectionError)
119
- warn(`Could not select the new instance: ${message}`)
120
- } else if (repointedFrom) {
121
- warn(`Bookmark "${slug}" repointed: ${repointedFrom} → ${created.url}`)
122
- }
123
-
124
- return { created, slug, repointedFrom, ...(selectionError ? { selectionError } : {}) }
125
- }
126
-
127
- /**
128
- * Recover the eligible host ids from alphaCreate's multi-host error
129
- * ("N ready hosts are assigned (id1, id2). Specify host_id…") — only when
130
- * there's a real choice (>1). Returns null for any other error (no host,
131
- * permission, capacity). Deliberately coupled to that message wording (Option
132
- * B: no admin-side change); if it ever drifts we simply stop offering the
133
- * picker and the raw error is shown instead — no worse than before.
134
- */
135
- export function parseEligibleHostIds(error: unknown): string[] | null {
136
- const text = error instanceof Error ? error.message : String(error)
137
- const match = /ready hosts are assigned \(([^)]+)\)/.exec(text)
138
- if (!match) return null
139
- const ids = match[1]!
140
- .split(',')
141
- .map((s) => s.trim())
142
- .filter(Boolean)
143
- return ids.length > 1 ? ids : null
144
- }
145
-
146
- async function assertAlphaCreateAuth(opts: Pick<ProvisionOpts, 'as' | 'creds'>): Promise<void> {
147
- if (opts.creds) return
148
- assertAlphaCreateIdentity(await readIdentities(), opts)
149
- }
150
-
151
- export function assertAlphaCreateIdentity(
152
- store: IdentityStore,
153
- opts: Pick<ProvisionOpts, 'as'> = {},
154
- ): void {
155
- const name = opts.as ?? store.default
156
- const identity = store.identities[name]
157
- if (identity && identity.source === 'idp') return
158
- throw new AuthError(
159
- 'WorkOS login required for `astrale instance create`',
160
- 'Run: astrale auth login',
161
- )
162
- }
@@ -1,104 +0,0 @@
1
- import { existsSync } from 'node:fs'
2
- import { join } from 'node:path'
3
-
4
- import { run } from './proc'
5
-
6
- /**
7
- * `astrale update`, Axis C — keep a domain project's first-party `@astrale-os/*`
8
- * dependencies current. We DELEGATE to pnpm rather than reimplement a package
9
- * manager: `pnpm outdated` to detect, `pnpm update --latest` to apply. pnpm owns
10
- * the hard, easy-to-get-wrong parts — registry/`.npmrc`/auth resolution, the
11
- * `minimumReleaseAge` supply-chain gate, workspace members, semver, and the
12
- * lockfile — so this stays a thin, robust shim (mirrors how the CLI delegates
13
- * skills to `npx skills`). Every call is best-effort: pnpm missing or any error
14
- * means "nothing to do", never a failed update.
15
- */
16
-
17
- /** The dependency pattern pnpm matches both subcommands against. */
18
- const ASTRALE_DEP_PATTERN = '@astrale-os/*'
19
-
20
- export type SdkOutdated = { pkg: string; current: string; latest: string }
21
-
22
- /** Is the CLI running at the root of a scaffolded domain project? */
23
- export function inDomainProject(cwd: string = process.cwd()): boolean {
24
- return existsSync(join(cwd, 'astrale.config.ts'))
25
- }
26
-
27
- /**
28
- * A non-pnpm lockfile means another package manager owns this project; we won't
29
- * run pnpm against it (that would write a stray `pnpm-lock.yaml`). Returns the
30
- * foreign PM name, or null when it's pnpm / fresh (Astrale projects are pnpm-first).
31
- */
32
- export function foreignPackageManager(cwd: string = process.cwd()): 'npm' | 'yarn' | 'bun' | null {
33
- if (existsSync(join(cwd, 'pnpm-lock.yaml'))) return null
34
- if (existsSync(join(cwd, 'package-lock.json'))) return 'npm'
35
- if (existsSync(join(cwd, 'yarn.lock'))) return 'yarn'
36
- if (existsSync(join(cwd, 'bun.lockb')) || existsSync(join(cwd, 'bun.lock'))) return 'bun'
37
- return null
38
- }
39
-
40
- type PnpmOutdatedEntry = { current?: string; wanted?: string; latest?: string }
41
-
42
- /**
43
- * Parse `pnpm outdated --format json` into the deps that actually have a newer
44
- * release. pnpm only lists outdated packages and never proposes a downgrade, so
45
- * we just drop entries with no `latest` or where `latest` equals the current
46
- * version (it lists `wanted` when nothing is installed yet — use that as the
47
- * "current" we display). Pure (no I/O) so it's unit-testable without spawning.
48
- */
49
- export function parseSdkOutdated(stdout: string): SdkOutdated[] {
50
- let parsed: Record<string, PnpmOutdatedEntry>
51
- try {
52
- parsed = JSON.parse(stdout || '{}') as Record<string, PnpmOutdatedEntry>
53
- } catch {
54
- return []
55
- }
56
- const out: SdkOutdated[] = []
57
- for (const [pkg, entry] of Object.entries(parsed)) {
58
- const current = entry.current ?? entry.wanted
59
- if (entry.latest && current && entry.latest !== current) {
60
- out.push({ pkg, current, latest: entry.latest })
61
- }
62
- }
63
- return out
64
- }
65
-
66
- /**
67
- * Ask pnpm which `@astrale-os/*` deps have a newer release. `pnpm outdated`
68
- * exits 1 when outdated deps exist — that's not an error, so we parse stdout
69
- * regardless of exit code. Returns [] when none, pnpm is absent, or anything fails.
70
- */
71
- export async function findSdkOutdated(cwd: string = process.cwd()): Promise<SdkOutdated[]> {
72
- try {
73
- const { stdout } = await run('pnpm', ['outdated', '--format', 'json', ASTRALE_DEP_PATTERN], {
74
- cwd,
75
- })
76
- return parseSdkOutdated(stdout)
77
- } catch {
78
- return [] // pnpm not on PATH, etc.
79
- }
80
- }
81
-
82
- /**
83
- * Apply via `pnpm update --latest --lockfile-only` — pnpm rewrites package.json
84
- * (preserving exact pins, the scaffold style) and the lockfile, honoring the
85
- * registry + supply-chain age policy. `--lockfile-only` is deliberate: it updates
86
- * the manifest + lockfile WITHOUT running install/build scripts, so an `astrale
87
- * update` never executes a dependency's postinstall (pnpm would otherwise exit
88
- * non-zero on `ERR_PNPM_IGNORED_BUILDS`) or churns node_modules — the user runs
89
- * `pnpm install` to materialize, honoring their own build approvals. Surfaces
90
- * pnpm's output only on failure. Returns true on success.
91
- */
92
- export async function applySdkUpdate(cwd: string = process.cwd()): Promise<boolean> {
93
- try {
94
- const { code, stdout, stderr } = await run(
95
- 'pnpm',
96
- ['update', '--latest', '--lockfile-only', ASTRALE_DEP_PATTERN],
97
- { cwd },
98
- )
99
- if (code !== 0) process.stderr.write(stdout + stderr)
100
- return code === 0
101
- } catch {
102
- return false
103
- }
104
- }
package/src/lib/self.ts DELETED
@@ -1,22 +0,0 @@
1
- /**
2
- * Lexical `@self` helpers. Effective-principal resolution is deliberately not
3
- * local: connection/self.ts asks the authenticated target Kernel through
4
- * Identity.whoami before replacing any reference.
5
- */
6
-
7
- // Anchors:
8
- // left: start-of-string OR right after `=` (param-value head)
9
- // right: end-of-string OR `::` (instance method) OR `/` (path navigation)
10
- const SELF_RE = /(?:^|(?<=[=]))@self(?=$|::|\/)/g
11
-
12
- /** Cheap pre-check before invoking authenticated principal resolution. */
13
- export function containsSelfRef(input: string): boolean {
14
- SELF_RE.lastIndex = 0
15
- return SELF_RE.test(input)
16
- }
17
-
18
- /** Replace every admitted `@self` token with one authenticated NodeId. */
19
- export function expandSelfReferences(input: string, selfId: string): string {
20
- const replacement = `@${selfId}`
21
- return input.replace(SELF_RE, () => replacement)
22
- }
package/src/lib/skills.ts DELETED
@@ -1,171 +0,0 @@
1
- import { existsSync, lstatSync, mkdirSync, readlinkSync, symlinkSync } from 'node:fs'
2
- import { homedir } from 'node:os'
3
- import { dirname, join } from 'node:path'
4
-
5
- import { findAgentBrowser } from './browser'
6
- import { run } from './proc'
7
-
8
- /**
9
- * Agent skills and the agent-browser tool are owned by the coding-agent harness
10
- * (Claude Code et al.) and by npm — not by this CLI. `astrale setup` and
11
- * `astrale update` only *detect* them and delegate installation to their real
12
- * installers (`npx skills add`, `npm i -g agent-browser`). This module is that
13
- * detection + delegation layer.
14
- */
15
-
16
- /** The skill name the agent harness looks up under `<dir>/<name>/SKILL.md`. */
17
- export const ASTRALE_CLI_SKILL = 'astrale-cli'
18
- export const ASTRALE_DOMAIN_SKILL = 'astrale-domain'
19
- export const AGENT_BROWSER_SKILL = 'agent-browser'
20
-
21
- /**
22
- * Published skill source consumed by `npx skills add`. The public `astrale-os/cli`
23
- * repo hosts BOTH the astrale-cli and astrale-domain skills (under `skills/`), so
24
- * one `npx skills add astrale-os/cli` installs both; address one with
25
- * `astrale-os/cli@astrale-cli` or `astrale-os/cli@astrale-domain`.
26
- */
27
- export const ASTRALE_CLI_SKILL_SOURCE = 'astrale-os/cli'
28
-
29
- /** Human-facing command that installs (or refreshes) both astrale skills, globally. */
30
- export const SKILL_INSTALL_HINT = `npx skills add ${ASTRALE_CLI_SKILL_SOURCE} -g`
31
-
32
- /**
33
- * Install or refresh the astrale agent skills by delegating to the skill package
34
- * manager (`npx skills add`). We install GLOBALLY (`-g`, user-level): one run
35
- * equips every project on the machine — the harness resolves the skills from the
36
- * user Claude dir (see {@link detectSkill}) regardless of cwd, and installs land
37
- * in `~/.agents/skills` rather than clobbering any project's own `.agents/skills`
38
- * (notably this repo's symlinked source). We don't reimplement skill installation
39
- * — re-running the real installer is also how an existing install updates to the
40
- * latest published SKILL.md, so this doubles as the update path.
41
- *
42
- * We CAPTURE the installer's output rather than stream it, and surface it only on
43
- * failure. A global install reports a benign per-agent note for any agent format
44
- * that can't go user-level (e.g. PromptScript: "does not support global skill
45
- * installation") as a "Failed to install N" banner — even though `npx skills`
46
- * still exits 0 and the skills land for every other agent. Streaming that made a
47
- * successful refresh look broken; suppressing it on success lets the caller print
48
- * a clean line. Resolves true on exit 0. Requires Node/`npx` on PATH + network.
49
- */
50
- export async function installSkills(): Promise<boolean> {
51
- const { code, stdout, stderr } = await run('npx', [
52
- 'skills',
53
- 'add',
54
- ASTRALE_CLI_SKILL_SOURCE,
55
- '-g',
56
- '-y',
57
- ])
58
- if (code !== 0) process.stderr.write(stdout + stderr)
59
- return code === 0
60
- }
61
-
62
- /**
63
- * The directories the agent harness ACTUALLY loads skills from, in resolution
64
- * order: a project `.claude/skills` found by walking UP from cwd (the harness
65
- * walks up to the project root), then the user-global Claude dir.
66
- *
67
- * Deliberately NOT `.agents/skills`: the harness never reads it, so a skill
68
- * present only there is on disk but NOT loaded — the false "installed" this
69
- * used to report, which let `astrale setup` mark a skill satisfied while the
70
- * agent couldn't see it. `.agents/skills` is a SOURCE convention; it only loads
71
- * once bridged into `.claude/skills` (e.g. `.claude/skills` symlinked to
72
- * `.agents/skills`, as this monorepo wires itself — see {@link ensureSkillsBridge}).
73
- * We probe for `SKILL.md` (not the directory) so a symlinked skill still resolves.
74
- */
75
- function skillSearchDirs(): string[] {
76
- const dirs: string[] = []
77
- let cur = process.cwd()
78
- for (;;) {
79
- dirs.push(join(cur, '.claude', 'skills'))
80
- const parent = dirname(cur)
81
- if (parent === cur) break
82
- cur = parent
83
- }
84
- dirs.push(join(homedir(), '.claude', 'skills'))
85
- return dirs
86
- }
87
-
88
- export type SkillPresence = { installed: boolean; location: string | null }
89
-
90
- /** Is `<name>/SKILL.md` present in a directory the harness actually loads from? */
91
- export function detectSkill(name: string): SkillPresence {
92
- for (const dir of skillSearchDirs()) {
93
- const file = join(dir, name, 'SKILL.md')
94
- if (existsSync(file)) return { installed: true, location: file }
95
- }
96
- return { installed: false, location: null }
97
- }
98
-
99
- /** Is the `agent-browser` binary resolvable on PATH? */
100
- export async function detectAgentBrowser(): Promise<boolean> {
101
- return (await findAgentBrowser()) !== null
102
- }
103
-
104
- /* ───────────────────────────── skills bridge ─────────────────────────────
105
- * Agent tooling stages skills under `.agents/skills`, but the harness only loads
106
- * `.claude/skills` (walking up). A single `.claude/skills -> ../.agents/skills`
107
- * symlink bridges EVERY staged skill — present and future — for a workspace and
108
- * every project nested under it. This is exactly how this monorepo wires itself.
109
- * It complements the global `-g` installs above: those equip machine-wide skills
110
- * the CLI owns; this makes a workspace's own staged skills loadable. */
111
-
112
- /** The relative target every bridge points at, from `<root>/.claude/skills`. */
113
- const BRIDGE_TARGET = join('..', '.agents', 'skills')
114
-
115
- function isSymlink(p: string): boolean {
116
- try {
117
- return lstatSync(p).isSymbolicLink()
118
- } catch {
119
- return false
120
- }
121
- }
122
-
123
- /** Nearest ancestor of `fromDir` (inclusive) that stages skills under
124
- * `.agents/skills` — the "skills workspace root". null if none up the tree. */
125
- function findAgentsSkillsRoot(fromDir: string): string | null {
126
- let cur = fromDir
127
- for (;;) {
128
- if (existsSync(join(cur, '.agents', 'skills'))) return cur
129
- const parent = dirname(cur)
130
- if (parent === cur) return null
131
- cur = parent
132
- }
133
- }
134
-
135
- export type BridgeStatus =
136
- /** no `.agents/skills` up the tree → nothing to bridge */
137
- | { kind: 'none' }
138
- /** `.claude/skills` already symlinks to `.agents/skills` → harness loads them */
139
- | { kind: 'bridged'; root: string }
140
- /** `.claude/skills` exists but isn't our bridge (a real dir / foreign link) → leave it */
141
- | { kind: 'foreign'; root: string }
142
- /** `.agents/skills` present, no `.claude/skills` → we can create the bridge */
143
- | { kind: 'unbridged'; root: string; link: string }
144
-
145
- /** Read-only: is the workspace's `.agents/skills` visible to the harness? */
146
- export function skillsBridgeStatus(fromDir: string = process.cwd()): BridgeStatus {
147
- const root = findAgentsSkillsRoot(fromDir)
148
- if (!root) return { kind: 'none' }
149
- const link = join(root, '.claude', 'skills')
150
- if (isSymlink(link)) {
151
- try {
152
- if (readlinkSync(link) === BRIDGE_TARGET) return { kind: 'bridged', root }
153
- } catch {
154
- /* unreadable link → treat as foreign, don't touch it */
155
- }
156
- return { kind: 'foreign', root }
157
- }
158
- if (existsSync(link)) return { kind: 'foreign', root }
159
- return { kind: 'unbridged', root, link }
160
- }
161
-
162
- /** Create the `.claude/skills -> ../.agents/skills` bridge if it's missing.
163
- * Idempotent and NON-destructive: a correct bridge is left as-is; a pre-existing
164
- * real `.claude/skills` (or a foreign symlink) is never clobbered. */
165
- export function ensureSkillsBridge(fromDir: string = process.cwd()): BridgeStatus {
166
- const status = skillsBridgeStatus(fromDir)
167
- if (status.kind !== 'unbridged') return status
168
- mkdirSync(dirname(status.link), { recursive: true })
169
- symlinkSync(BRIDGE_TARGET, status.link)
170
- return { kind: 'bridged', root: status.root }
171
- }
package/src/lib/table.ts DELETED
@@ -1,62 +0,0 @@
1
- import chalk from 'chalk'
2
-
3
- /** A display column: which row key to read, its header, and an optional cell color. */
4
- export type Column = { key: string; header: string; color?: (s: string) => string }
5
-
6
- const GUTTER = ' '
7
- // ESC[…m — built without a control char in the source so no lint disable is needed.
8
- const ANSI = new RegExp(`${String.fromCharCode(27)}\\[[0-9;]*m`, 'g')
9
-
10
- /** Printable width of a string, ignoring ANSI color codes. */
11
- function visibleWidth(s: string): number {
12
- return s.replace(ANSI, '').length
13
- }
14
-
15
- /** Pad to a target *visible* width (color codes don't count toward length). */
16
- function pad(s: string, width: number): string {
17
- const diff = width - visibleWidth(s)
18
- return diff > 0 ? s + ' '.repeat(diff) : s
19
- }
20
-
21
- /**
22
- * Render an aligned, optionally-colored table.
23
- *
24
- * Cells may carry ANSI (e.g. a per-row status color) — widths are computed on
25
- * visible length so alignment stays correct. `Column.color` colors a whole
26
- * column of otherwise-plain cells. Columns empty across every row are dropped;
27
- * the last column is left unpadded so there's no trailing whitespace.
28
- */
29
- export function renderTable(
30
- rows: Array<Record<string, string>>,
31
- opts: { columns: Column[]; showHeader?: boolean },
32
- ): string {
33
- if (rows.length === 0) return chalk.dim(' (empty)')
34
-
35
- const cols = opts.columns.filter((c) => rows.some((r) => (r[c.key] ?? '') !== ''))
36
- if (cols.length === 0) return chalk.dim(' (empty)')
37
-
38
- const widths = cols.map((c) =>
39
- Math.max(
40
- opts.showHeader ? c.header.length : 0,
41
- ...rows.map((r) => visibleWidth(r[c.key] ?? '')),
42
- ),
43
- )
44
-
45
- const line = (cell: (col: Column, i: number) => string): string =>
46
- ' ' + cols.map(cell).join(GUTTER).replace(/\s+$/, '')
47
-
48
- const lines: string[] = []
49
- if (opts.showHeader) {
50
- lines.push(line((c, i) => chalk.dim(pad(c.header, widths[i]))))
51
- }
52
- for (const r of rows) {
53
- lines.push(
54
- line((c, i) => {
55
- const raw = r[c.key] ?? ''
56
- const text = i === cols.length - 1 ? raw : pad(raw, widths[i])
57
- return c.color ? c.color(text) : text
58
- }),
59
- )
60
- }
61
- return lines.join('\n')
62
- }