@astrale-os/cli 1.0.0-beta.9 → 1.0.0-npm-deprecated.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (617) hide show
  1. package/README.md +14 -166
  2. package/package.json +10 -102
  3. package/.check-workspace.cjs +0 -40
  4. package/LICENSE +0 -202
  5. package/THIRD-PARTY-NOTICES.md +0 -27
  6. package/dist/astrale.js +0 -93344
  7. package/dist/public/connect-core.js +0 -29187
  8. package/dist/public/keys/index.js +0 -5651
  9. package/dist/public/paths/index.js +0 -4282
  10. package/dist/types/admin/binding.d.ts +0 -19
  11. package/dist/types/admin/instance/client.d.ts +0 -22
  12. package/dist/types/admin/instance/index.d.ts +0 -2
  13. package/dist/types/admin/instance/model.d.ts +0 -33
  14. package/dist/types/connect-core.d.ts +0 -22
  15. package/dist/types/connection/auth.d.ts +0 -39
  16. package/dist/types/connection/call.d.ts +0 -3
  17. package/dist/types/connection/command.d.ts +0 -27
  18. package/dist/types/connection/credential.d.ts +0 -14
  19. package/dist/types/connection/errors.d.ts +0 -1
  20. package/dist/types/connection/exchange.d.ts +0 -9
  21. package/dist/types/connection/failure/classify.d.ts +0 -2
  22. package/dist/types/connection/failure/index.d.ts +0 -5
  23. package/dist/types/connection/failure/model.d.ts +0 -25
  24. package/dist/types/connection/failure/render.d.ts +0 -3
  25. package/dist/types/connection/index.d.ts +0 -8
  26. package/dist/types/connection/reasons.d.ts +0 -37
  27. package/dist/types/connection/self.d.ts +0 -37
  28. package/dist/types/connection/session.d.ts +0 -31
  29. package/dist/types/connection/target.d.ts +0 -38
  30. package/dist/types/errors.d.ts +0 -23
  31. package/dist/types/identity/registry.d.ts +0 -25
  32. package/dist/types/keys/algorithm.d.ts +0 -6
  33. package/dist/types/keys/credential.d.ts +0 -21
  34. package/dist/types/keys/index.d.ts +0 -4
  35. package/dist/types/keys/pair.d.ts +0 -34
  36. package/dist/types/lib/admin-instance.d.ts +0 -17
  37. package/dist/types/lib/admin-target.d.ts +0 -78
  38. package/dist/types/lib/ca-fetch.d.ts +0 -2
  39. package/dist/types/lib/config.d.ts +0 -71
  40. package/dist/types/lib/failure-debug.d.ts +0 -1
  41. package/dist/types/lib/format.d.ts +0 -1
  42. package/dist/types/lib/idp-session.d.ts +0 -33
  43. package/dist/types/lib/idp.d.ts +0 -404
  44. package/dist/types/lib/instance-target.d.ts +0 -38
  45. package/dist/types/lib/instance.d.ts +0 -202
  46. package/dist/types/lib/invocation.d.ts +0 -3
  47. package/dist/types/lib/log.d.ts +0 -33
  48. package/dist/types/lib/login-flow.d.ts +0 -49
  49. package/dist/types/lib/meta.d.ts +0 -36
  50. package/dist/types/lib/output.d.ts +0 -87
  51. package/dist/types/lib/proc.d.ts +0 -43
  52. package/dist/types/lib/self.d.ts +0 -9
  53. package/dist/types/lib/table.d.ts +0 -18
  54. package/dist/types/lib/update.d.ts +0 -131
  55. package/dist/types/lib/validation.d.ts +0 -11
  56. package/dist/types/paths/index.d.ts +0 -2
  57. package/dist/types/state/exchange-credentials.d.ts +0 -25
  58. package/dist/types/state/files.d.ts +0 -9
  59. package/dist/types/state/identities.d.ts +0 -42
  60. package/dist/types/state/index.d.ts +0 -8
  61. package/dist/types/state/paths.d.ts +0 -32
  62. package/src/__tests__/fixtures/publication.ts +0 -20
  63. package/src/admin/.spec/api.d.ts +0 -3
  64. package/src/admin/.spec/architecture.md +0 -15
  65. package/src/admin/.spec/icon.svg +0 -3
  66. package/src/admin/.spec/layout.ts +0 -6
  67. package/src/admin/__tests__/binding.test.ts +0 -31
  68. package/src/admin/__tests__/fixture.ts +0 -101
  69. package/src/admin/binding.ts +0 -98
  70. package/src/admin/catalog/.spec/api.d.ts +0 -65
  71. package/src/admin/catalog/.spec/architecture.md +0 -6
  72. package/src/admin/catalog/.spec/icon.svg +0 -3
  73. package/src/admin/catalog/.spec/layout.ts +0 -6
  74. package/src/admin/catalog/__tests__/client.test.ts +0 -142
  75. package/src/admin/catalog/client.ts +0 -218
  76. package/src/admin/catalog/index.ts +0 -13
  77. package/src/admin/catalog/model.ts +0 -41
  78. package/src/admin/catalog/tsconfig.json +0 -8
  79. package/src/admin/graph/.spec/api.d.ts +0 -22
  80. package/src/admin/graph/.spec/architecture.md +0 -5
  81. package/src/admin/graph/.spec/icon.svg +0 -3
  82. package/src/admin/graph/.spec/layout.ts +0 -3
  83. package/src/admin/graph/index.ts +0 -6
  84. package/src/admin/graph/nodes.ts +0 -56
  85. package/src/admin/index.ts +0 -2
  86. package/src/admin/instance/.spec/api.d.ts +0 -66
  87. package/src/admin/instance/.spec/architecture.md +0 -10
  88. package/src/admin/instance/.spec/icon.svg +0 -3
  89. package/src/admin/instance/.spec/layout.ts +0 -6
  90. package/src/admin/instance/__tests__/client.test.ts +0 -166
  91. package/src/admin/instance/client.ts +0 -196
  92. package/src/admin/instance/index.ts +0 -15
  93. package/src/admin/instance/model.ts +0 -56
  94. package/src/admin/instance/tsconfig.json +0 -8
  95. package/src/commands/__tests__/admin-instance.test.ts +0 -91
  96. package/src/commands/__tests__/auth-login.test.ts +0 -231
  97. package/src/commands/__tests__/auth-token.test.ts +0 -223
  98. package/src/commands/__tests__/call-describe.test.ts +0 -80
  99. package/src/commands/__tests__/call.test.ts +0 -29
  100. package/src/commands/__tests__/domain-install-operation.test.ts +0 -126
  101. package/src/commands/__tests__/domain-install-owned.test.ts +0 -191
  102. package/src/commands/__tests__/domain-list.test.ts +0 -133
  103. package/src/commands/__tests__/domain-uninstall.test.ts +0 -53
  104. package/src/commands/__tests__/install-direct.test.ts +0 -21
  105. package/src/commands/__tests__/install-identity-override.test.ts +0 -76
  106. package/src/commands/__tests__/instance-bookmark.test.ts +0 -166
  107. package/src/commands/__tests__/instance-list-admin.test.ts +0 -26
  108. package/src/commands/__tests__/instance-list-rows.test.ts +0 -64
  109. package/src/commands/__tests__/instance-use.test.ts +0 -67
  110. package/src/commands/__tests__/introspect-parse.test.ts +0 -21
  111. package/src/commands/__tests__/logs.test.ts +0 -97
  112. package/src/commands/__tests__/read-commands.test.ts +0 -294
  113. package/src/commands/__tests__/setup-plan.test.ts +0 -61
  114. package/src/commands/__tests__/studio-descriptor.test.ts +0 -22
  115. package/src/commands/__tests__/token-ttl.test.ts +0 -21
  116. package/src/commands/__tests__/update.test.ts +0 -95
  117. package/src/commands/__tests__/view-build.test.ts +0 -58
  118. package/src/commands/__tests__/view.test.ts +0 -149
  119. package/src/commands/admin/status.ts +0 -61
  120. package/src/commands/admin/use.ts +0 -100
  121. package/src/commands/auth/login.ts +0 -82
  122. package/src/commands/auth/logout.ts +0 -52
  123. package/src/commands/auth/status.ts +0 -86
  124. package/src/commands/auth/token.ts +0 -174
  125. package/src/commands/browser.ts +0 -207
  126. package/src/commands/call-describe.ts +0 -123
  127. package/src/commands/call.ts +0 -205
  128. package/src/commands/domain/install.ts +0 -548
  129. package/src/commands/domain/list.ts +0 -155
  130. package/src/commands/domain/publish.ts +0 -136
  131. package/src/commands/domain/uninstall.ts +0 -128
  132. package/src/commands/get.ts +0 -69
  133. package/src/commands/identity/__tests__/register.test.ts +0 -93
  134. package/src/commands/identity/create.ts +0 -35
  135. package/src/commands/identity/delete.ts +0 -24
  136. package/src/commands/identity/export.ts +0 -46
  137. package/src/commands/identity/import.ts +0 -61
  138. package/src/commands/identity/list.ts +0 -56
  139. package/src/commands/identity/register.ts +0 -196
  140. package/src/commands/identity/sync.ts +0 -38
  141. package/src/commands/identity/unsync.ts +0 -34
  142. package/src/commands/identity/use.ts +0 -24
  143. package/src/commands/identity/whoami.ts +0 -34
  144. package/src/commands/idp/add.ts +0 -150
  145. package/src/commands/idp/list.ts +0 -57
  146. package/src/commands/idp/refresh.ts +0 -38
  147. package/src/commands/idp/remove.ts +0 -36
  148. package/src/commands/idp/show.ts +0 -29
  149. package/src/commands/instance/active.ts +0 -73
  150. package/src/commands/instance/bookmark.ts +0 -101
  151. package/src/commands/instance/create.ts +0 -61
  152. package/src/commands/instance/delete.ts +0 -69
  153. package/src/commands/instance/forget.ts +0 -26
  154. package/src/commands/instance/list.ts +0 -197
  155. package/src/commands/instance/status.ts +0 -38
  156. package/src/commands/instance/use.ts +0 -263
  157. package/src/commands/introspect.ts +0 -110
  158. package/src/commands/logs.ts +0 -283
  159. package/src/commands/mutate.ts +0 -122
  160. package/src/commands/query.ts +0 -136
  161. package/src/commands/session/analyze.ts +0 -50
  162. package/src/commands/session/list.ts +0 -36
  163. package/src/commands/setup.ts +0 -54
  164. package/src/commands/status.ts +0 -60
  165. package/src/commands/studio.ts +0 -434
  166. package/src/commands/token.ts +0 -107
  167. package/src/commands/update.ts +0 -334
  168. package/src/commands/use.ts +0 -86
  169. package/src/commands/view-serve.ts +0 -26
  170. package/src/commands/view.ts +0 -614
  171. package/src/connect-core.test.ts +0 -38
  172. package/src/connect-core.ts +0 -42
  173. package/src/connection/.spec/api.d.ts +0 -110
  174. package/src/connection/.spec/architecture.md +0 -47
  175. package/src/connection/.spec/capabilities/connection.ts +0 -13
  176. package/src/connection/.spec/examples/call.ts +0 -7
  177. package/src/connection/.spec/flows/command.ts +0 -20
  178. package/src/connection/.spec/flows/session.ts +0 -61
  179. package/src/connection/.spec/laws/connection.ts +0 -205
  180. package/src/connection/.spec/layout.ts +0 -21
  181. package/src/connection/__tests__/auth.test.ts +0 -128
  182. package/src/connection/__tests__/ca-fetch.test.ts +0 -60
  183. package/src/connection/__tests__/call.test.ts +0 -17
  184. package/src/connection/__tests__/credential.test.ts +0 -138
  185. package/src/connection/__tests__/errors.test.ts +0 -577
  186. package/src/connection/__tests__/exchange.test.ts +0 -295
  187. package/src/connection/__tests__/failure-fixtures.ts +0 -39
  188. package/src/connection/__tests__/failure-safety.test.ts +0 -75
  189. package/src/connection/__tests__/fixtures/localhost-cert.pem +0 -19
  190. package/src/connection/__tests__/fixtures/localhost-key.base64 +0 -1
  191. package/src/connection/__tests__/managed.test.ts +0 -39
  192. package/src/connection/__tests__/reasons.test.ts +0 -78
  193. package/src/connection/__tests__/self.test.ts +0 -71
  194. package/src/connection/__tests__/session.test.ts +0 -140
  195. package/src/connection/__tests__/target.test.ts +0 -94
  196. package/src/connection/auth.ts +0 -249
  197. package/src/connection/call.ts +0 -7
  198. package/src/connection/command.ts +0 -67
  199. package/src/connection/credential.ts +0 -117
  200. package/src/connection/errors.ts +0 -1
  201. package/src/connection/exchange.ts +0 -311
  202. package/src/connection/failure/classify.ts +0 -110
  203. package/src/connection/failure/index.ts +0 -18
  204. package/src/connection/failure/model.ts +0 -28
  205. package/src/connection/failure/render.ts +0 -116
  206. package/src/connection/index.ts +0 -8
  207. package/src/connection/reasons.ts +0 -209
  208. package/src/connection/self.ts +0 -138
  209. package/src/connection/session.ts +0 -196
  210. package/src/connection/target.ts +0 -112
  211. package/src/connection/tsconfig.json +0 -6
  212. package/src/errors.ts +0 -66
  213. package/src/graph/.spec/api.d.ts +0 -41
  214. package/src/graph/.spec/laws/documents.ts +0 -24
  215. package/src/graph/.spec/laws/projection.ts +0 -13
  216. package/src/graph/.spec/layout.ts +0 -14
  217. package/src/graph/__tests__/mutation.test.ts +0 -51
  218. package/src/graph/__tests__/projection.test.ts +0 -22
  219. package/src/graph/__tests__/query.test.ts +0 -173
  220. package/src/graph/class.ts +0 -30
  221. package/src/graph/index.ts +0 -4
  222. package/src/graph/mutation.ts +0 -46
  223. package/src/graph/projection.ts +0 -21
  224. package/src/graph/query.ts +0 -97
  225. package/src/graph/tsconfig.json +0 -6
  226. package/src/identity/.history/ard/bootstrap-root-transfer.md +0 -57
  227. package/src/identity/.history/ard/domain-mediated-registration.md +0 -36
  228. package/src/identity/.spec/api.d.ts +0 -124
  229. package/src/identity/.spec/architecture.md +0 -33
  230. package/src/identity/.spec/capabilities/identity.ts +0 -7
  231. package/src/identity/.spec/flows/bootstrap-root.ts +0 -79
  232. package/src/identity/.spec/flows/domain-mediated-registration.ts +0 -51
  233. package/src/identity/.spec/flows/import.ts +0 -29
  234. package/src/identity/.spec/laws/identity.ts +0 -56
  235. package/src/identity/.spec/layout.ts +0 -13
  236. package/src/identity/.spec/schemas/identity-export-v1.schema.json +0 -25
  237. package/src/identity/__tests__/fixtures/registry-journey.ts +0 -53
  238. package/src/identity/__tests__/registration.test.ts +0 -64
  239. package/src/identity/__tests__/registry.test.ts +0 -70
  240. package/src/identity/__tests__/transfer.test.ts +0 -198
  241. package/src/identity/index.ts +0 -23
  242. package/src/identity/registration.ts +0 -72
  243. package/src/identity/registry.ts +0 -179
  244. package/src/identity/transfer.ts +0 -187
  245. package/src/identity/tsconfig.json +0 -6
  246. package/src/index.ts +0 -1
  247. package/src/keys/.spec/api.d.ts +0 -74
  248. package/src/keys/.spec/architecture.md +0 -13
  249. package/src/keys/.spec/laws/keys.ts +0 -43
  250. package/src/keys/.spec/layout.ts +0 -6
  251. package/src/keys/__tests__/algorithm.test.ts +0 -39
  252. package/src/keys/__tests__/keys.test.ts +0 -168
  253. package/src/keys/algorithm.ts +0 -33
  254. package/src/keys/credential.ts +0 -112
  255. package/src/keys/index.ts +0 -14
  256. package/src/keys/pair.ts +0 -219
  257. package/src/keys/tsconfig.json +0 -6
  258. package/src/lib/__tests__/admin-target.test.ts +0 -184
  259. package/src/lib/__tests__/binary.test.ts +0 -55
  260. package/src/lib/__tests__/command-dx.test.ts +0 -102
  261. package/src/lib/__tests__/concurrency.test.ts +0 -62
  262. package/src/lib/__tests__/config.test.ts +0 -54
  263. package/src/lib/__tests__/design.test.ts +0 -99
  264. package/src/lib/__tests__/domain-publication.test.ts +0 -138
  265. package/src/lib/__tests__/format.test.ts +0 -22
  266. package/src/lib/__tests__/idp-session.driver.ts +0 -53
  267. package/src/lib/__tests__/idp-session.test.ts +0 -379
  268. package/src/lib/__tests__/idp.test.ts +0 -415
  269. package/src/lib/__tests__/instance-candidates.test.ts +0 -146
  270. package/src/lib/__tests__/instance-target.test.ts +0 -213
  271. package/src/lib/__tests__/instance.test.ts +0 -192
  272. package/src/lib/__tests__/local-status.test.ts +0 -202
  273. package/src/lib/__tests__/log-errors.test.ts +0 -64
  274. package/src/lib/__tests__/log.test.ts +0 -31
  275. package/src/lib/__tests__/meta.test.ts +0 -55
  276. package/src/lib/__tests__/output.test.ts +0 -162
  277. package/src/lib/__tests__/panel.test.ts +0 -40
  278. package/src/lib/__tests__/port.test.ts +0 -44
  279. package/src/lib/__tests__/prompt.test.ts +0 -25
  280. package/src/lib/__tests__/sdk-deps.test.ts +0 -68
  281. package/src/lib/__tests__/self.test.ts +0 -50
  282. package/src/lib/__tests__/studio-server-deps.test.ts +0 -111
  283. package/src/lib/__tests__/table.test.ts +0 -53
  284. package/src/lib/__tests__/update.test.ts +0 -351
  285. package/src/lib/__tests__/use-target.test.ts +0 -56
  286. package/src/lib/__tests__/validation.test.ts +0 -34
  287. package/src/lib/__tests__/view-assets.test.ts +0 -146
  288. package/src/lib/__tests__/view-open-intent.test.ts +0 -280
  289. package/src/lib/__tests__/view-port-allocation.test.ts +0 -82
  290. package/src/lib/__tests__/view-server.test.ts +0 -68
  291. package/src/lib/__tests__/view-session.test.ts +0 -99
  292. package/src/lib/__tests__/view-snapshot.test.ts +0 -77
  293. package/src/lib/admin-domain.ts +0 -43
  294. package/src/lib/admin-instance.ts +0 -56
  295. package/src/lib/admin-target.ts +0 -290
  296. package/src/lib/binary.ts +0 -110
  297. package/src/lib/browser.ts +0 -150
  298. package/src/lib/ca-fetch.ts +0 -133
  299. package/src/lib/command-dx.ts +0 -191
  300. package/src/lib/concurrency.ts +0 -31
  301. package/src/lib/config.ts +0 -46
  302. package/src/lib/domain-publication.ts +0 -104
  303. package/src/lib/failure-debug.ts +0 -26
  304. package/src/lib/format.ts +0 -4
  305. package/src/lib/idp-session.ts +0 -134
  306. package/src/lib/idp.ts +0 -906
  307. package/src/lib/instance-candidates.ts +0 -49
  308. package/src/lib/instance-target.ts +0 -197
  309. package/src/lib/instance.ts +0 -467
  310. package/src/lib/invocation.ts +0 -11
  311. package/src/lib/local-status.ts +0 -152
  312. package/src/lib/log.ts +0 -143
  313. package/src/lib/login-flow.ts +0 -201
  314. package/src/lib/meta.ts +0 -90
  315. package/src/lib/output.ts +0 -238
  316. package/src/lib/panel.ts +0 -61
  317. package/src/lib/port.ts +0 -41
  318. package/src/lib/proc.ts +0 -82
  319. package/src/lib/prompt.ts +0 -136
  320. package/src/lib/provision-instance.ts +0 -139
  321. package/src/lib/sdk-deps.ts +0 -104
  322. package/src/lib/self.ts +0 -22
  323. package/src/lib/skills.ts +0 -171
  324. package/src/lib/table.ts +0 -62
  325. package/src/lib/update.ts +0 -409
  326. package/src/lib/use-target.ts +0 -24
  327. package/src/lib/validation.ts +0 -59
  328. package/src/lib/view/assets.ts +0 -78
  329. package/src/lib/view/open-intent.ts +0 -67
  330. package/src/lib/view/port-allocation.ts +0 -19
  331. package/src/lib/view/resolve.ts +0 -111
  332. package/src/lib/view/server.ts +0 -244
  333. package/src/lib/view/session.ts +0 -152
  334. package/src/lib/view/snapshot.ts +0 -101
  335. package/src/paths/.spec/api.d.ts +0 -13
  336. package/src/paths/.spec/architecture.md +0 -5
  337. package/src/paths/.spec/layout.ts +0 -3
  338. package/src/paths/index.ts +0 -13
  339. package/src/program/.spec/api.d.ts +0 -42
  340. package/src/program/.spec/architecture.md +0 -18
  341. package/src/program/.spec/laws/program.ts +0 -29
  342. package/src/program/.spec/layout.ts +0 -14
  343. package/src/program/__tests__/program.test.ts +0 -378
  344. package/src/program/build.ts +0 -183
  345. package/src/program/command.ts +0 -42
  346. package/src/program/index.ts +0 -2
  347. package/src/program/options.ts +0 -41
  348. package/src/program/registry.ts +0 -63
  349. package/src/program/tsconfig.json +0 -6
  350. package/src/setup/__tests__/instance-step.test.ts +0 -256
  351. package/src/setup/__tests__/util.test.ts +0 -29
  352. package/src/setup/engine.ts +0 -83
  353. package/src/setup/render.ts +0 -107
  354. package/src/setup/steps/admin.ts +0 -93
  355. package/src/setup/steps/agent-browser.ts +0 -81
  356. package/src/setup/steps/auth.ts +0 -54
  357. package/src/setup/steps/domain.ts +0 -68
  358. package/src/setup/steps/index.ts +0 -18
  359. package/src/setup/steps/instance.ts +0 -206
  360. package/src/setup/steps/skills-bridge.ts +0 -70
  361. package/src/setup/steps/skills.ts +0 -59
  362. package/src/setup/types.ts +0 -61
  363. package/src/setup/util.ts +0 -34
  364. package/src/state/.spec/api.d.ts +0 -133
  365. package/src/state/.spec/architecture.md +0 -31
  366. package/src/state/.spec/capabilities/state.ts +0 -7
  367. package/src/state/.spec/flows/identity-update.ts +0 -22
  368. package/src/state/.spec/laws/state.ts +0 -73
  369. package/src/state/.spec/layout.ts +0 -14
  370. package/src/state/__tests__/exchange-credentials.test.ts +0 -188
  371. package/src/state/__tests__/files.test.ts +0 -113
  372. package/src/state/__tests__/fixtures/identity-transition.ts +0 -37
  373. package/src/state/__tests__/identities.test.ts +0 -142
  374. package/src/state/__tests__/paths.test.ts +0 -27
  375. package/src/state/exchange-credentials.ts +0 -219
  376. package/src/state/files.ts +0 -129
  377. package/src/state/identities.ts +0 -229
  378. package/src/state/index.ts +0 -29
  379. package/src/state/paths.ts +0 -61
  380. package/src/state/tsconfig.json +0 -6
  381. package/src/telemetry/__tests__/gate.test.ts +0 -63
  382. package/src/telemetry/__tests__/recorder.test.ts +0 -110
  383. package/src/telemetry/__tests__/redact.test.ts +0 -79
  384. package/src/telemetry/__tests__/session.test.ts +0 -166
  385. package/src/telemetry/__tests__/trigger.test.ts +0 -49
  386. package/src/telemetry/adapters/__tests__/claude-code.test.ts +0 -89
  387. package/src/telemetry/adapters/__tests__/codex.test.ts +0 -138
  388. package/src/telemetry/adapters/__tests__/index.test.ts +0 -88
  389. package/src/telemetry/adapters/claude-code.ts +0 -90
  390. package/src/telemetry/adapters/codex.ts +0 -160
  391. package/src/telemetry/adapters/index.ts +0 -45
  392. package/src/telemetry/adapters/types.ts +0 -21
  393. package/src/telemetry/analyze.ts +0 -227
  394. package/src/telemetry/gate.ts +0 -79
  395. package/src/telemetry/recorder.ts +0 -57
  396. package/src/telemetry/redact.ts +0 -53
  397. package/src/telemetry/session.ts +0 -88
  398. package/src/telemetry/settings.ts +0 -26
  399. package/src/telemetry/store.ts +0 -91
  400. package/src/telemetry/trigger.ts +0 -119
  401. package/src/telemetry/types.ts +0 -64
  402. package/src/test-utils.ts +0 -18
  403. package/studio/client/dist/assets/elk-api-ByzoDZWH.js +0 -1
  404. package/studio/client/dist/assets/elk-worker.min-C9JGDOE-.js +0 -6312
  405. package/studio/client/dist/assets/index-B0RCgUOT.js +0 -8
  406. package/studio/client/dist/assets/index-BiGR8Oo9.css +0 -1
  407. package/studio/client/dist/assets/index-ChOr3yP0.css +0 -1
  408. package/studio/client/dist/assets/index-N8J8EKlB.js +0 -81
  409. package/studio/client/dist/index.html +0 -13
  410. package/studio/package.json +0 -65
  411. package/studio/server/agent/ask.test.ts +0 -74
  412. package/studio/server/agent/ask.ts +0 -71
  413. package/studio/server/agent/bridge/client.test.ts +0 -49
  414. package/studio/server/agent/bridge/client.ts +0 -37
  415. package/studio/server/agent/bridge/grant.test.ts +0 -62
  416. package/studio/server/agent/bridge/grant.ts +0 -84
  417. package/studio/server/agent/bridge/routes.test.ts +0 -151
  418. package/studio/server/agent/bridge/routes.ts +0 -148
  419. package/studio/server/agent/bridge/stdio.ts +0 -195
  420. package/studio/server/agent/conversation.test.ts +0 -89
  421. package/studio/server/agent/conversation.ts +0 -158
  422. package/studio/server/agent/harness/adapter.ts +0 -171
  423. package/studio/server/agent/harness/claude/adapter.test.ts +0 -348
  424. package/studio/server/agent/harness/claude/adapter.ts +0 -71
  425. package/studio/server/agent/harness/claude/ask.ts +0 -114
  426. package/studio/server/agent/harness/claude/capabilities.ts +0 -27
  427. package/studio/server/agent/harness/claude/command.ts +0 -63
  428. package/studio/server/agent/harness/claude/events.ts +0 -215
  429. package/studio/server/agent/harness/claude/loadout.ts +0 -132
  430. package/studio/server/agent/harness/claude/mcp.test.ts +0 -36
  431. package/studio/server/agent/harness/claude/mcp.ts +0 -41
  432. package/studio/server/agent/harness/claude/skills.ts +0 -43
  433. package/studio/server/agent/harness/codex/adapter.test.ts +0 -269
  434. package/studio/server/agent/harness/codex/adapter.ts +0 -116
  435. package/studio/server/agent/harness/codex/ask.test.ts +0 -176
  436. package/studio/server/agent/harness/codex/ask.ts +0 -181
  437. package/studio/server/agent/harness/codex/command.test.ts +0 -69
  438. package/studio/server/agent/harness/codex/command.ts +0 -43
  439. package/studio/server/agent/harness/codex/events.test.ts +0 -94
  440. package/studio/server/agent/harness/codex/events.ts +0 -132
  441. package/studio/server/agent/harness/codex/exec.ts +0 -113
  442. package/studio/server/agent/harness/codex/loadout.ts +0 -60
  443. package/studio/server/agent/harness/codex/mcp.test.ts +0 -32
  444. package/studio/server/agent/harness/codex/mcp.ts +0 -27
  445. package/studio/server/agent/harness/codex/models.test.ts +0 -167
  446. package/studio/server/agent/harness/codex/models.ts +0 -211
  447. package/studio/server/agent/harness/codex/skills.ts +0 -33
  448. package/studio/server/agent/harness/gateway/config.test.ts +0 -98
  449. package/studio/server/agent/harness/gateway/config.ts +0 -214
  450. package/studio/server/agent/harness/gateway/token.test.ts +0 -133
  451. package/studio/server/agent/harness/gateway/token.ts +0 -166
  452. package/studio/server/agent/harness/mock/adapter.ts +0 -190
  453. package/studio/server/agent/harness/mock/domain-edit.ts +0 -41
  454. package/studio/server/agent/harness/process.test.ts +0 -46
  455. package/studio/server/agent/harness/process.ts +0 -104
  456. package/studio/server/agent/harness/registry.ts +0 -37
  457. package/studio/server/agent/harness/selection.test.ts +0 -75
  458. package/studio/server/agent/harness/selection.ts +0 -85
  459. package/studio/server/agent/harness/skills.test.ts +0 -95
  460. package/studio/server/agent/harness/skills.ts +0 -100
  461. package/studio/server/agent/layout.test.ts +0 -95
  462. package/studio/server/agent/notify.ts +0 -12
  463. package/studio/server/agent/prompts/anchors.test.ts +0 -70
  464. package/studio/server/agent/prompts/anchors.ts +0 -153
  465. package/studio/server/agent/prompts/ask.ts +0 -34
  466. package/studio/server/agent/prompts/system.test.ts +0 -13
  467. package/studio/server/agent/prompts/system.ts +0 -99
  468. package/studio/server/agent/prompts/turn.ts +0 -66
  469. package/studio/server/agent/routes.test.ts +0 -176
  470. package/studio/server/agent/routes.ts +0 -214
  471. package/studio/server/agent/run/completion.ts +0 -193
  472. package/studio/server/agent/run/coordinator.test.ts +0 -337
  473. package/studio/server/agent/run/coordinator.ts +0 -104
  474. package/studio/server/agent/run/live-state.ts +0 -73
  475. package/studio/server/agent/run/preparation.ts +0 -163
  476. package/studio/server/agent/run/transcript.test.ts +0 -81
  477. package/studio/server/agent/run/transcript.ts +0 -196
  478. package/studio/server/agent/run/usage.test.ts +0 -70
  479. package/studio/server/agent/run/usage.ts +0 -62
  480. package/studio/server/agent/stream.ts +0 -37
  481. package/studio/server/agent/telemetry.ts +0 -13
  482. package/studio/server/api/canvas.ts +0 -43
  483. package/studio/server/api/comments.ts +0 -85
  484. package/studio/server/api/context.ts +0 -61
  485. package/studio/server/api/deployment.ts +0 -39
  486. package/studio/server/api/documents.ts +0 -55
  487. package/studio/server/api/domain.ts +0 -59
  488. package/studio/server/api/http.ts +0 -45
  489. package/studio/server/api/project.ts +0 -57
  490. package/studio/server/api/schema.ts +0 -12
  491. package/studio/server/api/views.ts +0 -57
  492. package/studio/server/api/workspace.ts +0 -60
  493. package/studio/server/api-agent-loadout.test.ts +0 -69
  494. package/studio/server/api.test.ts +0 -147
  495. package/studio/server/api.ts +0 -34
  496. package/studio/server/cache.test.ts +0 -122
  497. package/studio/server/cache.ts +0 -303
  498. package/studio/server/cli-consumers.test.ts +0 -494
  499. package/studio/server/cli.test.ts +0 -88
  500. package/studio/server/cli.ts +0 -240
  501. package/studio/server/client-package.test.ts +0 -147
  502. package/studio/server/client-package.ts +0 -266
  503. package/studio/server/detect.ts +0 -81
  504. package/studio/server/domain.test.ts +0 -77
  505. package/studio/server/domain.ts +0 -124
  506. package/studio/server/environment/dotenv-preview.test.ts +0 -39
  507. package/studio/server/environment/dotenv-preview.ts +0 -27
  508. package/studio/server/environment/files.test.ts +0 -53
  509. package/studio/server/environment/files.ts +0 -120
  510. package/studio/server/handoff/copy.ts +0 -171
  511. package/studio/server/handoff/service.test.ts +0 -22
  512. package/studio/server/handoff/service.ts +0 -62
  513. package/studio/server/index.ts +0 -148
  514. package/studio/server/instances/active.ts +0 -72
  515. package/studio/server/instances/deploy-record.test.ts +0 -31
  516. package/studio/server/instances/deploy-record.ts +0 -37
  517. package/studio/server/instances/deploy.ts +0 -56
  518. package/studio/server/instances/probe.test.ts +0 -67
  519. package/studio/server/instances/probe.ts +0 -67
  520. package/studio/server/instances/status.test.ts +0 -12
  521. package/studio/server/instances/status.ts +0 -49
  522. package/studio/server/introspect/anatomy/client-tree.ts +0 -57
  523. package/studio/server/introspect/anatomy/env-fields.ts +0 -66
  524. package/studio/server/introspect/anatomy/schema-definition.ts +0 -53
  525. package/studio/server/introspect/anatomy/source.ts +0 -181
  526. package/studio/server/introspect/anatomy/views/routes.ts +0 -114
  527. package/studio/server/introspect/anatomy/views.ts +0 -53
  528. package/studio/server/introspect/anatomy-extras.test.ts +0 -265
  529. package/studio/server/introspect/anatomy-extras.ts +0 -10
  530. package/studio/server/introspect/anatomy.test.ts +0 -41
  531. package/studio/server/introspect/anatomy.ts +0 -147
  532. package/studio/server/introspect/bundle.ts +0 -69
  533. package/studio/server/introspect/canonical-schema.test.ts +0 -179
  534. package/studio/server/introspect/canonical-schema.ts +0 -583
  535. package/studio/server/introspect/config-preview.test.ts +0 -32
  536. package/studio/server/introspect/config-preview.ts +0 -119
  537. package/studio/server/introspect/core-extractor.ts +0 -30
  538. package/studio/server/introspect/core.ts +0 -45
  539. package/studio/server/introspect/diff.test.ts +0 -124
  540. package/studio/server/introspect/diff.ts +0 -316
  541. package/studio/server/introspect/extractor.ts +0 -41
  542. package/studio/server/introspect/hash.ts +0 -24
  543. package/studio/server/introspect/overlay-tsmorph.test.ts +0 -146
  544. package/studio/server/introspect/overlay-tsmorph.ts +0 -9
  545. package/studio/server/introspect/overlay.test.ts +0 -44
  546. package/studio/server/introspect/overlay.ts +0 -40
  547. package/studio/server/introspect/revision.test.ts +0 -54
  548. package/studio/server/introspect/revision.ts +0 -49
  549. package/studio/server/introspect/runtime.test.ts +0 -157
  550. package/studio/server/introspect/runtime.ts +0 -140
  551. package/studio/server/introspect/schema-ir-json.test.ts +0 -70
  552. package/studio/server/introspect/schema-ir-json.ts +0 -151
  553. package/studio/server/introspect/schema-refs.test.ts +0 -55
  554. package/studio/server/introspect/schema-refs.ts +0 -32
  555. package/studio/server/introspect/source-overlay/annotations.ts +0 -14
  556. package/studio/server/introspect/source-overlay/handlers.ts +0 -161
  557. package/studio/server/introspect/source-overlay/kernel-calls.ts +0 -46
  558. package/studio/server/introspect/source-overlay/project.ts +0 -248
  559. package/studio/server/introspect/source-overlay/spans.ts +0 -330
  560. package/studio/server/json.ts +0 -46
  561. package/studio/server/lifecycle.ts +0 -42
  562. package/studio/server/sse.test.ts +0 -26
  563. package/studio/server/sse.ts +0 -60
  564. package/studio/server/state/baseline.test.ts +0 -267
  565. package/studio/server/state/baseline.ts +0 -354
  566. package/studio/server/state/comments.test.ts +0 -94
  567. package/studio/server/state/comments.ts +0 -484
  568. package/studio/server/state/context.ts +0 -199
  569. package/studio/server/state/documents.ts +0 -111
  570. package/studio/server/state/integrations.ts +0 -81
  571. package/studio/server/state/layout.test.ts +0 -34
  572. package/studio/server/state/layout.ts +0 -82
  573. package/studio/server/state/settings.test.ts +0 -78
  574. package/studio/server/state/settings.ts +0 -73
  575. package/studio/server/state/store.test.ts +0 -122
  576. package/studio/server/state/store.ts +0 -146
  577. package/studio/server/state/visibility.ts +0 -48
  578. package/studio/server/views/model.test.ts +0 -57
  579. package/studio/server/views/model.ts +0 -66
  580. package/studio/server/views/runtime.ts +0 -40
  581. package/studio/server/views/selection-repository.test.ts +0 -31
  582. package/studio/server/views/selection-repository.ts +0 -60
  583. package/studio/server/views/session.test.ts +0 -73
  584. package/studio/server/views/session.ts +0 -166
  585. package/studio/server/views/target.test.ts +0 -78
  586. package/studio/server/views/target.ts +0 -222
  587. package/studio/server/watch.test.ts +0 -36
  588. package/studio/server/watch.ts +0 -93
  589. package/studio/server/workspace/catalog.test.ts +0 -17
  590. package/studio/server/workspace/catalog.ts +0 -43
  591. package/studio/server/workspace/create.test.ts +0 -37
  592. package/studio/server/workspace/create.ts +0 -162
  593. package/studio/server/workspace/git.ts +0 -75
  594. package/studio/server/workspace/updates.ts +0 -83
  595. package/studio/server/workspace-state.ts +0 -26
  596. package/studio/server/workspace-watch.ts +0 -106
  597. package/studio/shared/agent-effort.test.ts +0 -12
  598. package/studio/shared/agent-effort.ts +0 -15
  599. package/studio/shared/agent-models.test.ts +0 -9
  600. package/studio/shared/agent-models.ts +0 -14
  601. package/studio/shared/contracts/README.md +0 -16
  602. package/studio/shared/contracts/agent.ts +0 -270
  603. package/studio/shared/contracts/runtime.ts +0 -50
  604. package/studio/shared/contracts/schema.ts +0 -393
  605. package/studio/shared/contracts/surface.test.ts +0 -317
  606. package/studio/shared/contracts/workspace.ts +0 -265
  607. package/studio/shared/layout.test.ts +0 -116
  608. package/studio/shared/schema/identity.test.ts +0 -34
  609. package/studio/shared/schema/identity.ts +0 -68
  610. package/studio/shared/settings-values.test.ts +0 -18
  611. package/studio/shared/settings-values.ts +0 -20
  612. package/studio/shared/types.ts +0 -14
  613. package/studio/tsconfig.json +0 -23
  614. package/tsconfig.json +0 -14
  615. package/viewer/dist/index.html +0 -93
  616. package/viewer/dist/main.js +0 -76
  617. package/viewer/tsconfig.json +0 -13
