studiograph 1.3.48-next.13 → 1.3.48-next.131
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 +7 -7
- package/dist/agent/agent-pool.d.ts +27 -1
- package/dist/agent/agent-pool.js +55 -12
- package/dist/agent/agent-pool.js.map +1 -1
- 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 +29 -2
- package/dist/agent/orchestrator.js +251 -38
- package/dist/agent/orchestrator.js.map +1 -1
- package/dist/agent/prompts/entity-types-section.d.ts +30 -0
- package/dist/agent/prompts/entity-types-section.js +83 -0
- package/dist/agent/prompts/entity-types-section.js.map +1 -0
- package/dist/agent/prompts/system.md +106 -47
- 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 +79 -343
- package/dist/agent/skills/interview/entity-templates.md +38 -37
- package/dist/agent/skills/interview/question-domains.md +54 -49
- package/dist/agent/skills/interview/skill.md +89 -14
- 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 +6 -5
- package/dist/agent/tools/fs-tools.js +5 -5
- package/dist/agent/tools/fs-tools.js.map +1 -1
- package/dist/agent/tools/graph-tools.d.ts +25 -72
- package/dist/agent/tools/graph-tools.js +362 -366
- 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/message-tools.d.ts +13 -11
- package/dist/agent/tools/message-tools.js +31 -39
- package/dist/agent/tools/message-tools.js.map +1 -1
- package/dist/agent/tools/ops-tools.d.ts +5 -4
- package/dist/agent/tools/ops-tools.js +99 -212
- package/dist/agent/tools/ops-tools.js.map +1 -1
- package/dist/agent/tools/permission-tools.d.ts +39 -16
- package/dist/agent/tools/permission-tools.js +66 -41
- 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.js +58 -9
- package/dist/agent/tools/web-tools.js.map +1 -1
- 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/audit.d.ts +21 -0
- package/dist/cli/commands/audit.js +174 -0
- package/dist/cli/commands/audit.js.map +1 -0
- package/dist/cli/commands/clear.d.ts +5 -0
- package/dist/cli/commands/clear.js +144 -1
- package/dist/cli/commands/clear.js.map +1 -1
- package/dist/cli/commands/clone.d.ts +1 -1
- package/dist/cli/commands/clone.js +82 -23
- package/dist/cli/commands/clone.js.map +1 -1
- package/dist/cli/commands/deploy.js +79 -18
- package/dist/cli/commands/deploy.js.map +1 -1
- package/dist/cli/commands/folder.d.ts +11 -0
- package/dist/cli/commands/folder.js +186 -0
- package/dist/cli/commands/folder.js.map +1 -0
- package/dist/cli/commands/index.js +2 -2
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.js +16 -14
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/join.d.ts +1 -1
- package/dist/cli/commands/join.js +26 -14
- package/dist/cli/commands/join.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/r2.d.ts +3 -0
- package/dist/cli/commands/r2.js +196 -1
- package/dist/cli/commands/r2.js.map +1 -1
- package/dist/cli/commands/redeploy.js +41 -1
- package/dist/cli/commands/redeploy.js.map +1 -1
- package/dist/cli/commands/secrets.d.ts +23 -0
- package/dist/cli/commands/secrets.js +256 -0
- package/dist/cli/commands/secrets.js.map +1 -0
- package/dist/cli/commands/serve.js +143 -24
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/start.js +140 -71
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/sync.d.ts +1 -1
- package/dist/cli/commands/sync.js +509 -163
- package/dist/cli/commands/sync.js.map +1 -1
- package/dist/cli/commands/user.js +8 -24
- package/dist/cli/commands/user.js.map +1 -1
- package/dist/cli/index.js +8 -7
- package/dist/cli/index.js.map +1 -1
- 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/scaffolding.d.ts +4 -2
- package/dist/cli/scaffolding.js +42 -47
- package/dist/cli/scaffolding.js.map +1 -1
- package/dist/cli/setup-wizard.d.ts +30 -49
- package/dist/cli/setup-wizard.js +35 -38
- 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/entity-body-templates.d.ts +21 -0
- package/dist/core/entity-body-templates.js +48 -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 +136 -0
- package/dist/core/entity-types-catalog.js.map +1 -0
- package/dist/core/feature-flags.d.ts +22 -0
- package/dist/core/feature-flags.js +15 -0
- package/dist/core/feature-flags.js.map +1 -0
- package/dist/core/features.d.ts +16 -0
- package/dist/core/features.js +48 -0
- package/dist/core/features.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 +16 -0
- package/dist/core/folder-sidecar.js +45 -0
- package/dist/core/folder-sidecar.js.map +1 -0
- package/dist/core/graph.d.ts +471 -19
- package/dist/core/graph.js +1411 -284
- package/dist/core/graph.js.map +1 -1
- package/dist/core/schema-registry.js +1 -19
- 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 +78 -0
- package/dist/core/secrets/SqliteEncryptedStore.js +581 -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 +76 -0
- package/dist/core/secrets/dual-write.js +236 -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/importer.d.ts +94 -0
- package/dist/core/secrets/importer.js +319 -0
- package/dist/core/secrets/importer.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/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 +531 -0
- package/dist/core/secrets/registry.js.map +1 -0
- package/dist/core/types.d.ts +70 -483
- package/dist/core/types.js +6 -3
- package/dist/core/types.js.map +1 -1
- package/dist/core/user-config.d.ts +52 -12
- package/dist/core/user-config.js +119 -14
- package/dist/core/user-config.js.map +1 -1
- package/dist/core/validation.d.ts +603 -1409
- package/dist/core/validation.js +248 -146
- package/dist/core/validation.js.map +1 -1
- package/dist/core/workspace-manager.d.ts +35 -14
- package/dist/core/workspace-manager.js +105 -56
- package/dist/core/workspace-manager.js.map +1 -1
- package/dist/core/workspace.d.ts +19 -5
- package/dist/core/workspace.js +66 -39
- package/dist/core/workspace.js.map +1 -1
- package/dist/mcp/connector-manager.d.ts +16 -1
- package/dist/mcp/connector-manager.js +44 -5
- package/dist/mcp/connector-manager.js.map +1 -1
- 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/tools.d.ts +27 -2
- package/dist/mcp/tools.js +544 -113
- 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/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 +385 -177
- 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.js +217 -65
- package/dist/server/routes/asset-api.js.map +1 -1
- 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.js +220 -44
- package/dist/server/routes/auth-api.js.map +1 -1
- package/dist/server/routes/capture-api.d.ts +10 -3
- package/dist/server/routes/capture-api.js +180 -24
- package/dist/server/routes/capture-api.js.map +1 -1
- package/dist/server/routes/chat.d.ts +4 -1
- package/dist/server/routes/chat.js +178 -46
- package/dist/server/routes/chat.js.map +1 -1
- 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.js +24 -18
- package/dist/server/routes/connectors-api.js.map +1 -1
- 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/features-api.d.ts +19 -0
- package/dist/server/routes/features-api.js +28 -0
- package/dist/server/routes/features-api.js.map +1 -0
- package/dist/server/routes/git-http.d.ts +2 -2
- package/dist/server/routes/git-http.js +69 -34
- 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 +93 -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 +1014 -315
- 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.js +156 -33
- package/dist/server/routes/insights-api.js.map +1 -1
- package/dist/server/routes/mcp.d.ts +6 -3
- package/dist/server/routes/mcp.js +22 -6
- package/dist/server/routes/mcp.js.map +1 -1
- package/dist/server/routes/messages-api.d.ts +3 -3
- package/dist/server/routes/messages-api.js +308 -120
- package/dist/server/routes/messages-api.js.map +1 -1
- package/dist/server/routes/permissions-api.d.ts +9 -2
- package/dist/server/routes/permissions-api.js +87 -31
- package/dist/server/routes/permissions-api.js.map +1 -1
- 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/workspace-api.d.ts +2 -1
- package/dist/server/routes/workspace-api.js +131 -20
- package/dist/server/routes/workspace-api.js.map +1 -1
- package/dist/server/routes/ws.d.ts +3 -2
- package/dist/server/routes/ws.js +68 -18
- package/dist/server/routes/ws.js.map +1 -1
- package/dist/server/session-manager.d.ts +48 -5
- package/dist/server/session-manager.js +175 -11
- package/dist/server/session-manager.js.map +1 -1
- package/dist/server/ws-hub.d.ts +134 -22
- package/dist/server/ws-hub.js +0 -0
- package/dist/server/ws-hub.js.map +1 -1
- package/dist/server/yjs-manager.d.ts +107 -7
- package/dist/server/yjs-manager.js +444 -38
- package/dist/server/yjs-manager.js.map +1 -1
- package/dist/server/yjs-persistence.d.ts +143 -0
- package/dist/server/yjs-persistence.js +543 -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 +53 -0
- package/dist/services/access-control.js +132 -0
- package/dist/services/access-control.js.map +1 -0
- package/dist/services/asset-upload-service.d.ts +53 -0
- package/dist/services/asset-upload-service.js +200 -0
- package/dist/services/asset-upload-service.js.map +1 -0
- package/dist/services/assets/base.d.ts +38 -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 +41 -1
- package/dist/services/assets/index.js +65 -0
- package/dist/services/assets/index.js.map +1 -1
- package/dist/services/assets/local.d.ts +7 -1
- package/dist/services/assets/local.js +83 -0
- package/dist/services/assets/local.js.map +1 -1
- package/dist/services/assets/r2.d.ts +28 -1
- package/dist/services/assets/r2.js +75 -1
- package/dist/services/assets/r2.js.map +1 -1
- package/dist/services/auth-service.d.ts +184 -36
- package/dist/services/auth-service.js +763 -138
- package/dist/services/auth-service.js.map +1 -1
- package/dist/services/briefing.d.ts +1 -1
- package/dist/services/briefing.js +12 -35
- package/dist/services/briefing.js.map +1 -1
- package/dist/services/event-processor.d.ts +104 -0
- package/dist/services/event-processor.js +443 -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 +44 -0
- package/dist/services/git.js +162 -55
- package/dist/services/git.js.map +1 -1
- package/dist/services/heartbeat.d.ts +19 -12
- package/dist/services/heartbeat.js +162 -107
- package/dist/services/heartbeat.js.map +1 -1
- package/dist/services/import-service.d.ts +37 -2
- package/dist/services/import-service.js +222 -123
- package/dist/services/import-service.js.map +1 -1
- package/dist/services/lint-service.js +7 -14
- package/dist/services/lint-service.js.map +1 -1
- package/dist/services/markdown.js +6 -2
- package/dist/services/markdown.js.map +1 -1
- package/dist/services/message-service.d.ts +62 -21
- package/dist/services/message-service.js +160 -43
- package/dist/services/message-service.js.map +1 -1
- 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/vector-service.d.ts +73 -3
- package/dist/services/vector-service.js +106 -7
- 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.js +3 -3
- 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 +4 -1
- package/dist/utils/version-checker.js +8 -8
- package/dist/utils/version-checker.js.map +1 -1
- package/dist/web/_app/immutable/assets/0.Bp6xXZUi.css +2 -0
- package/dist/web/_app/immutable/assets/11.DlIf1mKh.css +1 -0
- package/dist/web/_app/immutable/assets/12.Dmlt28l2.css +1 -0
- package/dist/web/_app/immutable/assets/13.CmLrbzZp.css +1 -0
- package/dist/web/_app/immutable/assets/2.oo1ac0x_.css +1 -0
- package/dist/web/_app/immutable/assets/3.DJJsQzDb.css +1 -0
- package/dist/web/_app/immutable/assets/4.CZ-fNJ91.css +1 -0
- package/dist/web/_app/immutable/assets/AgentOverlay.BfWESlQU.css +1 -0
- package/dist/web/_app/immutable/assets/AssetManagerModal.ZfasE2L3.css +1 -0
- package/dist/web/_app/immutable/assets/CalendarView.CeNagvyK.css +1 -0
- package/dist/web/_app/immutable/assets/ChatPanel.po0gYtVH.css +1 -0
- package/dist/web/_app/immutable/assets/FolderMembersPanel.Bepw-r0F.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.Dy-qQjEc.css +1 -0
- package/dist/web/_app/immutable/assets/GraphView.BHnGIltS.css +1 -0
- package/dist/web/_app/immutable/assets/KanbanView.G3NZ0uHb.css +1 -0
- package/dist/web/_app/immutable/assets/SettingsDialog.tBn8y9DD.css +1 -0
- package/dist/web/_app/immutable/assets/Spinner.UBfl0pab.css +1 -0
- package/dist/web/_app/immutable/assets/TagFilter.DNipjifq.css +1 -0
- package/dist/web/_app/immutable/assets/TagPickerSheet.DJPuqnTg.css +1 -0
- package/dist/web/_app/immutable/assets/WorkspaceView.B9zA92UB.css +1 -0
- package/dist/web/_app/immutable/assets/button.BlLm4Dg1.css +1 -0
- package/dist/web/_app/immutable/assets/dialog.BxVal_19.css +1 -0
- package/dist/web/_app/immutable/assets/dist.B5hGjnfj.css +1 -0
- package/dist/web/_app/immutable/assets/dist.DDCWxn3B.css +1 -0
- package/dist/web/_app/immutable/assets/dropdown-menu.BSsUUQ3o.css +1 -0
- package/dist/web/_app/immutable/assets/entity-row.Bl5FyNCt.css +1 -0
- package/dist/web/_app/immutable/assets/greeting.Bm7lTneV.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.DORLo4xF.css +1 -0
- package/dist/web/_app/immutable/assets/notifications.clodJdp5.css +1 -0
- package/dist/web/_app/immutable/assets/radio-group.GJJRVPUJ.css +1 -0
- package/dist/web/_app/immutable/assets/select.D_AV992j.css +1 -0
- package/dist/web/_app/immutable/chunks/-KAQXGuI2.js +1 -0
- package/dist/web/_app/immutable/chunks/-wzwcH00.js +1 -0
- package/dist/web/_app/immutable/chunks/07l_1Zpm2.js +1 -0
- package/dist/web/_app/immutable/chunks/38oWKNzM2.js +6 -0
- package/dist/web/_app/immutable/chunks/54VmiJfH.js +1 -0
- package/dist/web/_app/immutable/chunks/6LRpFvjo.js +185 -0
- package/dist/web/_app/immutable/chunks/7R0Rp3Mz.js +1 -0
- package/dist/web/_app/immutable/chunks/9bCTHkeS.js +1 -0
- package/dist/web/_app/immutable/chunks/B-822WnD2.js +22 -0
- package/dist/web/_app/immutable/chunks/B0HUvliX2.js +2 -0
- package/dist/web/_app/immutable/chunks/B12eXGpE.js +1 -0
- package/dist/web/_app/immutable/chunks/B5af0X0p2.js +1 -0
- package/dist/web/_app/immutable/chunks/B6iYNwo72.js +1 -0
- package/dist/web/_app/immutable/chunks/B7EMtoAB.js +1 -0
- package/dist/web/_app/immutable/chunks/B7L4gmPR.js +2 -0
- package/dist/web/_app/immutable/chunks/B9qBGxh62.js +3 -0
- package/dist/web/_app/immutable/chunks/BDJYj9yi.js +2 -0
- package/dist/web/_app/immutable/chunks/BEpMEjHO.js +1 -0
- package/dist/web/_app/immutable/chunks/BErNpj-S2.js +1 -0
- package/dist/web/_app/immutable/chunks/BHBk4zfV.js +1 -0
- package/dist/web/_app/immutable/chunks/BHH-JGNF.js +1 -0
- package/dist/web/_app/immutable/chunks/BKe5wPiN.js +1 -0
- package/dist/web/_app/immutable/chunks/BNTlsKDJ.js +1 -0
- package/dist/web/_app/immutable/chunks/BOgcXgis2.js +1 -0
- package/dist/web/_app/immutable/chunks/BOyyDrjn2.js +1 -0
- package/dist/web/_app/immutable/chunks/BPR_ufQ0.js +41 -0
- package/dist/web/_app/immutable/chunks/BRcFsc6v.js +5 -0
- package/dist/web/_app/immutable/chunks/BT3KAag_.js +3 -0
- package/dist/web/_app/immutable/chunks/BX2T6xiZ.js +224 -0
- package/dist/web/_app/immutable/chunks/BZnJ8tbJ.js +1 -0
- package/dist/web/_app/immutable/chunks/Ba1Yzb7u.js +1 -0
- package/dist/web/_app/immutable/chunks/BcsvgA3B2.js +1 -0
- package/dist/web/_app/immutable/chunks/BfbS7rGT.js +1 -0
- package/dist/web/_app/immutable/chunks/BgagL41Z.js +1 -0
- package/dist/web/_app/immutable/chunks/BiUh0Sik.js +1 -0
- package/dist/web/_app/immutable/chunks/Biajc_oU.js +1 -0
- package/dist/web/_app/immutable/chunks/Bl9Pzopy.js +1 -0
- package/dist/web/_app/immutable/chunks/BmcU05mO.js +1 -0
- package/dist/web/_app/immutable/chunks/Bmgp0jlT.js +1 -0
- package/dist/web/_app/immutable/chunks/BmgyOoEp.js +1 -0
- package/dist/web/_app/immutable/chunks/Bq0-jBGC2.js +1 -0
- package/dist/web/_app/immutable/chunks/BqGj0_GS.js +1 -0
- package/dist/web/_app/immutable/chunks/Bsc9K3Pz.js +1 -0
- package/dist/web/_app/immutable/chunks/Bssb691Q.js +1 -0
- package/dist/web/_app/immutable/chunks/BuzQceOn.js +1 -0
- package/dist/web/_app/immutable/chunks/BzeVNab0.js +1 -0
- package/dist/web/_app/immutable/chunks/C-OaypFN.js +1 -0
- package/dist/web/_app/immutable/chunks/C0fjDjvE2.js +1 -0
- package/dist/web/_app/immutable/chunks/C0pTXwEX.js +2 -0
- package/dist/web/_app/immutable/chunks/C3Enww9L2.js +1 -0
- package/dist/web/_app/immutable/chunks/C3oa0Cks.js +1 -0
- package/dist/web/_app/immutable/chunks/CC-YWp-f.js +1 -0
- package/dist/web/_app/immutable/chunks/CGdKvXV92.js +1 -0
- package/dist/web/_app/immutable/chunks/CH0siYFL.js +1 -0
- package/dist/web/_app/immutable/chunks/CIchr8Tk2.js +1 -0
- package/dist/web/_app/immutable/chunks/CK_yXDQI.js +1 -0
- package/dist/web/_app/immutable/chunks/CLPtMig0.js +1 -0
- package/dist/web/_app/immutable/chunks/CLSxJmTj.js +2 -0
- package/dist/web/_app/immutable/chunks/CPQNcHIB.js +3 -0
- package/dist/web/_app/immutable/chunks/CPt2D5aU.js +1 -0
- package/dist/web/_app/immutable/chunks/CQ-2yccd.js +7 -0
- package/dist/web/_app/immutable/chunks/CS6VEwn7.js +1 -0
- package/dist/web/_app/immutable/chunks/CSGIGrrK.js +1 -0
- package/dist/web/_app/immutable/chunks/CSsDOIrk.js +1 -0
- package/dist/web/_app/immutable/chunks/CVXvEWhv2.js +1 -0
- package/dist/web/_app/immutable/chunks/CaChtuYU2.js +1 -0
- package/dist/web/_app/immutable/chunks/CbiwvM3R2.js +1 -0
- package/dist/web/_app/immutable/chunks/CdCuBMLm.js +156 -0
- package/dist/web/_app/immutable/chunks/CfqjDDMu.js +1 -0
- package/dist/web/_app/immutable/chunks/CjGzUnEF2.js +1 -0
- package/dist/web/_app/immutable/chunks/Cjgbiel7.js +1 -0
- package/dist/web/_app/immutable/chunks/ClNEskRf.js +1 -0
- package/dist/web/_app/immutable/chunks/CnqSKqA62.js +1 -0
- package/dist/web/_app/immutable/chunks/CqyqKPuh2.js +1 -0
- package/dist/web/_app/immutable/chunks/CrnX-oFV.js +1 -0
- package/dist/web/_app/immutable/chunks/CsGahE3a.js +1 -0
- package/dist/web/_app/immutable/chunks/CsXIliss.js +1 -0
- package/dist/web/_app/immutable/chunks/Ct3quP0F.js +1 -0
- package/dist/web/_app/immutable/chunks/CvZaxjRC.js +1 -0
- package/dist/web/_app/immutable/chunks/CwD4G56R.js +5 -0
- package/dist/web/_app/immutable/chunks/CxalqrMB.js +1 -0
- package/dist/web/_app/immutable/chunks/D1Ap3evT2.js +1 -0
- package/dist/web/_app/immutable/chunks/D7qgUfnr.js +2487 -0
- package/dist/web/_app/immutable/chunks/D9-_Euza2.js +1 -0
- package/dist/web/_app/immutable/chunks/DCCaoKt42.js +1 -0
- package/dist/web/_app/immutable/chunks/DDKweOZr2.js +23 -0
- package/dist/web/_app/immutable/chunks/DHeU-hHI2.js +2 -0
- package/dist/web/_app/immutable/chunks/DHepUItL.js +1 -0
- package/dist/web/_app/immutable/chunks/DL_KbCKq.js +8 -0
- package/dist/web/_app/immutable/chunks/DNtqqgv32.js +1 -0
- package/dist/web/_app/immutable/chunks/DRl7vwNC2.js +184 -0
- package/dist/web/_app/immutable/chunks/DTc5W_V6.js +1 -0
- package/dist/web/_app/immutable/chunks/DZetJu9k2.js +1 -0
- package/dist/web/_app/immutable/chunks/DaiJs3St.js +1 -0
- package/dist/web/_app/immutable/chunks/DhuJRrEX2.js +1 -0
- package/dist/web/_app/immutable/chunks/DiP2EplP.js +3 -0
- package/dist/web/_app/immutable/chunks/Dm25ot5x2.js +1 -0
- package/dist/web/_app/immutable/chunks/DqOcb9RX2.js +83 -0
- package/dist/web/_app/immutable/chunks/DrbUJCAE.js +1 -0
- package/dist/web/_app/immutable/chunks/Dt4HY2cT2.js +2 -0
- package/dist/web/_app/immutable/chunks/DtGUCMv8.js +6 -0
- package/dist/web/_app/immutable/chunks/Du2-B3c8.js +1 -0
- package/dist/web/_app/immutable/chunks/DwdkE4UD2.js +1 -0
- package/dist/web/_app/immutable/chunks/DxWesPbn.js +1 -0
- package/dist/web/_app/immutable/chunks/DyYZqUV72.js +1 -0
- package/dist/web/_app/immutable/chunks/HfUnhvrv2.js +1 -0
- package/dist/web/_app/immutable/chunks/Je8-BtCk2.js +1 -0
- package/dist/web/_app/immutable/chunks/LAN53VbP2.js +5 -0
- package/dist/web/_app/immutable/chunks/MSB7eA4_.js +1 -0
- package/dist/web/_app/immutable/chunks/NPe9WyW1.js +1 -0
- package/dist/web/_app/immutable/chunks/O6IzcxXJ.js +2 -0
- package/dist/web/_app/immutable/chunks/SXhc9rJW.js +1 -0
- package/dist/web/_app/immutable/chunks/TuBvdkhV2.js +1 -0
- package/dist/web/_app/immutable/chunks/U40J2SnU.js +1 -0
- package/dist/web/_app/immutable/chunks/VS3l21Gu.js +1 -0
- package/dist/web/_app/immutable/chunks/YEPEvlbU2.js +1 -0
- package/dist/web/_app/immutable/chunks/Z7TNRcgK.js +11 -0
- package/dist/web/_app/immutable/chunks/ZCekGjo6.js +5 -0
- package/dist/web/_app/immutable/chunks/_rnxQ655.js +4 -0
- package/dist/web/_app/immutable/chunks/dTXrX5Bw.js +2 -0
- package/dist/web/_app/immutable/chunks/gNXLhsdy.js +1 -0
- package/dist/web/_app/immutable/chunks/hKSTEN36.js +1 -0
- package/dist/web/_app/immutable/chunks/jZZTbzL5.js +1 -0
- package/dist/web/_app/immutable/chunks/l4FIBKss.js +1 -0
- package/dist/web/_app/immutable/chunks/l_4snZnh2.js +1 -0
- package/dist/web/_app/immutable/chunks/q6R6T-lK.js +1 -0
- package/dist/web/_app/immutable/chunks/qgprkMcL.js +1 -0
- package/dist/web/_app/immutable/chunks/rOisBLC62.js +14 -0
- package/dist/web/_app/immutable/chunks/t08TznXc2.js +1 -0
- package/dist/web/_app/immutable/chunks/t62M88qj.js +1 -0
- package/dist/web/_app/immutable/chunks/uCohGWC42.js +1 -0
- package/dist/web/_app/immutable/chunks/uqxmB78b.js +1 -0
- package/dist/web/_app/immutable/chunks/vwTMEIJQ.js +1 -0
- package/dist/web/_app/immutable/chunks/w1FCELam.js +64 -0
- package/dist/web/_app/immutable/chunks/zmjgin7A.js +1 -0
- package/dist/web/_app/immutable/chunks/zumDjcgJ.js +1 -0
- package/dist/web/_app/immutable/entry/app.B3JEO5sy.js +2 -0
- package/dist/web/_app/immutable/entry/start.Dk84vnrL.js +1 -0
- package/dist/web/_app/immutable/nodes/0.BKLFgYTV.js +2 -0
- package/dist/web/_app/immutable/nodes/1.Djf_1kN1.js +1 -0
- package/dist/web/_app/immutable/nodes/10.De6eGWLx.js +1 -0
- package/dist/web/_app/immutable/nodes/11.CDsfSRTw.js +1 -0
- package/dist/web/_app/immutable/nodes/12.BeKkKpkY.js +1 -0
- package/dist/web/_app/immutable/nodes/13.BcI8xwSy.js +1 -0
- package/dist/web/_app/immutable/nodes/2.ZMZ-QAZ7.js +106 -0
- package/dist/web/_app/immutable/nodes/3.C1ZiAfle.js +2 -0
- package/dist/web/_app/immutable/nodes/4.Chmqy9KF.js +2 -0
- package/dist/web/_app/immutable/nodes/5.Bpvr_Vcq.js +1 -0
- package/dist/web/_app/immutable/nodes/6.BHa_gOs3.js +1 -0
- package/dist/web/_app/immutable/nodes/7.D0hg4Eap.js +1 -0
- package/dist/web/_app/immutable/nodes/8.3ZUUxJqR.js +1 -0
- package/dist/web/_app/immutable/nodes/9.Ducy-oqR.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 +64 -21
- package/dist/web/studiograph-logomark.svg +29 -0
- package/package.json +28 -14
- package/dist/agent/role-loader.d.ts +0 -24
- package/dist/agent/role-loader.js +0 -67
- package/dist/agent/role-loader.js.map +0 -1
- 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/collection.d.ts +0 -10
- package/dist/cli/commands/collection.js +0 -185
- 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/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/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/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 -8
- package/dist/integrations/registry.js +0 -7
- package/dist/integrations/registry.js.map +0 -1
- package/dist/integrations/types.d.ts +0 -43
- package/dist/integrations/types.js +0 -5
- 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/agents/agent-loader.d.ts +0 -16
- package/dist/server/agents/agent-loader.js +0 -175
- package/dist/server/agents/agent-loader.js.map +0 -1
- package/dist/server/agents/agent-runner.d.ts +0 -33
- package/dist/server/agents/agent-runner.js +0 -187
- package/dist/server/agents/agent-runner.js.map +0 -1
- package/dist/server/agents/agent-runtime.d.ts +0 -39
- package/dist/server/agents/agent-runtime.js +0 -214
- package/dist/server/agents/agent-runtime.js.map +0 -1
- package/dist/server/agents/base-agent.d.ts +0 -30
- package/dist/server/agents/base-agent.js +0 -88
- package/dist/server/agents/base-agent.js.map +0 -1
- package/dist/server/agents/executive-digest.d.ts +0 -16
- package/dist/server/agents/executive-digest.js +0 -115
- package/dist/server/agents/executive-digest.js.map +0 -1
- package/dist/server/agents/graph-steward.d.ts +0 -16
- package/dist/server/agents/graph-steward.js +0 -59
- package/dist/server/agents/graph-steward.js.map +0 -1
- package/dist/server/agents/meeting-followup.d.ts +0 -16
- package/dist/server/agents/meeting-followup.js +0 -88
- package/dist/server/agents/meeting-followup.js.map +0 -1
- package/dist/server/agents/pipeline-monitor.d.ts +0 -15
- package/dist/server/agents/pipeline-monitor.js +0 -86
- package/dist/server/agents/pipeline-monitor.js.map +0 -1
- package/dist/server/agents/types.d.ts +0 -81
- package/dist/server/agents/types.js +0 -41
- package/dist/server/agents/types.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/agents-api.d.ts +0 -10
- package/dist/server/routes/agents-api.js +0 -25
- package/dist/server/routes/agents-api.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 -14
- package/dist/server/routes/meeting-ingest-api.js +0 -98
- 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 -848
- 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/batch-processor.d.ts +0 -49
- package/dist/services/batch-processor.js +0 -166
- package/dist/services/batch-processor.js.map +0 -1
- package/dist/services/csv-service.d.ts +0 -36
- package/dist/services/csv-service.js +0 -143
- package/dist/services/csv-service.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/image-import-service.d.ts +0 -24
- package/dist/services/image-import-service.js +0 -108
- package/dist/services/image-import-service.js.map +0 -1
- package/dist/services/insights.d.ts +0 -38
- package/dist/services/insights.js +0 -269
- package/dist/services/insights.js.map +0 -1
- package/dist/services/meeting-processor.d.ts +0 -91
- package/dist/services/meeting-processor.js +0 -331
- package/dist/services/meeting-processor.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.QUqBcyuu.css +0 -1
- package/dist/web/_app/immutable/assets/11.2jzI3cZY.css +0 -1
- package/dist/web/_app/immutable/assets/12.CT4xL4K3.css +0 -1
- package/dist/web/_app/immutable/assets/13.BUrHkYry.css +0 -1
- package/dist/web/_app/immutable/assets/2.5jNm7Pm1.css +0 -1
- package/dist/web/_app/immutable/assets/3.BxdqT7zi.css +0 -1
- package/dist/web/_app/immutable/assets/4.BjPwtpNd.css +0 -1
- package/dist/web/_app/immutable/assets/5.DFeGxLYf.css +0 -1
- package/dist/web/_app/immutable/assets/6.DXZr_rI_.css +0 -1
- package/dist/web/_app/immutable/assets/GraphView.D9ePpZez.css +0 -1
- package/dist/web/_app/immutable/assets/Toaster.rN8r_Hzv.css +0 -1
- package/dist/web/_app/immutable/assets/ViewToolbar.CZjsdjy4.css +0 -1
- package/dist/web/_app/immutable/assets/WorkspaceView.B-1DbivC.css +0 -1
- package/dist/web/_app/immutable/assets/wikilinks.CtSydmQl.css +0 -1
- package/dist/web/_app/immutable/chunks/3--t-YNA.js +0 -1
- package/dist/web/_app/immutable/chunks/5OU-4caN.js +0 -1
- package/dist/web/_app/immutable/chunks/7S2LGqoP.js +0 -2
- package/dist/web/_app/immutable/chunks/B6FUcAv5.js +0 -1
- package/dist/web/_app/immutable/chunks/B9gDgSlp.js +0 -1
- package/dist/web/_app/immutable/chunks/BB_5th5W.js +0 -3383
- package/dist/web/_app/immutable/chunks/BFtIWl5z.js +0 -1
- package/dist/web/_app/immutable/chunks/BHKpz6_7.js +0 -1
- package/dist/web/_app/immutable/chunks/BNfrhBeA.js +0 -1
- package/dist/web/_app/immutable/chunks/BgO5HlCg.js +0 -2
- package/dist/web/_app/immutable/chunks/BqnODQDb.js +0 -1
- package/dist/web/_app/immutable/chunks/BrebtJNG.js +0 -18
- package/dist/web/_app/immutable/chunks/BvIFhEn7.js +0 -2
- package/dist/web/_app/immutable/chunks/BvfdTHv8.js +0 -1
- package/dist/web/_app/immutable/chunks/BxGm65PH.js +0 -1
- package/dist/web/_app/immutable/chunks/BxyxnEKw.js +0 -1
- package/dist/web/_app/immutable/chunks/BygFIGq4.js +0 -1
- package/dist/web/_app/immutable/chunks/Bz0ZjVQE.js +0 -2
- package/dist/web/_app/immutable/chunks/C0LVZhvn.js +0 -1
- package/dist/web/_app/immutable/chunks/CIb_hHMy.js +0 -1
- package/dist/web/_app/immutable/chunks/CNKK6nZb.js +0 -1
- package/dist/web/_app/immutable/chunks/CQ5FjHZK.js +0 -1
- package/dist/web/_app/immutable/chunks/CSVbGg_b.js +0 -5
- 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/CaEaeeKb.js +0 -1
- package/dist/web/_app/immutable/chunks/Ch6e_wpP.js +0 -1
- package/dist/web/_app/immutable/chunks/Ci4zzCVB.js +0 -2
- package/dist/web/_app/immutable/chunks/CknqBVQE.js +0 -1
- package/dist/web/_app/immutable/chunks/Cmfiirqp.js +0 -4
- package/dist/web/_app/immutable/chunks/CqkleIqs.js +0 -1
- package/dist/web/_app/immutable/chunks/CrFpCC6p.js +0 -1
- package/dist/web/_app/immutable/chunks/CxX8hcT6.js +0 -1
- package/dist/web/_app/immutable/chunks/D0T1ps1G.js +0 -1
- package/dist/web/_app/immutable/chunks/D2ZEj9xD.js +0 -1
- package/dist/web/_app/immutable/chunks/D3sy0IkA.js +0 -2
- package/dist/web/_app/immutable/chunks/DFYOFE3o.js +0 -1
- package/dist/web/_app/immutable/chunks/DHWoAC4y.js +0 -1
- package/dist/web/_app/immutable/chunks/DYYBfXU3.js +0 -1
- package/dist/web/_app/immutable/chunks/DiNPRA8T.js +0 -1
- package/dist/web/_app/immutable/chunks/DkjsqHkM.js +0 -1
- package/dist/web/_app/immutable/chunks/DnL9f0lc.js +0 -7
- package/dist/web/_app/immutable/chunks/DpMCynC3.js +0 -1
- package/dist/web/_app/immutable/chunks/DqrybUuA.js +0 -1
- package/dist/web/_app/immutable/chunks/DsnmJJEf.js +0 -1
- package/dist/web/_app/immutable/chunks/KyjzlWRN.js +0 -2
- package/dist/web/_app/immutable/chunks/O9MAeAgV.js +0 -5
- package/dist/web/_app/immutable/chunks/PPVm8Dsz.js +0 -1
- package/dist/web/_app/immutable/chunks/SKSQ4m85.js +0 -2
- package/dist/web/_app/immutable/chunks/WEBTyD-H.js +0 -1
- package/dist/web/_app/immutable/chunks/WSUKABI_.js +0 -1
- package/dist/web/_app/immutable/chunks/bBXT5iJP.js +0 -1
- package/dist/web/_app/immutable/chunks/vxEtkL8z.js +0 -1
- package/dist/web/_app/immutable/chunks/wDIGUaoU.js +0 -3
- package/dist/web/_app/immutable/chunks/xkNhbnff.js +0 -1
- package/dist/web/_app/immutable/chunks/zoVX1Zab.js +0 -1
- package/dist/web/_app/immutable/entry/app.GfE4z2GO.js +0 -2
- package/dist/web/_app/immutable/entry/start.H-LFJK9u.js +0 -1
- package/dist/web/_app/immutable/nodes/0.Bwi7tTNC.js +0 -2
- package/dist/web/_app/immutable/nodes/1.DgNJPEWk.js +0 -1
- package/dist/web/_app/immutable/nodes/10.BW_XCD2O.js +0 -1
- package/dist/web/_app/immutable/nodes/11.DM7RX3Ms.js +0 -1
- package/dist/web/_app/immutable/nodes/12.DKgssZo8.js +0 -1
- package/dist/web/_app/immutable/nodes/13.DCdmTre-.js +0 -1
- package/dist/web/_app/immutable/nodes/2.DOA5QBVG.js +0 -266
- package/dist/web/_app/immutable/nodes/3.bpoHQwAI.js +0 -5
- package/dist/web/_app/immutable/nodes/4.ye0Vy7A1.js +0 -11
- package/dist/web/_app/immutable/nodes/5.rxpnYrx_.js +0 -4
- package/dist/web/_app/immutable/nodes/6.DP8HSxtc.js +0 -1
- package/dist/web/_app/immutable/nodes/7.C1h4Bf-E.js +0 -1
- package/dist/web/_app/immutable/nodes/8.BzmQ7S7Y.js +0 -1
- package/dist/web/_app/immutable/nodes/9.CEakpXpF.js +0 -1
package/dist/core/graph.d.ts
CHANGED
|
@@ -6,10 +6,9 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { GitService, GitUser } from '../services/git.js';
|
|
8
8
|
import { MarkdownDocument } from '../services/markdown.js';
|
|
9
|
-
import { AssetInfo, AssetConfig } from '../services/assets/index.js';
|
|
10
|
-
import { EntityType, type EntityData
|
|
9
|
+
import { AssetInfo, AssetRecord, AssetConfig } from '../services/assets/index.js';
|
|
10
|
+
import { EntityType, type EntityData } from './validation.js';
|
|
11
11
|
import { SchemaRegistry } from './schema-registry.js';
|
|
12
|
-
import { type DatasetFilter } from '../services/csv-service.js';
|
|
13
12
|
import { type VectorService } from '../services/vector-service.js';
|
|
14
13
|
export interface GraphConfig {
|
|
15
14
|
repoPath: string;
|
|
@@ -20,14 +19,34 @@ export interface GraphConfig {
|
|
|
20
19
|
schemaRegistry?: SchemaRegistry;
|
|
21
20
|
/** When true, all git operations are skipped. Used for the private/ graph. */
|
|
22
21
|
noGit?: boolean;
|
|
22
|
+
/** Workspace root path. Used to anchor cross-repo artefacts like the
|
|
23
|
+
* PDF text sidecar at `<workspaceRoot>/.studiograph/assets-text/...`.
|
|
24
|
+
* Optional — when undefined, sidecar cleanup is a no-op. */
|
|
25
|
+
workspaceRoot?: string;
|
|
23
26
|
}
|
|
24
27
|
export interface EntityFile {
|
|
25
28
|
id: string;
|
|
26
29
|
path: string;
|
|
30
|
+
/** Repo-relative POSIX path of the containing folder. "" for repo root. */
|
|
31
|
+
folder_path: string;
|
|
27
32
|
entityType: string;
|
|
28
33
|
data: EntityData;
|
|
29
34
|
document: MarkdownDocument;
|
|
30
35
|
}
|
|
36
|
+
export interface FolderEntry {
|
|
37
|
+
/** Repo-relative POSIX path. */
|
|
38
|
+
path: string;
|
|
39
|
+
/** Last segment of the path. */
|
|
40
|
+
name: string;
|
|
41
|
+
/** Optional human-readable label. Set only when an explicit override exists
|
|
42
|
+
* in the folder's `.studiograph-folder.json` sidecar; clients fall back to
|
|
43
|
+
* toDisplayName(name) when undefined. */
|
|
44
|
+
display_name?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface FolderDeleteResult {
|
|
47
|
+
entriesDeleted: number;
|
|
48
|
+
subfoldersDeleted: number;
|
|
49
|
+
}
|
|
31
50
|
export interface SearchOptions {
|
|
32
51
|
entityType?: EntityType;
|
|
33
52
|
query?: string;
|
|
@@ -48,6 +67,11 @@ export interface CreateEntityOptions {
|
|
|
48
67
|
content?: string;
|
|
49
68
|
commitMessage?: string;
|
|
50
69
|
skipCommit?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Repo-relative folder to create the entry in. Empty/undefined = repo root.
|
|
72
|
+
* Parent folders are auto-created (mkdir -p semantics).
|
|
73
|
+
*/
|
|
74
|
+
folderPath?: string;
|
|
51
75
|
/** Override commit author (for per-user attribution in web UI). */
|
|
52
76
|
user?: GitUser;
|
|
53
77
|
}
|
|
@@ -60,6 +84,66 @@ export interface UpdateEntityOptions {
|
|
|
60
84
|
skipCommit?: boolean;
|
|
61
85
|
/** Override commit author (for per-user attribution in web UI). */
|
|
62
86
|
user?: GitUser;
|
|
87
|
+
/**
|
|
88
|
+
* Skip the Yjs `onContentUpdate` callback. Set by paths whose content
|
|
89
|
+
* already came from the live Y.Doc (web editor autosave PUT) — mirroring
|
|
90
|
+
* that content back into the Y.Doc would race in-flight keystrokes typed
|
|
91
|
+
* during the round trip and revert them. Server-side bypass paths
|
|
92
|
+
* (MCP tools, agent tools, event processor) leave this unset so the
|
|
93
|
+
* sync fires and the Y.Doc picks up their writes.
|
|
94
|
+
*/
|
|
95
|
+
skipYjsSync?: boolean;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Callbacks that fire AFTER successful structural mutations. Used by the Yjs
|
|
99
|
+
* persistence layer so snapshot files follow the .md file (rename → rename
|
|
100
|
+
* snapshot, delete → delete snapshot, type change → rename across type dirs).
|
|
101
|
+
*
|
|
102
|
+
* Hooked at this layer because the four mutation methods (delete, rename,
|
|
103
|
+
* changeType, plus cross-repo create+delete via /transfer) are the canonical
|
|
104
|
+
* mutation surface — every code path that moves an entity goes through them.
|
|
105
|
+
*/
|
|
106
|
+
export interface GraphMutationCallbacks {
|
|
107
|
+
onDelete?(repo: string, entityType: string, entityId: string): void | Promise<void>;
|
|
108
|
+
onRename?(repo: string, entityType: string, oldId: string, newId: string): void | Promise<void>;
|
|
109
|
+
onChangeType?(repo: string, entityId: string, fromType: string, toType: string): void | Promise<void>;
|
|
110
|
+
/**
|
|
111
|
+
* Fired immediately AFTER `graph.update()` writes the .md file but BEFORE
|
|
112
|
+
* any await yields, so JavaScript's single-threaded event loop guarantees
|
|
113
|
+
* no concurrent writer can preempt the `write-md → notify-Y.Doc` critical
|
|
114
|
+
* section. The wired callback (server bootstrap) calls
|
|
115
|
+
* `yjsManager.syncDocFromDisk(docName)` which smart-merges the new .md
|
|
116
|
+
* content into the active Y.Doc — without this, server-side writes that
|
|
117
|
+
* bypass Yjs (MCP `update_entity`, agent tools, event processor) get
|
|
118
|
+
* silently overwritten by the next autosave PUT carrying the stale
|
|
119
|
+
* Y.Text content.
|
|
120
|
+
*
|
|
121
|
+
* Skipped when `UpdateEntityOptions.skipYjsSync` is true. The web autosave
|
|
122
|
+
* PUT sets that — its content already came from Y.Text, so mirroring the
|
|
123
|
+
* just-written disk content back into Y.Doc would race with in-flight
|
|
124
|
+
* keystrokes typed during the autosave round-trip.
|
|
125
|
+
*
|
|
126
|
+
* Sync (not async). Must run before any awaits in graph.update.
|
|
127
|
+
*/
|
|
128
|
+
onContentUpdate?(repo: string, entityType: string, entityId: string): void;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Thrown by `restoreFile` when the path the recreate would land at is
|
|
132
|
+
* currently occupied by a different entity. Carries the occupant's
|
|
133
|
+
* coordinates so callers (agent tool, REST endpoint) can surface a
|
|
134
|
+
* useful error to the user.
|
|
135
|
+
*/
|
|
136
|
+
export declare class PathConflictError extends Error {
|
|
137
|
+
readonly path: string;
|
|
138
|
+
readonly occupiedBy: {
|
|
139
|
+
entityType: string;
|
|
140
|
+
entityId: string;
|
|
141
|
+
};
|
|
142
|
+
readonly code: "PATH_CONFLICT";
|
|
143
|
+
constructor(path: string, occupiedBy: {
|
|
144
|
+
entityType: string;
|
|
145
|
+
entityId: string;
|
|
146
|
+
});
|
|
63
147
|
}
|
|
64
148
|
export declare class BaseGraphManager {
|
|
65
149
|
private repoPath;
|
|
@@ -69,20 +153,90 @@ export declare class BaseGraphManager {
|
|
|
69
153
|
private markdownService;
|
|
70
154
|
private assetService?;
|
|
71
155
|
private gitUser;
|
|
72
|
-
private csvService;
|
|
73
156
|
private vectorService?;
|
|
74
157
|
private schemaRegistry?;
|
|
158
|
+
private workspaceRoot?;
|
|
159
|
+
private mutationCallbacks?;
|
|
75
160
|
constructor(config: GraphConfig);
|
|
76
|
-
/** Expose git service for deferred commit operations (
|
|
161
|
+
/** Expose git service for deferred commit operations (SessionManager). */
|
|
77
162
|
getGitService(): GitService | undefined;
|
|
163
|
+
/** Absolute repo path on disk. Used by callers that need to convert
|
|
164
|
+
* an entity's absolute path to a repo-relative one (e.g. for `git log`). */
|
|
165
|
+
getRepoPath(): string;
|
|
166
|
+
/**
|
|
167
|
+
* Find an entity at a specific commit (existing or deleted) and
|
|
168
|
+
* return its repo-relative path + content. Public surface for the
|
|
169
|
+
* history tools — wraps the private `findEntityInCommit` walker.
|
|
170
|
+
* Returns null when no .md file at that commit matches the
|
|
171
|
+
* (entityType, entityId) pair.
|
|
172
|
+
*/
|
|
173
|
+
getEntityAtCommit(entityType: EntityType, entityId: string, commitHash: string): {
|
|
174
|
+
path: string;
|
|
175
|
+
content: string;
|
|
176
|
+
} | null;
|
|
177
|
+
/** Workspace root passed in via GraphConfig. Used by the asset upload
|
|
178
|
+
* service to anchor PDF text sidecars at workspace level (so all repos
|
|
179
|
+
* share the same `assets-text/` tree, mirroring the shared
|
|
180
|
+
* `.studiograph/assets/` directory the local backend uses). */
|
|
181
|
+
getWorkspaceRoot(): string | undefined;
|
|
182
|
+
/**
|
|
183
|
+
* Install post-mutation callbacks. Called once after construction by the
|
|
184
|
+
* server bootstrap (or test setup) so the Yjs persistence layer can react
|
|
185
|
+
* to structural mutations without route-layer code calling persistence
|
|
186
|
+
* APIs directly.
|
|
187
|
+
*/
|
|
188
|
+
setMutationCallbacks(callbacks: GraphMutationCallbacks | undefined): void;
|
|
78
189
|
/**
|
|
79
190
|
* Ensure repository exists
|
|
80
191
|
*/
|
|
81
192
|
private ensureRepo;
|
|
82
193
|
/**
|
|
83
|
-
*
|
|
194
|
+
* Compute the on-disk path for a new entity.
|
|
195
|
+
*
|
|
196
|
+
* - When `folderPath` is provided, the entry lives at {repo}/{folderPath}/{id}.md
|
|
197
|
+
* regardless of type. This is the nested-folders layout.
|
|
198
|
+
* - Without `folderPath` (or empty string), the entry lands at the repo
|
|
199
|
+
* root: {repo}/{id}.md. The historical {repo}/{plural-type}/{id}.md
|
|
200
|
+
* fallback was confusing — entries hidden under a typed directory the
|
|
201
|
+
* list view never showed at repo root, contradicting the agent tool
|
|
202
|
+
* description that says "Omit to land at repo root."
|
|
203
|
+
*
|
|
204
|
+
* Note: this is for *new* paths only. Existing entries living under the
|
|
205
|
+
* legacy {plural-type}/ directories continue to be readable via
|
|
206
|
+
* findEntityFile() — only the create path moved.
|
|
84
207
|
*/
|
|
85
208
|
private getEntityPath;
|
|
209
|
+
private fileIndex?;
|
|
210
|
+
/** Drop the cached file index so the next read rebuilds it. */
|
|
211
|
+
private invalidateIndex;
|
|
212
|
+
/**
|
|
213
|
+
* Walk every .md file under this repo, calling `visit` with the absolute
|
|
214
|
+
* path. Skips hidden directories (.git, .studiograph, etc.) and files that
|
|
215
|
+
* start with ".".
|
|
216
|
+
*/
|
|
217
|
+
private walkMarkdownFiles;
|
|
218
|
+
/**
|
|
219
|
+
* Build (or fetch the cached) "type/id" → absolute path index.
|
|
220
|
+
* Type comes from frontmatter `entity_type`; if missing, falls back to the
|
|
221
|
+
* top-level plural-type directory name (legacy layout). Files without either
|
|
222
|
+
* (e.g. README.md) are skipped — they aren't entities.
|
|
223
|
+
*/
|
|
224
|
+
private getFileIndex;
|
|
225
|
+
/**
|
|
226
|
+
* Infer entity type from a file's location for legacy layouts where the
|
|
227
|
+
* file sits directly inside a top-level plural-type directory
|
|
228
|
+
* ({repo}/meetings/foo.md). Returns undefined for any other layout.
|
|
229
|
+
*/
|
|
230
|
+
private inferLegacyType;
|
|
231
|
+
/**
|
|
232
|
+
* Resolve an entity's absolute path by (type, id). Returns undefined if not
|
|
233
|
+
* found. Uses the file index — the index keys by `${entityType}/${entityId}`
|
|
234
|
+
* which is type-aware, unlike the on-disk filename. (We previously had a
|
|
235
|
+
* legacy {plural-type}/{id}.md fast path here; once the create path moved
|
|
236
|
+
* to flat repo-root layout, that fast path could return a different
|
|
237
|
+
* type's file at the same id.)
|
|
238
|
+
*/
|
|
239
|
+
private findEntityFile;
|
|
86
240
|
/**
|
|
87
241
|
* Validate entity data against schema
|
|
88
242
|
*/
|
|
@@ -92,11 +246,16 @@ export declare class BaseGraphManager {
|
|
|
92
246
|
*/
|
|
93
247
|
create(options: CreateEntityOptions): Promise<EntityFile>;
|
|
94
248
|
/**
|
|
95
|
-
* Get an entity by type and ID
|
|
249
|
+
* Get an entity by type and ID. Searches nested folders if the entry isn't
|
|
250
|
+
* at the legacy {plural-type}/{id}.md path.
|
|
96
251
|
*/
|
|
97
252
|
get(entityType: EntityType, entityId: string): EntityFile;
|
|
98
253
|
/**
|
|
99
|
-
* Get an entity by ID only (type resolved from
|
|
254
|
+
* Get an entity by ID only (type resolved from the filesystem).
|
|
255
|
+
*
|
|
256
|
+
* Walks the file index to find any entry with this id, regardless of folder
|
|
257
|
+
* depth or type. Used by the agent's `get_entity` tool when the caller
|
|
258
|
+
* doesn't know the entity's type.
|
|
100
259
|
*/
|
|
101
260
|
getById(entityId: string): EntityFile;
|
|
102
261
|
/**
|
|
@@ -106,6 +265,62 @@ export declare class BaseGraphManager {
|
|
|
106
265
|
/**
|
|
107
266
|
* Delete an entity
|
|
108
267
|
*/
|
|
268
|
+
/**
|
|
269
|
+
* Delete multiple entities in a single git transaction. Each entity's
|
|
270
|
+
* file is removed from disk; folder markers (.gitkeep) are added where
|
|
271
|
+
* the deletion left a folder empty. Then everything commits as one
|
|
272
|
+
* atomic operation.
|
|
273
|
+
*
|
|
274
|
+
* Compared to looping `delete()` per entity, this is a real performance
|
|
275
|
+
* primitive: one fork of git, one index update, one commit, one ref
|
|
276
|
+
* advance — instead of N. Bulk delete of a few hundred entities goes
|
|
277
|
+
* from minutes to seconds.
|
|
278
|
+
*
|
|
279
|
+
* Errors per entity (e.g. "not found") don't abort the batch — they're
|
|
280
|
+
* collected in `errors` and the rest still commit. Returns both the
|
|
281
|
+
* successfully-deleted set (for vector cleanup + WS broadcast) and the
|
|
282
|
+
* errors so the caller can surface partial failures.
|
|
283
|
+
*/
|
|
284
|
+
bulkDelete(specs: Array<{
|
|
285
|
+
entityType: EntityType;
|
|
286
|
+
entityId: string;
|
|
287
|
+
}>, options?: {
|
|
288
|
+
commitMessage?: string;
|
|
289
|
+
user?: GitUser;
|
|
290
|
+
}): Promise<{
|
|
291
|
+
deleted: Array<{
|
|
292
|
+
entityType: EntityType;
|
|
293
|
+
entityId: string;
|
|
294
|
+
path: string;
|
|
295
|
+
}>;
|
|
296
|
+
errors: Array<{
|
|
297
|
+
entityType: EntityType;
|
|
298
|
+
entityId: string;
|
|
299
|
+
error: string;
|
|
300
|
+
}>;
|
|
301
|
+
}>;
|
|
302
|
+
/**
|
|
303
|
+
* Commit a set of already-on-disk file changes as a single git
|
|
304
|
+
* operation. Used by callers (e.g. the import route) that perform many
|
|
305
|
+
* `skipCommit: true` writes and want one transaction at the end instead
|
|
306
|
+
* of per-file commits.
|
|
307
|
+
*
|
|
308
|
+
* `entries` describes what each file represents so the transaction can
|
|
309
|
+
* be staged correctly. No-op when nothing is staged or git isn't
|
|
310
|
+
* available.
|
|
311
|
+
*/
|
|
312
|
+
commitPending(entries: Array<{
|
|
313
|
+
operation: 'create' | 'update' | 'delete';
|
|
314
|
+
entityType: EntityType;
|
|
315
|
+
entityId: string;
|
|
316
|
+
filePath: string;
|
|
317
|
+
}>, options: {
|
|
318
|
+
commitMessage: string;
|
|
319
|
+
user?: GitUser;
|
|
320
|
+
extraPaths?: string[];
|
|
321
|
+
}): Promise<{
|
|
322
|
+
committed: boolean;
|
|
323
|
+
}>;
|
|
109
324
|
delete(entityType: EntityType, entityId: string, commitMessage?: string, user?: GitUser): Promise<void>;
|
|
110
325
|
/**
|
|
111
326
|
* Rename an entity (change its ID). Preserves all data, content, and source_ref.
|
|
@@ -113,18 +328,124 @@ export declare class BaseGraphManager {
|
|
|
113
328
|
*/
|
|
114
329
|
rename(entityType: EntityType, oldId: string, newId: string, commitMessage?: string, user?: GitUser): Promise<EntityFile>;
|
|
115
330
|
/**
|
|
116
|
-
* Change an entity's type.
|
|
117
|
-
*
|
|
331
|
+
* Change an entity's type. Updates frontmatter only — the file stays in
|
|
332
|
+
* its current folder. In the type-agnostic folder model, type is a
|
|
333
|
+
* frontmatter property independent of location. (Legacy behavior moved
|
|
334
|
+
* the file between {plural-type}/ dirs; that's no longer correct because
|
|
335
|
+
* those dirs are now ordinary user-visible folders, not type markers.)
|
|
336
|
+
*
|
|
337
|
+
* If the user wants the file to also move (e.g. out of a "meetings/"
|
|
338
|
+
* folder when changed to a note), they invoke move() separately.
|
|
118
339
|
*/
|
|
119
340
|
changeType(entityId: string, fromType: EntityType, toType: EntityType, commitMessage?: string, user?: GitUser): Promise<EntityFile>;
|
|
120
341
|
/**
|
|
121
|
-
*
|
|
342
|
+
* Move an entry to a different folder within the same repo. The filename
|
|
343
|
+
* (and therefore the entity id) and type are unchanged. Auto-creates parent
|
|
344
|
+
* folders. Refuses if the target path already has an entry with this id.
|
|
345
|
+
*/
|
|
346
|
+
move(entityType: EntityType, entityId: string, targetFolderPath: string, commitMessage?: string, user?: GitUser): Promise<EntityFile>;
|
|
347
|
+
/**
|
|
348
|
+
* Restore an entity to its content at a specific commit. Single-entity
|
|
349
|
+
* scope only — multi-entity rollback (e.g. "undo this commit's effects
|
|
350
|
+
* across all touched files") is a separate, more cautious flow that
|
|
351
|
+
* isn't built yet.
|
|
352
|
+
*
|
|
353
|
+
* Two paths through the method:
|
|
354
|
+
* - **Overwrite**: the entity exists today at path `P`. Read content
|
|
355
|
+
* from `git show <hash>:<P>` and write it back to `P`.
|
|
356
|
+
* - **Recreate**: the entity is gone today. Walk the historical
|
|
357
|
+
* commit's tree to find the .md file whose basename matches
|
|
358
|
+
* `entityId` AND whose frontmatter `entity_type` matches
|
|
359
|
+
* `entityType`. That path is the restore target. The walk only
|
|
360
|
+
* fires when the entity is truly absent — overwrites stay cheap.
|
|
361
|
+
*
|
|
362
|
+
* Throws a `PathConflictError` if the recreate target path is now
|
|
363
|
+
* occupied by a DIFFERENT entity (different type+id) — recreating
|
|
364
|
+
* over it would silently overwrite unrelated work. Caller surfaces
|
|
365
|
+
* the conflict to the user; resolution is "move or delete the
|
|
366
|
+
* occupant first."
|
|
367
|
+
*/
|
|
368
|
+
restoreFile(entityType: EntityType, entityId: string, commitHash: string, user?: GitUser): Promise<{
|
|
369
|
+
action: 'recreate' | 'overwrite';
|
|
370
|
+
path: string;
|
|
371
|
+
}>;
|
|
372
|
+
/**
|
|
373
|
+
* Walk a commit's tree looking for a .md file whose basename matches
|
|
374
|
+
* `entityId` AND whose frontmatter `entity_type` matches `entityType`.
|
|
375
|
+
* Returns repo-relative path + content when found, otherwise null.
|
|
376
|
+
* Used by `restoreFile` for the recreate-from-deletion case.
|
|
377
|
+
*/
|
|
378
|
+
private findEntityInCommit;
|
|
379
|
+
/**
|
|
380
|
+
* Identify the entity (if any) currently occupying `absPath`. Returns
|
|
381
|
+
* null when the path holds something that isn't an entity (README, etc).
|
|
382
|
+
* Mirrors the inference rules used in `getFileIndex`.
|
|
383
|
+
*/
|
|
384
|
+
private identifyEntityAtPath;
|
|
385
|
+
/**
|
|
386
|
+
* Enumerate the distinct entity types present in this repo. Used by
|
|
387
|
+
* /api/repos to let the sidebar render the Views list without a full
|
|
388
|
+
* entity fetch per folder.
|
|
389
|
+
*
|
|
390
|
+
* Derived from the file index (which reads frontmatter), so it works for
|
|
391
|
+
* entries in any folder — not just the legacy {plural-type}/ dirs.
|
|
392
|
+
*/
|
|
393
|
+
listEntityTypes(): string[];
|
|
394
|
+
/**
|
|
395
|
+
* Folder lifecycle: a directory is treated as a first-class persistent
|
|
396
|
+
* object. It exists from the moment it's created (createFolder, the destination
|
|
397
|
+
* of a moved entry, etc.) until it's explicitly removed via a folder-level
|
|
398
|
+
* operation (deleteFolder, renameFolder, moveFolderToRepo). Entry-level
|
|
399
|
+
* operations (create, delete, move, transfer) never decide whether a folder
|
|
400
|
+
* lives or dies.
|
|
401
|
+
*
|
|
402
|
+
* `listFolders()` requires either a .md child or a .gitkeep marker for a
|
|
403
|
+
* directory to surface in the API, so the two helpers below are the single
|
|
404
|
+
* place that adds and removes the marker:
|
|
405
|
+
*
|
|
406
|
+
* - `ensureFolderMarker` — call after an op that may have left `dir`
|
|
407
|
+
* without .md children. Writes `.gitkeep` and returns its path so the
|
|
408
|
+
* caller can stage it in the same commit.
|
|
409
|
+
* - `removeFolderMarker` — call after an op that placed an .md into `dir`.
|
|
410
|
+
* Drops a now-redundant `.gitkeep` so the repo stays tidy.
|
|
411
|
+
*
|
|
412
|
+
* Both no-op for the repo root (always implicit) and for paths that don't
|
|
413
|
+
* exist. Both return `null` when nothing changed.
|
|
414
|
+
*/
|
|
415
|
+
private ensureFolderMarker;
|
|
416
|
+
private removeFolderMarker;
|
|
417
|
+
/**
|
|
418
|
+
* Walk up from `dir`, removing each directory that became empty after a
|
|
419
|
+
* folder-level removal (deleteFolder, renameFolder, moveFolderToRepo).
|
|
420
|
+
* Stops at the repo root. Silently no-ops if a directory is missing,
|
|
421
|
+
* non-empty, or can't be removed.
|
|
422
|
+
*
|
|
423
|
+
* NOT called by entry-level operations (create/delete/move/transfer) —
|
|
424
|
+
* they preserve folder structure regardless of whether they emptied a
|
|
425
|
+
* directory. Use `ensureFolderMarker` instead for those paths.
|
|
426
|
+
*/
|
|
427
|
+
private pruneEmptyAncestors;
|
|
428
|
+
/**
|
|
429
|
+
* List entities of a given type (or all types if not specified).
|
|
430
|
+
*
|
|
431
|
+
* Walks the entire repo tree so entries in nested folders are discovered.
|
|
432
|
+
* The type filter is applied against frontmatter `entity_type`; legacy
|
|
433
|
+
* entries without explicit frontmatter type fall back to the depth-1
|
|
434
|
+
* plural-type directory name (so `meetings/foo.md` still resolves as a
|
|
435
|
+
* meeting). Files with no inferable type (README.md, CONTRIBUTING.md, etc.)
|
|
436
|
+
* are skipped.
|
|
122
437
|
*/
|
|
123
438
|
list(entityType?: EntityType, limit?: number): EntityFile[];
|
|
124
439
|
/**
|
|
125
440
|
* Search entities
|
|
126
441
|
*/
|
|
127
442
|
search(options: SearchOptions): EntityFile[];
|
|
443
|
+
/**
|
|
444
|
+
* Resolve a markdown file (anywhere under the repo) to its (type, id),
|
|
445
|
+
* tolerating both legacy {plural-type}/{id}.md and nested-folder layouts.
|
|
446
|
+
* Returns undefined for files without a recognizable entity type.
|
|
447
|
+
*/
|
|
448
|
+
private resolveFileToEntity;
|
|
128
449
|
/**
|
|
129
450
|
* Get entities related to a given entity (via wikilinks)
|
|
130
451
|
*/
|
|
@@ -146,6 +467,119 @@ export declare class BaseGraphManager {
|
|
|
146
467
|
refactorWikilink(oldId: string, newId: string, commitMessage?: string): Promise<{
|
|
147
468
|
updated: number;
|
|
148
469
|
}>;
|
|
470
|
+
/**
|
|
471
|
+
* List every non-empty folder in this repo, plus folders explicitly kept
|
|
472
|
+
* via .gitkeep. Returns repo-relative POSIX paths, sorted, deduplicated.
|
|
473
|
+
* The repo root ("") is intentionally omitted — it's implicit.
|
|
474
|
+
*/
|
|
475
|
+
listFolders(): FolderEntry[];
|
|
476
|
+
/**
|
|
477
|
+
* Read the display_name override for a single folder, or null if no sidecar
|
|
478
|
+
* exists / is unreadable. Used by mutation paths that need the current
|
|
479
|
+
* override before deciding whether to rewrite it.
|
|
480
|
+
*/
|
|
481
|
+
readFolderDisplayName(folderPath: string): string | null;
|
|
482
|
+
/**
|
|
483
|
+
* Write or remove the per-folder display_name sidecar. Pass `null` /
|
|
484
|
+
* empty-string to remove (returns to slug fallback). Returns the absolute
|
|
485
|
+
* path of the sidecar (for git staging) when one was written or removed,
|
|
486
|
+
* or null when no change was needed (idempotent).
|
|
487
|
+
*
|
|
488
|
+
* Caller is responsible for committing — the helper only touches the
|
|
489
|
+
* filesystem. Folder must already exist; this never creates one.
|
|
490
|
+
*/
|
|
491
|
+
writeFolderDisplayName(folderPath: string, displayName: string | null): string | null;
|
|
492
|
+
/**
|
|
493
|
+
* Bulk-write display_name sidecars for many folders at once. Used by the
|
|
494
|
+
* import path to record original-casing overrides for every nested
|
|
495
|
+
* directory it slugified. First-writer-wins: existing sidecars are NOT
|
|
496
|
+
* overwritten, so a second import doesn't clobber a user's manual rename.
|
|
497
|
+
*
|
|
498
|
+
* Returns the list of sidecar paths actually written (for git staging).
|
|
499
|
+
* Skipped paths (folder missing, slug already matches display, sidecar
|
|
500
|
+
* already exists) are quietly omitted.
|
|
501
|
+
*/
|
|
502
|
+
recordFolderDisplays(entries: Array<{
|
|
503
|
+
path: string;
|
|
504
|
+
display_name: string;
|
|
505
|
+
}>): string[];
|
|
506
|
+
/**
|
|
507
|
+
* Create a folder at the given path (mkdir -p semantics) and drop a
|
|
508
|
+
* .gitkeep so git tracks it even when empty. Validates the path. No-op if
|
|
509
|
+
* the folder already exists; .gitkeep is added if missing.
|
|
510
|
+
*/
|
|
511
|
+
createFolder(folderPath: string, commitMessage?: string, user?: GitUser, options?: {
|
|
512
|
+
displayName?: string;
|
|
513
|
+
}): Promise<void>;
|
|
514
|
+
/**
|
|
515
|
+
* Rename / move a folder within the repo. Moves the entire subtree
|
|
516
|
+
* atomically via filesystem rename. Refuses if the target path is already
|
|
517
|
+
* occupied.
|
|
518
|
+
*/
|
|
519
|
+
renameFolder(fromPath: string, toPath: string, commitMessage?: string, user?: GitUser, options?: {
|
|
520
|
+
displayName?: string | null;
|
|
521
|
+
}): Promise<void>;
|
|
522
|
+
/**
|
|
523
|
+
* Move a folder (and its full subtree) into a different repo at `targetFolderPath`.
|
|
524
|
+
*
|
|
525
|
+
* The naive way to do this is to iterate the source's entries and call
|
|
526
|
+
* `transfer` per entry — that's what the web UI used to do, and it costs
|
|
527
|
+
* 2 git commits per entry (1600 commits for 800 files), each blocking the
|
|
528
|
+
* Node event loop via `execSync`. This method performs the move as a
|
|
529
|
+
* single FS-level rename + one commit per repo, regardless of how many
|
|
530
|
+
* files are inside.
|
|
531
|
+
*
|
|
532
|
+
* Returns the count of entries + subfolders moved so the caller can
|
|
533
|
+
* surface progress.
|
|
534
|
+
*/
|
|
535
|
+
moveFolderToRepo(sourceFolderPath: string, target: BaseGraphManager, targetFolderPath: string, options?: {
|
|
536
|
+
commitMessage?: string;
|
|
537
|
+
user?: GitUser;
|
|
538
|
+
}): Promise<FolderDeleteResult>;
|
|
539
|
+
/**
|
|
540
|
+
* Move a batch of entries (potentially across many source folders) into a
|
|
541
|
+
* single target folder, optionally in a different repo. The web UI's
|
|
542
|
+
* multi-select bulk move used to call /move or /transfer per entry — that
|
|
543
|
+
* was 1-2 sync git commits per entry, blocking the event loop on each one.
|
|
544
|
+
* This collapses the operation to a single FS rename per file plus one
|
|
545
|
+
* commit on each repo touched.
|
|
546
|
+
*/
|
|
547
|
+
moveEntitiesToRepo(entries: Array<{
|
|
548
|
+
entityType: EntityType;
|
|
549
|
+
entityId: string;
|
|
550
|
+
}>, target: BaseGraphManager, targetFolderPath: string, options?: {
|
|
551
|
+
commitMessage?: string;
|
|
552
|
+
user?: GitUser;
|
|
553
|
+
}): Promise<{
|
|
554
|
+
moved: number;
|
|
555
|
+
}>;
|
|
556
|
+
/**
|
|
557
|
+
* Delete a folder. Refuses non-empty folders unless `recursive: true`.
|
|
558
|
+
* Returns the count of entries + subfolders removed (for blast-radius UI).
|
|
559
|
+
*/
|
|
560
|
+
deleteFolder(folderPath: string, options?: {
|
|
561
|
+
recursive?: boolean;
|
|
562
|
+
commitMessage?: string;
|
|
563
|
+
user?: GitUser;
|
|
564
|
+
}): Promise<FolderDeleteResult>;
|
|
565
|
+
/**
|
|
566
|
+
* Count the entries (.md files with entity_type) and subfolders inside an
|
|
567
|
+
* absolute directory, recursively. Used to surface blast radius in the
|
|
568
|
+
* delete-folder approval UI.
|
|
569
|
+
*/
|
|
570
|
+
private countFolderContents;
|
|
571
|
+
/**
|
|
572
|
+
* Return the storage backend the graph is bound to, or `undefined` if
|
|
573
|
+
* no asset service is configured. Used by routes that need to branch
|
|
574
|
+
* between local-stream and R2-redirect behavior.
|
|
575
|
+
*/
|
|
576
|
+
getAssetStorage(): 'local' | 'r2' | undefined;
|
|
577
|
+
/**
|
|
578
|
+
* Mint a short-lived pre-signed URL for an asset. Only supported by
|
|
579
|
+
* remote backends (R2); the local backend throws. `method` selects
|
|
580
|
+
* the verb the URL is signed against — HEAD callers need a HEAD URL.
|
|
581
|
+
*/
|
|
582
|
+
getAssetSignedUrl(entityType: EntityType, entityId: string, filename: string, keyPrefix?: string, expiresIn?: number, method?: 'GET' | 'HEAD'): Promise<string>;
|
|
149
583
|
/**
|
|
150
584
|
* Upload asset for an entity
|
|
151
585
|
*/
|
|
@@ -155,21 +589,39 @@ export declare class BaseGraphManager {
|
|
|
155
589
|
*/
|
|
156
590
|
listAssets(entityType: EntityType, entityId: string, keyPrefix?: string): Promise<AssetInfo[]>;
|
|
157
591
|
/**
|
|
158
|
-
*
|
|
592
|
+
* List every asset in the backend in one round-trip, tagged with
|
|
593
|
+
* (entityType, entityId) origin. Workspace-wide since the asset backend
|
|
594
|
+
* is shared across repos — callers filter by repo via {@link listEntityIds}.
|
|
159
595
|
*/
|
|
160
|
-
|
|
596
|
+
listAllAssets(): Promise<AssetRecord[]>;
|
|
161
597
|
/**
|
|
162
|
-
*
|
|
598
|
+
* Enumerate (type, id) pairs in this repo. Used by endpoints (like
|
|
599
|
+
* /api/repos/:repo/assets) that need to answer "does entity X belong to
|
|
600
|
+
* this repo?".
|
|
601
|
+
*
|
|
602
|
+
* Backed by the file index, which reads frontmatter — so entries in
|
|
603
|
+
* nested folders are included alongside legacy {plural-type}/ entries.
|
|
163
604
|
*/
|
|
164
|
-
|
|
605
|
+
listEntityIds(): Array<{
|
|
606
|
+
entityType: EntityType;
|
|
607
|
+
id: string;
|
|
608
|
+
}>;
|
|
165
609
|
/**
|
|
166
|
-
*
|
|
610
|
+
* Resolve the absolute on-disk markdown path for an entity. Goes through
|
|
611
|
+
* the file index so it works for both the flat repo-root layout and
|
|
612
|
+
* arbitrary nested folders. Use this anywhere callers need a path —
|
|
613
|
+
* never reconstruct one from `${plural-type}/${id}.md`, which assumes
|
|
614
|
+
* the legacy typed-folder layout and silently misses everything else.
|
|
167
615
|
*/
|
|
168
|
-
|
|
616
|
+
getEntityFilePath(entityType: EntityType, entityId: string): string | undefined;
|
|
169
617
|
/**
|
|
170
|
-
*
|
|
618
|
+
* Delete an asset
|
|
171
619
|
*/
|
|
172
|
-
|
|
620
|
+
deleteAsset(entityType: EntityType, entityId: string, filename: string, keyPrefix?: string): Promise<void>;
|
|
621
|
+
/**
|
|
622
|
+
* Delete all assets for an entity (when entity is deleted)
|
|
623
|
+
*/
|
|
624
|
+
deleteAllAssets(entityType: EntityType, entityId: string, keyPrefix?: string): Promise<number>;
|
|
173
625
|
/**
|
|
174
626
|
* Get repository status
|
|
175
627
|
*/
|