@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,162 +0,0 @@
1
- /**
2
- * Scaffold a brand-new domain into the workspace and bring it
3
- * online. This is the studio's ONE write that ADDS a domain (every other state
4
- * module operates on an existing one).
5
- *
6
- * Flow: validate the slug → `create-astrale-domain <slug> --yes` in the
7
- * workspace root (the managed `astrale` adapter is its default; we stamp the
8
- * active instance so prod targets it) → `pnpm install` in the new dir so the
9
- * domain is fully introspectable + deployable → register + (re)boot it (the live
10
- * watcher may have already booted a deps-less static fallback while we were
11
- * installing; we stop that and boot fresh) → warm its bundle. The caller
12
- * broadcasts the `workspace` event so every client refetches the domain list.
13
- */
14
- import { existsSync, readFileSync, writeFileSync } from 'node:fs'
15
- import { join } from 'node:path'
16
-
17
- import { getBundle } from '../cache'
18
- import { isDomainDir, registerDomain } from '../domain'
19
- import { findSchemaDefinition } from '../introspect/anatomy-extras'
20
- import { bootDomain } from '../lifecycle'
21
- import { stoppers, workspaceRoot, workspaceSchemaDirName } from '../workspace-state'
22
-
23
- /** Mirrors create-astrale-domain's `isValidSlug`: lowercase letters, digits, dots, dashes;
24
- * must start/end alphanumeric. Also guards the filesystem target (no `/`, no `..`, no leading dot). */
25
- const SLUG = /^[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?$/
26
-
27
- export interface CreateDomainResult {
28
- ok: boolean
29
- id?: string
30
- origin?: string
31
- error?: string
32
- output: string
33
- }
34
-
35
- async function run(
36
- cmd: string,
37
- args: string[],
38
- cwd: string,
39
- ): Promise<{ code: number; output: string }> {
40
- try {
41
- const proc = Bun.spawn([cmd, ...args], {
42
- cwd,
43
- stdout: 'pipe',
44
- stderr: 'pipe',
45
- env: process.env,
46
- })
47
- const [out, err] = await Promise.all([
48
- new Response(proc.stdout).text(),
49
- new Response(proc.stderr).text(),
50
- ])
51
- const code = await proc.exited
52
- return { code, output: `${out}\n${err}`.trim() }
53
- } catch (e) {
54
- return { code: 1, output: `failed to spawn ${cmd}: ${(e as Error)?.message ?? e}` }
55
- }
56
- }
57
-
58
- export async function createDomain(
59
- rawName: string,
60
- instance: string | null,
61
- ): Promise<CreateDomainResult> {
62
- const name = rawName.trim().toLowerCase()
63
- if (!name || name.length > 64 || !SLUG.test(name)) {
64
- return {
65
- ok: false,
66
- error: 'Use lowercase letters, digits, dots and dashes (e.g. “crm” or “crm.acme.dev”).',
67
- output: '',
68
- }
69
- }
70
- const root = workspaceRoot()
71
- if (!root) return { ok: false, error: 'No workspace root is configured.', output: '' }
72
- const dir = join(root, name)
73
- if (existsSync(dir)) {
74
- return {
75
- ok: false,
76
- error: `A folder named “${name}” already exists in the workspace.`,
77
- output: '',
78
- }
79
- }
80
-
81
- // 1. Scaffold (non-interactive). `--yes` accepts defaults (astrale adapter, template);
82
- // `--instance` stamps the active instance into the managed prod target.
83
- const scaffoldArgs = [
84
- '--yes',
85
- 'create-astrale-domain@latest',
86
- name,
87
- '--yes',
88
- ...(instance ? ['--instance', instance] : []),
89
- ]
90
- const scaffold = await run('npx', scaffoldArgs, root)
91
- const schemaDirName = workspaceSchemaDirName()
92
- if (!isDomainDir(dir, schemaDirName)) {
93
- return {
94
- ok: false,
95
- error: 'Scaffolding did not produce a domain. See the log.',
96
- output: scaffold.output.slice(-6000),
97
- }
98
- }
99
-
100
- // 1b. Flag the placeholder origin for the agent (we ask for the name only, so the
101
- // origin is `<name>.example.dev` until someone — or the agent — sets the real one).
102
- annotateOrigin(dir, schemaDirName)
103
-
104
- // 2. Install deps so the domain is fully introspectable + deployable. Best-effort:
105
- // a scaffolded-but-uninstalled domain still loads (static fallback), so a failed
106
- // install is a soft warning, not a hard failure.
107
- const install = await run('pnpm', ['install'], dir)
108
-
109
- // 3. Register + boot with deps present. The live watcher may have already booted a
110
- // deps-less fallback for this dir mid-install — stop it and boot fresh.
111
- const handle = registerDomain(dir, schemaDirName)
112
- if (!handle) {
113
- return {
114
- ok: false,
115
- error: 'Scaffold incomplete — config, composition entry, or schema index is missing.',
116
- output: combine(scaffold, install),
117
- }
118
- }
119
- stoppers.get(handle.id)?.()
120
- const { origin } = await bootDomain(handle).then((b) => {
121
- stoppers.set(handle.id, b.stop)
122
- return b
123
- })
124
- await getBundle(handle.id, true) // refresh the cache now that deps are installed
125
-
126
- return { ok: true, id: handle.id, origin, output: combine(scaffold, install) }
127
- }
128
-
129
- function combine(a: { output: string }, b: { output: string }): string {
130
- return `$ create-astrale-domain\n${a.output}\n\n$ pnpm install\n${b.output}`.trim().slice(-6000)
131
- }
132
-
133
- /**
134
- * Drop an agent-actionable marker on the origin line of the scaffolded schema.
135
- * The public schema/index.ts is now commonly a barrel, so the definition is
136
- * located statically below it. We only ask for the NAME, so the origin starts as the
137
- * `<name>.example.dev` placeholder — this comment tells a human (or the studio's
138
- * agent) it's a placeholder to change, and that the studio re-parses the literal
139
- * as the source of truth so the rename takes effect on save. Best-effort: the
140
- * template already explains the origin, so a parse miss is harmless.
141
- */
142
- export function annotateOrigin(dir: string, schemaDirName = 'schema'): void {
143
- const definition = findSchemaDefinition(dir, schemaDirName)
144
- if (!definition) return
145
- const file = definition.file
146
- try {
147
- const src = readFileSync(file, 'utf8')
148
- if (src.includes('ORIGIN —')) return // already annotated (idempotent)
149
- const lines = src.split('\n')
150
- const index = Math.max(0, definition.line - 1)
151
- const pad = lines[index]?.match(/^[ \t]*/)?.[0] ?? ''
152
- const note =
153
- `${pad}// ORIGIN — the domain's permanent identity in the graph. It was set from the name as a\n` +
154
- `${pad}// PLACEHOLDER; change the literal or constant used here (e.g. to "crm.acme.dev"), ideally BEFORE\n` +
155
- `${pad}// the first deploy (the origin is hard to change once installed). The studio parses this\n` +
156
- `${pad}// schema statically as the source of truth, so the rename refreshes on save.\n`
157
- lines.splice(index, 0, note.trimEnd())
158
- writeFileSync(file, lines.join('\n'))
159
- } catch {
160
- /* best-effort */
161
- }
162
- }
@@ -1,75 +0,0 @@
1
- /**
2
- * Best-effort workspace Git enrichment for change tracking. The fixtures are not
3
- * git repos, so EVERY function here degrades gracefully and NEVER throws. The
4
- * baseline (baseline.ts) is the primary tracker; git only enriches when present.
5
- */
6
- import { execFileSync } from 'node:child_process'
7
- import { existsSync } from 'node:fs'
8
- import { dirname, relative, resolve } from 'node:path'
9
-
10
- import type { FileChange } from '../../shared/types'
11
-
12
- /** Walk parent dirs looking for a `.git` entry (dir or file, to support worktrees/submodules). */
13
- export function detectGit(root: string): { hasGit: boolean; gitRoot?: string } {
14
- let dir = resolve(root)
15
- while (true) {
16
- if (existsSync(resolve(dir, '.git'))) return { hasGit: true, gitRoot: dir }
17
- const parent = dirname(dir)
18
- if (parent === dir) return { hasGit: false }
19
- dir = parent
20
- }
21
- }
22
-
23
- function git(gitRoot: string, args: string[]): string | null {
24
- try {
25
- return execFileSync('git', ['-C', gitRoot, ...args], {
26
- encoding: 'utf8',
27
- stdio: ['ignore', 'pipe', 'ignore'],
28
- maxBuffer: 64 * 1024 * 1024,
29
- })
30
- } catch {
31
- return null
32
- }
33
- }
34
-
35
- /** `git diff` scoped to the schema dir. Returns stdout (possibly '') or null when there is no git. */
36
- export function gitDiff(root: string, schemaDirName: string): string | null {
37
- const { hasGit, gitRoot } = detectGit(root)
38
- if (!hasGit || !gitRoot) return null
39
- // Path to the schema dir relative to the git root (forward-slashed for git).
40
- const rel = relative(gitRoot, resolve(root, schemaDirName)).split('\\').join('/')
41
- const out = git(gitRoot, ['diff', '--', rel || '.'])
42
- return out
43
- }
44
-
45
- /** XY porcelain code → our FileChange status. Returns null for codes we don't surface. */
46
- function mapStatus(xy: string): FileChange['status'] | null {
47
- const x = xy[0] ?? ' '
48
- const y = xy[1] ?? ' '
49
- if (x === '?' || y === '?') return 'added' // untracked
50
- if (x === 'A' || y === 'A') return 'added'
51
- if (x === 'D' || y === 'D') return 'removed'
52
- if (x === 'R' || y === 'R') return 'modified' // rename → surface destination as modified
53
- if (x === 'M' || y === 'M' || x === 'C' || y === 'C' || x === 'U' || y === 'U') return 'modified'
54
- return null
55
- }
56
-
57
- /** Parse `git status --porcelain` into FileChange[]. Empty array when there is no git. */
58
- export function gitStatus(root: string): FileChange[] {
59
- const { hasGit, gitRoot } = detectGit(root)
60
- if (!hasGit || !gitRoot) return []
61
- const out = git(gitRoot, ['status', '--porcelain'])
62
- if (out == null) return []
63
- const changes: FileChange[] = []
64
- for (const line of out.split('\n')) {
65
- if (!line.trim()) continue
66
- const xy = line.slice(0, 2)
67
- let path = line.slice(3)
68
- // Renames/copies render as "old -> new"; keep the destination path.
69
- const arrow = path.indexOf(' -> ')
70
- if (arrow !== -1) path = path.slice(arrow + 4)
71
- const status = mapStatus(xy)
72
- if (status) changes.push({ file: path, status })
73
- }
74
- return changes
75
- }
@@ -1,83 +0,0 @@
1
- /**
2
- * Workspace update bridge for the header Update badge.
3
- *
4
- * We don't reimplement staleness: the `astrale` CLI owns it. `astrale update
5
- * --check --json`, run in the DOMAIN ROOT (so its @astrale-os/* SDK-dep axis sees
6
- * THIS project), emits a unified `{ stale, cli, sdk }` report. We run it with
7
- * stdout piped and read it regardless of exit code — a stale result exits 10 by
8
- * design, which is not an error here. Best-effort: anything unexpected (no
9
- * bad output) collapses to "nothing stale" so the badge stays
10
- * hidden rather than nagging on a hiccup.
11
- */
12
- import type { StaleReport } from '../../shared/types'
13
-
14
- import { decodeJsonObject, runStudioCliJson, runStudioCliText } from '../cli'
15
-
16
- const NOT_STALE: StaleReport = {
17
- stale: false,
18
- cli: { stale: false, managed: true },
19
- sdk: { stale: false, inProject: false, outdated: [] },
20
- }
21
-
22
- export async function getUpdates(root: string): Promise<StaleReport> {
23
- const result = await runStudioCliJson(['update', '--check', '--json'], decodeStaleReport, {
24
- cwd: root,
25
- acceptedExitCodes: [0, 10],
26
- })
27
- return result.ok && result.data ? result.data : NOT_STALE
28
- }
29
-
30
- function decodeStaleReport(value: unknown): StaleReport | null {
31
- const report = decodeJsonObject(value)
32
- const cli = decodeJsonObject(report?.cli)
33
- const sdk = decodeJsonObject(report?.sdk)
34
- if (
35
- typeof report?.stale !== 'boolean' ||
36
- typeof cli?.stale !== 'boolean' ||
37
- typeof cli.managed !== 'boolean' ||
38
- typeof sdk?.stale !== 'boolean' ||
39
- typeof sdk.inProject !== 'boolean' ||
40
- !Array.isArray(sdk.outdated)
41
- ) {
42
- return null
43
- }
44
- const outdated = sdk.outdated.flatMap((value) => {
45
- const item = decodeJsonObject(value)
46
- return typeof item?.pkg === 'string' &&
47
- typeof item.current === 'string' &&
48
- typeof item.latest === 'string'
49
- ? [{ pkg: item.pkg, current: item.current, latest: item.latest }]
50
- : []
51
- })
52
- if (outdated.length !== sdk.outdated.length) return null
53
- return {
54
- stale: report.stale,
55
- cli: {
56
- stale: cli.stale,
57
- managed: cli.managed,
58
- ...(typeof cli.current === 'string' ? { current: cli.current } : {}),
59
- ...(typeof cli.latest === 'string' ? { latest: cli.latest } : {}),
60
- ...(typeof cli.channel === 'string' ? { channel: cli.channel } : {}),
61
- },
62
- sdk: { stale: sdk.stale, inProject: sdk.inProject, outdated },
63
- }
64
- }
65
-
66
- export interface UpdateApplyResult {
67
- ok: boolean
68
- output: string
69
- }
70
-
71
- /**
72
- * Apply the update for the header "Update now" button — `astrale update --yes`,
73
- * run in the domain root. The CLI does the work non-interactively and resiliently
74
- * (binary + skills + SDK deps; a binary that can't self-update warns but doesn't
75
- * block the others), so we just spawn it and capture the combined output to show.
76
- */
77
- export async function applyUpdates(root: string): Promise<UpdateApplyResult> {
78
- const result = await runStudioCliText(['update', '--yes'], { cwd: root })
79
- return {
80
- ok: result.ok,
81
- output: `${result.stdout}${result.stderr}`.trim() || result.detail,
82
- }
83
- }
@@ -1,26 +0,0 @@
1
- /**
2
- * workspace-state.ts — process-global workspace context shared by the entrypoint
3
- * (index.ts), the live watcher (workspace-watch.ts), and the create-domain
4
- * endpoint (workspace/create.ts): the scanned ROOT (where new domains are
5
- * scaffolded), the schema-dir name, and the `domainId → file-watcher stop` map.
6
- *
7
- * It exists so the create endpoint can scaffold into the same root the studio
8
- * watches — and re-boot the freshly-created domain — without index.ts having to
9
- * thread those values through the API signature.
10
- */
11
-
12
- const state = { root: '', schemaDirName: 'schema' }
13
-
14
- /** domainId → stop its file watcher. The startup scan + the live watcher + the
15
- * create endpoint all share this one map so "what domains are live" stays single-sourced. */
16
- export const stoppers = new Map<string, () => void>()
17
-
18
- /** Called once at boot with the resolved workspace root + schema-dir name. */
19
- export function initWorkspaceState(root: string, schemaDirName: string): void {
20
- state.root = root
21
- state.schemaDirName = schemaDirName
22
- }
23
-
24
- /** The directory the studio scans for domains — where `create new` scaffolds a sibling. */
25
- export const workspaceRoot = (): string => state.root
26
- export const workspaceSchemaDirName = (): string => state.schemaDirName
@@ -1,106 +0,0 @@
1
- /**
2
- * workspace-watch.ts — keeps the domain registry in sync with the workspace while
3
- * the studio is running. A domain dropped in (or one whose astrale.config.ts +
4
- * composition entry + schema/index.ts triple just completed) is registered, booted, and
5
- * announced over SSE; one whose triple vanished is unregistered. It reuses
6
- * `scanWorkspace` (detection) + `bootDomain` (lifecycle), so there is no second
7
- * source of truth for "what is a domain" or "how a domain comes online".
8
- */
9
- import chokidar from 'chokidar'
10
- import { basename } from 'node:path'
11
-
12
- import { scanWorkspace } from './detect'
13
- import { allDomains, isDomainDir, unregisterDomain } from './domain'
14
- import { bootDomain } from './lifecycle'
15
- import { broadcast } from './sse'
16
-
17
- const IGNORED =
18
- /(^|[/\\])(node_modules|\.git|\.astrale|\.domain-studio|dist|\.dist|\.next|\.cache|\.turbo|\.vercel|coverage)([/\\]|$)/
19
- // only these file changes can change the domain SET (vs. ordinary in-domain edits)
20
- export const DOMAIN_SET_TRIGGER_FILES = new Set([
21
- 'astrale.config.ts',
22
- 'application.ts',
23
- 'schema.ts',
24
- 'index.ts',
25
- ])
26
-
27
- /**
28
- * Watch `root` for domains appearing/disappearing.
29
- * @param stoppers shared `domainId → file-watcher stop` map. The startup scan seeds
30
- * it (via bootDomain); this watcher keeps it in sync as domains come and go.
31
- */
32
- export function watchWorkspace(
33
- root: string,
34
- schemaDirName: string,
35
- stoppers: Map<string, () => void>,
36
- ): () => void {
37
- let timer: ReturnType<typeof setTimeout> | undefined
38
- let running = false
39
- let queued = false
40
-
41
- const reconcile = async () => {
42
- const before = new Set(allDomains().map((d) => d.id))
43
-
44
- // 1. drop domains whose triple vanished (dir deleted, or a trigger file removed)
45
- for (const h of allDomains()) {
46
- if (isDomainDir(h.root, h.schemaDirName)) continue
47
- stoppers.get(h.id)?.()
48
- stoppers.delete(h.id)
49
- unregisterDomain(h.id)
50
- console.log(` Domain Studio — domain removed: ${h.id}`)
51
- }
52
-
53
- // 2. register + boot any new ones (scanWorkspace registers; bootDomain initializes + watches)
54
- for (const h of scanWorkspace(root, schemaDirName)) {
55
- if (stoppers.has(h.id)) continue
56
- const { origin, stop } = await bootDomain(h)
57
- stoppers.set(h.id, stop)
58
- console.log(` Domain Studio — domain added: ${origin} (${h.id})`)
59
- }
60
-
61
- // 3. announce if the set changed → clients refetch /api/workspace
62
- const after = new Set(allDomains().map((d) => d.id))
63
- if (before.size !== after.size || [...after].some((id) => !before.has(id))) {
64
- broadcast({ type: 'workspace', domains: [...after] })
65
- }
66
- }
67
-
68
- // serialize reconciles — bootDomain is async; coalesce event bursts
69
- const run = async () => {
70
- if (running) {
71
- queued = true
72
- return
73
- }
74
- running = true
75
- try {
76
- await reconcile()
77
- } catch (e) {
78
- console.error(' Domain Studio — workspace reconcile failed:', e)
79
- } finally {
80
- running = false
81
- if (queued) {
82
- queued = false
83
- void run()
84
- }
85
- }
86
- }
87
- const schedule = () => {
88
- clearTimeout(timer)
89
- timer = setTimeout(() => void run(), 400)
90
- }
91
- const onFile = (p: string) => {
92
- if (DOMAIN_SET_TRIGGER_FILES.has(basename(p))) schedule()
93
- }
94
-
95
- const watcher = chokidar.watch(root, {
96
- ignoreInitial: true,
97
- depth: 4,
98
- ignored: (p: string) => IGNORED.test(p),
99
- })
100
- watcher.on('addDir', schedule).on('unlinkDir', schedule).on('add', onFile).on('unlink', onFile)
101
-
102
- return () => {
103
- clearTimeout(timer)
104
- void watcher.close()
105
- }
106
- }
@@ -1,12 +0,0 @@
1
- import { expect, test } from 'bun:test'
2
-
3
- import { effectiveAgentEffort } from './agent-effort'
4
-
5
- test('normalizes persisted effort when switching harness vocabularies', () => {
6
- expect(effectiveAgentEffort(['low', 'medium', 'high', 'xhigh'], 'max')).toBe('xhigh')
7
- expect(effectiveAgentEffort(['low', 'medium', 'high', 'xhigh'], 'ultracode')).toBe('xhigh')
8
- expect(effectiveAgentEffort(['low', 'medium', 'high'], 'minimal')).toBe('low')
9
- expect(effectiveAgentEffort(['medium', 'high'], 'xhigh')).toBe('high')
10
- expect(effectiveAgentEffort(['medium'], 'low')).toBe('medium')
11
- expect(effectiveAgentEffort(['low'], undefined)).toBeUndefined()
12
- })
@@ -1,15 +0,0 @@
1
- import type { AgentEffort } from './types'
2
-
3
- /** Map a persisted cross-harness effort onto the selected harness's vocabulary. */
4
- export function effectiveAgentEffort(
5
- levels: readonly AgentEffort[],
6
- requested?: string,
7
- ): AgentEffort | undefined {
8
- if (!requested) return undefined
9
- if (levels.includes(requested as AgentEffort)) return requested as AgentEffort
10
- if (requested === 'max' && levels.includes('xhigh')) return 'xhigh'
11
- if (requested === 'ultracode' && levels.includes('xhigh')) return 'xhigh'
12
- if (requested === 'minimal' && levels.includes('low')) return 'low'
13
- if (levels.includes('high')) return 'high'
14
- return levels[0]
15
- }
@@ -1,9 +0,0 @@
1
- import { expect, test } from 'bun:test'
2
-
3
- import { updateAgentModel } from './agent-models'
4
-
5
- test('switching model overrides preserves independent harness selections', () => {
6
- const selected = updateAgentModel({ claude: 'opus' }, 'Codex', ' gpt-5.4-mini ')
7
- expect(selected).toEqual({ claude: 'opus', codex: 'gpt-5.4-mini' })
8
- expect(updateAgentModel(selected, 'claude', '')).toEqual({ codex: 'gpt-5.4-mini' })
9
- })
@@ -1,14 +0,0 @@
1
- /** Update one harness-specific model override without disturbing sibling harnesses. */
2
- export function updateAgentModel(
3
- current: Record<string, string>,
4
- harness: string,
5
- model: string,
6
- ): Record<string, string> {
7
- const key = harness.trim().toLowerCase()
8
- if (!key) return current
9
- const next = { ...current }
10
- const normalized = model.trim()
11
- if (normalized) next[key] = normalized
12
- else delete next[key]
13
- return next
14
- }
@@ -1,16 +0,0 @@
1
- # Studio shared contract boundaries
2
-
3
- `../types.ts` is the compatibility facade used by existing server and client
4
- imports. Definitions live under one semantic owner:
5
-
6
- - `schema.ts` owns the render IR and all schema/anatomy introspection results.
7
- - `workspace.ts` owns persisted and workspace-facing state, including the sole
8
- `LayoutState` and `VisibilityState` definitions.
9
- - `agent.ts` owns the harness-neutral agent protocol and harness configuration.
10
- - `runtime.ts` owns Studio runtime configuration, SSE events, and CLI staleness.
11
- - `../schema/identity.ts` owns pure canonical reference/key identity helpers.
12
-
13
- Allowed dependency direction is identity → schema → workspace → agent → runtime.
14
- Shared contracts never import server or client implementations. New consumers
15
- may import an owning module directly; `@shared/types` remains supported for
16
- compatibility.