@@ -1,209 +0,0 @@
1
- export type FunctionInputIssue = Readonly<{
2
- code: string
3
- path?: string
4
- message: string
5
- }>
6
-
7
- export type QueryInputRepair =
8
- | Readonly<{ phase: 'decode' | 'input'; path: string }>
9
- | Readonly<{ phase: 'plan'; issue: string; path?: string }>
10
- | Readonly<{
11
- phase: 'limit'
12
- limit: string
13
- maximum: number
14
- actual: number
15
- path?: string
16
- }>
17
-
18
- export type SchemaUpgradeDetails =
19
- | {
20
- readonly origin?: string
21
- readonly issue?: undefined
22
- }
23
- | {
24
- readonly origin: string
25
- readonly issue: 'issuer-changed'
26
- readonly installedIssuer: string
27
- readonly replacementIssuer: string
28
- }
29
-
30
- const JSON_POINTER = /^(?:\/(?:[^~/]|~[01])*)*$/u
31
- const MAXIMUM_FUNCTION_ISSUES = 32
32
- const MAXIMUM_FUNCTION_ISSUE_MESSAGE_LENGTH = 512
33
-
34
- export function reasonCode(reason: unknown): string | undefined {
35
- if (!record(reason) || typeof reason.code !== 'string') return undefined
36
- return stableCode(reason.code) ? reason.code : undefined
37
- }
38
-
39
- /** Admit only bounded caller-safe Function input issues established by the Kernel. */
40
- export function functionInputIssues(reason: unknown): readonly FunctionInputIssue[] {
41
- if (!reasonWithCode(reason, 'FUNCTION_INPUT_INVALID')) return Object.freeze([])
42
- const issues = reason.details.issues
43
- if (!Array.isArray(issues)) return Object.freeze([])
44
- return Object.freeze(
45
- issues.slice(0, MAXIMUM_FUNCTION_ISSUES).flatMap((candidate): FunctionInputIssue[] => {
46
- if (
47
- !record(candidate) ||
48
- typeof candidate.code !== 'string' ||
49
- !stableCode(candidate.code) ||
50
- typeof candidate.message !== 'string' ||
51
- candidate.message.length === 0 ||
52
- candidate.message.length > MAXIMUM_FUNCTION_ISSUE_MESSAGE_LENGTH ||
53
- candidate.message.normalize('NFC') !== candidate.message ||
54
- containsControl(candidate.message) ||
55
- (candidate.path !== undefined && !coordinate(candidate.path))
56
- ) {
57
- return []
58
- }
59
- return [
60
- Object.freeze({
61
- code: candidate.code,
62
- ...(candidate.path === undefined ? {} : { path: candidate.path }),
63
- message: candidate.message,
64
- }),
65
- ]
66
- }),
67
- )
68
- }
69
-
70
- /** Admit only public Query-input repair variants; unknown details remain machine-only. */
71
- export function queryInputRepair(reason: unknown): QueryInputRepair | undefined {
72
- if (!reasonWithCode(reason, 'QUERY_INPUT_INVALID')) return undefined
73
- const details = reason.details
74
- if (details.phase === 'decode' || details.phase === 'input') {
75
- if (!exact(details, ['phase', 'path']) || !coordinate(details.path)) return undefined
76
- return Object.freeze({ phase: details.phase, path: details.path })
77
- }
78
- if (details.phase === 'plan') {
79
- const fields = details.path === undefined ? ['phase', 'issue'] : ['phase', 'issue', 'path']
80
- if (
81
- !exact(details, fields) ||
82
- typeof details.issue !== 'string' ||
83
- !stableCode(details.issue) ||
84
- (details.path !== undefined && !coordinate(details.path))
85
- ) {
86
- return undefined
87
- }
88
- return Object.freeze({
89
- phase: 'plan',
90
- issue: details.issue,
91
- ...(details.path === undefined ? {} : { path: details.path }),
92
- })
93
- }
94
- if (details.phase !== 'limit') return undefined
95
- const fields =
96
- details.path === undefined
97
- ? ['phase', 'limit', 'maximum', 'actual']
98
- : ['phase', 'limit', 'maximum', 'actual', 'path']
99
- if (
100
- !exact(details, fields) ||
101
- typeof details.limit !== 'string' ||
102
- !Number.isSafeInteger(details.maximum) ||
103
- (details.maximum as number) < 0 ||
104
- !Number.isSafeInteger(details.actual) ||
105
- (details.actual as number) <= (details.maximum as number) ||
106
- (details.path !== undefined && !coordinate(details.path))
107
- ) {
108
- return undefined
109
- }
110
- return Object.freeze({
111
- phase: 'limit',
112
- limit: details.limit,
113
- maximum: details.maximum as number,
114
- actual: details.actual as number,
115
- ...(details.path === undefined ? {} : { path: details.path }),
116
- })
117
- }
118
-
119
- /** Decode bounded recovery guidance while preserving the admitted reason itself elsewhere. */
120
- export function schemaUpgradeDetails(reason: unknown): SchemaUpgradeDetails | undefined {
121
- if (!record(reason) || reason.code !== 'SCHEMA_UPGRADE_INCOMPATIBLE') return undefined
122
- const details = record(reason.details) ? reason.details : {}
123
- const origin = typeof details.origin === 'string' ? details.origin : undefined
124
- if (
125
- details.issue === 'issuer-changed' &&
126
- origin !== undefined &&
127
- typeof details.installedIssuer === 'string' &&
128
- typeof details.replacementIssuer === 'string'
129
- ) {
130
- return {
131
- origin,
132
- issue: details.issue,
133
- installedIssuer: details.installedIssuer,
134
- replacementIssuer: details.replacementIssuer,
135
- }
136
- }
137
- return origin === undefined ? {} : { origin }
138
- }
139
-
140
- export function schemaUpgradeHint(details: SchemaUpgradeDetails): string {
141
- const target = details.origin ?? '<origin>'
142
- const explanation =
143
- details.issue === 'issuer-changed'
144
- ? 'A replacement cannot change an installed Domain issuer.'
145
- : 'The replacement changes an immutable part of the installed Domain.'
146
- return (
147
- `${explanation} If this change is intentional, first run ` +
148
- `\`astrale domain uninstall ${target}\`, then install it again. ` +
149
- 'The Kernel refuses uninstall while dependents or business data remain; uninstall never deletes business data.'
150
- )
151
- }
152
-
153
- export function schemaDataRemovalHint(reason: unknown): string | undefined {
154
- if (!reasonWithCode(reason, 'DATA_MIGRATION_REQUIRED')) return undefined
155
- const requirements = reason.details.requirements
156
- if (
157
- !Array.isArray(requirements) ||
158
- requirements.length === 0 ||
159
- !requirements.every(
160
- (item) =>
161
- record(item) && item.operation === 'remove-facts' && item.reason === 'destructive-change',
162
- )
163
- ) {
164
- return undefined
165
- }
166
- return 'Delete this data explicitly, then retry. No data was deleted.'
167
- }
168
-
169
- function reasonWithCode(
170
- input: unknown,
171
- code: string,
172
- ): input is Readonly<{ code: string; details: Readonly<Record<string, unknown>> }> {
173
- return (
174
- record(input) &&
175
- exact(input, ['code', 'details']) &&
176
- input.code === code &&
177
- record(input.details)
178
- )
179
- }
180
-
181
- function coordinate(input: unknown): input is string {
182
- return (
183
- typeof input === 'string' &&
184
- input.length <= 1_024 &&
185
- input.normalize('NFC') === input &&
186
- JSON_POINTER.test(input)
187
- )
188
- }
189
-
190
- function stableCode(input: string): boolean {
191
- return /^[A-Z][A-Z0-9_]{0,127}$/u.test(input) && input.normalize('NFC') === input
192
- }
193
-
194
- function containsControl(input: string): boolean {
195
- for (const character of input) {
196
- const point = character.codePointAt(0)!
197
- if (point <= 0x1f || point === 0x7f) return true
198
- }
199
- return false
200
- }
201
-
202
- function record(input: unknown): input is Readonly<Record<string, unknown>> {
203
- return input !== null && typeof input === 'object' && !Array.isArray(input)
204
- }
205
-
206
- function exact(input: Readonly<Record<string, unknown>>, fields: readonly string[]): boolean {
207
- const actual = Object.keys(input)
208
- return actual.length === fields.length && actual.every((field) => fields.includes(field))
209
- }
@@ -1,138 +0,0 @@
1
- import { NodeUnavailableError } from '@astrale-os/sdk/client'
2
-
3
- import type { ConnectionContext } from './session'
4
-
5
- import { AstraleError } from '../errors'
6
- import { containsSelfRef, expandSelfReferences } from '../lib/self'
7
-
8
- /** Metadata attached to errors after an authenticated caller-authored @self expansion. */
9
- export interface SelfExpansionMeta {
10
- readonly original: string
11
- readonly expanded: string
12
- readonly selfId: string
13
- readonly slug?: string
14
- }
15
-
16
- /**
17
- * Run `action`; if it throws NodeUnavailableError, retain the authenticated
18
- * expansion for precise diagnostics. The error is re-thrown either way.
19
- */
20
- export async function withSelfHint<T>(
21
- action: () => Promise<T>,
22
- meta: SelfExpansionMeta | undefined,
23
- ): Promise<T> {
24
- if (!meta) return action()
25
- try {
26
- return await action()
27
- } catch (err) {
28
- if (err instanceof NodeUnavailableError) {
29
- ;(err as Error & { expandedFromSelf?: SelfExpansionMeta }).expandedFromSelf = meta
30
- }
31
- throw err
32
- }
33
- }
34
-
35
- type AuthenticatedSelf = {
36
- readonly id?: unknown
37
- readonly slug?: string
38
- }
39
-
40
- export type ResolveSelfIdDependencies = {
41
- readonly whoami?: (context: ConnectionContext) => Promise<AuthenticatedSelf>
42
- }
43
-
44
- /** Resolve @self only from the effective principal authenticated by the selected Kernel. */
45
- export async function resolveSelfIdAuthenticated(
46
- context: ConnectionContext,
47
- dependencies: ResolveSelfIdDependencies = {},
48
- ): Promise<{ readonly id: string; readonly slug?: string }> {
49
- const resolved = await (dependencies.whoami ?? whoamiSelfId)(context)
50
- if (typeof resolved.id !== 'string' || resolved.id.trim().length === 0) {
51
- throw new AstraleError(
52
- 'SELF_RESOLUTION_FAILED',
53
- '`@self` could not be resolved: authenticated Identity.whoami returned no NodeId.',
54
- )
55
- }
56
- return resolved.slug === undefined
57
- ? { id: resolved.id }
58
- : { id: resolved.id, slug: resolved.slug }
59
- }
60
-
61
- async function whoamiSelfId({ auth, target }: ConnectionContext): Promise<AuthenticatedSelf> {
62
- return {
63
- ...(await auth.whoami()),
64
- ...(target.slug === undefined ? {} : { slug: target.slug }),
65
- }
66
- }
67
-
68
- /** Expand @self in path-like commands and return metadata for NotFound diagnostics. */
69
- export async function expandSelfInPath(
70
- path: string,
71
- context: ConnectionContext,
72
- ): Promise<{ readonly path: string; readonly meta?: SelfExpansionMeta }> {
73
- const expanded = await expandSelfValues(path, [], context)
74
- return expanded.meta === undefined
75
- ? { path: expanded.path }
76
- : { path: expanded.path, meta: expanded.meta }
77
- }
78
-
79
- /** Expand @self once across one Call path and its CLI-authored string parameters. */
80
- export async function expandSelfInCall(
81
- path: string,
82
- parameters: Readonly<Record<string, unknown>>,
83
- context: ConnectionContext,
84
- ): Promise<{
85
- readonly path: string
86
- readonly parameters: Readonly<Record<string, unknown>>
87
- readonly meta?: SelfExpansionMeta
88
- }> {
89
- const values = Object.values(parameters).filter(
90
- (value): value is string => typeof value === 'string',
91
- )
92
- const expanded = await expandSelfValues(path, values, context)
93
- if (expanded.parameters === values) {
94
- return expanded.meta === undefined
95
- ? { path: expanded.path, parameters }
96
- : { path: expanded.path, parameters, meta: expanded.meta }
97
- }
98
- let index = 0
99
- const entries = Object.entries(parameters).map(([key, value]) => [
100
- key,
101
- typeof value === 'string' ? expanded.parameters[index++] : value,
102
- ])
103
- const resolved = Object.freeze(Object.fromEntries(entries))
104
- return expanded.meta === undefined
105
- ? { path: expanded.path, parameters: resolved }
106
- : { path: expanded.path, parameters: resolved, meta: expanded.meta }
107
- }
108
-
109
- async function expandSelfValues(
110
- path: string,
111
- parameters: readonly string[],
112
- context: ConnectionContext,
113
- ): Promise<{
114
- readonly path: string
115
- readonly parameters: readonly string[]
116
- readonly meta?: SelfExpansionMeta
117
- }> {
118
- if (!containsSelfRef(path) && !parameters.some(containsSelfRef)) {
119
- return { path, parameters }
120
- }
121
- const self = await resolveSelfIdAuthenticated(context)
122
- const expandedPath = expandSelfReferences(path, self.id)
123
- const expandedParameters = parameters.map((parameter) => expandSelfReferences(parameter, self.id))
124
- const changed =
125
- expandedPath !== path ||
126
- expandedParameters.some((parameter, index) => parameter !== parameters[index])
127
- if (!changed) return { path, parameters }
128
- return {
129
- path: expandedPath,
130
- parameters: expandedParameters,
131
- meta: {
132
- original: path,
133
- expanded: expandedPath,
134
- selfId: self.id,
135
- ...(self.slug === undefined ? {} : { slug: self.slug }),
136
- },
137
- }
138
- }
@@ -1,196 +0,0 @@
1
- import type { AuthApi } from '@astrale-os/sdk/auth'
2
- import type { GraphApi } from '@astrale-os/sdk/client'
3
- import type { ClientSessionOptions, SessionAuth } from '@astrale-os/sdk/client/session'
4
-
5
- import { createAuth } from '@astrale-os/sdk/auth'
6
- import { call } from '@astrale-os/sdk/client'
7
- import { createGraph } from '@astrale-os/sdk/client'
8
- import { ClientSession } from '@astrale-os/sdk/client/session'
9
-
10
- import type { AstraleConfig } from '../lib/config'
11
- import type { AdminConnectionOptions, ConnectionOptions, ConnectionTarget } from './target'
12
-
13
- import {
14
- AdminInstanceNotFoundError,
15
- connectAdminInstances,
16
- findOwnedInstance,
17
- type InstanceInfo,
18
- } from '../admin/instance'
19
- import { AstraleError } from '../errors'
20
- import { fetchWithCaFile } from '../lib/ca-fetch'
21
- import { readConfig } from '../lib/config'
22
- import { log } from '../lib/log'
23
- import { isMachine } from '../lib/output'
24
- import { bindCredentialIdentity } from './auth'
25
- import { createCliCredential, validateCredentialSelection } from './credential'
26
- import { resolveAdminConnectionTarget, resolveConnectionTarget } from './target'
27
-
28
- const DEFAULT_TIMEOUT_MS = 30_000
29
- const MAXIMUM_ROUTE_AGE_MS = 5 * 60_000
30
-
31
- function warnMissingExplicitTarget(options: ConnectionOptions, target: ConnectionTarget): void {
32
- if (options.instance !== undefined || options.url !== undefined) return
33
- if (!isMachine(options)) return
34
- log.warn(`No -i/--url; using ${target.slug ?? target.url}`)
35
- }
36
-
37
- export interface ConnectionContext {
38
- readonly session: ClientSession
39
- readonly graph: GraphApi
40
- readonly auth: AuthApi
41
- readonly target: ConnectionTarget
42
- /** Local identity label selected for this session; absent for raw credentials or anonymous use. */
43
- readonly identity?: string
44
- }
45
-
46
- interface OwnedConnection {
47
- readonly context: ConnectionContext
48
- close(): void
49
- }
50
-
51
- export type ConnectionFactory = (
52
- target: ConnectionTarget,
53
- timeoutMs: number,
54
- options: ConnectionOptions,
55
- config: AstraleConfig,
56
- ) => OwnedConnection
57
-
58
- /** Resolve one ordinary target, run a command action, then close terminally. */
59
- export async function withClientSession<Value>(
60
- options: ConnectionOptions,
61
- action: (context: ConnectionContext) => Promise<Value>,
62
- ): Promise<Value> {
63
- validateCredentialSelection(options)
64
- const timeoutMs = resolveTimeoutMs(options.timeout)
65
- const config = await readConfig()
66
- const target = await resolveConnectionTarget(options, config, {
67
- managed: (slug) => lookupManagedInstance(slug, options),
68
- })
69
- options = await bindCredentialIdentity(options, target)
70
- warnMissingExplicitTarget(options, target)
71
- return runResolvedClientSession(target, timeoutMs, options, config, action, openConnection)
72
- }
73
-
74
- /** Resolve the configured Admin Domain target under the same terminal lifecycle. */
75
- export async function withAdminClientSession<Value>(
76
- options: AdminConnectionOptions,
77
- action: (context: ConnectionContext) => Promise<Value>,
78
- ): Promise<Value> {
79
- validateCredentialSelection(options)
80
- const timeoutMs = resolveTimeoutMs(options.timeout)
81
- const config = await readConfig()
82
- const target = await resolveAdminConnectionTarget(options, config)
83
- options = await bindCredentialIdentity(options, target)
84
- return runResolvedClientSession(target, timeoutMs, options, config, action, openConnection)
85
- }
86
-
87
- /** Owner-private seam used to prove validation order and cleanup without network I/O. */
88
- export async function withResolvedClientSession<Value>(
89
- target: ConnectionTarget,
90
- options: ConnectionOptions,
91
- config: AstraleConfig,
92
- action: (context: ConnectionContext) => Promise<Value>,
93
- open: ConnectionFactory = openConnection,
94
- ): Promise<Value> {
95
- validateCredentialSelection(options)
96
- const timeoutMs = resolveTimeoutMs(options.timeout)
97
- return runResolvedClientSession(target, timeoutMs, options, config, action, open)
98
- }
99
-
100
- async function runResolvedClientSession<Value>(
101
- target: ConnectionTarget,
102
- timeoutMs: number,
103
- options: ConnectionOptions,
104
- config: AstraleConfig,
105
- action: (context: ConnectionContext) => Promise<Value>,
106
- open: ConnectionFactory,
107
- ): Promise<Value> {
108
- const connection = open(target, timeoutMs, options, config)
109
- try {
110
- return await action(connection.context)
111
- } catch (error) {
112
- if (error instanceof Error) (error as Error & { url?: string }).url = target.url
113
- throw error
114
- } finally {
115
- connection.close()
116
- }
117
- }
118
-
119
- export function resolveTimeoutMs(raw: string | undefined): number {
120
- if (raw === undefined) return DEFAULT_TIMEOUT_MS
121
- if (!/^\d+$/.test(raw)) {
122
- throw new AstraleError(
123
- 'INVALID_FLAG',
124
- `Invalid --timeout value "${raw}" — expected a positive integer (milliseconds)`,
125
- )
126
- }
127
- const value = Number.parseInt(raw, 10)
128
- if (!Number.isSafeInteger(value) || value <= 0) {
129
- throw new AstraleError(
130
- 'INVALID_FLAG',
131
- `Invalid --timeout value "${raw}" — must be a positive integer`,
132
- )
133
- }
134
- return value
135
- }
136
-
137
- function openConnection(
138
- target: ConnectionTarget,
139
- timeoutMs: number,
140
- options: ConnectionOptions,
141
- config: AstraleConfig,
142
- ): OwnedConnection {
143
- const fetch = target.caFile === undefined ? globalThis.fetch : fetchWithCaFile(target.caFile)
144
- const auth = createCliCredential(target, options, config, fetch, timeoutMs)
145
- const session = new ClientSession(createClientSessionOptions(target, fetch, auth, timeoutMs))
146
- const graph = createGraph((call, request) => session.call(call, request))
147
- const authApi = createAuth((path, input, request) => session.call(call(path, input), request))
148
- return {
149
- context: Object.freeze({
150
- session,
151
- graph,
152
- auth: authApi,
153
- target,
154
- ...(options.as === undefined ? {} : { identity: options.as }),
155
- }),
156
- close() {
157
- session.close()
158
- },
159
- }
160
- }
161
-
162
- /** Owner-private construction seam proving that transport and source identity stay distinct. */
163
- export function createClientSessionOptions(
164
- target: ConnectionTarget,
165
- fetch: NonNullable<ClientSessionOptions['fetch']>,
166
- auth: SessionAuth | undefined,
167
- timeoutMs: number,
168
- ): ClientSessionOptions {
169
- return {
170
- kernel: target.kernelIssuer,
171
- fetch,
172
- ...(auth === undefined ? {} : { auth }),
173
- policy: {
174
- maximumRouteAgeMs: MAXIMUM_ROUTE_AGE_MS,
175
- ...(new URL(target.url).protocol === 'http:' ? { allowInsecureHttp: true } : {}),
176
- },
177
- envelopeTransport: 'http',
178
- timeoutMs,
179
- }
180
- }
181
-
182
- export async function lookupManagedInstance(
183
- slug: string,
184
- options: ConnectionOptions,
185
- openAdmin: typeof withAdminClientSession = withAdminClientSession,
186
- connect: typeof connectAdminInstances = connectAdminInstances,
187
- ): Promise<InstanceInfo> {
188
- return openAdmin(
189
- Object.freeze(options.timeout === undefined ? {} : { timeout: options.timeout }),
190
- async (context) => {
191
- const found = findOwnedInstance(await (await connect(context)).list(), slug)
192
- if (found === undefined) throw new AdminInstanceNotFoundError(slug)
193
- return found
194
- },
195
- )
196
- }
@@ -1,112 +0,0 @@
1
- import type { IssuerId } from '@astrale-os/sdk/auth'
2
-
3
- import { issuer } from '@astrale-os/sdk/auth'
4
-
5
- import type { InstanceInfo } from '../lib/admin-instance'
6
- import type { AdminTargetCommandOpts } from '../lib/admin-target'
7
- import type { AstraleConfig } from '../lib/config'
8
- import type { InstanceStore } from '../lib/instance'
9
- import type { ResolvedInstanceTarget } from '../lib/instance-target'
10
-
11
- import { resolveInstanceTarget } from '../lib/instance-target'
12
-
13
- export interface ConnectionOptions {
14
- readonly url?: string
15
- readonly instance?: string
16
- readonly timeout?: string
17
- readonly as?: string
18
- readonly creds?: string
19
- readonly anonymous?: boolean
20
- readonly ci?: boolean
21
- }
22
-
23
- export interface AdminConnectionOptions extends ConnectionOptions {
24
- readonly admin?: string
25
- readonly adminUrl?: string
26
- readonly domainIssuer?: string
27
- }
28
-
29
- export interface ConnectionTarget {
30
- readonly url: string
31
- readonly kernelIssuer: IssuerId
32
- readonly domainIssuer?: IssuerId
33
- readonly slug?: string
34
- readonly defaultIdentity?: string
35
- readonly caFile?: string
36
- }
37
-
38
- export interface TargetDependencies {
39
- readonly instances?: InstanceStore
40
- readonly managed?: (slug: string) => Promise<InstanceInfo>
41
- }
42
-
43
- /** Stable local identity-registration key for the exact selected source Kernel. */
44
- export function registrationKeyForTarget(target: ConnectionTarget): string {
45
- return target.slug ?? target.url
46
- }
47
-
48
- /** Resolve the existing URL / instance / active precedence into one exact source Kernel. */
49
- export async function resolveConnectionTarget(
50
- options: ConnectionOptions,
51
- config: AstraleConfig,
52
- dependencies: TargetDependencies = {},
53
- ): Promise<ConnectionTarget> {
54
- const request =
55
- options.url !== undefined && options.instance === undefined
56
- ? ({ source: 'url', url: options.url } as const)
57
- : options.instance !== undefined
58
- ? ({ source: 'name', name: options.instance } as const)
59
- : ({ source: 'active' } as const)
60
- const resolved = await resolveInstanceTarget(request, {
61
- config,
62
- ...(dependencies.instances === undefined ? {} : { instances: dependencies.instances }),
63
- admin: {},
64
- ...(dependencies.managed === undefined ? {} : { managed: dependencies.managed }),
65
- })
66
- return connectionTarget(resolved, options.url)
67
- }
68
-
69
- /** Resolve the configured Admin Domain target without entering managed-instance discovery. */
70
- export async function resolveAdminConnectionTarget(
71
- options: AdminConnectionOptions,
72
- config: AstraleConfig,
73
- instances?: InstanceStore,
74
- ): Promise<ConnectionTarget> {
75
- const resolved = await resolveInstanceTarget(
76
- { source: 'admin' },
77
- {
78
- config,
79
- admin: adminLookupOptions(options),
80
- ...(instances === undefined ? {} : { instances }),
81
- },
82
- )
83
- return connectionTarget(resolved)
84
- }
85
-
86
- export function adminLookupOptions(options: AdminConnectionOptions): AdminTargetCommandOpts {
87
- return {
88
- ...(options.admin === undefined ? {} : { admin: options.admin }),
89
- ...(options.adminUrl === undefined ? {} : { adminUrl: options.adminUrl }),
90
- ...(options.domainIssuer === undefined ? {} : { domainIssuer: options.domainIssuer }),
91
- ...(options.instance === undefined ? {} : { instance: options.instance }),
92
- ...(options.url === undefined ? {} : { url: options.url }),
93
- }
94
- }
95
-
96
- function connectionTarget(
97
- resolved: ResolvedInstanceTarget,
98
- urlOverride?: string,
99
- ): ConnectionTarget {
100
- return Object.freeze({
101
- url: urlOverride ?? resolved.url,
102
- kernelIssuer: issuer.accept(resolved.kernelIssuer),
103
- ...(resolved.domainIssuer === undefined
104
- ? {}
105
- : { domainIssuer: issuer.accept(resolved.domainIssuer) }),
106
- ...(resolved.name === undefined ? {} : { slug: resolved.name }),
107
- ...(resolved.defaultIdentity === undefined
108
- ? {}
109
- : { defaultIdentity: resolved.defaultIdentity }),
110
- ...(resolved.caFile === undefined ? {} : { caFile: resolved.caFile }),
111
- })
112
- }
@@ -1,6 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.json",
3
- "compilerOptions": { "types": ["@types/node"] },
4
- "include": ["*.ts"],
5
- "exclude": ["__tests__"]
6
- }