@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,393 +0,0 @@
1
- /**
2
- * Shared schema and introspection contracts.
3
- *
4
- * Studio's IR remains a lossy render projection. Canonical reference identity
5
- * is owned by `../schema/identity`; SDK admission owns schema semantics.
6
- */
7
-
8
- import type { IrClassKey, IrClassRef, IrSchemaRef } from '../schema/identity'
9
-
10
- export interface JsonSchema {
11
- type?: string | string[]
12
- enum?: (string | number | boolean | null)[]
13
- properties?: Record<string, JsonSchema>
14
- required?: string[]
15
- items?: JsonSchema
16
- additionalProperties?: boolean
17
- minimum?: number
18
- maximum?: number
19
- format?: string
20
- description?: string
21
- $nodeRef?: unknown
22
- $dataRef?: unknown
23
- [k: string]: unknown
24
- }
25
-
26
- export type MethodInheritance = 'default' | 'abstract' | 'sealed'
27
-
28
- /** Portable form of the DSL-owned canonical schema revision. */
29
- export type SchemaRevision = `sha256:${string}`
30
-
31
- /** Wire-format check only; SDK admission remains the semantic proof. */
32
- export function isSchemaRevision(value: unknown): value is SchemaRevision {
33
- return typeof value === 'string' && /^sha256:[0-9a-f]{64}$/.test(value)
34
- }
35
-
36
- /**
37
- * Version of Studio's lossy canonical-schema -> render-IR projection. Persisted
38
- * baselines must match this value before their IR can be compared.
39
- */
40
- export const STUDIO_SCHEMA_PROJECTION_VERSION = 1
41
-
42
- export type IrCallableAuth = 'anonymous' | 'authenticated' | 'authorized'
43
-
44
- export type IrCallableOutput =
45
- | { mode: 'value'; schema: JsonSchema }
46
- | { mode: 'stream'; item: JsonSchema }
47
- | { mode: 'binary' }
48
-
49
- export interface IrCallable {
50
- name: string
51
- input: JsonSchema
52
- output: IrCallableOutput
53
- description?: string
54
- auth?: IrCallableAuth
55
- policy?: unknown
56
- }
57
-
58
- export interface IrMethod extends IrCallable {
59
- static: boolean
60
- inheritance: MethodInheritance
61
- }
62
-
63
- /** Standalone DSL callable projected without inventing a receiver. */
64
- export interface IrFunction extends IrCallable {}
65
-
66
- export interface IrEndpoint {
67
- name: string
68
- types: string[]
69
- /** Exact accepted Definition coordinates. `types` is the local display projection. */
70
- refs?: IrSchemaRef[]
71
- /** declared multiplicity for this end; max:null = unbounded ("many"). Absent ⇒ unconstrained. */
72
- cardinality?: { min: number; max: number | null }
73
- }
74
-
75
- export interface IrClass {
76
- type: 'node' | 'edge'
77
- name: string
78
- origin: string
79
- ref: IrClassRef
80
- extends?: string[]
81
- extendsRefs?: IrClassRef[]
82
- /** edges only: the two (source,target) endpoints with role names + allowed types */
83
- endpoints?: IrEndpoint[]
84
- orientation?: 'directed' | 'undirected'
85
- constraints?: { noSelf?: true; acyclic?: true }
86
- properties: Record<string, JsonSchema>
87
- /** Canonical `properties.required`; absence, unlike null, encodes optionality. */
88
- required?: string[]
89
- methods: Record<string, IrMethod>
90
- /** class-level icon: raw (lucide-style) SVG markup, `stroke="currentColor"` */
91
- icon?: string
92
- description?: string
93
- propertyMetadata?: Record<string, unknown>
94
- /** Canonical data declaration; `mediaType` is required and extensions stay lossless. */
95
- data?: { mediaType: string; [key: string]: unknown }
96
- policies?: Record<string, IrSchemaRef>
97
- }
98
-
99
- export interface IrImportDescriptor {
100
- origin: string
101
- ref: IrClassRef
102
- key: IrClassKey
103
- }
104
-
105
- export type IrViewTarget = { kind: 'domain' } | { kind: 'definition'; definitions: IrSchemaRef[] }
106
-
107
- export interface IrView {
108
- name: string
109
- target: IrViewTarget
110
- auth: 'required' | 'optional' | 'public'
111
- description?: string
112
- }
113
-
114
- export interface SchemaIR {
115
- format: 'astrale.dsl'
116
- version: string
117
- domain: string
118
- classes: Record<string, IrClass>
119
- importsByKey: Record<IrClassKey, IrImportDescriptor>
120
- importedClassesByKey: Record<IrClassKey, IrClass>
121
- functions: Record<string, IrFunction>
122
- views: Record<string, IrView>
123
- policies: Record<string, unknown>
124
- dependencies: Array<{ origin: string; revision: string }>
125
- core: unknown
126
- }
127
-
128
- export interface HandlerLink {
129
- owner: string
130
- ownerKind: 'class' | 'function'
131
- kind: 'action' | 'workflow'
132
- method: string
133
- static: boolean
134
- /** The Runtime registry or one modular Action/Workflow file. */
135
- wiringFile?: string
136
- wiringLine?: number
137
- /** the resolved handler file (followed from the `execute` import) */
138
- handlerFile?: string
139
- handlerLine?: number
140
- /** kernel ops detected in the handler (::update, ::link, createNode, …) */
141
- kernelCalls?: string[]
142
- /** false ⇒ a todo()/NotImplemented stub → "contract-only" badge */
143
- implemented: boolean
144
- /** true ⇒ resolver could not link a file → "unlinked" badge */
145
- unlinked?: boolean
146
- }
147
-
148
- export interface SourceSpan {
149
- file: string
150
- startLine: number
151
- endLine: number
152
- doc?: string
153
- }
154
-
155
- export interface SchemaAnnotation {
156
- /** anchor ref key, e.g. 'class.Monitor.property.status' */
157
- target: string
158
- severity: 'warn' | 'info'
159
- code: 'COMPILE_ERROR' | 'EDGE_PROP_TYPE_MISSING'
160
- message: string
161
- }
162
-
163
- export interface CrossDomainImport {
164
- name: string
165
- origin: string
166
- ref: IrClassRef
167
- }
168
-
169
- export interface SchemaOverlay {
170
- origin: string
171
- /** Exact declared Domain dependencies. */
172
- requires: string[]
173
- /** Non-Kernel imported Classes. */
174
- crossDomainImports: CrossDomainImport[]
175
- /** Kernel base Classes rendered as inherited platform facts. */
176
- mixins: CrossDomainImport[]
177
- handlerLinks: HandlerLink[]
178
- /** Keyed by Class, Property, Method, Function, Policy, View, or Core anchor. */
179
- sourceSpans: Record<string, SourceSpan>
180
- annotations: SchemaAnnotation[]
181
- }
182
-
183
- export interface BundleError {
184
- message: string
185
- file?: string
186
- }
187
-
188
- export interface StudioSchemaBundle {
189
- domainId: string
190
- /** UI/cache identity only. This is not the DSL schema revision. */
191
- renderFingerprint: string
192
- schemaMode: 'canonical-admitted' | 'canonical-preview' | 'unavailable'
193
- /** DSL-owned revision, present only after installed SDK admission. */
194
- schemaRevision?: SchemaRevision
195
- extractedBy: 'runtime-bun' | 'static-tsmorph-fallback'
196
- depsInstalled: boolean
197
- ir: SchemaIR | null
198
- /**
199
- * Portable canonical V1 document emitted by the domain. `schemaMode` records
200
- * whether the installed SDK admitted it or Studio is rendering it as a structural
201
- * preview. Kept separate from the lossy render IR.
202
- */
203
- schemaRoot?: unknown
204
- overlay: SchemaOverlay
205
- /** present when the runtime import failed to compile (render state, not a crash) */
206
- error?: BundleError | null
207
- extractedAt: string
208
- }
209
-
210
- export interface DomainOverview {
211
- origin: string
212
- /** Active SDK Application entry relative to the project root. */
213
- applicationFile?: string
214
- adapter: 'astrale' | 'cloudflare' | 'unknown'
215
- prodTarget?: string
216
- devSecrets?: string
217
- requires: string[]
218
- packageName?: string
219
- packageVersion?: string
220
- astraleDeps: Record<string, string>
221
- schemaDir: string
222
- client?: string
223
- }
224
-
225
- export interface ViewInfo {
226
- slug: string
227
- kind: 'inline-html' | 'spa' | 'unknown'
228
- auth?: string
229
- mount?: string
230
- url?: string
231
- /** the class(es) this view binds to via `viewFor: selfOf(Class)` (DSL allows an array);
232
- * absent ⇒ unbound/global */
233
- viewFor?: string | string[]
234
- file?: string
235
- description?: string
236
- }
237
-
238
- /** One node that can be supplied as a targeted view's `targetNodeId`. */
239
- export interface ViewTargetCandidate {
240
- id: string
241
- ref: string
242
- className: string
243
- classOrigin: string
244
- label: string
245
- description?: string
246
- status?: string
247
- }
248
-
249
- /** Small durable snapshot retained when a previously selected node disappears. */
250
- export interface RememberedViewTarget {
251
- id: string
252
- className: string
253
- classOrigin: string
254
- label: string
255
- }
256
-
257
- export interface ViewTargetResult {
258
- status: 'available' | 'unavailable'
259
- items: ViewTargetCandidate[]
260
- selected: ViewTargetCandidate | null
261
- stale: RememberedViewTarget | null
262
- truncated: boolean
263
- reason?: string
264
- }
265
-
266
- /** Full launch context shown before Studio asks `astrale view` to resolve and open the View. */
267
- export interface ViewRuntime {
268
- slug: string
269
- instance: string | null
270
- targetRequired: boolean
271
- targets: ViewTargetResult
272
- }
273
-
274
- export type ViewSessionResult =
275
- | {
276
- status: 'ready'
277
- sessionId: string
278
- pageUrl: string
279
- viewUrl: string
280
- target: ViewTargetCandidate | null
281
- }
282
- | { status: 'unavailable'; reason: string }
283
-
284
- export interface ClientFeature {
285
- name: string
286
- files: string[]
287
- }
288
-
289
- export interface ClientTree {
290
- shell: string[]
291
- features: ClientFeature[]
292
- routes: Record<string, string>
293
- present: boolean
294
- }
295
-
296
- export interface EnvField {
297
- name: string
298
- optional: boolean
299
- doc?: string
300
- secret?: boolean
301
- }
302
-
303
- export type EnvName = 'dev' | 'prod'
304
-
305
- /** One env var in the editor: the env.ts contract side (declared/optional/doc)
306
- * merged with the `.env.<env>` file side (value). A row may be declared-only
307
- * (in env.ts, not yet in the file), set, or an orphan (in the file, not env.ts). */
308
- export interface EnvVarRow {
309
- name: string
310
- /** current value from `.env.<env>` ('' when unset or empty) */
311
- value: string
312
- /** declared as a fillable (non-binding) field in env.ts's Env interface */
313
- declared: boolean
314
- /** env.ts marks it optional (`?`). Only required (!optional) + empty raises the signal. */
315
- optional: boolean
316
- /** JSDoc on the env.ts field — the inline hint */
317
- doc?: string
318
- }
319
-
320
- /** The editable env for one env name (dev|prod): the `.env.<env>` file reconciled
321
- * against env.ts. The GUI is the read-only studio's one sanctioned writer of a
322
- * domain file (the explicit exception). */
323
- export interface EnvFileModel {
324
- env: EnvName
325
- /** the secrets file, relative to the domain root (e.g. '.env.dev') */
326
- file: string
327
- /** wired via `astrale.config.ts` (`secrets: '.env.<env>'`)? false ⇒ the file is used
328
- * by convention but the adapter isn't pointed at it (e.g. managed prod). */
329
- configured: boolean
330
- exists: boolean
331
- adapter: DomainOverview['adapter']
332
- rows: EnvVarRow[]
333
- /** declared && required && empty — the count the "needs values" signal shows */
334
- requiredMissing: number
335
- }
336
-
337
- export interface DomainAnatomy {
338
- overview: DomainOverview
339
- views: ViewInfo[]
340
- client: ClientTree
341
- env: EnvField[]
342
- depsContainer?: string
343
- /** shallow readdir of integrations/ top-level dir names — a hint, NOT a parse */
344
- detectedIntegrations: string[]
345
- }
346
-
347
- /** One materialized node instance in a domain's core graph. */
348
- export interface StudioCoreNode {
349
- /** canonical CoreRef identity, e.g. `/:big-shop.example.dev:core.acme` */
350
- path: string
351
- /** the IR class this node instantiates (keys into StudioSchemaBundle.ir.classes) */
352
- className: string
353
- /** the node's property values, keyed by (possibly owner-qualified) property name */
354
- data: Record<string, unknown>
355
- /** parent node's `path`, when nested under another node (absent for roots) */
356
- parent?: string
357
- }
358
-
359
- /** One materialized edge instance wiring two core nodes. */
360
- export interface StudioCoreEdge {
361
- /** source Core path or owning Domain path */
362
- from: string
363
- /** target Core path or owning Domain path */
364
- to: string
365
- /** the IR edge class name (keys into StudioSchemaBundle.ir.classes, type:'edge') */
366
- edgeName: string
367
- /** edge property values, when the edge class carries data */
368
- data?: Record<string, unknown>
369
- }
370
-
371
- /** A domain's core data: the concrete genesis node/edge instance graph. */
372
- export interface StudioCore {
373
- /** the domain origin this core graph belongs to (mirrors SchemaIR.domain) */
374
- domain: string
375
- nodes: StudioCoreNode[]
376
- edges: StudioCoreEdge[]
377
- /** set when extraction failed; null when extraction succeeded (including "no core defined") */
378
- error?: { message: string } | null
379
- extractedAt: string
380
- }
381
-
382
- /** Client-side rendering description derived from a JSON value schema. */
383
- export type TypeDescriptor =
384
- | { kind: 'string' | 'number' | 'integer' | 'boolean' | 'null' | 'unknown'; optional: boolean }
385
- | { kind: 'enum'; values: (string | number | boolean | null)[]; optional: boolean }
386
- | { kind: 'array'; items: TypeDescriptor; optional: boolean }
387
- | {
388
- kind: 'object'
389
- fields: Record<string, TypeDescriptor>
390
- required: string[]
391
- optional: boolean
392
- }
393
- | { kind: 'ref'; target: string; refKind: 'node' | 'data'; optional: boolean }
@@ -1,317 +0,0 @@
1
- import { expect, test } from 'bun:test'
2
- import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs'
3
- import { dirname, join, relative, resolve } from 'node:path'
4
- import ts from 'typescript'
5
-
6
- const SHARED_ROOT = resolve(import.meta.dir, '..')
7
- const STUDIO_ROOT = resolve(SHARED_ROOT, '..')
8
-
9
- // Closed Studio V1 shared surface. Keeping this manifest independent of Git
10
- // catches accidental aliases and shadow contracts.
11
- const TARGET_BARREL_EXPORTS = [
12
- 'AGENT_ACCESS_LEVELS',
13
- 'AGENT_EFFORT_LEVELS',
14
- 'AgentAccess',
15
- 'AgentEffort',
16
- 'AgentEvent',
17
- 'AgentEventKind',
18
- 'AgentPromptSnapshot',
19
- 'AgentRun',
20
- 'AgentRunSnapshot',
21
- 'AgentRunStatus',
22
- 'AgentSessionInfo',
23
- 'AgentSystemPromptInfo',
24
- 'AnchorKind',
25
- 'AnchorRef',
26
- 'BundleError',
27
- 'ChangeSet',
28
- 'ClientFeature',
29
- 'ClientTree',
30
- 'Comment',
31
- 'CommentStore',
32
- 'ContextItem',
33
- 'ContextStore',
34
- 'ConversationInfo',
35
- 'CopyPayload',
36
- 'CrossDomainImport',
37
- 'DeployRecord',
38
- 'DeployResult',
39
- 'DocMeta',
40
- 'DomainAnatomy',
41
- 'DomainCatalogEntry',
42
- 'DomainOverview',
43
- 'DomainSummary',
44
- 'DomainUsage',
45
- 'EnvField',
46
- 'EnvFileModel',
47
- 'EnvName',
48
- 'EnvVarRow',
49
- 'FileChange',
50
- 'HandlerLink',
51
- 'HarnessCapabilities',
52
- 'HarnessGatewayAuth',
53
- 'HarnessGatewayConfig',
54
- 'HarnessGatewayState',
55
- 'HarnessLoadout',
56
- 'HarnessModelOption',
57
- 'HarnessStatus',
58
- 'InstanceInfo',
59
- 'InstanceStatus',
60
- 'InstancesState',
61
- 'Integration',
62
- 'IntegrationsState',
63
- 'IrCallable',
64
- 'IrCallableAuth',
65
- 'IrCallableOutput',
66
- 'IrClass',
67
- 'IrClassKey',
68
- 'IrClassRef',
69
- 'IrEndpoint',
70
- 'IrFunction',
71
- 'IrImportDescriptor',
72
- 'IrMethod',
73
- 'IrSchemaKey',
74
- 'IrSchemaRef',
75
- 'IrView',
76
- 'IrViewTarget',
77
- 'JsonSchema',
78
- 'LayoutState',
79
- 'LoadoutSkill',
80
- 'McpServerInfo',
81
- 'MergeResult',
82
- 'MethodInheritance',
83
- 'NodePosition',
84
- 'RememberedViewTarget',
85
- 'SchemaAnnotation',
86
- 'SchemaChange',
87
- 'SchemaChangeKind',
88
- 'SchemaIR',
89
- 'SchemaOverlay',
90
- 'SourceSpan',
91
- 'StaleReport',
92
- 'StudioCore',
93
- 'StudioCoreEdge',
94
- 'StudioCoreNode',
95
- 'StudioEvent',
96
- 'StudioSchemaBundle',
97
- 'StudioSettings',
98
- 'ThreadEntry',
99
- 'ThreadEntryType',
100
- 'ThreadRole',
101
- 'TypeDescriptor',
102
- 'ViewInfo',
103
- 'ViewRuntime',
104
- 'ViewSessionResult',
105
- 'ViewTargetCandidate',
106
- 'ViewTargetResult',
107
- 'VisibilityState',
108
- ] as const
109
-
110
- const TARGET_BARREL_HELPERS = [
111
- 'IR_SCHEMA_REF_KINDS',
112
- 'IrSchemaRefKind',
113
- 'STUDIO_SCHEMA_PROJECTION_VERSION',
114
- 'SchemaRevision',
115
- 'classRefKey',
116
- 'isIrClassRef',
117
- 'isIrSchemaRef',
118
- 'isSchemaRevision',
119
- 'parseClassRefKey',
120
- 'parseSchemaRefKey',
121
- 'schemaRefKey',
122
- ] as const
123
-
124
- function productionFiles(dir: string): string[] {
125
- return readdirSync(dir).flatMap((entry) => {
126
- if (entry === 'node_modules') return []
127
- const path = join(dir, entry)
128
- if (statSync(path).isDirectory()) return productionFiles(path)
129
- return /\.(?:ts|tsx)$/.test(path) && !/\.test\.(?:ts|tsx)$/.test(path) ? [path] : []
130
- })
131
- }
132
-
133
- function parseTypeScript(file: string): ts.SourceFile {
134
- return ts.createSourceFile(
135
- file,
136
- readFileSync(file, 'utf8'),
137
- ts.ScriptTarget.Latest,
138
- false,
139
- file.endsWith('.tsx') ? ts.ScriptKind.TSX : ts.ScriptKind.TS,
140
- )
141
- }
142
-
143
- function hasExportModifier(node: ts.Node): boolean {
144
- return Boolean(
145
- ts.canHaveModifiers(node) &&
146
- ts.getModifiers(node)?.some((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword),
147
- )
148
- }
149
-
150
- function bindingNames(name: ts.BindingName): string[] {
151
- if (ts.isIdentifier(name)) return [name.text]
152
- return name.elements.flatMap((element) =>
153
- ts.isOmittedExpression(element) ? [] : bindingNames(element.name),
154
- )
155
- }
156
-
157
- function resolveTypeScriptModule(file: string, specifier: string): string {
158
- const target = resolve(dirname(file), specifier)
159
- const candidate = [target, `${target}.ts`, `${target}.tsx`, join(target, 'index.ts')].find(
160
- existsSync,
161
- )
162
- if (!candidate) throw new Error(`Cannot resolve ${specifier} from ${file}`)
163
- return candidate
164
- }
165
-
166
- function namedExports(file: string, seen = new Set<string>()): string[] {
167
- if (seen.has(file)) return []
168
- seen.add(file)
169
- const names: string[] = []
170
-
171
- for (const statement of parseTypeScript(file).statements) {
172
- if (ts.isExportDeclaration(statement)) {
173
- if (statement.exportClause && ts.isNamedExports(statement.exportClause)) {
174
- names.push(...statement.exportClause.elements.map((element) => element.name.text))
175
- } else if (statement.exportClause && ts.isNamespaceExport(statement.exportClause)) {
176
- names.push(statement.exportClause.name.text)
177
- } else if (
178
- statement.moduleSpecifier &&
179
- ts.isStringLiteral(statement.moduleSpecifier) &&
180
- statement.moduleSpecifier.text.startsWith('.')
181
- ) {
182
- names.push(
183
- ...namedExports(resolveTypeScriptModule(file, statement.moduleSpecifier.text), seen),
184
- )
185
- }
186
- continue
187
- }
188
- if (!hasExportModifier(statement)) continue
189
- if (ts.isVariableStatement(statement)) {
190
- names.push(
191
- ...statement.declarationList.declarations.flatMap(({ name }) => bindingNames(name)),
192
- )
193
- } else if (
194
- (ts.isClassDeclaration(statement) ||
195
- ts.isEnumDeclaration(statement) ||
196
- ts.isFunctionDeclaration(statement) ||
197
- ts.isInterfaceDeclaration(statement) ||
198
- ts.isTypeAliasDeclaration(statement)) &&
199
- statement.name
200
- ) {
201
- names.push(statement.name.text)
202
- }
203
- }
204
- return names
205
- }
206
-
207
- function moduleSpecifiers(file: string): string[] {
208
- const found: string[] = []
209
- const visit = (node: ts.Node): void => {
210
- if (
211
- (ts.isImportDeclaration(node) || ts.isExportDeclaration(node)) &&
212
- node.moduleSpecifier &&
213
- ts.isStringLiteralLike(node.moduleSpecifier)
214
- ) {
215
- found.push(node.moduleSpecifier.text)
216
- } else if (
217
- ts.isImportEqualsDeclaration(node) &&
218
- ts.isExternalModuleReference(node.moduleReference) &&
219
- node.moduleReference.expression &&
220
- ts.isStringLiteralLike(node.moduleReference.expression)
221
- ) {
222
- found.push(node.moduleReference.expression.text)
223
- } else if (
224
- ts.isCallExpression(node) &&
225
- node.arguments.length === 1 &&
226
- ts.isStringLiteralLike(node.arguments[0]!) &&
227
- (node.expression.kind === ts.SyntaxKind.ImportKeyword ||
228
- (ts.isIdentifier(node.expression) && node.expression.text === 'require'))
229
- ) {
230
- found.push(node.arguments[0]!.text)
231
- }
232
- ts.forEachChild(node, visit)
233
- }
234
- visit(parseTypeScript(file))
235
- return found
236
- }
237
-
238
- function declaredTypes(file: string, candidates: ReadonlySet<string>): string[] {
239
- const text = readFileSync(file, 'utf8')
240
- if (![...candidates].some((name) => text.includes(name))) return []
241
- return parseTypeScript(file).statements.flatMap((statement) => {
242
- if (
243
- !ts.isInterfaceDeclaration(statement) &&
244
- !ts.isTypeAliasDeclaration(statement) &&
245
- !ts.isClassDeclaration(statement) &&
246
- !ts.isEnumDeclaration(statement)
247
- ) {
248
- return []
249
- }
250
- const name = statement.name?.text
251
- return name && candidates.has(name) ? [name] : []
252
- })
253
- }
254
-
255
- test('types.ts remains a re-export-only compatibility facade', () => {
256
- const source = parseTypeScript(join(SHARED_ROOT, 'types.ts'))
257
- const exports = source.statements.flatMap((statement) => {
258
- if (
259
- !ts.isExportDeclaration(statement) ||
260
- statement.exportClause ||
261
- !statement.moduleSpecifier ||
262
- !ts.isStringLiteral(statement.moduleSpecifier)
263
- ) {
264
- return []
265
- }
266
- return [statement.moduleSpecifier.text]
267
- })
268
- expect(exports).toEqual([
269
- './schema/identity',
270
- './contracts/schema',
271
- './contracts/workspace',
272
- './contracts/agent',
273
- './contracts/runtime',
274
- ])
275
- expect(source.statements.every(ts.isExportDeclaration)).toBe(true)
276
- })
277
-
278
- test('types.ts exposes exactly the Studio V1 shared surface', () => {
279
- const exports = namedExports(join(SHARED_ROOT, 'types.ts'))
280
- const duplicates = exports.filter((name, index) => exports.indexOf(name) !== index)
281
- const expected = [...TARGET_BARREL_EXPORTS, ...TARGET_BARREL_HELPERS].sort()
282
-
283
- expect(duplicates).toEqual([])
284
- expect(exports.sort()).toEqual(expected)
285
- })
286
-
287
- test('persisted layout and visibility shapes each have one semantic owner', () => {
288
- const files = productionFiles(STUDIO_ROOT)
289
- const names = new Set(['LayoutState', 'VisibilityState'])
290
- const owners = new Map([...names].map((name) => [name, [] as string[]]))
291
- for (const file of files) {
292
- for (const name of declaredTypes(file, names)) {
293
- owners.get(name)!.push(relative(STUDIO_ROOT, file).replaceAll('\\', '/'))
294
- }
295
- }
296
- expect(Object.fromEntries(owners)).toEqual({
297
- LayoutState: ['shared/contracts/workspace.ts'],
298
- VisibilityState: ['shared/contracts/workspace.ts'],
299
- })
300
- })
301
-
302
- test('contract modules follow the documented dependency direction', () => {
303
- const expectedImports = new Map([
304
- ['schema/identity.ts', []],
305
- ['contracts/schema.ts', ['../schema/identity']],
306
- ['contracts/workspace.ts', ['./schema']],
307
- ['contracts/agent.ts', ['./workspace']],
308
- ['contracts/runtime.ts', ['./agent']],
309
- ])
310
-
311
- for (const [file, expected] of expectedImports) {
312
- const imports = moduleSpecifiers(join(SHARED_ROOT, file)).filter((specifier) =>
313
- specifier.startsWith('.'),
314
- )
315
- expect(imports).toEqual(expected)
316
- }
317
- })