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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (599) hide show
  1. package/README.md +14 -166
  2. package/package.json +10 -102
  3. package/.check-workspace.cjs +0 -40
  4. package/LICENSE +0 -202
  5. package/THIRD-PARTY-NOTICES.md +0 -27
  6. package/dist/astrale.js +0 -93172
  7. package/dist/public/connect-core.js +0 -29187
  8. package/dist/public/keys/index.js +0 -5651
  9. package/dist/public/paths/index.js +0 -4282
  10. package/dist/types/admin/instance/model.d.ts +0 -39
  11. package/dist/types/connect-core.d.ts +0 -22
  12. package/dist/types/connection/auth.d.ts +0 -36
  13. package/dist/types/errors.d.ts +0 -23
  14. package/dist/types/identity/registry.d.ts +0 -25
  15. package/dist/types/keys/algorithm.d.ts +0 -6
  16. package/dist/types/keys/credential.d.ts +0 -21
  17. package/dist/types/keys/index.d.ts +0 -4
  18. package/dist/types/keys/pair.d.ts +0 -34
  19. package/dist/types/lib/admin-target.d.ts +0 -78
  20. package/dist/types/lib/ca-fetch.d.ts +0 -2
  21. package/dist/types/lib/config.d.ts +0 -71
  22. package/dist/types/lib/failure-debug.d.ts +0 -1
  23. package/dist/types/lib/format.d.ts +0 -1
  24. package/dist/types/lib/idp-session.d.ts +0 -33
  25. package/dist/types/lib/idp.d.ts +0 -404
  26. package/dist/types/lib/instance-target.d.ts +0 -38
  27. package/dist/types/lib/instance.d.ts +0 -196
  28. package/dist/types/lib/invocation.d.ts +0 -3
  29. package/dist/types/lib/log.d.ts +0 -33
  30. package/dist/types/lib/login-flow.d.ts +0 -49
  31. package/dist/types/lib/meta.d.ts +0 -36
  32. package/dist/types/lib/output.d.ts +0 -87
  33. package/dist/types/lib/proc.d.ts +0 -43
  34. package/dist/types/lib/table.d.ts +0 -18
  35. package/dist/types/lib/update.d.ts +0 -131
  36. package/dist/types/lib/validation.d.ts +0 -11
  37. package/dist/types/paths/index.d.ts +0 -2
  38. package/dist/types/state/exchange-credentials.d.ts +0 -25
  39. package/dist/types/state/files.d.ts +0 -9
  40. package/dist/types/state/identities.d.ts +0 -42
  41. package/dist/types/state/index.d.ts +0 -8
  42. package/dist/types/state/paths.d.ts +0 -32
  43. package/src/__tests__/fixtures/publication.ts +0 -20
  44. package/src/admin/.spec/api.d.ts +0 -3
  45. package/src/admin/.spec/architecture.md +0 -15
  46. package/src/admin/.spec/icon.svg +0 -3
  47. package/src/admin/.spec/layout.ts +0 -6
  48. package/src/admin/__tests__/binding.test.ts +0 -31
  49. package/src/admin/__tests__/fixture.ts +0 -101
  50. package/src/admin/binding.ts +0 -98
  51. package/src/admin/catalog/.spec/api.d.ts +0 -65
  52. package/src/admin/catalog/.spec/architecture.md +0 -6
  53. package/src/admin/catalog/.spec/icon.svg +0 -3
  54. package/src/admin/catalog/.spec/layout.ts +0 -6
  55. package/src/admin/catalog/__tests__/client.test.ts +0 -142
  56. package/src/admin/catalog/client.ts +0 -218
  57. package/src/admin/catalog/index.ts +0 -13
  58. package/src/admin/catalog/model.ts +0 -41
  59. package/src/admin/catalog/tsconfig.json +0 -8
  60. package/src/admin/graph/.spec/api.d.ts +0 -22
  61. package/src/admin/graph/.spec/architecture.md +0 -5
  62. package/src/admin/graph/.spec/icon.svg +0 -3
  63. package/src/admin/graph/.spec/layout.ts +0 -3
  64. package/src/admin/graph/index.ts +0 -6
  65. package/src/admin/graph/nodes.ts +0 -56
  66. package/src/admin/index.ts +0 -2
  67. package/src/admin/instance/.spec/api.d.ts +0 -66
  68. package/src/admin/instance/.spec/architecture.md +0 -10
  69. package/src/admin/instance/.spec/icon.svg +0 -3
  70. package/src/admin/instance/.spec/layout.ts +0 -6
  71. package/src/admin/instance/__tests__/client.test.ts +0 -266
  72. package/src/admin/instance/client.ts +0 -290
  73. package/src/admin/instance/index.ts +0 -16
  74. package/src/admin/instance/model.ts +0 -66
  75. package/src/admin/instance/tsconfig.json +0 -8
  76. package/src/commands/__tests__/admin-instance.test.ts +0 -88
  77. package/src/commands/__tests__/auth-login.test.ts +0 -231
  78. package/src/commands/__tests__/auth-token.test.ts +0 -223
  79. package/src/commands/__tests__/call-describe.test.ts +0 -80
  80. package/src/commands/__tests__/call.test.ts +0 -29
  81. package/src/commands/__tests__/domain-install-operation.test.ts +0 -126
  82. package/src/commands/__tests__/domain-install-owned.test.ts +0 -191
  83. package/src/commands/__tests__/domain-list.test.ts +0 -133
  84. package/src/commands/__tests__/domain-uninstall.test.ts +0 -53
  85. package/src/commands/__tests__/install-direct.test.ts +0 -21
  86. package/src/commands/__tests__/install-identity-override.test.ts +0 -76
  87. package/src/commands/__tests__/instance-bookmark.test.ts +0 -166
  88. package/src/commands/__tests__/instance-create-hosts.test.ts +0 -29
  89. package/src/commands/__tests__/instance-list-admin.test.ts +0 -26
  90. package/src/commands/__tests__/instance-list-rows.test.ts +0 -64
  91. package/src/commands/__tests__/instance-use.test.ts +0 -67
  92. package/src/commands/__tests__/introspect-parse.test.ts +0 -21
  93. package/src/commands/__tests__/logs.test.ts +0 -97
  94. package/src/commands/__tests__/read-commands.test.ts +0 -294
  95. package/src/commands/__tests__/setup-plan.test.ts +0 -61
  96. package/src/commands/__tests__/studio-descriptor.test.ts +0 -22
  97. package/src/commands/__tests__/token-ttl.test.ts +0 -21
  98. package/src/commands/__tests__/update.test.ts +0 -95
  99. package/src/commands/__tests__/view-build.test.ts +0 -58
  100. package/src/commands/__tests__/view.test.ts +0 -149
  101. package/src/commands/admin/status.ts +0 -61
  102. package/src/commands/admin/use.ts +0 -100
  103. package/src/commands/auth/login.ts +0 -82
  104. package/src/commands/auth/logout.ts +0 -52
  105. package/src/commands/auth/status.ts +0 -86
  106. package/src/commands/auth/token.ts +0 -174
  107. package/src/commands/browser.ts +0 -207
  108. package/src/commands/call-describe.ts +0 -123
  109. package/src/commands/call.ts +0 -205
  110. package/src/commands/domain/install.ts +0 -548
  111. package/src/commands/domain/list.ts +0 -155
  112. package/src/commands/domain/publish.ts +0 -133
  113. package/src/commands/domain/uninstall.ts +0 -128
  114. package/src/commands/get.ts +0 -69
  115. package/src/commands/identity/__tests__/register.test.ts +0 -93
  116. package/src/commands/identity/create.ts +0 -35
  117. package/src/commands/identity/delete.ts +0 -24
  118. package/src/commands/identity/export.ts +0 -46
  119. package/src/commands/identity/import.ts +0 -61
  120. package/src/commands/identity/list.ts +0 -56
  121. package/src/commands/identity/register.ts +0 -196
  122. package/src/commands/identity/sync.ts +0 -38
  123. package/src/commands/identity/unsync.ts +0 -34
  124. package/src/commands/identity/use.ts +0 -24
  125. package/src/commands/identity/whoami.ts +0 -34
  126. package/src/commands/idp/add.ts +0 -150
  127. package/src/commands/idp/list.ts +0 -57
  128. package/src/commands/idp/refresh.ts +0 -38
  129. package/src/commands/idp/remove.ts +0 -36
  130. package/src/commands/idp/show.ts +0 -29
  131. package/src/commands/instance/active.ts +0 -73
  132. package/src/commands/instance/bookmark.ts +0 -101
  133. package/src/commands/instance/create.ts +0 -69
  134. package/src/commands/instance/delete.ts +0 -68
  135. package/src/commands/instance/forget.ts +0 -26
  136. package/src/commands/instance/list.ts +0 -197
  137. package/src/commands/instance/status.ts +0 -38
  138. package/src/commands/instance/use.ts +0 -259
  139. package/src/commands/introspect.ts +0 -110
  140. package/src/commands/logs.ts +0 -283
  141. package/src/commands/mutate.ts +0 -122
  142. package/src/commands/query.ts +0 -136
  143. package/src/commands/session/analyze.ts +0 -50
  144. package/src/commands/session/list.ts +0 -36
  145. package/src/commands/setup.ts +0 -54
  146. package/src/commands/status.ts +0 -60
  147. package/src/commands/studio.ts +0 -434
  148. package/src/commands/token.ts +0 -107
  149. package/src/commands/update.ts +0 -334
  150. package/src/commands/use.ts +0 -86
  151. package/src/commands/view-serve.ts +0 -26
  152. package/src/commands/view.ts +0 -614
  153. package/src/connect-core.test.ts +0 -38
  154. package/src/connect-core.ts +0 -42
  155. package/src/connection/.spec/api.d.ts +0 -110
  156. package/src/connection/.spec/architecture.md +0 -47
  157. package/src/connection/.spec/capabilities/connection.ts +0 -13
  158. package/src/connection/.spec/examples/call.ts +0 -7
  159. package/src/connection/.spec/flows/command.ts +0 -20
  160. package/src/connection/.spec/flows/session.ts +0 -61
  161. package/src/connection/.spec/laws/connection.ts +0 -205
  162. package/src/connection/.spec/layout.ts +0 -21
  163. package/src/connection/__tests__/auth.test.ts +0 -128
  164. package/src/connection/__tests__/ca-fetch.test.ts +0 -60
  165. package/src/connection/__tests__/call.test.ts +0 -17
  166. package/src/connection/__tests__/credential.test.ts +0 -119
  167. package/src/connection/__tests__/errors.test.ts +0 -577
  168. package/src/connection/__tests__/exchange.test.ts +0 -295
  169. package/src/connection/__tests__/failure-fixtures.ts +0 -39
  170. package/src/connection/__tests__/failure-safety.test.ts +0 -75
  171. package/src/connection/__tests__/fixtures/localhost-cert.pem +0 -19
  172. package/src/connection/__tests__/fixtures/localhost-key.base64 +0 -1
  173. package/src/connection/__tests__/managed.test.ts +0 -39
  174. package/src/connection/__tests__/reasons.test.ts +0 -78
  175. package/src/connection/__tests__/self.test.ts +0 -71
  176. package/src/connection/__tests__/session.test.ts +0 -140
  177. package/src/connection/__tests__/target.test.ts +0 -93
  178. package/src/connection/auth.ts +0 -236
  179. package/src/connection/call.ts +0 -7
  180. package/src/connection/command.ts +0 -67
  181. package/src/connection/credential.ts +0 -117
  182. package/src/connection/errors.ts +0 -1
  183. package/src/connection/exchange.ts +0 -311
  184. package/src/connection/failure/classify.ts +0 -110
  185. package/src/connection/failure/index.ts +0 -18
  186. package/src/connection/failure/model.ts +0 -28
  187. package/src/connection/failure/render.ts +0 -116
  188. package/src/connection/index.ts +0 -8
  189. package/src/connection/reasons.ts +0 -209
  190. package/src/connection/self.ts +0 -138
  191. package/src/connection/session.ts +0 -185
  192. package/src/connection/target.ts +0 -112
  193. package/src/connection/tsconfig.json +0 -6
  194. package/src/errors.ts +0 -66
  195. package/src/graph/.spec/api.d.ts +0 -41
  196. package/src/graph/.spec/laws/documents.ts +0 -24
  197. package/src/graph/.spec/laws/projection.ts +0 -13
  198. package/src/graph/.spec/layout.ts +0 -14
  199. package/src/graph/__tests__/mutation.test.ts +0 -51
  200. package/src/graph/__tests__/projection.test.ts +0 -22
  201. package/src/graph/__tests__/query.test.ts +0 -173
  202. package/src/graph/class.ts +0 -30
  203. package/src/graph/index.ts +0 -4
  204. package/src/graph/mutation.ts +0 -46
  205. package/src/graph/projection.ts +0 -21
  206. package/src/graph/query.ts +0 -97
  207. package/src/graph/tsconfig.json +0 -6
  208. package/src/identity/.history/ard/bootstrap-root-transfer.md +0 -57
  209. package/src/identity/.history/ard/domain-mediated-registration.md +0 -36
  210. package/src/identity/.spec/api.d.ts +0 -124
  211. package/src/identity/.spec/architecture.md +0 -33
  212. package/src/identity/.spec/capabilities/identity.ts +0 -7
  213. package/src/identity/.spec/flows/bootstrap-root.ts +0 -79
  214. package/src/identity/.spec/flows/domain-mediated-registration.ts +0 -51
  215. package/src/identity/.spec/flows/import.ts +0 -29
  216. package/src/identity/.spec/laws/identity.ts +0 -56
  217. package/src/identity/.spec/layout.ts +0 -13
  218. package/src/identity/.spec/schemas/identity-export-v1.schema.json +0 -25
  219. package/src/identity/__tests__/fixtures/registry-journey.ts +0 -53
  220. package/src/identity/__tests__/registration.test.ts +0 -64
  221. package/src/identity/__tests__/registry.test.ts +0 -70
  222. package/src/identity/__tests__/transfer.test.ts +0 -198
  223. package/src/identity/index.ts +0 -23
  224. package/src/identity/registration.ts +0 -72
  225. package/src/identity/registry.ts +0 -179
  226. package/src/identity/transfer.ts +0 -187
  227. package/src/identity/tsconfig.json +0 -6
  228. package/src/index.ts +0 -1
  229. package/src/keys/.spec/api.d.ts +0 -74
  230. package/src/keys/.spec/architecture.md +0 -13
  231. package/src/keys/.spec/laws/keys.ts +0 -43
  232. package/src/keys/.spec/layout.ts +0 -6
  233. package/src/keys/__tests__/algorithm.test.ts +0 -39
  234. package/src/keys/__tests__/keys.test.ts +0 -168
  235. package/src/keys/algorithm.ts +0 -33
  236. package/src/keys/credential.ts +0 -112
  237. package/src/keys/index.ts +0 -14
  238. package/src/keys/pair.ts +0 -219
  239. package/src/keys/tsconfig.json +0 -6
  240. package/src/lib/__tests__/admin-target.test.ts +0 -184
  241. package/src/lib/__tests__/binary.test.ts +0 -55
  242. package/src/lib/__tests__/command-dx.test.ts +0 -102
  243. package/src/lib/__tests__/concurrency.test.ts +0 -62
  244. package/src/lib/__tests__/config.test.ts +0 -54
  245. package/src/lib/__tests__/design.test.ts +0 -99
  246. package/src/lib/__tests__/domain-publication.test.ts +0 -133
  247. package/src/lib/__tests__/format.test.ts +0 -22
  248. package/src/lib/__tests__/idp-session.driver.ts +0 -53
  249. package/src/lib/__tests__/idp-session.test.ts +0 -379
  250. package/src/lib/__tests__/idp.test.ts +0 -415
  251. package/src/lib/__tests__/instance-candidates.test.ts +0 -148
  252. package/src/lib/__tests__/instance-target.test.ts +0 -212
  253. package/src/lib/__tests__/instance.test.ts +0 -192
  254. package/src/lib/__tests__/local-status.test.ts +0 -202
  255. package/src/lib/__tests__/log-errors.test.ts +0 -64
  256. package/src/lib/__tests__/log.test.ts +0 -31
  257. package/src/lib/__tests__/meta.test.ts +0 -55
  258. package/src/lib/__tests__/output.test.ts +0 -162
  259. package/src/lib/__tests__/panel.test.ts +0 -40
  260. package/src/lib/__tests__/port.test.ts +0 -44
  261. package/src/lib/__tests__/prompt.test.ts +0 -25
  262. package/src/lib/__tests__/sdk-deps.test.ts +0 -68
  263. package/src/lib/__tests__/self.test.ts +0 -50
  264. package/src/lib/__tests__/studio-server-deps.test.ts +0 -111
  265. package/src/lib/__tests__/table.test.ts +0 -53
  266. package/src/lib/__tests__/update.test.ts +0 -351
  267. package/src/lib/__tests__/use-target.test.ts +0 -56
  268. package/src/lib/__tests__/validation.test.ts +0 -34
  269. package/src/lib/__tests__/view-assets.test.ts +0 -146
  270. package/src/lib/__tests__/view-open-intent.test.ts +0 -280
  271. package/src/lib/__tests__/view-port-allocation.test.ts +0 -82
  272. package/src/lib/__tests__/view-server.test.ts +0 -68
  273. package/src/lib/__tests__/view-session.test.ts +0 -99
  274. package/src/lib/__tests__/view-snapshot.test.ts +0 -77
  275. package/src/lib/admin-domain.ts +0 -43
  276. package/src/lib/admin-instance.ts +0 -50
  277. package/src/lib/admin-target.ts +0 -290
  278. package/src/lib/binary.ts +0 -110
  279. package/src/lib/browser.ts +0 -150
  280. package/src/lib/ca-fetch.ts +0 -133
  281. package/src/lib/command-dx.ts +0 -188
  282. package/src/lib/concurrency.ts +0 -31
  283. package/src/lib/config.ts +0 -46
  284. package/src/lib/domain-publication.ts +0 -102
  285. package/src/lib/failure-debug.ts +0 -26
  286. package/src/lib/format.ts +0 -4
  287. package/src/lib/idp-session.ts +0 -134
  288. package/src/lib/idp.ts +0 -906
  289. package/src/lib/instance-candidates.ts +0 -49
  290. package/src/lib/instance-target.ts +0 -197
  291. package/src/lib/instance.ts +0 -463
  292. package/src/lib/invocation.ts +0 -11
  293. package/src/lib/local-status.ts +0 -152
  294. package/src/lib/log.ts +0 -143
  295. package/src/lib/login-flow.ts +0 -201
  296. package/src/lib/meta.ts +0 -90
  297. package/src/lib/output.ts +0 -238
  298. package/src/lib/panel.ts +0 -61
  299. package/src/lib/port.ts +0 -41
  300. package/src/lib/proc.ts +0 -82
  301. package/src/lib/prompt.ts +0 -136
  302. package/src/lib/provision-instance.ts +0 -162
  303. package/src/lib/sdk-deps.ts +0 -104
  304. package/src/lib/self.ts +0 -22
  305. package/src/lib/skills.ts +0 -171
  306. package/src/lib/table.ts +0 -62
  307. package/src/lib/update.ts +0 -409
  308. package/src/lib/use-target.ts +0 -24
  309. package/src/lib/validation.ts +0 -59
  310. package/src/lib/view/assets.ts +0 -78
  311. package/src/lib/view/open-intent.ts +0 -67
  312. package/src/lib/view/port-allocation.ts +0 -19
  313. package/src/lib/view/resolve.ts +0 -111
  314. package/src/lib/view/server.ts +0 -244
  315. package/src/lib/view/session.ts +0 -152
  316. package/src/lib/view/snapshot.ts +0 -101
  317. package/src/paths/.spec/api.d.ts +0 -13
  318. package/src/paths/.spec/architecture.md +0 -5
  319. package/src/paths/.spec/layout.ts +0 -3
  320. package/src/paths/index.ts +0 -13
  321. package/src/program/.spec/api.d.ts +0 -42
  322. package/src/program/.spec/architecture.md +0 -18
  323. package/src/program/.spec/laws/program.ts +0 -29
  324. package/src/program/.spec/layout.ts +0 -14
  325. package/src/program/__tests__/program.test.ts +0 -362
  326. package/src/program/build.ts +0 -183
  327. package/src/program/command.ts +0 -42
  328. package/src/program/index.ts +0 -2
  329. package/src/program/options.ts +0 -41
  330. package/src/program/registry.ts +0 -63
  331. package/src/program/tsconfig.json +0 -6
  332. package/src/setup/__tests__/instance-step.test.ts +0 -239
  333. package/src/setup/__tests__/util.test.ts +0 -29
  334. package/src/setup/engine.ts +0 -83
  335. package/src/setup/render.ts +0 -107
  336. package/src/setup/steps/admin.ts +0 -93
  337. package/src/setup/steps/agent-browser.ts +0 -81
  338. package/src/setup/steps/auth.ts +0 -54
  339. package/src/setup/steps/domain.ts +0 -68
  340. package/src/setup/steps/index.ts +0 -18
  341. package/src/setup/steps/instance.ts +0 -199
  342. package/src/setup/steps/skills-bridge.ts +0 -70
  343. package/src/setup/steps/skills.ts +0 -59
  344. package/src/setup/types.ts +0 -61
  345. package/src/setup/util.ts +0 -34
  346. package/src/state/.spec/api.d.ts +0 -133
  347. package/src/state/.spec/architecture.md +0 -31
  348. package/src/state/.spec/capabilities/state.ts +0 -7
  349. package/src/state/.spec/flows/identity-update.ts +0 -22
  350. package/src/state/.spec/laws/state.ts +0 -73
  351. package/src/state/.spec/layout.ts +0 -14
  352. package/src/state/__tests__/exchange-credentials.test.ts +0 -188
  353. package/src/state/__tests__/files.test.ts +0 -113
  354. package/src/state/__tests__/fixtures/identity-transition.ts +0 -37
  355. package/src/state/__tests__/identities.test.ts +0 -142
  356. package/src/state/__tests__/paths.test.ts +0 -27
  357. package/src/state/exchange-credentials.ts +0 -219
  358. package/src/state/files.ts +0 -129
  359. package/src/state/identities.ts +0 -229
  360. package/src/state/index.ts +0 -29
  361. package/src/state/paths.ts +0 -61
  362. package/src/state/tsconfig.json +0 -6
  363. package/src/telemetry/__tests__/gate.test.ts +0 -63
  364. package/src/telemetry/__tests__/recorder.test.ts +0 -110
  365. package/src/telemetry/__tests__/redact.test.ts +0 -79
  366. package/src/telemetry/__tests__/session.test.ts +0 -166
  367. package/src/telemetry/__tests__/trigger.test.ts +0 -49
  368. package/src/telemetry/adapters/__tests__/claude-code.test.ts +0 -89
  369. package/src/telemetry/adapters/__tests__/codex.test.ts +0 -138
  370. package/src/telemetry/adapters/__tests__/index.test.ts +0 -88
  371. package/src/telemetry/adapters/claude-code.ts +0 -90
  372. package/src/telemetry/adapters/codex.ts +0 -160
  373. package/src/telemetry/adapters/index.ts +0 -45
  374. package/src/telemetry/adapters/types.ts +0 -21
  375. package/src/telemetry/analyze.ts +0 -227
  376. package/src/telemetry/gate.ts +0 -79
  377. package/src/telemetry/recorder.ts +0 -57
  378. package/src/telemetry/redact.ts +0 -53
  379. package/src/telemetry/session.ts +0 -88
  380. package/src/telemetry/settings.ts +0 -26
  381. package/src/telemetry/store.ts +0 -91
  382. package/src/telemetry/trigger.ts +0 -119
  383. package/src/telemetry/types.ts +0 -64
  384. package/src/test-utils.ts +0 -18
  385. package/studio/client/dist/assets/elk-api-Di4OXGNH.js +0 -1
  386. package/studio/client/dist/assets/elk-worker.min-C9JGDOE-.js +0 -6312
  387. package/studio/client/dist/assets/index-BLm6J11H.js +0 -81
  388. package/studio/client/dist/assets/index-BiGR8Oo9.css +0 -1
  389. package/studio/client/dist/assets/index-ChOr3yP0.css +0 -1
  390. package/studio/client/dist/assets/index-DTjvkOUX.js +0 -8
  391. package/studio/client/dist/index.html +0 -13
  392. package/studio/package.json +0 -65
  393. package/studio/server/agent/ask.test.ts +0 -74
  394. package/studio/server/agent/ask.ts +0 -71
  395. package/studio/server/agent/bridge/client.test.ts +0 -49
  396. package/studio/server/agent/bridge/client.ts +0 -37
  397. package/studio/server/agent/bridge/grant.test.ts +0 -62
  398. package/studio/server/agent/bridge/grant.ts +0 -84
  399. package/studio/server/agent/bridge/routes.test.ts +0 -151
  400. package/studio/server/agent/bridge/routes.ts +0 -148
  401. package/studio/server/agent/bridge/stdio.ts +0 -195
  402. package/studio/server/agent/conversation.test.ts +0 -89
  403. package/studio/server/agent/conversation.ts +0 -158
  404. package/studio/server/agent/harness/adapter.ts +0 -171
  405. package/studio/server/agent/harness/claude/adapter.test.ts +0 -348
  406. package/studio/server/agent/harness/claude/adapter.ts +0 -71
  407. package/studio/server/agent/harness/claude/ask.ts +0 -114
  408. package/studio/server/agent/harness/claude/capabilities.ts +0 -27
  409. package/studio/server/agent/harness/claude/command.ts +0 -63
  410. package/studio/server/agent/harness/claude/events.ts +0 -215
  411. package/studio/server/agent/harness/claude/loadout.ts +0 -132
  412. package/studio/server/agent/harness/claude/mcp.test.ts +0 -36
  413. package/studio/server/agent/harness/claude/mcp.ts +0 -41
  414. package/studio/server/agent/harness/claude/skills.ts +0 -43
  415. package/studio/server/agent/harness/codex/adapter.test.ts +0 -269
  416. package/studio/server/agent/harness/codex/adapter.ts +0 -116
  417. package/studio/server/agent/harness/codex/ask.test.ts +0 -176
  418. package/studio/server/agent/harness/codex/ask.ts +0 -181
  419. package/studio/server/agent/harness/codex/command.test.ts +0 -69
  420. package/studio/server/agent/harness/codex/command.ts +0 -43
  421. package/studio/server/agent/harness/codex/events.test.ts +0 -94
  422. package/studio/server/agent/harness/codex/events.ts +0 -132
  423. package/studio/server/agent/harness/codex/exec.ts +0 -113
  424. package/studio/server/agent/harness/codex/loadout.ts +0 -60
  425. package/studio/server/agent/harness/codex/mcp.test.ts +0 -32
  426. package/studio/server/agent/harness/codex/mcp.ts +0 -27
  427. package/studio/server/agent/harness/codex/models.test.ts +0 -167
  428. package/studio/server/agent/harness/codex/models.ts +0 -211
  429. package/studio/server/agent/harness/codex/skills.ts +0 -33
  430. package/studio/server/agent/harness/gateway/config.test.ts +0 -98
  431. package/studio/server/agent/harness/gateway/config.ts +0 -214
  432. package/studio/server/agent/harness/gateway/token.test.ts +0 -133
  433. package/studio/server/agent/harness/gateway/token.ts +0 -166
  434. package/studio/server/agent/harness/mock/adapter.ts +0 -190
  435. package/studio/server/agent/harness/mock/domain-edit.ts +0 -41
  436. package/studio/server/agent/harness/process.test.ts +0 -46
  437. package/studio/server/agent/harness/process.ts +0 -104
  438. package/studio/server/agent/harness/registry.ts +0 -37
  439. package/studio/server/agent/harness/selection.test.ts +0 -75
  440. package/studio/server/agent/harness/selection.ts +0 -85
  441. package/studio/server/agent/harness/skills.test.ts +0 -95
  442. package/studio/server/agent/harness/skills.ts +0 -100
  443. package/studio/server/agent/layout.test.ts +0 -95
  444. package/studio/server/agent/notify.ts +0 -12
  445. package/studio/server/agent/prompts/anchors.test.ts +0 -70
  446. package/studio/server/agent/prompts/anchors.ts +0 -153
  447. package/studio/server/agent/prompts/ask.ts +0 -34
  448. package/studio/server/agent/prompts/system.test.ts +0 -13
  449. package/studio/server/agent/prompts/system.ts +0 -99
  450. package/studio/server/agent/prompts/turn.ts +0 -66
  451. package/studio/server/agent/routes.test.ts +0 -176
  452. package/studio/server/agent/routes.ts +0 -214
  453. package/studio/server/agent/run/completion.ts +0 -193
  454. package/studio/server/agent/run/coordinator.test.ts +0 -337
  455. package/studio/server/agent/run/coordinator.ts +0 -104
  456. package/studio/server/agent/run/live-state.ts +0 -73
  457. package/studio/server/agent/run/preparation.ts +0 -163
  458. package/studio/server/agent/run/transcript.test.ts +0 -81
  459. package/studio/server/agent/run/transcript.ts +0 -196
  460. package/studio/server/agent/run/usage.test.ts +0 -70
  461. package/studio/server/agent/run/usage.ts +0 -62
  462. package/studio/server/agent/stream.ts +0 -37
  463. package/studio/server/agent/telemetry.ts +0 -13
  464. package/studio/server/api/canvas.ts +0 -43
  465. package/studio/server/api/comments.ts +0 -85
  466. package/studio/server/api/context.ts +0 -61
  467. package/studio/server/api/deployment.ts +0 -39
  468. package/studio/server/api/documents.ts +0 -55
  469. package/studio/server/api/domain.ts +0 -59
  470. package/studio/server/api/http.ts +0 -45
  471. package/studio/server/api/project.ts +0 -57
  472. package/studio/server/api/schema.ts +0 -12
  473. package/studio/server/api/views.ts +0 -57
  474. package/studio/server/api/workspace.ts +0 -60
  475. package/studio/server/api-agent-loadout.test.ts +0 -69
  476. package/studio/server/api.test.ts +0 -147
  477. package/studio/server/api.ts +0 -34
  478. package/studio/server/cache.test.ts +0 -122
  479. package/studio/server/cache.ts +0 -303
  480. package/studio/server/cli-consumers.test.ts +0 -494
  481. package/studio/server/cli.test.ts +0 -88
  482. package/studio/server/cli.ts +0 -240
  483. package/studio/server/client-package.test.ts +0 -147
  484. package/studio/server/client-package.ts +0 -266
  485. package/studio/server/detect.ts +0 -81
  486. package/studio/server/domain.test.ts +0 -77
  487. package/studio/server/domain.ts +0 -124
  488. package/studio/server/environment/dotenv-preview.test.ts +0 -39
  489. package/studio/server/environment/dotenv-preview.ts +0 -27
  490. package/studio/server/environment/files.test.ts +0 -53
  491. package/studio/server/environment/files.ts +0 -120
  492. package/studio/server/handoff/copy.ts +0 -171
  493. package/studio/server/handoff/service.test.ts +0 -22
  494. package/studio/server/handoff/service.ts +0 -62
  495. package/studio/server/index.ts +0 -148
  496. package/studio/server/instances/active.ts +0 -72
  497. package/studio/server/instances/deploy-record.test.ts +0 -31
  498. package/studio/server/instances/deploy-record.ts +0 -37
  499. package/studio/server/instances/deploy.ts +0 -56
  500. package/studio/server/instances/probe.test.ts +0 -67
  501. package/studio/server/instances/probe.ts +0 -67
  502. package/studio/server/instances/status.test.ts +0 -12
  503. package/studio/server/instances/status.ts +0 -49
  504. package/studio/server/introspect/anatomy/client-tree.ts +0 -57
  505. package/studio/server/introspect/anatomy/env-fields.ts +0 -66
  506. package/studio/server/introspect/anatomy/schema-definition.ts +0 -53
  507. package/studio/server/introspect/anatomy/source.ts +0 -181
  508. package/studio/server/introspect/anatomy/views/routes.ts +0 -114
  509. package/studio/server/introspect/anatomy/views.ts +0 -53
  510. package/studio/server/introspect/anatomy-extras.test.ts +0 -265
  511. package/studio/server/introspect/anatomy-extras.ts +0 -10
  512. package/studio/server/introspect/anatomy.test.ts +0 -41
  513. package/studio/server/introspect/anatomy.ts +0 -147
  514. package/studio/server/introspect/bundle.ts +0 -69
  515. package/studio/server/introspect/canonical-schema.test.ts +0 -179
  516. package/studio/server/introspect/canonical-schema.ts +0 -583
  517. package/studio/server/introspect/config-preview.test.ts +0 -32
  518. package/studio/server/introspect/config-preview.ts +0 -119
  519. package/studio/server/introspect/core-extractor.ts +0 -30
  520. package/studio/server/introspect/core.ts +0 -45
  521. package/studio/server/introspect/diff.test.ts +0 -124
  522. package/studio/server/introspect/diff.ts +0 -316
  523. package/studio/server/introspect/extractor.ts +0 -41
  524. package/studio/server/introspect/hash.ts +0 -24
  525. package/studio/server/introspect/overlay-tsmorph.test.ts +0 -146
  526. package/studio/server/introspect/overlay-tsmorph.ts +0 -9
  527. package/studio/server/introspect/overlay.test.ts +0 -44
  528. package/studio/server/introspect/overlay.ts +0 -40
  529. package/studio/server/introspect/revision.test.ts +0 -54
  530. package/studio/server/introspect/revision.ts +0 -49
  531. package/studio/server/introspect/runtime.test.ts +0 -157
  532. package/studio/server/introspect/runtime.ts +0 -140
  533. package/studio/server/introspect/schema-ir-json.test.ts +0 -70
  534. package/studio/server/introspect/schema-ir-json.ts +0 -151
  535. package/studio/server/introspect/schema-refs.test.ts +0 -55
  536. package/studio/server/introspect/schema-refs.ts +0 -32
  537. package/studio/server/introspect/source-overlay/annotations.ts +0 -14
  538. package/studio/server/introspect/source-overlay/handlers.ts +0 -161
  539. package/studio/server/introspect/source-overlay/kernel-calls.ts +0 -46
  540. package/studio/server/introspect/source-overlay/project.ts +0 -248
  541. package/studio/server/introspect/source-overlay/spans.ts +0 -330
  542. package/studio/server/json.ts +0 -46
  543. package/studio/server/lifecycle.ts +0 -42
  544. package/studio/server/sse.test.ts +0 -26
  545. package/studio/server/sse.ts +0 -60
  546. package/studio/server/state/baseline.test.ts +0 -267
  547. package/studio/server/state/baseline.ts +0 -354
  548. package/studio/server/state/comments.test.ts +0 -94
  549. package/studio/server/state/comments.ts +0 -484
  550. package/studio/server/state/context.ts +0 -199
  551. package/studio/server/state/documents.ts +0 -111
  552. package/studio/server/state/integrations.ts +0 -81
  553. package/studio/server/state/layout.test.ts +0 -34
  554. package/studio/server/state/layout.ts +0 -82
  555. package/studio/server/state/settings.test.ts +0 -78
  556. package/studio/server/state/settings.ts +0 -73
  557. package/studio/server/state/store.test.ts +0 -122
  558. package/studio/server/state/store.ts +0 -146
  559. package/studio/server/state/visibility.ts +0 -48
  560. package/studio/server/views/model.test.ts +0 -57
  561. package/studio/server/views/model.ts +0 -66
  562. package/studio/server/views/runtime.ts +0 -40
  563. package/studio/server/views/selection-repository.test.ts +0 -31
  564. package/studio/server/views/selection-repository.ts +0 -60
  565. package/studio/server/views/session.test.ts +0 -73
  566. package/studio/server/views/session.ts +0 -166
  567. package/studio/server/views/target.test.ts +0 -78
  568. package/studio/server/views/target.ts +0 -222
  569. package/studio/server/watch.test.ts +0 -36
  570. package/studio/server/watch.ts +0 -93
  571. package/studio/server/workspace/catalog.test.ts +0 -17
  572. package/studio/server/workspace/catalog.ts +0 -43
  573. package/studio/server/workspace/create.test.ts +0 -37
  574. package/studio/server/workspace/create.ts +0 -162
  575. package/studio/server/workspace/git.ts +0 -75
  576. package/studio/server/workspace/updates.ts +0 -83
  577. package/studio/server/workspace-state.ts +0 -26
  578. package/studio/server/workspace-watch.ts +0 -106
  579. package/studio/shared/agent-effort.test.ts +0 -12
  580. package/studio/shared/agent-effort.ts +0 -15
  581. package/studio/shared/agent-models.test.ts +0 -9
  582. package/studio/shared/agent-models.ts +0 -14
  583. package/studio/shared/contracts/README.md +0 -16
  584. package/studio/shared/contracts/agent.ts +0 -270
  585. package/studio/shared/contracts/runtime.ts +0 -50
  586. package/studio/shared/contracts/schema.ts +0 -393
  587. package/studio/shared/contracts/surface.test.ts +0 -317
  588. package/studio/shared/contracts/workspace.ts +0 -265
  589. package/studio/shared/layout.test.ts +0 -116
  590. package/studio/shared/schema/identity.test.ts +0 -34
  591. package/studio/shared/schema/identity.ts +0 -68
  592. package/studio/shared/settings-values.test.ts +0 -18
  593. package/studio/shared/settings-values.ts +0 -20
  594. package/studio/shared/types.ts +0 -14
  595. package/studio/tsconfig.json +0 -23
  596. package/tsconfig.json +0 -14
  597. package/viewer/dist/index.html +0 -93
  598. package/viewer/dist/main.js +0 -76
  599. package/viewer/tsconfig.json +0 -13
