studiograph 1.3.48-next.21 → 1.3.48-next.210
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 +87 -3
- package/dist/agent/agent-pool.js +188 -15
- 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 +101 -4
- package/dist/agent/orchestrator.js +464 -66
- package/dist/agent/orchestrator.js.map +1 -1
- package/dist/agent/prompts/entity-types-section.d.ts +34 -0
- package/dist/agent/prompts/entity-types-section.js +76 -0
- package/dist/agent/prompts/entity-types-section.js.map +1 -0
- package/dist/agent/prompts/system.md +112 -54
- 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/artifact-canvas/skill.md +152 -0
- package/dist/agent/skills/entity-schema.md +75 -431
- 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 +84 -16
- package/dist/agent/skills/schema-rules.md +28 -28
- package/dist/agent/tools/artifact-tools.d.ts +124 -0
- package/dist/agent/tools/artifact-tools.js +207 -0
- package/dist/agent/tools/artifact-tools.js.map +1 -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 +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 +48 -72
- package/dist/agent/tools/graph-tools.js +852 -329
- 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 -43
- 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/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/{collection.js → admin/folder.js} +33 -32
- 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/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 +5 -1
- 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 +54 -6
- package/dist/cli/commands/mcp.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 +132 -34
- package/dist/cli/commands/reset.js.map +1 -1
- package/dist/cli/commands/serve.js +231 -26
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/sync.d.ts +1 -1
- package/dist/cli/commands/sync.js +237 -227
- 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 -26
- 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 +30 -49
- package/dist/cli/setup-wizard.js +39 -40
- 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/artifact-asset-urls.d.ts +51 -0
- package/dist/core/artifact-asset-urls.js +79 -0
- package/dist/core/artifact-asset-urls.js.map +1 -0
- package/dist/core/artifact-bundle.d.ts +69 -0
- package/dist/core/artifact-bundle.js +305 -0
- package/dist/core/artifact-bundle.js.map +1 -0
- package/dist/core/artifact-escape.d.ts +5 -0
- package/dist/core/artifact-escape.js +26 -0
- package/dist/core/artifact-escape.js.map +1 -0
- package/dist/core/artifact-export.d.ts +17 -0
- package/dist/core/artifact-export.js +529 -0
- package/dist/core/artifact-export.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 +96 -0
- package/dist/core/embeds.js +187 -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 +67 -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 +142 -0
- package/dist/core/entity-types-catalog.js.map +1 -0
- package/dist/core/field-library.d.ts +62 -0
- package/dist/core/field-library.js +129 -0
- package/dist/core/field-library.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/format-registry.d.ts +170 -0
- package/dist/core/format-registry.js +412 -0
- package/dist/core/format-registry.js.map +1 -0
- package/dist/core/graph.d.ts +773 -14
- package/dist/core/graph.js +2269 -308
- 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/refs.d.ts +41 -0
- package/dist/core/refs.js +80 -0
- package/dist/core/refs.js.map +1 -0
- package/dist/core/schema-registry.d.ts +66 -0
- package/dist/core/schema-registry.js +198 -37
- 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/tavily.d.ts +18 -0
- package/dist/core/secrets/probes/tavily.js +58 -0
- package/dist/core/secrets/probes/tavily.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 +616 -0
- package/dist/core/secrets/registry.js.map +1 -0
- package/dist/core/types.d.ts +77 -483
- package/dist/core/types.js +25 -3
- package/dist/core/types.js.map +1 -1
- package/dist/core/user-config.d.ts +75 -12
- package/dist/core/user-config.js +155 -14
- package/dist/core/user-config.js.map +1 -1
- package/dist/core/validation.d.ts +786 -1373
- package/dist/core/validation.js +458 -147
- package/dist/core/validation.js.map +1 -1
- package/dist/core/workspace-manager.d.ts +87 -14
- package/dist/core/workspace-manager.js +222 -94
- package/dist/core/workspace-manager.js.map +1 -1
- package/dist/core/workspace.d.ts +19 -5
- package/dist/core/workspace.js +67 -39
- 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 +72 -2
- package/dist/mcp/connector-manager.js +211 -32
- package/dist/mcp/connector-manager.js.map +1 -1
- package/dist/mcp/oauth-provider.d.ts +0 -5
- package/dist/mcp/oauth-provider.js +10 -22
- package/dist/mcp/oauth-provider.js.map +1 -1
- package/dist/mcp/oauth-registry.d.ts +46 -8
- package/dist/mcp/oauth-registry.js +52 -13
- package/dist/mcp/oauth-registry.js.map +1 -1
- package/dist/mcp/server-discovery.d.ts +73 -0
- package/dist/mcp/server-discovery.js +164 -0
- package/dist/mcp/server-discovery.js.map +1 -0
- package/dist/mcp/server.d.ts +24 -3
- package/dist/mcp/server.js +53 -10
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/state-signer.d.ts +62 -0
- package/dist/mcp/state-signer.js +205 -0
- package/dist/mcp/state-signer.js.map +1 -0
- package/dist/mcp/stdio-proxy.d.ts +67 -0
- package/dist/mcp/stdio-proxy.js +149 -0
- package/dist/mcp/stdio-proxy.js.map +1 -0
- package/dist/mcp/tools.d.ts +65 -2
- package/dist/mcp/tools.js +1772 -124
- package/dist/mcp/tools.js.map +1 -1
- package/dist/server/__tests__/helpers/graph-api.d.ts +16 -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/artifact-asset-mint.d.ts +41 -0
- package/dist/server/artifact-asset-mint.js +59 -0
- package/dist/server/artifact-asset-mint.js.map +1 -0
- package/dist/server/asset-index-queue.d.ts +98 -0
- package/dist/server/asset-index-queue.js +193 -0
- package/dist/server/asset-index-queue.js.map +1 -0
- package/dist/server/body-write-coordinator.d.ts +161 -0
- package/dist/server/body-write-coordinator.js +182 -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 +29 -3
- package/dist/server/index.js +657 -269
- package/dist/server/index.js.map +1 -1
- package/dist/server/middleware/sanitize.d.ts +46 -0
- package/dist/server/middleware/sanitize.js +182 -0
- package/dist/server/middleware/sanitize.js.map +1 -0
- package/dist/server/routes/artifact-export-api.d.ts +11 -0
- package/dist/server/routes/artifact-export-api.js +159 -0
- package/dist/server/routes/artifact-export-api.js.map +1 -0
- package/dist/server/routes/asset-api.d.ts +76 -1
- package/dist/server/routes/asset-api.js +761 -61
- 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 +532 -63
- 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 +213 -25
- package/dist/server/routes/capture-api.js.map +1 -1
- package/dist/server/routes/chat-sessions-api.d.ts +13 -0
- package/dist/server/routes/chat-sessions-api.js +455 -0
- package/dist/server/routes/chat-sessions-api.js.map +1 -0
- package/dist/server/routes/chat.d.ts +35 -1
- package/dist/server/routes/chat.js +699 -54
- 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 +3 -2
- package/dist/server/routes/config-api.js +179 -49
- package/dist/server/routes/config-api.js.map +1 -1
- package/dist/server/routes/connectors-api.js +177 -42
- 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/{meeting-ingest-api.js → event-ingest-api.js} +35 -20
- package/dist/server/routes/event-ingest-api.js.map +1 -0
- package/dist/server/routes/field-library-api.d.ts +28 -0
- package/dist/server/routes/field-library-api.js +126 -0
- package/dist/server/routes/field-library-api.js.map +1 -0
- package/dist/server/routes/git-http.d.ts +2 -2
- package/dist/server/routes/git-http.js +86 -39
- package/dist/server/routes/git-http.js.map +1 -1
- package/dist/server/routes/graph-api-access.d.ts +57 -0
- package/dist/server/routes/graph-api-access.js +112 -0
- package/dist/server/routes/graph-api-access.js.map +1 -0
- package/dist/server/routes/graph-api.d.ts +1 -1
- package/dist/server/routes/graph-api.js +1455 -325
- 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/import-batch.d.ts +24 -0
- package/dist/server/routes/import-batch.js +33 -0
- package/dist/server/routes/import-batch.js.map +1 -0
- package/dist/server/routes/insights-api.d.ts +9 -2
- package/dist/server/routes/insights-api.js +355 -61
- 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 +24 -8
- package/dist/server/routes/mcp.js.map +1 -1
- package/dist/server/routes/oauth-api.d.ts +67 -0
- package/dist/server/routes/oauth-api.js +421 -0
- package/dist/server/routes/oauth-api.js.map +1 -0
- 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/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/share-api.d.ts +32 -0
- package/dist/server/routes/share-api.js +234 -0
- package/dist/server/routes/share-api.js.map +1 -0
- package/dist/server/routes/views-api.js +51 -0
- 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 +142 -23
- 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 -17
- 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 -14
- package/dist/server/session-manager.js.map +1 -1
- package/dist/server/ws-hub.d.ts +124 -37
- package/dist/server/ws-hub.js +0 -0
- package/dist/server/ws-hub.js.map +1 -1
- package/dist/server/yjs-manager.d.ts +278 -7
- package/dist/server/yjs-manager.js +830 -38
- 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 +165 -0
- package/dist/services/access-control.js.map +1 -0
- package/dist/services/artifact-asset-token.d.ts +69 -0
- package/dist/services/artifact-asset-token.js +94 -0
- package/dist/services/artifact-asset-token.js.map +1 -0
- package/dist/services/artifact-library-sources.d.ts +3 -0
- package/dist/services/artifact-library-sources.js +44 -0
- package/dist/services/artifact-library-sources.js.map +1 -0
- package/dist/services/artifact-render-export.d.ts +97 -0
- package/dist/services/artifact-render-export.js +467 -0
- package/dist/services/artifact-render-export.js.map +1 -0
- package/dist/services/asset-caption-service.d.ts +103 -0
- package/dist/services/asset-caption-service.js +186 -0
- package/dist/services/asset-caption-service.js.map +1 -0
- package/dist/services/asset-delete-authz.d.ts +31 -0
- package/dist/services/asset-delete-authz.js +61 -0
- package/dist/services/asset-delete-authz.js.map +1 -0
- package/dist/services/asset-finalize-service.d.ts +58 -0
- package/dist/services/asset-finalize-service.js +216 -0
- package/dist/services/asset-finalize-service.js.map +1 -0
- package/dist/services/asset-import-service.d.ts +111 -0
- package/dist/services/asset-import-service.js +394 -0
- package/dist/services/asset-import-service.js.map +1 -0
- package/dist/services/asset-index-sweep.d.ts +95 -0
- package/dist/services/asset-index-sweep.js +249 -0
- package/dist/services/asset-index-sweep.js.map +1 -0
- package/dist/services/asset-lifecycle-check.d.ts +22 -0
- package/dist/services/asset-lifecycle-check.js +80 -0
- package/dist/services/asset-lifecycle-check.js.map +1 -0
- package/dist/services/asset-listing.d.ts +72 -0
- package/dist/services/asset-listing.js +321 -0
- package/dist/services/asset-listing.js.map +1 -0
- package/dist/services/asset-presign-service.d.ts +68 -0
- package/dist/services/asset-presign-service.js +124 -0
- package/dist/services/asset-presign-service.js.map +1 -0
- package/dist/services/asset-sidecar-service.d.ts +28 -0
- package/dist/services/asset-sidecar-service.js +79 -0
- package/dist/services/asset-sidecar-service.js.map +1 -0
- package/dist/services/asset-upload-errors.d.ts +41 -0
- package/dist/services/asset-upload-errors.js +45 -0
- package/dist/services/asset-upload-errors.js.map +1 -0
- package/dist/services/asset-upload-service.d.ts +56 -0
- package/dist/services/asset-upload-service.js +200 -0
- package/dist/services/asset-upload-service.js.map +1 -0
- package/dist/services/asset-upload-token.d.ts +58 -0
- package/dist/services/asset-upload-token.js +75 -0
- package/dist/services/asset-upload-token.js.map +1 -0
- package/dist/services/assets/asset-index-service.d.ts +127 -0
- package/dist/services/assets/asset-index-service.js +227 -0
- package/dist/services/assets/asset-index-service.js.map +1 -0
- package/dist/services/assets/base.d.ts +128 -2
- package/dist/services/assets/base.js +98 -1
- package/dist/services/assets/base.js.map +1 -1
- package/dist/services/assets/index.d.ts +114 -1
- package/dist/services/assets/index.js +221 -0
- package/dist/services/assets/index.js.map +1 -1
- package/dist/services/assets/local.d.ts +16 -1
- package/dist/services/assets/local.js +110 -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 +87 -1
- package/dist/services/assets/r2.js +203 -1
- package/dist/services/assets/r2.js.map +1 -1
- package/dist/services/auth-service.d.ts +312 -45
- package/dist/services/auth-service.js +1011 -195
- package/dist/services/auth-service.js.map +1 -1
- package/dist/services/chat-session-service.d.ts +188 -0
- package/dist/services/chat-session-service.js +512 -0
- package/dist/services/chat-session-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/comment-virtual-entity.d.ts +36 -0
- package/dist/services/comment-virtual-entity.js +71 -0
- package/dist/services/comment-virtual-entity.js.map +1 -0
- package/dist/services/convert-service.d.ts +64 -0
- package/dist/services/convert-service.js +68 -0
- package/dist/services/convert-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 +213 -0
- package/dist/services/entity-mutations.js +380 -0
- package/dist/services/entity-mutations.js.map +1 -0
- package/dist/services/{meeting-processor.d.ts → event-processor.d.ts} +15 -8
- package/dist/services/{meeting-processor.js → event-processor.js} +124 -65
- package/dist/services/event-processor.js.map +1 -0
- package/dist/services/extract/docx.d.ts +1 -0
- package/dist/services/extract/docx.js +233 -0
- package/dist/services/extract/docx.js.map +1 -0
- package/dist/services/extract/index.d.ts +9 -0
- package/dist/services/extract/index.js +10 -0
- package/dist/services/extract/index.js.map +1 -0
- package/dist/services/extract/pdf.d.ts +13 -0
- package/dist/services/extract/pdf.js +69 -0
- package/dist/services/extract/pdf.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 +58 -0
- package/dist/services/git.js +194 -55
- package/dist/services/git.js.map +1 -1
- package/dist/services/graph-maintenance.js +4 -4
- package/dist/services/graph-maintenance.js.map +1 -1
- package/dist/services/import-service.d.ts +51 -2
- package/dist/services/import-service.js +254 -107
- package/dist/services/import-service.js.map +1 -1
- package/dist/services/lint-service.js +10 -17
- package/dist/services/lint-service.js.map +1 -1
- package/dist/services/markdown.d.ts +12 -1
- package/dist/services/markdown.js +77 -9
- package/dist/services/markdown.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/model-capabilities.d.ts +41 -0
- package/dist/services/model-capabilities.js +107 -0
- package/dist/services/model-capabilities.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/oauth-server-store.d.ts +147 -0
- package/dist/services/oauth-server-store.js +319 -0
- package/dist/services/oauth-server-store.js.map +1 -0
- package/dist/services/orphan-service.js +2 -2
- package/dist/services/orphan-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/scratch-asset-promote.d.ts +57 -0
- package/dist/services/scratch-asset-promote.js +95 -0
- package/dist/services/scratch-asset-promote.js.map +1 -0
- package/dist/services/scratch-attachment-service.d.ts +196 -0
- package/dist/services/scratch-attachment-service.js +347 -0
- package/dist/services/scratch-attachment-service.js.map +1 -0
- package/dist/services/share-link-service.d.ts +57 -0
- package/dist/services/share-link-service.js +142 -0
- package/dist/services/share-link-service.js.map +1 -0
- package/dist/services/user-person-bridge.d.ts +136 -0
- package/dist/services/user-person-bridge.js +340 -0
- package/dist/services/user-person-bridge.js.map +1 -0
- package/dist/services/vector-service.d.ts +282 -5
- package/dist/services/vector-service.js +585 -29
- package/dist/services/vector-service.js.map +1 -1
- package/dist/services/workspace-access.d.ts +108 -0
- package/dist/services/workspace-access.js +149 -0
- package/dist/services/workspace-access.js.map +1 -0
- package/dist/services/workspace-assets-folder.d.ts +46 -0
- package/dist/services/workspace-assets-folder.js +75 -0
- package/dist/services/workspace-assets-folder.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.Bs_z3Z86.css +2 -0
- package/dist/web/_app/immutable/assets/12.DlIf1mKh.css +1 -0
- package/dist/web/_app/immutable/assets/14.7d-Q37wc.css +1 -0
- package/dist/web/_app/immutable/assets/15.BwBFdc1D.css +1 -0
- package/dist/web/_app/immutable/assets/16.CmLrbzZp.css +1 -0
- package/dist/web/_app/immutable/assets/17.DcuK5ZVm.css +1 -0
- package/dist/web/_app/immutable/assets/2.DATnR31c.css +1 -0
- package/dist/web/_app/immutable/assets/3.Cz4H8n_O.css +1 -0
- package/dist/web/_app/immutable/assets/4.aDHteTDy.css +1 -0
- package/dist/web/_app/immutable/assets/6.CF1i5Bon.css +1 -0
- package/dist/web/_app/immutable/assets/ArtifactEntityView.C4ooklFD.css +1 -0
- package/dist/web/_app/immutable/assets/AssetLibraryPicker.BOFW0MvF.css +1 -0
- package/dist/web/_app/immutable/assets/BulkActionsBar.cmKvHzRK.css +1 -0
- package/dist/web/_app/immutable/assets/CalendarView.lBCvS3X5.css +1 -0
- package/dist/web/_app/immutable/assets/CodeMirrorEditor.D6hf2pNJ.css +1 -0
- package/dist/web/_app/immutable/assets/CopyField.DVGZtw4U.css +1 -0
- package/dist/web/_app/immutable/assets/FolderMembersPanel.kiYnDFHu.css +1 -0
- package/dist/web/_app/immutable/assets/FolderMutationDialogs.BMRF6Z3z.css +1 -0
- package/dist/web/_app/immutable/assets/FolderPicker.Cp46GHe2.css +1 -0
- package/dist/web/_app/immutable/assets/GalleryView.WBGxxUQc.css +1 -0
- package/dist/web/_app/immutable/assets/GraphView.BJtGL9py.css +1 -0
- package/dist/web/_app/immutable/assets/KanbanView.BOaI5KFL.css +1 -0
- package/dist/web/_app/immutable/assets/Link.vV0ne105.css +1 -0
- package/dist/web/_app/immutable/assets/Markdown.BZnsSOSf.css +1 -0
- package/dist/web/_app/immutable/assets/Rail.ilusFgD4.css +1 -0
- package/dist/web/_app/immutable/assets/SettingsDialog.D7-BO6S_.css +1 -0
- package/dist/web/_app/immutable/assets/Spinner.UBfl0pab.css +1 -0
- package/dist/web/_app/immutable/assets/StopFilledAlt.fNlDN65D.css +1 -0
- package/dist/web/_app/immutable/assets/TimelineView.xAZBJhHw.css +1 -0
- package/dist/web/_app/immutable/assets/WorkspaceView.C8ErUJAY.css +1 -0
- package/dist/web/_app/immutable/assets/button.BlLm4Dg1.css +1 -0
- package/dist/web/_app/immutable/assets/history-summary.LpmHXasl.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.BgnafZ4K.css +1 -0
- package/dist/web/_app/immutable/assets/realtime.DDCWxn3B.css +1 -0
- package/dist/web/_app/immutable/assets/select.B90KUqR4.css +1 -0
- package/dist/web/_app/immutable/assets/sheet.RF9RBmml.css +1 -0
- package/dist/web/_app/immutable/chunks/22qYtvr82.js +1 -0
- package/dist/web/_app/immutable/chunks/3anKjXOb.js +1 -0
- package/dist/web/_app/immutable/chunks/6S9WOky52.js +1 -0
- package/dist/web/_app/immutable/chunks/7xJ91z7d.js +2 -0
- package/dist/web/_app/immutable/chunks/9K8VREGP.js +1 -0
- package/dist/web/_app/immutable/chunks/B-TGZnCt2.js +1 -0
- package/dist/web/_app/immutable/chunks/B-n5q6ku.js +1 -0
- package/dist/web/_app/immutable/chunks/B0p2fSEV2.js +1 -0
- package/dist/web/_app/immutable/chunks/B2oi87jG.js +2 -0
- package/dist/web/_app/immutable/chunks/B4DG5QOL.js +1 -0
- package/dist/web/_app/immutable/chunks/B6Lt-qaJ.js +1 -0
- package/dist/web/_app/immutable/chunks/B6qeIQZz.js +2 -0
- package/dist/web/_app/immutable/chunks/B9KfEsQw2.js +1 -0
- package/dist/web/_app/immutable/chunks/B9VRF5aH2.js +1 -0
- package/dist/web/_app/immutable/chunks/BCQQzpbj.js +1 -0
- package/dist/web/_app/immutable/chunks/BF0vIqH9.js +1 -0
- package/dist/web/_app/immutable/chunks/BFp1K70l.js +8 -0
- package/dist/web/_app/immutable/chunks/BFr7Funh.js +1 -0
- package/dist/web/_app/immutable/chunks/BFx32D20.js +2 -0
- package/dist/web/_app/immutable/chunks/BLs1h0Rh2.js +1 -0
- package/dist/web/_app/immutable/chunks/BPzV_xOS2.js +1 -0
- package/dist/web/_app/immutable/chunks/BRvMjAzW.js +2 -0
- package/dist/web/_app/immutable/chunks/BV-iCKqa.js +1 -0
- package/dist/web/_app/immutable/chunks/BZi3uKF4.js +1 -0
- package/dist/web/_app/immutable/chunks/B_PyL87x.js +2 -0
- package/dist/web/_app/immutable/chunks/BbfHGU9n2.js +1 -0
- package/dist/web/_app/immutable/chunks/Bbqu2-5G2.js +1 -0
- package/dist/web/_app/immutable/chunks/BdWZJpmv.js +2 -0
- package/dist/web/_app/immutable/chunks/BfnFtsiY.js +1 -0
- package/dist/web/_app/immutable/chunks/BlgjVmFM2.js +14 -0
- package/dist/web/_app/immutable/chunks/BmgXvmIG.js +5 -0
- package/dist/web/_app/immutable/chunks/BpCG9m962.js +1 -0
- package/dist/web/_app/immutable/chunks/BrveeylZ.js +1 -0
- package/dist/web/_app/immutable/chunks/BsW72fyR2.js +1 -0
- package/dist/web/_app/immutable/chunks/Bti_XKwx.js +2692 -0
- package/dist/web/_app/immutable/chunks/BuhW5Fr0.js +689 -0
- package/dist/web/_app/immutable/chunks/Bx74EEyn2.js +1 -0
- package/dist/web/_app/immutable/chunks/BxPN0T61.js +1 -0
- package/dist/web/_app/immutable/chunks/Bxk27YWG.js +1 -0
- package/dist/web/_app/immutable/chunks/Bz9lrgGs.js +1 -0
- package/dist/web/_app/immutable/chunks/BzaxZ6j12.js +1 -0
- package/dist/web/_app/immutable/chunks/C1B4xDs0.js +1 -0
- package/dist/web/_app/immutable/chunks/C1trcC8M.js +7 -0
- package/dist/web/_app/immutable/chunks/C3F_NMTk.js +3 -0
- package/dist/web/_app/immutable/chunks/C4PZmGUQ.js +2 -0
- package/dist/web/_app/immutable/chunks/C6wYiSz8.js +1 -0
- package/dist/web/_app/immutable/chunks/C70saxIl.js +1 -0
- package/dist/web/_app/immutable/chunks/C9tvkk7Y2.js +22 -0
- package/dist/web/_app/immutable/chunks/CE1XZ5DE.js +1 -0
- package/dist/web/_app/immutable/chunks/CEahbtnP.js +1 -0
- package/dist/web/_app/immutable/chunks/CGkd0a-c2.js +2 -0
- package/dist/web/_app/immutable/chunks/CIoNEHQ82.js +184 -0
- package/dist/web/_app/immutable/chunks/CK4z74w5.js +1 -0
- package/dist/web/_app/immutable/chunks/COo3HgCZ.js +1 -0
- package/dist/web/_app/immutable/chunks/CP8_U450.js +1 -0
- package/dist/web/_app/immutable/chunks/CQ1eQ93t2.js +6 -0
- package/dist/web/_app/immutable/chunks/CQyBDccA.js +1 -0
- package/dist/web/_app/immutable/chunks/CUFQMEBn2.js +1 -0
- package/dist/web/_app/immutable/chunks/CV5OSCJc.js +1 -0
- package/dist/web/_app/immutable/chunks/CYEYDNwO2.js +1 -0
- package/dist/web/_app/immutable/chunks/CZgFaimi2.js +83 -0
- package/dist/web/_app/immutable/chunks/CZqvCTCv.js +1 -0
- package/dist/web/_app/immutable/chunks/CcWaWbrI2.js +1 -0
- package/dist/web/_app/immutable/chunks/CdtzRVZK.js +1 -0
- package/dist/web/_app/immutable/chunks/CfYG72Hc.js +1 -0
- package/dist/web/_app/immutable/chunks/Cg-ND0cl.js +1 -0
- package/dist/web/_app/immutable/chunks/Ch1kmm3J2.js +1 -0
- package/dist/web/_app/immutable/chunks/CjiMLTwX2.js +1 -0
- package/dist/web/_app/immutable/chunks/CkoeSJ8K.js +6 -0
- package/dist/web/_app/immutable/chunks/Cp87MaaW.js +1 -0
- package/dist/web/_app/immutable/chunks/Cqm5wAin.js +1 -0
- package/dist/web/_app/immutable/chunks/Ct1uesdW.js +2 -0
- package/dist/web/_app/immutable/chunks/CuYPXpWU.js +1 -0
- package/dist/web/_app/immutable/chunks/Cuq8J2Td.js +1 -0
- package/dist/web/_app/immutable/chunks/CvSEodTA.js +1 -0
- package/dist/web/_app/immutable/chunks/CvqqrTrj.js +1 -0
- package/dist/web/_app/immutable/chunks/CzXdOgVl2.js +7 -0
- package/dist/web/_app/immutable/chunks/D0W7c6Sg.js +185 -0
- package/dist/web/_app/immutable/chunks/D0rBhnqB2.js +1 -0
- package/dist/web/_app/immutable/chunks/D1-GZSN1.js +1 -0
- package/dist/web/_app/immutable/chunks/D1BLcNJ7.js +1 -0
- package/dist/web/_app/immutable/chunks/D1yvtriI.js +1 -0
- package/dist/web/_app/immutable/chunks/D25NMRpl.js +1 -0
- package/dist/web/_app/immutable/chunks/D3F675fu2.js +2 -0
- package/dist/web/_app/immutable/chunks/D4UrtGC1.js +1 -0
- package/dist/web/_app/immutable/chunks/D8wZ2xul.js +4 -0
- package/dist/web/_app/immutable/chunks/DA3HEX3X.js +1 -0
- package/dist/web/_app/immutable/chunks/DE2TCESD2.js +1 -0
- package/dist/web/_app/immutable/chunks/DN-gIRdd2.js +1 -0
- package/dist/web/_app/immutable/chunks/DPUVu0T0.js +1 -0
- package/dist/web/_app/immutable/chunks/DPcejqKZ.js +1 -0
- package/dist/web/_app/immutable/chunks/DQMWa2t7.js +1 -0
- package/dist/web/_app/immutable/chunks/DRPMJ-3M.js +2 -0
- package/dist/web/_app/immutable/chunks/DRPnwQAm.js +1 -0
- package/dist/web/_app/immutable/chunks/DXmfl4Hq2.js +1 -0
- package/dist/web/_app/immutable/chunks/DXsFrDer2.js +1 -0
- package/dist/web/_app/immutable/chunks/DYc5KW3F.js +1 -0
- package/dist/web/_app/immutable/chunks/DcPrzUMJ.js +1 -0
- package/dist/web/_app/immutable/chunks/DdQVGKgM.js +1 -0
- package/dist/web/_app/immutable/chunks/DiFfW--R2.js +2 -0
- package/dist/web/_app/immutable/chunks/DjIqa1_y.js +2 -0
- package/dist/web/_app/immutable/chunks/Dl63IUnH2.js +224 -0
- package/dist/web/_app/immutable/chunks/DmFdD6zT.js +1 -0
- package/dist/web/_app/immutable/chunks/Dn3R8S-U.js +1 -0
- package/dist/web/_app/immutable/chunks/DpNr1GQ2.js +1 -0
- package/dist/web/_app/immutable/chunks/DsFEd8vL2.js +1 -0
- package/dist/web/_app/immutable/chunks/DuxziNnw.js +1 -0
- package/dist/web/_app/immutable/chunks/FuiJnZG0.js +1 -0
- package/dist/web/_app/immutable/chunks/Izkulod7.js +1 -0
- package/dist/web/_app/immutable/chunks/LYL8znYR2.js +23 -0
- package/dist/web/_app/immutable/chunks/ON7Gta0d.js +1 -0
- package/dist/web/_app/immutable/chunks/PhN6tXuJ2.js +1 -0
- package/dist/web/_app/immutable/chunks/PyLyCpuL.js +1 -0
- package/dist/web/_app/immutable/chunks/RG7IUVLn2.js +2 -0
- package/dist/web/_app/immutable/chunks/RK4gCWN0.js +2 -0
- package/dist/web/_app/immutable/chunks/SnzlL4ZV.js +1 -0
- package/dist/web/_app/immutable/chunks/XcWejFm_.js +5 -0
- package/dist/web/_app/immutable/chunks/Xkp5hSA1.js +1 -0
- package/dist/web/_app/immutable/chunks/al_nidE9.js +1 -0
- package/dist/web/_app/immutable/chunks/e50-izZO2.js +1 -0
- package/dist/web/_app/immutable/chunks/golz20La2.js +2 -0
- package/dist/web/_app/immutable/chunks/hG-QCarB.js +1 -0
- package/dist/web/_app/immutable/chunks/kNaey6uv.js +1 -0
- package/dist/web/_app/immutable/chunks/nXReuy-5.js +3 -0
- package/dist/web/_app/immutable/chunks/o61aZZFZ2.js +66 -0
- package/dist/web/_app/immutable/chunks/qwr5boV8.js +1 -0
- package/dist/web/_app/immutable/chunks/rjjyuGhb.js +1 -0
- package/dist/web/_app/immutable/chunks/uBgoVlsx.js +3 -0
- package/dist/web/_app/immutable/chunks/xY0c-UfG.js +3 -0
- package/dist/web/_app/immutable/chunks/xeNvx4Bl2.js +1 -0
- package/dist/web/_app/immutable/chunks/xihTtKlq.js +1 -0
- package/dist/web/_app/immutable/entry/app.dqA31fjy.js +2 -0
- package/dist/web/_app/immutable/entry/start.BB1XrAea.js +1 -0
- package/dist/web/_app/immutable/nodes/0.dALEQAnu.js +2 -0
- package/dist/web/_app/immutable/nodes/1.aFU32Ukj.js +1 -0
- package/dist/web/_app/immutable/nodes/10.C2wB-OnW.js +1 -0
- package/dist/web/_app/immutable/nodes/11.CI3a8Rj5.js +1 -0
- package/dist/web/_app/immutable/nodes/12.CsTvsKzB.js +1 -0
- package/dist/web/_app/immutable/nodes/13.CYrHXCA8.js +1 -0
- package/dist/web/_app/immutable/nodes/14.B31HrQ26.js +1 -0
- package/dist/web/_app/immutable/nodes/15.DxgnZ61h.js +1 -0
- package/dist/web/_app/immutable/nodes/16.DAP8cwVb.js +1 -0
- package/dist/web/_app/immutable/nodes/17.CmwXtCDY.js +77 -0
- package/dist/web/_app/immutable/nodes/2.BuGXEIlN.js +122 -0
- package/dist/web/_app/immutable/nodes/3.CmhZJWHE.js +6 -0
- package/dist/web/_app/immutable/nodes/4.BRfoPTm-.js +11 -0
- package/dist/web/_app/immutable/nodes/5.C7gPuZM_.js +1 -0
- package/dist/web/_app/immutable/nodes/6.qKODVbya.js +6 -0
- package/dist/web/_app/immutable/nodes/7.BZO37zAJ.js +1 -0
- package/dist/web/_app/immutable/nodes/8.xF_Dd1BO.js +1 -0
- package/dist/web/_app/immutable/nodes/9.Bow4UyKV.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 -21
- package/dist/web/studiograph-logomark.svg +29 -0
- package/package.json +35 -14
- package/dist/agent/skills/enrich-entities.md +0 -136
- package/dist/agent/skills/sync-configuration.md +0 -119
- package/dist/agent/skills/sync-setup.md +0 -82
- package/dist/agent/tools/message-tools.d.ts +0 -42
- package/dist/agent/tools/message-tools.js +0 -106
- package/dist/agent/tools/message-tools.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/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.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/start.d.ts +0 -7
- package/dist/cli/commands/start.js +0 -584
- package/dist/cli/commands/start.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 -175
- 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/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/server/chrome/chrome.css +0 -691
- package/dist/server/chrome/chrome.js +0 -374
- 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/meeting-ingest-api.d.ts +0 -14
- package/dist/server/routes/meeting-ingest-api.js.map +0 -1
- package/dist/server/routes/messages-api.d.ts +0 -15
- package/dist/server/routes/messages-api.js +0 -385
- package/dist/server/routes/messages-api.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/briefing.d.ts +0 -26
- package/dist/services/briefing.js +0 -230
- package/dist/services/briefing.js.map +0 -1
- package/dist/services/heartbeat.d.ts +0 -28
- package/dist/services/heartbeat.js +0 -183
- package/dist/services/heartbeat.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.js.map +0 -1
- package/dist/services/message-service.d.ts +0 -68
- package/dist/services/message-service.js +0 -220
- package/dist/services/message-service.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.uPSqtsC5.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.DpQWr6q6.css +0 -1
- package/dist/web/_app/immutable/assets/3.BxdqT7zi.css +0 -1
- package/dist/web/_app/immutable/assets/4.DdNqjd0T.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.BWE03S64.css +0 -1
- package/dist/web/_app/immutable/assets/WorkspaceView.CgGDi_Zb.css +0 -1
- package/dist/web/_app/immutable/assets/wikilinks.CzMBkUMB.css +0 -1
- package/dist/web/_app/immutable/chunks/-jG4Obyh.js +0 -4
- package/dist/web/_app/immutable/chunks/2nrc8f_O.js +0 -1
- package/dist/web/_app/immutable/chunks/7S2LGqoP.js +0 -2
- package/dist/web/_app/immutable/chunks/8Q3ZJIYu.js +0 -1
- package/dist/web/_app/immutable/chunks/B8ydT5xX.js +0 -2
- package/dist/web/_app/immutable/chunks/BB_5th5W.js +0 -3383
- package/dist/web/_app/immutable/chunks/BEn6N5c2.js +0 -1
- package/dist/web/_app/immutable/chunks/BFNNbCAM.js +0 -1
- package/dist/web/_app/immutable/chunks/BFZZEUd5.js +0 -1
- package/dist/web/_app/immutable/chunks/BGk8kfOE.js +0 -2
- package/dist/web/_app/immutable/chunks/BIBCr278.js +0 -1
- package/dist/web/_app/immutable/chunks/BPCkkwqe.js +0 -1
- package/dist/web/_app/immutable/chunks/BhlvzGQx.js +0 -1
- package/dist/web/_app/immutable/chunks/BlMknQeF.js +0 -1
- package/dist/web/_app/immutable/chunks/BpjqrlCg.js +0 -1
- package/dist/web/_app/immutable/chunks/BrebtJNG.js +0 -18
- package/dist/web/_app/immutable/chunks/ByBZ7JIT.js +0 -1
- package/dist/web/_app/immutable/chunks/Bz0ZjVQE.js +0 -2
- package/dist/web/_app/immutable/chunks/BzJTZOK2.js +0 -1
- package/dist/web/_app/immutable/chunks/C0LVZhvn.js +0 -1
- package/dist/web/_app/immutable/chunks/C3uBrOS5.js +0 -1
- package/dist/web/_app/immutable/chunks/C8R1sDpW.js +0 -1
- package/dist/web/_app/immutable/chunks/CDRHrs0g.js +0 -1
- package/dist/web/_app/immutable/chunks/CN5_py1I.js +0 -1
- package/dist/web/_app/immutable/chunks/CPne482a.js +0 -1
- package/dist/web/_app/immutable/chunks/CSVbGg_b.js +0 -5
- package/dist/web/_app/immutable/chunks/CWyU-seV.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/ChsiIm-E.js +0 -1
- package/dist/web/_app/immutable/chunks/CojKppbh.js +0 -1
- package/dist/web/_app/immutable/chunks/CqkleIqs.js +0 -1
- package/dist/web/_app/immutable/chunks/CtYLtD7K.js +0 -1
- package/dist/web/_app/immutable/chunks/D-HDy5qS.js +0 -1
- package/dist/web/_app/immutable/chunks/D5aIYSkd.js +0 -1
- package/dist/web/_app/immutable/chunks/DBBXARVf.js +0 -1
- package/dist/web/_app/immutable/chunks/DFYOFE3o.js +0 -1
- package/dist/web/_app/immutable/chunks/DKaafS50.js +0 -1
- package/dist/web/_app/immutable/chunks/DUMOo1Pn.js +0 -1
- package/dist/web/_app/immutable/chunks/DWX9f6AF.js +0 -1
- package/dist/web/_app/immutable/chunks/DY8-EONP.js +0 -1
- package/dist/web/_app/immutable/chunks/DkoHPElM.js +0 -1
- package/dist/web/_app/immutable/chunks/DnL9f0lc.js +0 -7
- package/dist/web/_app/immutable/chunks/DsnmJJEf.js +0 -1
- package/dist/web/_app/immutable/chunks/DujahU3W.js +0 -1
- package/dist/web/_app/immutable/chunks/FBn-ES5k.js +0 -1
- package/dist/web/_app/immutable/chunks/HQpwSOb3.js +0 -1
- package/dist/web/_app/immutable/chunks/KyjzlWRN.js +0 -2
- package/dist/web/_app/immutable/chunks/PPVm8Dsz.js +0 -1
- package/dist/web/_app/immutable/chunks/UwYfmrPx.js +0 -2
- package/dist/web/_app/immutable/chunks/W25ZVI8L.js +0 -2
- package/dist/web/_app/immutable/chunks/WSUKABI_.js +0 -1
- package/dist/web/_app/immutable/chunks/XjsuEnNE.js +0 -5
- package/dist/web/_app/immutable/chunks/ZD6ARAtb.js +0 -1
- package/dist/web/_app/immutable/chunks/pBTf4stg.js +0 -2
- package/dist/web/_app/immutable/chunks/rGIarcnp.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/entry/app.ZHiTM8WS.js +0 -2
- package/dist/web/_app/immutable/entry/start.C9-FfAVc.js +0 -1
- package/dist/web/_app/immutable/nodes/0.D92Orz8k.js +0 -2
- package/dist/web/_app/immutable/nodes/1.BMdyglM_.js +0 -1
- package/dist/web/_app/immutable/nodes/10.BilVDHSL.js +0 -1
- package/dist/web/_app/immutable/nodes/11.CS9E0Hic.js +0 -1
- package/dist/web/_app/immutable/nodes/12.D3BOxYzG.js +0 -1
- package/dist/web/_app/immutable/nodes/13.CClMKYtN.js +0 -1
- package/dist/web/_app/immutable/nodes/2.C8KKElPL.js +0 -267
- package/dist/web/_app/immutable/nodes/3.C5n5uiWU.js +0 -5
- package/dist/web/_app/immutable/nodes/4.DcGVvgiL.js +0 -11
- package/dist/web/_app/immutable/nodes/5.DxIjnFQO.js +0 -4
- package/dist/web/_app/immutable/nodes/6.lkh6kKLj.js +0 -1
- package/dist/web/_app/immutable/nodes/7.Bg7SbfhA.js +0 -1
- package/dist/web/_app/immutable/nodes/8.DcXWCNBE.js +0 -1
- package/dist/web/_app/immutable/nodes/9.Cefi8Jfm.js +0 -1
package/package.json
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "studiograph",
|
|
3
|
-
"version": "1.3.48-next.
|
|
3
|
+
"version": "1.3.48-next.210",
|
|
4
4
|
"description": "Team-based AI agent platform with Git-backed knowledge graphs",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
|
+
"workspaces": [
|
|
8
|
+
"web"
|
|
9
|
+
],
|
|
7
10
|
"repository": {
|
|
8
11
|
"type": "git",
|
|
9
12
|
"url": "https://github.com/studiograph/studiograph"
|
|
@@ -20,13 +23,15 @@
|
|
|
20
23
|
"README.md"
|
|
21
24
|
],
|
|
22
25
|
"scripts": {
|
|
23
|
-
"build": "node --max-old-space-size=8192 node_modules/typescript/bin/tsc && mkdir -p dist/agent/prompts dist/agent/skills
|
|
24
|
-
"build:web": "
|
|
26
|
+
"build": "node --max-old-space-size=8192 node_modules/typescript/bin/tsc && mkdir -p dist/agent/prompts dist/agent/skills && cp src/agent/prompts/*.md dist/agent/prompts/ && cp -r src/agent/skills/* dist/agent/skills/",
|
|
27
|
+
"build:web": "npm --workspace studiograph-web run build",
|
|
25
28
|
"build:all": "npm run build && npm run build:web",
|
|
26
29
|
"dev": "tsc --watch",
|
|
27
|
-
"dev:web": "
|
|
30
|
+
"dev:web": "npm --workspace studiograph-web run dev",
|
|
28
31
|
"test": "vitest",
|
|
29
|
-
"
|
|
32
|
+
"test:unit": "vitest run --project unit",
|
|
33
|
+
"test:integration": "vitest run --project integration",
|
|
34
|
+
"lint": "node --max-old-space-size=8192 node_modules/typescript/bin/tsc --noEmit",
|
|
30
35
|
"prepublishOnly": "npm run build:all",
|
|
31
36
|
"release:next": "npm publish --tag next"
|
|
32
37
|
},
|
|
@@ -43,20 +48,24 @@
|
|
|
43
48
|
"@ai-sdk/anthropic": "^3.0.46",
|
|
44
49
|
"@ai-sdk/google": "^3.0.30",
|
|
45
50
|
"@ai-sdk/openai": "^3.0.30",
|
|
46
|
-
"@anthropic-ai/sdk": "^0.78.0",
|
|
47
51
|
"@aws-sdk/client-s3": "^3.500.0",
|
|
52
|
+
"@aws-sdk/s3-request-presigner": "^3.1045.0",
|
|
48
53
|
"@clack/prompts": "^0.7.0",
|
|
49
54
|
"@fastify/cookie": "^11.0.2",
|
|
50
55
|
"@fastify/cors": "^10.1.0",
|
|
51
56
|
"@fastify/multipart": "^9.4.0",
|
|
57
|
+
"@fastify/rate-limit": "^10.3.0",
|
|
52
58
|
"@fastify/websocket": "^11.2.0",
|
|
53
|
-
"@lancedb/lancedb": "^0.
|
|
54
|
-
"@mariozechner/pi-agent-core": "^0.
|
|
55
|
-
"@mariozechner/pi-ai": "^0.
|
|
56
|
-
"@mariozechner/pi-tui": "^0.
|
|
59
|
+
"@lancedb/lancedb": "^0.27.2",
|
|
60
|
+
"@mariozechner/pi-agent-core": "^0.70.2",
|
|
61
|
+
"@mariozechner/pi-ai": "^0.70.2",
|
|
62
|
+
"@mariozechner/pi-tui": "^0.70.2",
|
|
57
63
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
58
64
|
"@mozilla/readability": "^0.6.0",
|
|
65
|
+
"@noble/ciphers": "^1.3.0",
|
|
66
|
+
"@types/archiver": "^7.0.0",
|
|
59
67
|
"ai": "^6.0.97",
|
|
68
|
+
"archiver": "^7.0.1",
|
|
60
69
|
"bcryptjs": "^3.0.3",
|
|
61
70
|
"better-sqlite3": "^12.6.2",
|
|
62
71
|
"chalk": "^5.6.2",
|
|
@@ -65,6 +74,7 @@
|
|
|
65
74
|
"consola": "^3.4.2",
|
|
66
75
|
"csv-parse": "^5.6.0",
|
|
67
76
|
"csv-stringify": "^6.6.0",
|
|
77
|
+
"diff-match-patch": "^1.0.5",
|
|
68
78
|
"fastify": "^5.7.4",
|
|
69
79
|
"glob": "^10.3.10",
|
|
70
80
|
"graphology": "^0.26.0",
|
|
@@ -74,12 +84,18 @@
|
|
|
74
84
|
"lib0": "^0.2.117",
|
|
75
85
|
"linkedom": "^0.18.12",
|
|
76
86
|
"mammoth": "^1.12.0",
|
|
87
|
+
"microdiff": "^1.5.0",
|
|
77
88
|
"ora": "^9.3.0",
|
|
89
|
+
"pdf-lib": "^1.17.1",
|
|
78
90
|
"pdf-parse": "^2.4.5",
|
|
79
91
|
"picocolors": "^1.1.1",
|
|
92
|
+
"turndown": "^7.2.4",
|
|
93
|
+
"turndown-plugin-gfm": "^1.0.2",
|
|
94
|
+
"typebox": "^1.1.33",
|
|
95
|
+
"xlsx": "^0.18.5",
|
|
80
96
|
"y-protocols": "^1.0.7",
|
|
81
97
|
"yjs": "^13.6.30",
|
|
82
|
-
"zod": "^3.
|
|
98
|
+
"zod": "^4.3.6"
|
|
83
99
|
},
|
|
84
100
|
"optionalDependencies": {
|
|
85
101
|
"playwright": "^1.58.2"
|
|
@@ -87,15 +103,20 @@
|
|
|
87
103
|
"devDependencies": {
|
|
88
104
|
"@types/bcryptjs": "^2.4.6",
|
|
89
105
|
"@types/better-sqlite3": "^7.6.13",
|
|
106
|
+
"@types/diff-match-patch": "^1.0.36",
|
|
90
107
|
"@types/jsonwebtoken": "^9.0.10",
|
|
91
108
|
"@types/node": "^20.11.0",
|
|
109
|
+
"@types/turndown": "^5.0.6",
|
|
92
110
|
"@types/ws": "^8.18.1",
|
|
93
|
-
"@typescript-eslint/eslint-plugin": "^6.19.0",
|
|
94
|
-
"@typescript-eslint/parser": "^6.19.0",
|
|
95
111
|
"clsx": "^2.1.1",
|
|
96
|
-
"eslint": "^8.56.0",
|
|
97
112
|
"tailwind-merge": "^3.5.0",
|
|
98
113
|
"typescript": "^5.3.3",
|
|
99
114
|
"vitest": "^1.2.0"
|
|
115
|
+
},
|
|
116
|
+
"overrides": {
|
|
117
|
+
"basic-ftp": "^6.0.1",
|
|
118
|
+
"fast-uri": "^3.1.2",
|
|
119
|
+
"fast-xml-builder": "^1.2.0",
|
|
120
|
+
"hono": "^4.12.18"
|
|
100
121
|
}
|
|
101
122
|
}
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: enrich-entities
|
|
3
|
-
description: Proactively suggest enrichment for incomplete entities using context
|
|
4
|
-
loading: eager
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Entity Enrichment
|
|
8
|
-
|
|
9
|
-
When you discover incomplete entities (missing recommended fields), proactively suggest enrichment using contextual inference.
|
|
10
|
-
|
|
11
|
-
## Batch Enrichment (automated)
|
|
12
|
-
|
|
13
|
-
For bulk enrichment of entities with low completeness scores, use the `enrich_run` tool:
|
|
14
|
-
|
|
15
|
-
1. `enrich_run({ dryRun: true })` — preview what would be enriched
|
|
16
|
-
2. Present summary to user, get confirmation
|
|
17
|
-
3. `enrich_run()` — run enrichment (writes in-place, no git commit)
|
|
18
|
-
4. "Review changes with `studiograph review`, then commit with `studiograph commit`"
|
|
19
|
-
5. `workspace_commit({ messagePrefix: "enrich" })` — or let user commit via CLI
|
|
20
|
-
|
|
21
|
-
Use `enrich_abort` to discard all changes if the results aren't satisfactory.
|
|
22
|
-
|
|
23
|
-
## When to Enrich
|
|
24
|
-
|
|
25
|
-
**Proactive discovery:**
|
|
26
|
-
- User asks to "clean up" or "enrich" entities
|
|
27
|
-
- You call `lint_entities` and find incomplete records
|
|
28
|
-
- You fetch an entity and notice missing recommended fields
|
|
29
|
-
|
|
30
|
-
**During normal work:**
|
|
31
|
-
- User asks about a specific entity and you notice gaps
|
|
32
|
-
- You're creating related entities and spot incomplete references
|
|
33
|
-
|
|
34
|
-
## How to Enrich
|
|
35
|
-
|
|
36
|
-
### 1. Discover gaps
|
|
37
|
-
Use `lint_entities` to find incomplete entities:
|
|
38
|
-
```
|
|
39
|
-
lint_entities({ entityType: "project" })
|
|
40
|
-
→ 12 projects missing client, start_date, or end_date
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
### 2. Gather context for each incomplete entity
|
|
44
|
-
- **Fetch the entity:** `get_entity({ entityId: "..." })`
|
|
45
|
-
- **Find related entities:** `get_backlinks({ entityId: "..." })`
|
|
46
|
-
- **Search for references:** Look in meeting notes, proposals, briefs
|
|
47
|
-
- **Check memory:** Review past conversations about this entity
|
|
48
|
-
|
|
49
|
-
### 3. Infer missing values from context
|
|
50
|
-
|
|
51
|
-
**Missing client:**
|
|
52
|
-
- Search entity markdown body for `[[client-name]]` wikilinks
|
|
53
|
-
- Check backlinks from meetings, proposals, deals
|
|
54
|
-
- Look for client mentions in related artifacts
|
|
55
|
-
|
|
56
|
-
**Missing dates:**
|
|
57
|
-
- Extract from related meetings (kickoff = start_date)
|
|
58
|
-
- Check proposal expected_start or contract signed_date
|
|
59
|
-
- Look for date mentions in project description
|
|
60
|
-
|
|
61
|
-
**Missing relationships:**
|
|
62
|
-
- Scan for wikilinks in markdown body
|
|
63
|
-
- Check what entities reference this one (backlinks)
|
|
64
|
-
- Infer from entity type (artifact → deliverable → project)
|
|
65
|
-
|
|
66
|
-
### 4. Suggest, don't assume
|
|
67
|
-
Always confirm before updating:
|
|
68
|
-
|
|
69
|
-
> "I notice this project is missing a client. I see Meridian Health mentioned in 3 related meetings and the project brief. Should I add `client: [[meridian-rebrand]]`?"
|
|
70
|
-
|
|
71
|
-
Wait for user confirmation, then call `update_entity`.
|
|
72
|
-
|
|
73
|
-
## Example Workflows
|
|
74
|
-
|
|
75
|
-
**Batch enrichment:**
|
|
76
|
-
```
|
|
77
|
-
User: "Help me fill in missing clients for incomplete projects"
|
|
78
|
-
|
|
79
|
-
You:
|
|
80
|
-
1. lint_entities({ entityType: "project" }) → 8 missing client
|
|
81
|
-
2. For each project:
|
|
82
|
-
- get_entity() → read markdown body
|
|
83
|
-
- get_backlinks() → find meetings, proposals
|
|
84
|
-
- Search for client wikilinks
|
|
85
|
-
- Suggest: "Add client: [[acme]]?" → confirm → update
|
|
86
|
-
3. Report: "Enriched 6/8 projects. 2 need manual review (no clear client in context)."
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
**Focused enrichment:**
|
|
90
|
-
```
|
|
91
|
-
User: "Fill in missing deal values"
|
|
92
|
-
|
|
93
|
-
You:
|
|
94
|
-
1. lint_entities({ entityType: "deal" }) → 5 deals missing deal_value
|
|
95
|
-
2. For each deal:
|
|
96
|
-
- get_backlinks() → find related proposal
|
|
97
|
-
- get_entity() on proposal → extract fees
|
|
98
|
-
- Suggest: "This deal's proposal shows $50k. Add deal_value: 50000?" → confirm → update
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
**Inline during work:**
|
|
102
|
-
```
|
|
103
|
-
User: "Show me the Acme project"
|
|
104
|
-
|
|
105
|
-
You:
|
|
106
|
-
1. get_entity({ entityId: "acme-rebrand" })
|
|
107
|
-
2. Notice missing: client, start_date
|
|
108
|
-
3. Get context: search for Acme client entity, check proposal
|
|
109
|
-
4. Suggest inline: "This project is missing a client and start date. I found the Acme client entity and a proposal dated 2026-01-15. Should I add those?"
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
## Guidelines
|
|
113
|
-
|
|
114
|
-
**Do:**
|
|
115
|
-
- Use multiple context sources (backlinks, search, memory, markdown body)
|
|
116
|
-
- Present evidence: "I see X mentioned in 3 meetings"
|
|
117
|
-
- Batch similar fields: "Should I add client and start_date?"
|
|
118
|
-
- Report progress: "Enriched 8/12, 4 need review"
|
|
119
|
-
|
|
120
|
-
**Don't:**
|
|
121
|
-
- Update without confirmation
|
|
122
|
-
- Guess when evidence is weak ("I'm not sure which client this is")
|
|
123
|
-
- Over-enrich — only fill recommended fields that are clearly missing
|
|
124
|
-
- Make up data — if no context exists, say so: "I couldn't find a clear client reference. Would you like to specify it?"
|
|
125
|
-
|
|
126
|
-
## Priority Fields
|
|
127
|
-
|
|
128
|
-
Focus enrichment on high-value semantic fields:
|
|
129
|
-
1. **Relationships** — client, project, deliverable (wikilinks)
|
|
130
|
-
2. **Dates** — start_date, due_date, expected_close
|
|
131
|
-
3. **People** — assignee, decision_makers, attendees
|
|
132
|
-
4. **Values** — deal_value, fees, budget
|
|
133
|
-
|
|
134
|
-
Low-priority (often intentionally omitted):
|
|
135
|
-
- Tags, notes, optional descriptions
|
|
136
|
-
- Status (user may want to set this themselves)
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sync-configuration
|
|
3
|
-
description: Reference for building sync source configs — field maps, transforms, co-location, extraction modes
|
|
4
|
-
loading: eager
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Sync Configuration Reference
|
|
8
|
-
|
|
9
|
-
Use this reference when helping users build or modify source configs at `.studiograph/sources/<name>.json`.
|
|
10
|
-
|
|
11
|
-
## Source Config Structure
|
|
12
|
-
|
|
13
|
-
```json
|
|
14
|
-
{
|
|
15
|
-
"name": "linear",
|
|
16
|
-
"connector": "linear",
|
|
17
|
-
"enabled": true,
|
|
18
|
-
"added_at": "2026-02-15T10:00:00.000Z",
|
|
19
|
-
"entity_mappings": [ ... ],
|
|
20
|
-
"field_priority": { "email": "pipedrive" }
|
|
21
|
-
}
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
- `connector` references a connector in `~/.studiograph/connectors/`
|
|
25
|
-
- `field_priority` — optional per-field merge priority when multiple sources write the same entity
|
|
26
|
-
- `entity_mappings` — array of mappings, each maps one external entity type to a Studiograph type
|
|
27
|
-
|
|
28
|
-
## Entity Mapping Fields
|
|
29
|
-
|
|
30
|
-
| Field | Required | Description |
|
|
31
|
-
|-------|----------|-------------|
|
|
32
|
-
| `source_type` | Yes | What the source calls this type (e.g. `"deal"`, `"issue"`) |
|
|
33
|
-
| `entity_type` | Yes | Studiograph type (e.g. `"project"`, `"task"`, `"meeting"`) |
|
|
34
|
-
| `target_repo` | Yes | Repo to write to (e.g. `"projects"`) |
|
|
35
|
-
| `extraction_mode` | Yes | `"structured"`, `"frontmatter"`, or `"unstructured"` |
|
|
36
|
-
| `id_from` | No | Source field for entity_id (default `"title"`, or `"_filename"` for frontmatter mode) |
|
|
37
|
-
| `content_from` | No | Source field for markdown body (or `"_body"` for frontmatter mode) |
|
|
38
|
-
| `field_map` | No | Maps source fields to entity fields (see Field Map Syntax) |
|
|
39
|
-
| `status_map` | No | Maps source status values to entity statuses (case-insensitive) |
|
|
40
|
-
| `fetch_details` | No | Fetch full record per listed ID (for sparse list APIs) |
|
|
41
|
-
| `list_limit` | No | Override limit param for list tool |
|
|
42
|
-
| `list_params` | No | Extra params for list tool. Pass array for multiple list calls merged |
|
|
43
|
-
| `directory_patterns` | No | Directory patterns for file sources (frontmatter/unstructured) |
|
|
44
|
-
| `write_mode` | No | `"entity"` (default, `id/main.md` folder) or `"collection"` (flat `id.md` file) |
|
|
45
|
-
| `list_tool` | No | Explicit MCP tool name for listing records (bypasses heuristic matching) |
|
|
46
|
-
| `read_tool` | No | Explicit MCP tool name for reading records (bypasses heuristic matching) |
|
|
47
|
-
|
|
48
|
-
## Extraction Modes
|
|
49
|
-
|
|
50
|
-
- **`structured`** — API JSON → field_map → frontmatter. No LLM. For Pipedrive, Linear, Granola, Asana.
|
|
51
|
-
- **`frontmatter`** — Markdown files with YAML → field_map. No LLM. Supports `_filename` and `_body` sentinels.
|
|
52
|
-
- **`unstructured`** — Freeform text → LLM extraction. Slow, expensive. Last resort when no structured metadata exists.
|
|
53
|
-
|
|
54
|
-
## Field Map Syntax
|
|
55
|
-
|
|
56
|
-
Keys are source field paths, values are entity field names or FieldTransform objects.
|
|
57
|
-
|
|
58
|
-
**Simple string:** `"title": "name"` — direct copy
|
|
59
|
-
**Dot-notation:** `"org_id.name": "organization"` — nested access
|
|
60
|
-
**Array index:** `"email[0].value": "email"` — specific array element
|
|
61
|
-
**FieldTransform object:**
|
|
62
|
-
```json
|
|
63
|
-
{ "org_name": { "field": "client", "transform": "wikilink" } }
|
|
64
|
-
```
|
|
65
|
-
FieldTransform fields: `field` (target name), `transform` (transform type), `subfield` (optional — extract nested path from each array element before transforming)
|
|
66
|
-
|
|
67
|
-
### Subfield example
|
|
68
|
-
Source returns: `[{ "details": { "person": { "name": "Alice" } } }, ...]`
|
|
69
|
-
Config: `{ "field": "attendees", "transform": "wikilink-array", "subfield": "details.person.name" }`
|
|
70
|
-
Result: `["[[alice]]", ...]`
|
|
71
|
-
|
|
72
|
-
## Transforms
|
|
73
|
-
|
|
74
|
-
| Transform | Input | Output |
|
|
75
|
-
|-----------|-------|--------|
|
|
76
|
-
| `direct` | `"hello"` | `"hello"` (passthrough) |
|
|
77
|
-
| `kebab-case` | `"Acme Corp"` | `"acme-corp"` |
|
|
78
|
-
| `date-iso` | `"2026-02-20T14:30:00Z"` | `"2026-02-20"` |
|
|
79
|
-
| `wikilink` | `"Acme Corp"` | `"[[acme-corp]]"` |
|
|
80
|
-
| `wikilink-array` | `["Alice", "Bob"]` | `["[[alice]]", "[[bob]]"]` |
|
|
81
|
-
|
|
82
|
-
## Write Mode
|
|
83
|
-
|
|
84
|
-
Controls how entities are written to disk:
|
|
85
|
-
|
|
86
|
-
- **`entity`** (default) — `repo/entity-type/entity-id.md` in a typed subfolder. Fully indexed. Use for core types (projects, clients, people).
|
|
87
|
-
- **`collection`** — `repo/entity-id.md` flat file at collection root. Use for high-volume types (meetings, notes, references).
|
|
88
|
-
|
|
89
|
-
## Explicit MCP Tool Selection
|
|
90
|
-
|
|
91
|
-
For file-based sources (frontmatter, unstructured), add `list_tool` and `read_tool` when the connector's tool names don't follow predictable patterns:
|
|
92
|
-
```json
|
|
93
|
-
{ "list_tool": "list_vault_files", "read_tool": "get_vault_file" }
|
|
94
|
-
```
|
|
95
|
-
When omitted, the pipeline uses heuristic matching (looking for tools containing "list", "read", "get", etc.).
|
|
96
|
-
|
|
97
|
-
## Sentinels (frontmatter mode only)
|
|
98
|
-
|
|
99
|
-
- `_filename` in `id_from` — entity ID from the file's name (slugified, `.md` stripped)
|
|
100
|
-
- `_body` in `content_from` — markdown body from file content below the `---` frontmatter fence
|
|
101
|
-
|
|
102
|
-
## Built-in Definitions
|
|
103
|
-
|
|
104
|
-
| Source | Mappings | Notes |
|
|
105
|
-
|--------|----------|-------|
|
|
106
|
-
| **Pipedrive** | deal→project, person→person, org→client | Ready to sync |
|
|
107
|
-
| **Granola** | document→meeting | `fetch_details: true`, `list_limit: 1000` |
|
|
108
|
-
| **Linear** | issue→task, project→project | Tasks written to typed subfolder |
|
|
109
|
-
| **Asana** | task→task, project→project | Needs `list_params: { workspace: "GID" }` |
|
|
110
|
-
|
|
111
|
-
## Configuration Patterns
|
|
112
|
-
|
|
113
|
-
**Multiple list calls:** Set `list_params` as an array: `[{ workspace: "123", archived: false }, { workspace: "123", archived: true }]`
|
|
114
|
-
|
|
115
|
-
**Custom source (no built-in):** Create a source config with `entity_mappings` from scratch. Choose extraction_mode, define field_map targeting entity schema fields, set target_repo.
|
|
116
|
-
|
|
117
|
-
**Overriding built-in defaults:** Pass custom `entity_mappings` to `sync_setup_source` — they replace the defaults entirely. Or edit `.studiograph/sources/<name>.json` directly.
|
|
118
|
-
|
|
119
|
-
**Status maps:** Map source status strings (case-insensitive) to Studiograph enums. Common patterns: Pipedrive (`won→completed, lost→archived, open→active`), Linear issues (`Backlog→open, In Progress→in-progress, Done→done, Canceled→cancelled`).
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sync-setup
|
|
3
|
-
description: Guide for setting up and running entity sync from external sources
|
|
4
|
-
loading: eager
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Entity Sync
|
|
8
|
-
|
|
9
|
-
You can sync data from external sources (Linear, Pipedrive, Granola, Google Drive, Asana, etc.) into the knowledge graph using the sync tools.
|
|
10
|
-
|
|
11
|
-
## First-Time Setup
|
|
12
|
-
|
|
13
|
-
1. **Check what's available:** Call `sync_list_sources` immediately — it returns configured sources (with full entity_mappings), available connectors, and known source definitions
|
|
14
|
-
2. **Verify the connector exists** — connectors hold API credentials and are CLI-only for security. If missing, tell the user:
|
|
15
|
-
> "You'll need to set up the connector first. Run `studiograph connector add <name>` in your terminal."
|
|
16
|
-
3. **Add the source:** `sync_setup_source({ name: "linear" })` — uses default mappings from built-in definitions when available
|
|
17
|
-
4. **Customize if needed:** Built-in definitions (Pipedrive, Granola, Linear, Asana) provide ready-to-use defaults. To customize, pass `entity_mappings` to `sync_setup_source` to override field maps, add co-location, change target repos, or add status maps. See the `sync-configuration` skill for field map syntax and options.
|
|
18
|
-
5. **No built-in definition?** Use `sync_inspect_connector` to discover the connector's tools and syncable entity types, then `sync_sample_data` to fetch a sample record and see field shapes. Build `entity_mappings` from the field analysis. See below and the `sync-configuration` skill for the full mapping schema.
|
|
19
|
-
6. **Run the sync:** `sync_run({ sources: ["linear"] })`
|
|
20
|
-
7. **Review staging:** `sync_status` — show the user what will be committed
|
|
21
|
-
8. **Apply on confirmation:** Only call `sync_apply` after the user approves
|
|
22
|
-
9. **Review & commit:** `studiograph review` (interactive diff review with approve/reject per entity), then `studiograph commit` (git commit across all repos)
|
|
23
|
-
|
|
24
|
-
## Building a Config from Scratch (no built-in definition)
|
|
25
|
-
|
|
26
|
-
When a connector has no built-in source definition, use introspection to auto-discover the data model:
|
|
27
|
-
|
|
28
|
-
1. `sync_inspect_connector({ connector: "myservice" })` — lists all tools categorized by purpose, detects syncable entity types with list/get tool pairs
|
|
29
|
-
2. Pick which entity types to sync from the `syncableTypes` results
|
|
30
|
-
3. `sync_sample_data({ connector: "myservice", tool: "list_records" })` — fetches one record and analyzes field shapes. Returns field paths, types, sample values, and suggested field_map entries
|
|
31
|
-
4. Build `entity_mappings` using the field analysis — map source fields to entity schema fields using dot notation for nested fields
|
|
32
|
-
5. `sync_setup_source({ name: "myservice", entity_mappings: [...] })` — save the config
|
|
33
|
-
|
|
34
|
-
**Tips:**
|
|
35
|
-
- `sync_sample_data` auto-sets `limit: 1` — you don't need to pass it
|
|
36
|
-
- Use the `suggestedFieldMap` from the response as a starting point
|
|
37
|
-
- Nested fields use dot notation in field_map keys (e.g. `"org_id.name": "organization"`)
|
|
38
|
-
- Call `sync_sample_data` for each entity type you plan to sync
|
|
39
|
-
|
|
40
|
-
## Modifying an Existing Source
|
|
41
|
-
|
|
42
|
-
When a user asks to adjust, change, or view a source config, **immediately call `sync_list_sources`** to read the current configuration. Do not ask the user to paste the config — you can read it yourself.
|
|
43
|
-
|
|
44
|
-
1. `sync_list_sources` — call this FIRST, before asking questions (returns full `entity_mappings` with field maps, transforms, etc.)
|
|
45
|
-
2. Show the user the relevant parts of their config and ask what they want to change
|
|
46
|
-
3. Build the updated `entity_mappings` array (you must pass the complete array — it replaces, not merges)
|
|
47
|
-
4. `sync_setup_source({ name: "...", entity_mappings: [...], force: true })` — overwrite with updated config
|
|
48
|
-
|
|
49
|
-
Common adjustments: changing `field_map` entries, adding/removing entity mappings, changing `target_repo`, switching `write_mode`, adjusting `status_map`, adding `list_tool`/`read_tool`.
|
|
50
|
-
|
|
51
|
-
## Repeat Sync Flow
|
|
52
|
-
|
|
53
|
-
1. `sync_run({ incremental: true })` — only fetches records updated since last sync
|
|
54
|
-
2. `sync_status` — present the summary
|
|
55
|
-
3. Wait for user confirmation
|
|
56
|
-
4. `sync_apply` — writes entity files (no git commit)
|
|
57
|
-
5. `workspace_status` — show what files changed across repos
|
|
58
|
-
6. `workspace_review` — show diffs (optionally filter by `entityType`)
|
|
59
|
-
7. `workspace_commit({ messagePrefix: "sync" })` — git commits across repos (or let user run `studiograph commit`)
|
|
60
|
-
|
|
61
|
-
## Post-Apply Results
|
|
62
|
-
|
|
63
|
-
After `sync_apply`, explain what happened to the user:
|
|
64
|
-
|
|
65
|
-
- **Standard entities** are written as: `{target_repo}/{entity_id}/main.md` (entity folder with sentinel file)
|
|
66
|
-
- **Co-located entities** are written as: `{target_repo}/{parent_id}/{subfolder}/{entity_id}.md` (flat file inside parent folder). Co-located files are sub-content, not graph entities.
|
|
67
|
-
- **Skipped entities** — when co-location is configured but the parent field is empty or missing, those entities are skipped (not an error)
|
|
68
|
-
- **Auto-registered repos** — if a `target_repo` doesn't exist yet, it's automatically created and registered in the workspace
|
|
69
|
-
|
|
70
|
-
## Troubleshooting
|
|
71
|
-
|
|
72
|
-
- **"Uncommitted changes"** — sync requires a clean working tree. Tell the user to commit or stash changes first, or use `--force` to override
|
|
73
|
-
- **"Connector not found"** — the connector isn't set up. User must run `studiograph connector add <name>` in terminal
|
|
74
|
-
|
|
75
|
-
## Important Rules
|
|
76
|
-
|
|
77
|
-
- **Never auto-commit** — always show `sync_status` and get user confirmation before `sync_apply`
|
|
78
|
-
- **Connector management is CLI-only** — API keys and tokens must be set up via `studiograph connector add/remove`. Never ask users to provide API keys in chat
|
|
79
|
-
- **Use incremental for repeat syncs** — avoids re-processing unchanged records
|
|
80
|
-
- **Use dry run for previews** — `sync_run({ dryRun: true })` shows what would be extracted without writing staging
|
|
81
|
-
- **Abort if needed** — `sync_abort` clears staging if the user wants to start over
|
|
82
|
-
- **sync_commit is deprecated** — use `sync_apply` then `workspace_commit` instead
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Message Tools for Agent
|
|
3
|
-
*
|
|
4
|
-
* Allow the agent to search and retrieve collection message history.
|
|
5
|
-
* Enables the agent to answer questions about past conversations
|
|
6
|
-
* and use chat context for entity creation.
|
|
7
|
-
*/
|
|
8
|
-
import { type AuthUser, type AuthService } from '../../services/auth-service.js';
|
|
9
|
-
import type { MessageService } from '../../services/message-service.js';
|
|
10
|
-
export declare function createMessageTools(messageService: MessageService, getCurrentUser: () => AuthUser | null, authService: AuthService): ({
|
|
11
|
-
name: string;
|
|
12
|
-
label: string;
|
|
13
|
-
description: string;
|
|
14
|
-
parameters: import("@sinclair/typebox").TObject<{
|
|
15
|
-
query: import("@sinclair/typebox").TString;
|
|
16
|
-
collection: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
17
|
-
limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
|
|
18
|
-
}>;
|
|
19
|
-
execute: (_toolCallId: string, params: any) => Promise<{
|
|
20
|
-
content: {
|
|
21
|
-
type: "text";
|
|
22
|
-
text: string;
|
|
23
|
-
}[];
|
|
24
|
-
details: any;
|
|
25
|
-
}>;
|
|
26
|
-
} | {
|
|
27
|
-
name: string;
|
|
28
|
-
label: string;
|
|
29
|
-
description: string;
|
|
30
|
-
parameters: import("@sinclair/typebox").TObject<{
|
|
31
|
-
collection: import("@sinclair/typebox").TString;
|
|
32
|
-
messageId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
|
|
33
|
-
limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
|
|
34
|
-
}>;
|
|
35
|
-
execute: (_toolCallId: string, params: any) => Promise<{
|
|
36
|
-
content: {
|
|
37
|
-
type: "text";
|
|
38
|
-
text: string;
|
|
39
|
-
}[];
|
|
40
|
-
details: any;
|
|
41
|
-
}>;
|
|
42
|
-
})[];
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Message Tools for Agent
|
|
3
|
-
*
|
|
4
|
-
* Allow the agent to search and retrieve collection message history.
|
|
5
|
-
* Enables the agent to answer questions about past conversations
|
|
6
|
-
* and use chat context for entity creation.
|
|
7
|
-
*/
|
|
8
|
-
import { Type as T } from '@sinclair/typebox';
|
|
9
|
-
import { wrapToolResult } from './graph-tools.js';
|
|
10
|
-
import { isAdminOrOwner } from '../../services/auth-service.js';
|
|
11
|
-
/** Format messages as a readable transcript for the agent. */
|
|
12
|
-
function formatTranscript(messages) {
|
|
13
|
-
if (messages.length === 0)
|
|
14
|
-
return 'No messages found.';
|
|
15
|
-
// Sort oldest first for readable conversation flow
|
|
16
|
-
const sorted = [...messages].sort((a, b) => a.id - b.id);
|
|
17
|
-
return sorted.map(m => {
|
|
18
|
-
const role = m.role === 'agent' ? 'Agent' : m.userDisplayName;
|
|
19
|
-
return `[${m.createdAt}] ${role} (${m.collection}): ${m.content}`;
|
|
20
|
-
}).join('\n\n');
|
|
21
|
-
}
|
|
22
|
-
/** Get collections the current user can access. */
|
|
23
|
-
function getAccessibleCollections(user, authService) {
|
|
24
|
-
if (!user)
|
|
25
|
-
return null; // API key / open mode → all
|
|
26
|
-
if (isAdminOrOwner(user.role))
|
|
27
|
-
return null; // admin → all
|
|
28
|
-
return authService.getUserCollections(user.id);
|
|
29
|
-
}
|
|
30
|
-
export function createMessageTools(messageService, getCurrentUser, authService) {
|
|
31
|
-
return [
|
|
32
|
-
{
|
|
33
|
-
name: 'search_messages',
|
|
34
|
-
label: 'Search Messages',
|
|
35
|
-
description: 'Search collection message history by keyword. Returns matching messages with sender, timestamp, and collection. Use this to find past conversations, decisions, and context discussed in team threads.',
|
|
36
|
-
parameters: T.Object({
|
|
37
|
-
query: T.String({ description: 'Search term to find in message content' }),
|
|
38
|
-
collection: T.Optional(T.String({ description: 'Scope search to a specific collection (optional)' })),
|
|
39
|
-
limit: T.Optional(T.Number({ description: 'Max results (default 20, max 50)' })),
|
|
40
|
-
}),
|
|
41
|
-
execute: async (_toolCallId, params) => {
|
|
42
|
-
const { query, collection, limit } = params;
|
|
43
|
-
const user = getCurrentUser();
|
|
44
|
-
const accessible = getAccessibleCollections(user, authService);
|
|
45
|
-
const results = messageService.searchMessages(query, {
|
|
46
|
-
collection,
|
|
47
|
-
collections: accessible ?? undefined,
|
|
48
|
-
limit: Math.min(limit ?? 20, 50),
|
|
49
|
-
});
|
|
50
|
-
// Filter by accessible collections if user has restricted access
|
|
51
|
-
const filtered = accessible
|
|
52
|
-
? results.filter(m => accessible.includes(m.collection))
|
|
53
|
-
: results;
|
|
54
|
-
return wrapToolResult({
|
|
55
|
-
count: filtered.length,
|
|
56
|
-
transcript: formatTranscript(filtered),
|
|
57
|
-
});
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
name: 'get_conversation_context',
|
|
62
|
-
label: 'Get Conversation',
|
|
63
|
-
description: 'Get the full recent conversation in a collection, or messages around a specific message. Use this to understand the context of a discussion before responding or creating entities.',
|
|
64
|
-
parameters: T.Object({
|
|
65
|
-
collection: T.String({ description: 'Collection name' }),
|
|
66
|
-
messageId: T.Optional(T.Number({ description: 'Center context around this message ID (optional — defaults to most recent)' })),
|
|
67
|
-
limit: T.Optional(T.Number({ description: 'Number of messages to retrieve (default 20, max 50)' })),
|
|
68
|
-
}),
|
|
69
|
-
execute: async (_toolCallId, params) => {
|
|
70
|
-
const { collection, messageId, limit: rawLimit } = params;
|
|
71
|
-
const user = getCurrentUser();
|
|
72
|
-
const accessible = getAccessibleCollections(user, authService);
|
|
73
|
-
// Access check
|
|
74
|
-
if (accessible && !accessible.includes(collection)) {
|
|
75
|
-
return wrapToolResult({ error: `Access denied to collection "${collection}"` });
|
|
76
|
-
}
|
|
77
|
-
const limit = Math.min(rawLimit ?? 20, 50);
|
|
78
|
-
let messages;
|
|
79
|
-
if (messageId) {
|
|
80
|
-
// Get messages around the target: half before, half after
|
|
81
|
-
const half = Math.ceil(limit / 2);
|
|
82
|
-
const before = messageService.getMessages(collection, { before: messageId + 1, limit: half });
|
|
83
|
-
const after = messageService.getMessages(collection, { before: messageId + half + 1, limit: half })
|
|
84
|
-
.filter(m => m.id > messageId);
|
|
85
|
-
const target = messageService.getMessageById(messageId);
|
|
86
|
-
const all = new Map();
|
|
87
|
-
for (const m of [...before, ...after])
|
|
88
|
-
all.set(m.id, m);
|
|
89
|
-
if (target)
|
|
90
|
-
all.set(target.id, target);
|
|
91
|
-
messages = [...all.values()].sort((a, b) => a.id - b.id);
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
// Most recent messages
|
|
95
|
-
messages = messageService.getMessages(collection, { limit });
|
|
96
|
-
}
|
|
97
|
-
return wrapToolResult({
|
|
98
|
-
collection,
|
|
99
|
-
count: messages.length,
|
|
100
|
-
transcript: formatTranscript(messages),
|
|
101
|
-
});
|
|
102
|
-
},
|
|
103
|
-
},
|
|
104
|
-
];
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=message-tools.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"message-tools.js","sourceRoot":"","sources":["../../../src/agent/tools/message-tools.ts"],"names":[],"mappings":"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"}
|