@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/telemetry/trigger.ts
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Opportunistic analysis trigger — the `git gc --auto` model. Each CLI start
|
|
3
|
-
* cheaply scans for a closed, unanalyzed session and spawns ONE detached
|
|
4
|
-
* analyzer for it. No daemon, no cron; a lockfile keeps it single-flight.
|
|
5
|
-
* The same scan pays for the age sweep (see retention.ts), which is why the
|
|
6
|
-
* store stays bounded without anything resembling a background job.
|
|
7
|
-
*/
|
|
8
|
-
import { spawn } from 'node:child_process'
|
|
9
|
-
import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs'
|
|
10
|
-
import { join } from 'node:path'
|
|
11
|
-
|
|
12
|
-
import { MAX_REMOVALS_ON_START, sweepByAge } from './retention'
|
|
13
|
-
import { telemetryEnabled } from './settings'
|
|
14
|
-
import { scanSessions, sessionsRoot, type SessionScan } from './store'
|
|
15
|
-
|
|
16
|
-
const LOCK_STALE_MS = 30 * 60 * 1000
|
|
17
|
-
|
|
18
|
-
function lockPath(): string {
|
|
19
|
-
return join(sessionsRoot(), '.analyzer.lock')
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/** True when the lock is free (or stale/dead) and was claimed. */
|
|
23
|
-
function claimLock(): boolean {
|
|
24
|
-
const path = lockPath()
|
|
25
|
-
try {
|
|
26
|
-
if (existsSync(path)) {
|
|
27
|
-
const lock = JSON.parse(readFileSync(path, 'utf-8')) as { pid: number; at: number }
|
|
28
|
-
const stale = Date.now() - lock.at > LOCK_STALE_MS
|
|
29
|
-
let alive = false
|
|
30
|
-
try {
|
|
31
|
-
process.kill(lock.pid, 0)
|
|
32
|
-
alive = true
|
|
33
|
-
} catch {
|
|
34
|
-
/* dead */
|
|
35
|
-
}
|
|
36
|
-
if (alive && !stale) return false
|
|
37
|
-
unlinkSync(path)
|
|
38
|
-
}
|
|
39
|
-
mkdirSync(sessionsRoot(), { recursive: true })
|
|
40
|
-
writeFileSync(path, JSON.stringify({ pid: process.pid, at: Date.now() }))
|
|
41
|
-
return true
|
|
42
|
-
} catch {
|
|
43
|
-
return false
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/** Release only in the parent that claimed; the child rewrites its own. */
|
|
48
|
-
export function releaseLock(): void {
|
|
49
|
-
try {
|
|
50
|
-
unlinkSync(lockPath())
|
|
51
|
-
} catch {
|
|
52
|
-
/* already gone */
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Fire-and-forget: spawn a detached `astrale session analyze <id> --auto` for
|
|
58
|
-
* the most recently closed unanalyzed session, if any. Never throws, never
|
|
59
|
-
* blocks — worst case a few ms of directory stats.
|
|
60
|
-
*/
|
|
61
|
-
export function maybeTriggerAnalysis(argv: string[], scan?: readonly SessionScan[]): void {
|
|
62
|
-
try {
|
|
63
|
-
if (process.env.ASTRALE_TELEMETRY_NO_TRIGGER === '1') return
|
|
64
|
-
|
|
65
|
-
const sessions = scan ?? scanSessions()
|
|
66
|
-
// Retention runs ahead of the kill-switch check and on `session` commands
|
|
67
|
-
// too — turning telemetry off must still drain what is already on disk.
|
|
68
|
-
const swept = new Set(sweepByAge(sessions, { limit: MAX_REMOVALS_ON_START }).removed)
|
|
69
|
-
|
|
70
|
-
if (!telemetryEnabled()) return
|
|
71
|
-
// Never cascade off the session commands themselves.
|
|
72
|
-
if (argv[2] === 'session') return
|
|
73
|
-
|
|
74
|
-
const target = sessions.find(
|
|
75
|
-
(s) => s.closed && !s.analyzed && s.lastEventAt !== null && !swept.has(s.id),
|
|
76
|
-
)
|
|
77
|
-
if (!target) return
|
|
78
|
-
if (!claimLock()) return
|
|
79
|
-
|
|
80
|
-
// Re-invoke self: execPath is bun/node (dev) or the compiled binary; when
|
|
81
|
-
// argv[1] is a real script path, keep it as the first argument. In a
|
|
82
|
-
// bun-compiled binary argv[1] is a virtual /$bunfs/ path that must NOT be
|
|
83
|
-
// passed — the binary re-runs itself from execPath alone.
|
|
84
|
-
const script = process.argv[1]
|
|
85
|
-
const args =
|
|
86
|
-
script && script !== process.execPath && !script.startsWith('/$bunfs') ? [script] : []
|
|
87
|
-
args.push('session', 'analyze', target.id, '--auto')
|
|
88
|
-
const child = spawn(process.execPath, args, {
|
|
89
|
-
detached: true,
|
|
90
|
-
stdio: 'ignore',
|
|
91
|
-
env: { ...process.env, ASTRALE_TELEMETRY_NO_TRIGGER: '1' },
|
|
92
|
-
})
|
|
93
|
-
child.unref()
|
|
94
|
-
// The lock hands over to the child: it re-stamps with its own pid on start.
|
|
95
|
-
} catch {
|
|
96
|
-
/* telemetry must never affect the CLI */
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/** Called by `session analyze --auto` to take over the parent's claim. */
|
|
101
|
-
export function restampLock(): void {
|
|
102
|
-
try {
|
|
103
|
-
writeFileSync(lockPath(), JSON.stringify({ pid: process.pid, at: Date.now() }))
|
|
104
|
-
} catch {
|
|
105
|
-
/* best effort */
|
|
106
|
-
}
|
|
107
|
-
}
|
package/src/telemetry/types.ts
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Telemetry contracts. One CLI invocation = one appended event; one session =
|
|
3
|
-
* one directory of evidence under `~/.astrale/sessions/`; harness adapters
|
|
4
|
-
* contribute transcript discovery + a reading guide, never normalization.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/** One CLI invocation, one JSON line in events.jsonl. */
|
|
8
|
-
export type TelemetryEvent = {
|
|
9
|
-
/** Envelope version. */
|
|
10
|
-
v: 1
|
|
11
|
-
/** ISO timestamp at process start. */
|
|
12
|
-
ts: string
|
|
13
|
-
/** argv after the binary name, secrets redacted (see redact.ts). */
|
|
14
|
-
argv: string[]
|
|
15
|
-
exitCode: number
|
|
16
|
-
durationMs: number
|
|
17
|
-
/** Error class name when the command threw (AstraleError code preferred). */
|
|
18
|
-
errorName?: string
|
|
19
|
-
cwd: string
|
|
20
|
-
/** Workspace root the session is bucketed by (git root, else cwd). */
|
|
21
|
-
root: string
|
|
22
|
-
/** Which surface produced the event. */
|
|
23
|
-
surface: 'cli'
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/** Written once when a session directory is created. */
|
|
27
|
-
export type SessionMeta = {
|
|
28
|
-
id: string
|
|
29
|
-
root: string
|
|
30
|
-
/** true when the id came from ASTRALE_SESSION (a surface owns the lifecycle). */
|
|
31
|
-
explicit: boolean
|
|
32
|
-
createdAt: string
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/** Written by the analyzer when it finishes with a session (any outcome). */
|
|
36
|
-
export type AnalyzedMarker = {
|
|
37
|
-
analyzedAt: string
|
|
38
|
-
outcome: 'skipped-quiet' | 'reported' | 'filed' | 'error'
|
|
39
|
-
note?: string
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/** An agent-harness session discovered on this machine (transcript = evidence). */
|
|
43
|
-
export type HarnessSession = {
|
|
44
|
-
harness: string
|
|
45
|
-
sessionId?: string
|
|
46
|
-
transcriptPath: string
|
|
47
|
-
cwd?: string
|
|
48
|
-
startedAt?: string
|
|
49
|
-
endedAt?: string
|
|
50
|
-
sizeBytes: number
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/** Deterministic signals extracted from events.jsonl — the free gate's input. */
|
|
54
|
-
export type SessionSignals = {
|
|
55
|
-
eventCount: number
|
|
56
|
-
/** Events with a non-zero exit, grouped by leading command tokens. */
|
|
57
|
-
failures: { command: string; count: number; errorNames: string[] }[]
|
|
58
|
-
/** Same leading command tokens re-run 3+ times (retry smell). */
|
|
59
|
-
retries: { command: string; count: number }[]
|
|
60
|
-
firstEventAt?: string
|
|
61
|
-
lastEventAt?: string
|
|
62
|
-
/** Harness transcripts overlapping this session's root + time window. */
|
|
63
|
-
harnessSessions: HarnessSession[]
|
|
64
|
-
}
|
package/src/test-utils.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { mkdtemp, mkdir } from 'node:fs/promises'
|
|
2
|
-
import { tmpdir } from 'node:os'
|
|
3
|
-
import { join } from 'node:path'
|
|
4
|
-
|
|
5
|
-
import { createPaths, type Paths } from './state/index'
|
|
6
|
-
|
|
7
|
-
export type TestEnv = {
|
|
8
|
-
paths: Paths
|
|
9
|
-
tmp: string
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export async function createTestEnv(): Promise<TestEnv> {
|
|
13
|
-
const tmp = await mkdtemp(join(tmpdir(), 'astrale-test-'))
|
|
14
|
-
const paths = createPaths(tmp)
|
|
15
|
-
await mkdir(paths.keys, { recursive: true })
|
|
16
|
-
await mkdir(paths.data, { recursive: true })
|
|
17
|
-
return { paths, tmp }
|
|
18
|
-
}
|
package/src/ui/.spec/api.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export {
|
|
2
|
-
addUi,
|
|
3
|
-
applyPreset,
|
|
4
|
-
diffUi,
|
|
5
|
-
doctorUi,
|
|
6
|
-
initUi,
|
|
7
|
-
listUi,
|
|
8
|
-
viewUi,
|
|
9
|
-
type InitUiOptions,
|
|
10
|
-
} from '../operations.js'
|
|
11
|
-
export { UI_PRESETS, UiError, type UiLock, type UiPreset } from '../model.js'
|
|
12
|
-
export { discoverUiProject, type UiProject } from '../project.js'
|
|
13
|
-
export { resolveUiRelease } from '../release.js'
|
|
14
|
-
export { shadcnInvocation, type UiRunner } from '../runner.js'
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# UI local tooling
|
|
2
|
-
|
|
3
|
-
This private CLI owner manages an existing local React project. It does not connect to a Kernel and
|
|
4
|
-
does not add React, Base UI, Tailwind, shadcn, or the UI runtime to the installed CLI dependency
|
|
5
|
-
graph.
|
|
6
|
-
|
|
7
|
-
One registry operation resolves one immutable UI commit. During the V1 prerelease, operations
|
|
8
|
-
without an explicit version resolve the npm `beta` dist-tag; the legacy `latest` channel is not a V1
|
|
9
|
-
source. Package compatibility and registry reads use that commit. Patterns and blocks invoke the
|
|
10
|
-
release-qualified shadcn CLI on demand through the detected package manager. Released themes copy
|
|
11
|
-
the exact admitted embedded CSS directly, while a local playground export is admitted and copied
|
|
12
|
-
without registry or shadcn. Both theme paths install consumer-owned source and activate it through
|
|
13
|
-
one project-relative CSS import, and complete application writes before the lock advances. Dry-run,
|
|
14
|
-
list, and doctor do not claim a file mutation.
|
package/src/ui/.spec/laws.ts
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { defineLaw } from '@astrale-os/spec/authoring'
|
|
2
|
-
|
|
3
|
-
export const CLI_UI_BETA_DEFAULT = defineLaw({
|
|
4
|
-
id: 'CLI-UI-BETA-DEFAULT',
|
|
5
|
-
statement:
|
|
6
|
-
'Until the UI V1 channel is promoted, an operation without an explicit version resolves the npm beta dist-tag and never the legacy latest dist-tag.',
|
|
7
|
-
tests: [{ file: '../__tests__/ui.test.ts', id: 'TEST-CLI-UI-BETA-DEFAULT' }],
|
|
8
|
-
})
|
|
9
|
-
|
|
10
|
-
export const CLI_UI_ONE_SNAPSHOT = defineLaw({
|
|
11
|
-
id: 'CLI-UI-ONE-SNAPSHOT',
|
|
12
|
-
statement:
|
|
13
|
-
'Each UI operation resolves one immutable repository commit and reads compatibility, registry, and item source only from that snapshot.',
|
|
14
|
-
tests: [{ file: '../__tests__/ui.test.ts', id: 'TEST-CLI-UI-ONE-SNAPSHOT' }],
|
|
15
|
-
})
|
|
16
|
-
|
|
17
|
-
export const CLI_UI_LOCK_AFTER_SUCCESS = defineLaw({
|
|
18
|
-
id: 'CLI-UI-LOCK-AFTER-SUCCESS',
|
|
19
|
-
statement:
|
|
20
|
-
'Dry runs and failed package or source operations do not advance astrale-ui.lock.json.',
|
|
21
|
-
tests: [{ file: '../__tests__/ui.test.ts', id: 'TEST-CLI-UI-LOCK-AFTER-SUCCESS' }],
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
export const CLI_UI_BOUNDED_REMOTE_DOCUMENTS = defineLaw({
|
|
25
|
-
id: 'CLI-UI-BOUNDED-REMOTE-DOCUMENTS',
|
|
26
|
-
statement:
|
|
27
|
-
'Release metadata and registry documents are size-bounded, include-bounded, and normalized to stable UI registry errors before any project mutation.',
|
|
28
|
-
tests: [{ file: '../__tests__/ui.test.ts', id: 'TEST-CLI-UI-BOUNDED-REMOTE-DOCUMENTS' }],
|
|
29
|
-
})
|
|
30
|
-
|
|
31
|
-
export const CLI_UI_EXACT_ITEM_SOURCE = defineLaw({
|
|
32
|
-
id: 'CLI-UI-EXACT-ITEM-SOURCE',
|
|
33
|
-
statement:
|
|
34
|
-
'An add operation admits the exact built item document against the release index and records its content-bearing source digest before any consumer mutation; only patterns and blocks invoke project tooling.',
|
|
35
|
-
tests: [{ file: '../__tests__/ui.test.ts', id: 'TEST-CLI-UI-EXACT-ITEM-SOURCE' }],
|
|
36
|
-
})
|
|
37
|
-
|
|
38
|
-
export const CLI_UI_THEME_OWNERSHIP = defineLaw({
|
|
39
|
-
id: 'CLI-UI-THEME-OWNERSHIP',
|
|
40
|
-
statement:
|
|
41
|
-
'A released or locally exported theme becomes one project-contained consumer-owned CSS file, is activated by one relative host stylesheet import, and rolls back file, import, and lock together on failure.',
|
|
42
|
-
tests: [{ file: '../__tests__/ui.test.ts', id: 'TEST-CLI-UI-THEME-OWNERSHIP' }],
|
|
43
|
-
})
|
|
44
|
-
|
|
45
|
-
export const CLI_UI_SEMANTIC_DIFF = defineLaw({
|
|
46
|
-
id: 'CLI-UI-SEMANTIC-DIFF',
|
|
47
|
-
statement:
|
|
48
|
-
'Diff is read-only, path-contained, and classifies locked source and files as upstream changed, unchanged, modified, or deleted without delegating truth to tool output.',
|
|
49
|
-
tests: [{ file: '../__tests__/ui.test.ts', id: 'TEST-CLI-UI-SEMANTIC-DIFF' }],
|
|
50
|
-
})
|
package/src/ui/.spec/layout.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { defineLayout } from '@astrale-os/spec/authoring'
|
|
2
|
-
|
|
3
|
-
export default defineLayout({
|
|
4
|
-
entries: [
|
|
5
|
-
'.spec/',
|
|
6
|
-
'__tests__/',
|
|
7
|
-
'index.ts',
|
|
8
|
-
'lock.ts',
|
|
9
|
-
'model.ts',
|
|
10
|
-
'operations.ts',
|
|
11
|
-
'project.ts',
|
|
12
|
-
'release.ts',
|
|
13
|
-
'runner.ts',
|
|
14
|
-
],
|
|
15
|
-
exact: true,
|
|
16
|
-
})
|