@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,41 +0,0 @@
1
- /** CLI-stable projection of one Admin Domain catalog record. */
2
- export interface DomainInfo {
3
- readonly id: string
4
- readonly origin: string
5
- readonly name: string
6
- readonly url?: string
7
- readonly description?: string
8
- readonly installByDefault?: boolean
9
- readonly createdAt: string
10
- readonly updatedAt: string
11
- }
12
-
13
- export interface PublishDomainInput {
14
- readonly origin: string
15
- readonly name: string
16
- readonly url: string
17
- readonly description?: string
18
- readonly installByDefault?: boolean
19
- }
20
-
21
- export interface PublishDomainResult {
22
- readonly entry: DomainInfo
23
- readonly changed: boolean
24
- readonly isNew: boolean
25
- }
26
-
27
- export interface InstallDomainResult {
28
- readonly name: string
29
- readonly origin: string
30
- readonly instanceId: string
31
- readonly url: string
32
- readonly ok: boolean
33
- readonly error?: string | null
34
- }
35
-
36
- export class AdminDomainNotFoundError extends AstraleError {
37
- constructor(readonly identifier: string) {
38
- super('DOMAIN_NOT_FOUND', `No visible Admin Domain matches ${JSON.stringify(identifier)}.`)
39
- }
40
- }
41
- import { AstraleError } from '../../errors'
@@ -1,8 +0,0 @@
1
- {
2
- "extends": "../../../tsconfig.json",
3
- "compilerOptions": {
4
- "types": ["@types/node"]
5
- },
6
- "include": ["*.ts"],
7
- "exclude": ["__tests__"]
8
- }
@@ -1,22 +0,0 @@
1
- import type { GraphApi } from '@astrale-os/sdk/client'
2
- import type { Node } from '@astrale-os/sdk/graph/node'
3
- import type { QueryAST } from '@astrale-os/sdk/query'
4
-
5
- /** Smallest Kernel graph capability needed by bounded Admin graph reads. */
6
- export type AdminGraphQueryApi = Pick<GraphApi, 'query'>
7
-
8
- /** Caller-scoped graph reads shared by the Admin catalog and Instance journeys. */
9
- export type AdminGraphApi = Pick<GraphApi, 'query' | 'neighbors'>
10
-
11
- export interface ReadAllNodesOptions {
12
- readonly label: string
13
- readonly maximum: number
14
- readonly maximumPages: number
15
- }
16
-
17
- /** Collect one bounded Node selection and reject projection, cursor, or identity anomalies. */
18
- export function readAllNodes(
19
- graph: AdminGraphQueryApi,
20
- ast: QueryAST,
21
- options: ReadAllNodesOptions,
22
- ): Promise<readonly Node[]>
@@ -1,5 +0,0 @@
1
- # Admin Graph inventory helper
2
-
3
- This internal helper consumes only public `GraphApi.query` pages. It requires a Node selection,
4
- enforces explicit Node and page bounds, rejects repeated cursors and Node identities, and returns a
5
- frozen inventory. It owns no Admin schema meaning and performs no mutation or invocation.
@@ -1,3 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#0891b2" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round">
2
- <circle cx="5" cy="12" r="2"/><circle cx="12" cy="6" r="2"/><circle cx="19" cy="12" r="2"/><circle cx="12" cy="18" r="2"/><path d="m7 11 3.5-3.5M13.5 7.5 17 11M17 13l-3.5 3.5M10.5 16.5 7 13"/>
3
- </svg>
@@ -1,3 +0,0 @@
1
- import { defineLayout } from '@astrale-os/spec/authoring'
2
-
3
- export default defineLayout({ entries: ['index.ts', 'nodes.ts'], exact: true })
@@ -1,6 +0,0 @@
1
- export {
2
- readAllNodes,
3
- type AdminGraphApi,
4
- type AdminGraphQueryApi,
5
- type ReadAllNodesOptions,
6
- } from './nodes'
@@ -1,56 +0,0 @@
1
- import type { GraphApi } from '@astrale-os/sdk/client'
2
- import type { Node } from '@astrale-os/sdk/graph/node'
3
- import type { QueryAST } from '@astrale-os/sdk/query'
4
-
5
- export type AdminGraphQueryApi = Pick<GraphApi, 'query'>
6
- export type AdminGraphApi = Pick<GraphApi, 'query' | 'neighbors'>
7
-
8
- export interface ReadAllNodesOptions {
9
- readonly label: string
10
- readonly maximum: number
11
- readonly maximumPages: number
12
- }
13
-
14
- /** Collect one explicitly bounded Node-value projection without hiding cursors. */
15
- export async function readAllNodes(
16
- graph: AdminGraphQueryApi,
17
- ast: QueryAST,
18
- options: ReadAllNodesOptions,
19
- ): Promise<readonly Node[]> {
20
- const nodes: Node[] = []
21
- const ids = new Set<string>()
22
- const cursors = new Set<string>()
23
- let cursor: string | undefined
24
- let pages = 0
25
- const pageSize = Math.min(options.maximum, 256)
26
- do {
27
- pages += 1
28
- if (pages > options.maximumPages) {
29
- throw new TypeError(`${options.label} exceeded its page bound.`)
30
- }
31
- const response = await graph.query(ast, {
32
- page: { size: pageSize, ...(cursor === undefined ? {} : { after: cursor }) },
33
- })
34
- const result = response.result
35
- if (result.kind !== 'nodes')
36
- throw new TypeError(`${options.label} returned the wrong projection.`)
37
- for (const projection of result.nodes) {
38
- if (projection.kind !== 'value') {
39
- throw new TypeError(`${options.label} omitted requested Node values.`)
40
- }
41
- const node = projection.value
42
- if (ids.has(String(node.id))) throw new TypeError(`${options.label} repeated a Node.`)
43
- ids.add(String(node.id))
44
- nodes.push(node)
45
- }
46
- if (nodes.length > options.maximum) {
47
- throw new TypeError(`${options.label} exceeded its Node bound.`)
48
- }
49
- cursor = response.page.next
50
- if (cursor !== undefined && cursors.has(cursor)) {
51
- throw new TypeError(`${options.label} repeated a cursor.`)
52
- }
53
- if (cursor !== undefined) cursors.add(cursor)
54
- } while (cursor !== undefined)
55
- return Object.freeze(nodes)
56
- }
@@ -1,2 +0,0 @@
1
- export * as catalog from './catalog'
2
- export * as instance from './instance'
@@ -1,66 +0,0 @@
1
- import type { ClientSession } from '@astrale-os/sdk/client/session'
2
- import type { DomainBinding } from '@astrale-os/shell'
3
-
4
- import type { AdminGraphApi } from '../../graph/.spec/api.js'
5
-
6
- export type InstanceState = 'provisioning' | 'ready' | 'deleting' | 'failed' | 'deleted'
7
-
8
- export interface InstanceInfo {
9
- readonly id: string
10
- readonly slug: string
11
- readonly url: string
12
- readonly hostId?: string
13
- readonly region?: string
14
- readonly state?: InstanceState
15
- readonly phase?: string
16
- readonly error?: string | null
17
- readonly createdAt?: string
18
- readonly organizationId?: string
19
- }
20
-
21
- export interface OwnedInstanceInfo extends InstanceInfo {
22
- readonly state: InstanceState
23
- }
24
-
25
- export interface DomainInstallReceipt {
26
- readonly domain: string
27
- readonly instance: string
28
- readonly origin: string
29
- readonly ok: boolean
30
- readonly installedRevision?: string
31
- readonly error?: string
32
- }
33
-
34
- export interface AdminInstanceContext {
35
- readonly session: ClientSession
36
- readonly graph: AdminGraphApi
37
- }
38
-
39
- export interface AdminInstanceApi {
40
- list(): Promise<OwnedInstanceInfo[]>
41
- create(slug: string, hostId?: string): Promise<InstanceInfo>
42
- status(identifier: string): Promise<InstanceInfo>
43
- delete(identifier: string): Promise<InstanceInfo>
44
- installDomain(identifier: string, domain: string): Promise<DomainInstallReceipt>
45
- }
46
-
47
- export class AdminInstanceNotFoundError extends Error {
48
- constructor(identifier: string)
49
- readonly name: 'NotFoundError'
50
- readonly identifier: string
51
- }
52
-
53
- export interface AdminInstanceDependencies {
54
- readonly bind?: (session: ClientSession) => Promise<DomainBinding>
55
- readonly operationId?: (kind: 'create' | 'status' | 'delete' | 'install-domain') => string
56
- }
57
-
58
- export function connectAdminInstances(
59
- context: AdminInstanceContext,
60
- dependencies?: AdminInstanceDependencies,
61
- ): Promise<AdminInstanceApi>
62
- export function findOwnedInstance(
63
- instances: readonly OwnedInstanceInfo[],
64
- identifier: string,
65
- ): OwnedInstanceInfo | undefined
66
- export function formatInstanceLocation(info: InstanceInfo): string
@@ -1,10 +0,0 @@
1
- # CLI Admin Instance adapter
2
-
3
- The adapter discovers and binds the configured Admin Domain, proves its origin, and resolves the
4
- singleton Fleet receiver. Policy-visible `Instance` and `Host` Nodes come from bounded Graph queries;
5
- Host location is joined through `instance_runs_on_host`.
6
-
7
- Automatic creation invokes `Fleet.createInstance`; explicit `--host-id` resolves one visible,
8
- non-reserved Host and invokes `Host.createInstance`. Status, deletion, and Domain installation
9
- invoke the exact Instance receiver. The adapter creates internal operation IDs but preserves the
10
- existing CLI projection and selection-required experience.
@@ -1,3 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#2563eb" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round">
2
- <rect x="4" y="4" width="16" height="16" rx="3"/><path d="M8 9h8M8 13h8M8 17h5"/><circle cx="17" cy="17" r="1" fill="#2563eb"/>
3
- </svg>
@@ -1,6 +0,0 @@
1
- import { defineLayout } from '@astrale-os/spec/authoring'
2
-
3
- export default defineLayout({
4
- entries: ['__tests__/', 'client.ts', 'index.ts', 'model.ts', 'tsconfig.json'],
5
- exact: true,
6
- })
@@ -1,266 +0,0 @@
1
- import type { Node } from '@astrale-os/sdk/graph/node'
2
- import type { QueryAST } from '@astrale-os/sdk/query'
3
-
4
- import { NodeId } from '@astrale-os/sdk/graph/node'
5
- import { Path } from '@astrale-os/sdk/graph/path'
6
- import { describe, expect, mock, test } from 'bun:test'
7
-
8
- import type { AdminGraphApi } from '../../graph'
9
-
10
- import { AdminTestDomain, adminBinding, adminSession } from '../../__tests__/fixture'
11
- import { connectAdminInstances } from '../client'
12
-
13
- function hostNode(id: string, props: { readonly id: string; readonly state: string }): Node {
14
- return {
15
- id: NodeId(id),
16
- class: AdminTestDomain.classes.Host.key,
17
- props: AdminTestDomain.classes.Host.properties.from(props),
18
- }
19
- }
20
-
21
- function instanceNode(id: string): Node {
22
- return {
23
- id: NodeId(id),
24
- class: AdminTestDomain.classes.Instance.key,
25
- props: AdminTestDomain.classes.Instance.properties.from({}),
26
- }
27
- }
28
-
29
- function graphResult(nodes: readonly Node[], cursor?: string) {
30
- return {
31
- result: {
32
- kind: 'nodes' as const,
33
- nodes: nodes.map((value) => ({ kind: 'value' as const, value })),
34
- },
35
- page: cursor === undefined ? {} : { next: cursor },
36
- }
37
- }
38
-
39
- function sourceName(ast: QueryAST): string | undefined {
40
- const term = ast.source.terms[0]
41
- return term?.kind === 'class' ? term.class.name : undefined
42
- }
43
-
44
- function fixture(input: {
45
- instances?: readonly Node[]
46
- hosts?: readonly Node[]
47
- reserved?: Node | null
48
- invoke?: (method: { owner: string; name: string }, receiver: unknown, input: unknown) => unknown
49
- }) {
50
- const calls: Array<{
51
- method: { owner: string; name: string }
52
- receiver: string
53
- value: unknown
54
- }> = []
55
- const remote = adminSession((method, receiver, value) => {
56
- calls.push({ method, receiver: String(receiver), value })
57
- return input.invoke?.(method, receiver, value)
58
- })
59
- const binding = adminBinding()
60
- const query = mock(async (ast: QueryAST) => {
61
- const name = sourceName(ast)
62
- if (name === 'Instance') return graphResult(input.instances ?? [])
63
- if (name === 'Host') return graphResult(input.hosts ?? [])
64
- throw new Error(`Unexpected graph query ${String(name)}`)
65
- })
66
- const neighbors = mock(async (source: unknown, edge: { name?: string }) => {
67
- if (String(source) === '/:admin.astrale.ai:core.fleet') return page(input.reserved ?? null)
68
- if (edge.name === 'instance_runs_on_host') return page(input.hosts?.[0] ?? null)
69
- throw new Error(`Unexpected neighbor query ${String(source)} ${String(edge)}`)
70
- })
71
- const graph = { query, neighbors } as unknown as AdminGraphApi
72
- return {
73
- binding,
74
- graph,
75
- invoke: remote.invoke,
76
- calls,
77
- connect: () =>
78
- connectAdminInstances(
79
- { session: remote.session, graph },
80
- {
81
- bind: async () => binding,
82
- operationId: (kind) => `cli.instance.${kind}:test`,
83
- },
84
- ),
85
- }
86
- }
87
-
88
- function page(item: Node | null) {
89
- return {
90
- nodes: item === null ? [] : [item],
91
- first: item,
92
- graph: { nodes: item === null ? [] : [item], edges: [] },
93
- cursor: null,
94
- }
95
- }
96
-
97
- describe('V2 Admin Instance adapter', () => {
98
- test('lists caller-visible Instances through the Admin-owned Fleet operation', async () => {
99
- const contract = fixture({
100
- invoke: (method) =>
101
- method.name === 'listInstances'
102
- ? [
103
- {
104
- id: '@instance-node',
105
- slug: 'demo',
106
- url: 'https://demo.eu.astrale.ai',
107
- state: 'ready',
108
- createdAt: '2026-08-12T00:00:00.000Z',
109
- updatedAt: '2026-08-12T00:00:00.000Z',
110
- hostId: '@host-node',
111
- region: 'fr-par',
112
- },
113
- ]
114
- : undefined,
115
- })
116
-
117
- await expect((await contract.connect()).list()).resolves.toEqual([
118
- {
119
- id: '@instance-node',
120
- slug: 'demo',
121
- url: 'https://demo.eu.astrale.ai',
122
- state: 'ready',
123
- createdAt: '2026-08-12T00:00:00.000Z',
124
- hostId: '@host-node',
125
- region: 'fr-par',
126
- },
127
- ])
128
- expect(contract.calls).toEqual([
129
- {
130
- method: { owner: 'Fleet', name: 'listInstances' },
131
- receiver: '/:admin.astrale.ai:core.fleet::listInstances',
132
- value: {},
133
- },
134
- ])
135
- })
136
-
137
- test('delegates default placement to Fleet without reading Host inventory', async () => {
138
- const created = {
139
- id: '@instance-node',
140
- slug: 'demo',
141
- url: 'https://demo.eu.astrale.ai',
142
- state: 'ready',
143
- createdAt: '2026-08-12T00:00:00.000Z',
144
- updatedAt: '2026-08-12T00:00:00.000Z',
145
- }
146
- const contract = fixture({
147
- hosts: [hostNode('host-node', { id: 'host-paris', state: 'ready' })],
148
- invoke: () => created,
149
- })
150
-
151
- await expect((await contract.connect()).create('demo')).resolves.toMatchObject({
152
- id: created.id,
153
- slug: created.slug,
154
- url: created.url,
155
- state: created.state,
156
- createdAt: created.createdAt,
157
- })
158
- expect(contract.calls).toEqual([
159
- {
160
- method: { owner: 'Fleet', name: 'createInstance' },
161
- receiver: '/:admin.astrale.ai:core.fleet::createInstance',
162
- value: { operationId: 'cli.instance.create:test', slug: 'demo' },
163
- },
164
- ])
165
- expect(contract.graph.query).not.toHaveBeenCalled()
166
- expect(contract.graph.neighbors).not.toHaveBeenCalled()
167
- })
168
-
169
- test('resolves --host-id to an exact Host receiver and rejects the reserved Admin Host', async () => {
170
- const reserved = hostNode('admin-host', { id: 'admin', state: 'ready' })
171
- const consumer = hostNode('consumer-host', { id: 'consumer-paris', state: 'ready' })
172
- const contract = fixture({
173
- hosts: [reserved, consumer],
174
- reserved,
175
- invoke: () => ({
176
- id: '@instance-node',
177
- slug: 'demo',
178
- url: 'https://demo.eu.astrale.ai',
179
- state: 'ready',
180
- }),
181
- })
182
- const api = await contract.connect()
183
-
184
- await expect(api.create('demo', 'admin')).rejects.toMatchObject({ code: 'HOST_NOT_FOUND' })
185
- await expect(api.create('demo', 'consumer-paris')).resolves.toMatchObject({ slug: 'demo' })
186
- expect(contract.calls.at(-1)).toEqual({
187
- method: { owner: 'Host', name: 'createInstance' },
188
- receiver: '@consumer-host::createInstance',
189
- value: { operationId: 'cli.instance.create:test', slug: 'demo' },
190
- })
191
- })
192
-
193
- test('refreshes and deletes through the resolved Instance receiver', async () => {
194
- const instance = instanceNode('instance-node')
195
- const contract = fixture({
196
- instances: [instance],
197
- invoke: (method) =>
198
- method.name === 'listInstances'
199
- ? [
200
- {
201
- id: '@instance-node',
202
- slug: 'demo',
203
- url: 'https://demo.eu.astrale.ai',
204
- state: 'ready',
205
- createdAt: '2026-08-12T00:00:00.000Z',
206
- updatedAt: '2026-08-12T00:00:00.000Z',
207
- },
208
- ]
209
- : {
210
- id: '@instance-node',
211
- slug: 'demo',
212
- url: 'https://demo.eu.astrale.ai',
213
- state: method.name === 'delete' ? 'deleted' : 'ready',
214
- },
215
- })
216
- const api = await contract.connect()
217
-
218
- await expect(api.status('demo')).resolves.toMatchObject({ state: 'ready' })
219
- await expect(api.delete('@instance-node')).resolves.toMatchObject({ state: 'deleted' })
220
- expect(contract.calls.map(({ method }) => method)).toEqual([
221
- { owner: 'Fleet', name: 'listInstances' },
222
- { owner: 'Instance', name: 'status' },
223
- { owner: 'Fleet', name: 'listInstances' },
224
- { owner: 'Instance', name: 'delete' },
225
- ])
226
- })
227
-
228
- test('installs a resolved catalog Domain through Instance.installDomain', async () => {
229
- const instance = instanceNode('instance-node')
230
- const contract = fixture({
231
- instances: [instance],
232
- invoke: (method) =>
233
- method.name === 'listInstances'
234
- ? [
235
- {
236
- id: '@instance-node',
237
- slug: 'demo',
238
- url: 'https://demo.eu.astrale.ai',
239
- state: 'ready',
240
- createdAt: '2026-08-12T00:00:00.000Z',
241
- updatedAt: '2026-08-12T00:00:00.000Z',
242
- },
243
- ]
244
- : {
245
- domain: '@crm-domain',
246
- instance: '@instance-node',
247
- origin: 'crm.acme.dev',
248
- ok: true,
249
- installedRevision: `sha256:${'a'.repeat(64)}`,
250
- },
251
- })
252
- const api = await contract.connect()
253
-
254
- await expect(api.installDomain('demo', '@crm-domain')).resolves.toMatchObject({
255
- domain: '@crm-domain',
256
- instance: '@instance-node',
257
- origin: 'crm.acme.dev',
258
- ok: true,
259
- })
260
- expect(contract.calls.at(-1)).toEqual({
261
- method: { owner: 'Instance', name: 'installDomain' },
262
- receiver: '@instance-node::installDomain',
263
- value: { operationId: 'cli.instance.install-domain:test', domain: '@crm-domain' },
264
- })
265
- })
266
- })