@astrale-os/cli 1.0.0-beta.32 → 1.0.0-beta.43
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.
- package/CHANGELOG.md +928 -0
- package/README.md +53 -43
- package/THIRD-PARTY-NOTICES.md +37 -1
- package/dist/astrale.js +349631 -83669
- package/dist/public/connect-core.js +16 -47
- package/dist/public/keys/index.js +1 -1
- package/dist/types/admin/contract.d.ts +11 -0
- package/dist/types/admin/graph/index.d.ts +1 -0
- package/dist/types/admin/graph/nodes.d.ts +12 -0
- package/dist/types/admin/instance/client.d.ts +2 -0
- package/dist/types/connection/lifetime.d.ts +1 -1
- package/dist/types/errors.d.ts +3 -0
- package/dist/types/lib/proc.d.ts +1 -0
- package/dist/types/lib/update.d.ts +15 -7
- package/package.json +8 -6
- package/studio/client/dist/assets/index-5C1uT6ML.css +2 -0
- package/studio/client/dist/assets/index-C4kNlvwF.js +80 -0
- package/studio/client/dist/assets/schema-studio-BR9d0faB.js +8 -0
- package/studio/client/dist/index.html +13 -2
- package/studio/package.json +2 -1
- package/studio/server/agent/ask.test.ts +7 -1
- package/studio/server/agent/bridge/grant.ts +15 -3
- package/studio/server/agent/prompts/system.test.ts +5 -0
- package/studio/server/agent/prompts/system.ts +19 -4
- package/studio/server/agent/routes.test.ts +39 -1
- package/studio/server/agent/routes.ts +3 -0
- package/studio/server/agent/run/coordinator.test.ts +7 -1
- package/studio/server/agent/run/preparation.ts +1 -0
- package/studio/server/agent/run/transcript.test.ts +47 -2
- package/studio/server/agent/run/transcript.ts +32 -3
- package/studio/server/api/documents.test.ts +31 -0
- package/studio/server/api/documents.ts +35 -1
- package/studio/server/api-agent-loadout.test.ts +7 -1
- package/studio/server/api.test.ts +7 -1
- package/studio/server/cache.ts +4 -4
- package/studio/server/detect.ts +9 -12
- package/studio/server/domain.test.ts +83 -3
- package/studio/server/domain.ts +205 -27
- package/studio/server/handoff/service.ts +1 -1
- package/studio/server/index.ts +5 -8
- package/studio/server/introspect/extractor.ts +111 -17
- package/studio/server/introspect/overlay-tsmorph.test.ts +9 -9
- package/studio/server/introspect/overlay.ts +1 -1
- package/studio/server/introspect/runtime.ts +9 -1
- package/studio/server/introspect/source-overlay/spans.ts +2 -5
- package/studio/server/lifecycle.ts +1 -1
- package/studio/server/state/baseline.test.ts +14 -0
- package/studio/server/state/baseline.ts +16 -2
- package/studio/server/watch.test.ts +2 -1
- package/studio/server/watch.ts +5 -2
- package/studio/server/workspace/create.ts +9 -8
- package/studio/server/workspace-state.ts +4 -6
- package/studio/server/workspace-watch.ts +33 -22
- package/studio/shared/contracts/agent.ts +3 -0
- package/viewer/dist/main.js +12 -12
- package/src/__tests__/fixtures/publication.ts +0 -20
- package/src/admin/.spec/api.d.ts +0 -3
- package/src/admin/.spec/architecture.md +0 -22
- package/src/admin/.spec/icon.svg +0 -3
- package/src/admin/.spec/layout.ts +0 -6
- package/src/admin/__tests__/fixture.ts +0 -25
- package/src/admin/catalog/.spec/api.d.ts +0 -63
- package/src/admin/catalog/.spec/architecture.md +0 -7
- package/src/admin/catalog/.spec/icon.svg +0 -3
- package/src/admin/catalog/.spec/layout.ts +0 -6
- package/src/admin/catalog/__tests__/client.test.ts +0 -245
- package/src/admin/catalog/client.ts +0 -195
- package/src/admin/catalog/index.ts +0 -13
- package/src/admin/catalog/model.ts +0 -41
- package/src/admin/catalog/tsconfig.json +0 -8
- package/src/admin/contract.ts +0 -47
- package/src/admin/graph/.spec/api.d.ts +0 -22
- package/src/admin/graph/.spec/architecture.md +0 -5
- package/src/admin/graph/.spec/icon.svg +0 -3
- package/src/admin/graph/.spec/layout.ts +0 -3
- package/src/admin/graph/index.ts +0 -6
- package/src/admin/graph/nodes.ts +0 -56
- package/src/admin/index.ts +0 -2
- package/src/admin/instance/.spec/api.d.ts +0 -62
- package/src/admin/instance/.spec/architecture.md +0 -10
- package/src/admin/instance/.spec/icon.svg +0 -3
- package/src/admin/instance/.spec/layout.ts +0 -6
- package/src/admin/instance/__tests__/client.test.ts +0 -273
- package/src/admin/instance/client.ts +0 -191
- package/src/admin/instance/index.ts +0 -15
- package/src/admin/instance/model.ts +0 -59
- package/src/admin/instance/tsconfig.json +0 -8
- package/src/commands/__tests__/admin-instance.test.ts +0 -91
- package/src/commands/__tests__/auth-login.test.ts +0 -231
- package/src/commands/__tests__/auth-token.test.ts +0 -223
- package/src/commands/__tests__/call-describe.test.ts +0 -80
- package/src/commands/__tests__/call.test.ts +0 -63
- package/src/commands/__tests__/domain-install-operation.test.ts +0 -145
- package/src/commands/__tests__/domain-install-owned.test.ts +0 -191
- package/src/commands/__tests__/domain-list.test.ts +0 -133
- package/src/commands/__tests__/domain-uninstall.test.ts +0 -53
- package/src/commands/__tests__/install-direct.test.ts +0 -128
- package/src/commands/__tests__/install-identity-override.test.ts +0 -76
- package/src/commands/__tests__/instance-bookmark.test.ts +0 -166
- package/src/commands/__tests__/instance-list-admin.test.ts +0 -26
- package/src/commands/__tests__/instance-list-rows.test.ts +0 -64
- package/src/commands/__tests__/instance-status.test.ts +0 -139
- package/src/commands/__tests__/instance-use.test.ts +0 -67
- package/src/commands/__tests__/introspect-parse.test.ts +0 -100
- package/src/commands/__tests__/logs.test.ts +0 -345
- package/src/commands/__tests__/read-commands.test.ts +0 -377
- package/src/commands/__tests__/setup-plan.test.ts +0 -61
- package/src/commands/__tests__/studio-descriptor.test.ts +0 -22
- package/src/commands/__tests__/token-ttl.test.ts +0 -66
- package/src/commands/__tests__/update.test.ts +0 -95
- package/src/commands/__tests__/view-build.test.ts +0 -58
- package/src/commands/__tests__/view.test.ts +0 -197
- package/src/commands/admin/status.ts +0 -61
- package/src/commands/admin/use.ts +0 -100
- package/src/commands/auth/login.ts +0 -82
- package/src/commands/auth/logout.ts +0 -53
- package/src/commands/auth/status.ts +0 -86
- package/src/commands/auth/token.ts +0 -174
- package/src/commands/browser.ts +0 -236
- package/src/commands/call-describe.ts +0 -123
- package/src/commands/call.ts +0 -230
- package/src/commands/domain/install.ts +0 -575
- package/src/commands/domain/list.ts +0 -155
- package/src/commands/domain/publish.ts +0 -136
- package/src/commands/domain/uninstall.ts +0 -128
- package/src/commands/get.ts +0 -69
- package/src/commands/identity/__tests__/register.test.ts +0 -93
- package/src/commands/identity/create.ts +0 -35
- package/src/commands/identity/delete.ts +0 -24
- package/src/commands/identity/export.ts +0 -46
- package/src/commands/identity/import.ts +0 -61
- package/src/commands/identity/list.ts +0 -56
- package/src/commands/identity/register.ts +0 -195
- package/src/commands/identity/sync.ts +0 -38
- package/src/commands/identity/unsync.ts +0 -34
- package/src/commands/identity/use.ts +0 -24
- package/src/commands/identity/whoami.ts +0 -34
- package/src/commands/idp/add.ts +0 -150
- package/src/commands/idp/list.ts +0 -57
- package/src/commands/idp/refresh.ts +0 -38
- package/src/commands/idp/remove.ts +0 -36
- package/src/commands/idp/show.ts +0 -29
- package/src/commands/instance/active.ts +0 -73
- package/src/commands/instance/bookmark.ts +0 -101
- package/src/commands/instance/create.ts +0 -61
- package/src/commands/instance/delete.ts +0 -69
- package/src/commands/instance/forget.ts +0 -26
- package/src/commands/instance/list.ts +0 -197
- package/src/commands/instance/status.ts +0 -92
- package/src/commands/instance/use.ts +0 -263
- package/src/commands/introspect.ts +0 -129
- package/src/commands/logs.ts +0 -371
- package/src/commands/mutate.ts +0 -122
- package/src/commands/query.ts +0 -142
- package/src/commands/session/analyze.ts +0 -72
- package/src/commands/session/list.ts +0 -36
- package/src/commands/setup.ts +0 -54
- package/src/commands/status.ts +0 -60
- package/src/commands/studio.ts +0 -434
- package/src/commands/token.ts +0 -121
- package/src/commands/ui/__tests__/commands.test.ts +0 -152
- package/src/commands/ui/add.ts +0 -51
- package/src/commands/ui/doctor.ts +0 -21
- package/src/commands/ui/init.ts +0 -38
- package/src/commands/ui/list.ts +0 -26
- package/src/commands/ui/preset-apply.ts +0 -19
- package/src/commands/ui/preset-list.ts +0 -12
- package/src/commands/ui/shared.ts +0 -25
- package/src/commands/update.ts +0 -356
- package/src/commands/use.ts +0 -86
- package/src/commands/view-serve.ts +0 -26
- package/src/commands/view.ts +0 -658
- package/src/connect-core.test.ts +0 -38
- package/src/connect-core.ts +0 -42
- package/src/connection/.spec/api.d.ts +0 -110
- package/src/connection/.spec/architecture.md +0 -58
- package/src/connection/.spec/capabilities/connection.ts +0 -13
- package/src/connection/.spec/examples/call.ts +0 -7
- package/src/connection/.spec/flows/command.ts +0 -20
- package/src/connection/.spec/flows/session.ts +0 -62
- package/src/connection/.spec/laws/connection.ts +0 -213
- package/src/connection/.spec/layout.ts +0 -22
- package/src/connection/__tests__/auth.test.ts +0 -129
- package/src/connection/__tests__/ca-fetch.test.ts +0 -60
- package/src/connection/__tests__/call.test.ts +0 -17
- package/src/connection/__tests__/credential.test.ts +0 -254
- package/src/connection/__tests__/errors.test.ts +0 -577
- package/src/connection/__tests__/exchange.test.ts +0 -404
- package/src/connection/__tests__/failure-fixtures.ts +0 -39
- package/src/connection/__tests__/failure-safety.test.ts +0 -75
- package/src/connection/__tests__/fixtures/localhost-cert.pem +0 -19
- package/src/connection/__tests__/fixtures/localhost-key.base64 +0 -1
- package/src/connection/__tests__/managed.test.ts +0 -39
- package/src/connection/__tests__/reasons.test.ts +0 -78
- package/src/connection/__tests__/self.test.ts +0 -71
- package/src/connection/__tests__/session.test.ts +0 -144
- package/src/connection/__tests__/target.test.ts +0 -95
- package/src/connection/auth.ts +0 -265
- package/src/connection/call.ts +0 -7
- package/src/connection/command.ts +0 -67
- package/src/connection/credential.ts +0 -138
- package/src/connection/errors.ts +0 -1
- package/src/connection/exchange.ts +0 -394
- package/src/connection/failure/classify.ts +0 -110
- package/src/connection/failure/index.ts +0 -18
- package/src/connection/failure/model.ts +0 -28
- package/src/connection/failure/render.ts +0 -116
- package/src/connection/index.ts +0 -8
- package/src/connection/lifetime.ts +0 -25
- package/src/connection/reasons.ts +0 -209
- package/src/connection/self.ts +0 -138
- package/src/connection/session.ts +0 -203
- package/src/connection/target.ts +0 -112
- package/src/connection/tsconfig.json +0 -6
- package/src/errors.ts +0 -66
- package/src/graph/.spec/api.d.ts +0 -41
- package/src/graph/.spec/laws/documents.ts +0 -24
- package/src/graph/.spec/laws/projection.ts +0 -13
- package/src/graph/.spec/layout.ts +0 -14
- package/src/graph/__tests__/mutation.test.ts +0 -51
- package/src/graph/__tests__/projection.test.ts +0 -22
- package/src/graph/__tests__/query.test.ts +0 -180
- package/src/graph/class.ts +0 -30
- package/src/graph/index.ts +0 -4
- package/src/graph/mutation.ts +0 -46
- package/src/graph/projection.ts +0 -21
- package/src/graph/query.ts +0 -95
- package/src/graph/tsconfig.json +0 -6
- package/src/identity/.history/ard/bootstrap-root-transfer.md +0 -57
- package/src/identity/.history/ard/domain-mediated-registration.md +0 -36
- package/src/identity/.spec/api.d.ts +0 -124
- package/src/identity/.spec/architecture.md +0 -33
- package/src/identity/.spec/capabilities/identity.ts +0 -7
- package/src/identity/.spec/flows/bootstrap-root.ts +0 -79
- package/src/identity/.spec/flows/domain-mediated-registration.ts +0 -51
- package/src/identity/.spec/flows/import.ts +0 -29
- package/src/identity/.spec/laws/identity.ts +0 -56
- package/src/identity/.spec/layout.ts +0 -13
- package/src/identity/__tests__/fixtures/registry-journey.ts +0 -65
- package/src/identity/__tests__/registration.test.ts +0 -64
- package/src/identity/__tests__/registry.test.ts +0 -74
- package/src/identity/__tests__/transfer.test.ts +0 -198
- package/src/identity/index.ts +0 -23
- package/src/identity/registration.ts +0 -72
- package/src/identity/registry.ts +0 -181
- package/src/identity/transfer.ts +0 -187
- package/src/identity/tsconfig.json +0 -6
- package/src/index.ts +0 -1
- package/src/keys/.spec/api.d.ts +0 -74
- package/src/keys/.spec/architecture.md +0 -13
- package/src/keys/.spec/laws/keys.ts +0 -43
- package/src/keys/.spec/layout.ts +0 -6
- package/src/keys/__tests__/algorithm.test.ts +0 -39
- package/src/keys/__tests__/keys.test.ts +0 -172
- package/src/keys/algorithm.ts +0 -33
- package/src/keys/credential.ts +0 -113
- package/src/keys/index.ts +0 -14
- package/src/keys/pair.ts +0 -219
- package/src/keys/tsconfig.json +0 -6
- package/src/lib/__tests__/admin-target.test.ts +0 -184
- package/src/lib/__tests__/binary.test.ts +0 -70
- package/src/lib/__tests__/browser-retention.test.ts +0 -212
- package/src/lib/__tests__/command-dx.test.ts +0 -102
- package/src/lib/__tests__/concurrency.test.ts +0 -62
- package/src/lib/__tests__/config.test.ts +0 -81
- package/src/lib/__tests__/design.test.ts +0 -99
- package/src/lib/__tests__/domain-publication.test.ts +0 -138
- package/src/lib/__tests__/format.test.ts +0 -22
- package/src/lib/__tests__/idp-session.driver.ts +0 -60
- package/src/lib/__tests__/idp-session.test.ts +0 -404
- package/src/lib/__tests__/idp.test.ts +0 -415
- package/src/lib/__tests__/instance-candidates.test.ts +0 -146
- package/src/lib/__tests__/instance-target.test.ts +0 -213
- package/src/lib/__tests__/instance.test.ts +0 -192
- package/src/lib/__tests__/local-status.test.ts +0 -202
- package/src/lib/__tests__/log-errors.test.ts +0 -64
- package/src/lib/__tests__/log.test.ts +0 -31
- package/src/lib/__tests__/meta.test.ts +0 -55
- package/src/lib/__tests__/output.test.ts +0 -162
- package/src/lib/__tests__/panel.test.ts +0 -40
- package/src/lib/__tests__/port.test.ts +0 -44
- package/src/lib/__tests__/prompt.test.ts +0 -25
- package/src/lib/__tests__/sdk-deps.test.ts +0 -68
- package/src/lib/__tests__/self.test.ts +0 -50
- package/src/lib/__tests__/skills.test.ts +0 -834
- package/src/lib/__tests__/studio-server-deps.test.ts +0 -111
- package/src/lib/__tests__/table.test.ts +0 -53
- package/src/lib/__tests__/update.test.ts +0 -511
- package/src/lib/__tests__/use-target.test.ts +0 -56
- package/src/lib/__tests__/validation.test.ts +0 -34
- package/src/lib/__tests__/view-assets.test.ts +0 -171
- package/src/lib/__tests__/view-external-open-intent.test.ts +0 -150
- package/src/lib/__tests__/view-external-open-origins.test.ts +0 -27
- package/src/lib/__tests__/view-open-intent.test.ts +0 -280
- package/src/lib/__tests__/view-port-allocation.test.ts +0 -82
- package/src/lib/__tests__/view-server.test.ts +0 -91
- package/src/lib/__tests__/view-session.test.ts +0 -100
- package/src/lib/__tests__/view-snapshot.test.ts +0 -77
- package/src/lib/admin-domain.ts +0 -43
- package/src/lib/admin-instance.ts +0 -56
- package/src/lib/admin-target.ts +0 -290
- package/src/lib/binary.ts +0 -127
- package/src/lib/browser-retention.ts +0 -210
- package/src/lib/browser.ts +0 -150
- package/src/lib/ca-fetch.ts +0 -133
- package/src/lib/command-dx.ts +0 -191
- package/src/lib/concurrency.ts +0 -31
- package/src/lib/config.ts +0 -57
- package/src/lib/credential-lifetime.ts +0 -24
- package/src/lib/domain-publication.ts +0 -104
- package/src/lib/failure-debug.ts +0 -26
- package/src/lib/format.ts +0 -4
- package/src/lib/idp-session.ts +0 -156
- package/src/lib/idp.ts +0 -926
- package/src/lib/instance-candidates.ts +0 -49
- package/src/lib/instance-target.ts +0 -197
- package/src/lib/instance.ts +0 -468
- package/src/lib/invocation.ts +0 -11
- package/src/lib/local-status.ts +0 -152
- package/src/lib/log.ts +0 -143
- package/src/lib/login-flow.ts +0 -201
- package/src/lib/meta.ts +0 -90
- package/src/lib/output.ts +0 -238
- package/src/lib/panel.ts +0 -61
- package/src/lib/port.ts +0 -41
- package/src/lib/proc.ts +0 -87
- package/src/lib/prompt.ts +0 -136
- package/src/lib/provision-instance.ts +0 -139
- package/src/lib/sdk-deps.ts +0 -104
- package/src/lib/self.ts +0 -22
- package/src/lib/skills/lock.ts +0 -117
- package/src/lib/skills/sync.ts +0 -878
- package/src/lib/skills.ts +0 -120
- package/src/lib/table.ts +0 -62
- package/src/lib/update.ts +0 -568
- package/src/lib/use-target.ts +0 -24
- package/src/lib/validation.ts +0 -59
- package/src/lib/view/assets.ts +0 -87
- package/src/lib/view/external-open-intent.ts +0 -41
- package/src/lib/view/external-open-origins.ts +0 -37
- package/src/lib/view/host-capabilities.ts +0 -17
- package/src/lib/view/open-intent.ts +0 -67
- package/src/lib/view/port-allocation.ts +0 -19
- package/src/lib/view/resolve.ts +0 -111
- package/src/lib/view/server.ts +0 -259
- package/src/lib/view/session.ts +0 -154
- package/src/lib/view/snapshot.ts +0 -101
- package/src/paths/.spec/api.d.ts +0 -13
- package/src/paths/.spec/architecture.md +0 -5
- package/src/paths/.spec/layout.ts +0 -3
- package/src/paths/index.ts +0 -13
- package/src/program/.spec/api.d.ts +0 -43
- package/src/program/.spec/architecture.md +0 -18
- package/src/program/.spec/laws/program.ts +0 -29
- package/src/program/.spec/layout.ts +0 -14
- package/src/program/__tests__/program.test.ts +0 -556
- package/src/program/argv.ts +0 -14
- package/src/program/build.ts +0 -205
- package/src/program/command.ts +0 -43
- package/src/program/index.ts +0 -3
- package/src/program/options.ts +0 -41
- package/src/program/registry.ts +0 -64
- package/src/program/tsconfig.json +0 -6
- package/src/setup/__tests__/instance-step.test.ts +0 -256
- package/src/setup/__tests__/util.test.ts +0 -29
- package/src/setup/engine.ts +0 -83
- package/src/setup/render.ts +0 -107
- package/src/setup/steps/admin.ts +0 -93
- package/src/setup/steps/agent-browser.ts +0 -81
- package/src/setup/steps/auth.ts +0 -54
- package/src/setup/steps/domain.ts +0 -68
- package/src/setup/steps/index.ts +0 -18
- package/src/setup/steps/instance.ts +0 -206
- package/src/setup/steps/skills-bridge.ts +0 -70
- package/src/setup/steps/skills.ts +0 -61
- package/src/setup/types.ts +0 -61
- package/src/setup/util.ts +0 -34
- package/src/state/.spec/api.d.ts +0 -152
- package/src/state/.spec/architecture.md +0 -45
- package/src/state/.spec/capabilities/state.ts +0 -7
- package/src/state/.spec/flows/identity-update.ts +0 -22
- package/src/state/.spec/laws/state.ts +0 -73
- package/src/state/.spec/layout.ts +0 -15
- package/src/state/__tests__/exchange-credentials.test.ts +0 -341
- package/src/state/__tests__/files.test.ts +0 -136
- package/src/state/__tests__/fixtures/identity-transition.ts +0 -37
- package/src/state/__tests__/fixtures/session-route-process.ts +0 -93
- package/src/state/__tests__/identities.test.ts +0 -142
- package/src/state/__tests__/paths.test.ts +0 -28
- package/src/state/__tests__/session-routes.test.ts +0 -138
- package/src/state/exchange-credentials.ts +0 -250
- package/src/state/files.ts +0 -170
- package/src/state/identities.ts +0 -229
- package/src/state/index.ts +0 -31
- package/src/state/paths.ts +0 -64
- package/src/state/session-routes.ts +0 -34
- package/src/state/tsconfig.json +0 -6
- package/src/telemetry/__tests__/analyze-log.test.ts +0 -38
- package/src/telemetry/__tests__/gate.test.ts +0 -63
- package/src/telemetry/__tests__/recorder.test.ts +0 -111
- package/src/telemetry/__tests__/redact.test.ts +0 -79
- package/src/telemetry/__tests__/retention.test.ts +0 -267
- package/src/telemetry/__tests__/session.test.ts +0 -166
- package/src/telemetry/__tests__/settings.test.ts +0 -102
- package/src/telemetry/__tests__/store-scan.test.ts +0 -128
- package/src/telemetry/__tests__/trigger.test.ts +0 -78
- package/src/telemetry/adapters/__tests__/claude-code.test.ts +0 -89
- package/src/telemetry/adapters/__tests__/codex.test.ts +0 -138
- package/src/telemetry/adapters/__tests__/index.test.ts +0 -88
- package/src/telemetry/adapters/claude-code.ts +0 -90
- package/src/telemetry/adapters/codex.ts +0 -160
- package/src/telemetry/adapters/index.ts +0 -45
- package/src/telemetry/adapters/types.ts +0 -21
- package/src/telemetry/analyze.ts +0 -249
- package/src/telemetry/gate.ts +0 -79
- package/src/telemetry/recorder.ts +0 -68
- package/src/telemetry/redact.ts +0 -53
- package/src/telemetry/retention.ts +0 -176
- package/src/telemetry/session.ts +0 -94
- package/src/telemetry/settings.ts +0 -79
- package/src/telemetry/store.ts +0 -174
- package/src/telemetry/trigger.ts +0 -107
- package/src/telemetry/types.ts +0 -64
- package/src/test-utils.ts +0 -18
- package/src/ui/.spec/api.d.ts +0 -14
- package/src/ui/.spec/architecture.md +0 -14
- package/src/ui/.spec/laws.ts +0 -50
- package/src/ui/.spec/layout.ts +0 -16
- package/src/ui/__tests__/ui.test.ts +0 -1742
- package/src/ui/index.ts +0 -13
- package/src/ui/lock.ts +0 -89
- package/src/ui/model.ts +0 -83
- package/src/ui/operations.ts +0 -1044
- package/src/ui/project.ts +0 -333
- package/src/ui/release.ts +0 -398
- package/src/ui/runner.ts +0 -18
- package/studio/client/dist/assets/index-BFVFs_8x.js +0 -81
- package/studio/client/dist/assets/index-DuB9iUdu.css +0 -2
- package/studio/client/dist/assets/schema-studio-DH6oEWME.js +0 -8
- package/studio/tsconfig.json +0 -24
- package/viewer/tsconfig.json +0 -13
package/src/commands/update.ts
DELETED
|
@@ -1,356 +0,0 @@
|
|
|
1
|
-
import type { CommandDefinition } from '../program/index'
|
|
2
|
-
|
|
3
|
-
import pkg from '../../package.json' with { type: 'json' }
|
|
4
|
-
import { fatal, log } from '../lib/log'
|
|
5
|
-
import { isMachine, output, RAW_OUTPUT_OPTIONS, type RawOutputOpts } from '../lib/output'
|
|
6
|
-
import { confirmDefaultYes } from '../lib/prompt'
|
|
7
|
-
import {
|
|
8
|
-
applySdkUpdate,
|
|
9
|
-
findSdkOutdated,
|
|
10
|
-
foreignPackageManager,
|
|
11
|
-
inDomainProject,
|
|
12
|
-
type SdkOutdated,
|
|
13
|
-
} from '../lib/sdk-deps'
|
|
14
|
-
import {
|
|
15
|
-
checkAstraleSkills,
|
|
16
|
-
type SkillApplyResult,
|
|
17
|
-
type SkillCheckResult,
|
|
18
|
-
syncAstraleSkills,
|
|
19
|
-
} from '../lib/skills'
|
|
20
|
-
import { DEFAULT_UPDATE_CHANNEL, packageManagedUpdateError, updateAstrale } from '../lib/update'
|
|
21
|
-
|
|
22
|
-
type UpdateOpts = RawOutputOpts & {
|
|
23
|
-
check?: boolean
|
|
24
|
-
channel?: string
|
|
25
|
-
version?: string
|
|
26
|
-
skills?: boolean
|
|
27
|
-
deps?: boolean
|
|
28
|
-
yes?: boolean
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
async function refreshSkills(): Promise<SkillApplyResult> {
|
|
32
|
-
log.step('Ensuring Astrale agent skills are current and healthy')
|
|
33
|
-
const result = await syncAstraleSkills()
|
|
34
|
-
if (result.status === 'unchanged') log.success('Astrale skills already up to date')
|
|
35
|
-
else if (result.status === 'installed') log.success('Astrale skills installed')
|
|
36
|
-
else if (result.status === 'updated') log.success('Astrale skills updated')
|
|
37
|
-
else if (result.status === 'repaired') log.success('Astrale skills repaired and updated')
|
|
38
|
-
return result
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function skillCheckStale(skills: SkillCheckResult): boolean {
|
|
42
|
-
return skills.status === 'update-available' || skills.status === 'repair-needed'
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
function printSkillCheck(skills: SkillCheckResult): void {
|
|
46
|
-
if (skills.status === 'current') log.success('Astrale skills are up to date')
|
|
47
|
-
else if (skills.status === 'update-available') log.info('Astrale skills update available')
|
|
48
|
-
else if (skills.status === 'repair-needed') log.warn('Astrale skills need repair')
|
|
49
|
-
else if (skills.status === 'unavailable') {
|
|
50
|
-
log.warn(`Could not verify Astrale skills${skills.error ? `: ${skills.error}` : ''}`)
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Keep the project's first-party `@astrale-os/*` dependencies current by
|
|
56
|
-
* delegating to pnpm (`pnpm outdated` to detect, `pnpm update --latest` to
|
|
57
|
-
* apply). Runs only inside a domain project (the `astrale.config.ts` marker) and
|
|
58
|
-
* only when pnpm owns it; elsewhere it's a silent no-op. On a dry run (`check`)
|
|
59
|
-
* it only reports. Otherwise it lists the available bumps and applies them behind
|
|
60
|
-
* a single confirm — pnpm rewrites package.json AND the lockfile (no build scripts
|
|
61
|
-
* run; the user runs `pnpm install` to materialize). Returns true when bumps were
|
|
62
|
-
* available (so `--check` can exit 10). Best-effort: pnpm missing or any error
|
|
63
|
-
* surfaces as "up to date".
|
|
64
|
-
*/
|
|
65
|
-
async function refreshSdkDeps(check: boolean, assumeYes = false): Promise<boolean> {
|
|
66
|
-
if (!inDomainProject()) return false
|
|
67
|
-
|
|
68
|
-
const foreign = foreignPackageManager()
|
|
69
|
-
if (foreign) {
|
|
70
|
-
if (!check) {
|
|
71
|
-
log.dim(
|
|
72
|
-
` SDK dep check uses pnpm; this project uses ${foreign} — update it with ${foreign}.`,
|
|
73
|
-
)
|
|
74
|
-
}
|
|
75
|
-
return false
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
const outdated = await findSdkOutdated()
|
|
79
|
-
if (outdated.length === 0) {
|
|
80
|
-
if (!check) log.dim(' @astrale-os SDK packages are up to date')
|
|
81
|
-
return false
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
const plural = outdated.length === 1 ? '' : 's'
|
|
85
|
-
log.info(`@astrale-os SDK package${plural} with a newer release (${outdated.length}):`)
|
|
86
|
-
for (const o of outdated) log.dim(` ${o.pkg} ${o.current} → ${o.latest}`)
|
|
87
|
-
|
|
88
|
-
if (check) return true // dry run — report only
|
|
89
|
-
|
|
90
|
-
if (
|
|
91
|
-
!assumeYes &&
|
|
92
|
-
!(await confirmDefaultYes(
|
|
93
|
-
`Update ${outdated.length} @astrale-os dep${plural} (pnpm update --latest)?`,
|
|
94
|
-
))
|
|
95
|
-
) {
|
|
96
|
-
log.dim(' Skipped — your package.json is unchanged.')
|
|
97
|
-
return true
|
|
98
|
-
}
|
|
99
|
-
log.step('pnpm update --latest --lockfile-only "@astrale-os/*"')
|
|
100
|
-
if (await applySdkUpdate()) {
|
|
101
|
-
log.success(`Updated ${outdated.length} @astrale-os dep${plural} in package.json + lockfile`)
|
|
102
|
-
log.dim(' Run `pnpm install` to materialize the new versions.')
|
|
103
|
-
} else {
|
|
104
|
-
log.warn(' Update did not complete — run it yourself: pnpm update --latest "@astrale-os/*"')
|
|
105
|
-
}
|
|
106
|
-
return true
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Read-only staleness report for tooling — `astrale update --check --json`.
|
|
111
|
-
* domain-studio polls this on load to drive its "update available" badge. It is
|
|
112
|
-
* unified and NON-THROWING: an explicit package-managed result uses npm release
|
|
113
|
-
* identity, while script-install failures remain script failures in `error`
|
|
114
|
-
* instead of being recategorized. The SDK axis is already best-effort. Skills
|
|
115
|
-
* report meaningful health/freshness states. A current cohort also exposes its exact
|
|
116
|
-
* source revision, skill trees, and entrypoints without leaking installer-local paths.
|
|
117
|
-
*/
|
|
118
|
-
export type StaleReport = {
|
|
119
|
-
stale: boolean
|
|
120
|
-
cli: {
|
|
121
|
-
stale: boolean
|
|
122
|
-
managed: boolean
|
|
123
|
-
current?: string
|
|
124
|
-
latest?: string
|
|
125
|
-
channel?: string
|
|
126
|
-
error?: string
|
|
127
|
-
}
|
|
128
|
-
skills: SkillCheckResult
|
|
129
|
-
sdk: { stale: boolean; inProject: boolean; outdated: SdkOutdated[] }
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
type CliStaleDependencies = {
|
|
133
|
-
update: typeof updateAstrale
|
|
134
|
-
fetchPackageVersion: (opts: Pick<UpdateOpts, 'channel' | 'version'>) => Promise<string>
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
const CLI_STALE_DEPENDENCIES: CliStaleDependencies = {
|
|
138
|
-
update: updateAstrale,
|
|
139
|
-
fetchPackageVersion: fetchNpmTargetVersion,
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
export async function cliStale(
|
|
143
|
-
opts: Pick<UpdateOpts, 'channel' | 'version'>,
|
|
144
|
-
dependencies: CliStaleDependencies = CLI_STALE_DEPENDENCIES,
|
|
145
|
-
): Promise<StaleReport['cli']> {
|
|
146
|
-
const running = pkg.version
|
|
147
|
-
const target = { ...opts, channel: opts.channel ?? DEFAULT_UPDATE_CHANNEL }
|
|
148
|
-
try {
|
|
149
|
-
const r = await dependencies.update({
|
|
150
|
-
check: true,
|
|
151
|
-
channel: target.channel,
|
|
152
|
-
version: target.version,
|
|
153
|
-
currentVersion: running,
|
|
154
|
-
})
|
|
155
|
-
if (r.status === 'managed') {
|
|
156
|
-
const latest = await dependencies.fetchPackageVersion(target).catch(() => undefined)
|
|
157
|
-
return {
|
|
158
|
-
stale: latest !== undefined && latest !== running,
|
|
159
|
-
managed: true,
|
|
160
|
-
current: running,
|
|
161
|
-
...(latest === undefined ? {} : { latest, channel: 'npm' }),
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
if (r.status === 'updated') {
|
|
165
|
-
return {
|
|
166
|
-
stale: false,
|
|
167
|
-
managed: false,
|
|
168
|
-
current: r.currentVersion,
|
|
169
|
-
latest: r.currentVersion,
|
|
170
|
-
channel: r.channel,
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
return {
|
|
174
|
-
stale: r.status === 'available',
|
|
175
|
-
managed: false,
|
|
176
|
-
current: r.currentVersion,
|
|
177
|
-
latest: r.latestVersion,
|
|
178
|
-
channel: r.channel,
|
|
179
|
-
}
|
|
180
|
-
} catch (error) {
|
|
181
|
-
return {
|
|
182
|
-
stale: false,
|
|
183
|
-
managed: false,
|
|
184
|
-
current: running,
|
|
185
|
-
error: error instanceof Error ? error.message : String(error),
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
export async function fetchNpmTargetVersion(
|
|
191
|
-
opts: Pick<UpdateOpts, 'channel' | 'version'>,
|
|
192
|
-
): Promise<string> {
|
|
193
|
-
const channel = opts.channel ?? DEFAULT_UPDATE_CHANNEL
|
|
194
|
-
const target = opts.version ?? (channel === 'stable' ? 'latest' : channel)
|
|
195
|
-
const response = await fetch(`https://registry.npmjs.org/@astrale-os/cli/${target}`)
|
|
196
|
-
if (!response.ok) throw new Error(`npm registry HTTP ${response.status}`)
|
|
197
|
-
const body: unknown = await response.json()
|
|
198
|
-
if (
|
|
199
|
-
body === null ||
|
|
200
|
-
typeof body !== 'object' ||
|
|
201
|
-
typeof (body as { version?: unknown }).version !== 'string'
|
|
202
|
-
) {
|
|
203
|
-
throw new Error('npm registry latest document is missing version')
|
|
204
|
-
}
|
|
205
|
-
return (body as { version: string }).version
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
async function sdkStale(): Promise<StaleReport['sdk']> {
|
|
209
|
-
if (!inDomainProject() || foreignPackageManager()) {
|
|
210
|
-
return { stale: false, inProject: inDomainProject(), outdated: [] }
|
|
211
|
-
}
|
|
212
|
-
const outdated = await findSdkOutdated()
|
|
213
|
-
return { stale: outdated.length > 0, inProject: true, outdated }
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
export default {
|
|
217
|
-
name: 'update',
|
|
218
|
-
description: 'Check for and install Astrale CLI updates',
|
|
219
|
-
options: [
|
|
220
|
-
{ flags: '--check', description: 'Only check whether an update is available' },
|
|
221
|
-
{
|
|
222
|
-
flags: '--channel <name>',
|
|
223
|
-
description: 'Update from a release channel (alpha, beta, rc, canary, stable)',
|
|
224
|
-
default: DEFAULT_UPDATE_CHANNEL,
|
|
225
|
-
},
|
|
226
|
-
{ flags: '--version <version>', description: 'Update to an exact version tag' },
|
|
227
|
-
{ flags: '--no-skills', description: 'Skip ensuring the Astrale agent skills' },
|
|
228
|
-
{ flags: '--no-deps', description: 'Skip checking @astrale-os SDK dependency versions' },
|
|
229
|
-
{
|
|
230
|
-
flags: '--yes',
|
|
231
|
-
description: 'Non-interactive: apply CLI + skills + SDK deps without prompts',
|
|
232
|
-
},
|
|
233
|
-
...RAW_OUTPUT_OPTIONS,
|
|
234
|
-
],
|
|
235
|
-
afterHelpText: `
|
|
236
|
-
Behavior:
|
|
237
|
-
Keeps three things current, in order. (1) The CLI binary: updates official
|
|
238
|
-
script installs only — if Astrale was installed by another package manager this
|
|
239
|
-
command refuses so that manager stays in charge; downloads are checksum-verified
|
|
240
|
-
before the binary is replaced. (2) The Astrale agent skills: installs every
|
|
241
|
-
top-level skill published from one resolved astrale-os/cli main commit, updates healthy older
|
|
242
|
-
installs, repairs inconsistent installs, and verifies the result before
|
|
243
|
-
reporting success. (3) SDK deps: inside a pnpm domain
|
|
244
|
-
project, proposes any @astrale-os/* dependency with a newer release and, on
|
|
245
|
-
confirm, runs "pnpm update --latest --lockfile-only" (updates package.json AND
|
|
246
|
-
the lockfile, honoring your registry + supply-chain age policy; run "pnpm
|
|
247
|
-
install" to materialize).
|
|
248
|
-
|
|
249
|
-
The default release channel is beta; --channel overrides it for one run.
|
|
250
|
-
--check is a dry run (binary + skills + SDK deps; exit 10 if anything is available) and
|
|
251
|
-
never writes. With --json it emits a unified staleness report
|
|
252
|
-
({ stale, cli, skills, sdk }) for tooling. --yes applies all three non-interactively and
|
|
253
|
-
is resilient — a binary that can't self-update (package-managed) warns but never
|
|
254
|
-
blocks the skills/deps steps; a skill failure fails the command rather than
|
|
255
|
-
claiming a partial success. --no-skills / --no-deps explicitly skip those axes.
|
|
256
|
-
|
|
257
|
-
Examples:
|
|
258
|
-
$ astrale update
|
|
259
|
-
$ astrale update --check
|
|
260
|
-
$ astrale update --yes
|
|
261
|
-
$ astrale update --no-skills
|
|
262
|
-
$ astrale update --no-deps
|
|
263
|
-
$ astrale update --channel canary
|
|
264
|
-
$ astrale update --version 0.4.0-alpha.10
|
|
265
|
-
`,
|
|
266
|
-
action: async (opts: UpdateOpts) => {
|
|
267
|
-
try {
|
|
268
|
-
// Tooling path: a machine-readable `--check` (e.g. domain-studio's update
|
|
269
|
-
// badge polling `astrale update --check --json`) gets a unified,
|
|
270
|
-
// non-throwing staleness report and exits.
|
|
271
|
-
if (opts.check && isMachine(opts)) {
|
|
272
|
-
const cli = await cliStale(opts)
|
|
273
|
-
const skills: SkillCheckResult =
|
|
274
|
-
opts.skills === false ? { status: 'skipped' } : await checkAstraleSkills()
|
|
275
|
-
const sdk = await sdkStale()
|
|
276
|
-
const report: StaleReport = {
|
|
277
|
-
stale: cli.stale || skillCheckStale(skills) || sdk.stale,
|
|
278
|
-
cli,
|
|
279
|
-
skills,
|
|
280
|
-
sdk,
|
|
281
|
-
}
|
|
282
|
-
output(report, opts)
|
|
283
|
-
if (report.stale) process.exitCode = 10
|
|
284
|
-
return
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
// Axis A — the CLI binary. Isolated so that under --yes (a non-interactive
|
|
288
|
-
// full update, e.g. domain-studio's "Update now") a binary that can't
|
|
289
|
-
// self-update — package-managed, no metadata — WARNS but does not abort the
|
|
290
|
-
// skills/deps axes. Without --yes the error surfaces as before.
|
|
291
|
-
let result: Awaited<ReturnType<typeof updateAstrale>> | null = null
|
|
292
|
-
try {
|
|
293
|
-
result = await updateAstrale({
|
|
294
|
-
check: opts.check,
|
|
295
|
-
channel: opts.channel,
|
|
296
|
-
version: opts.version,
|
|
297
|
-
currentVersion: pkg.version,
|
|
298
|
-
})
|
|
299
|
-
} catch (e) {
|
|
300
|
-
if (!opts.yes) throw e
|
|
301
|
-
log.warn(`CLI self-update skipped: ${e instanceof Error ? e.message : String(e)}`)
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
// Machine mode WITHOUT --yes (e.g. `astrale update --json`): emit the binary
|
|
305
|
-
// result and stop — never silently refresh skills / edit deps for a pipe.
|
|
306
|
-
if (result && isMachine(opts) && !opts.yes) {
|
|
307
|
-
output(result, opts)
|
|
308
|
-
return
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
// `available` only happens under --check (a real run already swapped the
|
|
312
|
-
// binary and returns `updated`).
|
|
313
|
-
let anyAvailable = false
|
|
314
|
-
if (result?.status === 'available') {
|
|
315
|
-
log.info(
|
|
316
|
-
`Astrale update available: ${result.currentVersion} -> ${result.latestVersion} (${result.channel})`,
|
|
317
|
-
)
|
|
318
|
-
anyAvailable = true
|
|
319
|
-
} else if (result?.status === 'up-to-date') {
|
|
320
|
-
log.success(`Astrale is up to date: ${result.currentVersion}`)
|
|
321
|
-
} else if (result?.status === 'updated') {
|
|
322
|
-
log.success(`Updated astrale ${result.previousVersion} -> ${result.currentVersion}`)
|
|
323
|
-
log.dim(` channel: ${result.channel}`)
|
|
324
|
-
log.dim(` binary: ${result.bin}`)
|
|
325
|
-
} else if (result?.status === 'managed') {
|
|
326
|
-
const error = packageManagedUpdateError(result.executable)
|
|
327
|
-
if (!opts.yes) throw error
|
|
328
|
-
log.warn(`CLI self-update skipped: ${error.message}`)
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
// Axis B — agent skills. A successful real update guarantees a verified
|
|
332
|
-
// latest cohort; --check remains read-only and reports its status.
|
|
333
|
-
if (opts.skills !== false) {
|
|
334
|
-
if (opts.check) {
|
|
335
|
-
const skills = await checkAstraleSkills()
|
|
336
|
-
printSkillCheck(skills)
|
|
337
|
-
if (skillCheckStale(skills)) anyAvailable = true
|
|
338
|
-
} else {
|
|
339
|
-
await refreshSkills()
|
|
340
|
-
}
|
|
341
|
-
} else if (!opts.check) {
|
|
342
|
-
log.dim(' Astrale skills skipped (--no-skills)')
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
// Axis C — first-party @astrale-os/* deps in the current domain project.
|
|
346
|
-
// Runs on --check too (reports availability); --yes applies without a prompt.
|
|
347
|
-
if (opts.deps !== false && (await refreshSdkDeps(opts.check === true, opts.yes === true))) {
|
|
348
|
-
anyAvailable = true
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
if (opts.check && anyAvailable) process.exitCode = 10
|
|
352
|
-
} catch (e) {
|
|
353
|
-
fatal(e, opts)
|
|
354
|
-
}
|
|
355
|
-
},
|
|
356
|
-
} satisfies CommandDefinition
|
package/src/commands/use.ts
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import type { CommandDefinition } from '../program/index'
|
|
2
|
-
|
|
3
|
-
import { readIdentities, setDefault } from '../identity/index'
|
|
4
|
-
import { readInstances } from '../lib/instance'
|
|
5
|
-
import { fatal, log } from '../lib/log'
|
|
6
|
-
import { resolveUseTarget } from '../lib/use-target'
|
|
7
|
-
import instanceUseCommand from './instance/use'
|
|
8
|
-
|
|
9
|
-
type UseOpts = {
|
|
10
|
-
identity?: boolean
|
|
11
|
-
instance?: boolean
|
|
12
|
-
adoptDefault?: boolean
|
|
13
|
-
skipJwksCheck?: boolean
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
async function useIdentity(name: string): Promise<void> {
|
|
17
|
-
await setDefault(name)
|
|
18
|
-
log.success(`Active identity set to "${name}"`)
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export default {
|
|
22
|
-
name: 'use',
|
|
23
|
-
description: 'Set the active identity or instance when the name is unambiguous',
|
|
24
|
-
afterHelpText: `
|
|
25
|
-
Behavior:
|
|
26
|
-
\`astrale use <name>\` is a convenience resolver for local CLI context. It
|
|
27
|
-
switches identity when <name> is only an identity, switches instance when
|
|
28
|
-
<name> is only an instance, and refuses ambiguous names. In scripts, prefer
|
|
29
|
-
the explicit namespace commands or pass --identity / --instance.
|
|
30
|
-
|
|
31
|
-
Examples:
|
|
32
|
-
$ astrale use staging
|
|
33
|
-
$ astrale use alice
|
|
34
|
-
$ astrale use staging --instance
|
|
35
|
-
$ astrale use alice --identity
|
|
36
|
-
`,
|
|
37
|
-
arguments: [{ name: 'name', description: 'Identity or instance name', required: true }],
|
|
38
|
-
options: [
|
|
39
|
-
{ flags: '--identity', description: 'Treat <name> as an identity' },
|
|
40
|
-
{ flags: '--instance', description: 'Treat <name> as an instance' },
|
|
41
|
-
{ flags: '--adopt-default', description: 'When using an instance, adopt its default identity' },
|
|
42
|
-
{ flags: '--skip-jwks-check', description: 'When using an instance, skip the JWKS check' },
|
|
43
|
-
],
|
|
44
|
-
action: async (name: string, opts: UseOpts) => {
|
|
45
|
-
try {
|
|
46
|
-
if (opts.identity && opts.instance) {
|
|
47
|
-
fatal('Choose either --identity or --instance, not both')
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
if (opts.identity) {
|
|
51
|
-
await useIdentity(name)
|
|
52
|
-
return
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
if (opts.instance) {
|
|
56
|
-
await instanceUseCommand.action(name, opts)
|
|
57
|
-
return
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const [instances, identities] = await Promise.all([readInstances(), readIdentities()])
|
|
61
|
-
const target = resolveUseTarget(name, instances, identities)
|
|
62
|
-
|
|
63
|
-
if (target.kind === 'identity') {
|
|
64
|
-
await useIdentity(target.name)
|
|
65
|
-
return
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
if (target.kind === 'instance') {
|
|
69
|
-
await instanceUseCommand.action(target.name, opts)
|
|
70
|
-
return
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
if (target.kind === 'ambiguous') {
|
|
74
|
-
fatal(
|
|
75
|
-
`Both an identity and an instance are named "${name}". Use: astrale identity use ${name} or astrale instance use ${name}`,
|
|
76
|
-
)
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
fatal(
|
|
80
|
-
`No identity or instance named "${name}". Try: astrale identity list or astrale instance list`,
|
|
81
|
-
)
|
|
82
|
-
} catch (e) {
|
|
83
|
-
fatal(e)
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
} satisfies CommandDefinition
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { readFile } from 'node:fs/promises'
|
|
2
|
-
|
|
3
|
-
import type { ViewServeConfig } from '../lib/view/session'
|
|
4
|
-
import type { CommandDefinition } from '../program/index'
|
|
5
|
-
|
|
6
|
-
import { startViewServer } from '../lib/view/server'
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Internal (hidden) entry for the detached view-session server: `astrale view`
|
|
10
|
-
* re-invokes the CLI with `__view-serve --config <file>` so the server runs
|
|
11
|
-
* under the same runtime and codebase as the CLI itself.
|
|
12
|
-
*/
|
|
13
|
-
export default {
|
|
14
|
-
name: '__view-serve',
|
|
15
|
-
hidden: true,
|
|
16
|
-
description: 'Internal: run a view-session server from a config file',
|
|
17
|
-
options: [{ flags: '--config <path>', description: 'ViewServeConfig JSON path' }],
|
|
18
|
-
action: async (opts: { config?: string }) => {
|
|
19
|
-
if (!opts.config) throw new Error('--config is required')
|
|
20
|
-
const config = JSON.parse(await readFile(opts.config, 'utf8')) as ViewServeConfig
|
|
21
|
-
startViewServer(config)
|
|
22
|
-
console.log(`view session ${config.session.id} listening on ${config.session.pageUrl}`)
|
|
23
|
-
// Keep the process alive; startViewServer owns shutdown (signals + idle).
|
|
24
|
-
await new Promise(() => {})
|
|
25
|
-
},
|
|
26
|
-
} satisfies CommandDefinition
|