@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/call.ts
DELETED
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
import { Path } from '@astrale-os/sdk/graph/path'
|
|
2
|
-
|
|
3
|
-
import type { ConnectionContext, KernelCommandOpts } from '../connection'
|
|
4
|
-
import type { CommandDefinition } from '../program/index'
|
|
5
|
-
|
|
6
|
-
import { createPathCall, expandSelfInCall, runKernelCommand, withSelfHint } from '../connection'
|
|
7
|
-
import { presentBinary, readBinaryBody } from '../lib/binary'
|
|
8
|
-
import { failInput, log } from '../lib/log'
|
|
9
|
-
import { output, present } from '../lib/output'
|
|
10
|
-
|
|
11
|
-
type CallOpts = KernelCommandOpts & {
|
|
12
|
-
data?: string
|
|
13
|
-
dryRun?: boolean
|
|
14
|
-
output?: string
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
type CallResult = Awaited<ReturnType<ConnectionContext['session']['dispatch']>>
|
|
18
|
-
type BinaryCallResult = Extract<CallResult, { readonly kind: 'binary' }>
|
|
19
|
-
type BinaryCallInput = Omit<BinaryCallResult, 'value'> & {
|
|
20
|
-
readonly value: Omit<BinaryCallResult['value'], 'body' | 'status'> & {
|
|
21
|
-
readonly body: Uint8Array | AsyncIterable<Uint8Array>
|
|
22
|
-
readonly status?: number
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
type CallResultInput = Exclude<CallResult, { readonly kind: 'binary' }> | BinaryCallInput
|
|
26
|
-
type MaterializedBinaryCallResult = Omit<BinaryCallResult, 'value'> & {
|
|
27
|
-
readonly value: Omit<BinaryCallInput['value'], 'body'> & { readonly body: Uint8Array }
|
|
28
|
-
}
|
|
29
|
-
type MaterializedCallResult =
|
|
30
|
-
| Exclude<CallResult, { readonly kind: 'binary' | 'stream' }>
|
|
31
|
-
| MaterializedBinaryCallResult
|
|
32
|
-
| { readonly kind: 'stream'; readonly values: readonly unknown[] }
|
|
33
|
-
|
|
34
|
-
export async function callCommand(
|
|
35
|
-
path: string,
|
|
36
|
-
rawParams: string[],
|
|
37
|
-
opts: CallOpts,
|
|
38
|
-
): Promise<void> {
|
|
39
|
-
let params: Record<string, unknown>
|
|
40
|
-
try {
|
|
41
|
-
Path.parse(path)
|
|
42
|
-
params = await parseParams(rawParams, opts.data)
|
|
43
|
-
} catch (error) {
|
|
44
|
-
failInput(error, opts)
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
await runKernelCommand<MaterializedCallResult | { readonly kind: 'dry'; readonly call: unknown }>(
|
|
48
|
-
{
|
|
49
|
-
opts,
|
|
50
|
-
label: path,
|
|
51
|
-
fn: async (ctx) => {
|
|
52
|
-
const expanded = await expandSelfInCall(path, params, ctx)
|
|
53
|
-
const request = createPathCall(expanded.path, expanded.parameters)
|
|
54
|
-
if (opts.dryRun) return { kind: 'dry', call: request }
|
|
55
|
-
return withSelfHint(
|
|
56
|
-
async () => materializeCallResult(await ctx.session.dispatch(request)),
|
|
57
|
-
expanded.meta,
|
|
58
|
-
)
|
|
59
|
-
},
|
|
60
|
-
format: async (result, fmtOpts) => {
|
|
61
|
-
switch (result.kind) {
|
|
62
|
-
case 'dry':
|
|
63
|
-
output(result.call, fmtOpts)
|
|
64
|
-
return
|
|
65
|
-
case 'value':
|
|
66
|
-
present(result.value, fmtOpts)
|
|
67
|
-
return
|
|
68
|
-
case 'binary':
|
|
69
|
-
await presentBinary(result.value, fmtOpts, { outFile: opts.output })
|
|
70
|
-
return
|
|
71
|
-
case 'stream':
|
|
72
|
-
output(result.values, fmtOpts)
|
|
73
|
-
return
|
|
74
|
-
case 'redirect':
|
|
75
|
-
throw new Error('Client Session returned an unresolved redirect.')
|
|
76
|
-
}
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
)
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/** Drain a session-backed stream before the command-scoped Client Session closes. */
|
|
83
|
-
export async function materializeCallResult(
|
|
84
|
-
result: CallResultInput,
|
|
85
|
-
): Promise<MaterializedCallResult> {
|
|
86
|
-
if (result.kind === 'binary') {
|
|
87
|
-
const body = await readBinaryBody(result.value.body)
|
|
88
|
-
return Object.freeze({
|
|
89
|
-
...result,
|
|
90
|
-
value: Object.freeze({ ...result.value, body }),
|
|
91
|
-
})
|
|
92
|
-
}
|
|
93
|
-
if (result.kind !== 'stream') return result
|
|
94
|
-
const values: unknown[] = []
|
|
95
|
-
for await (const value of result.stream) values.push(value)
|
|
96
|
-
return Object.freeze({ kind: 'stream', values: Object.freeze(values) })
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// ── Param parsing ───────────────────────────────────────────
|
|
100
|
-
|
|
101
|
-
export async function parseParams(
|
|
102
|
-
rawParams: string[],
|
|
103
|
-
dataFlag?: string,
|
|
104
|
-
): Promise<Record<string, unknown>> {
|
|
105
|
-
if (dataFlag) {
|
|
106
|
-
if (rawParams.length > 0) {
|
|
107
|
-
log.warn('--data provided, ignoring key=value params')
|
|
108
|
-
}
|
|
109
|
-
try {
|
|
110
|
-
return JSON.parse(dataFlag)
|
|
111
|
-
} catch {
|
|
112
|
-
throw new TypeError(`Invalid JSON in --data: ${dataFlag}`)
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
if (rawParams.length > 0) {
|
|
117
|
-
return parseKeyValue(rawParams)
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
const stdin = await readStdin()
|
|
121
|
-
if (stdin) {
|
|
122
|
-
try {
|
|
123
|
-
return JSON.parse(stdin)
|
|
124
|
-
} catch {
|
|
125
|
-
throw new TypeError('Invalid JSON from stdin')
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
return {}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
async function readStdin(): Promise<string | null> {
|
|
133
|
-
if (process.stdin.isTTY) return null
|
|
134
|
-
const chunks: Buffer[] = []
|
|
135
|
-
for await (const chunk of process.stdin) {
|
|
136
|
-
chunks.push(chunk)
|
|
137
|
-
}
|
|
138
|
-
const text = Buffer.concat(chunks).toString('utf-8').trim()
|
|
139
|
-
return text || null
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
// Top-level param keys are identifier-shaped: letters, digits, underscore,
|
|
143
|
-
// hyphen. No `:` (would catch httpie's `key:=value` syntax — not supported,
|
|
144
|
-
// use `--data '{...}'` instead) and no `.` (qualified prop keys appear
|
|
145
|
-
// inside nested objects, never as top-level CLI params).
|
|
146
|
-
const PARAM_KEY_RE = /^[A-Za-z_][A-Za-z0-9_-]*$/
|
|
147
|
-
|
|
148
|
-
export function parseKeyValue(pairs: string[]): Record<string, unknown> {
|
|
149
|
-
const result: Record<string, unknown> = {}
|
|
150
|
-
for (const pair of pairs) {
|
|
151
|
-
const eqIdx = pair.indexOf('=')
|
|
152
|
-
if (eqIdx === -1) {
|
|
153
|
-
throw new TypeError(`Invalid param "${pair}" — expected key=value format`)
|
|
154
|
-
}
|
|
155
|
-
const key = pair.slice(0, eqIdx)
|
|
156
|
-
const raw = pair.slice(eqIdx + 1)
|
|
157
|
-
if (!PARAM_KEY_RE.test(key)) {
|
|
158
|
-
const hint = key.endsWith(':')
|
|
159
|
-
? ` (looks like httpie's "key:=value" syntax — Astrale CLI doesn't support it; use --data '{"${key.slice(0, -1)}":<value>}' for nested values)`
|
|
160
|
-
: ` (keys must be identifier-shaped: letters, digits, underscore, hyphen)`
|
|
161
|
-
throw new TypeError(`Invalid param key "${key}" in "${pair}"${hint}`)
|
|
162
|
-
}
|
|
163
|
-
result[key] = coerceValue(raw)
|
|
164
|
-
}
|
|
165
|
-
return result
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
export function coerceValue(raw: string): unknown {
|
|
169
|
-
if ((raw.startsWith('{') && raw.endsWith('}')) || (raw.startsWith('[') && raw.endsWith(']'))) {
|
|
170
|
-
try {
|
|
171
|
-
return JSON.parse(raw)
|
|
172
|
-
} catch {
|
|
173
|
-
/* fall through */
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
if (raw === 'true') return true
|
|
177
|
-
if (raw === 'false') return false
|
|
178
|
-
if (raw === 'null') return null
|
|
179
|
-
if (/^-?\d+(\.\d+)?$/.test(raw)) return Number(raw)
|
|
180
|
-
return raw
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
export default {
|
|
184
|
-
name: 'call',
|
|
185
|
-
description: 'Call a kernel operation',
|
|
186
|
-
afterHelpText: `
|
|
187
|
-
Behavior:
|
|
188
|
-
Param priority (highest wins): --data > key=value > stdin > {}. If
|
|
189
|
-
both --data and key=value are given, key=value is ignored (warned).
|
|
190
|
-
Stdin is read only when piped and no --data/key=value is present
|
|
191
|
-
(ignored on a TTY). --dry-run admits the Path and prints the call
|
|
192
|
-
input without executing. Remote-bound functions auto-mint a
|
|
193
|
-
worker-scoped credential; --creds overrides it.
|
|
194
|
-
|
|
195
|
-
Streaming binary bodies are consumed while the Client session remains live,
|
|
196
|
-
then presented through the same --output, --raw, and --json paths as buffered
|
|
197
|
-
binary. JSON retains the application HTTP status and text/base64 body.
|
|
198
|
-
|
|
199
|
-
Self-reference:
|
|
200
|
-
@self expands to your nodeId on the active instance (path head or
|
|
201
|
-
bare param value, e.g. node=@self). --data and stdin payloads are
|
|
202
|
-
sent verbatim — pre-resolve manually to a literal @<nodeId> there
|
|
203
|
-
(e.g. via 'astrale get @self --json'). Resolution authenticates to
|
|
204
|
-
the selected Kernel and never trusts a local registration or JWT sub.
|
|
205
|
-
|
|
206
|
-
Callable input/output lives on astrale introspect <path>.
|
|
207
|
-
|
|
208
|
-
Examples:
|
|
209
|
-
$ astrale introspect /:kernel.astrale.ai:class.Identity:whois
|
|
210
|
-
$ astrale call /:blog.acme.com:class.Author:list limit=10
|
|
211
|
-
$ astrale call '@self::deactivate'
|
|
212
|
-
$ astrale call /:kernel.astrale.ai:function.journal --data '{"limit":5}' --json
|
|
213
|
-
`,
|
|
214
|
-
arguments: [
|
|
215
|
-
{
|
|
216
|
-
name: 'path',
|
|
217
|
-
description:
|
|
218
|
-
'Operation path (e.g., /:kernel.astrale.ai:class.Identity:whois or /node::method)',
|
|
219
|
-
},
|
|
220
|
-
{ name: 'params...', description: 'Params as key=value pairs', required: false },
|
|
221
|
-
],
|
|
222
|
-
options: [
|
|
223
|
-
{ flags: '-d, --data <json>', description: 'Params as JSON string' },
|
|
224
|
-
{ flags: '-o, --output <file>', description: 'Write binary/raw output to a file' },
|
|
225
|
-
{ flags: '--dry-run', description: 'Show what would be sent without executing' },
|
|
226
|
-
],
|
|
227
|
-
action: async (path, params, opts) => {
|
|
228
|
-
await callCommand(path as string, params as string[], opts)
|
|
229
|
-
},
|
|
230
|
-
} satisfies CommandDefinition
|