@@ -1,265 +0,0 @@
1
- /**
2
- * Shared workspace and persisted-state contracts.
3
- *
4
- * This module owns the JSON shapes written below `.domain-studio/` and the
5
- * workspace summaries derived around them. Server stores consume these types;
6
- * they do not redeclare the persisted state.
7
- */
8
-
9
- import type { SchemaRevision } from './schema'
10
-
11
- /** A kernel instance the CLI knows about (a local bookmark or an admin-managed one). */
12
- export interface InstanceInfo {
13
- name: string
14
- url: string
15
- active: boolean
16
- kind: 'bookmark' | 'managed'
17
- }
18
-
19
- /** Global (NOT per-domain) — the CLI's instances + which is active. Source of truth: `astrale instance list`. */
20
- export interface InstancesState {
21
- active: string | null
22
- instances: InstanceInfo[]
23
- }
24
-
25
- /** What the studio recorded the last time it ran a deploy for this domain. */
26
- export interface DeployRecord {
27
- at: string
28
- /** UI/cache fingerprint recorded by Studio; not a canonical schema revision. */
29
- renderFingerprint: string
30
- ok: boolean
31
- url?: string
32
- }
33
-
34
- /** Per-domain deploy/install state (the active instance is global — see InstancesState). */
35
- export interface InstanceStatus {
36
- /** the domain's configured deploy target (astrale.config.ts prod.instance) */
37
- deployTarget: string | null
38
- /** has a `prod` script → deployable via `pnpm prod` */
39
- deployable: boolean
40
- /** GROUND TRUTH — queried from `astrale introspect <origin> --bundle`, not local state.
41
- * 'unknown' = the instance couldn't be reached/queried (no target, not authed, offline). */
42
- install: 'installed' | 'not-installed' | 'unknown'
43
- /** local schema vs the schema actually INSTALLED on the instance (ground truth) */
44
- drift: 'in-sync' | 'drifted' | 'unknown'
45
- /** Canonical revisions compared only after local and installed SDK admission. */
46
- localRevision: SchemaRevision | null
47
- installedRevision: SchemaRevision | null
48
- /** the studio's own last deploy — supplementary (service URL / when), not the source of truth */
49
- lastDeploy: DeployRecord | null
50
- }
51
-
52
- export interface DeployResult {
53
- ok: boolean
54
- url: string | null
55
- output: string
56
- }
57
-
58
- export type ThreadRole = 'user' | 'author'
59
- export type ThreadEntryType = 'text' | 'choice'
60
-
61
- export interface ThreadEntry {
62
- id: string
63
- role: ThreadRole
64
- type: ThreadEntryType
65
- text: string
66
- options?: string[]
67
- answer?: string | null
68
- }
69
-
70
- export type AnchorKind = 'schema' | 'section' | 'file' | 'free'
71
-
72
- export interface AnchorRef {
73
- ref: string
74
- kind: AnchorKind
75
- file?: string
76
- startLine?: number
77
- endLine?: number
78
- label?: string
79
- /** Flow-canvas coordinates for section-level canvas comments. */
80
- x?: number
81
- y?: number
82
- }
83
-
84
- export interface Comment {
85
- id: string
86
- /** annotate-compatible: array of string excerpts */
87
- anchors: string[]
88
- /** studio-only, index-aligned to `anchors` */
89
- anchorRefs: AnchorRef[]
90
- status: 'open' | 'closed'
91
- closeNote?: string
92
- thread: ThreadEntry[]
93
- createdAt: string
94
- /** derived: a thread whose first entry is role:'author' is a question */
95
- kind: 'comment' | 'question'
96
- /** set when the anchor ref no longer resolves against the current schema */
97
- orphaned?: boolean
98
- }
99
-
100
- export interface CommentStore {
101
- /** Historical annotate wire key; contains Studio's render fingerprint. */
102
- schemaVersion: string
103
- comments: Comment[]
104
- }
105
-
106
- export interface MergeResult {
107
- merged: number
108
- closed: number
109
- unknownIds: string[]
110
- schemaMismatch: boolean
111
- pastedSchemaVersion?: string
112
- }
113
-
114
- export type SchemaChangeKind =
115
- | 'schema-metadata-changed'
116
- | 'import-added'
117
- | 'import-removed'
118
- | 'import-changed'
119
- | 'class-added'
120
- | 'class-removed'
121
- | 'class-contract-changed'
122
- | 'edge-added'
123
- | 'edge-removed'
124
- | 'edge-contract-changed'
125
- | 'definition-metadata-changed'
126
- | 'prop-added'
127
- | 'prop-removed'
128
- | 'prop-type-changed'
129
- | 'prop-schema-changed'
130
- | 'prop-required-changed'
131
- | 'method-added'
132
- | 'method-removed'
133
- | 'method-signature-changed'
134
- | 'method-metadata-changed'
135
- | 'function-added'
136
- | 'function-removed'
137
- | 'function-signature-changed'
138
- | 'function-metadata-changed'
139
- | 'view-added'
140
- | 'view-removed'
141
- | 'view-changed'
142
- | 'view-metadata-changed'
143
- | 'policy-added'
144
- | 'policy-removed'
145
- | 'policy-changed'
146
- | 'dependency-added'
147
- | 'dependency-removed'
148
- | 'dependency-changed'
149
- | 'core-changed'
150
-
151
- export interface SchemaChange {
152
- kind: SchemaChangeKind
153
- target: string
154
- detail?: string
155
- }
156
-
157
- export interface FileChange {
158
- file: string
159
- status: 'added' | 'modified' | 'removed'
160
- }
161
-
162
- export interface ChangeSet {
163
- source: 'baseline' | 'git'
164
- hasGit: boolean
165
- hasBaseline: boolean
166
- schemaChanges: SchemaChange[]
167
- fileChanges: FileChange[]
168
- schemaDiffText?: string
169
- /** Describes Studio-observed structure only; never a Runtime migration verdict. */
170
- structuralStatus: 'none' | 'changed'
171
- baselineRevision?: SchemaRevision
172
- currentRevision?: SchemaRevision
173
- baselineCapturedAt?: string
174
- }
175
-
176
- export interface ContextItem {
177
- id: string
178
- bucket: 'user' | 'auto'
179
- title: string
180
- body: string
181
- source?: string
182
- updatedAt: string
183
- /** auto items: included in the copy payload only when true */
184
- includeInHandoff?: boolean
185
- freshness?: string
186
- }
187
-
188
- export interface ContextStore {
189
- user: ContextItem[]
190
- auto: ContextItem[]
191
- }
192
-
193
- /** A document the user drops in as context for the AI agent. */
194
- export interface DocMeta {
195
- id: string
196
- name: string
197
- type: string
198
- size: number
199
- addedAt: string
200
- updatedAt?: string
201
- /** relative path under the dotted folder (server-side) */
202
- stored: string
203
- }
204
-
205
- export interface Integration {
206
- id: string
207
- name: string
208
- kind: string
209
- status: 'planned' | 'active' | 'deprecated' | string
210
- notes?: string
211
- }
212
-
213
- export interface IntegrationsState {
214
- integrations: Integration[]
215
- detectedSubfolders: string[]
216
- }
217
-
218
- /** A domain in the catalog — local to this workspace, a faked external service, or the kernel. */
219
- export interface DomainCatalogEntry {
220
- origin: string
221
- name: string
222
- kind: 'kernel' | 'local' | 'external'
223
- description: string
224
- /** raw lucide-style SVG icon (stroke="currentColor") */
225
- icon: string
226
- /** kernel is always present + required */
227
- required?: boolean
228
- }
229
-
230
- export interface DomainSummary {
231
- id: string
232
- origin: string
233
- path: string
234
- schemaDir: string
235
- depsInstalled: boolean
236
- hasGit: boolean
237
- configFile: string
238
- }
239
-
240
- export interface CopyPayload {
241
- markdown: string
242
- openComments: number
243
- }
244
-
245
- export interface NodePosition {
246
- x: number
247
- y: number
248
- /** persisted size — only expanded module containers carry one. */
249
- w?: number
250
- h?: number
251
- }
252
-
253
- /** Persisted manual graph layout. This is the sole authority for its JSON shape. */
254
- export interface LayoutState {
255
- renderFingerprint?: string
256
- positions: Record<string, NodePosition>
257
- }
258
-
259
- /** Persisted per-domain canvas visibility. This is the sole authority for its JSON shape. */
260
- export interface VisibilityState {
261
- /** Refs hidden on the canvas: `class.X` | `edge.X` | `domain.<origin>`. */
262
- hidden: Record<string, true>
263
- /** Whether local Class inheritance edges are rendered. */
264
- showInheritedEdges: boolean
265
- }
@@ -1,116 +0,0 @@
1
- import { expect, test } from 'bun:test'
2
- import { readdirSync, readFileSync, statSync } from 'node:fs'
3
- import { dirname, join, relative, resolve } from 'node:path'
4
-
5
- const STUDIO_ROOT = resolve(import.meta.dir, '..')
6
- const CLIENT_ROOT = join(STUDIO_ROOT, 'client', 'src')
7
- const SERVER_ROOT = join(STUDIO_ROOT, 'server')
8
- const SHARED_ROOT = join(STUDIO_ROOT, 'shared')
9
- const STATE_ROOT = join(SERVER_ROOT, 'state')
10
-
11
- function productionFiles(dir: string): string[] {
12
- return readdirSync(dir)
13
- .flatMap((entry) => {
14
- const path = join(dir, entry)
15
- if (statSync(path).isDirectory()) return productionFiles(path)
16
- if (!/\.(?:ts|tsx)$/.test(path) || /\.test\.(?:ts|tsx)$/.test(path)) return []
17
- return [path]
18
- })
19
- .sort()
20
- }
21
-
22
- const files = [
23
- ...productionFiles(CLIENT_ROOT),
24
- ...productionFiles(SERVER_ROOT),
25
- ...productionFiles(SHARED_ROOT),
26
- ]
27
- const fileSet = new Set(files)
28
-
29
- function resolveLocalImport(file: string, specifier: string): string | null {
30
- const target = specifier.startsWith('@/')
31
- ? join(CLIENT_ROOT, specifier.slice(2))
32
- : specifier.startsWith('@shared/')
33
- ? join(SHARED_ROOT, specifier.slice('@shared/'.length))
34
- : specifier.startsWith('.')
35
- ? resolve(dirname(file), specifier)
36
- : null
37
- if (!target) return null
38
- for (const candidate of [
39
- target,
40
- `${target}.ts`,
41
- `${target}.tsx`,
42
- join(target, 'index.ts'),
43
- join(target, 'index.tsx'),
44
- ]) {
45
- if (fileSet.has(candidate)) return candidate
46
- }
47
- return null
48
- }
49
-
50
- function imports(file: string): string[] {
51
- const source = readFileSync(file, 'utf8')
52
- const found: string[] = []
53
- const pattern = /(?:from\s+|import\s*(?:\(\s*)?)['"]([^'"]+)['"]\s*\)?|import\s+['"]([^'"]+)['"]/g
54
- for (const match of source.matchAll(pattern)) {
55
- const target = resolveLocalImport(file, match[1] ?? match[2])
56
- if (target) found.push(target)
57
- }
58
- return found
59
- }
60
-
61
- const studioPath = (file: string) => relative(STUDIO_ROOT, file).replaceAll('\\', '/')
62
-
63
- test('Studio production modules form an acyclic dependency graph', () => {
64
- const graph = new Map(files.map((file) => [file, imports(file)]))
65
- const visiting = new Set<string>()
66
- const visited = new Set<string>()
67
- const stack: string[] = []
68
- const cycles: string[][] = []
69
-
70
- const visit = (file: string) => {
71
- if (visiting.has(file)) {
72
- const start = stack.indexOf(file)
73
- cycles.push([...stack.slice(start), file].map(studioPath))
74
- return
75
- }
76
- if (visited.has(file)) return
77
- visiting.add(file)
78
- stack.push(file)
79
- for (const dependency of graph.get(file) ?? []) visit(dependency)
80
- stack.pop()
81
- visiting.delete(file)
82
- visited.add(file)
83
- }
84
-
85
- for (const file of files) visit(file)
86
- expect(cycles).toEqual([])
87
- })
88
-
89
- test('production boundaries keep client/shared out of server and shared out of client', () => {
90
- const violations = files.flatMap((file) =>
91
- imports(file)
92
- .filter(
93
- (dependency) =>
94
- (dependency.startsWith(SERVER_ROOT) &&
95
- (file.startsWith(CLIENT_ROOT) || file.startsWith(SHARED_ROOT))) ||
96
- (file.startsWith(SHARED_ROOT) && dependency.startsWith(CLIENT_ROOT)),
97
- )
98
- .map((dependency) => `${studioPath(file)} -> ${studioPath(dependency)}`),
99
- )
100
- expect(violations).toEqual([])
101
- })
102
-
103
- test('state repositories do not depend on workflow modules', () => {
104
- const workflowRoots = ['api', 'environment', 'handoff', 'instances', 'views', 'workspace'].map(
105
- (directory) => join(SERVER_ROOT, directory),
106
- )
107
- const edges = files
108
- .filter((file) => file.startsWith(STATE_ROOT))
109
- .flatMap((file) =>
110
- imports(file)
111
- .filter((dependency) => workflowRoots.some((root) => dependency.startsWith(root)))
112
- .map((dependency) => `${studioPath(file)} -> ${studioPath(dependency)}`),
113
- )
114
-
115
- expect(edges).toEqual([])
116
- })
@@ -1,34 +0,0 @@
1
- import { describe, expect, test } from 'bun:test'
2
-
3
- import {
4
- classRefKey,
5
- isIrClassRef,
6
- isIrSchemaRef,
7
- parseClassRefKey,
8
- parseSchemaRefKey,
9
- schemaRefKey,
10
- } from './identity'
11
-
12
- describe('schema identity', () => {
13
- test('round-trips exact Class identity', () => {
14
- const ref = { origin: 'docs.example.dev', kind: 'class' as const, name: 'Document' }
15
- expect(classRefKey(ref)).toBe('docs.example.dev:class.Document')
16
- expect(parseClassRefKey(classRefKey(ref))).toEqual(ref)
17
- expect(isIrClassRef(ref)).toBe(true)
18
- })
19
-
20
- test('preserves all supported schema reference kinds', () => {
21
- const ref = { origin: 'docs.example.dev', kind: 'function' as const, name: 'search' }
22
- expect(schemaRefKey(ref)).toBe('docs.example.dev:function.search')
23
- expect(parseSchemaRefKey(schemaRefKey(ref))).toEqual(ref)
24
- expect(isIrSchemaRef(ref)).toBe(true)
25
- })
26
-
27
- test('rejects removed Interface coordinates and malformed keys', () => {
28
- expect(isIrSchemaRef({ origin: 'docs.example.dev', kind: 'interface', name: 'Named' })).toBe(
29
- false,
30
- )
31
- expect(parseSchemaRefKey('docs.example.dev:interface.Named')).toBeUndefined()
32
- expect(parseClassRefKey('docs.example.dev:function.search')).toBeUndefined()
33
- })
34
- })
@@ -1,68 +0,0 @@
1
- /**
2
- * Canonical Studio identity for DomainSchema references.
3
- *
4
- * These helpers validate and encode only the structural wire coordinate. SDK
5
- * admission remains the authority for whether a reference is semantically valid.
6
- */
7
-
8
- export const IR_SCHEMA_REF_KINDS = ['class', 'function', 'policy', 'view', 'core'] as const
9
-
10
- export type IrSchemaRefKind = (typeof IR_SCHEMA_REF_KINDS)[number]
11
-
12
- /** Exact structural coordinate embedded in a canonical DomainSchema V1 root. */
13
- export interface IrSchemaRef {
14
- origin: string
15
- kind: IrSchemaRefKind
16
- name: string
17
- }
18
-
19
- /** Canonical DSL key for a schema member: `origin:kind.name`. */
20
- export type IrSchemaKey = `${string}:${IrSchemaRefKind}.${string}`
21
-
22
- export type IrClassRef = Omit<IrSchemaRef, 'kind'> & { kind: 'class' }
23
-
24
- export type IrClassKey = `${string}:class.${string}`
25
-
26
- const schemaKinds = new Set<string>(IR_SCHEMA_REF_KINDS)
27
- const schemaKeyPattern = /^(.+):(class|function|policy|view|core)\.(.+)$/
28
-
29
- /** Structural guard only; it deliberately does not perform SDK admission. */
30
- export function isIrSchemaRef(value: unknown): value is IrSchemaRef {
31
- if (!value || typeof value !== 'object') return false
32
- const ref = value as Partial<IrSchemaRef>
33
- return (
34
- typeof ref.origin === 'string' &&
35
- typeof ref.name === 'string' &&
36
- typeof ref.kind === 'string' &&
37
- schemaKinds.has(ref.kind)
38
- )
39
- }
40
-
41
- export function isIrClassRef(value: unknown): value is IrClassRef {
42
- return isIrSchemaRef(value) && value.kind === 'class'
43
- }
44
-
45
- export function schemaRefKey(ref: IrSchemaRef): IrSchemaKey {
46
- return `${ref.origin}:${ref.kind}.${ref.name}`
47
- }
48
-
49
- export function classRefKey(ref: IrClassRef): IrClassKey {
50
- return `${ref.origin}:${ref.kind}.${ref.name}`
51
- }
52
-
53
- /** Parse a canonical key without asserting that the referenced member exists. */
54
- export function parseSchemaRefKey(value: unknown): IrSchemaRef | undefined {
55
- if (typeof value !== 'string') return undefined
56
- const match = schemaKeyPattern.exec(value)
57
- if (!match) return undefined
58
- return {
59
- origin: match[1],
60
- kind: match[2] as IrSchemaRefKind,
61
- name: match[3],
62
- }
63
- }
64
-
65
- export function parseClassRefKey(value: unknown): IrClassRef | undefined {
66
- const ref = parseSchemaRefKey(value)
67
- return ref && isIrClassRef(ref) ? ref : undefined
68
- }
@@ -1,18 +0,0 @@
1
- import { expect, test } from 'bun:test'
2
-
3
- import { parseStudioNumericSetting } from './settings-values'
4
-
5
- test('accepts bounded integer Studio timing settings', () => {
6
- expect(parseStudioNumericSetting('instancePollMs', '1000')).toBe(1000)
7
- expect(parseStudioNumericSetting('instancePollMs', 3_600_000)).toBe(3_600_000)
8
- })
9
-
10
- test('rejects blank, fractional, non-finite, and out-of-range Studio timing settings', () => {
11
- expect(parseStudioNumericSetting('instancePollMs', '')).toBeNull()
12
- expect(parseStudioNumericSetting('instancePollMs', 999)).toBeNull()
13
- expect(parseStudioNumericSetting('instancePollMs', 1_000.5)).toBeNull()
14
- expect(parseStudioNumericSetting('instancePollMs', Number.POSITIVE_INFINITY)).toBeNull()
15
- expect(parseStudioNumericSetting('instancePollMs', 3_600_001)).toBeNull()
16
- expect(parseStudioNumericSetting('instancePollMs', [1_000])).toBeNull()
17
- expect(parseStudioNumericSetting('instancePollMs', { valueOf: () => 1_000 })).toBeNull()
18
- })
@@ -1,20 +0,0 @@
1
- export const STUDIO_NUMERIC_LIMITS = {
2
- introspectTimeoutMs: { min: 250, max: 300_000 },
3
- instancePollMs: { min: 1_000, max: 3_600_000 },
4
- updatesPollMs: { min: 10_000, max: 86_400_000 },
5
- viewProbeTimeoutMs: { min: 250, max: 120_000 },
6
- } as const
7
-
8
- export type NumericStudioSetting = keyof typeof STUDIO_NUMERIC_LIMITS
9
-
10
- /** Parse one user/disk numeric setting without permitting destructive intervals. */
11
- export function parseStudioNumericSetting(
12
- key: NumericStudioSetting,
13
- value: unknown,
14
- ): number | null {
15
- if (typeof value !== 'number' && typeof value !== 'string') return null
16
- if (typeof value === 'string' && !value.trim()) return null
17
- const parsed = typeof value === 'number' ? value : Number(value)
18
- const { min, max } = STUDIO_NUMERIC_LIMITS[key]
19
- return Number.isInteger(parsed) && parsed >= min && parsed <= max ? parsed : null
20
- }
@@ -1,14 +0,0 @@
1
- /**
2
- * Compatibility facade for the contracts shared by Studio's Bun server and
3
- * React client.
4
- *
5
- * Semantic ownership lives in `contracts/` and `schema/identity.ts`. Existing
6
- * `@shared/types` consumers intentionally keep the same public surface while
7
- * new code may import its owning contract directly.
8
- */
9
-
10
- export * from './schema/identity'
11
- export * from './contracts/schema'
12
- export * from './contracts/workspace'
13
- export * from './contracts/agent'
14
- export * from './contracts/runtime'
@@ -1,23 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ESNext",
4
- "module": "ESNext",
5
- "moduleResolution": "bundler",
6
- "lib": ["ESNext", "DOM", "DOM.Iterable"],
7
- "jsx": "react-jsx",
8
- "strict": true,
9
- "noUnusedLocals": false,
10
- "noUnusedParameters": false,
11
- "esModuleInterop": true,
12
- "skipLibCheck": true,
13
- "allowImportingTsExtensions": true,
14
- "verbatimModuleSyntax": false,
15
- "noEmit": true,
16
- "types": ["bun-types", "node"],
17
- "paths": {
18
- "@/*": ["./client/src/*"],
19
- "@shared/*": ["./shared/*"]
20
- }
21
- },
22
- "include": ["server", "shared", "client/src", "e2e", "playwright.config.ts", "vite.config.ts"]
23
- }
package/tsconfig.json DELETED
@@ -1,14 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ESNext",
4
- "module": "ESNext",
5
- "moduleResolution": "bundler",
6
- "esModuleInterop": true,
7
- "strict": true,
8
- "skipLibCheck": true,
9
- "noEmit": true,
10
- "types": ["@types/bun", "@types/node"]
11
- },
12
- "include": ["bin", "src"],
13
- "exclude": ["templates", "**/__tests__/**", "src/lib/view/open-intent.ts"]
14
- }
@@ -1,93 +0,0 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <title>astrale view</title>
7
- <style>
8
- :root {
9
- color-scheme: dark light;
10
- }
11
- * {
12
- margin: 0;
13
- padding: 0;
14
- box-sizing: border-box;
15
- }
16
- html,
17
- body {
18
- height: 100%;
19
- }
20
- body {
21
- display: flex;
22
- flex-direction: column;
23
- font:
24
- 12px ui-monospace,
25
- SFMono-Regular,
26
- Menlo,
27
- monospace;
28
- background: #101014;
29
- color: #c8c8d0;
30
- }
31
- header {
32
- display: flex;
33
- gap: 12px;
34
- align-items: center;
35
- padding: 6px 10px;
36
- border-bottom: 1px solid #26262e;
37
- flex: none;
38
- }
39
- #status-dot {
40
- width: 8px;
41
- height: 8px;
42
- border-radius: 50%;
43
- background: #8a8a94;
44
- flex: none;
45
- }
46
- #status-dot[data-state='connected'] {
47
- background: #3fb950;
48
- }
49
- #status-dot[data-state='plain'] {
50
- background: #d29922;
51
- }
52
- #status-dot[data-state='failed'] {
53
- background: #f85149;
54
- }
55
- #view-label {
56
- font-weight: 600;
57
- color: #e8e8f0;
58
- }
59
- .dim {
60
- color: #7a7a86;
61
- }
62
- #error {
63
- display: none;
64
- padding: 10px;
65
- color: #f85149;
66
- white-space: pre-wrap;
67
- flex: none;
68
- }
69
- #frame {
70
- flex: 1;
71
- position: relative;
72
- }
73
- #frame iframe {
74
- position: absolute;
75
- inset: 0;
76
- width: 100%;
77
- height: 100%;
78
- border: 0;
79
- }
80
- </style>
81
- </head>
82
- <body>
83
- <header>
84
- <span id="status-dot" data-state="waiting"></span>
85
- <span id="view-label"></span>
86
- <span id="target-label" class="dim"></span>
87
- <span id="identity-label" class="dim" style="margin-left: auto"></span>
88
- </header>
89
- <div id="error"></div>
90
- <div id="frame"></div>
91
- <script type="module" src="./main.js"></script>
92
- </body>
93
- </html>