@astrale-os/cli 1.0.0-beta.3 → 1.0.0-beta.31
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/README.md +84 -6
- package/dist/astrale.js +57586 -60753
- package/dist/public/connect-core.js +2158 -30706
- package/dist/public/keys/index.js +1016 -29541
- package/dist/public/paths/index.js +370 -28654
- package/dist/types/admin/contract.d.ts +26 -0
- package/dist/types/admin/instance/client.d.ts +20 -0
- package/dist/types/admin/instance/index.d.ts +2 -0
- package/dist/types/admin/instance/model.d.ts +6 -10
- package/dist/types/connection/auth.d.ts +3 -0
- package/dist/types/connection/call.d.ts +3 -0
- package/dist/types/connection/command.d.ts +27 -0
- package/dist/types/connection/credential.d.ts +14 -0
- package/dist/types/connection/errors.d.ts +1 -0
- package/dist/types/connection/exchange.d.ts +9 -0
- package/dist/types/connection/failure/classify.d.ts +2 -0
- package/dist/types/connection/failure/index.d.ts +5 -0
- package/dist/types/connection/failure/model.d.ts +25 -0
- package/dist/types/connection/failure/render.d.ts +3 -0
- package/dist/types/connection/index.d.ts +8 -0
- package/dist/types/connection/reasons.d.ts +37 -0
- package/dist/types/connection/self.d.ts +37 -0
- package/dist/types/connection/session.d.ts +31 -0
- package/dist/types/connection/target.d.ts +38 -0
- package/dist/types/errors.d.ts +1 -1
- package/dist/types/lib/admin-instance.d.ts +17 -0
- package/dist/types/lib/admin-target.d.ts +11 -36
- package/dist/types/lib/config.d.ts +13 -59
- package/dist/types/lib/failure-debug.d.ts +1 -0
- package/dist/types/lib/idp.d.ts +25 -173
- package/dist/types/lib/instance-target.d.ts +1 -1
- package/dist/types/lib/instance.d.ts +30 -88
- package/dist/types/lib/log.d.ts +5 -3
- package/dist/types/lib/output.d.ts +1 -1
- package/dist/types/lib/proc.d.ts +43 -0
- package/dist/types/lib/self.d.ts +9 -0
- package/dist/types/lib/update.d.ts +109 -0
- package/dist/types/lib/validation.d.ts +4 -1
- package/dist/types/state/exchange-credentials.d.ts +6 -2
- package/dist/types/state/files.d.ts +2 -0
- package/dist/types/state/index.d.ts +3 -2
- package/dist/types/state/paths.d.ts +2 -0
- package/dist/types/state/session-routes.d.ts +10 -0
- package/package.json +16 -19
- package/src/__tests__/fixtures/publication.ts +20 -0
- package/src/admin/.spec/architecture.md +12 -5
- package/src/admin/__tests__/fixture.ts +25 -0
- package/src/admin/catalog/.spec/api.d.ts +1 -3
- package/src/admin/catalog/.spec/architecture.md +5 -4
- package/src/admin/catalog/__tests__/client.test.ts +143 -69
- package/src/admin/catalog/client.ts +40 -54
- package/src/admin/catalog/model.ts +3 -4
- package/src/admin/contract.ts +47 -0
- package/src/admin/graph/.spec/api.d.ts +4 -10
- package/src/admin/graph/nodes.ts +1 -1
- package/src/admin/instance/.spec/api.d.ts +5 -9
- package/src/admin/instance/.spec/architecture.md +7 -7
- package/src/admin/instance/__tests__/client.test.ts +157 -175
- package/src/admin/instance/client.ts +39 -128
- package/src/admin/instance/index.ts +1 -2
- package/src/admin/instance/model.ts +12 -18
- package/src/commands/__tests__/admin-instance.test.ts +11 -8
- package/src/commands/__tests__/call-describe.test.ts +46 -33
- package/src/commands/__tests__/call.test.ts +34 -0
- package/src/commands/__tests__/domain-install-operation.test.ts +30 -22
- package/src/commands/__tests__/domain-install-owned.test.ts +1 -1
- package/src/commands/__tests__/domain-list.test.ts +5 -25
- package/src/commands/__tests__/install-direct.test.ts +115 -8
- package/src/commands/__tests__/install-identity-override.test.ts +6 -17
- package/src/commands/__tests__/instance-list-rows.test.ts +1 -1
- package/src/commands/__tests__/instance-status.test.ts +139 -0
- package/src/commands/__tests__/introspect-parse.test.ts +80 -1
- package/src/commands/__tests__/logs.test.ts +250 -2
- package/src/commands/__tests__/read-commands.test.ts +119 -11
- package/src/commands/__tests__/token-ttl.test.ts +49 -4
- package/src/commands/__tests__/update.test.ts +25 -3
- package/src/commands/__tests__/view.test.ts +50 -2
- package/src/commands/auth/logout.ts +2 -1
- package/src/commands/browser.ts +29 -0
- package/src/commands/call-describe.ts +60 -68
- package/src/commands/call.ts +71 -59
- package/src/commands/domain/install.ts +73 -46
- package/src/commands/domain/list.ts +1 -1
- package/src/commands/domain/publish.ts +14 -11
- package/src/commands/domain/uninstall.ts +2 -2
- package/src/commands/get.ts +15 -16
- package/src/commands/identity/__tests__/register.test.ts +3 -3
- package/src/commands/identity/register.ts +8 -8
- package/src/commands/instance/create.ts +8 -16
- package/src/commands/instance/delete.ts +12 -9
- package/src/commands/instance/list.ts +2 -2
- package/src/commands/instance/status.ts +66 -20
- package/src/commands/instance/use.ts +16 -12
- package/src/commands/introspect.ts +53 -41
- package/src/commands/logs.ts +123 -36
- package/src/commands/mutate.ts +6 -5
- package/src/commands/query.ts +39 -36
- package/src/commands/session/analyze.ts +26 -4
- package/src/commands/token.ts +42 -27
- package/src/commands/ui/__tests__/commands.test.ts +152 -0
- package/src/commands/ui/add.ts +51 -0
- package/src/commands/ui/doctor.ts +21 -0
- package/src/commands/ui/init.ts +38 -0
- package/src/commands/ui/list.ts +26 -0
- package/src/commands/ui/preset-apply.ts +19 -0
- package/src/commands/ui/preset-list.ts +12 -0
- package/src/commands/ui/shared.ts +25 -0
- package/src/commands/update.ts +90 -48
- package/src/commands/view.ts +82 -37
- package/src/connection/.spec/api.d.ts +7 -8
- package/src/connection/.spec/architecture.md +14 -5
- package/src/connection/.spec/flows/session.ts +2 -2
- package/src/connection/.spec/laws/connection.ts +6 -2
- package/src/connection/.spec/layout.ts +1 -0
- package/src/connection/__tests__/auth.test.ts +1 -0
- package/src/connection/__tests__/credential.test.ts +21 -1
- package/src/connection/__tests__/errors.test.ts +27 -20
- package/src/connection/__tests__/exchange.test.ts +64 -11
- package/src/connection/__tests__/failure-fixtures.ts +39 -0
- package/src/connection/__tests__/failure-safety.test.ts +75 -0
- package/src/connection/__tests__/self.test.ts +31 -11
- package/src/connection/__tests__/session.test.ts +8 -4
- package/src/connection/__tests__/target.test.ts +2 -0
- package/src/connection/auth.ts +13 -0
- package/src/connection/call.ts +1 -1
- package/src/connection/credential.ts +2 -2
- package/src/connection/errors.ts +1 -355
- package/src/connection/exchange.ts +110 -61
- package/src/connection/failure/classify.ts +110 -0
- package/src/connection/failure/index.ts +18 -0
- package/src/connection/failure/model.ts +28 -0
- package/src/connection/failure/render.ts +116 -0
- package/src/connection/reasons.ts +16 -0
- package/src/connection/self.ts +39 -21
- package/src/connection/session.ts +27 -9
- package/src/errors.ts +3 -2
- package/src/graph/.spec/api.d.ts +13 -6
- package/src/graph/.spec/laws/documents.ts +7 -7
- package/src/graph/.spec/layout.ts +9 -1
- package/src/graph/__tests__/mutation.test.ts +2 -2
- package/src/graph/__tests__/query.test.ts +35 -9
- package/src/graph/class.ts +30 -0
- package/src/graph/index.ts +1 -0
- package/src/graph/query.ts +27 -40
- package/src/identity/.spec/api.d.ts +2 -2
- package/src/identity/__tests__/fixtures/registry-journey.ts +13 -1
- package/src/identity/__tests__/registration.test.ts +1 -1
- package/src/identity/__tests__/registry.test.ts +4 -0
- package/src/identity/registration.ts +3 -3
- package/src/identity/registry.ts +2 -0
- package/src/keys/__tests__/keys.test.ts +4 -0
- package/src/keys/credential.ts +1 -0
- package/src/lib/__tests__/admin-target.test.ts +12 -0
- package/src/lib/__tests__/binary.test.ts +16 -1
- package/src/lib/__tests__/browser-retention.test.ts +212 -0
- package/src/lib/__tests__/command-dx.test.ts +1 -1
- package/src/lib/__tests__/config.test.ts +27 -0
- package/src/lib/__tests__/domain-publication.test.ts +10 -16
- package/src/lib/__tests__/idp.test.ts +34 -4
- package/src/lib/__tests__/instance-candidates.test.ts +1 -3
- package/src/lib/__tests__/instance-target.test.ts +7 -39
- package/src/lib/__tests__/log-errors.test.ts +64 -0
- package/src/lib/__tests__/skills.test.ts +834 -0
- package/src/lib/__tests__/studio-server-deps.test.ts +1 -1
- package/src/lib/__tests__/update.test.ts +264 -11
- package/src/lib/__tests__/view-assets.test.ts +25 -0
- package/src/lib/__tests__/view-external-open-intent.test.ts +150 -0
- package/src/lib/__tests__/view-external-open-origins.test.ts +27 -0
- package/src/lib/__tests__/view-open-intent.test.ts +0 -2
- package/src/lib/__tests__/view-server.test.ts +26 -3
- package/src/lib/__tests__/view-session.test.ts +2 -1
- package/src/lib/admin-instance.ts +14 -8
- package/src/lib/admin-target.ts +21 -2
- package/src/lib/binary.ts +22 -5
- package/src/lib/browser-retention.ts +210 -0
- package/src/lib/command-dx.ts +9 -9
- package/src/lib/config.ts +12 -1
- package/src/lib/domain-publication.ts +9 -7
- package/src/lib/failure-debug.ts +26 -0
- package/src/lib/idp.ts +34 -3
- package/src/lib/instance-candidates.ts +2 -2
- package/src/lib/instance-target.ts +3 -14
- package/src/lib/instance.ts +16 -11
- package/src/lib/log.ts +16 -9
- package/src/lib/output.ts +1 -1
- package/src/lib/proc.ts +7 -2
- package/src/lib/provision-instance.ts +34 -57
- package/src/lib/skills/lock.ts +117 -0
- package/src/lib/skills/sync.ts +878 -0
- package/src/lib/skills.ts +1 -52
- package/src/lib/update.ts +298 -45
- package/src/lib/validation.ts +2 -2
- package/src/lib/view/assets.ts +11 -2
- package/src/lib/view/external-open-intent.ts +41 -0
- package/src/lib/view/external-open-origins.ts +37 -0
- package/src/lib/view/host-capabilities.ts +17 -0
- package/src/lib/view/resolve.ts +1 -1
- package/src/lib/view/server.ts +18 -3
- package/src/lib/view/session.ts +2 -0
- package/src/program/.spec/api.d.ts +1 -0
- package/src/program/__tests__/program.test.ts +201 -7
- package/src/program/argv.ts +14 -0
- package/src/program/build.ts +26 -4
- package/src/program/command.ts +1 -0
- package/src/program/index.ts +1 -0
- package/src/program/registry.ts +2 -1
- package/src/setup/__tests__/instance-step.test.ts +27 -10
- package/src/setup/steps/instance.ts +22 -15
- package/src/setup/steps/skills.ts +40 -38
- package/src/state/.spec/api.d.ts +21 -2
- package/src/state/.spec/architecture.md +18 -4
- package/src/state/.spec/layout.ts +1 -0
- package/src/state/__tests__/exchange-credentials.test.ts +88 -42
- package/src/state/__tests__/files.test.ts +24 -1
- package/src/state/__tests__/fixtures/session-route-process.ts +93 -0
- package/src/state/__tests__/paths.test.ts +1 -0
- package/src/state/__tests__/session-routes.test.ts +138 -0
- package/src/state/exchange-credentials.ts +22 -9
- package/src/state/files.ts +41 -0
- package/src/state/index.ts +3 -1
- package/src/state/paths.ts +3 -0
- package/src/state/session-routes.ts +34 -0
- package/src/telemetry/__tests__/analyze-log.test.ts +38 -0
- package/src/telemetry/__tests__/recorder.test.ts +1 -0
- package/src/telemetry/__tests__/retention.test.ts +267 -0
- package/src/telemetry/__tests__/settings.test.ts +102 -0
- package/src/telemetry/__tests__/store-scan.test.ts +128 -0
- package/src/telemetry/__tests__/trigger.test.ts +33 -4
- package/src/telemetry/analyze.ts +24 -2
- package/src/telemetry/recorder.ts +15 -4
- package/src/telemetry/retention.ts +176 -0
- package/src/telemetry/session.ts +18 -12
- package/src/telemetry/settings.ts +64 -11
- package/src/telemetry/store.ts +92 -9
- package/src/telemetry/trigger.ts +16 -28
- package/src/ui/.spec/api.d.ts +14 -0
- package/src/ui/.spec/architecture.md +14 -0
- package/src/ui/.spec/laws.ts +50 -0
- package/src/ui/.spec/layout.ts +16 -0
- package/src/ui/__tests__/ui.test.ts +1742 -0
- package/src/ui/index.ts +13 -0
- package/src/ui/lock.ts +89 -0
- package/src/ui/model.ts +83 -0
- package/src/ui/operations.ts +1044 -0
- package/src/ui/project.ts +333 -0
- package/src/ui/release.ts +398 -0
- package/src/ui/runner.ts +18 -0
- package/studio/client/dist/assets/elk-api-DjmKsHXc.js +1 -0
- package/studio/client/dist/assets/index-BFVFs_8x.js +81 -0
- package/studio/client/dist/assets/index-DuB9iUdu.css +2 -0
- package/studio/client/dist/assets/rolldown-runtime-Dd_uD5pT.js +1 -0
- package/studio/client/dist/assets/schema-studio--a0kX3QU.css +1 -0
- package/studio/client/dist/assets/schema-studio-DH6oEWME.js +8 -0
- package/studio/client/dist/index.html +4 -3
- package/studio/package.json +8 -14
- package/studio/server/agent/ask.test.ts +1 -1
- package/studio/server/agent/bridge/grant.test.ts +1 -1
- package/studio/server/agent/bridge/routes.test.ts +1 -1
- package/studio/server/agent/harness/claude/adapter.test.ts +15 -5
- package/studio/server/agent/harness/gateway/token.test.ts +1 -1
- package/studio/server/agent/harness/gateway/token.ts +3 -3
- package/studio/server/agent/prompts/anchors.test.ts +41 -32
- package/studio/server/agent/prompts/anchors.ts +23 -51
- package/studio/server/agent/prompts/system.test.ts +4 -4
- package/studio/server/agent/prompts/system.ts +5 -5
- package/studio/server/agent/routes.test.ts +1 -1
- package/studio/server/agent/run/coordinator.test.ts +1 -1
- package/studio/server/agent/run/preparation.ts +1 -1
- package/studio/server/api/canvas.ts +0 -1
- package/studio/server/api/context.ts +1 -1
- package/studio/server/api/deployment.ts +1 -1
- package/studio/server/api/views.ts +2 -2
- package/studio/server/api/workspace.ts +1 -1
- package/studio/server/api-agent-loadout.test.ts +1 -1
- package/studio/server/api.test.ts +1 -1
- package/studio/server/cache.test.ts +24 -18
- package/studio/server/cache.ts +10 -54
- package/studio/server/cli-consumers.test.ts +32 -4
- package/studio/server/cli.test.ts +2 -2
- package/studio/server/domain.test.ts +50 -68
- package/studio/server/domain.ts +82 -63
- package/studio/server/handoff/copy.ts +2 -2
- package/studio/server/index.ts +1 -1
- package/studio/server/instances/probe.test.ts +1 -1
- package/studio/server/introspect/anatomy/views/routes.ts +46 -37
- package/studio/server/introspect/anatomy/views.ts +10 -16
- package/studio/server/introspect/anatomy-extras.test.ts +29 -56
- package/studio/server/introspect/anatomy.test.ts +22 -14
- package/studio/server/introspect/anatomy.ts +6 -9
- package/studio/server/introspect/bundle.ts +0 -3
- package/studio/server/introspect/canonical-schema.test.ts +155 -424
- package/studio/server/introspect/canonical-schema.ts +248 -601
- package/studio/server/introspect/core.ts +14 -22
- package/studio/server/introspect/diff.test.ts +21 -9
- package/studio/server/introspect/diff.ts +19 -64
- package/studio/server/introspect/extractor.ts +23 -122
- package/studio/server/introspect/overlay-tsmorph.test.ts +116 -241
- package/studio/server/introspect/overlay-tsmorph.ts +0 -1
- package/studio/server/introspect/overlay.ts +3 -51
- package/studio/server/introspect/revision.test.ts +24 -28
- package/studio/server/introspect/revision.ts +11 -22
- package/studio/server/introspect/runtime.test.ts +77 -195
- package/studio/server/introspect/runtime.ts +5 -67
- package/studio/server/introspect/schema-ir-json.test.ts +81 -0
- package/studio/server/introspect/schema-ir-json.ts +39 -69
- package/studio/server/introspect/schema-refs.test.ts +43 -88
- package/studio/server/introspect/schema-refs.ts +14 -49
- package/studio/server/introspect/source-overlay/handlers.ts +116 -636
- package/studio/server/introspect/source-overlay/kernel-calls.ts +0 -3
- package/studio/server/introspect/source-overlay/spans.ts +15 -45
- package/studio/server/lifecycle.ts +4 -1
- package/studio/server/state/baseline.test.ts +14 -9
- package/studio/server/state/baseline.ts +3 -5
- package/studio/server/state/documents.test.ts +69 -0
- package/studio/server/state/documents.ts +57 -10
- package/studio/server/state/visibility.ts +1 -5
- package/studio/server/views/model.ts +3 -3
- package/studio/server/views/target.test.ts +18 -76
- package/studio/server/views/target.ts +25 -51
- package/studio/server/watch.test.ts +11 -11
- package/studio/server/watch.ts +8 -4
- package/studio/server/workspace/updates.ts +23 -1
- package/studio/server/workspace-watch.ts +2 -2
- package/studio/shared/contracts/runtime.ts +4 -0
- package/studio/shared/contracts/schema.ts +44 -131
- package/studio/shared/contracts/surface.test.ts +15 -17
- package/studio/shared/contracts/workspace.ts +5 -11
- package/studio/shared/schema/identity.test.ts +20 -44
- package/studio/shared/schema/identity.ts +9 -24
- package/studio/tsconfig.json +2 -1
- package/tsconfig.json +1 -1
- package/viewer/dist/index.html +21 -0
- package/viewer/dist/main.js +41 -62
- package/.check-workspace.cjs +0 -40
- package/src/admin/binding.ts +0 -168
- package/src/commands/__tests__/instance-create-hosts.test.ts +0 -29
- package/studio/client/dist/assets/elk-api-lwhFo7vB.js +0 -1
- package/studio/client/dist/assets/index-B-c-smo9.js +0 -8
- package/studio/client/dist/assets/index-BckHuAWk.js +0 -81
- package/studio/client/dist/assets/index-C4aNQ6dz.css +0 -1
- package/studio/client/dist/assets/index-ChOr3yP0.css +0 -1
- package/studio/server/introspect/anatomy/views/legacy.ts +0 -232
- package/studio/server/introspect/core-extractor.ts +0 -139
- package/studio/server/introspect/overlay.test.ts +0 -72
- package/studio/server/introspect/source-overlay/annotations.ts +0 -14
|
@@ -6,10 +6,9 @@ import ts from 'typescript'
|
|
|
6
6
|
const SHARED_ROOT = resolve(import.meta.dir, '..')
|
|
7
7
|
const STUDIO_ROOT = resolve(SHARED_ROOT, '..')
|
|
8
8
|
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
|
|
12
|
-
const HISTORICAL_BARREL_EXPORTS = [
|
|
9
|
+
// Closed Studio V1 shared surface. Keeping this manifest independent of Git
|
|
10
|
+
// catches accidental aliases and shadow contracts.
|
|
11
|
+
const TARGET_BARREL_EXPORTS = [
|
|
13
12
|
'AGENT_ACCESS_LEVELS',
|
|
14
13
|
'AGENT_EFFORT_LEVELS',
|
|
15
14
|
'AgentAccess',
|
|
@@ -34,9 +33,9 @@ const HISTORICAL_BARREL_EXPORTS = [
|
|
|
34
33
|
'ContextStore',
|
|
35
34
|
'ConversationInfo',
|
|
36
35
|
'CopyPayload',
|
|
37
|
-
'CrossDomainImport',
|
|
38
36
|
'DeployRecord',
|
|
39
37
|
'DeployResult',
|
|
38
|
+
'DOCUMENTS_DIR',
|
|
40
39
|
'DocMeta',
|
|
41
40
|
'DomainAnatomy',
|
|
42
41
|
'DomainCatalogEntry',
|
|
@@ -61,15 +60,15 @@ const HISTORICAL_BARREL_EXPORTS = [
|
|
|
61
60
|
'InstancesState',
|
|
62
61
|
'Integration',
|
|
63
62
|
'IntegrationsState',
|
|
63
|
+
'IrCallable',
|
|
64
64
|
'IrCallableAuth',
|
|
65
65
|
'IrCallableOutput',
|
|
66
66
|
'IrClass',
|
|
67
|
-
'
|
|
68
|
-
'
|
|
67
|
+
'IrClassKey',
|
|
68
|
+
'IrClassRef',
|
|
69
69
|
'IrEndpoint',
|
|
70
70
|
'IrFunction',
|
|
71
71
|
'IrImportDescriptor',
|
|
72
|
-
'IrInterface',
|
|
73
72
|
'IrMethod',
|
|
74
73
|
'IrSchemaKey',
|
|
75
74
|
'IrSchemaRef',
|
|
@@ -83,7 +82,6 @@ const HISTORICAL_BARREL_EXPORTS = [
|
|
|
83
82
|
'MethodInheritance',
|
|
84
83
|
'NodePosition',
|
|
85
84
|
'RememberedViewTarget',
|
|
86
|
-
'SchemaAnnotation',
|
|
87
85
|
'SchemaChange',
|
|
88
86
|
'SchemaChangeKind',
|
|
89
87
|
'SchemaIR',
|
|
@@ -108,24 +106,24 @@ const HISTORICAL_BARREL_EXPORTS = [
|
|
|
108
106
|
'VisibilityState',
|
|
109
107
|
] as const
|
|
110
108
|
|
|
111
|
-
|
|
112
|
-
const INTENTIONAL_BARREL_ADDITIONS = [
|
|
109
|
+
const TARGET_BARREL_HELPERS = [
|
|
113
110
|
'IR_SCHEMA_REF_KINDS',
|
|
114
111
|
'IrSchemaRefKind',
|
|
115
112
|
'STUDIO_SCHEMA_PROJECTION_VERSION',
|
|
116
113
|
'SchemaRevision',
|
|
117
|
-
'
|
|
118
|
-
'
|
|
119
|
-
'isIrInterfaceRef',
|
|
114
|
+
'classRefKey',
|
|
115
|
+
'isIrClassRef',
|
|
120
116
|
'isIrSchemaRef',
|
|
117
|
+
'isNodePathSchema',
|
|
121
118
|
'isSchemaRevision',
|
|
122
|
-
'
|
|
119
|
+
'parseClassRefKey',
|
|
123
120
|
'parseSchemaRefKey',
|
|
124
121
|
'schemaRefKey',
|
|
125
122
|
] as const
|
|
126
123
|
|
|
127
124
|
function productionFiles(dir: string): string[] {
|
|
128
125
|
return readdirSync(dir).flatMap((entry) => {
|
|
126
|
+
if (entry === 'node_modules') return []
|
|
129
127
|
const path = join(dir, entry)
|
|
130
128
|
if (statSync(path).isDirectory()) return productionFiles(path)
|
|
131
129
|
return /\.(?:ts|tsx)$/.test(path) && !/\.test\.(?:ts|tsx)$/.test(path) ? [path] : []
|
|
@@ -277,10 +275,10 @@ test('types.ts remains a re-export-only compatibility facade', () => {
|
|
|
277
275
|
expect(source.statements.every(ts.isExportDeclaration)).toBe(true)
|
|
278
276
|
})
|
|
279
277
|
|
|
280
|
-
test('types.ts
|
|
278
|
+
test('types.ts exposes exactly the Studio V1 shared surface', () => {
|
|
281
279
|
const exports = namedExports(join(SHARED_ROOT, 'types.ts'))
|
|
282
280
|
const duplicates = exports.filter((name, index) => exports.indexOf(name) !== index)
|
|
283
|
-
const expected = [...
|
|
281
|
+
const expected = [...TARGET_BARREL_EXPORTS, ...TARGET_BARREL_HELPERS].sort()
|
|
284
282
|
|
|
285
283
|
expect(duplicates).toEqual([])
|
|
286
284
|
expect(exports.sort()).toEqual(expected)
|
|
@@ -113,18 +113,12 @@ export interface MergeResult {
|
|
|
113
113
|
|
|
114
114
|
export type SchemaChangeKind =
|
|
115
115
|
| 'schema-metadata-changed'
|
|
116
|
-
| 'type-added'
|
|
117
|
-
| 'type-removed'
|
|
118
|
-
| 'type-changed'
|
|
119
116
|
| 'import-added'
|
|
120
117
|
| 'import-removed'
|
|
121
118
|
| 'import-changed'
|
|
122
119
|
| 'class-added'
|
|
123
120
|
| 'class-removed'
|
|
124
121
|
| 'class-contract-changed'
|
|
125
|
-
| 'interface-added'
|
|
126
|
-
| 'interface-removed'
|
|
127
|
-
| 'interface-contract-changed'
|
|
128
122
|
| 'edge-added'
|
|
129
123
|
| 'edge-removed'
|
|
130
124
|
| 'edge-contract-changed'
|
|
@@ -208,6 +202,9 @@ export interface DocMeta {
|
|
|
208
202
|
stored: string
|
|
209
203
|
}
|
|
210
204
|
|
|
205
|
+
/** Where context documents live inside a domain — shown in the UI, read by the agent. */
|
|
206
|
+
export const DOCUMENTS_DIR = '.domain-studio/context/docs'
|
|
207
|
+
|
|
211
208
|
export interface Integration {
|
|
212
209
|
id: string
|
|
213
210
|
name: string
|
|
@@ -264,11 +261,8 @@ export interface LayoutState {
|
|
|
264
261
|
|
|
265
262
|
/** Persisted per-domain canvas visibility. This is the sole authority for its JSON shape. */
|
|
266
263
|
export interface VisibilityState {
|
|
267
|
-
/**
|
|
268
|
-
* `materializedInterfaces`, not this set — see below) */
|
|
264
|
+
/** Refs hidden on the canvas: `class.X` | `edge.X` | `domain.<origin>`. */
|
|
269
265
|
hidden: Record<string, true>
|
|
266
|
+
/** Whether local Class inheritance edges are rendered. */
|
|
270
267
|
showInheritedEdges: boolean
|
|
271
|
-
/** Local interfaces MATERIALIZED as canvas NODES (default = badge). Keyed by BARE interface
|
|
272
|
-
* name (e.g. `Fulfillable`) — a set distinct from `hidden`, so no ref namespace collision. */
|
|
273
|
-
materializedInterfaces: Record<string, true>
|
|
274
268
|
}
|
|
@@ -1,58 +1,34 @@
|
|
|
1
1
|
import { describe, expect, test } from 'bun:test'
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
isIrDefinitionRef,
|
|
7
|
-
isIrInterfaceRef,
|
|
4
|
+
classRefKey,
|
|
5
|
+
isIrClassRef,
|
|
8
6
|
isIrSchemaRef,
|
|
9
|
-
|
|
7
|
+
parseClassRefKey,
|
|
10
8
|
parseSchemaRefKey,
|
|
11
9
|
schemaRefKey,
|
|
12
|
-
type IrSchemaRef,
|
|
13
10
|
} from './identity'
|
|
14
11
|
|
|
15
|
-
describe('
|
|
16
|
-
test('round-trips
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
name: '$Named_member',
|
|
22
|
-
} satisfies IrSchemaRef
|
|
23
|
-
expect(parseSchemaRefKey(schemaRefKey(ref))).toEqual(ref)
|
|
24
|
-
}
|
|
12
|
+
describe('schema identity', () => {
|
|
13
|
+
test('round-trips exact Class identity', () => {
|
|
14
|
+
const ref = { origin: 'docs.example.dev', kind: 'class' as const, name: 'Document' }
|
|
15
|
+
expect(classRefKey(ref)).toBe('docs.example.dev:class.Document')
|
|
16
|
+
expect(parseClassRefKey(classRefKey(ref))).toEqual(ref)
|
|
17
|
+
expect(isIrClassRef(ref)).toBe(true)
|
|
25
18
|
})
|
|
26
19
|
|
|
27
|
-
test('
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
name: 'Shared',
|
|
33
|
-
} as const
|
|
34
|
-
|
|
35
|
-
expect(definitionRefKey(classRef)).toBe('contracts.example.dev:class.Shared')
|
|
36
|
-
expect(definitionRefKey(interfaceRef)).toBe('contracts.example.dev:interface.Shared')
|
|
37
|
-
expect(parseDefinitionRefKey(definitionRefKey(classRef))).toEqual(classRef)
|
|
38
|
-
expect(parseDefinitionRefKey(definitionRefKey(interfaceRef))).toEqual(interfaceRef)
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
test('guards structural refs without claiming SDK admission', () => {
|
|
42
|
-
expect(isIrSchemaRef({ origin: 'a.dev', kind: 'policy', name: 'may_read' })).toBe(true)
|
|
43
|
-
expect(isIrDefinitionRef({ origin: 'a.dev', kind: 'class', name: 'Thing' })).toBe(true)
|
|
44
|
-
expect(isIrDefinitionRef({ origin: 'a.dev', kind: 'policy', name: 'may_read' })).toBe(false)
|
|
45
|
-
expect(isIrInterfaceRef({ origin: 'a.dev', kind: 'interface', name: 'Named' })).toBe(true)
|
|
46
|
-
expect(isIrInterfaceRef({ origin: 'a.dev', kind: 'class', name: 'Named' })).toBe(false)
|
|
47
|
-
expect(isIrSchemaRef({ origin: 'a.dev', kind: 'unknown', name: 'Thing' })).toBe(false)
|
|
48
|
-
expect(isIrSchemaRef({ origin: 'a.dev', kind: 'class' })).toBe(false)
|
|
20
|
+
test('preserves all supported schema reference kinds', () => {
|
|
21
|
+
const ref = { origin: 'docs.example.dev', kind: 'function' as const, name: 'search' }
|
|
22
|
+
expect(schemaRefKey(ref)).toBe('docs.example.dev:function.search')
|
|
23
|
+
expect(parseSchemaRefKey(schemaRefKey(ref))).toEqual(ref)
|
|
24
|
+
expect(isIrSchemaRef(ref)).toBe(true)
|
|
49
25
|
})
|
|
50
26
|
|
|
51
|
-
test('rejects
|
|
52
|
-
expect(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
expect(parseSchemaRefKey(
|
|
56
|
-
expect(
|
|
27
|
+
test('rejects removed Interface coordinates and malformed keys', () => {
|
|
28
|
+
expect(isIrSchemaRef({ origin: 'docs.example.dev', kind: 'interface', name: 'Named' })).toBe(
|
|
29
|
+
false,
|
|
30
|
+
)
|
|
31
|
+
expect(parseSchemaRefKey('docs.example.dev:interface.Named')).toBeUndefined()
|
|
32
|
+
expect(parseClassRefKey('docs.example.dev:function.search')).toBeUndefined()
|
|
57
33
|
})
|
|
58
34
|
})
|
|
@@ -4,16 +4,7 @@
|
|
|
4
4
|
* These helpers validate and encode only the structural wire coordinate. SDK
|
|
5
5
|
* admission remains the authority for whether a reference is semantically valid.
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
export const IR_SCHEMA_REF_KINDS = [
|
|
9
|
-
'type',
|
|
10
|
-
'interface',
|
|
11
|
-
'class',
|
|
12
|
-
'function',
|
|
13
|
-
'policy',
|
|
14
|
-
'view',
|
|
15
|
-
'core',
|
|
16
|
-
] as const
|
|
7
|
+
export const IR_SCHEMA_REF_KINDS = ['class', 'function', 'policy', 'view', 'core'] as const
|
|
17
8
|
|
|
18
9
|
export type IrSchemaRefKind = (typeof IR_SCHEMA_REF_KINDS)[number]
|
|
19
10
|
|
|
@@ -27,14 +18,12 @@ export interface IrSchemaRef {
|
|
|
27
18
|
/** Canonical DSL key for a schema member: `origin:kind.name`. */
|
|
28
19
|
export type IrSchemaKey = `${string}:${IrSchemaRefKind}.${string}`
|
|
29
20
|
|
|
30
|
-
export type
|
|
31
|
-
kind: 'class' | 'interface'
|
|
32
|
-
}
|
|
21
|
+
export type IrClassRef = Omit<IrSchemaRef, 'kind'> & { kind: 'class' }
|
|
33
22
|
|
|
34
|
-
export type
|
|
23
|
+
export type IrClassKey = `${string}:class.${string}`
|
|
35
24
|
|
|
36
25
|
const schemaKinds = new Set<string>(IR_SCHEMA_REF_KINDS)
|
|
37
|
-
const schemaKeyPattern = /^(.+):(
|
|
26
|
+
const schemaKeyPattern = /^(.+):(class|function|policy|view|core)\.(.+)$/
|
|
38
27
|
|
|
39
28
|
/** Structural guard only; it deliberately does not perform SDK admission. */
|
|
40
29
|
export function isIrSchemaRef(value: unknown): value is IrSchemaRef {
|
|
@@ -48,19 +37,15 @@ export function isIrSchemaRef(value: unknown): value is IrSchemaRef {
|
|
|
48
37
|
)
|
|
49
38
|
}
|
|
50
39
|
|
|
51
|
-
export function
|
|
52
|
-
return isIrSchemaRef(value) &&
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export function isIrInterfaceRef(value: unknown): value is IrDefinitionRef & { kind: 'interface' } {
|
|
56
|
-
return isIrSchemaRef(value) && value.kind === 'interface'
|
|
40
|
+
export function isIrClassRef(value: unknown): value is IrClassRef {
|
|
41
|
+
return isIrSchemaRef(value) && value.kind === 'class'
|
|
57
42
|
}
|
|
58
43
|
|
|
59
44
|
export function schemaRefKey(ref: IrSchemaRef): IrSchemaKey {
|
|
60
45
|
return `${ref.origin}:${ref.kind}.${ref.name}`
|
|
61
46
|
}
|
|
62
47
|
|
|
63
|
-
export function
|
|
48
|
+
export function classRefKey(ref: IrClassRef): IrClassKey {
|
|
64
49
|
return `${ref.origin}:${ref.kind}.${ref.name}`
|
|
65
50
|
}
|
|
66
51
|
|
|
@@ -76,7 +61,7 @@ export function parseSchemaRefKey(value: unknown): IrSchemaRef | undefined {
|
|
|
76
61
|
}
|
|
77
62
|
}
|
|
78
63
|
|
|
79
|
-
export function
|
|
64
|
+
export function parseClassRefKey(value: unknown): IrClassRef | undefined {
|
|
80
65
|
const ref = parseSchemaRefKey(value)
|
|
81
|
-
return ref &&
|
|
66
|
+
return ref && isIrClassRef(ref) ? ref : undefined
|
|
82
67
|
}
|
package/studio/tsconfig.json
CHANGED
|
@@ -19,5 +19,6 @@
|
|
|
19
19
|
"@shared/*": ["./shared/*"]
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
|
-
"include": ["server", "shared", "client/src", "e2e", "playwright.config.ts", "vite.config.ts"]
|
|
22
|
+
"include": ["server", "shared", "client/src", "e2e", "playwright.config.ts", "vite.config.ts"],
|
|
23
|
+
"exclude": ["e2e/fixture"]
|
|
23
24
|
}
|
package/tsconfig.json
CHANGED
package/viewer/dist/index.html
CHANGED
|
@@ -32,6 +32,8 @@
|
|
|
32
32
|
display: flex;
|
|
33
33
|
gap: 12px;
|
|
34
34
|
align-items: center;
|
|
35
|
+
min-width: 0;
|
|
36
|
+
overflow: hidden;
|
|
35
37
|
padding: 6px 10px;
|
|
36
38
|
border-bottom: 1px solid #26262e;
|
|
37
39
|
flex: none;
|
|
@@ -56,6 +58,23 @@
|
|
|
56
58
|
font-weight: 600;
|
|
57
59
|
color: #e8e8f0;
|
|
58
60
|
}
|
|
61
|
+
#view-label,
|
|
62
|
+
#target-label,
|
|
63
|
+
#identity-label {
|
|
64
|
+
min-width: 0;
|
|
65
|
+
overflow: hidden;
|
|
66
|
+
text-overflow: ellipsis;
|
|
67
|
+
white-space: nowrap;
|
|
68
|
+
}
|
|
69
|
+
#view-label {
|
|
70
|
+
flex-shrink: 1;
|
|
71
|
+
}
|
|
72
|
+
#target-label {
|
|
73
|
+
flex-shrink: 2;
|
|
74
|
+
}
|
|
75
|
+
#identity-label {
|
|
76
|
+
flex-shrink: 3;
|
|
77
|
+
}
|
|
59
78
|
.dim {
|
|
60
79
|
color: #7a7a86;
|
|
61
80
|
}
|
|
@@ -68,6 +87,8 @@
|
|
|
68
87
|
}
|
|
69
88
|
#frame {
|
|
70
89
|
flex: 1;
|
|
90
|
+
min-width: 0;
|
|
91
|
+
min-height: 0;
|
|
71
92
|
position: relative;
|
|
72
93
|
}
|
|
73
94
|
#frame iframe {
|