studiograph 1.3.48-next.26 → 1.3.48-next.261
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 +27 -17
- package/dist/agent/agent-pool.d.ts +120 -4
- package/dist/agent/agent-pool.js +358 -18
- package/dist/agent/agent-pool.js.map +1 -1
- package/dist/agent/context-window.d.ts +113 -0
- package/dist/agent/context-window.js +459 -0
- package/dist/agent/context-window.js.map +1 -0
- package/dist/agent/followups.d.ts +34 -0
- package/dist/agent/followups.js +52 -0
- package/dist/agent/followups.js.map +1 -0
- package/dist/agent/orchestrator.d.ts +110 -11
- package/dist/agent/orchestrator.js +547 -75
- package/dist/agent/orchestrator.js.map +1 -1
- package/dist/agent/prompts/entity-types-section.d.ts +18 -9
- package/dist/agent/prompts/entity-types-section.js +42 -18
- package/dist/agent/prompts/entity-types-section.js.map +1 -1
- package/dist/agent/prompts/system.md +107 -19
- package/dist/agent/skill-loader.js +3 -9
- package/dist/agent/skill-loader.js.map +1 -1
- package/dist/agent/skills/artifact-canvas/skill.md +257 -0
- package/dist/agent/skills/create-skill.md +39 -0
- package/dist/agent/skills/entity-schema.md +67 -150
- package/dist/agent/skills/interview/skill.md +44 -29
- package/dist/agent/skills/paged-documents/skill.md +147 -0
- package/dist/agent/skills/schema-rules.md +28 -28
- package/dist/agent/tools/artifact-tools.d.ts +237 -0
- package/dist/agent/tools/artifact-tools.js +407 -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 +50 -0
- package/dist/agent/tools/folder-tools.js +340 -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 +1 -1
- package/dist/agent/tools/fs-tools.js.map +1 -1
- package/dist/agent/tools/graph-tools.d.ts +45 -73
- package/dist/agent/tools/graph-tools.js +765 -239
- 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 +465 -0
- package/dist/agent/tools/history-tools.js.map +1 -0
- package/dist/agent/tools/load-skill.d.ts +4 -3
- package/dist/agent/tools/load-skill.js +1 -1
- package/dist/agent/tools/load-skill.js.map +1 -1
- package/dist/agent/tools/ops-tools.d.ts +2 -1
- package/dist/agent/tools/ops-tools.js +125 -25
- package/dist/agent/tools/ops-tools.js.map +1 -1
- package/dist/agent/tools/permission-tools.d.ts +69 -21
- package/dist/agent/tools/permission-tools.js +183 -18
- 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/admin/folder.js +187 -0
- package/dist/cli/commands/admin/folder.js.map +1 -0
- package/dist/cli/commands/admin/index.d.ts +16 -0
- package/dist/cli/commands/admin/index.js +48 -0
- package/dist/cli/commands/admin/index.js.map +1 -0
- package/dist/cli/commands/admin/migrate-asset-owners.d.ts +56 -0
- package/dist/cli/commands/admin/migrate-asset-owners.js +86 -0
- package/dist/cli/commands/admin/migrate-asset-owners.js.map +1 -0
- package/dist/cli/commands/admin/migrate-assets.d.ts +62 -0
- package/dist/cli/commands/admin/migrate-assets.js +237 -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 +23 -3
- package/dist/cli/commands/clone.js +140 -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 +7 -4
- 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 +242 -24
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/sync.d.ts +1 -1
- package/dist/cli/commands/sync.js +230 -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 -23
- 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/cli/theme.d.ts +1 -1
- package/dist/core/accent-palette.d.ts +7 -18
- package/dist/core/accent-palette.js +27 -38
- package/dist/core/accent-palette.js.map +1 -1
- package/dist/core/artifact-asset-resolution.d.ts +90 -0
- package/dist/core/artifact-asset-resolution.js +138 -0
- package/dist/core/artifact-asset-resolution.js.map +1 -0
- package/dist/core/artifact-asset-urls.d.ts +111 -0
- package/dist/core/artifact-asset-urls.js +174 -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 +83 -0
- package/dist/core/artifact-export.js +1567 -0
- package/dist/core/artifact-export.js.map +1 -0
- package/dist/core/artifact-frame-document.d.ts +105 -0
- package/dist/core/artifact-frame-document.js +1427 -0
- package/dist/core/artifact-frame-document.js.map +1 -0
- package/dist/core/artifact-frame-layout.d.ts +79 -0
- package/dist/core/artifact-frame-layout.js +94 -0
- package/dist/core/artifact-frame-layout.js.map +1 -0
- package/dist/core/artifact-frame-model.d.ts +198 -0
- package/dist/core/artifact-frame-model.js +603 -0
- package/dist/core/artifact-frame-model.js.map +1 -0
- package/dist/core/artifact-frame-selectors.d.ts +42 -0
- package/dist/core/artifact-frame-selectors.js +65 -0
- package/dist/core/artifact-frame-selectors.js.map +1 -0
- package/dist/core/artifact-libraries.d.ts +23 -0
- package/dist/core/artifact-libraries.js +229 -0
- package/dist/core/artifact-libraries.js.map +1 -0
- package/dist/core/artifact-manifest.d.ts +64 -0
- package/dist/core/artifact-manifest.js +88 -0
- package/dist/core/artifact-manifest.js.map +1 -0
- package/dist/core/artifact-paged-css.d.ts +64 -0
- package/dist/core/artifact-paged-css.js +253 -0
- package/dist/core/artifact-paged-css.js.map +1 -0
- package/dist/core/artifact-patch.d.ts +58 -0
- package/dist/core/artifact-patch.js +309 -0
- package/dist/core/artifact-patch.js.map +1 -0
- package/dist/core/artifact-warnings.d.ts +51 -0
- package/dist/core/artifact-warnings.js +165 -0
- package/dist/core/artifact-warnings.js.map +1 -0
- package/dist/core/breakpoints.d.ts +27 -0
- package/dist/core/breakpoints.js +28 -0
- package/dist/core/breakpoints.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 +108 -0
- package/dist/core/embeds.js +226 -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 +66 -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/font-family.d.ts +62 -0
- package/dist/core/font-family.js +84 -0
- package/dist/core/font-family.js.map +1 -0
- package/dist/core/format-registry.d.ts +187 -0
- package/dist/core/format-registry.js +411 -0
- package/dist/core/format-registry.js.map +1 -0
- package/dist/core/graph.d.ts +770 -30
- package/dist/core/graph.js +2282 -386
- 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/markdown-strip.d.ts +22 -0
- package/dist/core/markdown-strip.js +51 -0
- package/dist/core/markdown-strip.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 +237 -0
- package/dist/core/secrets/registry.js +710 -0
- package/dist/core/secrets/registry.js.map +1 -0
- package/dist/core/seed-folder.d.ts +59 -0
- package/dist/core/seed-folder.js +76 -0
- package/dist/core/seed-folder.js.map +1 -0
- package/dist/core/types.d.ts +88 -480
- package/dist/core/types.js +53 -6
- package/dist/core/types.js.map +1 -1
- package/dist/core/user-config.d.ts +81 -14
- package/dist/core/user-config.js +147 -17
- package/dist/core/user-config.js.map +1 -1
- package/dist/core/validation.d.ts +828 -1472
- package/dist/core/validation.js +475 -163
- package/dist/core/validation.js.map +1 -1
- package/dist/core/view-scope.d.ts +88 -0
- package/dist/core/view-scope.js +71 -0
- package/dist/core/view-scope.js.map +1 -0
- package/dist/core/workspace-manager.d.ts +156 -11
- package/dist/core/workspace-manager.js +364 -92
- package/dist/core/workspace-manager.js.map +1 -1
- package/dist/core/workspace.d.ts +19 -5
- package/dist/core/workspace.js +72 -56
- 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 +31 -25
- 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 +73 -2
- package/dist/mcp/tools.js +2289 -115
- package/dist/mcp/tools.js.map +1 -1
- package/dist/server/__tests__/helpers/graph-api.d.ts +17 -0
- package/dist/server/__tests__/helpers/graph-api.js +17 -0
- package/dist/server/__tests__/helpers/graph-api.js.map +1 -0
- package/dist/server/__tests__/helpers/multipart.d.ts +9 -0
- package/dist/server/__tests__/helpers/multipart.js +14 -0
- package/dist/server/__tests__/helpers/multipart.js.map +1 -0
- package/dist/server/artifact-asset-mint.d.ts +59 -0
- package/dist/server/artifact-asset-mint.js +127 -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 +50 -1
- package/dist/server/index.js +811 -229
- package/dist/server/index.js.map +1 -1
- package/dist/server/middleware/sanitize.d.ts +46 -0
- package/dist/server/middleware/sanitize.js +195 -0
- package/dist/server/middleware/sanitize.js.map +1 -0
- package/dist/server/process-guards.d.ts +37 -0
- package/dist/server/process-guards.js +44 -0
- package/dist/server/process-guards.js.map +1 -0
- package/dist/server/routes/ai-usage-api.d.ts +24 -0
- package/dist/server/routes/ai-usage-api.js +68 -0
- package/dist/server/routes/ai-usage-api.js.map +1 -0
- package/dist/server/routes/artifact-export-api.d.ts +11 -0
- package/dist/server/routes/artifact-export-api.js +180 -0
- package/dist/server/routes/artifact-export-api.js.map +1 -0
- package/dist/server/routes/artifact-patch-api.d.ts +19 -0
- package/dist/server/routes/artifact-patch-api.js +114 -0
- package/dist/server/routes/artifact-patch-api.js.map +1 -0
- package/dist/server/routes/artifact-selection-api.d.ts +15 -0
- package/dist/server/routes/artifact-selection-api.js +90 -0
- package/dist/server/routes/artifact-selection-api.js.map +1 -0
- package/dist/server/routes/asset-api.d.ts +88 -2
- package/dist/server/routes/asset-api.js +858 -112
- 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 +113 -0
- package/dist/server/routes/audit-api.js.map +1 -0
- package/dist/server/routes/auth-api.js +536 -44
- package/dist/server/routes/auth-api.js.map +1 -1
- package/dist/server/routes/capture-api.js +81 -9
- 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 +462 -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 +858 -68
- 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 +183 -57
- package/dist/server/routes/config-api.js.map +1 -1
- package/dist/server/routes/connectors-api.js +178 -45
- 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/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 +3 -3
- package/dist/server/routes/git-http.js +90 -30
- package/dist/server/routes/git-http.js.map +1 -1
- package/dist/server/routes/graph-api-access.d.ts +63 -0
- package/dist/server/routes/graph-api-access.js +115 -0
- package/dist/server/routes/graph-api-access.js.map +1 -0
- package/dist/server/routes/graph-api.d.ts +2 -3
- package/dist/server/routes/graph-api.js +1341 -423
- 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 +116 -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 +352 -66
- package/dist/server/routes/insights-api.js.map +1 -1
- package/dist/server/routes/mcp.d.ts +8 -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 +8 -3
- package/dist/server/routes/permissions-api.js +43 -12
- 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 +273 -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 +305 -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 +177 -0
- package/dist/server/routes/settings-api.js.map +1 -0
- package/dist/server/routes/share-api.d.ts +30 -6
- package/dist/server/routes/share-api.js +240 -31
- package/dist/server/routes/share-api.js.map +1 -1
- package/dist/server/routes/views-api.d.ts +11 -2
- package/dist/server/routes/views-api.js +123 -22
- 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 +150 -23
- package/dist/server/routes/workspace-api.js.map +1 -1
- package/dist/server/routes/ws.d.ts +2 -1
- package/dist/server/routes/ws.js +73 -20
- 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 +135 -56
- package/dist/server/ws-hub.js +0 -0
- package/dist/server/ws-hub.js.map +1 -1
- package/dist/server/yjs-manager.d.ts +275 -18
- package/dist/server/yjs-manager.js +819 -70
- 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 +121 -0
- package/dist/services/access-control.js +194 -0
- package/dist/services/access-control.js.map +1 -0
- package/dist/services/ai-usage-ledger.d.ts +75 -0
- package/dist/services/ai-usage-ledger.js +250 -0
- package/dist/services/ai-usage-ledger.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-inspect-metadata.d.ts +21 -0
- package/dist/services/artifact-inspect-metadata.js +66 -0
- package/dist/services/artifact-inspect-metadata.js.map +1 -0
- package/dist/services/artifact-library-sources.d.ts +33 -0
- package/dist/services/artifact-library-sources.js +91 -0
- package/dist/services/artifact-library-sources.js.map +1 -0
- package/dist/services/artifact-patch-runner.d.ts +52 -0
- package/dist/services/artifact-patch-runner.js +74 -0
- package/dist/services/artifact-patch-runner.js.map +1 -0
- package/dist/services/artifact-render-export.d.ts +230 -0
- package/dist/services/artifact-render-export.js +1003 -0
- package/dist/services/artifact-render-export.js.map +1 -0
- package/dist/services/artifact-selection-store.d.ts +68 -0
- package/dist/services/artifact-selection-store.js +90 -0
- package/dist/services/artifact-selection-store.js.map +1 -0
- package/dist/services/artifact-store.d.ts +118 -0
- package/dist/services/artifact-store.js +234 -0
- package/dist/services/artifact-store.js.map +1 -0
- package/dist/services/asset-caption-service.d.ts +103 -0
- package/dist/services/asset-caption-service.js +200 -0
- package/dist/services/asset-caption-service.js.map +1 -0
- package/dist/services/asset-delete-authz.d.ts +32 -0
- package/dist/services/asset-delete-authz.js +62 -0
- package/dist/services/asset-delete-authz.js.map +1 -0
- package/dist/services/asset-delete-impact.d.ts +63 -0
- package/dist/services/asset-delete-impact.js +96 -0
- package/dist/services/asset-delete-impact.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 +116 -0
- package/dist/services/asset-import-service.js +436 -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 +271 -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 +63 -0
- package/dist/services/asset-listing.js +124 -0
- package/dist/services/asset-listing.js.map +1 -0
- package/dist/services/asset-move-impact.d.ts +49 -0
- package/dist/services/asset-move-impact.js +62 -0
- package/dist/services/asset-move-impact.js.map +1 -0
- package/dist/services/asset-presign-service.d.ts +62 -0
- package/dist/services/asset-presign-service.js +126 -0
- package/dist/services/asset-presign-service.js.map +1 -0
- package/dist/services/asset-reference-index.d.ts +39 -0
- package/dist/services/asset-reference-index.js +33 -0
- package/dist/services/asset-reference-index.js.map +1 -0
- package/dist/services/asset-reference-scan.d.ts +57 -0
- package/dist/services/asset-reference-scan.js +150 -0
- package/dist/services/asset-reference-scan.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 +158 -0
- package/dist/services/assets/asset-index-service.js +293 -0
- package/dist/services/assets/asset-index-service.js.map +1 -0
- package/dist/services/assets/base.d.ts +119 -4
- package/dist/services/assets/base.js +148 -3
- package/dist/services/assets/base.js.map +1 -1
- package/dist/services/assets/index.d.ts +90 -0
- package/dist/services/assets/index.js +202 -0
- package/dist/services/assets/index.js.map +1 -1
- package/dist/services/assets/local.d.ts +9 -0
- package/dist/services/assets/local.js +30 -4
- 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 +80 -0
- package/dist/services/assets/r2.js +159 -4
- package/dist/services/assets/r2.js.map +1 -1
- package/dist/services/auth-service.d.ts +278 -51
- package/dist/services/auth-service.js +995 -272
- package/dist/services/auth-service.js.map +1 -1
- package/dist/services/chat-session-service.d.ts +189 -0
- package/dist/services/chat-session-service.js +544 -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 +321 -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 +313 -0
- package/dist/services/entity-mutations.js +531 -0
- package/dist/services/entity-mutations.js.map +1 -0
- package/dist/services/event-processor.d.ts +104 -0
- package/dist/services/event-processor.js +451 -0
- 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/fonts/font-metadata.d.ts +42 -0
- package/dist/services/fonts/font-metadata.js +126 -0
- package/dist/services/fonts/font-metadata.js.map +1 -0
- package/dist/services/fonts/font-skill-service.d.ts +66 -0
- package/dist/services/fonts/font-skill-service.js +137 -0
- package/dist/services/fonts/font-skill-service.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 +49 -0
- package/dist/services/personal-folder.js +122 -0
- package/dist/services/personal-folder.js.map +1 -0
- package/dist/services/playwright-bootstrap.d.ts +78 -0
- package/dist/services/playwright-bootstrap.js +219 -0
- package/dist/services/playwright-bootstrap.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 +201 -0
- package/dist/services/scratch-attachment-service.js +354 -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 +341 -0
- package/dist/services/user-person-bridge.js.map +1 -0
- package/dist/services/utility-model-resolver.d.ts +37 -0
- package/dist/services/utility-model-resolver.js +67 -0
- package/dist/services/utility-model-resolver.js.map +1 -0
- package/dist/services/vector-service.d.ts +282 -5
- package/dist/services/vector-service.js +594 -39
- package/dist/services/vector-service.js.map +1 -1
- package/dist/services/workspace-access.d.ts +115 -0
- package/dist/services/workspace-access.js +154 -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.B8rPC4xg.css +2 -0
- package/dist/web/_app/immutable/assets/12.DlIf1mKh.css +1 -0
- package/dist/web/_app/immutable/assets/13.WUaKJbVc.css +1 -0
- package/dist/web/_app/immutable/assets/15.CItnu3nw.css +1 -0
- package/dist/web/_app/immutable/assets/16.C3czeWWx.css +1 -0
- package/dist/web/_app/immutable/assets/17.CHiwoAMO.css +1 -0
- package/dist/web/_app/immutable/assets/18.fUGuXQ0K.css +1 -0
- package/dist/web/_app/immutable/assets/19.DcuK5ZVm.css +1 -0
- package/dist/web/_app/immutable/assets/2.bJqlVFXX.css +1 -0
- package/dist/web/_app/immutable/assets/3.DDfEAhbB.css +1 -0
- package/dist/web/_app/immutable/assets/4.Dtodt1Fe.css +1 -0
- package/dist/web/_app/immutable/assets/6.JPVpkzLZ.css +1 -0
- package/dist/web/_app/immutable/assets/AssetLibraryPicker.BWH260L8.css +1 -0
- package/dist/web/_app/immutable/assets/BulkActionsBar.CXSM7tO7.css +1 -0
- package/dist/web/_app/immutable/assets/CalendarView.Cch9MMQW.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.BvV1lBCg.css +1 -0
- package/dist/web/_app/immutable/assets/FolderMutationDialogs.De2NQ55E.css +1 -0
- package/dist/web/_app/immutable/assets/FolderPicker.Cq1tMnu_.css +1 -0
- package/dist/web/_app/immutable/assets/FolderTreeField.DTSzn15s.css +1 -0
- package/dist/web/_app/immutable/assets/FrameCanvas.Clh5Xdr7.css +1 -0
- package/dist/web/_app/immutable/assets/GalleryView.Cqu3-wtr.css +1 -0
- package/dist/web/_app/immutable/assets/GraphView.BJtGL9py.css +1 -0
- package/dist/web/_app/immutable/assets/GridCell.czY6eDb_.css +1 -0
- package/dist/web/_app/immutable/assets/KanbanView.C5X8TbQk.css +1 -0
- package/dist/web/_app/immutable/assets/Link.vV0ne105.css +1 -0
- package/dist/web/_app/immutable/assets/Markdown.CSYKSAm0.css +1 -0
- package/dist/web/_app/immutable/assets/Rail.Dyxy_E0O.css +1 -0
- package/dist/web/_app/immutable/assets/RepoCheckList.BLeJ79Eg.css +1 -0
- package/dist/web/_app/immutable/assets/SaveViewDialog.Bb9E81xd.css +1 -0
- package/dist/web/_app/immutable/assets/SearchInput.DTB6W35f.css +1 -0
- package/dist/web/_app/immutable/assets/SettingsDialog.CHzfQoo_.css +1 -0
- package/dist/web/_app/immutable/assets/Spinner.UBfl0pab.css +1 -0
- package/dist/web/_app/immutable/assets/StopFilledAlt.CjuwgVxu.css +1 -0
- package/dist/web/_app/immutable/assets/TimelineView.u4YqiztR.css +1 -0
- package/dist/web/_app/immutable/assets/Version.BQq1Fihu.css +1 -0
- package/dist/web/_app/immutable/assets/ViewBanner.DWswnFdi.css +1 -0
- package/dist/web/_app/immutable/assets/WorkspaceView.Cd6TS6oo.css +1 -0
- package/dist/web/_app/immutable/assets/button.DOg1smbV.css +1 -0
- package/dist/web/_app/immutable/assets/checkbox.CAcHq8G6.css +1 -0
- package/dist/web/_app/immutable/assets/download-with-progress.BZlFTn09.css +1 -0
- package/dist/web/_app/immutable/assets/filters.RgfXKVpA.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/list-columns.BgnafZ4K.css +1 -0
- package/dist/web/_app/immutable/chunks/-MYqXlc3.js +185 -0
- package/dist/web/_app/immutable/chunks/-Tbr-96c2.js +1 -0
- package/dist/web/_app/immutable/chunks/1QRy7-wo.js +1 -0
- package/dist/web/_app/immutable/chunks/1_BWKAKA2.js +23 -0
- package/dist/web/_app/immutable/chunks/2z2ekE6D2.js +2 -0
- package/dist/web/_app/immutable/chunks/6guf_P8c.js +1 -0
- package/dist/web/_app/immutable/chunks/7l950wkn.js +1 -0
- package/dist/web/_app/immutable/chunks/9Sn2PwSn2.js +1025 -0
- package/dist/web/_app/immutable/chunks/AFZSy-Vk.js +2 -0
- package/dist/web/_app/immutable/chunks/B06uE1qJ.js +1 -0
- package/dist/web/_app/immutable/chunks/B2cjR0rG.js +83 -0
- package/dist/web/_app/immutable/chunks/B3u4QMoU.js +1 -0
- package/dist/web/_app/immutable/chunks/B4PrlkmE.js +1 -0
- package/dist/web/_app/immutable/chunks/B5UH1FNe.js +3 -0
- package/dist/web/_app/immutable/chunks/B5sxjq1L2.js +1 -0
- package/dist/web/_app/immutable/chunks/B6Lt-qaJ.js +1 -0
- package/dist/web/_app/immutable/chunks/B6wo7Stk2.js +1 -0
- package/dist/web/_app/immutable/chunks/B9KfEsQw2.js +1 -0
- package/dist/web/_app/immutable/chunks/B9MY422N.js +1 -0
- package/dist/web/_app/immutable/chunks/B9VQbssY.js +3 -0
- package/dist/web/_app/immutable/chunks/BBrP9GiZ.js +1 -0
- package/dist/web/_app/immutable/chunks/BEGTD2EL2.js +1 -0
- package/dist/web/_app/immutable/chunks/BEyPhM3C.js +1 -0
- package/dist/web/_app/immutable/chunks/BIeOkmiV.js +1 -0
- package/dist/web/_app/immutable/chunks/BIwe25Lk.js +1 -0
- package/dist/web/_app/immutable/chunks/BO6-nRV9.js +1 -0
- package/dist/web/_app/immutable/chunks/BPILs-6H.js +1 -0
- package/dist/web/_app/immutable/chunks/BPRQzMGs.js +1 -0
- package/dist/web/_app/immutable/chunks/BQE7bWgF.js +1 -0
- package/dist/web/_app/immutable/chunks/BU5TCj7m.js +12 -0
- package/dist/web/_app/immutable/chunks/BZDKT2Qw2.js +2 -0
- package/dist/web/_app/immutable/chunks/B_y9A6Kg.js +4 -0
- package/dist/web/_app/immutable/chunks/BdR7t2GN.js +3 -0
- package/dist/web/_app/immutable/chunks/BnYohOts2.js +1 -0
- package/dist/web/_app/immutable/chunks/Bpmx7Umc.js +1 -0
- package/dist/web/_app/immutable/chunks/BqButnP4.js +1 -0
- package/dist/web/_app/immutable/chunks/BtDSRU36.js +1 -0
- package/dist/web/_app/immutable/chunks/Bvr6nSm92.js +1 -0
- package/dist/web/_app/immutable/chunks/BvyVm7-j.js +184 -0
- package/dist/web/_app/immutable/chunks/Bx6T8G5n2.js +1 -0
- package/dist/web/_app/immutable/chunks/BxeOdaUQ.js +1 -0
- package/dist/web/_app/immutable/chunks/C1B4xDs0.js +1 -0
- package/dist/web/_app/immutable/chunks/C2yz630b.js +2 -0
- package/dist/web/_app/immutable/chunks/C5YoDj-e.js +1 -0
- package/dist/web/_app/immutable/chunks/C6d9nn3k.js +1 -0
- package/dist/web/_app/immutable/chunks/C85NG5lS.js +1 -0
- package/dist/web/_app/immutable/chunks/C8ZiSqQm.js +1 -0
- package/dist/web/_app/immutable/chunks/CB-t1Bv-.js +1 -0
- package/dist/web/_app/immutable/chunks/CG8YKaqc.js +5 -0
- package/dist/web/_app/immutable/chunks/CJbr-v9X.js +1 -0
- package/dist/web/_app/immutable/chunks/CKGHeJzq.js +1 -0
- package/dist/web/_app/immutable/chunks/CKwV6HKc.js +1 -0
- package/dist/web/_app/immutable/chunks/CLninaDG2.js +2 -0
- package/dist/web/_app/immutable/chunks/CM400nLL.js +7 -0
- package/dist/web/_app/immutable/chunks/CPvxN2G62.js +1 -0
- package/dist/web/_app/immutable/chunks/CQW66fYJ.js +1 -0
- package/dist/web/_app/immutable/chunks/CQl_RUVN2.js +1 -0
- package/dist/web/_app/immutable/chunks/CR1JY_cb.js +6 -0
- package/dist/web/_app/immutable/chunks/CT35tdLp.js +1 -0
- package/dist/web/_app/immutable/chunks/CVKrGJ6C.js +1 -0
- package/dist/web/_app/immutable/chunks/CWIHttTH.js +1 -0
- package/dist/web/_app/immutable/chunks/CWZSexLW.js +1 -0
- package/dist/web/_app/immutable/chunks/CXPMb3zd.js +1 -0
- package/dist/web/_app/immutable/chunks/CZBW5wi82.js +1 -0
- package/dist/web/_app/immutable/chunks/CaimSvvF.js +5 -0
- package/dist/web/_app/immutable/chunks/CcWaWbrI2.js +1 -0
- package/dist/web/_app/immutable/chunks/CcgYvk_3.js +1 -0
- package/dist/web/_app/immutable/chunks/Cg7m1gqN.js +1 -0
- package/dist/web/_app/immutable/chunks/CgCz4Fj6.js +1 -0
- package/dist/web/_app/immutable/chunks/CgOgBK5j.js +1 -0
- package/dist/web/_app/immutable/chunks/ChS3kWO-.js +2 -0
- package/dist/web/_app/immutable/chunks/CkivrILi.js +1 -0
- package/dist/web/_app/immutable/chunks/CmWflMFc.js +1 -0
- package/dist/web/_app/immutable/chunks/Cm_yhEon2.js +1 -0
- package/dist/web/_app/immutable/chunks/CnoUnj6-2.js +1 -0
- package/dist/web/_app/immutable/chunks/CqyFdLMa.js +1 -0
- package/dist/web/_app/immutable/chunks/CsIWxmio2.js +22 -0
- package/dist/web/_app/immutable/chunks/CtgdtZ0G2.js +1 -0
- package/dist/web/_app/immutable/chunks/CuYL65Bn.js +2 -0
- package/dist/web/_app/immutable/chunks/CuatNdzp.js +2 -0
- package/dist/web/_app/immutable/chunks/Cx5IiiDO2.js +2 -0
- package/dist/web/_app/immutable/chunks/Cxdio_Al.js +2692 -0
- package/dist/web/_app/immutable/chunks/CyTgggiM2.js +1 -0
- package/dist/web/_app/immutable/chunks/D-vvXTU3.js +2 -0
- package/dist/web/_app/immutable/chunks/D0_Iu3Uj.js +2 -0
- package/dist/web/_app/immutable/chunks/D4vfNy_f.js +1 -0
- package/dist/web/_app/immutable/chunks/D6toh9Mr.js +1 -0
- package/dist/web/_app/immutable/chunks/DAsarOLg2.js +1 -0
- package/dist/web/_app/immutable/chunks/DBGaXAP8.js +1 -0
- package/dist/web/_app/immutable/chunks/DCgKWtld.js +1 -0
- package/dist/web/_app/immutable/chunks/DG7uGoZb2.js +58 -0
- package/dist/web/_app/immutable/chunks/DIsSxB_C.js +1 -0
- package/dist/web/_app/immutable/chunks/DJTvBXur.js +2 -0
- package/dist/web/_app/immutable/chunks/DLuIHCPq.js +1 -0
- package/dist/web/_app/immutable/chunks/DMFH9Cnt2.js +1 -0
- package/dist/web/_app/immutable/chunks/DNLoQniz.js +1 -0
- package/dist/web/_app/immutable/chunks/DPLkAijI2.js +1 -0
- package/dist/web/_app/immutable/chunks/DQMWa2t7.js +1 -0
- package/dist/web/_app/immutable/chunks/DTOO9nUj.js +1 -0
- package/dist/web/_app/immutable/chunks/DaB0hU8_.js +1 -0
- package/dist/web/_app/immutable/chunks/Dav8Lgyy2.js +5 -0
- package/dist/web/_app/immutable/chunks/Ddgu2Sjp.js +1 -0
- package/dist/web/_app/immutable/chunks/DfUXQOZ92.js +1 -0
- package/dist/web/_app/immutable/chunks/DgP0Pxes.js +224 -0
- package/dist/web/_app/immutable/chunks/DhD1HF7R.js +1 -0
- package/dist/web/_app/immutable/chunks/Dhmw5GUH.js +1 -0
- package/dist/web/_app/immutable/chunks/DiBVOY752.js +1 -0
- package/dist/web/_app/immutable/chunks/DiMsLIh3.js +1 -0
- package/dist/web/_app/immutable/chunks/DiiXREv7.js +1 -0
- package/dist/web/_app/immutable/chunks/DjXtgWTP.js +1 -0
- package/dist/web/_app/immutable/chunks/Dk2-JtmU2.js +1 -0
- package/dist/web/_app/immutable/chunks/Dl0bYyV_.js +1 -0
- package/dist/web/_app/immutable/chunks/DqKYbIld2.js +1 -0
- package/dist/web/_app/immutable/chunks/DtXJCaQc2.js +1 -0
- package/dist/web/_app/immutable/chunks/DwuBUEvU.js +1 -0
- package/dist/web/_app/immutable/chunks/F5xZdLlB.js +2 -0
- package/dist/web/_app/immutable/chunks/F92HmKX8.js +1 -0
- package/dist/web/_app/immutable/chunks/FISIvbqq.js +3 -0
- package/dist/web/_app/immutable/chunks/GC5Izn9E2.js +1 -0
- package/dist/web/_app/immutable/chunks/IMJutqSu2.js +1 -0
- package/dist/web/_app/immutable/chunks/K5YHt1WL2.js +1 -0
- package/dist/web/_app/immutable/chunks/MAYbL-xn2.js +6 -0
- package/dist/web/_app/immutable/chunks/MMtHlrry.js +1 -0
- package/dist/web/_app/immutable/chunks/MtN4vJa02.js +1 -0
- package/dist/web/_app/immutable/chunks/Oglnp7sm.js +14 -0
- package/dist/web/_app/immutable/chunks/PwUOTfSv.js +2 -0
- package/dist/web/_app/immutable/chunks/QsO256-z.js +1 -0
- package/dist/web/_app/immutable/chunks/RA-JwTzo.js +1 -0
- package/dist/web/_app/immutable/chunks/atFSAfcd2.js +2 -0
- package/dist/web/_app/immutable/chunks/j_uHTBnD.js +1 -0
- package/dist/web/_app/immutable/chunks/joKsoiFC.js +1 -0
- package/dist/web/_app/immutable/chunks/kNaey6uv.js +1 -0
- package/dist/web/_app/immutable/chunks/nqo2e2Yv.js +1 -0
- package/dist/web/_app/immutable/chunks/oIZupUnz.js +1 -0
- package/dist/web/_app/immutable/chunks/pPsy4008.js +1 -0
- package/dist/web/_app/immutable/chunks/qevfNcid.js +1 -0
- package/dist/web/_app/immutable/chunks/rjjyuGhb.js +1 -0
- package/dist/web/_app/immutable/chunks/sUAtda6y2.js +2 -0
- package/dist/web/_app/immutable/chunks/snCOoD78.js +1 -0
- package/dist/web/_app/immutable/chunks/uHaS74te.js +1 -0
- package/dist/web/_app/immutable/chunks/w5tsuIav.js +5 -0
- package/dist/web/_app/immutable/chunks/xihTtKlq.js +1 -0
- package/dist/web/_app/immutable/entry/app.1tcNTKI-.js +2 -0
- package/dist/web/_app/immutable/entry/start.BJMsySI1.js +1 -0
- package/dist/web/_app/immutable/nodes/0.v0W5DL7W.js +2 -0
- package/dist/web/_app/immutable/nodes/1.81Rb3Ith.js +1 -0
- package/dist/web/_app/immutable/nodes/10.CAlZNFOq.js +1 -0
- package/dist/web/_app/immutable/nodes/11.CCfUginI.js +1 -0
- package/dist/web/_app/immutable/nodes/12.BJLboAyk.js +1 -0
- package/dist/web/_app/immutable/nodes/13.Cz4UTl2G.js +1 -0
- package/dist/web/_app/immutable/nodes/14.DJwakC0o.js +1 -0
- package/dist/web/_app/immutable/nodes/15.D2mNE6C-.js +1 -0
- package/dist/web/_app/immutable/nodes/16.BjohAUt9.js +1 -0
- package/dist/web/_app/immutable/nodes/17.BI2F37bS.js +1 -0
- package/dist/web/_app/immutable/nodes/18.DsOT0tDo.js +1 -0
- package/dist/web/_app/immutable/nodes/19.BiJWLOUT.js +77 -0
- package/dist/web/_app/immutable/nodes/2.Cd72nG2V.js +124 -0
- package/dist/web/_app/immutable/nodes/3.BIT9mm9r.js +6 -0
- package/dist/web/_app/immutable/nodes/4.Cn7r0Poe.js +16 -0
- package/dist/web/_app/immutable/nodes/5.CkJNdCZG.js +1 -0
- package/dist/web/_app/immutable/nodes/6.1rbIRQgQ.js +6 -0
- package/dist/web/_app/immutable/nodes/7.w17Zl36i.js +1 -0
- package/dist/web/_app/immutable/nodes/8.DqTsYuU-.js +1 -0
- package/dist/web/_app/immutable/nodes/9.BJhYZPfc.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 +59 -20
- package/dist/web/studiograph-logomark.svg +29 -0
- package/package.json +44 -15
- 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/create-deck/content-guide.md +0 -238
- package/dist/agent/skills/create-deck/deck-cadence.md +0 -105
- package/dist/agent/skills/create-deck/diagrams.md +0 -431
- package/dist/agent/skills/create-deck/skill.md +0 -89
- package/dist/agent/skills/create-deck/slide-selection.md +0 -115
- package/dist/agent/skills/create-deck/slide-types.md +0 -638
- package/dist/agent/skills/create-document/skill.md +0 -229
- 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/message-tools.d.ts +0 -42
- package/dist/agent/tools/message-tools.js +0 -96
- package/dist/agent/tools/message-tools.js.map +0 -1
- package/dist/agent/tools/sync-tools.d.ts +0 -35
- package/dist/agent/tools/sync-tools.js +0 -992
- package/dist/agent/tools/sync-tools.js.map +0 -1
- package/dist/auth/github.d.ts +0 -56
- package/dist/auth/github.js +0 -169
- package/dist/auth/github.js.map +0 -1
- package/dist/cli/commands/access.d.ts +0 -11
- package/dist/cli/commands/access.js +0 -156
- package/dist/cli/commands/access.js.map +0 -1
- package/dist/cli/commands/app.d.ts +0 -7
- package/dist/cli/commands/app.js +0 -268
- package/dist/cli/commands/app.js.map +0 -1
- package/dist/cli/commands/auth.d.ts +0 -10
- package/dist/cli/commands/auth.js +0 -79
- package/dist/cli/commands/auth.js.map +0 -1
- package/dist/cli/commands/clear.d.ts +0 -5
- package/dist/cli/commands/clear.js +0 -36
- package/dist/cli/commands/clear.js.map +0 -1
- package/dist/cli/commands/collection.d.ts +0 -10
- package/dist/cli/commands/collection.js +0 -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/join.d.ts +0 -9
- package/dist/cli/commands/join.js +0 -255
- package/dist/cli/commands/join.js.map +0 -1
- package/dist/cli/commands/members.d.ts +0 -11
- package/dist/cli/commands/members.js +0 -230
- package/dist/cli/commands/members.js.map +0 -1
- package/dist/cli/commands/org.d.ts +0 -10
- package/dist/cli/commands/org.js +0 -132
- package/dist/cli/commands/org.js.map +0 -1
- package/dist/cli/commands/provision.d.ts +0 -8
- package/dist/cli/commands/provision.js +0 -116
- package/dist/cli/commands/provision.js.map +0 -1
- package/dist/cli/commands/resolve.d.ts +0 -8
- package/dist/cli/commands/resolve.js +0 -85
- package/dist/cli/commands/resolve.js.map +0 -1
- package/dist/cli/commands/review.d.ts +0 -19
- package/dist/cli/commands/review.js +0 -128
- package/dist/cli/commands/review.js.map +0 -1
- package/dist/cli/commands/source.d.ts +0 -16
- package/dist/cli/commands/source.js +0 -159
- package/dist/cli/commands/source.js.map +0 -1
- package/dist/cli/commands/start.d.ts +0 -7
- package/dist/cli/commands/start.js +0 -576
- package/dist/cli/commands/start.js.map +0 -1
- package/dist/cli/commands/sync-collection.d.ts +0 -14
- package/dist/cli/commands/sync-collection.js +0 -355
- package/dist/cli/commands/sync-collection.js.map +0 -1
- package/dist/cli/commands/sync-entities.d.ts +0 -13
- package/dist/cli/commands/sync-entities.js +0 -242
- package/dist/cli/commands/sync-entities.js.map +0 -1
- package/dist/cli/commands/team.d.ts +0 -12
- package/dist/cli/commands/team.js +0 -185
- package/dist/cli/commands/team.js.map +0 -1
- package/dist/cli/commands/update.d.ts +0 -8
- package/dist/cli/commands/update.js +0 -155
- package/dist/cli/commands/update.js.map +0 -1
- package/dist/cli/commands/user.d.ts +0 -7
- package/dist/cli/commands/user.js +0 -169
- package/dist/cli/commands/user.js.map +0 -1
- package/dist/cli/scaffolding.d.ts +0 -12
- package/dist/cli/scaffolding.js +0 -397
- package/dist/cli/scaffolding.js.map +0 -1
- package/dist/cli/sync-review-interactive.d.ts +0 -31
- package/dist/cli/sync-review-interactive.js +0 -393
- package/dist/cli/sync-review-interactive.js.map +0 -1
- package/dist/core/feature-flags.d.ts +0 -17
- package/dist/core/feature-flags.js +0 -15
- package/dist/core/feature-flags.js.map +0 -1
- package/dist/core/features.d.ts +0 -16
- package/dist/core/features.js +0 -48
- package/dist/core/features.js.map +0 -1
- package/dist/core/launch-entity-types.d.ts +0 -23
- package/dist/core/launch-entity-types.js +0 -48
- package/dist/core/launch-entity-types.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/renderers/documents/branding.d.ts +0 -2
- package/dist/renderers/documents/branding.js +0 -42
- package/dist/renderers/documents/branding.js.map +0 -1
- package/dist/renderers/documents/entity-types.json +0 -14
- package/dist/renderers/documents/parser/frontmatter.d.ts +0 -5
- package/dist/renderers/documents/parser/frontmatter.js +0 -90
- package/dist/renderers/documents/parser/frontmatter.js.map +0 -1
- package/dist/renderers/documents/parser/index.d.ts +0 -5
- package/dist/renderers/documents/parser/index.js +0 -142
- package/dist/renderers/documents/parser/index.js.map +0 -1
- package/dist/renderers/documents/parser/sections.d.ts +0 -18
- package/dist/renderers/documents/parser/sections.js +0 -131
- package/dist/renderers/documents/parser/sections.js.map +0 -1
- package/dist/renderers/documents/pdf/generator.d.ts +0 -13
- package/dist/renderers/documents/pdf/generator.js +0 -79
- package/dist/renderers/documents/pdf/generator.js.map +0 -1
- package/dist/renderers/documents/plugin.d.ts +0 -2
- package/dist/renderers/documents/plugin.js +0 -63
- package/dist/renderers/documents/plugin.js.map +0 -1
- package/dist/renderers/documents/public/branding/logo.svg +0 -3
- package/dist/renderers/documents/public/editor/chrome.css +0 -461
- package/dist/renderers/documents/public/editor/chrome.js +0 -524
- package/dist/renderers/documents/public/editor/editor.css +0 -751
- package/dist/renderers/documents/public/editor/editor.html +0 -140
- package/dist/renderers/documents/public/editor/editor.js +0 -953
- package/dist/renderers/documents/public/fonts/fonts.css +0 -145
- package/dist/renderers/documents/public/viewer/viewer.css +0 -1
- package/dist/renderers/documents/public/viewer/viewer.js +0 -4
- package/dist/renderers/documents/renderer/back.d.ts +0 -8
- package/dist/renderers/documents/renderer/back.js +0 -28
- package/dist/renderers/documents/renderer/back.js.map +0 -1
- package/dist/renderers/documents/renderer/content.d.ts +0 -7
- package/dist/renderers/documents/renderer/content.js +0 -25
- package/dist/renderers/documents/renderer/content.js.map +0 -1
- package/dist/renderers/documents/renderer/cover.d.ts +0 -15
- package/dist/renderers/documents/renderer/cover.js +0 -43
- package/dist/renderers/documents/renderer/cover.js.map +0 -1
- package/dist/renderers/documents/renderer/helpers.d.ts +0 -1
- package/dist/renderers/documents/renderer/helpers.js +0 -11
- package/dist/renderers/documents/renderer/helpers.js.map +0 -1
- package/dist/renderers/documents/renderer/index.d.ts +0 -32
- package/dist/renderers/documents/renderer/index.js +0 -80
- package/dist/renderers/documents/renderer/index.js.map +0 -1
- package/dist/renderers/documents/renderer/styles.d.ts +0 -16
- package/dist/renderers/documents/renderer/styles.js +0 -546
- package/dist/renderers/documents/renderer/styles.js.map +0 -1
- package/dist/renderers/documents/routes/api.d.ts +0 -2
- package/dist/renderers/documents/routes/api.js +0 -587
- package/dist/renderers/documents/routes/api.js.map +0 -1
- package/dist/renderers/documents/routes/editor.d.ts +0 -2
- package/dist/renderers/documents/routes/editor.js +0 -31
- package/dist/renderers/documents/routes/editor.js.map +0 -1
- package/dist/renderers/documents/routes/viewer.d.ts +0 -2
- package/dist/renderers/documents/routes/viewer.js +0 -67
- package/dist/renderers/documents/routes/viewer.js.map +0 -1
- package/dist/renderers/documents/types.d.ts +0 -61
- package/dist/renderers/documents/types.js +0 -2
- package/dist/renderers/documents/types.js.map +0 -1
- package/dist/renderers/index.d.ts +0 -24
- package/dist/renderers/index.js +0 -66
- package/dist/renderers/index.js.map +0 -1
- package/dist/renderers/slides/design-system/tokens.d.ts +0 -108
- package/dist/renderers/slides/design-system/tokens.js +0 -44
- package/dist/renderers/slides/design-system/tokens.js.map +0 -1
- package/dist/renderers/slides/entity-types.json +0 -14
- package/dist/renderers/slides/parser/comment-parser.d.ts +0 -10
- package/dist/renderers/slides/parser/comment-parser.js +0 -89
- package/dist/renderers/slides/parser/comment-parser.js.map +0 -1
- package/dist/renderers/slides/parser/frontmatter.d.ts +0 -10
- package/dist/renderers/slides/parser/frontmatter.js +0 -93
- package/dist/renderers/slides/parser/frontmatter.js.map +0 -1
- package/dist/renderers/slides/parser/index.d.ts +0 -7
- package/dist/renderers/slides/parser/index.js +0 -569
- package/dist/renderers/slides/parser/index.js.map +0 -1
- package/dist/renderers/slides/parser/slide-splitter.d.ts +0 -6
- package/dist/renderers/slides/parser/slide-splitter.js +0 -54
- package/dist/renderers/slides/parser/slide-splitter.js.map +0 -1
- package/dist/renderers/slides/parser/type-detector.d.ts +0 -6
- package/dist/renderers/slides/parser/type-detector.js +0 -70
- package/dist/renderers/slides/parser/type-detector.js.map +0 -1
- package/dist/renderers/slides/pdf/generator.d.ts +0 -11
- package/dist/renderers/slides/pdf/generator.js +0 -105
- package/dist/renderers/slides/pdf/generator.js.map +0 -1
- package/dist/renderers/slides/plugin.d.ts +0 -2
- package/dist/renderers/slides/plugin.js +0 -70
- package/dist/renderers/slides/plugin.js.map +0 -1
- package/dist/renderers/slides/public/editor/.gitkeep +0 -0
- package/dist/renderers/slides/public/editor/chrome.css +0 -461
- package/dist/renderers/slides/public/editor/chrome.js +0 -519
- package/dist/renderers/slides/public/editor/editor.css +0 -896
- package/dist/renderers/slides/public/editor/editor.html +0 -131
- package/dist/renderers/slides/public/editor/editor.js +0 -1038
- package/dist/renderers/slides/public/fonts/fonts.css +0 -145
- package/dist/renderers/slides/public/viewer/.gitkeep +0 -0
- package/dist/renderers/slides/public/viewer/chrome.css +0 -62
- package/dist/renderers/slides/public/viewer/transitions.css +0 -1
- package/dist/renderers/slides/public/viewer/viewer.css +0 -2145
- package/dist/renderers/slides/public/viewer/viewer.js +0 -303
- package/dist/renderers/slides/renderer/chrome/browser-frame.d.ts +0 -5
- package/dist/renderers/slides/renderer/chrome/browser-frame.js +0 -22
- package/dist/renderers/slides/renderer/chrome/browser-frame.js.map +0 -1
- package/dist/renderers/slides/renderer/chrome/mobile-frame.d.ts +0 -6
- package/dist/renderers/slides/renderer/chrome/mobile-frame.js +0 -18
- package/dist/renderers/slides/renderer/chrome/mobile-frame.js.map +0 -1
- package/dist/renderers/slides/renderer/helpers.d.ts +0 -13
- package/dist/renderers/slides/renderer/helpers.js +0 -33
- package/dist/renderers/slides/renderer/helpers.js.map +0 -1
- package/dist/renderers/slides/renderer/index.d.ts +0 -16
- package/dist/renderers/slides/renderer/index.js +0 -160
- package/dist/renderers/slides/renderer/index.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/agenda.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/agenda.js +0 -18
- package/dist/renderers/slides/renderer/layouts/agenda.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/blank.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/blank.js +0 -4
- package/dist/renderers/slides/renderer/layouts/blank.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/columns.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/columns.js +0 -32
- package/dist/renderers/slides/renderer/layouts/columns.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/cover.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/cover.js +0 -18
- package/dist/renderers/slides/renderer/layouts/cover.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/diagram-concentric.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/diagram-concentric.js +0 -120
- package/dist/renderers/slides/renderer/layouts/diagram-concentric.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/diagram-matrix.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/diagram-matrix.js +0 -158
- package/dist/renderers/slides/renderer/layouts/diagram-matrix.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/diagram-pyramid.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/diagram-pyramid.js +0 -86
- package/dist/renderers/slides/renderer/layouts/diagram-pyramid.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/diagram-sitemap.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/diagram-sitemap.js +0 -146
- package/dist/renderers/slides/renderer/layouts/diagram-sitemap.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/diagram-venn.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/diagram-venn.js +0 -100
- package/dist/renderers/slides/renderer/layouts/diagram-venn.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/diagram.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/diagram.js +0 -21
- package/dist/renderers/slides/renderer/layouts/diagram.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/divider.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/divider.js +0 -4
- package/dist/renderers/slides/renderer/layouts/divider.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/end.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/end.js +0 -8
- package/dist/renderers/slides/renderer/layouts/end.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/framework.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/framework.js +0 -47
- package/dist/renderers/slides/renderer/layouts/framework.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/image-browser-2up.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/image-browser-2up.js +0 -38
- package/dist/renderers/slides/renderer/layouts/image-browser-2up.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/image-browser-6up.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/image-browser-6up.js +0 -30
- package/dist/renderers/slides/renderer/layouts/image-browser-6up.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/image-browser.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/image-browser.js +0 -18
- package/dist/renderers/slides/renderer/layouts/image-browser.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/image-bullets.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/image-bullets.js +0 -26
- package/dist/renderers/slides/renderer/layouts/image-bullets.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/image-device-pair.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/image-device-pair.js +0 -34
- package/dist/renderers/slides/renderer/layouts/image-device-pair.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/image-full.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/image-full.js +0 -36
- package/dist/renderers/slides/renderer/layouts/image-full.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/image-grid-2x2.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/image-grid-2x2.js +0 -23
- package/dist/renderers/slides/renderer/layouts/image-grid-2x2.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/image-keywords.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/image-keywords.js +0 -31
- package/dist/renderers/slides/renderer/layouts/image-keywords.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/image-mobile-3up.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/image-mobile-3up.js +0 -22
- package/dist/renderers/slides/renderer/layouts/image-mobile-3up.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/image-mobile.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/image-mobile.js +0 -17
- package/dist/renderers/slides/renderer/layouts/image-mobile.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/image-split-right.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/image-split-right.js +0 -19
- package/dist/renderers/slides/renderer/layouts/image-split-right.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/image-split.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/image-split.js +0 -19
- package/dist/renderers/slides/renderer/layouts/image-split.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/introductions.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/introductions.js +0 -41
- package/dist/renderers/slides/renderer/layouts/introductions.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/moodboard.d.ts +0 -15
- package/dist/renderers/slides/renderer/layouts/moodboard.js +0 -63
- package/dist/renderers/slides/renderer/layouts/moodboard.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/next-steps.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/next-steps.js +0 -13
- package/dist/renderers/slides/renderer/layouts/next-steps.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/pullquote.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/pullquote.js +0 -17
- package/dist/renderers/slides/renderer/layouts/pullquote.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/schedule.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/schedule.js +0 -58
- package/dist/renderers/slides/renderer/layouts/schedule.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/section.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/section.js +0 -18
- package/dist/renderers/slides/renderer/layouts/section.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/statement.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/statement.js +0 -13
- package/dist/renderers/slides/renderer/layouts/statement.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/stats.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/stats.js +0 -26
- package/dist/renderers/slides/renderer/layouts/stats.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/table.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/table.js +0 -23
- package/dist/renderers/slides/renderer/layouts/table.js.map +0 -1
- package/dist/renderers/slides/renderer/layouts/text-body.d.ts +0 -2
- package/dist/renderers/slides/renderer/layouts/text-body.js +0 -14
- package/dist/renderers/slides/renderer/layouts/text-body.js.map +0 -1
- package/dist/renderers/slides/renderer/placeholder.d.ts +0 -5
- package/dist/renderers/slides/renderer/placeholder.js +0 -12
- package/dist/renderers/slides/renderer/placeholder.js.map +0 -1
- package/dist/renderers/slides/routes/api.d.ts +0 -2
- package/dist/renderers/slides/routes/api.js +0 -568
- package/dist/renderers/slides/routes/api.js.map +0 -1
- package/dist/renderers/slides/routes/editor.d.ts +0 -2
- package/dist/renderers/slides/routes/editor.js +0 -32
- package/dist/renderers/slides/routes/editor.js.map +0 -1
- package/dist/renderers/slides/routes/viewer.d.ts +0 -2
- package/dist/renderers/slides/routes/viewer.js +0 -67
- package/dist/renderers/slides/routes/viewer.js.map +0 -1
- package/dist/renderers/slides/types.d.ts +0 -111
- package/dist/renderers/slides/types.js +0 -2
- package/dist/renderers/slides/types.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 -701
- 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/features-api.d.ts +0 -10
- package/dist/server/routes/features-api.js +0 -15
- package/dist/server/routes/features-api.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 -117
- 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 -569
- package/dist/server/routes/messages-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/view-public.d.ts +0 -10
- package/dist/server/routes/view-public.js +0 -107
- package/dist/server/routes/view-public.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/briefing.d.ts +0 -26
- package/dist/services/briefing.js +0 -206
- package/dist/services/briefing.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/heartbeat.d.ts +0 -35
- package/dist/services/heartbeat.js +0 -236
- 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.d.ts +0 -97
- package/dist/services/meeting-processor.js +0 -382
- package/dist/services/meeting-processor.js.map +0 -1
- package/dist/services/message-service.d.ts +0 -117
- package/dist/services/message-service.js +0 -414
- package/dist/services/message-service.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.B3eM5J6m.css +0 -1
- package/dist/web/_app/immutable/assets/10.2jzI3cZY.css +0 -1
- package/dist/web/_app/immutable/assets/11.BbBNo8jg.css +0 -1
- package/dist/web/_app/immutable/assets/12.vV-8Nqud.css +0 -1
- package/dist/web/_app/immutable/assets/2.CDsrnCq3.css +0 -1
- package/dist/web/_app/immutable/assets/3.Ih7su2rl.css +0 -1
- package/dist/web/_app/immutable/assets/4.CwXIQz3p.css +0 -1
- package/dist/web/_app/immutable/assets/ChevronLeft.BwM9mwS4.css +0 -1
- package/dist/web/_app/immutable/assets/GraphView.CRV5cekT.css +0 -1
- package/dist/web/_app/immutable/assets/Toaster.rN8r_Hzv.css +0 -1
- package/dist/web/_app/immutable/assets/ViewToolbar.CsWTe0yn.css +0 -1
- package/dist/web/_app/immutable/assets/WorkspaceView.iWtzksrr.css +0 -1
- package/dist/web/_app/immutable/chunks/0kuZ2gtb.js +0 -1
- package/dist/web/_app/immutable/chunks/1Ea1UXwM.js +0 -2
- package/dist/web/_app/immutable/chunks/284Zhbif.js +0 -1
- package/dist/web/_app/immutable/chunks/7S2LGqoP.js +0 -2
- package/dist/web/_app/immutable/chunks/7WZENMwt.js +0 -1
- package/dist/web/_app/immutable/chunks/B0qHb2ee.js +0 -1
- package/dist/web/_app/immutable/chunks/B45od9dM.js +0 -2
- package/dist/web/_app/immutable/chunks/B4hXkypI.js +0 -1
- package/dist/web/_app/immutable/chunks/BB_5th5W.js +0 -3383
- package/dist/web/_app/immutable/chunks/BDvg8O5k.js +0 -5
- package/dist/web/_app/immutable/chunks/BGiCmAMQ.js +0 -4
- package/dist/web/_app/immutable/chunks/BHgT2Ede.js +0 -1
- package/dist/web/_app/immutable/chunks/BQ1nK9ru.js +0 -1
- package/dist/web/_app/immutable/chunks/BS0-13V2.js +0 -1
- package/dist/web/_app/immutable/chunks/BSiC7hSS.js +0 -1
- package/dist/web/_app/immutable/chunks/BkxW0BJZ.js +0 -1
- package/dist/web/_app/immutable/chunks/Bp7FKkGt.js +0 -1
- package/dist/web/_app/immutable/chunks/BrebtJNG.js +0 -18
- 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/C0Zx4tMe.js +0 -1
- package/dist/web/_app/immutable/chunks/CHJcPZZK.js +0 -2
- package/dist/web/_app/immutable/chunks/CRpK3grw.js +0 -2
- 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/CdIKiXW6.js +0 -1
- package/dist/web/_app/immutable/chunks/CqkleIqs.js +0 -1
- package/dist/web/_app/immutable/chunks/D14M5KlG.js +0 -1
- package/dist/web/_app/immutable/chunks/D71c9o7J.js +0 -2
- package/dist/web/_app/immutable/chunks/DFYOFE3o.js +0 -1
- package/dist/web/_app/immutable/chunks/DHJAqtPb.js +0 -1
- package/dist/web/_app/immutable/chunks/DOqcDZIJ.js +0 -1
- package/dist/web/_app/immutable/chunks/DQNtFKv6.js +0 -1
- package/dist/web/_app/immutable/chunks/DZHWps9n.js +0 -1
- package/dist/web/_app/immutable/chunks/DjLrjK2H.js +0 -1
- package/dist/web/_app/immutable/chunks/DjvJRtva.js +0 -1
- package/dist/web/_app/immutable/chunks/DnL9f0lc.js +0 -7
- package/dist/web/_app/immutable/chunks/Dqq8gyOz.js +0 -1
- package/dist/web/_app/immutable/chunks/DsnmJJEf.js +0 -1
- package/dist/web/_app/immutable/chunks/DtG1tx2A.js +0 -1
- package/dist/web/_app/immutable/chunks/Dxmmz-Kc.js +0 -1
- package/dist/web/_app/immutable/chunks/DzVOENkg.js +0 -1
- package/dist/web/_app/immutable/chunks/Ee5s0qSS.js +0 -5
- package/dist/web/_app/immutable/chunks/KlRV1tKP.js +0 -1
- package/dist/web/_app/immutable/chunks/L7dfS1-w.js +0 -1
- package/dist/web/_app/immutable/chunks/MaQouOBH.js +0 -2
- package/dist/web/_app/immutable/chunks/PPVm8Dsz.js +0 -1
- package/dist/web/_app/immutable/chunks/WSUKABI_.js +0 -1
- package/dist/web/_app/immutable/chunks/_7ZfIgbM.js +0 -1
- package/dist/web/_app/immutable/chunks/pNJmbo_B.js +0 -1
- package/dist/web/_app/immutable/chunks/q4I7EnCp.js +0 -1
- package/dist/web/_app/immutable/chunks/qE6Hm01v.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/wZWzupWT.js +0 -1
- package/dist/web/_app/immutable/entry/app.Dc6h105F.js +0 -2
- package/dist/web/_app/immutable/entry/start.D4codAU1.js +0 -1
- package/dist/web/_app/immutable/nodes/0.BM3j5xaK.js +0 -2
- package/dist/web/_app/immutable/nodes/1.CZ2dT63B.js +0 -1
- package/dist/web/_app/immutable/nodes/10.AJJtsnPU.js +0 -1
- package/dist/web/_app/immutable/nodes/11.B7SEgGLF.js +0 -1
- package/dist/web/_app/immutable/nodes/12.BcJKl4UQ.js +0 -1
- package/dist/web/_app/immutable/nodes/2.jp27tyTq.js +0 -269
- package/dist/web/_app/immutable/nodes/3.I7SH_06w.js +0 -5
- package/dist/web/_app/immutable/nodes/4.Bdphc-UJ.js +0 -11
- package/dist/web/_app/immutable/nodes/5.CXpOErnP.js +0 -1
- package/dist/web/_app/immutable/nodes/6.1wcSxmEA.js +0 -1
- package/dist/web/_app/immutable/nodes/7.D0b7WYTp.js +0 -1
- package/dist/web/_app/immutable/nodes/8.D0Gxvy3F.js +0 -1
- package/dist/web/_app/immutable/nodes/9.B5Nr92OR.js +0 -1
|
@@ -10,10 +10,14 @@ import { homedir } from 'os';
|
|
|
10
10
|
import { fileURLToPath } from 'url';
|
|
11
11
|
const __filename = fileURLToPath(import.meta.url);
|
|
12
12
|
const __dirname = dirname(__filename);
|
|
13
|
-
import { getModel } from '@
|
|
14
|
-
import { Agent } from '@
|
|
13
|
+
import { getModel, completeSimple } from '@earendil-works/pi-ai';
|
|
14
|
+
import { Agent } from '@earendil-works/pi-agent-core';
|
|
15
15
|
import { WorkspaceManager } from '../core/workspace-manager.js';
|
|
16
|
+
import { resolveUtilityModelConfig } from '../services/utility-model-resolver.js';
|
|
17
|
+
import { findPersonRefForUser } from '../services/user-person-bridge.js';
|
|
16
18
|
import { createGraphTools } from './tools/graph-tools.js';
|
|
19
|
+
import { createFolderTools } from './tools/folder-tools.js';
|
|
20
|
+
import { createHistoryTools } from './tools/history-tools.js';
|
|
17
21
|
import { loadSkillIndex, buildSkillIndexPrompt, loadEagerSkills } from './skill-loader.js';
|
|
18
22
|
import { createLoadSkillTool } from './tools/load-skill.js';
|
|
19
23
|
import { loadCustomTools } from './tools/tool-loader.js';
|
|
@@ -23,12 +27,20 @@ import { createFsTools } from './tools/fs-tools.js';
|
|
|
23
27
|
import { createWebTools } from './tools/web-tools.js';
|
|
24
28
|
import { createOpsTools } from './tools/ops-tools.js';
|
|
25
29
|
import { createPermissionTools } from './tools/permission-tools.js';
|
|
26
|
-
import {
|
|
30
|
+
import { createCaptureTools } from './tools/capture-tools.js';
|
|
31
|
+
import { createArtifactTools, hashArtifactBody, artifactTruncationToolResult } from './tools/artifact-tools.js';
|
|
32
|
+
import { validateArtifactBundle } from '../core/artifact-frame-model.js';
|
|
27
33
|
import { renderEntityTypesSection } from './prompts/entity-types-section.js';
|
|
28
34
|
import { ENTITY_SCHEMAS } from '../core/validation.js';
|
|
29
35
|
import { AuthService } from '../services/auth-service.js';
|
|
36
|
+
import * as access from '../services/access-control.js';
|
|
30
37
|
import { loadUserConfig, resolveApiKey, resolveProvider, resolveModelId } from '../core/user-config.js';
|
|
38
|
+
import { supportsVision } from '../services/model-capabilities.js';
|
|
39
|
+
import { onSecretMutation } from '../core/secrets/index.js';
|
|
31
40
|
import { AgentPool } from './agent-pool.js';
|
|
41
|
+
import { manageContext } from './context-window.js';
|
|
42
|
+
import { addInferenceUsage, createCloudInferenceStreamFn, createInferenceUsageSummary, isStudiographCreditsMode, studiographCreditsModel, } from '../services/cloud-inference-billing.js';
|
|
43
|
+
import { recordAiUsage } from '../services/ai-usage-ledger.js';
|
|
32
44
|
export class AgentOrchestrator {
|
|
33
45
|
workspacePath;
|
|
34
46
|
workspaceManager;
|
|
@@ -39,10 +51,11 @@ export class AgentOrchestrator {
|
|
|
39
51
|
toolsDirs;
|
|
40
52
|
registryRef = { registry: null };
|
|
41
53
|
authService;
|
|
42
|
-
|
|
54
|
+
commentService;
|
|
55
|
+
chatSessionService;
|
|
56
|
+
mintInspectAssets;
|
|
43
57
|
recentMemory;
|
|
44
58
|
sessionsDir;
|
|
45
|
-
onEntityContentMutation;
|
|
46
59
|
// Per-session context — used by tool closures via the pool's contextMap
|
|
47
60
|
// Legacy fields kept for backward compat with callers that set them before chat()
|
|
48
61
|
_currentUser = null;
|
|
@@ -55,9 +68,15 @@ export class AgentOrchestrator {
|
|
|
55
68
|
this.config = config.workspaceConfig;
|
|
56
69
|
this.gitUser = config.gitUser;
|
|
57
70
|
this.recentMemory = config.recentMemory;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
71
|
+
// Prefer the route-level AuthService so we share the master-key
|
|
72
|
+
// crypto wiring + the OAuth-mutation pubsub. Fallback construction
|
|
73
|
+
// only fires in tests / CLI scenarios that don't supply one — those
|
|
74
|
+
// paths don't read encrypted oauth_tokens, so the missing crypto is
|
|
75
|
+
// harmless there.
|
|
76
|
+
this.authService = config.authService ?? new AuthService(config.workspacePath);
|
|
77
|
+
this.commentService = config.commentService ?? null;
|
|
78
|
+
this.chatSessionService = config.chatSessionService ?? null;
|
|
79
|
+
this.mintInspectAssets = config.mintInspectAssets;
|
|
61
80
|
this.sessionsDir = join(homedir(), '.studiograph', 'sessions');
|
|
62
81
|
// Skills: filesystem dirs are now bundled-only. User/workspace authoring
|
|
63
82
|
// moves to graph `skill` entities (enumerated per-user in createAgentInstance).
|
|
@@ -70,9 +89,30 @@ export class AgentOrchestrator {
|
|
|
70
89
|
// Initialize agent pool — each session gets its own Agent instance
|
|
71
90
|
this.pool = new AgentPool({
|
|
72
91
|
createAgent: (userId) => this.createAgentInstance(userId),
|
|
73
|
-
loadCustomTools: (agent) => this.loadCustomToolsAsync(agent),
|
|
92
|
+
loadCustomTools: (agent, userId) => this.loadCustomToolsAsync(agent, userId),
|
|
74
93
|
sessionsDir: this.sessionsDir,
|
|
75
94
|
});
|
|
95
|
+
// Evict cached agents when an operator changes a model.* key via
|
|
96
|
+
// Settings UI / CLI. Without this, the running agent keeps using
|
|
97
|
+
// the apiKey/provider/modelId it captured at createAgentInstance
|
|
98
|
+
// time, and the operator's rotation appears to have no effect
|
|
99
|
+
// until the next process restart. Other keys (r2.*, search.*) are
|
|
100
|
+
// read fresh on each tool call, so eviction isn't needed for them.
|
|
101
|
+
onSecretMutation((key) => {
|
|
102
|
+
if (key.startsWith('model.')) {
|
|
103
|
+
this.pool.invalidateAll();
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
// Evict the user's pooled agent when their OAuth state changes.
|
|
107
|
+
// ConnectorManager.buildTools resolves per-user OAuth at agent-
|
|
108
|
+
// construction time only; mid-session connect/disconnect would
|
|
109
|
+
// otherwise leave the agent with a stale tool list (the connector
|
|
110
|
+
// would stay invisible after Connect, or stay visible after
|
|
111
|
+
// Disconnect). Scoped per-user — other users' sessions are
|
|
112
|
+
// untouched.
|
|
113
|
+
this.authService.onOAuthMutation((userId) => {
|
|
114
|
+
this.pool.invalidateUser(userId);
|
|
115
|
+
});
|
|
76
116
|
}
|
|
77
117
|
/**
|
|
78
118
|
* Create Pi-Mono agent with tools and system prompt.
|
|
@@ -80,18 +120,22 @@ export class AgentOrchestrator {
|
|
|
80
120
|
*/
|
|
81
121
|
createAgentInstance(userId) {
|
|
82
122
|
const userConfig = loadUserConfig();
|
|
83
|
-
const
|
|
84
|
-
const
|
|
85
|
-
const
|
|
123
|
+
const useCreditsGateway = isStudiographCreditsMode();
|
|
124
|
+
const provider = useCreditsGateway ? 'studiograph-cloud' : resolveProvider(userConfig, this.config);
|
|
125
|
+
const modelId = useCreditsGateway ? studiographCreditsModel().id : resolveModelId(userConfig, this.config);
|
|
126
|
+
const apiKey = useCreditsGateway ? 'studiograph-cloud-gateway' : resolveApiKey(userConfig, this.config);
|
|
86
127
|
if (!apiKey) {
|
|
87
128
|
throw new Error('API key not found in config or environment');
|
|
88
129
|
}
|
|
89
|
-
const model =
|
|
130
|
+
const model = useCreditsGateway
|
|
131
|
+
? studiographCreditsModel()
|
|
132
|
+
: getModel(provider, modelId);
|
|
90
133
|
// Build skill index — bundled filesystem skills + graph `skill` entries
|
|
91
134
|
// from folders the user can access. Graph skills take priority over
|
|
92
135
|
// bundled on name collision (user-authored overrides can customise
|
|
93
136
|
// built-in skills).
|
|
94
|
-
const
|
|
137
|
+
const promptRepos = this.getPromptRepoScope(userId);
|
|
138
|
+
const graphSkills = this.enumerateGraphSkills(promptRepos, userId);
|
|
95
139
|
const bundledSkills = loadSkillIndex(this.skillsDirs);
|
|
96
140
|
const seen = new Set(graphSkills.map((s) => s.name));
|
|
97
141
|
const skillIndex = [...graphSkills, ...bundledSkills.filter(s => !seen.has(s.name))];
|
|
@@ -105,6 +149,13 @@ export class AgentOrchestrator {
|
|
|
105
149
|
const sid = this.pool.findSessionForAgent(agent);
|
|
106
150
|
return sid ? (this.pool.getContext(sid).user ?? null) : this._currentUser;
|
|
107
151
|
};
|
|
152
|
+
// The raw client session id for the active turn (scratch images are keyed by
|
|
153
|
+
// it). Resolved per call from the pool context so session-scoped tools target
|
|
154
|
+
// the current conversation. Null for non-web contexts that set no context.
|
|
155
|
+
const getActiveSessionId = () => {
|
|
156
|
+
const sid = this.pool.findSessionForAgent(agent);
|
|
157
|
+
return sid ? (this.pool.getContext(sid).clientSessionId ?? null) : null;
|
|
158
|
+
};
|
|
108
159
|
const onHighlight = (ids) => {
|
|
109
160
|
const sid = this.pool.findSessionForAgent(agent);
|
|
110
161
|
if (sid)
|
|
@@ -119,35 +170,214 @@ export class AgentOrchestrator {
|
|
|
119
170
|
else
|
|
120
171
|
this._mutationCallback?.(m);
|
|
121
172
|
};
|
|
122
|
-
const
|
|
173
|
+
const onArtifact = (bundle, target, options) => {
|
|
174
|
+
const sid = this.pool.findSessionForAgent(agent);
|
|
175
|
+
if (sid)
|
|
176
|
+
return this.pool.getContext(sid).onArtifact?.(bundle, target, options);
|
|
177
|
+
};
|
|
178
|
+
const readArtifact = (target) => {
|
|
179
|
+
const sid = this.pool.findSessionForAgent(agent);
|
|
180
|
+
const ctx = sid ? this.pool.getContext(sid) : { user: this._currentUser };
|
|
181
|
+
const effectiveTarget = target?.entityId ? target : ctx.currentArtifactTarget;
|
|
182
|
+
if (!effectiveTarget?.entityId) {
|
|
183
|
+
throw new Error('No artifact target is available. Pass target.entityId or open an artifact canvas first.');
|
|
184
|
+
}
|
|
185
|
+
if (!effectiveTarget.repo) {
|
|
186
|
+
throw new Error('Artifact target repo is required when inspecting by target.');
|
|
187
|
+
}
|
|
188
|
+
if (!access.hasRepoAccess(ctx.user ?? undefined, effectiveTarget.repo, this.workspaceManager, this.authService)) {
|
|
189
|
+
throw new Error(`Folder "${effectiveTarget.repo}" not found`);
|
|
190
|
+
}
|
|
191
|
+
const graph = this.workspaceManager.getGraph(effectiveTarget.repo);
|
|
192
|
+
const entity = graph.get('artifact', effectiveTarget.entityId);
|
|
193
|
+
// Prefer the live editor Y.Doc body over disk (matches get_entity /
|
|
194
|
+
// patch_entity), so the agent edits what the user currently sees and the
|
|
195
|
+
// hash matches the write-time guard's view of "current".
|
|
196
|
+
const body = graph.getLiveBody('artifact', effectiveTarget.entityId) ?? entity.document.content;
|
|
197
|
+
let rawBundle;
|
|
198
|
+
try {
|
|
199
|
+
rawBundle = JSON.parse(body);
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
throw new Error(`Artifact ${effectiveTarget.repo}/${effectiveTarget.entityId} body is not a valid JSON bundle.`);
|
|
203
|
+
}
|
|
204
|
+
const validation = validateArtifactBundle(rawBundle);
|
|
205
|
+
if (!validation.ok || !validation.bundle) {
|
|
206
|
+
throw new Error(`Invalid artifact bundle: ${validation.errors.join('; ')}`);
|
|
207
|
+
}
|
|
208
|
+
return {
|
|
209
|
+
bundle: validation.bundle,
|
|
210
|
+
hash: hashArtifactBody(body),
|
|
211
|
+
updatedAt: typeof entity.data?.updated_at === 'string' ? entity.data.updated_at : undefined,
|
|
212
|
+
};
|
|
213
|
+
};
|
|
214
|
+
// Resolve the server origin + a signed asset token for inspect_artifact's
|
|
215
|
+
// headless render, so workspace `/api/assets/...` images load instead of
|
|
216
|
+
// showing the broken-image placeholder. Mirrors readArtifact's target
|
|
217
|
+
// resolution; degrades to null when no mint is injected or no persisted
|
|
218
|
+
// target is in scope (e.g. an unsaved inline bundle).
|
|
219
|
+
const resolveInspectAssets = (target, bundle) => {
|
|
220
|
+
if (!this.mintInspectAssets)
|
|
221
|
+
return null;
|
|
222
|
+
const sid = this.pool.findSessionForAgent(agent);
|
|
223
|
+
const ctx = sid ? this.pool.getContext(sid) : { user: this._currentUser };
|
|
224
|
+
const effectiveTarget = target?.entityId ? target : ctx.currentArtifactTarget;
|
|
225
|
+
if (!effectiveTarget?.entityId || !effectiveTarget.repo)
|
|
226
|
+
return null;
|
|
227
|
+
const userId = String(ctx.user?.id ?? this._sessionUserId ?? '0');
|
|
228
|
+
try {
|
|
229
|
+
return this.mintInspectAssets(effectiveTarget.repo, effectiveTarget.entityId, bundle, userId);
|
|
230
|
+
}
|
|
231
|
+
catch {
|
|
232
|
+
return null;
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
const onAgentActivity = (action, repo) => {
|
|
236
|
+
const sid = this.pool.findSessionForAgent(agent);
|
|
237
|
+
if (sid)
|
|
238
|
+
this.pool.getContext(sid).onAgentActivity?.(action, repo);
|
|
239
|
+
};
|
|
240
|
+
/** Resolves the per-session capture callback at tool-call time. The
|
|
241
|
+
* capture flow installs it via AgentContext; other flows leave it
|
|
242
|
+
* undefined and the tool becomes a no-op acknowledgement. */
|
|
243
|
+
const getNothingToCaptureCallback = () => {
|
|
244
|
+
const sid = this.pool.findSessionForAgent(agent);
|
|
245
|
+
if (!sid)
|
|
246
|
+
return undefined;
|
|
247
|
+
return this.pool.getContext(sid).onNothingToCapture ?? undefined;
|
|
248
|
+
};
|
|
123
249
|
const tools = [
|
|
124
|
-
...createGraphTools(this.workspaceManager, this.gitUser, this.workspacePath, onHighlight, onMutation, getUser, this.authService,
|
|
250
|
+
...createGraphTools(this.workspaceManager, this.gitUser, this.workspacePath, onHighlight, onMutation, getUser, this.authService, onAgentActivity, this.commentService, this.chatSessionService, getActiveSessionId),
|
|
251
|
+
...createFolderTools(this.workspaceManager, this.gitUser, onMutation, getUser, this.authService, onAgentActivity),
|
|
252
|
+
...createHistoryTools(this.workspaceManager, this.gitUser, onMutation, getUser, this.authService, onAgentActivity),
|
|
125
253
|
...createOpsTools(this.workspacePath, this.config),
|
|
126
|
-
...createPermissionTools(this.authService, getUser),
|
|
254
|
+
...createPermissionTools(this.authService, getUser, this.workspaceManager),
|
|
127
255
|
...createFsTools(getUser),
|
|
128
256
|
...createWebTools(this.config.search),
|
|
129
|
-
...(
|
|
257
|
+
...createCaptureTools(getNothingToCaptureCallback),
|
|
258
|
+
...createArtifactTools(onArtifact, { readArtifact, resolveInspectAssets }),
|
|
130
259
|
createLoadSkillTool(skillIndex, graphResolver),
|
|
131
260
|
];
|
|
132
|
-
//
|
|
133
|
-
|
|
134
|
-
if (userId) {
|
|
135
|
-
const cached = this.authService.getCachedBriefing(userId);
|
|
136
|
-
if (cached.briefingText)
|
|
137
|
-
briefingText = cached.briefingText;
|
|
138
|
-
}
|
|
139
|
-
// Build system prompt — base + auto-generated tool reference + memory + briefing + eager skills + skill index
|
|
140
|
-
const systemPrompt = this.buildSystemPrompt(skillIndex, tools, this.recentMemory, briefingText, graphResolver);
|
|
261
|
+
// Build system prompt — base + auto-generated tool reference + memory + eager skills + skill index
|
|
262
|
+
const systemPrompt = this.buildSystemPrompt(skillIndex, tools, this.recentMemory, graphResolver, promptRepos, userId);
|
|
141
263
|
// Log registered tools at startup (verbose only)
|
|
142
264
|
if (process.env.STUDIOGRAPH_VERBOSE === '1') {
|
|
143
265
|
console.log(`🔧 ${tools.length} tools registered: ${tools.map((t) => t.name).join(', ')}`);
|
|
144
266
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
267
|
+
// Dedup the bundled tools array — guards against any future
|
|
268
|
+
// createXxxTools() collision so we never hand a duplicate-name list
|
|
269
|
+
// to the Agent constructor (Anthropic 400s on `tools: Tool names must
|
|
270
|
+
// be unique.`).
|
|
271
|
+
const dedupedTools = [];
|
|
272
|
+
const bundledSeen = new Set();
|
|
273
|
+
for (const t of tools) {
|
|
274
|
+
const name = t.name;
|
|
275
|
+
if (!name || bundledSeen.has(name))
|
|
276
|
+
continue;
|
|
277
|
+
bundledSeen.add(name);
|
|
278
|
+
dedupedTools.push(t);
|
|
279
|
+
}
|
|
280
|
+
// Proactive context-window manager. pi-agent-core calls `transformContext`
|
|
281
|
+
// once before every LLM request, non-destructively producing the message
|
|
282
|
+
// array sent to the provider (the persistent transcript in
|
|
283
|
+
// agent.state.messages — saved to disk / shown in the UI — is untouched).
|
|
284
|
+
// We estimate tokens and, when a request would overflow the model's window,
|
|
285
|
+
// stub oversized tool results / evict oldest turns / truncate an over-large
|
|
286
|
+
// latest turn so the request fits — instead of letting the provider 400 the
|
|
287
|
+
// whole conversation. The estimator is deliberately conservative (see
|
|
288
|
+
// context-window.ts); the hook MUST NOT throw (runtime contract), so on any
|
|
289
|
+
// error we fall back to the untrimmed messages.
|
|
290
|
+
const transformContext = async (messages) => {
|
|
291
|
+
try {
|
|
292
|
+
const { messages: out, stats } = manageContext({
|
|
293
|
+
messages,
|
|
294
|
+
systemPrompt,
|
|
295
|
+
model: model,
|
|
296
|
+
// Use the LIVE tool list, not the captured `dedupedTools`: per-user
|
|
297
|
+
// connector + custom tools are appended to `agent.state.tools` by
|
|
298
|
+
// loadCustomToolsAsync AFTER construction and ride in every request,
|
|
299
|
+
// so estimating with the initial set would undercount the schema
|
|
300
|
+
// overhead and let a near-limit prompt skip trimming. `agent` is
|
|
301
|
+
// assigned just below; this closure only runs at request time, by
|
|
302
|
+
// which point it's initialized.
|
|
303
|
+
tools: agent.state.tools,
|
|
304
|
+
});
|
|
305
|
+
// Log whenever we're at/over budget or actually trimmed — rare path,
|
|
306
|
+
// high signal for ops/QA. (Quiet on the common under-budget fast path.)
|
|
307
|
+
if (stats.estimateBefore > stats.budget || stats.stubbedResults || stats.evictedTurns || stats.truncatedLatestTurn) {
|
|
308
|
+
// eslint-disable-next-line no-console
|
|
309
|
+
console.warn(`[ctx-window] before=${stats.estimateBefore} after=${stats.estimateAfter} budget=${stats.budget} ` +
|
|
310
|
+
`msgs=${messages.length} stubbed=${stats.stubbedResults} evicted=${stats.evictedTurns} truncated=${stats.truncatedLatestTurn}` +
|
|
311
|
+
(stats.overBudget ? ' OVER-BUDGET-AFTER-TRIM' : ''));
|
|
312
|
+
}
|
|
313
|
+
// Distinct, loud signal for the irreducible case (systemPrompt + tool
|
|
314
|
+
// schemas alone exceed budget): everything trimmed yet still over. The
|
|
315
|
+
// reactive isContextOverflow net will surface the 400 to the user; this
|
|
316
|
+
// tells ops WHY (too many/large tools, not a runaway transcript).
|
|
317
|
+
if (stats.overBudget) {
|
|
318
|
+
// eslint-disable-next-line no-console
|
|
319
|
+
console.error(`[ctx-window] STILL OVER BUDGET after full trim (after=${stats.estimateAfter} > budget=${stats.budget}). ` +
|
|
320
|
+
`Likely systemPrompt + tool schemas exceed the window (tools=${agent.state.tools.length}). Request may 400.`);
|
|
321
|
+
}
|
|
322
|
+
return out;
|
|
323
|
+
}
|
|
324
|
+
catch (err) {
|
|
325
|
+
// eslint-disable-next-line no-console
|
|
326
|
+
console.error('[ctx-window] manageContext threw — sending UNTRIMMED messages:', err instanceof Error ? err.stack || err.message : err);
|
|
327
|
+
return messages;
|
|
328
|
+
}
|
|
329
|
+
};
|
|
330
|
+
// Truncation detection (provider-agnostic). pi-agent-core executes a complete
|
|
331
|
+
// tool-call block even when the assistant turn stopped on the output-token cap
|
|
332
|
+
// (agent-loop: tool execution is gated on toolCall presence, not stopReason),
|
|
333
|
+
// and continues to a follow-up turn afterward. So a large create_artifact /
|
|
334
|
+
// patch_artifact whose bundle JSON was cut mid-content still runs and saves a
|
|
335
|
+
// valid-but-short bundle, reporting success. afterToolCall fires right after
|
|
336
|
+
// the tool runs with the originating assistantMessage (carrying stopReason) in
|
|
337
|
+
// scope; when that turn was output-capped, we fold a warning into the tool
|
|
338
|
+
// result so the agent learns the write was truncated and continues with
|
|
339
|
+
// patch_artifact rather than assuming it finished. The hook returns undefined
|
|
340
|
+
// (a no-op) for every other tool/turn.
|
|
341
|
+
const afterToolCall = async (event) => {
|
|
342
|
+
// The output cap only truncates the FINAL content block of the turn, so
|
|
343
|
+
// only that block's tool result should be flagged. An earlier, COMPLETE
|
|
344
|
+
// artifact write in the same capped turn (parallel tool calls, or trailing
|
|
345
|
+
// content that ran over) must not get a false "truncated" note. Gate on
|
|
346
|
+
// this toolCall being the last block in the assistant message.
|
|
347
|
+
const blocks = (event.assistantMessage?.content ?? []);
|
|
348
|
+
const lastBlock = blocks[blocks.length - 1];
|
|
349
|
+
const isLastBlock = !!lastBlock && lastBlock.type === 'toolCall' && lastBlock.id === event.toolCall?.id;
|
|
350
|
+
if (!isLastBlock)
|
|
351
|
+
return undefined;
|
|
352
|
+
const out = artifactTruncationToolResult({
|
|
353
|
+
stopReason: event.assistantMessage?.stopReason,
|
|
354
|
+
toolName: event.toolCall?.name,
|
|
355
|
+
content: event.result?.content,
|
|
356
|
+
});
|
|
357
|
+
// Runtime shape matches (TextContent | ImageContent)[] — text blocks gain
|
|
358
|
+
// the note, image blocks pass through untouched; cast to the SDK type.
|
|
359
|
+
return out ? { content: out.content } : undefined;
|
|
360
|
+
};
|
|
361
|
+
const agent = new Agent({
|
|
362
|
+
getApiKey: () => apiKey,
|
|
363
|
+
transformContext,
|
|
364
|
+
afterToolCall,
|
|
365
|
+
// `thinkingLevel: 'medium'` turns on extended thinking so the runtime
|
|
366
|
+
// emits thinking_delta events. The chat stream relays those as a
|
|
367
|
+
// single-line "what the agent is thinking" status (replacing the pulsing
|
|
368
|
+
// dot). 'medium' is the lowest level that produces readable, followable
|
|
369
|
+
// reasoning on adaptive-thinking models (e.g. Opus 4.7, where 'low' is too
|
|
370
|
+
// brief — it flashes by). Forwarded as `reasoning` on both the direct and
|
|
371
|
+
// credits-gateway stream paths; a no-op for providers without reasoning.
|
|
372
|
+
initialState: { model, systemPrompt, tools: dedupedTools, thinkingLevel: 'medium' },
|
|
373
|
+
streamFn: useCreditsGateway ? createCloudInferenceStreamFn() : undefined,
|
|
374
|
+
});
|
|
375
|
+
// Custom tools are loaded asynchronously by the pool wrapper
|
|
376
|
+
// (config.loadCustomTools, wired to loadCustomToolsAsync). Do NOT call
|
|
377
|
+
// it here — calling it twice fires two concurrent Promise.alls, both
|
|
378
|
+
// racing to mutate agent.state.tools, and the inter-microtask dedup
|
|
379
|
+
// can't always prevent Anthropic seeing a duplicated list on the very
|
|
380
|
+
// first prompt. Single fire site = no race.
|
|
151
381
|
return agent;
|
|
152
382
|
}
|
|
153
383
|
/**
|
|
@@ -155,12 +385,20 @@ export class AgentOrchestrator {
|
|
|
155
385
|
* Runs async after construction — custom tools may not be available for the
|
|
156
386
|
* very first message if initialisation is extremely fast, but in practice
|
|
157
387
|
* the first user message arrives well after startup.
|
|
388
|
+
*
|
|
389
|
+
* `userId` is forwarded into `ConnectorManager.buildTools` so per-user MCP
|
|
390
|
+
* OAuth tokens are resolved at tool-build time. Without it the runtime
|
|
391
|
+
* silently falls back to workspace-shared static headers (the deferred
|
|
392
|
+
* gap before 2026-05-13). The agent pool keys agents per-session and
|
|
393
|
+
* supplies the session's userId on creation; CLI / non-interactive
|
|
394
|
+
* spawns pass `undefined` and intentionally land on the workspace
|
|
395
|
+
* fallback.
|
|
158
396
|
*/
|
|
159
|
-
loadCustomToolsAsync(agent) {
|
|
397
|
+
loadCustomToolsAsync(agent, userId) {
|
|
160
398
|
const context = { workspaceManager: this.workspaceManager, gitUser: this.gitUser };
|
|
161
|
-
Promise.all([
|
|
399
|
+
return Promise.all([
|
|
162
400
|
loadCustomTools(this.toolsDirs, context),
|
|
163
|
-
ConnectorManager.buildTools(ConnectorManager.loadConfigs(this.workspacePath)),
|
|
401
|
+
ConnectorManager.buildTools(ConnectorManager.loadConfigs(this.workspacePath), { userId, authService: this.authService }),
|
|
164
402
|
]).then(([customTools, connectorTools]) => {
|
|
165
403
|
const extra = [...customTools];
|
|
166
404
|
if (connectorTools.length > 0) {
|
|
@@ -184,9 +422,13 @@ export class AgentOrchestrator {
|
|
|
184
422
|
merged.push(t);
|
|
185
423
|
}
|
|
186
424
|
if (merged.length !== existing.length) {
|
|
187
|
-
agent.
|
|
425
|
+
agent.state.tools = merged;
|
|
188
426
|
}
|
|
189
427
|
}
|
|
428
|
+
if (process.env.STUDIOGRAPH_VERBOSE === '1') {
|
|
429
|
+
// eslint-disable-next-line no-console
|
|
430
|
+
console.log(`[orchestrator] loadCustomToolsAsync done: customTools=${customTools.length}, connectorTools=${connectorTools.length}, total agent.state.tools=${agent.state.tools.length}`);
|
|
431
|
+
}
|
|
190
432
|
}).catch(err => {
|
|
191
433
|
console.warn('Failed to load custom/connector tools:', err);
|
|
192
434
|
});
|
|
@@ -194,11 +436,11 @@ export class AgentOrchestrator {
|
|
|
194
436
|
/**
|
|
195
437
|
* Build the full system prompt: base prompt + eager skill content + skill index.
|
|
196
438
|
*/
|
|
197
|
-
buildSystemPrompt(skillIndex, tools, recentMemory,
|
|
439
|
+
buildSystemPrompt(skillIndex, tools, recentMemory, graphResolver, promptRepos = this.workspaceManager.getContentRepoConfigs(), userId) {
|
|
198
440
|
const promptPath = join(__dirname, 'prompts', 'system.md');
|
|
199
441
|
let base = existsSync(promptPath)
|
|
200
442
|
? readFileSync(promptPath, 'utf-8')
|
|
201
|
-
: this.getDefaultSystemPrompt();
|
|
443
|
+
: this.getDefaultSystemPrompt(promptRepos);
|
|
202
444
|
// Auto-generate tool reference from registered tools, grouped by category
|
|
203
445
|
const categories = {
|
|
204
446
|
'Entity Management': [],
|
|
@@ -220,8 +462,14 @@ export class AgentOrchestrator {
|
|
|
220
462
|
categories['Operations'].push(t);
|
|
221
463
|
else if (name === 'load_skill')
|
|
222
464
|
categories['Skills'].push(t);
|
|
465
|
+
else if (['create_artifact', 'inspect_artifact'].includes(name))
|
|
466
|
+
(categories['Artifacts'] ??= []).push(t);
|
|
223
467
|
else if (['create_entity', 'get_entity', 'update_entity', 'delete_entity', 'search_entities', 'list_entities', 'get_related', 'get_backlinks', 'validate_wikilinks', 'get_workspace_summary', 'list_repos', 'query_dataset', 'append_rows', 'get_entity_schema', 'lint_entities'].includes(name))
|
|
224
468
|
categories['Entity Management'].push(t);
|
|
469
|
+
else if (['create_folder', 'create_subfolder', 'rename_folder', 'delete_folder', 'list_folders', 'move_entity', 'transfer_entity'].includes(name))
|
|
470
|
+
(categories['Folders'] ??= []).push(t);
|
|
471
|
+
else if (['list_file_history', 'list_folder_history', 'list_recent_deletions', 'read_file_at_commit', 'get_entity_diff', 'restore_file'].includes(name))
|
|
472
|
+
(categories['Git History'] ??= []).push(t);
|
|
225
473
|
else
|
|
226
474
|
categories['Other'].push(t);
|
|
227
475
|
}
|
|
@@ -239,7 +487,7 @@ export class AgentOrchestrator {
|
|
|
239
487
|
const parts = [base.trim()];
|
|
240
488
|
// Inject workspace identity from graph entities (org, team, capabilities, guidelines)
|
|
241
489
|
// Falls back to ABOUT.md if the graph has no organization entries
|
|
242
|
-
const identitySection = this.buildWorkspaceIdentity();
|
|
490
|
+
const identitySection = this.buildWorkspaceIdentity(promptRepos);
|
|
243
491
|
if (identitySection) {
|
|
244
492
|
parts.push(identitySection);
|
|
245
493
|
}
|
|
@@ -257,15 +505,37 @@ export class AgentOrchestrator {
|
|
|
257
505
|
if (schemaSection) {
|
|
258
506
|
parts.push(schemaSection);
|
|
259
507
|
}
|
|
508
|
+
// Inject per-repo subfolder inventory so the agent knows the existing
|
|
509
|
+
// folder layout without calling list_folders for every routing decision.
|
|
510
|
+
// Capped per-repo to keep system prompt size bounded.
|
|
511
|
+
const folderInventory = this.buildFolderInventory(promptRepos);
|
|
512
|
+
if (folderInventory) {
|
|
513
|
+
parts.push(folderInventory);
|
|
514
|
+
}
|
|
260
515
|
// Inject recent memory context (today + yesterday daily memory)
|
|
261
516
|
if (recentMemory) {
|
|
262
517
|
parts.push(`## Memory Context\n\n${recentMemory}`);
|
|
263
518
|
}
|
|
264
|
-
// Inject
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
519
|
+
// Inject current-user identity + bridge so the agent can read its own
|
|
520
|
+
// handle and the linked person entity from the prompt instead of
|
|
521
|
+
// having to call list_users on every turn.
|
|
522
|
+
if (userId) {
|
|
523
|
+
const u = this.authService.findUserById(userId);
|
|
524
|
+
if (u) {
|
|
525
|
+
const ref = findPersonRefForUser(this.workspaceManager, u.handle);
|
|
526
|
+
const lines = [
|
|
527
|
+
`## Current User`,
|
|
528
|
+
``,
|
|
529
|
+
`- Display name: ${u.displayName}`,
|
|
530
|
+
`- Handle: \`${u.handle}\` (use this for created_by/updated_by audit, @mentions, and link_person_to_user)`,
|
|
531
|
+
`- Email: ${u.email}`,
|
|
532
|
+
`- Role: ${u.role}`,
|
|
533
|
+
ref
|
|
534
|
+
? `- Linked person entity: \`[[${ref.entityId}]]\` in \`${ref.repo}\` — when the user refers to themselves, this is their record. Write enrichments here via update_entity; never call link_person_to_user for the current user.`
|
|
535
|
+
: `- Linked person entity: **none.** This account has no person record yet (new/legacy account, or a previously-linked record was deleted). The link is optional but powers their "My Tasks", @mentions, and lets teammates assign tasks to them. If they'd like to link, offer to either (a) find an existing person record that is them and link it (search_entities → link_person_to_user), or (b) create a person entity for them and link it (create_entity → link_person_to_user). You can also point them to Settings → Profile → "Create & link" for a one-click repair. Don't push workspace-wide config changes for this.`,
|
|
536
|
+
];
|
|
537
|
+
parts.push(lines.join('\n'));
|
|
538
|
+
}
|
|
269
539
|
}
|
|
270
540
|
// Inline eager skills directly into the system prompt
|
|
271
541
|
const eagerContent = loadEagerSkills(skillIndex, graphResolver);
|
|
@@ -285,20 +555,23 @@ export class AgentOrchestrator {
|
|
|
285
555
|
* entrypoint. Priority order: user's private folder first, then shared
|
|
286
556
|
* folders alphabetically. First occurrence of a given name wins.
|
|
287
557
|
*/
|
|
288
|
-
|
|
558
|
+
getPromptRepoScope(userId) {
|
|
559
|
+
if (!userId)
|
|
560
|
+
return this.workspaceManager.getAllRepoConfigs();
|
|
561
|
+
const user = this.authService.findUserById(userId);
|
|
562
|
+
if (!user)
|
|
563
|
+
return [];
|
|
564
|
+
return access.getAccessibleRepos(user, this.workspaceManager, this.authService);
|
|
565
|
+
}
|
|
566
|
+
enumerateGraphSkills(accessibleRepos, userId) {
|
|
289
567
|
const skills = [];
|
|
290
568
|
const seen = new Set();
|
|
291
|
-
const
|
|
292
|
-
const
|
|
293
|
-
? new Set(this.authService.getUserFolders(userId))
|
|
294
|
-
: new Set(allRepos.map(r => r.name));
|
|
295
|
-
const privateRepo = userId ? this.workspaceManager.getUserPrivateRepo(userId) : undefined;
|
|
296
|
-
const sortedRepos = [...allRepos]
|
|
297
|
-
.filter(r => accessible.has(r.name))
|
|
569
|
+
const personalRepo = userId ? this.workspaceManager.getUserSeedRepo(userId) : undefined;
|
|
570
|
+
const sortedRepos = [...accessibleRepos]
|
|
298
571
|
.sort((a, b) => {
|
|
299
|
-
if (
|
|
572
|
+
if (personalRepo && a.name === personalRepo.name)
|
|
300
573
|
return -1;
|
|
301
|
-
if (
|
|
574
|
+
if (personalRepo && b.name === personalRepo.name)
|
|
302
575
|
return 1;
|
|
303
576
|
return a.name.localeCompare(b.name);
|
|
304
577
|
});
|
|
@@ -349,9 +622,17 @@ export class AgentOrchestrator {
|
|
|
349
622
|
* to compose a concise identity summary for the system prompt.
|
|
350
623
|
* Returns null if no organization entries exist.
|
|
351
624
|
*/
|
|
352
|
-
buildWorkspaceIdentity() {
|
|
625
|
+
buildWorkspaceIdentity(repos) {
|
|
353
626
|
try {
|
|
354
|
-
const
|
|
627
|
+
const listScoped = (entityType) => repos.flatMap(repo => {
|
|
628
|
+
try {
|
|
629
|
+
return this.workspaceManager.getGraph(repo.name).list(entityType);
|
|
630
|
+
}
|
|
631
|
+
catch {
|
|
632
|
+
return [];
|
|
633
|
+
}
|
|
634
|
+
});
|
|
635
|
+
const orgs = listScoped('organization');
|
|
355
636
|
if (orgs.length === 0)
|
|
356
637
|
return null;
|
|
357
638
|
const lines = ['## Workspace Identity'];
|
|
@@ -367,7 +648,7 @@ export class AgentOrchestrator {
|
|
|
367
648
|
}
|
|
368
649
|
}
|
|
369
650
|
// Team
|
|
370
|
-
const people =
|
|
651
|
+
const people = listScoped('person');
|
|
371
652
|
if (people.length > 0) {
|
|
372
653
|
lines.push('\n### Team');
|
|
373
654
|
for (const person of people.slice(0, 15)) {
|
|
@@ -377,14 +658,19 @@ export class AgentOrchestrator {
|
|
|
377
658
|
lines.push(`- ${name}${role}${location}`);
|
|
378
659
|
}
|
|
379
660
|
}
|
|
380
|
-
//
|
|
381
|
-
const
|
|
382
|
-
if (
|
|
661
|
+
// Services (capabilities + methodologies — replaces former practice areas)
|
|
662
|
+
const services = listScoped('service');
|
|
663
|
+
if (services.length > 0) {
|
|
383
664
|
lines.push('\n### Capabilities');
|
|
384
|
-
|
|
665
|
+
// Top-level services (no `sprint` parent) read as the firm's overall
|
|
666
|
+
// capabilities; nested services are sprint-level details. Surface
|
|
667
|
+
// top-level only here to keep the system prompt compact.
|
|
668
|
+
const topLevel = services.filter(s => !s.data.sprint);
|
|
669
|
+
const list = topLevel.length > 0 ? topLevel : services;
|
|
670
|
+
lines.push(list.map(s => s.data.name || s.id).join(', '));
|
|
385
671
|
}
|
|
386
|
-
// Guidelines (communication style, preferences)
|
|
387
|
-
const guidelines =
|
|
672
|
+
// Guidelines (communication style, preferences) — now document.category=guideline
|
|
673
|
+
const guidelines = listScoped('document').filter(d => d.data.category === 'guideline');
|
|
388
674
|
if (guidelines.length > 0) {
|
|
389
675
|
lines.push('\n### Guidelines');
|
|
390
676
|
for (const g of guidelines.slice(0, 5)) {
|
|
@@ -402,13 +688,62 @@ export class AgentOrchestrator {
|
|
|
402
688
|
return null;
|
|
403
689
|
}
|
|
404
690
|
}
|
|
691
|
+
/**
|
|
692
|
+
* Per-repo subfolder summary for the system prompt. Lists each accessible
|
|
693
|
+
* repo with up to MAX_PER_REPO subfolder paths so the agent can route new
|
|
694
|
+
* entries into existing folders without calling list_folders for every
|
|
695
|
+
* decision. Refresh cadence is per-session (system prompt is built once).
|
|
696
|
+
*/
|
|
697
|
+
buildFolderInventory(repos) {
|
|
698
|
+
const MAX_PER_REPO = 8;
|
|
699
|
+
// System folders (the reserved asset store) are never a place the agent
|
|
700
|
+
// should create entries — keep them out of the folder inventory.
|
|
701
|
+
repos = repos.filter(r => !r.system);
|
|
702
|
+
if (repos.length === 0)
|
|
703
|
+
return null;
|
|
704
|
+
const lines = [];
|
|
705
|
+
for (const repo of repos) {
|
|
706
|
+
let folders = [];
|
|
707
|
+
try {
|
|
708
|
+
folders = this.workspaceManager.getGraph(repo.name).listFolders();
|
|
709
|
+
}
|
|
710
|
+
catch {
|
|
711
|
+
continue;
|
|
712
|
+
}
|
|
713
|
+
const display = repo.display_name || repo.name;
|
|
714
|
+
if (folders.length === 0) {
|
|
715
|
+
lines.push(`- **${display}** (\`${repo.name}\`): no subfolders`);
|
|
716
|
+
}
|
|
717
|
+
else {
|
|
718
|
+
// Render `path` plus an explicit display_name override in quotes when one
|
|
719
|
+
// exists — so the agent can refer to folders by their human label (e.g. in
|
|
720
|
+
// follow-up suggestions) instead of the kebab path. Folders without an
|
|
721
|
+
// override title-case the last segment for display.
|
|
722
|
+
const shown = folders
|
|
723
|
+
.slice(0, MAX_PER_REPO)
|
|
724
|
+
.map(f => (f.display_name ? `\`${f.path}\` ("${f.display_name}")` : `\`${f.path}\``))
|
|
725
|
+
.join(', ');
|
|
726
|
+
const more = folders.length > MAX_PER_REPO ? ` (+${folders.length - MAX_PER_REPO} more)` : '';
|
|
727
|
+
lines.push(`- **${display}** (\`${repo.name}\`): ${shown}${more}`);
|
|
728
|
+
}
|
|
729
|
+
}
|
|
730
|
+
if (lines.length === 0)
|
|
731
|
+
return null;
|
|
732
|
+
return `## Folder Inventory\n\nExisting subfolders per repo. Prefer placing new entries in an existing folder when one fits. Folder paths are repo-relative POSIX; a quoted "Display Name" after a path is that folder's human label.\n\nThe **bold** name is the repo's display name — use it in any text the user sees (e.g. "My Folder"), never the \`slug\` in parentheses. The slug is only for tool calls and URL/wikilink paths.\n\n${lines.join('\n')}`;
|
|
733
|
+
}
|
|
405
734
|
/**
|
|
406
735
|
* Fallback system prompt when prompts/system.md is not found.
|
|
407
736
|
*/
|
|
408
|
-
getDefaultSystemPrompt() {
|
|
409
|
-
const
|
|
410
|
-
|
|
411
|
-
|
|
737
|
+
getDefaultSystemPrompt(promptRepos = this.workspaceManager.getContentRepoConfigs()) {
|
|
738
|
+
const totalEntities = promptRepos.reduce((count, repo) => {
|
|
739
|
+
try {
|
|
740
|
+
return count + this.workspaceManager.getGraph(repo.name).search({}).length;
|
|
741
|
+
}
|
|
742
|
+
catch {
|
|
743
|
+
return count;
|
|
744
|
+
}
|
|
745
|
+
}, 0);
|
|
746
|
+
const repoList = promptRepos
|
|
412
747
|
.map(r => ` - ${r.name} (${r.type}): ${r.description}`)
|
|
413
748
|
.join('\n');
|
|
414
749
|
return `# Studiograph AI Assistant
|
|
@@ -418,8 +753,8 @@ You are Studiograph, an AI assistant helping creative teams manage their knowled
|
|
|
418
753
|
## Workspace
|
|
419
754
|
|
|
420
755
|
**Team:** ${this.config.team_name}
|
|
421
|
-
**Repositories:** ${
|
|
422
|
-
**Total Entities:** ${
|
|
756
|
+
**Repositories:** ${promptRepos.length}
|
|
757
|
+
**Total Entities:** ${totalEntities}
|
|
423
758
|
|
|
424
759
|
**Available Repositories:**
|
|
425
760
|
${repoList}`;
|
|
@@ -438,28 +773,41 @@ ${repoList}`;
|
|
|
438
773
|
onHighlight: this._highlightCallback,
|
|
439
774
|
onMutation: this._mutationCallback,
|
|
440
775
|
};
|
|
776
|
+
// Usage-ledger ownership: this hook records the CLI path. The web SSE route
|
|
777
|
+
// (routes/chat.ts) prompts the agent directly and records its own turns.
|
|
778
|
+
const modelSel = this.getModelSelection();
|
|
441
779
|
return this.pool.withAgent(sessionId, ctx, async (agent) => {
|
|
442
780
|
return new Promise((resolve, reject) => {
|
|
443
781
|
let content = '';
|
|
444
782
|
const toolCalls = [];
|
|
783
|
+
const usage = createInferenceUsageSummary();
|
|
445
784
|
const unsubscribe = agent.subscribe((event) => {
|
|
446
785
|
if (event.type === 'message_end') {
|
|
447
786
|
const msg = event.message;
|
|
448
787
|
if (msg?.role === 'assistant') {
|
|
788
|
+
addInferenceUsage(usage, msg.usage);
|
|
789
|
+
recordAiUsage({
|
|
790
|
+
feature: 'chat',
|
|
791
|
+
provider: msg.provider ?? modelSel.provider,
|
|
792
|
+
modelId: msg.model ?? modelSel.modelId,
|
|
793
|
+
usage: msg.usage,
|
|
794
|
+
userId: this._sessionUserId ?? null,
|
|
795
|
+
sessionId,
|
|
796
|
+
});
|
|
449
797
|
content = msg.content
|
|
450
798
|
.filter((b) => b.type === 'text')
|
|
451
799
|
.map((b) => b.text)
|
|
452
800
|
.join('');
|
|
453
801
|
for (const block of msg.content) {
|
|
454
802
|
if (block.type === 'toolCall') {
|
|
455
|
-
toolCalls.push({ tool: block.name, input: block.input, output: null });
|
|
803
|
+
toolCalls.push({ tool: block.name, input: block.arguments ?? block.input, output: null });
|
|
456
804
|
}
|
|
457
805
|
}
|
|
458
806
|
}
|
|
459
807
|
}
|
|
460
808
|
else if (event.type === 'agent_end') {
|
|
461
809
|
unsubscribe();
|
|
462
|
-
resolve({ content, toolCalls });
|
|
810
|
+
resolve({ content, toolCalls, usage });
|
|
463
811
|
}
|
|
464
812
|
});
|
|
465
813
|
agent.prompt(userMessage).catch((error) => {
|
|
@@ -475,28 +823,41 @@ ${repoList}`;
|
|
|
475
823
|
*/
|
|
476
824
|
async chatInSession(sessionId, userMessage, opts) {
|
|
477
825
|
const ctx = { user: opts?.user ?? null };
|
|
826
|
+
// Usage-ledger ownership: this hook records the non-stream POST /api/chat
|
|
827
|
+
// path. The web SSE route (routes/chat.ts) records its own turns.
|
|
828
|
+
const modelSel = this.getModelSelection();
|
|
478
829
|
return this.pool.withAgent(sessionId, ctx, async (agent) => {
|
|
479
830
|
return new Promise((resolve, reject) => {
|
|
480
831
|
let content = '';
|
|
481
832
|
const toolCalls = [];
|
|
833
|
+
const usage = createInferenceUsageSummary();
|
|
482
834
|
const unsubscribe = agent.subscribe((event) => {
|
|
483
835
|
if (event.type === 'message_end') {
|
|
484
836
|
const msg = event.message;
|
|
485
837
|
if (msg?.role === 'assistant') {
|
|
838
|
+
addInferenceUsage(usage, msg.usage);
|
|
839
|
+
recordAiUsage({
|
|
840
|
+
feature: 'chat',
|
|
841
|
+
provider: msg.provider ?? modelSel.provider,
|
|
842
|
+
modelId: msg.model ?? modelSel.modelId,
|
|
843
|
+
usage: msg.usage,
|
|
844
|
+
userId: opts?.userId ?? opts?.user?.id ?? null,
|
|
845
|
+
sessionId,
|
|
846
|
+
});
|
|
486
847
|
content = msg.content
|
|
487
848
|
.filter((b) => b.type === 'text')
|
|
488
849
|
.map((b) => b.text)
|
|
489
850
|
.join('');
|
|
490
851
|
for (const block of msg.content) {
|
|
491
852
|
if (block.type === 'toolCall') {
|
|
492
|
-
toolCalls.push({ tool: block.name, input: block.input, output: null });
|
|
853
|
+
toolCalls.push({ tool: block.name, input: block.arguments ?? block.input, output: null });
|
|
493
854
|
}
|
|
494
855
|
}
|
|
495
856
|
}
|
|
496
857
|
}
|
|
497
858
|
else if (event.type === 'agent_end') {
|
|
498
859
|
unsubscribe();
|
|
499
|
-
resolve({ content, toolCalls });
|
|
860
|
+
resolve({ content, toolCalls, usage });
|
|
500
861
|
}
|
|
501
862
|
});
|
|
502
863
|
agent.prompt(userMessage).catch((error) => {
|
|
@@ -512,6 +873,117 @@ ${repoList}`;
|
|
|
512
873
|
getWorkspaceManager() {
|
|
513
874
|
return this.workspaceManager;
|
|
514
875
|
}
|
|
876
|
+
getModelSelection() {
|
|
877
|
+
const userConfig = loadUserConfig();
|
|
878
|
+
return {
|
|
879
|
+
provider: resolveProvider(userConfig, this.config),
|
|
880
|
+
modelId: resolveModelId(userConfig, this.config),
|
|
881
|
+
};
|
|
882
|
+
}
|
|
883
|
+
/**
|
|
884
|
+
* The active chat model's context window (max prompt tokens), or null if it
|
|
885
|
+
* can't be resolved. Used by the chat route's reactive overflow detection
|
|
886
|
+
* (isContextOverflow needs the window to catch silent overflow). Mirrors the
|
|
887
|
+
* model resolution in createAgentInstance, including the Credits gateway.
|
|
888
|
+
*/
|
|
889
|
+
getContextWindow() {
|
|
890
|
+
try {
|
|
891
|
+
if (isStudiographCreditsMode()) {
|
|
892
|
+
return studiographCreditsModel().contextWindow ?? null;
|
|
893
|
+
}
|
|
894
|
+
const { provider, modelId } = this.getModelSelection();
|
|
895
|
+
const model = getModel(provider, modelId);
|
|
896
|
+
return model?.contextWindow ?? null;
|
|
897
|
+
}
|
|
898
|
+
catch {
|
|
899
|
+
return null;
|
|
900
|
+
}
|
|
901
|
+
}
|
|
902
|
+
/** Can the active chat model accept image input? Drives the composer's
|
|
903
|
+
* vision-attach affordance (disable + tooltip when false). The Studiograph
|
|
904
|
+
* Credits gateway is vision-capable (A6); otherwise resolve from the model. */
|
|
905
|
+
supportsVision() {
|
|
906
|
+
if (isStudiographCreditsMode())
|
|
907
|
+
return true;
|
|
908
|
+
const { provider, modelId } = this.getModelSelection();
|
|
909
|
+
return supportsVision(provider, modelId);
|
|
910
|
+
}
|
|
911
|
+
/**
|
|
912
|
+
* Delete the agent-pool's persisted state for a chat session — evicts the warm
|
|
913
|
+
* agent + unlinks its on-disk JSON, which holds base64 copies of any vision
|
|
914
|
+
* images the agent saw. Called when a chat is deleted so those copies don't
|
|
915
|
+
* outlive the conversation (composer-vision cleanup). `rawSessionId` is the
|
|
916
|
+
* client session id; the pool keys by the resolved `user:{id}:{raw}` form.
|
|
917
|
+
*/
|
|
918
|
+
deleteChatSessionState(userId, rawSessionId) {
|
|
919
|
+
this.pool.deleteSession(userId, `user:${userId}:${rawSessionId}`);
|
|
920
|
+
}
|
|
921
|
+
/** Delete agent-pool state for ALL of a user's chats (reset / delete-all). */
|
|
922
|
+
deleteAllChatSessionState(userId) {
|
|
923
|
+
this.pool.deleteAllSessions(userId);
|
|
924
|
+
}
|
|
925
|
+
/**
|
|
926
|
+
* One-shot, tool-free model call that names a conversation from its opening
|
|
927
|
+
* exchange (the ChatGPT pattern). Used by POST /api/chat/title after the
|
|
928
|
+
* first assistant reply. Deliberately lightweight: no agent pool, no tools,
|
|
929
|
+
* no system context — just the configured model and a tight instruction.
|
|
930
|
+
*
|
|
931
|
+
* Returns null (caller keeps the truncated first-message title) when there's
|
|
932
|
+
* no usable title, no API key, or we're in Studiograph Credits gateway mode —
|
|
933
|
+
* the gateway routes inference through its own client (cloud-inference-billing),
|
|
934
|
+
* not pi-ai's complete(), so a direct completeSimple() can't reach it. Titles
|
|
935
|
+
* via the gateway are a follow-up if we want them.
|
|
936
|
+
*/
|
|
937
|
+
async generateConversationTitle(firstUserMessage, assistantReply) {
|
|
938
|
+
if (isStudiographCreditsMode())
|
|
939
|
+
return null;
|
|
940
|
+
const userConfig = loadUserConfig();
|
|
941
|
+
const apiKey = resolveApiKey(userConfig, this.config);
|
|
942
|
+
if (!apiKey)
|
|
943
|
+
return null;
|
|
944
|
+
// Title generation is a background utility task — route to the cheap tier.
|
|
945
|
+
const { provider, modelId } = resolveUtilityModelConfig({
|
|
946
|
+
provider: resolveProvider(userConfig, this.config),
|
|
947
|
+
modelId: resolveModelId(userConfig, this.config),
|
|
948
|
+
apiKey,
|
|
949
|
+
});
|
|
950
|
+
const model = getModel(provider, modelId);
|
|
951
|
+
const systemPrompt = 'You name a conversation from its opening exchange. Reply with ONLY the ' +
|
|
952
|
+
'title: 3 to 6 words, Title Case, no surrounding quotes, no trailing ' +
|
|
953
|
+
'punctuation. Describe the topic, not the speaker (e.g. "Cooper Hewitt ' +
|
|
954
|
+
'DEM Sync Notes", not "User Talks About a Meeting").';
|
|
955
|
+
const userText = `First message:\n${firstUserMessage}\n\nAssistant reply:\n${assistantReply}`.slice(0, 2000);
|
|
956
|
+
// No `temperature` — newer models (e.g. claude-opus-4-7) reject it with a
|
|
957
|
+
// 400 "temperature is deprecated for this model". maxTokens is plenty for a
|
|
958
|
+
// few-word title.
|
|
959
|
+
const startedAt = Date.now();
|
|
960
|
+
const result = await completeSimple(model, { systemPrompt, messages: [{ role: 'user', content: userText, timestamp: Date.now() }] }, { apiKey, maxTokens: 32 });
|
|
961
|
+
// Record even when the title comes back empty or errored — tokens were spent.
|
|
962
|
+
recordAiUsage({
|
|
963
|
+
feature: 'title',
|
|
964
|
+
provider,
|
|
965
|
+
modelId,
|
|
966
|
+
usage: result.usage,
|
|
967
|
+
durationMs: Date.now() - startedAt,
|
|
968
|
+
});
|
|
969
|
+
// Surface provider errors (e.g. a rejected option) so the route logs them
|
|
970
|
+
// instead of silently returning null and the client keeping its fallback.
|
|
971
|
+
if (result.stopReason === 'error') {
|
|
972
|
+
throw new Error(result.errorMessage || 'title model call failed');
|
|
973
|
+
}
|
|
974
|
+
const raw = result.content
|
|
975
|
+
.filter((c) => c.type === 'text')
|
|
976
|
+
.map((c) => c.text)
|
|
977
|
+
.join('')
|
|
978
|
+
.trim();
|
|
979
|
+
// Strip wrapping quotes / trailing punctuation the model may add anyway.
|
|
980
|
+
const title = raw.replace(/^["'`]+|["'`]+$/g, '').replace(/[.!?]+$/, '').trim().slice(0, 60);
|
|
981
|
+
if (!title)
|
|
982
|
+
return null;
|
|
983
|
+
const usage = createInferenceUsageSummary();
|
|
984
|
+
addInferenceUsage(usage, result.usage);
|
|
985
|
+
return { title, usage };
|
|
986
|
+
}
|
|
515
987
|
/**
|
|
516
988
|
* Get workspace summary
|
|
517
989
|
*/
|
|
@@ -525,7 +997,7 @@ ${repoList}`;
|
|
|
525
997
|
return this.workspaceManager.getRepoNames();
|
|
526
998
|
}
|
|
527
999
|
/**
|
|
528
|
-
* Set the current authenticated user for per-
|
|
1000
|
+
* Set the current authenticated user for per-folder access filtering.
|
|
529
1001
|
* Called per-request by the chat endpoint. Null = full access (API key / open mode).
|
|
530
1002
|
*/
|
|
531
1003
|
setCurrentUser(user) {
|