studiograph 1.3.47 → 1.3.48-beta.1
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 +26 -16
- package/dist/agent/agent-pool.d.ts +117 -0
- package/dist/agent/agent-pool.js +287 -0
- package/dist/agent/agent-pool.js.map +1 -0
- package/dist/agent/followups.d.ts +34 -0
- package/dist/agent/followups.js +52 -0
- package/dist/agent/followups.js.map +1 -0
- package/dist/agent/orchestrator.d.ts +113 -22
- package/dist/agent/orchestrator.js +573 -181
- package/dist/agent/orchestrator.js.map +1 -1
- package/dist/agent/prompts/entity-types-section.d.ts +36 -0
- package/dist/agent/prompts/entity-types-section.js +90 -0
- package/dist/agent/prompts/entity-types-section.js.map +1 -0
- package/dist/agent/prompts/system.md +148 -69
- package/dist/agent/skill-loader.d.ts +30 -17
- package/dist/agent/skill-loader.js +63 -30
- package/dist/agent/skill-loader.js.map +1 -1
- package/dist/agent/skills/entity-schema.md +77 -433
- package/dist/agent/skills/interview/entity-templates.md +193 -0
- package/dist/agent/skills/interview/question-domains.md +391 -0
- package/dist/agent/skills/interview/skill.md +204 -0
- package/dist/agent/skills/schema-rules.md +54 -0
- package/dist/agent/tools/capture-tools.d.ts +31 -0
- package/dist/agent/tools/capture-tools.js +40 -0
- package/dist/agent/tools/capture-tools.js.map +1 -0
- package/dist/agent/tools/folder-tools.d.ts +47 -0
- package/dist/agent/tools/folder-tools.js +249 -0
- package/dist/agent/tools/folder-tools.js.map +1 -0
- package/dist/agent/tools/fs-tools.d.ts +7 -6
- package/dist/agent/tools/fs-tools.js +5 -4
- package/dist/agent/tools/fs-tools.js.map +1 -1
- package/dist/agent/tools/graph-tools.d.ts +21 -58
- package/dist/agent/tools/graph-tools.js +635 -332
- package/dist/agent/tools/graph-tools.js.map +1 -1
- package/dist/agent/tools/history-tools.d.ts +95 -0
- package/dist/agent/tools/history-tools.js +461 -0
- package/dist/agent/tools/history-tools.js.map +1 -0
- package/dist/agent/tools/load-skill.d.ts +6 -5
- package/dist/agent/tools/load-skill.js +3 -3
- package/dist/agent/tools/load-skill.js.map +1 -1
- package/dist/agent/tools/ops-tools.d.ts +5 -4
- package/dist/agent/tools/ops-tools.js +130 -236
- package/dist/agent/tools/ops-tools.js.map +1 -1
- package/dist/agent/tools/permission-tools.d.ts +87 -17
- package/dist/agent/tools/permission-tools.js +233 -38
- package/dist/agent/tools/permission-tools.js.map +1 -1
- package/dist/agent/tools/tool-loader.js +5 -4
- package/dist/agent/tools/tool-loader.js.map +1 -1
- package/dist/agent/tools/web-tools.d.ts +18 -0
- package/dist/agent/tools/web-tools.js +283 -0
- package/dist/agent/tools/web-tools.js.map +1 -0
- package/dist/cli/commands/about.d.ts +1 -0
- package/dist/cli/commands/about.js +55 -3
- package/dist/cli/commands/about.js.map +1 -1
- package/dist/cli/commands/admin/audit-workspace.d.ts +23 -0
- package/dist/cli/commands/admin/audit-workspace.js +133 -0
- package/dist/cli/commands/admin/audit-workspace.js.map +1 -0
- package/dist/cli/commands/admin/audit.d.ts +21 -0
- package/dist/cli/commands/admin/audit.js +174 -0
- package/dist/cli/commands/admin/audit.js.map +1 -0
- package/dist/cli/commands/admin/backup.d.ts +54 -0
- package/dist/cli/commands/admin/backup.js +207 -0
- package/dist/cli/commands/admin/backup.js.map +1 -0
- package/dist/cli/commands/admin/folder.d.ts +11 -0
- package/dist/cli/commands/admin/folder.js +186 -0
- package/dist/cli/commands/admin/folder.js.map +1 -0
- package/dist/cli/commands/admin/index.d.ts +16 -0
- package/dist/cli/commands/admin/index.js +46 -0
- package/dist/cli/commands/admin/index.js.map +1 -0
- package/dist/cli/commands/admin/migrate-assets.d.ts +53 -0
- package/dist/cli/commands/admin/migrate-assets.js +184 -0
- package/dist/cli/commands/admin/migrate-assets.js.map +1 -0
- package/dist/cli/commands/admin/migrate.d.ts +56 -0
- package/dist/cli/commands/admin/migrate.js +263 -0
- package/dist/cli/commands/admin/migrate.js.map +1 -0
- package/dist/cli/commands/admin/restore.d.ts +24 -0
- package/dist/cli/commands/admin/restore.js +228 -0
- package/dist/cli/commands/admin/restore.js.map +1 -0
- package/dist/cli/commands/admin/secrets.d.ts +23 -0
- package/dist/cli/commands/admin/secrets.js +256 -0
- package/dist/cli/commands/admin/secrets.js.map +1 -0
- package/dist/cli/commands/admin/settings.d.ts +28 -0
- package/dist/cli/commands/admin/settings.js +284 -0
- package/dist/cli/commands/admin/settings.js.map +1 -0
- package/dist/cli/commands/admin/token.d.ts +42 -0
- package/dist/cli/commands/admin/token.js +126 -0
- package/dist/cli/commands/admin/token.js.map +1 -0
- package/dist/cli/commands/admin/transfer-ownership.d.ts +15 -0
- package/dist/cli/commands/admin/transfer-ownership.js +106 -0
- package/dist/cli/commands/admin/transfer-ownership.js.map +1 -0
- package/dist/cli/commands/admin/user.d.ts +11 -0
- package/dist/cli/commands/admin/user.js +187 -0
- package/dist/cli/commands/admin/user.js.map +1 -0
- package/dist/cli/commands/clone.d.ts +25 -3
- package/dist/cli/commands/clone.js +142 -36
- package/dist/cli/commands/clone.js.map +1 -1
- package/dist/cli/commands/commit.d.ts +1 -1
- package/dist/cli/commands/commit.js +24 -11
- package/dist/cli/commands/commit.js.map +1 -1
- package/dist/cli/commands/config.d.ts +23 -107
- package/dist/cli/commands/config.js +52 -260
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/connector.d.ts +10 -13
- package/dist/cli/commands/connector.js +16 -58
- package/dist/cli/commands/connector.js.map +1 -1
- package/dist/cli/commands/deploy.js +215 -68
- package/dist/cli/commands/deploy.js.map +1 -1
- package/dist/cli/commands/index.js +2 -2
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.js +10 -30
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/mcp.js +12 -4
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/orphans.js +14 -30
- package/dist/cli/commands/orphans.js.map +1 -1
- package/dist/cli/commands/r2.d.ts +3 -0
- package/dist/cli/commands/r2.js +223 -204
- package/dist/cli/commands/r2.js.map +1 -1
- package/dist/cli/commands/redeploy.js +65 -12
- package/dist/cli/commands/redeploy.js.map +1 -1
- package/dist/cli/commands/reset.d.ts +22 -6
- package/dist/cli/commands/reset.js +142 -63
- package/dist/cli/commands/reset.js.map +1 -1
- package/dist/cli/commands/serve.js +209 -24
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/sync.d.ts +1 -1
- package/dist/cli/commands/sync.js +372 -202
- package/dist/cli/commands/sync.js.map +1 -1
- package/dist/cli/crypto-bundle.d.ts +39 -0
- package/dist/cli/crypto-bundle.js +94 -0
- package/dist/cli/crypto-bundle.js.map +1 -0
- package/dist/cli/index.js +24 -35
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/railway-pin.d.ts +68 -0
- package/dist/cli/railway-pin.js +96 -0
- package/dist/cli/railway-pin.js.map +1 -0
- package/dist/cli/railway-provisioning.d.ts +53 -0
- package/dist/cli/railway-provisioning.js +85 -0
- package/dist/cli/railway-provisioning.js.map +1 -0
- package/dist/cli/setup-wizard.d.ts +33 -52
- package/dist/cli/setup-wizard.js +43 -68
- package/dist/cli/setup-wizard.js.map +1 -1
- package/dist/core/accent-palette.d.ts +22 -0
- package/dist/core/accent-palette.js +47 -0
- package/dist/core/accent-palette.js.map +1 -0
- package/dist/core/cell-anchor.d.ts +29 -0
- package/dist/core/cell-anchor.js +53 -0
- package/dist/core/cell-anchor.js.map +1 -0
- package/dist/core/comment-anchor.d.ts +41 -0
- package/dist/core/comment-anchor.js +147 -0
- package/dist/core/comment-anchor.js.map +1 -0
- package/dist/core/commit-messages.d.ts +57 -0
- package/dist/core/commit-messages.js +85 -0
- package/dist/core/commit-messages.js.map +1 -0
- package/dist/core/embeds.d.ts +56 -0
- package/dist/core/embeds.js +103 -0
- package/dist/core/embeds.js.map +1 -0
- package/dist/core/entity-body-templates.d.ts +21 -0
- package/dist/core/entity-body-templates.js +53 -0
- package/dist/core/entity-body-templates.js.map +1 -0
- package/dist/core/entity-types-catalog.d.ts +65 -0
- package/dist/core/entity-types-catalog.js +140 -0
- package/dist/core/entity-types-catalog.js.map +1 -0
- package/dist/core/folder-paths.d.ts +41 -0
- package/dist/core/folder-paths.js +95 -0
- package/dist/core/folder-paths.js.map +1 -0
- package/dist/core/folder-sidecar.d.ts +36 -0
- package/dist/core/folder-sidecar.js +91 -0
- package/dist/core/folder-sidecar.js.map +1 -0
- package/dist/core/graph.d.ts +675 -14
- package/dist/core/graph.js +2118 -314
- package/dist/core/graph.js.map +1 -1
- package/dist/core/history-diff.d.ts +35 -0
- package/dist/core/history-diff.js +114 -0
- package/dist/core/history-diff.js.map +1 -0
- package/dist/core/schema-registry.d.ts +59 -0
- package/dist/core/schema-registry.js +198 -0
- package/dist/core/schema-registry.js.map +1 -1
- package/dist/core/schemas/connector.d.ts +67 -0
- package/dist/core/schemas/connector.js +100 -0
- package/dist/core/schemas/connector.js.map +1 -0
- package/dist/core/schemas/workspace.d.ts +122 -0
- package/dist/core/schemas/workspace.js +211 -0
- package/dist/core/schemas/workspace.js.map +1 -0
- package/dist/core/secrets/SecretStore.d.ts +77 -0
- package/dist/core/secrets/SecretStore.js +13 -0
- package/dist/core/secrets/SecretStore.js.map +1 -0
- package/dist/core/secrets/SettingsResolver.d.ts +54 -0
- package/dist/core/secrets/SettingsResolver.js +80 -0
- package/dist/core/secrets/SettingsResolver.js.map +1 -0
- package/dist/core/secrets/SettingsStore.d.ts +30 -0
- package/dist/core/secrets/SettingsStore.js +9 -0
- package/dist/core/secrets/SettingsStore.js.map +1 -0
- package/dist/core/secrets/SqliteEncryptedStore.d.ts +90 -0
- package/dist/core/secrets/SqliteEncryptedStore.js +598 -0
- package/dist/core/secrets/SqliteEncryptedStore.js.map +1 -0
- package/dist/core/secrets/audit.d.ts +36 -0
- package/dist/core/secrets/audit.js +60 -0
- package/dist/core/secrets/audit.js.map +1 -0
- package/dist/core/secrets/auth-db-migration.d.ts +129 -0
- package/dist/core/secrets/auth-db-migration.js +653 -0
- package/dist/core/secrets/auth-db-migration.js.map +1 -0
- package/dist/core/secrets/bundle.d.ts +141 -0
- package/dist/core/secrets/bundle.js +435 -0
- package/dist/core/secrets/bundle.js.map +1 -0
- package/dist/core/secrets/dual-write.d.ts +81 -0
- package/dist/core/secrets/dual-write.js +247 -0
- package/dist/core/secrets/dual-write.js.map +1 -0
- package/dist/core/secrets/encryption.d.ts +44 -0
- package/dist/core/secrets/encryption.js +97 -0
- package/dist/core/secrets/encryption.js.map +1 -0
- package/dist/core/secrets/index.d.ts +49 -0
- package/dist/core/secrets/index.js +74 -0
- package/dist/core/secrets/index.js.map +1 -0
- package/dist/core/secrets/master-key.d.ts +38 -0
- package/dist/core/secrets/master-key.js +122 -0
- package/dist/core/secrets/master-key.js.map +1 -0
- package/dist/core/secrets/probes/anthropic.d.ts +98 -0
- package/dist/core/secrets/probes/anthropic.js +300 -0
- package/dist/core/secrets/probes/anthropic.js.map +1 -0
- package/dist/core/secrets/probes/brave.d.ts +9 -0
- package/dist/core/secrets/probes/brave.js +15 -0
- package/dist/core/secrets/probes/brave.js.map +1 -0
- package/dist/core/secrets/probes/r2.d.ts +15 -0
- package/dist/core/secrets/probes/r2.js +14 -0
- package/dist/core/secrets/probes/r2.js.map +1 -0
- package/dist/core/secrets/probes/voyage.d.ts +13 -0
- package/dist/core/secrets/probes/voyage.js +52 -0
- package/dist/core/secrets/probes/voyage.js.map +1 -0
- package/dist/core/secrets/r2-structural-migration.d.ts +39 -0
- package/dist/core/secrets/r2-structural-migration.js +109 -0
- package/dist/core/secrets/r2-structural-migration.js.map +1 -0
- package/dist/core/secrets/read-flip.d.ts +59 -0
- package/dist/core/secrets/read-flip.js +87 -0
- package/dist/core/secrets/read-flip.js.map +1 -0
- package/dist/core/secrets/registry.d.ts +188 -0
- package/dist/core/secrets/registry.js +598 -0
- package/dist/core/secrets/registry.js.map +1 -0
- package/dist/core/types.d.ts +77 -455
- package/dist/core/types.js +17 -3
- package/dist/core/types.js.map +1 -1
- package/dist/core/user-config.d.ts +75 -7
- package/dist/core/user-config.js +155 -7
- package/dist/core/user-config.js.map +1 -1
- package/dist/core/validation.d.ts +717 -1791
- package/dist/core/validation.js +357 -228
- package/dist/core/validation.js.map +1 -1
- package/dist/core/workspace-manager.d.ts +79 -12
- package/dist/core/workspace-manager.js +213 -73
- package/dist/core/workspace-manager.js.map +1 -1
- package/dist/core/workspace.d.ts +19 -5
- package/dist/core/workspace.js +69 -35
- package/dist/core/workspace.js.map +1 -1
- package/dist/mcp/comment-virtual-entity.d.ts +36 -0
- package/dist/mcp/comment-virtual-entity.js +71 -0
- package/dist/mcp/comment-virtual-entity.js.map +1 -0
- package/dist/mcp/connector-manager.d.ts +94 -13
- package/dist/mcp/connector-manager.js +283 -62
- package/dist/mcp/connector-manager.js.map +1 -1
- package/dist/mcp/oauth-provider.d.ts +27 -33
- package/dist/mcp/oauth-provider.js +65 -134
- package/dist/mcp/oauth-provider.js.map +1 -1
- package/dist/mcp/oauth-registry.d.ts +62 -0
- package/dist/mcp/oauth-registry.js +85 -0
- package/dist/mcp/oauth-registry.js.map +1 -0
- package/dist/mcp/server.d.ts +11 -3
- package/dist/mcp/server.js +30 -5
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/state-signer.d.ts +41 -0
- package/dist/mcp/state-signer.js +120 -0
- package/dist/mcp/state-signer.js.map +1 -0
- package/dist/mcp/tools.d.ts +35 -2
- package/dist/mcp/tools.js +1051 -117
- package/dist/mcp/tools.js.map +1 -1
- package/dist/server/__tests__/helpers/graph-api.d.ts +18 -0
- package/dist/server/__tests__/helpers/graph-api.js +16 -0
- package/dist/server/__tests__/helpers/graph-api.js.map +1 -0
- package/dist/server/body-write-coordinator.d.ts +151 -0
- package/dist/server/body-write-coordinator.js +161 -0
- package/dist/server/body-write-coordinator.js.map +1 -0
- package/dist/server/cloud-billing-flow.d.ts +32 -0
- package/dist/server/cloud-billing-flow.js +75 -0
- package/dist/server/cloud-billing-flow.js.map +1 -0
- package/dist/server/commit-audit.d.ts +26 -0
- package/dist/server/commit-audit.js +30 -0
- package/dist/server/commit-audit.js.map +1 -0
- package/dist/server/index.d.ts +14 -3
- package/dist/server/index.js +451 -193
- package/dist/server/index.js.map +1 -1
- package/dist/server/middleware/sanitize.d.ts +46 -0
- package/dist/server/middleware/sanitize.js +171 -0
- package/dist/server/middleware/sanitize.js.map +1 -0
- package/dist/server/routes/asset-api.d.ts +10 -0
- package/dist/server/routes/asset-api.js +294 -0
- package/dist/server/routes/asset-api.js.map +1 -0
- package/dist/server/routes/audit-api.d.ts +24 -0
- package/dist/server/routes/audit-api.js +117 -0
- package/dist/server/routes/audit-api.js.map +1 -0
- package/dist/server/routes/auth-api.d.ts +3 -2
- package/dist/server/routes/auth-api.js +519 -38
- package/dist/server/routes/auth-api.js.map +1 -1
- package/dist/server/routes/capture-api.d.ts +18 -0
- package/dist/server/routes/capture-api.js +257 -0
- package/dist/server/routes/capture-api.js.map +1 -0
- package/dist/server/routes/chat.d.ts +4 -1
- package/dist/server/routes/chat.js +298 -88
- package/dist/server/routes/chat.js.map +1 -1
- package/dist/server/routes/comments-api.d.ts +15 -0
- package/dist/server/routes/comments-api.js +444 -0
- package/dist/server/routes/comments-api.js.map +1 -0
- package/dist/server/routes/config-api.d.ts +21 -0
- package/dist/server/routes/config-api.js +256 -0
- package/dist/server/routes/config-api.js.map +1 -0
- package/dist/server/routes/connectors-api.d.ts +17 -0
- package/dist/server/routes/connectors-api.js +410 -0
- package/dist/server/routes/connectors-api.js.map +1 -0
- package/dist/server/routes/event-ingest-api.d.ts +15 -0
- package/dist/server/routes/event-ingest-api.js +125 -0
- package/dist/server/routes/event-ingest-api.js.map +1 -0
- package/dist/server/routes/git-http.d.ts +3 -3
- package/dist/server/routes/git-http.js +86 -38
- package/dist/server/routes/git-http.js.map +1 -1
- package/dist/server/routes/graph-api-access.d.ts +35 -0
- package/dist/server/routes/graph-api-access.js +105 -0
- package/dist/server/routes/graph-api-access.js.map +1 -0
- package/dist/server/routes/graph-api.d.ts +3 -2
- package/dist/server/routes/graph-api.js +1321 -263
- package/dist/server/routes/graph-api.js.map +1 -1
- package/dist/server/routes/health.d.ts +18 -0
- package/dist/server/routes/health.js +74 -0
- package/dist/server/routes/health.js.map +1 -0
- package/dist/server/routes/insights-api.d.ts +1 -2
- package/dist/server/routes/insights-api.js +149 -41
- package/dist/server/routes/insights-api.js.map +1 -1
- package/dist/server/routes/mcp.d.ts +7 -3
- package/dist/server/routes/mcp.js +22 -6
- package/dist/server/routes/mcp.js.map +1 -1
- package/dist/server/routes/permissions-api.d.ts +9 -2
- package/dist/server/routes/permissions-api.js +87 -30
- package/dist/server/routes/permissions-api.js.map +1 -1
- package/dist/server/routes/r2-api.d.ts +25 -0
- package/dist/server/routes/r2-api.js +276 -0
- package/dist/server/routes/r2-api.js.map +1 -0
- package/dist/server/routes/secrets-api.d.ts +36 -0
- package/dist/server/routes/secrets-api.js +308 -0
- package/dist/server/routes/secrets-api.js.map +1 -0
- package/dist/server/routes/settings-api.d.ts +29 -0
- package/dist/server/routes/settings-api.js +180 -0
- package/dist/server/routes/settings-api.js.map +1 -0
- package/dist/server/routes/url-api.d.ts +7 -0
- package/dist/server/routes/url-api.js +74 -0
- package/dist/server/routes/url-api.js.map +1 -0
- package/dist/server/routes/views-api.js +81 -7
- package/dist/server/routes/views-api.js.map +1 -1
- package/dist/server/routes/workspace-api.d.ts +2 -1
- package/dist/server/routes/workspace-api.js +124 -35
- package/dist/server/routes/workspace-api.js.map +1 -1
- package/dist/server/routes/ws.d.ts +2 -1
- package/dist/server/routes/ws.js +64 -16
- package/dist/server/routes/ws.js.map +1 -1
- package/dist/server/session-manager.d.ts +48 -5
- package/dist/server/session-manager.js +182 -15
- package/dist/server/session-manager.js.map +1 -1
- package/dist/server/ws-hub.d.ts +138 -14
- package/dist/server/ws-hub.js +0 -0
- package/dist/server/ws-hub.js.map +1 -1
- package/dist/server/yjs-manager.d.ts +285 -7
- package/dist/server/yjs-manager.js +907 -36
- package/dist/server/yjs-manager.js.map +1 -1
- package/dist/server/yjs-persistence.d.ts +165 -0
- package/dist/server/yjs-persistence.js +557 -0
- package/dist/server/yjs-persistence.js.map +1 -0
- package/dist/server/yjs-text-diff.d.ts +32 -0
- package/dist/server/yjs-text-diff.js +61 -0
- package/dist/server/yjs-text-diff.js.map +1 -0
- package/dist/services/access-control.d.ts +73 -0
- package/dist/services/access-control.js +146 -0
- package/dist/services/access-control.js.map +1 -0
- package/dist/services/asset-listing.d.ts +39 -0
- package/dist/services/asset-listing.js +125 -0
- package/dist/services/asset-listing.js.map +1 -0
- package/dist/services/asset-upload-service.d.ts +53 -0
- package/dist/services/asset-upload-service.js +201 -0
- package/dist/services/asset-upload-service.js.map +1 -0
- package/dist/services/assets/asset-index-service.d.ts +82 -0
- package/dist/services/assets/asset-index-service.js +167 -0
- package/dist/services/assets/asset-index-service.js.map +1 -0
- package/dist/services/assets/base.d.ts +44 -0
- package/dist/services/assets/base.js +55 -0
- package/dist/services/assets/base.js.map +1 -1
- package/dist/services/assets/index.d.ts +69 -1
- package/dist/services/assets/index.js +125 -0
- package/dist/services/assets/index.js.map +1 -1
- package/dist/services/assets/local.d.ts +12 -1
- package/dist/services/assets/local.js +100 -1
- package/dist/services/assets/local.js.map +1 -1
- package/dist/services/assets/r2-sync.d.ts +88 -0
- package/dist/services/assets/r2-sync.js +412 -0
- package/dist/services/assets/r2-sync.js.map +1 -0
- package/dist/services/assets/r2.d.ts +34 -1
- package/dist/services/assets/r2.js +93 -1
- package/dist/services/assets/r2.js.map +1 -1
- package/dist/services/auth-service.d.ts +314 -36
- package/dist/services/auth-service.js +1126 -139
- package/dist/services/auth-service.js.map +1 -1
- package/dist/services/bookmark-import-service.d.ts +49 -0
- package/dist/services/bookmark-import-service.js +250 -0
- package/dist/services/bookmark-import-service.js.map +1 -0
- package/dist/services/cloud-inference-billing.d.ts +64 -0
- package/dist/services/cloud-inference-billing.js +313 -0
- package/dist/services/cloud-inference-billing.js.map +1 -0
- package/dist/services/comment-service.d.ts +97 -0
- package/dist/services/comment-service.js +341 -0
- package/dist/services/comment-service.js.map +1 -0
- package/dist/services/csv-service.d.ts +22 -17
- package/dist/services/csv-service.js +55 -92
- package/dist/services/csv-service.js.map +1 -1
- package/dist/services/entity-mutations.d.ts +161 -0
- package/dist/services/entity-mutations.js +296 -0
- package/dist/services/entity-mutations.js.map +1 -0
- package/dist/services/event-processor.d.ts +104 -0
- package/dist/services/event-processor.js +441 -0
- package/dist/services/event-processor.js.map +1 -0
- package/dist/services/folder-creation.d.ts +33 -0
- package/dist/services/folder-creation.js +103 -0
- package/dist/services/folder-creation.js.map +1 -0
- package/dist/services/git.d.ts +54 -0
- package/dist/services/git.js +188 -54
- package/dist/services/git.js.map +1 -1
- package/dist/services/graph-maintenance.d.ts +42 -0
- package/dist/services/graph-maintenance.js +143 -0
- package/dist/services/graph-maintenance.js.map +1 -0
- package/dist/services/import-service.d.ts +45 -2
- package/dist/services/import-service.js +304 -100
- package/dist/services/import-service.js.map +1 -1
- package/dist/services/lint-service.js +9 -16
- package/dist/services/lint-service.js.map +1 -1
- package/dist/services/markdown.d.ts +12 -1
- package/dist/services/markdown.js +71 -6
- package/dist/services/markdown.js.map +1 -1
- package/dist/services/memory-service.d.ts +22 -14
- package/dist/services/memory-service.js +53 -35
- package/dist/services/memory-service.js.map +1 -1
- package/dist/services/mention-detector.d.ts +23 -0
- package/dist/services/mention-detector.js +47 -0
- package/dist/services/mention-detector.js.map +1 -0
- package/dist/services/notification-broadcast.d.ts +32 -0
- package/dist/services/notification-broadcast.js +38 -0
- package/dist/services/notification-broadcast.js.map +1 -0
- package/dist/services/notification-service.d.ts +41 -0
- package/dist/services/notification-service.js +100 -0
- package/dist/services/notification-service.js.map +1 -0
- package/dist/services/personal-folder.d.ts +40 -0
- package/dist/services/personal-folder.js +101 -0
- package/dist/services/personal-folder.js.map +1 -0
- package/dist/services/user-person-bridge.d.ts +118 -0
- package/dist/services/user-person-bridge.js +306 -0
- package/dist/services/user-person-bridge.js.map +1 -0
- package/dist/services/vector-service.d.ts +146 -6
- package/dist/services/vector-service.js +276 -13
- package/dist/services/vector-service.js.map +1 -1
- package/dist/services/workspace-access.d.ts +106 -0
- package/dist/services/workspace-access.js +149 -0
- package/dist/services/workspace-access.js.map +1 -0
- package/dist/utils/git.d.ts +17 -2
- package/dist/utils/git.js +23 -7
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/log.d.ts +42 -0
- package/dist/utils/log.js +137 -0
- package/dist/utils/log.js.map +1 -0
- package/dist/utils/preflight.js +2 -2
- package/dist/utils/preflight.js.map +1 -1
- package/dist/utils/version-checker.d.ts +12 -19
- package/dist/utils/version-checker.js +14 -104
- package/dist/utils/version-checker.js.map +1 -1
- package/dist/web/_app/immutable/assets/0.DOumm94J.css +2 -0
- package/dist/web/_app/immutable/assets/13.DlIf1mKh.css +1 -0
- package/dist/web/_app/immutable/assets/14.7d-Q37wc.css +1 -0
- package/dist/web/_app/immutable/assets/15.CmLrbzZp.css +1 -0
- package/dist/web/_app/immutable/assets/2.BftNiAA4.css +1 -0
- package/dist/web/_app/immutable/assets/3.CV0abekd.css +1 -0
- package/dist/web/_app/immutable/assets/4.BgXzUTTk.css +1 -0
- package/dist/web/_app/immutable/assets/9.gsF-Ne6_.css +1 -0
- package/dist/web/_app/immutable/assets/AgentOverlay.CpvH9rhf.css +1 -0
- package/dist/web/_app/immutable/assets/AssetManagerModal.BKJfPAPk.css +1 -0
- package/dist/web/_app/immutable/assets/CalendarView.bNewSxkH.css +1 -0
- package/dist/web/_app/immutable/assets/ChevronDown.Bz0FjM7b.css +1 -0
- package/dist/web/_app/immutable/assets/FolderMembersPanel.DX1oBeF_.css +1 -0
- package/dist/web/_app/immutable/assets/FolderMutationDialogs.BMRF6Z3z.css +1 -0
- package/dist/web/_app/immutable/assets/FolderPicker.B5KdvRYl.css +1 -0
- package/dist/web/_app/immutable/assets/GalleryView.DgvSjS0I.css +1 -0
- package/dist/web/_app/immutable/assets/GraphView.BJtGL9py.css +1 -0
- package/dist/web/_app/immutable/assets/KanbanView.D0QbZFd6.css +1 -0
- package/dist/web/_app/immutable/assets/SettingsDialog.DYWYMFSO.css +1 -0
- package/dist/web/_app/immutable/assets/Spinner.UBfl0pab.css +1 -0
- package/dist/web/_app/immutable/assets/StopFilledAlt.CkPrHdPD.css +1 -0
- package/dist/web/_app/immutable/assets/TimelineView.DA-H6dvv.css +1 -0
- package/dist/web/_app/immutable/assets/WorkspaceView.BS1ildu7.css +1 -0
- package/dist/web/_app/immutable/assets/button.BlLm4Dg1.css +1 -0
- package/dist/web/_app/immutable/assets/formatting.vV0ne105.css +1 -0
- package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff +0 -0
- package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2 +0 -0
- package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff +0 -0
- package/dist/web/_app/immutable/assets/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2 +0 -0
- package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-italic.CZTNEAuW.woff2 +0 -0
- package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-italic.CsGl1sm0.woff +0 -0
- package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2 +0 -0
- package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff +0 -0
- package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-italic.BNK2_mGO.woff2 +0 -0
- package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-italic.DpEwFAQM.woff +0 -0
- package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2 +0 -0
- package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff +0 -0
- package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff +0 -0
- package/dist/web/_app/immutable/assets/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2 +0 -0
- package/dist/web/_app/immutable/assets/inline-list.cqga56xT.css +1 -0
- package/dist/web/_app/immutable/assets/list-columns.BrRrAiZ7.css +1 -0
- package/dist/web/_app/immutable/assets/realtime.DDCWxn3B.css +1 -0
- package/dist/web/_app/immutable/assets/sheet.DJPuqnTg.css +1 -0
- package/dist/web/_app/immutable/assets/speech-dictation.C5CYFhS1.css +1 -0
- package/dist/web/_app/immutable/chunks/0edH8sO82.js +1 -0
- package/dist/web/_app/immutable/chunks/0iDDDyaZ.js +1 -0
- package/dist/web/_app/immutable/chunks/7-y0CE1z.js +1 -0
- package/dist/web/_app/immutable/chunks/7Bu427my2.js +184 -0
- package/dist/web/_app/immutable/chunks/B-V5eMSw2.js +1 -0
- package/dist/web/_app/immutable/chunks/B-i9_YVM.js +1 -0
- package/dist/web/_app/immutable/chunks/B15-kvCe.js +1 -0
- package/dist/web/_app/immutable/chunks/B4cFqqUS.js +3 -0
- package/dist/web/_app/immutable/chunks/B6Lt-qaJ.js +1 -0
- package/dist/web/_app/immutable/chunks/B7hznOQp.js +1 -0
- package/dist/web/_app/immutable/chunks/B7tbGyiU2.js +1 -0
- package/dist/web/_app/immutable/chunks/B8-Lm86o2.js +1 -0
- package/dist/web/_app/immutable/chunks/BBxt8lpa.js +1 -0
- package/dist/web/_app/immutable/chunks/BCaRi2AF.js +1 -0
- package/dist/web/_app/immutable/chunks/BJReLGMs.js +1 -0
- package/dist/web/_app/immutable/chunks/BKzV82vD2.js +83 -0
- package/dist/web/_app/immutable/chunks/BLHrJvbG.js +1 -0
- package/dist/web/_app/immutable/chunks/BQULA6er.js +4 -0
- package/dist/web/_app/immutable/chunks/BQW-EDgP2.js +224 -0
- package/dist/web/_app/immutable/chunks/BR6jMpLB.js +1 -0
- package/dist/web/_app/immutable/chunks/BUBMGU8t2.js +2 -0
- package/dist/web/_app/immutable/chunks/BVnuLlVg.js +1 -0
- package/dist/web/_app/immutable/chunks/BYokDzwE.js +1 -0
- package/dist/web/_app/immutable/chunks/B_Avv9jQ2.js +1 -0
- package/dist/web/_app/immutable/chunks/Bbp76jaT2.js +1 -0
- package/dist/web/_app/immutable/chunks/BddNmQ8j.js +1 -0
- package/dist/web/_app/immutable/chunks/BiJjH5mJ.js +2 -0
- package/dist/web/_app/immutable/chunks/BlyFGPFV.js +22 -0
- package/dist/web/_app/immutable/chunks/Bt88HrRx.js +1 -0
- package/dist/web/_app/immutable/chunks/Bu2iU6hh.js +67 -0
- package/dist/web/_app/immutable/chunks/Buih1pxI.js +1 -0
- package/dist/web/_app/immutable/chunks/BwwLJVvR.js +1 -0
- package/dist/web/_app/immutable/chunks/C0RpyyYZ.js +7 -0
- package/dist/web/_app/immutable/chunks/C2l-EXsT2.js +1 -0
- package/dist/web/_app/immutable/chunks/C35TIzaB.js +1 -0
- package/dist/web/_app/immutable/chunks/C3OdK8z_2.js +1 -0
- package/dist/web/_app/immutable/chunks/C6Nx0jpM.js +1 -0
- package/dist/web/_app/immutable/chunks/CA7O0J_u2.js +1 -0
- package/dist/web/_app/immutable/chunks/CAwjrHdk.js +23 -0
- package/dist/web/_app/immutable/chunks/CCLR-AJL2.js +185 -0
- package/dist/web/_app/immutable/chunks/CD0X7XPW.js +6 -0
- package/dist/web/_app/immutable/chunks/CDTjuBSm2.js +1 -0
- package/dist/web/_app/immutable/chunks/CSUrYOis.js +1 -0
- package/dist/web/_app/immutable/chunks/CUPSJObs.js +1 -0
- package/dist/web/_app/immutable/chunks/CUoGvuxK2.js +2 -0
- package/dist/web/_app/immutable/chunks/CWh8aehb.js +1 -0
- package/dist/web/_app/immutable/chunks/CY4XVBP0.js +1 -0
- package/dist/web/_app/immutable/chunks/CYTTTma0.js +3 -0
- package/dist/web/_app/immutable/chunks/CaoriuNq.js +1 -0
- package/dist/web/_app/immutable/chunks/CcsSt9AW2.js +1 -0
- package/dist/web/_app/immutable/chunks/Cd4VfAZC.js +2 -0
- package/dist/web/_app/immutable/chunks/CePZ1985.js +1 -0
- package/dist/web/_app/immutable/chunks/Cei8CKT4.js +1 -0
- package/dist/web/_app/immutable/chunks/CheXrbDk.js +1 -0
- package/dist/web/_app/immutable/chunks/CkLfUXwy.js +1 -0
- package/dist/web/_app/immutable/chunks/Cl-W0JYt.js +2 -0
- package/dist/web/_app/immutable/chunks/Cna7tYp-.js +1 -0
- package/dist/web/_app/immutable/chunks/Czwe4sGU2.js +3 -0
- package/dist/web/_app/immutable/chunks/D41CbXmM.js +1 -0
- package/dist/web/_app/immutable/chunks/D83_Ss42.js +1 -0
- package/dist/web/_app/immutable/chunks/D9NgbGbO2.js +9 -0
- package/dist/web/_app/immutable/chunks/DA-BuZei.js +2 -0
- package/dist/web/_app/immutable/chunks/DAXW5iLp.js +1 -0
- package/dist/web/_app/immutable/chunks/DCNJWlho2.js +1 -0
- package/dist/web/_app/immutable/chunks/DCtgLRl52.js +1 -0
- package/dist/web/_app/immutable/chunks/DH0epITQ2.js +1 -0
- package/dist/web/_app/immutable/chunks/DIb5rAPU2.js +1 -0
- package/dist/web/_app/immutable/chunks/DOmH4G9o2.js +14 -0
- package/dist/web/_app/immutable/chunks/DQMWa2t7.js +1 -0
- package/dist/web/_app/immutable/chunks/DQ_Xokap2.js +1 -0
- package/dist/web/_app/immutable/chunks/DR1K6PIm.js +1 -0
- package/dist/web/_app/immutable/chunks/DTCHhxD5.js +1 -0
- package/dist/web/_app/immutable/chunks/DU7XA-cL2.js +1 -0
- package/dist/web/_app/immutable/chunks/DVcy5Pp82.js +1 -0
- package/dist/web/_app/immutable/chunks/DWygwzcO2.js +1 -0
- package/dist/web/_app/immutable/chunks/DYXDRmoo2.js +1 -0
- package/dist/web/_app/immutable/chunks/DZEmjBTb.js +5 -0
- package/dist/web/_app/immutable/chunks/DaoOQFPb.js +1 -0
- package/dist/web/_app/immutable/chunks/DdfvtDOY.js +1 -0
- package/dist/web/_app/immutable/chunks/DevZTY1l.js +1 -0
- package/dist/web/_app/immutable/chunks/DiMQob8p.js +1 -0
- package/dist/web/_app/immutable/chunks/DiQJ9DLy.js +1 -0
- package/dist/web/_app/immutable/chunks/Dj5oP_ik.js +2 -0
- package/dist/web/_app/immutable/chunks/DjTJ4D_0.js +3 -0
- package/dist/web/_app/immutable/chunks/Dk4TeNwu.js +1 -0
- package/dist/web/_app/immutable/chunks/Dng3OcRd2.js +1 -0
- package/dist/web/_app/immutable/chunks/Do1OCNEG.js +1 -0
- package/dist/web/_app/immutable/chunks/Do6qOOng.js +1 -0
- package/dist/web/_app/immutable/chunks/DoQwt-f9.js +1 -0
- package/dist/web/_app/immutable/chunks/Dqg3k9HI2.js +1 -0
- package/dist/web/_app/immutable/chunks/DsnqOT222.js +1 -0
- package/dist/web/_app/immutable/chunks/DvJSCDuZ2.js +1 -0
- package/dist/web/_app/immutable/chunks/DvPuaTCl.js +5 -0
- package/dist/web/_app/immutable/chunks/DvYQu1SV.js +1 -0
- package/dist/web/_app/immutable/chunks/HdjeJPly2.js +1 -0
- package/dist/web/_app/immutable/chunks/JDw4tOUY.js +1 -0
- package/dist/web/_app/immutable/chunks/KBbDg4lS2.js +1 -0
- package/dist/web/_app/immutable/chunks/KQXQLJf32.js +1 -0
- package/dist/web/_app/immutable/chunks/LGnNalpn2.js +2 -0
- package/dist/web/_app/immutable/chunks/SH5Fg0Xu.js +1 -0
- package/dist/web/_app/immutable/chunks/Shyla9c12.js +2 -0
- package/dist/web/_app/immutable/chunks/VQbAelHN.js +1 -0
- package/dist/web/_app/immutable/chunks/apNT0aug2.js +1 -0
- package/dist/web/_app/immutable/chunks/e0ySQvQ6.js +1 -0
- package/dist/web/_app/immutable/chunks/eNB_sIHC2.js +1 -0
- package/dist/web/_app/immutable/chunks/g09ZrevW2.js +1 -0
- package/dist/web/_app/immutable/chunks/h4WWBpcD2.js +2692 -0
- package/dist/web/_app/immutable/chunks/kLub81jO.js +1 -0
- package/dist/web/_app/immutable/chunks/kW0z_eo62.js +1 -0
- package/dist/web/_app/immutable/chunks/oBQOivfH.js +1 -0
- package/dist/web/_app/immutable/chunks/ss8hcwTT.js +1 -0
- package/dist/web/_app/immutable/chunks/sub7ikQV.js +2 -0
- package/dist/web/_app/immutable/chunks/uuFM-ygL.js +1 -0
- package/dist/web/_app/immutable/chunks/v7me-ydg.js +2 -0
- package/dist/web/_app/immutable/chunks/xihTtKlq.js +1 -0
- package/dist/web/_app/immutable/chunks/yWi6xIp8.js +1 -0
- package/dist/web/_app/immutable/chunks/zl16E4yc2.js +1 -0
- package/dist/web/_app/immutable/entry/app.Bgniax9U.js +2 -0
- package/dist/web/_app/immutable/entry/start.DeD3x0AC.js +1 -0
- package/dist/web/_app/immutable/nodes/0.D7f7eDDY.js +2 -0
- package/dist/web/_app/immutable/nodes/1.nDAGsQWA.js +1 -0
- package/dist/web/_app/immutable/nodes/10.DFbhcPKT.js +1 -0
- package/dist/web/_app/immutable/nodes/11.CDErrkBt.js +1 -0
- package/dist/web/_app/immutable/nodes/12.QmphOXE2.js +1 -0
- package/dist/web/_app/immutable/nodes/13.Bq5rDhPs.js +1 -0
- package/dist/web/_app/immutable/nodes/14.BlcHqgr6.js +1 -0
- package/dist/web/_app/immutable/nodes/15.COK_-D-x.js +1 -0
- package/dist/web/_app/immutable/nodes/2.DOsCYNHa.js +109 -0
- package/dist/web/_app/immutable/nodes/3.BgE1sIyr.js +2 -0
- package/dist/web/_app/immutable/nodes/4.DvgaHeI4.js +11 -0
- package/dist/web/_app/immutable/nodes/5.CrjeBZES.js +1 -0
- package/dist/web/_app/immutable/nodes/6.DoHxsiEE.js +1 -0
- package/dist/web/_app/immutable/nodes/7.04fnxKIo.js +1 -0
- package/dist/web/_app/immutable/nodes/8.D35_cY6C.js +1 -0
- package/dist/web/_app/immutable/nodes/9.BRionwW6.js +1 -0
- package/dist/web/_app/version.json +1 -1
- package/dist/web/favicon-16.png +0 -0
- package/dist/web/favicon-180.png +0 -0
- package/dist/web/favicon-32.png +0 -0
- package/dist/web/favicon-48.png +0 -0
- package/dist/web/favicon-512.png +0 -0
- package/dist/web/favicon.ico +0 -0
- package/dist/web/favicon.svg +8 -0
- package/dist/web/index.html +56 -19
- package/dist/web/studiograph-logomark.svg +29 -0
- package/package.json +34 -14
- package/dist/agent/skills/enrich-entities.md +0 -136
- package/dist/agent/skills/obsidian-source-setup.md +0 -246
- package/dist/agent/skills/skill-loader.d.ts +0 -48
- package/dist/agent/skills/skill-loader.js +0 -166
- package/dist/agent/skills/skill-loader.js.map +0 -1
- package/dist/agent/skills/sync-configuration.md +0 -119
- package/dist/agent/skills/sync-setup.md +0 -82
- package/dist/agent/tools/sync-tools.d.ts +0 -35
- package/dist/agent/tools/sync-tools.js +0 -992
- package/dist/agent/tools/sync-tools.js.map +0 -1
- package/dist/auth/github.d.ts +0 -56
- package/dist/auth/github.js +0 -169
- package/dist/auth/github.js.map +0 -1
- package/dist/cli/commands/access.d.ts +0 -11
- package/dist/cli/commands/access.js +0 -156
- package/dist/cli/commands/access.js.map +0 -1
- package/dist/cli/commands/app.d.ts +0 -7
- package/dist/cli/commands/app.js +0 -268
- package/dist/cli/commands/app.js.map +0 -1
- package/dist/cli/commands/auth.d.ts +0 -10
- package/dist/cli/commands/auth.js +0 -79
- package/dist/cli/commands/auth.js.map +0 -1
- package/dist/cli/commands/clear.d.ts +0 -5
- package/dist/cli/commands/clear.js +0 -36
- package/dist/cli/commands/clear.js.map +0 -1
- package/dist/cli/commands/collection.d.ts +0 -10
- package/dist/cli/commands/collection.js +0 -187
- package/dist/cli/commands/collection.js.map +0 -1
- package/dist/cli/commands/enrich.d.ts +0 -11
- package/dist/cli/commands/enrich.js +0 -135
- package/dist/cli/commands/enrich.js.map +0 -1
- package/dist/cli/commands/graphrag.d.ts +0 -12
- package/dist/cli/commands/graphrag.js +0 -122
- package/dist/cli/commands/graphrag.js.map +0 -1
- package/dist/cli/commands/join.d.ts +0 -9
- package/dist/cli/commands/join.js +0 -255
- package/dist/cli/commands/join.js.map +0 -1
- package/dist/cli/commands/members.d.ts +0 -11
- package/dist/cli/commands/members.js +0 -230
- package/dist/cli/commands/members.js.map +0 -1
- package/dist/cli/commands/org.d.ts +0 -10
- package/dist/cli/commands/org.js +0 -132
- package/dist/cli/commands/org.js.map +0 -1
- package/dist/cli/commands/provision.d.ts +0 -8
- package/dist/cli/commands/provision.js +0 -116
- package/dist/cli/commands/provision.js.map +0 -1
- package/dist/cli/commands/resolve.d.ts +0 -8
- package/dist/cli/commands/resolve.js +0 -85
- package/dist/cli/commands/resolve.js.map +0 -1
- package/dist/cli/commands/review.d.ts +0 -19
- package/dist/cli/commands/review.js +0 -128
- package/dist/cli/commands/review.js.map +0 -1
- package/dist/cli/commands/source.d.ts +0 -16
- package/dist/cli/commands/source.js +0 -159
- package/dist/cli/commands/source.js.map +0 -1
- package/dist/cli/commands/start.d.ts +0 -7
- package/dist/cli/commands/start.js +0 -589
- package/dist/cli/commands/start.js.map +0 -1
- package/dist/cli/commands/sync-collection.d.ts +0 -14
- package/dist/cli/commands/sync-collection.js +0 -355
- package/dist/cli/commands/sync-collection.js.map +0 -1
- package/dist/cli/commands/sync-entities.d.ts +0 -13
- package/dist/cli/commands/sync-entities.js +0 -242
- package/dist/cli/commands/sync-entities.js.map +0 -1
- package/dist/cli/commands/team.d.ts +0 -12
- package/dist/cli/commands/team.js +0 -185
- package/dist/cli/commands/team.js.map +0 -1
- package/dist/cli/commands/update.d.ts +0 -8
- package/dist/cli/commands/update.js +0 -155
- package/dist/cli/commands/update.js.map +0 -1
- package/dist/cli/commands/user.d.ts +0 -7
- package/dist/cli/commands/user.js +0 -153
- package/dist/cli/commands/user.js.map +0 -1
- package/dist/cli/scaffolding.d.ts +0 -12
- package/dist/cli/scaffolding.js +0 -397
- package/dist/cli/scaffolding.js.map +0 -1
- package/dist/cli/sync-review-interactive.d.ts +0 -31
- package/dist/cli/sync-review-interactive.js +0 -393
- package/dist/cli/sync-review-interactive.js.map +0 -1
- package/dist/core/migration-runner.d.ts +0 -42
- package/dist/core/migration-runner.js +0 -232
- package/dist/core/migration-runner.js.map +0 -1
- package/dist/core/migration-types.d.ts +0 -101
- package/dist/core/migration-types.js +0 -21
- package/dist/core/migration-types.js.map +0 -1
- package/dist/core/migrations/20260219-formalize-memory-location.d.ts +0 -2
- package/dist/core/migrations/20260219-formalize-memory-location.js +0 -35
- package/dist/core/migrations/20260219-formalize-memory-location.js.map +0 -1
- package/dist/core/migrations/20260220-add-workspace-metadata.d.ts +0 -12
- package/dist/core/migrations/20260220-add-workspace-metadata.js +0 -65
- package/dist/core/migrations/20260220-add-workspace-metadata.js.map +0 -1
- package/dist/core/migrations/20260220-add-workspace-readme.d.ts +0 -11
- package/dist/core/migrations/20260220-add-workspace-readme.js +0 -82
- package/dist/core/migrations/20260220-add-workspace-readme.js.map +0 -1
- package/dist/core/migrations/20260220-migrate-yaml-to-json.d.ts +0 -9
- package/dist/core/migrations/20260220-migrate-yaml-to-json.js +0 -64
- package/dist/core/migrations/20260220-migrate-yaml-to-json.js.map +0 -1
- package/dist/core/migrations/index.d.ts +0 -11
- package/dist/core/migrations/index.js +0 -23
- package/dist/core/migrations/index.js.map +0 -1
- package/dist/integrations/asana.d.ts +0 -26
- package/dist/integrations/asana.js +0 -78
- package/dist/integrations/asana.js.map +0 -1
- package/dist/integrations/figma-local.d.ts +0 -16
- package/dist/integrations/figma-local.js +0 -10
- package/dist/integrations/figma-local.js.map +0 -1
- package/dist/integrations/figma.d.ts +0 -17
- package/dist/integrations/figma.js +0 -17
- package/dist/integrations/figma.js.map +0 -1
- package/dist/integrations/granola.d.ts +0 -24
- package/dist/integrations/granola.js +0 -60
- package/dist/integrations/granola.js.map +0 -1
- package/dist/integrations/linear.d.ts +0 -14
- package/dist/integrations/linear.js +0 -80
- package/dist/integrations/linear.js.map +0 -1
- package/dist/integrations/paper-local.d.ts +0 -14
- package/dist/integrations/paper-local.js +0 -10
- package/dist/integrations/paper-local.js.map +0 -1
- package/dist/integrations/paper.d.ts +0 -2
- package/dist/integrations/paper.js +0 -10
- package/dist/integrations/paper.js.map +0 -1
- package/dist/integrations/pipedrive.d.ts +0 -26
- package/dist/integrations/pipedrive.js +0 -97
- package/dist/integrations/pipedrive.js.map +0 -1
- package/dist/integrations/registry.d.ts +0 -15
- package/dist/integrations/registry.js +0 -27
- package/dist/integrations/registry.js.map +0 -1
- package/dist/integrations/types.d.ts +0 -38
- package/dist/integrations/types.js +0 -9
- package/dist/integrations/types.js.map +0 -1
- package/dist/lib/lib/utils.d.ts +0 -2
- package/dist/lib/lib/utils.js +0 -6
- package/dist/lib/lib/utils.js.map +0 -1
- package/dist/mcp/connectors/asana.d.ts +0 -2
- package/dist/mcp/connectors/asana.js +0 -20
- package/dist/mcp/connectors/asana.js.map +0 -1
- package/dist/mcp/connectors/definitions.d.ts +0 -45
- package/dist/mcp/connectors/definitions.js +0 -32
- package/dist/mcp/connectors/definitions.js.map +0 -1
- package/dist/mcp/connectors/figma.d.ts +0 -5
- package/dist/mcp/connectors/figma.js +0 -21
- package/dist/mcp/connectors/figma.js.map +0 -1
- package/dist/mcp/connectors/gdrive.d.ts +0 -2
- package/dist/mcp/connectors/gdrive.js +0 -20
- package/dist/mcp/connectors/gdrive.js.map +0 -1
- package/dist/mcp/connectors/granola.d.ts +0 -2
- package/dist/mcp/connectors/granola.js +0 -12
- package/dist/mcp/connectors/granola.js.map +0 -1
- package/dist/mcp/connectors/linear.d.ts +0 -2
- package/dist/mcp/connectors/linear.js +0 -19
- package/dist/mcp/connectors/linear.js.map +0 -1
- package/dist/mcp/connectors/obsidian.d.ts +0 -2
- package/dist/mcp/connectors/obsidian.js +0 -19
- package/dist/mcp/connectors/obsidian.js.map +0 -1
- package/dist/mcp/connectors/pipedrive.d.ts +0 -2
- package/dist/mcp/connectors/pipedrive.js +0 -20
- package/dist/mcp/connectors/pipedrive.js.map +0 -1
- package/dist/mcp/connectors/slack.d.ts +0 -2
- package/dist/mcp/connectors/slack.js +0 -21
- package/dist/mcp/connectors/slack.js.map +0 -1
- package/dist/mcp/server-oauth-provider.d.ts +0 -56
- package/dist/mcp/server-oauth-provider.js +0 -142
- package/dist/mcp/server-oauth-provider.js.map +0 -1
- package/dist/server/chrome/chrome.css +0 -691
- package/dist/server/chrome/chrome.js +0 -374
- package/dist/server/collab-authority.d.ts +0 -70
- package/dist/server/collab-authority.js +0 -218
- package/dist/server/collab-authority.js.map +0 -1
- package/dist/server/collab.d.ts +0 -29
- package/dist/server/collab.js +0 -195
- package/dist/server/collab.js.map +0 -1
- package/dist/server/commit-scheduler.d.ts +0 -39
- package/dist/server/commit-scheduler.js +0 -113
- package/dist/server/commit-scheduler.js.map +0 -1
- package/dist/server/plugin-loader.d.ts +0 -53
- package/dist/server/plugin-loader.js +0 -155
- package/dist/server/plugin-loader.js.map +0 -1
- package/dist/server/routes/collab.d.ts +0 -6
- package/dist/server/routes/collab.js +0 -10
- package/dist/server/routes/collab.js.map +0 -1
- package/dist/server/routes/git-api.d.ts +0 -9
- package/dist/server/routes/git-api.js +0 -82
- package/dist/server/routes/git-api.js.map +0 -1
- package/dist/server/routes/meeting-ingest-api.d.ts +0 -15
- package/dist/server/routes/meeting-ingest-api.js +0 -323
- package/dist/server/routes/meeting-ingest-api.js.map +0 -1
- package/dist/server/routes/sync-api.d.ts +0 -26
- package/dist/server/routes/sync-api.js +0 -814
- package/dist/server/routes/sync-api.js.map +0 -1
- package/dist/server/routes/webhook.d.ts +0 -14
- package/dist/server/routes/webhook.js +0 -102
- package/dist/server/routes/webhook.js.map +0 -1
- package/dist/services/github-provisioner.d.ts +0 -36
- package/dist/services/github-provisioner.js +0 -126
- package/dist/services/github-provisioner.js.map +0 -1
- package/dist/services/github-service.d.ts +0 -99
- package/dist/services/github-service.js +0 -310
- package/dist/services/github-service.js.map +0 -1
- package/dist/services/insights.d.ts +0 -38
- package/dist/services/insights.js +0 -246
- package/dist/services/insights.js.map +0 -1
- package/dist/services/sync/collection-sync.d.ts +0 -60
- package/dist/services/sync/collection-sync.js +0 -509
- package/dist/services/sync/collection-sync.js.map +0 -1
- package/dist/services/sync/commit.d.ts +0 -60
- package/dist/services/sync/commit.js +0 -354
- package/dist/services/sync/commit.js.map +0 -1
- package/dist/services/sync/context-index.d.ts +0 -69
- package/dist/services/sync/context-index.js +0 -280
- package/dist/services/sync/context-index.js.map +0 -1
- package/dist/services/sync/data-fetcher.d.ts +0 -31
- package/dist/services/sync/data-fetcher.js +0 -12
- package/dist/services/sync/data-fetcher.js.map +0 -1
- package/dist/services/sync/derive.d.ts +0 -34
- package/dist/services/sync/derive.js +0 -164
- package/dist/services/sync/derive.js.map +0 -1
- package/dist/services/sync/enrichment-state.d.ts +0 -31
- package/dist/services/sync/enrichment-state.js +0 -63
- package/dist/services/sync/enrichment-state.js.map +0 -1
- package/dist/services/sync/enrichment.d.ts +0 -25
- package/dist/services/sync/enrichment.js +0 -121
- package/dist/services/sync/enrichment.js.map +0 -1
- package/dist/services/sync/entity-refresh.d.ts +0 -30
- package/dist/services/sync/entity-refresh.js +0 -275
- package/dist/services/sync/entity-refresh.js.map +0 -1
- package/dist/services/sync/frontmatter-extractor.d.ts +0 -40
- package/dist/services/sync/frontmatter-extractor.js +0 -279
- package/dist/services/sync/frontmatter-extractor.js.map +0 -1
- package/dist/services/sync/graph-match-state.d.ts +0 -33
- package/dist/services/sync/graph-match-state.js +0 -61
- package/dist/services/sync/graph-match-state.js.map +0 -1
- package/dist/services/sync/graph-match.d.ts +0 -53
- package/dist/services/sync/graph-match.js +0 -316
- package/dist/services/sync/graph-match.js.map +0 -1
- package/dist/services/sync/graphrag-client.d.ts +0 -43
- package/dist/services/sync/graphrag-client.js +0 -94
- package/dist/services/sync/graphrag-client.js.map +0 -1
- package/dist/services/sync/graphrag-config.d.ts +0 -16
- package/dist/services/sync/graphrag-config.js +0 -39
- package/dist/services/sync/graphrag-config.js.map +0 -1
- package/dist/services/sync/graphrag-context.d.ts +0 -14
- package/dist/services/sync/graphrag-context.js +0 -109
- package/dist/services/sync/graphrag-context.js.map +0 -1
- package/dist/services/sync/graphrag-indexer.d.ts +0 -30
- package/dist/services/sync/graphrag-indexer.js +0 -358
- package/dist/services/sync/graphrag-indexer.js.map +0 -1
- package/dist/services/sync/llm.d.ts +0 -32
- package/dist/services/sync/llm.js +0 -115
- package/dist/services/sync/llm.js.map +0 -1
- package/dist/services/sync/mcp-client.d.ts +0 -71
- package/dist/services/sync/mcp-client.js +0 -299
- package/dist/services/sync/mcp-client.js.map +0 -1
- package/dist/services/sync/model-factory.d.ts +0 -13
- package/dist/services/sync/model-factory.js +0 -38
- package/dist/services/sync/model-factory.js.map +0 -1
- package/dist/services/sync/name-quality.d.ts +0 -31
- package/dist/services/sync/name-quality.js +0 -60
- package/dist/services/sync/name-quality.js.map +0 -1
- package/dist/services/sync/output-schemas.d.ts +0 -92
- package/dist/services/sync/output-schemas.js +0 -43
- package/dist/services/sync/output-schemas.js.map +0 -1
- package/dist/services/sync/prompts.d.ts +0 -19
- package/dist/services/sync/prompts.js +0 -128
- package/dist/services/sync/prompts.js.map +0 -1
- package/dist/services/sync/reconciler.d.ts +0 -48
- package/dist/services/sync/reconciler.js +0 -294
- package/dist/services/sync/reconciler.js.map +0 -1
- package/dist/services/sync/rest-client.d.ts +0 -40
- package/dist/services/sync/rest-client.js +0 -100
- package/dist/services/sync/rest-client.js.map +0 -1
- package/dist/services/sync/source-config.d.ts +0 -67
- package/dist/services/sync/source-config.js +0 -304
- package/dist/services/sync/source-config.js.map +0 -1
- package/dist/services/sync/source-definitions/asana.d.ts +0 -14
- package/dist/services/sync/source-definitions/asana.js +0 -42
- package/dist/services/sync/source-definitions/asana.js.map +0 -1
- package/dist/services/sync/source-definitions/definitions.d.ts +0 -8
- package/dist/services/sync/source-definitions/definitions.js +0 -8
- package/dist/services/sync/source-definitions/definitions.js.map +0 -1
- package/dist/services/sync/source-definitions/gdrive.d.ts +0 -16
- package/dist/services/sync/source-definitions/gdrive.js +0 -68
- package/dist/services/sync/source-definitions/gdrive.js.map +0 -1
- package/dist/services/sync/source-definitions/granola.d.ts +0 -2
- package/dist/services/sync/source-definitions/granola.js +0 -21
- package/dist/services/sync/source-definitions/granola.js.map +0 -1
- package/dist/services/sync/source-definitions/linear.d.ts +0 -2
- package/dist/services/sync/source-definitions/linear.js +0 -62
- package/dist/services/sync/source-definitions/linear.js.map +0 -1
- package/dist/services/sync/source-definitions/obsidian.d.ts +0 -2
- package/dist/services/sync/source-definitions/obsidian.js +0 -55
- package/dist/services/sync/source-definitions/obsidian.js.map +0 -1
- package/dist/services/sync/source-definitions/pipedrive.d.ts +0 -2
- package/dist/services/sync/source-definitions/pipedrive.js +0 -43
- package/dist/services/sync/source-definitions/pipedrive.js.map +0 -1
- package/dist/services/sync/staging.d.ts +0 -53
- package/dist/services/sync/staging.js +0 -130
- package/dist/services/sync/staging.js.map +0 -1
- package/dist/services/sync/structured-extractor.d.ts +0 -57
- package/dist/services/sync/structured-extractor.js +0 -584
- package/dist/services/sync/structured-extractor.js.map +0 -1
- package/dist/services/sync/sync-runner.d.ts +0 -32
- package/dist/services/sync/sync-runner.js +0 -195
- package/dist/services/sync/sync-runner.js.map +0 -1
- package/dist/services/sync/sync-state.d.ts +0 -43
- package/dist/services/sync/sync-state.js +0 -154
- package/dist/services/sync/sync-state.js.map +0 -1
- package/dist/services/sync/types.d.ts +0 -381
- package/dist/services/sync/types.js +0 -8
- package/dist/services/sync/types.js.map +0 -1
- package/dist/services/sync/unstructured-extractor.d.ts +0 -27
- package/dist/services/sync/unstructured-extractor.js +0 -185
- package/dist/services/sync/unstructured-extractor.js.map +0 -1
- package/dist/utils/merge-resolver.d.ts +0 -59
- package/dist/utils/merge-resolver.js +0 -303
- package/dist/utils/merge-resolver.js.map +0 -1
- package/dist/utils/workspace-config.d.ts +0 -8
- package/dist/utils/workspace-config.js +0 -22
- package/dist/utils/workspace-config.js.map +0 -1
- package/dist/web/_app/immutable/assets/0.DdizXOKi.css +0 -1
- package/dist/web/_app/immutable/assets/10.BUrHkYry.css +0 -1
- package/dist/web/_app/immutable/assets/2.n7-yW_Fs.css +0 -1
- package/dist/web/_app/immutable/assets/3.BtaZagnv.css +0 -1
- package/dist/web/_app/immutable/assets/4.DT7X0x5S.css +0 -1
- package/dist/web/_app/immutable/assets/5.DFeGxLYf.css +0 -1
- package/dist/web/_app/immutable/assets/6.CquhUpOu.css +0 -1
- package/dist/web/_app/immutable/assets/7.CjbDRbuG.css +0 -1
- package/dist/web/_app/immutable/assets/8.S1QdUGNM.css +0 -1
- package/dist/web/_app/immutable/assets/9.CT4xL4K3.css +0 -1
- package/dist/web/_app/immutable/assets/Copy.FS8bdfxr.css +0 -1
- package/dist/web/_app/immutable/assets/Toaster.rN8r_Hzv.css +0 -1
- package/dist/web/_app/immutable/assets/ViewToolbar.D-QW2oKe.css +0 -1
- package/dist/web/_app/immutable/assets/index.D6tMDJWk.css +0 -1
- package/dist/web/_app/immutable/chunks/37NdyH6G.js +0 -32
- package/dist/web/_app/immutable/chunks/4Hhzb6pv.js +0 -1
- package/dist/web/_app/immutable/chunks/72bZS3G9.js +0 -1
- package/dist/web/_app/immutable/chunks/7S2LGqoP.js +0 -2
- package/dist/web/_app/immutable/chunks/B-7hHz7B.js +0 -1
- package/dist/web/_app/immutable/chunks/B340SUKR.js +0 -1
- package/dist/web/_app/immutable/chunks/BB_5th5W.js +0 -3383
- package/dist/web/_app/immutable/chunks/BDoWDZaG.js +0 -1
- package/dist/web/_app/immutable/chunks/BFyl1ZHO.js +0 -1
- package/dist/web/_app/immutable/chunks/BS2rFAVq.js +0 -1
- package/dist/web/_app/immutable/chunks/BSsDC_p4.js +0 -1
- package/dist/web/_app/immutable/chunks/BTX2Jr8_.js +0 -1
- package/dist/web/_app/immutable/chunks/BWNY8zw6.js +0 -2
- package/dist/web/_app/immutable/chunks/BdPUVvAi.js +0 -1
- package/dist/web/_app/immutable/chunks/BmsJVLyy.js +0 -1
- package/dist/web/_app/immutable/chunks/BoAosqzE.js +0 -1
- package/dist/web/_app/immutable/chunks/Bs-tL5OR.js +0 -1
- package/dist/web/_app/immutable/chunks/Bsacq2UX.js +0 -1
- package/dist/web/_app/immutable/chunks/BuewkNdS.js +0 -4
- package/dist/web/_app/immutable/chunks/ByunV8un.js +0 -1
- package/dist/web/_app/immutable/chunks/C7VoTosa.js +0 -2
- package/dist/web/_app/immutable/chunks/CDV5Q7RN.js +0 -1
- package/dist/web/_app/immutable/chunks/CJ8__CWt.js +0 -1
- package/dist/web/_app/immutable/chunks/CJUKmosC.js +0 -5
- package/dist/web/_app/immutable/chunks/CSVbGg_b.js +0 -5
- package/dist/web/_app/immutable/chunks/CT6oIU-C.js +0 -1
- package/dist/web/_app/immutable/chunks/CTRxNfZk.js +0 -1
- package/dist/web/_app/immutable/chunks/CWQRQXxy.js +0 -1
- package/dist/web/_app/immutable/chunks/CXH6iFbA.js +0 -1
- package/dist/web/_app/immutable/chunks/CX_61fY8.js +0 -5
- package/dist/web/_app/immutable/chunks/CYrVHOHA.js +0 -1
- package/dist/web/_app/immutable/chunks/CdeYcEuU.js +0 -1
- package/dist/web/_app/immutable/chunks/CmCtpZ1Y.js +0 -1
- package/dist/web/_app/immutable/chunks/CqkleIqs.js +0 -1
- package/dist/web/_app/immutable/chunks/CrdV0ttd.js +0 -1
- package/dist/web/_app/immutable/chunks/CscoF-YL.js +0 -18
- package/dist/web/_app/immutable/chunks/Cx4YdFMk.js +0 -1
- package/dist/web/_app/immutable/chunks/D7ZqAKi9.js +0 -3
- package/dist/web/_app/immutable/chunks/DGbA7IXh.js +0 -2
- package/dist/web/_app/immutable/chunks/DbbB6Up5.js +0 -1
- package/dist/web/_app/immutable/chunks/DnL9f0lc.js +0 -7
- package/dist/web/_app/immutable/chunks/DtM5cEDu.js +0 -1
- package/dist/web/_app/immutable/chunks/Eqahi7_S.js +0 -2
- package/dist/web/_app/immutable/chunks/FFlLQIiS.js +0 -1
- package/dist/web/_app/immutable/chunks/O9Eb9k00.js +0 -1
- package/dist/web/_app/immutable/chunks/PPVm8Dsz.js +0 -1
- package/dist/web/_app/immutable/chunks/QF8MAmnc.js +0 -1
- package/dist/web/_app/immutable/chunks/UjzxCpxn.js +0 -1
- package/dist/web/_app/immutable/chunks/WSUKABI_.js +0 -1
- package/dist/web/_app/immutable/chunks/Y90OgS-9.js +0 -1
- package/dist/web/_app/immutable/chunks/cLyZlkXv.js +0 -1
- package/dist/web/_app/immutable/chunks/iDtAARVW.js +0 -2
- package/dist/web/_app/immutable/chunks/oC_W7W7p.js +0 -1
- package/dist/web/_app/immutable/chunks/rJdWIgh-.js +0 -1
- package/dist/web/_app/immutable/chunks/tvOsokaa.js +0 -1
- package/dist/web/_app/immutable/chunks/uLEXaPwE.js +0 -1
- package/dist/web/_app/immutable/chunks/vSaooFHB.js +0 -1
- package/dist/web/_app/immutable/entry/app.DAR-mtfg.js +0 -2
- package/dist/web/_app/immutable/entry/start.xDnyRaR1.js +0 -1
- package/dist/web/_app/immutable/nodes/0.D0aV-Zro.js +0 -2
- package/dist/web/_app/immutable/nodes/1.C7QoM8qD.js +0 -1
- package/dist/web/_app/immutable/nodes/10.DrDOAjOD.js +0 -1
- package/dist/web/_app/immutable/nodes/2.B0OgNuKW.js +0 -168
- package/dist/web/_app/immutable/nodes/3.BZ4qHGZi.js +0 -1
- package/dist/web/_app/immutable/nodes/4.hm-mxuuj.js +0 -12
- package/dist/web/_app/immutable/nodes/5.Bdbt4fjx.js +0 -4
- package/dist/web/_app/immutable/nodes/6.BXrCI40c.js +0 -2
- package/dist/web/_app/immutable/nodes/7.Chd4i9bm.js +0 -2
- package/dist/web/_app/immutable/nodes/8.B8SF-aNs.js +0 -1
- package/dist/web/_app/immutable/nodes/9.YDeu-RnO.js +0 -1
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Railway-secret provisioning helpers.
|
|
3
|
+
*
|
|
4
|
+
* Phase 2 of the secrets refactor: every Railway deploy needs both
|
|
5
|
+
* STUDIOGRAPH_JWT_SECRET (existing, plan §1) and STUDIOGRAPH_MASTER_KEY
|
|
6
|
+
* (new — encrypts secrets.db) provisioned. We generate them client-side
|
|
7
|
+
* via crypto.randomBytes(32) and POST through the existing GraphQL
|
|
8
|
+
* variableCollectionUpsert mutation.
|
|
9
|
+
*
|
|
10
|
+
* Idempotent: pulls the current variable list first; only sets the keys
|
|
11
|
+
* that are missing. Caller controls how missing vars are surfaced
|
|
12
|
+
* (auto-provision in deploy.ts, prompt in redeploy.ts).
|
|
13
|
+
*/
|
|
14
|
+
export type RailwayQuery = (query: string, variables?: Record<string, unknown>) => Promise<any>;
|
|
15
|
+
export interface RailwayServiceContext {
|
|
16
|
+
projectId: string;
|
|
17
|
+
serviceId: string;
|
|
18
|
+
environmentId: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Variables our deploy paths must guarantee exist. Pre-approved set.
|
|
22
|
+
* Extend here when a new bootstrap-classified env-var lands in the
|
|
23
|
+
* registry.
|
|
24
|
+
*/
|
|
25
|
+
export declare const REQUIRED_RAILWAY_SECRETS: ReadonlyArray<{
|
|
26
|
+
name: string;
|
|
27
|
+
/** Generator: returns a base64-encoded 32-byte secret. */
|
|
28
|
+
generate: () => string;
|
|
29
|
+
/** Human description for the audit log / runbook. */
|
|
30
|
+
description: string;
|
|
31
|
+
}>;
|
|
32
|
+
/**
|
|
33
|
+
* Read the current variable map for a Railway service+environment.
|
|
34
|
+
*
|
|
35
|
+
* Railway's GraphQL exposes per-service variables via the `variables`
|
|
36
|
+
* query. The shape changed across API versions; this helper deals with
|
|
37
|
+
* the modern projectId/environmentId/serviceId triple.
|
|
38
|
+
*/
|
|
39
|
+
export declare function fetchRailwayVariables(query: RailwayQuery, ctx: RailwayServiceContext): Promise<Record<string, string>>;
|
|
40
|
+
/**
|
|
41
|
+
* Determine which of the required secrets are missing from the supplied
|
|
42
|
+
* variable map. Empty-string counts as missing — Railway sometimes emits
|
|
43
|
+
* empty values for variables that were defined but never set.
|
|
44
|
+
*/
|
|
45
|
+
export declare function missingRequiredSecrets(existing: Record<string, string>): typeof REQUIRED_RAILWAY_SECRETS;
|
|
46
|
+
/**
|
|
47
|
+
* Provision any required secret that is missing from the service's
|
|
48
|
+
* environment. Returns the names of the secrets that were generated and
|
|
49
|
+
* set on this call (an empty array means everything was already set).
|
|
50
|
+
*
|
|
51
|
+
* Idempotent — a re-deploy that already has both vars set is a no-op.
|
|
52
|
+
*/
|
|
53
|
+
export declare function provisionRequiredRailwaySecrets(query: RailwayQuery, ctx: RailwayServiceContext): Promise<string[]>;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Railway-secret provisioning helpers.
|
|
3
|
+
*
|
|
4
|
+
* Phase 2 of the secrets refactor: every Railway deploy needs both
|
|
5
|
+
* STUDIOGRAPH_JWT_SECRET (existing, plan §1) and STUDIOGRAPH_MASTER_KEY
|
|
6
|
+
* (new — encrypts secrets.db) provisioned. We generate them client-side
|
|
7
|
+
* via crypto.randomBytes(32) and POST through the existing GraphQL
|
|
8
|
+
* variableCollectionUpsert mutation.
|
|
9
|
+
*
|
|
10
|
+
* Idempotent: pulls the current variable list first; only sets the keys
|
|
11
|
+
* that are missing. Caller controls how missing vars are surfaced
|
|
12
|
+
* (auto-provision in deploy.ts, prompt in redeploy.ts).
|
|
13
|
+
*/
|
|
14
|
+
import { randomBytes } from 'crypto';
|
|
15
|
+
/**
|
|
16
|
+
* Variables our deploy paths must guarantee exist. Pre-approved set.
|
|
17
|
+
* Extend here when a new bootstrap-classified env-var lands in the
|
|
18
|
+
* registry.
|
|
19
|
+
*/
|
|
20
|
+
export const REQUIRED_RAILWAY_SECRETS = [
|
|
21
|
+
{
|
|
22
|
+
name: 'STUDIOGRAPH_JWT_SECRET',
|
|
23
|
+
generate: () => randomBytes(32).toString('base64'),
|
|
24
|
+
description: 'JWT signing secret (auth-service)',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: 'STUDIOGRAPH_MASTER_KEY',
|
|
28
|
+
generate: () => randomBytes(32).toString('base64'),
|
|
29
|
+
description: 'Master key (encrypts secrets.db)',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
/**
|
|
33
|
+
* Read the current variable map for a Railway service+environment.
|
|
34
|
+
*
|
|
35
|
+
* Railway's GraphQL exposes per-service variables via the `variables`
|
|
36
|
+
* query. The shape changed across API versions; this helper deals with
|
|
37
|
+
* the modern projectId/environmentId/serviceId triple.
|
|
38
|
+
*/
|
|
39
|
+
export async function fetchRailwayVariables(query, ctx) {
|
|
40
|
+
const data = await query(`query($projectId: String!, $environmentId: String!, $serviceId: String!) {
|
|
41
|
+
variables(projectId: $projectId, environmentId: $environmentId, serviceId: $serviceId)
|
|
42
|
+
}`, { ...ctx });
|
|
43
|
+
// The `variables` query returns a JSON object map.
|
|
44
|
+
if (data && typeof data.variables === 'object' && data.variables !== null) {
|
|
45
|
+
return data.variables;
|
|
46
|
+
}
|
|
47
|
+
return {};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Determine which of the required secrets are missing from the supplied
|
|
51
|
+
* variable map. Empty-string counts as missing — Railway sometimes emits
|
|
52
|
+
* empty values for variables that were defined but never set.
|
|
53
|
+
*/
|
|
54
|
+
export function missingRequiredSecrets(existing) {
|
|
55
|
+
return REQUIRED_RAILWAY_SECRETS.filter((req) => !existing[req.name]?.trim());
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Provision any required secret that is missing from the service's
|
|
59
|
+
* environment. Returns the names of the secrets that were generated and
|
|
60
|
+
* set on this call (an empty array means everything was already set).
|
|
61
|
+
*
|
|
62
|
+
* Idempotent — a re-deploy that already has both vars set is a no-op.
|
|
63
|
+
*/
|
|
64
|
+
export async function provisionRequiredRailwaySecrets(query, ctx) {
|
|
65
|
+
const existing = await fetchRailwayVariables(query, ctx);
|
|
66
|
+
const missing = missingRequiredSecrets(existing);
|
|
67
|
+
if (missing.length === 0)
|
|
68
|
+
return [];
|
|
69
|
+
const variables = {};
|
|
70
|
+
for (const req of missing) {
|
|
71
|
+
variables[req.name] = req.generate();
|
|
72
|
+
}
|
|
73
|
+
await query(`mutation($input: VariableCollectionUpsertInput!) {
|
|
74
|
+
variableCollectionUpsert(input: $input)
|
|
75
|
+
}`, {
|
|
76
|
+
input: {
|
|
77
|
+
projectId: ctx.projectId,
|
|
78
|
+
environmentId: ctx.environmentId,
|
|
79
|
+
serviceId: ctx.serviceId,
|
|
80
|
+
variables,
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
return missing.map((m) => m.name);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=railway-provisioning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"railway-provisioning.js","sourceRoot":"","sources":["../../src/cli/railway-provisioning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAarC;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAMhC;IACH;QACE,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAClD,WAAW,EAAE,mCAAmC;KACjD;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAClD,WAAW,EAAE,kCAAkC;KAChD;CACF,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAmB,EACnB,GAA0B;IAE1B,MAAM,IAAI,GAAG,MAAM,KAAK,CACtB;;MAEE,EACF,EAAE,GAAG,GAAG,EAAE,CACX,CAAC;IACF,mDAAmD;IACnD,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC1E,OAAO,IAAI,CAAC,SAAmC,CAAC;IAClD,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAgC;IAEhC,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,KAAmB,EACnB,GAA0B;IAE1B,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IACvC,CAAC;IACD,MAAM,KAAK,CACT;;MAEE,EACF;QACE,KAAK,EAAE;YACL,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,SAAS;SACV;KACF,CACF,CAAC;IACF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -9,16 +9,16 @@ export declare const MODEL_PROVIDERS: {
|
|
|
9
9
|
readonly anthropic: {
|
|
10
10
|
readonly name: "Anthropic (Claude)";
|
|
11
11
|
readonly models: readonly [{
|
|
12
|
-
readonly id: "claude-sonnet-4-
|
|
13
|
-
readonly name: "Claude Sonnet 4.
|
|
12
|
+
readonly id: "claude-sonnet-4-6";
|
|
13
|
+
readonly name: "Claude Sonnet 4.6";
|
|
14
14
|
readonly hint: "Recommended";
|
|
15
15
|
}, {
|
|
16
|
-
readonly id: "claude-opus-4-
|
|
17
|
-
readonly name: "Claude Opus 4.
|
|
16
|
+
readonly id: "claude-opus-4-7";
|
|
17
|
+
readonly name: "Claude Opus 4.7";
|
|
18
18
|
readonly hint: "Most capable";
|
|
19
19
|
}, {
|
|
20
|
-
readonly id: "claude-
|
|
21
|
-
readonly name: "Claude
|
|
20
|
+
readonly id: "claude-haiku-4-5-20251001";
|
|
21
|
+
readonly name: "Claude Haiku 4.5";
|
|
22
22
|
readonly hint: "Fastest";
|
|
23
23
|
}];
|
|
24
24
|
readonly envVar: "ANTHROPIC_API_KEY";
|
|
@@ -26,59 +26,40 @@ export declare const MODEL_PROVIDERS: {
|
|
|
26
26
|
readonly openai: {
|
|
27
27
|
readonly name: "OpenAI (GPT)";
|
|
28
28
|
readonly models: readonly [{
|
|
29
|
-
readonly id: "gpt-
|
|
30
|
-
readonly name: "GPT-
|
|
31
|
-
readonly hint: "Recommended";
|
|
29
|
+
readonly id: "gpt-5.5";
|
|
30
|
+
readonly name: "GPT-5.5";
|
|
31
|
+
readonly hint: "Recommended (latest GA)";
|
|
32
|
+
}, {
|
|
33
|
+
readonly id: "gpt-5.5-pro";
|
|
34
|
+
readonly name: "GPT-5.5 Pro";
|
|
35
|
+
readonly hint: "Most capable";
|
|
32
36
|
}, {
|
|
33
|
-
readonly id: "gpt-
|
|
34
|
-
readonly name: "GPT-
|
|
35
|
-
readonly hint: "
|
|
37
|
+
readonly id: "gpt-5.4-mini";
|
|
38
|
+
readonly name: "GPT-5.4 Mini";
|
|
39
|
+
readonly hint: "Fast & cheap";
|
|
36
40
|
}];
|
|
37
41
|
readonly envVar: "OPENAI_API_KEY";
|
|
38
42
|
};
|
|
39
43
|
readonly google: {
|
|
40
44
|
readonly name: "Google (Gemini)";
|
|
41
45
|
readonly models: readonly [{
|
|
42
|
-
readonly id: "gemini-2.
|
|
43
|
-
readonly name: "Gemini 2.
|
|
44
|
-
readonly hint: "
|
|
46
|
+
readonly id: "gemini-2.5-pro";
|
|
47
|
+
readonly name: "Gemini 2.5 Pro";
|
|
48
|
+
readonly hint: "Recommended (GA)";
|
|
45
49
|
}, {
|
|
46
|
-
readonly id: "gemini-1
|
|
47
|
-
readonly name: "Gemini 1
|
|
48
|
-
readonly hint: "
|
|
49
|
-
}];
|
|
50
|
-
readonly envVar: "GOOGLE_API_KEY";
|
|
51
|
-
};
|
|
52
|
-
readonly xai: {
|
|
53
|
-
readonly name: "xAI (Grok)";
|
|
54
|
-
readonly models: readonly [{
|
|
55
|
-
readonly id: "grok-2-1212";
|
|
56
|
-
readonly name: "Grok 2";
|
|
57
|
-
readonly hint: "Latest";
|
|
58
|
-
}];
|
|
59
|
-
readonly envVar: "XAI_API_KEY";
|
|
60
|
-
};
|
|
61
|
-
readonly groq: {
|
|
62
|
-
readonly name: "Groq (Fast Inference)";
|
|
63
|
-
readonly models: readonly [{
|
|
64
|
-
readonly id: "llama-3.3-70b-versatile";
|
|
65
|
-
readonly name: "Llama 3.3 70B";
|
|
66
|
-
readonly hint: "Very fast";
|
|
67
|
-
}];
|
|
68
|
-
readonly envVar: "GROQ_API_KEY";
|
|
69
|
-
};
|
|
70
|
-
readonly openrouter: {
|
|
71
|
-
readonly name: "OpenRouter";
|
|
72
|
-
readonly models: readonly [{
|
|
73
|
-
readonly id: "anthropic/claude-opus-4-6";
|
|
74
|
-
readonly name: "Claude Opus 4.6";
|
|
75
|
-
readonly hint: "Via OpenRouter";
|
|
50
|
+
readonly id: "gemini-3.1-pro-preview";
|
|
51
|
+
readonly name: "Gemini 3.1 Pro Preview";
|
|
52
|
+
readonly hint: "Newest (preview — may rotate)";
|
|
76
53
|
}, {
|
|
77
|
-
readonly id: "
|
|
78
|
-
readonly name: "
|
|
79
|
-
readonly hint: "
|
|
54
|
+
readonly id: "gemini-2.5-flash";
|
|
55
|
+
readonly name: "Gemini 2.5 Flash";
|
|
56
|
+
readonly hint: "Fast & cheap";
|
|
57
|
+
}, {
|
|
58
|
+
readonly id: "gemini-pro-latest";
|
|
59
|
+
readonly name: "Gemini Pro Latest";
|
|
60
|
+
readonly hint: "Rolling alias";
|
|
80
61
|
}];
|
|
81
|
-
readonly envVar: "
|
|
62
|
+
readonly envVar: "GOOGLE_API_KEY";
|
|
82
63
|
};
|
|
83
64
|
};
|
|
84
65
|
/**
|
|
@@ -87,7 +68,7 @@ export declare const MODEL_PROVIDERS: {
|
|
|
87
68
|
*/
|
|
88
69
|
export declare function promptLLMSetupIfNeeded(): Promise<void>;
|
|
89
70
|
/**
|
|
90
|
-
* Detect
|
|
91
|
-
*
|
|
71
|
+
* Detect connectors in the workspace and report missing ones.
|
|
72
|
+
* @deprecated Sync pipeline removed — this is a no-op stub kept for API compat.
|
|
92
73
|
*/
|
|
93
|
-
export declare function promptConnectorSetup(
|
|
74
|
+
export declare function promptConnectorSetup(_workspacePath: string): Promise<number>;
|
package/dist/cli/setup-wizard.js
CHANGED
|
@@ -7,57 +7,41 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { confirm, select, password, log, isCancel } from '@clack/prompts';
|
|
9
9
|
import { loadUserConfig, saveUserConfig } from '../core/user-config.js';
|
|
10
|
-
import {
|
|
11
|
-
// Connector definitions removed — connectors are user-configured
|
|
12
|
-
import { SourceConfigManager } from '../services/sync/source-config.js';
|
|
10
|
+
import { tryResolve } from '../core/secrets/read-flip.js';
|
|
13
11
|
export const MODEL_PROVIDERS = {
|
|
14
12
|
anthropic: {
|
|
15
13
|
name: 'Anthropic (Claude)',
|
|
16
14
|
models: [
|
|
17
|
-
{ id: 'claude-sonnet-4-
|
|
18
|
-
{ id: 'claude-opus-4-
|
|
19
|
-
{ id: 'claude-
|
|
15
|
+
{ id: 'claude-sonnet-4-6', name: 'Claude Sonnet 4.6', hint: 'Recommended' },
|
|
16
|
+
{ id: 'claude-opus-4-7', name: 'Claude Opus 4.7', hint: 'Most capable' },
|
|
17
|
+
{ id: 'claude-haiku-4-5-20251001', name: 'Claude Haiku 4.5', hint: 'Fastest' },
|
|
20
18
|
],
|
|
21
19
|
envVar: 'ANTHROPIC_API_KEY',
|
|
22
20
|
},
|
|
23
21
|
openai: {
|
|
24
22
|
name: 'OpenAI (GPT)',
|
|
25
23
|
models: [
|
|
26
|
-
{ id: 'gpt-
|
|
27
|
-
{ id: 'gpt-
|
|
24
|
+
{ id: 'gpt-5.5', name: 'GPT-5.5', hint: 'Recommended (latest GA)' },
|
|
25
|
+
{ id: 'gpt-5.5-pro', name: 'GPT-5.5 Pro', hint: 'Most capable' },
|
|
26
|
+
{ id: 'gpt-5.4-mini', name: 'GPT-5.4 Mini', hint: 'Fast & cheap' },
|
|
28
27
|
],
|
|
29
28
|
envVar: 'OPENAI_API_KEY',
|
|
30
29
|
},
|
|
31
30
|
google: {
|
|
32
31
|
name: 'Google (Gemini)',
|
|
33
32
|
models: [
|
|
34
|
-
{ id: 'gemini-2.
|
|
35
|
-
{ id: 'gemini-1
|
|
33
|
+
{ id: 'gemini-2.5-pro', name: 'Gemini 2.5 Pro', hint: 'Recommended (GA)' },
|
|
34
|
+
{ id: 'gemini-3.1-pro-preview', name: 'Gemini 3.1 Pro Preview', hint: 'Newest (preview — may rotate)' },
|
|
35
|
+
{ id: 'gemini-2.5-flash', name: 'Gemini 2.5 Flash', hint: 'Fast & cheap' },
|
|
36
|
+
{ id: 'gemini-pro-latest', name: 'Gemini Pro Latest', hint: 'Rolling alias' },
|
|
36
37
|
],
|
|
37
38
|
envVar: 'GOOGLE_API_KEY',
|
|
38
39
|
},
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
envVar: 'XAI_API_KEY',
|
|
45
|
-
},
|
|
46
|
-
groq: {
|
|
47
|
-
name: 'Groq (Fast Inference)',
|
|
48
|
-
models: [
|
|
49
|
-
{ id: 'llama-3.3-70b-versatile', name: 'Llama 3.3 70B', hint: 'Very fast' },
|
|
50
|
-
],
|
|
51
|
-
envVar: 'GROQ_API_KEY',
|
|
52
|
-
},
|
|
53
|
-
openrouter: {
|
|
54
|
-
name: 'OpenRouter',
|
|
55
|
-
models: [
|
|
56
|
-
{ id: 'anthropic/claude-opus-4-6', name: 'Claude Opus 4.6', hint: 'Via OpenRouter' },
|
|
57
|
-
{ id: 'openai/gpt-4o', name: 'GPT-4o', hint: 'Via OpenRouter' },
|
|
58
|
-
],
|
|
59
|
-
envVar: 'OPENROUTER_API_KEY',
|
|
60
|
-
},
|
|
40
|
+
// Note: pi-ai and src/core/user-config.ts:createModel also support xai,
|
|
41
|
+
// groq, and openrouter via OpenAI-compatible endpoints. They're not
|
|
42
|
+
// exposed in the wizard until each has been verified end-to-end against
|
|
43
|
+
// the agent's tool-calling + streaming. Set MODEL_PROVIDER=<id> manually
|
|
44
|
+
// to use them in the meantime.
|
|
61
45
|
};
|
|
62
46
|
/**
|
|
63
47
|
* Prompt for LLM provider setup if not configured.
|
|
@@ -65,6 +49,21 @@ export const MODEL_PROVIDERS = {
|
|
|
65
49
|
*/
|
|
66
50
|
export async function promptLLMSetupIfNeeded() {
|
|
67
51
|
const userConfig = loadUserConfig();
|
|
52
|
+
// Phase 6 read-flip: check the encrypted store first. If the
|
|
53
|
+
// per-provider key is set, treat the model as "already configured"
|
|
54
|
+
// and skip the prompt. We need `model.provider` to know WHICH
|
|
55
|
+
// per-provider slot to read; if provider isn't set, no key is
|
|
56
|
+
// considered configured yet.
|
|
57
|
+
const storeProvider = tryResolve('model.provider');
|
|
58
|
+
if (storeProvider) {
|
|
59
|
+
const storeApiKey = tryResolve(`model.${storeProvider}.api_key`);
|
|
60
|
+
if (storeApiKey) {
|
|
61
|
+
const providerKey = storeProvider;
|
|
62
|
+
const providerLabel = MODEL_PROVIDERS[providerKey]?.name.replace(/\s*\(.*\)/, '') ?? storeProvider;
|
|
63
|
+
log.success(`AI model configured (${providerLabel})`);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
68
67
|
// Check if already configured via user config
|
|
69
68
|
if (userConfig.api_key) {
|
|
70
69
|
const providerKey = userConfig.model_provider;
|
|
@@ -74,14 +73,9 @@ export async function promptLLMSetupIfNeeded() {
|
|
|
74
73
|
log.success(`AI model configured (${providerLabel})`);
|
|
75
74
|
return;
|
|
76
75
|
}
|
|
77
|
-
// Check generic MODEL_API_KEY
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
const providerLabel = MODEL_PROVIDERS[provider]?.name ?? provider;
|
|
81
|
-
log.success(`AI model configured (${providerLabel} via MODEL_API_KEY)`);
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
// Check common env vars
|
|
76
|
+
// Check common per-provider env vars. The generic MODEL_API_KEY env
|
|
77
|
+
// was retired with Phase 12c (2026-05-12) — operators set the
|
|
78
|
+
// provider-specific env directly.
|
|
85
79
|
const envProviders = [
|
|
86
80
|
{ key: 'ANTHROPIC_API_KEY', name: 'Anthropic', provider: 'anthropic' },
|
|
87
81
|
{ key: 'OPENAI_API_KEY', name: 'OpenAI', provider: 'openai' },
|
|
@@ -107,12 +101,14 @@ export async function promptLLMSetupIfNeeded() {
|
|
|
107
101
|
}
|
|
108
102
|
// Skip interactive prompt if no TTY (headless / Railway / CI)
|
|
109
103
|
if (!process.stdout.isTTY) {
|
|
110
|
-
log.info('No AI model configured. Set
|
|
104
|
+
log.info('No AI model configured. Set ANTHROPIC_API_KEY (or another provider env var) and MODEL_PROVIDER environment variables.');
|
|
111
105
|
return;
|
|
112
106
|
}
|
|
113
|
-
// Prompt for setup
|
|
107
|
+
// Prompt for setup. The model is required by the agent runtime that
|
|
108
|
+
// runs inside `studiograph serve` (web chat + tool execution); both
|
|
109
|
+
// `serve` and `clone` invoke this wizard.
|
|
114
110
|
const wantSetup = await confirm({
|
|
115
|
-
message: 'Set up an AI model? (required for
|
|
111
|
+
message: 'Set up an AI model? (required for the agent)',
|
|
116
112
|
initialValue: true,
|
|
117
113
|
});
|
|
118
114
|
if (!wantSetup || typeof wantSetup === 'symbol') {
|
|
@@ -161,31 +157,10 @@ export async function promptLLMSetupIfNeeded() {
|
|
|
161
157
|
log.success(`AI model configured: ${provider.name} — ${modelChoice}`);
|
|
162
158
|
}
|
|
163
159
|
/**
|
|
164
|
-
* Detect
|
|
165
|
-
*
|
|
160
|
+
* Detect connectors in the workspace and report missing ones.
|
|
161
|
+
* @deprecated Sync pipeline removed — this is a no-op stub kept for API compat.
|
|
166
162
|
*/
|
|
167
|
-
export async function promptConnectorSetup(
|
|
168
|
-
|
|
169
|
-
const sources = sourceManager.getAll();
|
|
170
|
-
if (sources.length === 0) {
|
|
171
|
-
return 0;
|
|
172
|
-
}
|
|
173
|
-
// Find unique connector names referenced by enabled sources
|
|
174
|
-
const referencedConnectors = [...new Set(sources.filter(s => s.enabled).map(s => s.connector))];
|
|
175
|
-
const existingConnectors = ConnectorManager.loadConfigs(workspacePath);
|
|
176
|
-
const existingNames = new Set(existingConnectors.map(c => c.name));
|
|
177
|
-
const missingConnectors = referencedConnectors.filter(name => !existingNames.has(name));
|
|
178
|
-
if (missingConnectors.length === 0) {
|
|
179
|
-
log.success(`All ${referencedConnectors.length} sync connector(s) already configured`);
|
|
180
|
-
return 0;
|
|
181
|
-
}
|
|
182
|
-
log.info(`This workspace syncs from ${sources.length} source(s). ${missingConnectors.length} connector(s) need setup.`);
|
|
183
|
-
let configured = 0;
|
|
184
|
-
for (const connectorName of missingConnectors) {
|
|
185
|
-
log.warn(`Connector "${connectorName}" not configured. Set up with:`);
|
|
186
|
-
log.info(` studiograph connector add ${connectorName} --url <mcp-server-url> --token <api-token>`);
|
|
187
|
-
configured++;
|
|
188
|
-
}
|
|
189
|
-
return configured;
|
|
163
|
+
export async function promptConnectorSetup(_workspacePath) {
|
|
164
|
+
return 0;
|
|
190
165
|
}
|
|
191
166
|
//# sourceMappingURL=setup-wizard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-wizard.js","sourceRoot":"","sources":["../../src/cli/setup-wizard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAQ,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"setup-wizard.js","sourceRoot":"","sources":["../../src/cli/setup-wizard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAQ,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAK1D,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,SAAS,EAAE;QACT,IAAI,EAAE,oBAAoB;QAC1B,MAAM,EAAE;YACN,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,aAAa,EAAE;YAC3E,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,cAAc,EAAE;YACxE,EAAE,EAAE,EAAE,2BAA2B,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;SAC/E;QACD,MAAM,EAAE,mBAAmB;KAC5B;IACD,MAAM,EAAE;QACN,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE;YACN,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,yBAAyB,EAAE;YACnE,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE;YAChE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE;SACnE;QACD,MAAM,EAAE,gBAAgB;KACzB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE;YACN,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,EAAE;YAC1E,EAAE,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,+BAA+B,EAAE;YACvG,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE;YAC1E,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,eAAe,EAAE;SAC9E;QACD,MAAM,EAAE,gBAAgB;KACzB;IACD,wEAAwE;IACxE,oEAAoE;IACpE,wEAAwE;IACxE,yEAAyE;IACzE,+BAA+B;CACvB,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IAEpC,6DAA6D;IAC7D,mEAAmE;IACnE,8DAA8D;IAC9D,8DAA8D;IAC9D,6BAA6B;IAC7B,MAAM,aAAa,GAAG,UAAU,CAAS,gBAAgB,CAAC,CAAC;IAC3D,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,UAAU,CAAS,SAAS,aAAa,UAAU,CAAC,CAAC;QACzE,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,WAAW,GAAG,aAA6C,CAAC;YAClE,MAAM,aAAa,GAAG,eAAe,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC;YACnG,GAAG,CAAC,OAAO,CAAC,wBAAwB,aAAa,GAAG,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,UAAU,CAAC,cAA0D,CAAC;QAC1F,MAAM,aAAa,GAAG,WAAW;YAC/B,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,WAAW;YAC5E,CAAC,CAAC,YAAY,CAAC;QACjB,GAAG,CAAC,OAAO,CAAC,wBAAwB,aAAa,GAAG,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,oEAAoE;IACpE,8DAA8D;IAC9D,kCAAkC;IAClC,MAAM,YAAY,GAAG;QACnB,EAAE,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE;QACtE,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE;QAC7D,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE;QAC7D,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;QACpD,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;QACvD,EAAE,GAAG,EAAE,oBAAoB,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE;KAC1E,CAAC;IAEF,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,YAAY,EAAE,CAAC;QACnD,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,6EAA6E;YAC7E,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;gBAC/B,UAAU,CAAC,cAAc,GAAG,QAAQ,CAAC;gBACrC,MAAM,YAAY,GAAG,eAAe,CAAC,QAAwC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC9F,IAAI,YAAY,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACzC,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAC;gBACrC,CAAC;gBACD,cAAc,CAAC,UAAU,CAAC,CAAC;YAC7B,CAAC;YACD,GAAG,CAAC,OAAO,CAAC,wBAAwB,IAAI,QAAQ,GAAG,GAAG,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,uHAAuH,CAAC,CAAC;QAClI,OAAO;IACT,CAAC;IAED,oEAAoE;IACpE,oEAAoE;IACpE,0CAA0C;IAC1C,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC;QAC9B,OAAO,EAAE,8CAA8C;QACvD,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChD,GAAG,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAC/D,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC;QAClC,OAAO,EAAE,qBAAqB;QAC9B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YACjE,KAAK,EAAE,GAAG;YACV,KAAK,EAAE,QAAQ,CAAC,IAAI;SACrB,CAAC,CAAC;KACJ,CAAC,CAAC;IAEH,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAC/D,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,cAA8C,CAAC,CAAC;IAEjF,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC;QAC/B,OAAO,EAAE,UAAU,QAAQ,CAAC,IAAI,SAAS;QACzC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjC,KAAK,EAAE,CAAC,CAAC,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,IAAI;YACb,IAAI,EAAE,CAAC,CAAC,IAAI;SACb,CAAC,CAAC;KACJ,CAAC,CAAC;IAEH,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,GAAG,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAC/D,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC;QACjC,OAAO,EAAE,cAAc,QAAQ,CAAC,IAAI,WAAW;QAC/C,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE;gBAAE,OAAO,yBAAyB,CAAC;QAC3E,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAC/D,OAAO;IACT,CAAC;IAED,UAAU,CAAC,cAAc,GAAG,cAAwB,CAAC;IACrD,UAAU,CAAC,QAAQ,GAAG,WAAqB,CAAC;IAC5C,UAAU,CAAC,OAAO,GAAI,WAAsB,CAAC,IAAI,EAAE,CAAC;IACpD,cAAc,CAAC,UAAU,CAAC,CAAC;IAC3B,GAAG,CAAC,OAAO,CAAC,wBAAwB,QAAQ,CAAC,IAAI,MAAM,WAAW,EAAE,CAAC,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,cAAsB;IAC/D,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared accent color palette — used for user profile color picker and
|
|
3
|
+
* for assigning default colors to newly created users.
|
|
4
|
+
*
|
|
5
|
+
* Each entry is a single color chosen to remain readable on both light and
|
|
6
|
+
* dark surfaces, so the CSS token layer (see applyAccentColor in
|
|
7
|
+
* stores/workspace.svelte.ts) no longer flips foreground vs. background
|
|
8
|
+
* swatches based on theme — one color fills every accent role.
|
|
9
|
+
*/
|
|
10
|
+
export interface AccentColor {
|
|
11
|
+
name: string;
|
|
12
|
+
/** Single swatch used on both light and dark backgrounds. Stored as the
|
|
13
|
+
* identity for a user's chosen accent (preferences.accent_color). */
|
|
14
|
+
color: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const ACCENT_PALETTE: AccentColor[];
|
|
17
|
+
/**
|
|
18
|
+
* Pick a deterministic default accent color for a new user, rotating
|
|
19
|
+
* through the palette based on their user id. Optionally excludes a
|
|
20
|
+
* reserved color (typically the workspace accent) to avoid collision.
|
|
21
|
+
*/
|
|
22
|
+
export declare function pickDefaultAccentColor(userId: number, reserved?: string | null): string;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared accent color palette — used for user profile color picker and
|
|
3
|
+
* for assigning default colors to newly created users.
|
|
4
|
+
*
|
|
5
|
+
* Each entry is a single color chosen to remain readable on both light and
|
|
6
|
+
* dark surfaces, so the CSS token layer (see applyAccentColor in
|
|
7
|
+
* stores/workspace.svelte.ts) no longer flips foreground vs. background
|
|
8
|
+
* swatches based on theme — one color fills every accent role.
|
|
9
|
+
*/
|
|
10
|
+
// The accent palette. Order matches the design source (left to right).
|
|
11
|
+
// Red doubles as --color-accent and Violet as --color-agent so the global
|
|
12
|
+
// system tokens always have a palette member to match; users can still pick
|
|
13
|
+
// either for their personal avatar.
|
|
14
|
+
// Ordered for the picker: red-family first (Red → Rose → Orange),
|
|
15
|
+
// then earthy/green (Sand → Pistachio → Mint), cool middle (Teal → Sky → Slate),
|
|
16
|
+
// and purples/magenta last (Violet → Lilac → Orchid → Pink).
|
|
17
|
+
export const ACCENT_PALETTE = [
|
|
18
|
+
{ name: 'Red', color: '#FE3C3C' },
|
|
19
|
+
{ name: 'Rose', color: '#C06A6A' },
|
|
20
|
+
{ name: 'Orange', color: '#CC7013' },
|
|
21
|
+
{ name: 'Sand', color: '#AB8630' },
|
|
22
|
+
{ name: 'Pistachio', color: '#5A9A08' },
|
|
23
|
+
{ name: 'Mint', color: '#369770' },
|
|
24
|
+
{ name: 'Teal', color: '#289795' },
|
|
25
|
+
{ name: 'Sky', color: '#4289C4' },
|
|
26
|
+
{ name: 'Slate', color: '#718599' },
|
|
27
|
+
{ name: 'Violet', color: '#7C7CD9' },
|
|
28
|
+
{ name: 'Lilac', color: '#B267F3' },
|
|
29
|
+
{ name: 'Orchid', color: '#B269C0' },
|
|
30
|
+
{ name: 'Pink', color: '#DC6CD4' },
|
|
31
|
+
];
|
|
32
|
+
/**
|
|
33
|
+
* Pick a deterministic default accent color for a new user, rotating
|
|
34
|
+
* through the palette based on their user id. Optionally excludes a
|
|
35
|
+
* reserved color (typically the workspace accent) to avoid collision.
|
|
36
|
+
*/
|
|
37
|
+
export function pickDefaultAccentColor(userId, reserved) {
|
|
38
|
+
const reservedLower = reserved?.toLowerCase();
|
|
39
|
+
const pool = reservedLower
|
|
40
|
+
? ACCENT_PALETTE.filter(c => c.color.toLowerCase() !== reservedLower)
|
|
41
|
+
: ACCENT_PALETTE;
|
|
42
|
+
if (pool.length === 0)
|
|
43
|
+
return ACCENT_PALETTE[0].color;
|
|
44
|
+
const idx = ((userId - 1) % pool.length + pool.length) % pool.length;
|
|
45
|
+
return pool[idx].color;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=accent-palette.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accent-palette.js","sourceRoot":"","sources":["../../src/core/accent-palette.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,uEAAuE;AACvE,0EAA0E;AAC1E,4EAA4E;AAC5E,oCAAoC;AACpC,kEAAkE;AAClE,iFAAiF;AACjF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,cAAc,GAAkB;IAC5C,EAAE,IAAI,EAAE,KAAK,EAAQ,KAAK,EAAE,SAAS,EAAE;IACvC,EAAE,IAAI,EAAE,MAAM,EAAO,KAAK,EAAE,SAAS,EAAE;IACvC,EAAE,IAAI,EAAE,QAAQ,EAAK,KAAK,EAAE,SAAS,EAAE;IACvC,EAAE,IAAI,EAAE,MAAM,EAAO,KAAK,EAAE,SAAS,EAAE;IACvC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE;IACvC,EAAE,IAAI,EAAE,MAAM,EAAO,KAAK,EAAE,SAAS,EAAE;IACvC,EAAE,IAAI,EAAE,MAAM,EAAO,KAAK,EAAE,SAAS,EAAE;IACvC,EAAE,IAAI,EAAE,KAAK,EAAQ,KAAK,EAAE,SAAS,EAAE;IACvC,EAAE,IAAI,EAAE,OAAO,EAAM,KAAK,EAAE,SAAS,EAAE;IACvC,EAAE,IAAI,EAAE,QAAQ,EAAK,KAAK,EAAE,SAAS,EAAE;IACvC,EAAE,IAAI,EAAE,OAAO,EAAM,KAAK,EAAE,SAAS,EAAE;IACvC,EAAE,IAAI,EAAE,QAAQ,EAAK,KAAK,EAAE,SAAS,EAAE;IACvC,EAAE,IAAI,EAAE,MAAM,EAAO,KAAK,EAAE,SAAS,EAAE;CACvC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAc,EAAE,QAAwB;IAC9E,MAAM,aAAa,GAAG,QAAQ,EAAE,WAAW,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,aAAa;QACzB,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC;QACrE,CAAC,CAAC,cAAc,CAAC;IAClB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACrE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server-side validation for dataset cell-anchored comments.
|
|
3
|
+
*
|
|
4
|
+
* The full anchor model + the (pure, client-side) resolver live in the web
|
|
5
|
+
* app at `web/src/lib/utils/cell-anchor.ts` — resolution recomputes
|
|
6
|
+
* `{row, col}` against the live grid on every render and never runs on the
|
|
7
|
+
* server. The server's only job is to guard the write path: a cell comment
|
|
8
|
+
* stores its anchor JSON in the existing `anchor_relpos` column, so we must
|
|
9
|
+
* make sure (a) only datasets receive cell (JSON) anchors and (b) the JSON is
|
|
10
|
+
* structurally well-formed, so a markdown comment's base64 relpos is never
|
|
11
|
+
* confused for a cell anchor and a cell anchor is never fed to the text
|
|
12
|
+
* resolver. The two copies are intentionally small and independent (the web
|
|
13
|
+
* app does not import from `src/`).
|
|
14
|
+
*/
|
|
15
|
+
export interface CellAnchor {
|
|
16
|
+
kind: 'cell';
|
|
17
|
+
/** The commented row's cells at creation; absent when the snapshot was
|
|
18
|
+
* dropped to fit `MAX_ANCHOR_RELPOS_LENGTH` (rowHash fallback). */
|
|
19
|
+
rowCells?: string[];
|
|
20
|
+
rowHash: string;
|
|
21
|
+
columnIndex: number;
|
|
22
|
+
headerName: string;
|
|
23
|
+
}
|
|
24
|
+
/** Cheap discriminator: a cell anchor is JSON (`{…}`); a markdown comment's
|
|
25
|
+
* anchor is a base64 relpos blob, which never starts with `{`. */
|
|
26
|
+
export declare function looksLikeCellAnchor(relpos: string | null | undefined): boolean;
|
|
27
|
+
export declare function isValidCellAnchor(value: unknown): value is CellAnchor;
|
|
28
|
+
/** Parse + validate a stored anchor string as a cell anchor, or null. */
|
|
29
|
+
export declare function parseCellAnchor(relpos: string | null | undefined): CellAnchor | null;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server-side validation for dataset cell-anchored comments.
|
|
3
|
+
*
|
|
4
|
+
* The full anchor model + the (pure, client-side) resolver live in the web
|
|
5
|
+
* app at `web/src/lib/utils/cell-anchor.ts` — resolution recomputes
|
|
6
|
+
* `{row, col}` against the live grid on every render and never runs on the
|
|
7
|
+
* server. The server's only job is to guard the write path: a cell comment
|
|
8
|
+
* stores its anchor JSON in the existing `anchor_relpos` column, so we must
|
|
9
|
+
* make sure (a) only datasets receive cell (JSON) anchors and (b) the JSON is
|
|
10
|
+
* structurally well-formed, so a markdown comment's base64 relpos is never
|
|
11
|
+
* confused for a cell anchor and a cell anchor is never fed to the text
|
|
12
|
+
* resolver. The two copies are intentionally small and independent (the web
|
|
13
|
+
* app does not import from `src/`).
|
|
14
|
+
*/
|
|
15
|
+
/** Cheap discriminator: a cell anchor is JSON (`{…}`); a markdown comment's
|
|
16
|
+
* anchor is a base64 relpos blob, which never starts with `{`. */
|
|
17
|
+
export function looksLikeCellAnchor(relpos) {
|
|
18
|
+
return !!relpos && relpos[0] === '{';
|
|
19
|
+
}
|
|
20
|
+
export function isValidCellAnchor(value) {
|
|
21
|
+
if (typeof value !== 'object' || value === null)
|
|
22
|
+
return false;
|
|
23
|
+
const a = value;
|
|
24
|
+
if (a.kind !== 'cell')
|
|
25
|
+
return false;
|
|
26
|
+
if (typeof a.rowHash !== 'string' || a.rowHash.length === 0)
|
|
27
|
+
return false;
|
|
28
|
+
if (typeof a.columnIndex !== 'number' || !Number.isInteger(a.columnIndex) || a.columnIndex < 0)
|
|
29
|
+
return false;
|
|
30
|
+
if (typeof a.headerName !== 'string')
|
|
31
|
+
return false;
|
|
32
|
+
if (a.rowCells !== undefined) {
|
|
33
|
+
if (!Array.isArray(a.rowCells))
|
|
34
|
+
return false;
|
|
35
|
+
if (!a.rowCells.every((c) => typeof c === 'string'))
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
/** Parse + validate a stored anchor string as a cell anchor, or null. */
|
|
41
|
+
export function parseCellAnchor(relpos) {
|
|
42
|
+
if (!looksLikeCellAnchor(relpos))
|
|
43
|
+
return null;
|
|
44
|
+
let parsed;
|
|
45
|
+
try {
|
|
46
|
+
parsed = JSON.parse(relpos);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
return isValidCellAnchor(parsed) ? parsed : null;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=cell-anchor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cell-anchor.js","sourceRoot":"","sources":["../../src/core/cell-anchor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAYH;mEACmE;AACnE,MAAM,UAAU,mBAAmB,CAAC,MAAiC;IACpE,OAAO,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1E,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7G,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACnD,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7C,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IACnE,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,eAAe,CAAC,MAAiC;IAChE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAgB,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC"}
|