agor-live 0.22.0 → 0.23.2
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/dist/cli/commands/admin/add-to-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/add-to-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/add-to-branch-group.js +133 -33
- package/dist/cli/commands/admin/create-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/create-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/create-branch-group.js +132 -38
- package/dist/cli/commands/admin/create-symlink.d.ts +2 -14
- package/dist/cli/commands/admin/create-symlink.d.ts.map +1 -1
- package/dist/cli/commands/admin/create-symlink.js +138 -61
- package/dist/cli/commands/admin/delete-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/delete-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/delete-branch-group.js +132 -28
- package/dist/cli/commands/admin/delete-user.d.ts +2 -13
- package/dist/cli/commands/admin/delete-user.d.ts.map +1 -1
- package/dist/cli/commands/admin/delete-user.js +132 -38
- package/dist/cli/commands/admin/ensure-user.d.ts +2 -14
- package/dist/cli/commands/admin/ensure-user.d.ts.map +1 -1
- package/dist/cli/commands/admin/ensure-user.js +131 -46
- package/dist/cli/commands/admin/remove-from-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/remove-from-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/remove-from-branch-group.js +133 -33
- package/dist/cli/commands/admin/remove-symlink.d.ts +2 -14
- package/dist/cli/commands/admin/remove-symlink.d.ts.map +1 -1
- package/dist/cli/commands/admin/remove-symlink.js +136 -49
- package/dist/cli/commands/admin/scrub-git-remotes.d.ts +2 -2
- package/dist/cli/commands/admin/scrub-git-remotes.d.ts.map +1 -1
- package/dist/cli/commands/admin/scrub-git-remotes.js +128 -86
- package/dist/cli/commands/admin/sync-user-symlinks.d.ts +2 -14
- package/dist/cli/commands/admin/sync-user-symlinks.d.ts.map +1 -1
- package/dist/cli/commands/admin/sync-user-symlinks.js +132 -43
- package/dist/cli/commands/auth/whoami.d.ts.map +1 -1
- package/dist/cli/commands/auth/whoami.js +2 -1
- package/dist/cli/commands/branch/env/request.test.d.ts +2 -0
- package/dist/cli/commands/branch/env/request.test.d.ts.map +1 -0
- package/dist/cli/commands/branch/env/request.test.js +17723 -0
- package/dist/cli/commands/branch/env/restart.d.ts.map +1 -1
- package/dist/cli/commands/branch/env/restart.js +7 -1
- package/dist/cli/commands/branch/env/start.d.ts.map +1 -1
- package/dist/cli/commands/branch/env/start.js +7 -1
- package/dist/cli/commands/branch/env/stop.d.ts.map +1 -1
- package/dist/cli/commands/branch/env/stop.js +7 -1
- package/dist/cli/commands/daemon/status.d.ts.map +1 -1
- package/dist/cli/commands/daemon/status.js +2 -1
- package/dist/cli/commands/init.d.ts +6 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +140 -2
- package/dist/cli/commands/local/add-to-branch-group.d.ts +13 -0
- package/dist/cli/commands/local/add-to-branch-group.d.ts.map +1 -0
- package/dist/cli/commands/local/add-to-branch-group.js +37 -0
- package/dist/cli/commands/local/create-branch-group.d.ts +12 -0
- package/dist/cli/commands/local/create-branch-group.d.ts.map +1 -0
- package/dist/cli/commands/local/create-branch-group.js +35 -0
- package/dist/cli/commands/local/create-symlink.d.ts +14 -0
- package/dist/cli/commands/local/create-symlink.d.ts.map +1 -0
- package/dist/cli/commands/local/create-symlink.js +45 -0
- package/dist/cli/commands/{daemon → local/daemon}/sync.d.ts +1 -1
- package/dist/cli/commands/local/daemon/sync.d.ts.map +1 -0
- package/dist/cli/commands/{daemon → local/daemon}/sync.js +7 -6
- package/dist/cli/commands/local/delete-branch-group.d.ts +12 -0
- package/dist/cli/commands/local/delete-branch-group.d.ts.map +1 -0
- package/dist/cli/commands/local/delete-branch-group.js +35 -0
- package/dist/cli/commands/local/delete-user.d.ts +12 -0
- package/dist/cli/commands/local/delete-user.d.ts.map +1 -0
- package/dist/cli/commands/local/delete-user.js +36 -0
- package/dist/cli/commands/local/ensure-user.d.ts +12 -0
- package/dist/cli/commands/local/ensure-user.d.ts.map +1 -0
- package/dist/cli/commands/local/ensure-user.js +41 -0
- package/dist/cli/commands/local/remove-from-branch-group.d.ts +13 -0
- package/dist/cli/commands/local/remove-from-branch-group.d.ts.map +1 -0
- package/dist/cli/commands/local/remove-from-branch-group.js +37 -0
- package/dist/cli/commands/local/remove-symlink.d.ts +13 -0
- package/dist/cli/commands/local/remove-symlink.d.ts.map +1 -0
- package/dist/cli/commands/local/remove-symlink.js +39 -0
- package/dist/cli/commands/local/scrub-git-remotes.d.ts +9 -0
- package/dist/cli/commands/local/scrub-git-remotes.d.ts.map +1 -0
- package/dist/cli/commands/local/scrub-git-remotes.js +23 -0
- package/dist/cli/commands/{admin → local}/sync-unix.d.ts.map +1 -1
- package/dist/cli/commands/{admin → local}/sync-unix.js +3 -3
- package/dist/cli/commands/local/sync-user-symlinks.d.ts +12 -0
- package/dist/cli/commands/local/sync-user-symlinks.d.ts.map +1 -0
- package/dist/cli/commands/local/sync-user-symlinks.js +37 -0
- package/dist/cli/commands/telemetry/index.d.ts +7 -0
- package/dist/cli/commands/telemetry/index.d.ts.map +1 -0
- package/dist/cli/commands/telemetry/index.js +40 -0
- package/dist/cli/commands/telemetry/off.d.ts +6 -0
- package/dist/cli/commands/telemetry/off.d.ts.map +1 -0
- package/dist/cli/commands/telemetry/off.js +35 -0
- package/dist/cli/commands/telemetry/on.d.ts +6 -0
- package/dist/cli/commands/telemetry/on.d.ts.map +1 -0
- package/dist/cli/commands/telemetry/on.js +37 -0
- package/dist/cli/commands/telemetry/test.d.ts +6 -0
- package/dist/cli/commands/telemetry/test.d.ts.map +1 -0
- package/dist/cli/commands/telemetry/test.js +56 -0
- package/dist/cli/commands/user/create-admin.d.ts.map +1 -1
- package/dist/cli/commands/user/create-admin.js +81 -72
- package/dist/cli/commands/user/list.d.ts.map +1 -1
- package/dist/cli/commands/user/list.js +1 -0
- package/dist/cli/commands/whoami.js +2 -1
- package/dist/cli/lib/branch-environment-action.d.ts +21 -0
- package/dist/cli/lib/branch-environment-action.d.ts.map +1 -0
- package/dist/cli/lib/branch-environment-action.js +8 -0
- package/dist/core/api/index.cjs +7 -2
- package/dist/core/api/index.d.ts +13 -4
- package/dist/core/api/index.d.ts.map +1 -1
- package/dist/core/api/index.js +7 -2
- package/dist/core/claude/index.cjs +518 -89
- package/dist/core/claude/index.js +515 -88
- package/dist/core/claude-cli/index.cjs +24 -0
- package/dist/core/claude-cli/index.js +24 -0
- package/dist/core/claude-cli/pricing.d.ts.map +1 -1
- package/dist/core/client/index.cjs +52 -7
- package/dist/core/client/index.js +48 -7
- package/dist/core/config/browser.cjs +3 -5
- package/dist/core/config/browser.js +3 -5
- package/dist/core/config/config-manager.d.ts +33 -13
- package/dist/core/config/config-manager.d.ts.map +1 -1
- package/dist/core/config/index.cjs +4259 -4527
- package/dist/core/config/index.d.ts +1 -0
- package/dist/core/config/index.d.ts.map +1 -1
- package/dist/core/config/index.js +4295 -4583
- package/dist/core/config/key-resolver.d.ts.map +1 -1
- package/dist/core/config/multitenancy.d.ts +33 -0
- package/dist/core/config/multitenancy.d.ts.map +1 -0
- package/dist/core/config/security-resolver.d.ts +1 -0
- package/dist/core/config/security-resolver.d.ts.map +1 -1
- package/dist/core/config/types.d.ts +67 -4
- package/dist/core/config/types.d.ts.map +1 -1
- package/dist/core/db/client.d.ts +34 -2
- package/dist/core/db/client.d.ts.map +1 -1
- package/dist/core/db/database-wrapper.d.ts.map +1 -1
- package/dist/core/db/first-run-bootstrap.d.ts.map +1 -1
- package/dist/core/db/index.cjs +2767 -1232
- package/dist/core/db/index.d.ts +2 -1
- package/dist/core/db/index.d.ts.map +1 -1
- package/dist/core/db/index.js +2601 -1094
- package/dist/core/db/migrate.d.ts.map +1 -1
- package/dist/core/db/repositories/artifacts.d.ts +27 -2
- package/dist/core/db/repositories/artifacts.d.ts.map +1 -1
- package/dist/core/db/repositories/base.d.ts +18 -0
- package/dist/core/db/repositories/base.d.ts.map +1 -1
- package/dist/core/db/repositories/board-comments.d.ts +17 -1
- package/dist/core/db/repositories/board-comments.d.ts.map +1 -1
- package/dist/core/db/repositories/board-objects.d.ts.map +1 -1
- package/dist/core/db/repositories/boards.d.ts +54 -3
- package/dist/core/db/repositories/boards.d.ts.map +1 -1
- package/dist/core/db/repositories/branch-access.d.ts +32 -0
- package/dist/core/db/repositories/branch-access.d.ts.map +1 -1
- package/dist/core/db/repositories/branches.d.ts +52 -2
- package/dist/core/db/repositories/branches.d.ts.map +1 -1
- package/dist/core/db/repositories/cards.d.ts +15 -1
- package/dist/core/db/repositories/cards.d.ts.map +1 -1
- package/dist/core/db/repositories/gateway-channels.d.ts +9 -0
- package/dist/core/db/repositories/gateway-channels.d.ts.map +1 -1
- package/dist/core/db/repositories/gateway-outbound-messages.d.ts +19 -0
- package/dist/core/db/repositories/gateway-outbound-messages.d.ts.map +1 -0
- package/dist/core/db/repositories/index.d.ts +2 -0
- package/dist/core/db/repositories/index.d.ts.map +1 -1
- package/dist/core/db/repositories/messages.d.ts +9 -2
- package/dist/core/db/repositories/messages.d.ts.map +1 -1
- package/dist/core/db/repositories/repos.d.ts.map +1 -1
- package/dist/core/db/repositories/schedules.d.ts +12 -1
- package/dist/core/db/repositories/schedules.d.ts.map +1 -1
- package/dist/core/db/repositories/sessions.d.ts +56 -5
- package/dist/core/db/repositories/sessions.d.ts.map +1 -1
- package/dist/core/db/repositories/tasks.d.ts +7 -2
- package/dist/core/db/repositories/tasks.d.ts.map +1 -1
- package/dist/core/db/repositories/user-api-keys.d.ts +10 -1
- package/dist/core/db/repositories/user-api-keys.d.ts.map +1 -1
- package/dist/core/db/repositories/users.d.ts +8 -8
- package/dist/core/db/repositories/users.d.ts.map +1 -1
- package/dist/core/db/schema.d.ts +1460 -38
- package/dist/core/db/schema.d.ts.map +1 -1
- package/dist/core/db/schema.postgres.d.ts +1082 -37
- package/dist/core/db/schema.postgres.d.ts.map +1 -1
- package/dist/core/db/schema.sqlite.d.ts +397 -1
- package/dist/core/db/schema.sqlite.d.ts.map +1 -1
- package/dist/core/db/tenant-context.d.ts +26 -0
- package/dist/core/db/tenant-context.d.ts.map +1 -0
- package/dist/core/db/tenant-scope.d.ts +31 -0
- package/dist/core/db/tenant-scope.d.ts.map +1 -0
- package/dist/core/db/user-utils.d.ts +2 -2
- package/dist/core/db/user-utils.d.ts.map +1 -1
- package/dist/core/drizzle/postgres/0052_gateway_outbound_messages.sql +45 -0
- package/dist/core/drizzle/postgres/0053_user_token_invalidation.sql +1 -0
- package/dist/core/drizzle/postgres/0054_app_level_multitenancy.sql +219 -0
- package/dist/core/drizzle/postgres/0055_app_level_multitenancy_rls.sql +411 -0
- package/dist/core/drizzle/postgres/0056_composite_indexes.sql +15 -0
- package/dist/core/drizzle/postgres/0057_message_timestamp_indexes.sql +3 -0
- package/dist/core/drizzle/postgres/meta/_journal.json +42 -0
- package/dist/core/drizzle/sqlite/0061_gateway_outbound_messages.sql +38 -0
- package/dist/core/drizzle/sqlite/0062_user_token_invalidation.sql +1 -0
- package/dist/core/drizzle/sqlite/0063_composite_indexes.sql +10 -0
- package/dist/core/drizzle/sqlite/0064_message_timestamp_indexes.sql +2 -0
- package/dist/core/drizzle/sqlite/meta/_journal.json +28 -0
- package/dist/core/environment/render-snapshot.cjs +7 -6
- package/dist/core/environment/render-snapshot.d.ts +2 -0
- package/dist/core/environment/render-snapshot.d.ts.map +1 -1
- package/dist/core/environment/render-snapshot.js +7 -6
- package/dist/core/environment/variable-resolver.cjs +3 -1
- package/dist/core/environment/variable-resolver.js +3 -1
- package/dist/core/environment/webhook.cjs +1 -4
- package/dist/core/environment/webhook.js +1 -4
- package/dist/core/gateway/connector.d.ts +10 -1
- package/dist/core/gateway/connector.d.ts.map +1 -1
- package/dist/core/gateway/connectors/slack-manifest.cjs +108 -0
- package/dist/core/gateway/connectors/slack-manifest.d.ts +85 -0
- package/dist/core/gateway/connectors/slack-manifest.d.ts.map +1 -0
- package/dist/core/gateway/connectors/slack-manifest.js +81 -0
- package/dist/core/gateway/connectors/slack.d.ts +101 -4
- package/dist/core/gateway/connectors/slack.d.ts.map +1 -1
- package/dist/core/gateway/index.cjs +495 -29
- package/dist/core/gateway/index.d.ts +4 -1
- package/dist/core/gateway/index.d.ts.map +1 -1
- package/dist/core/gateway/index.js +490 -28
- package/dist/core/gateway/system-message.d.ts.map +1 -1
- package/dist/core/git/exec.cjs +24 -0
- package/dist/core/git/exec.d.ts +6 -4
- package/dist/core/git/exec.d.ts.map +1 -1
- package/dist/core/git/exec.js +2 -0
- package/dist/core/git/index.cjs +3 -1363
- package/dist/core/git/index.d.ts +4 -614
- package/dist/core/git/index.d.ts.map +1 -1
- package/dist/core/git/index.js +1 -1304
- package/dist/core/git/pure.cjs +24 -0
- package/dist/core/git/pure.d.ts +2 -27
- package/dist/core/git/pure.d.ts.map +1 -1
- package/dist/core/git/pure.js +2 -0
- package/dist/core/index.cjs +11563 -10832
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +12203 -10962
- package/dist/core/lib/feathers-validation.cjs +9 -1
- package/dist/core/lib/feathers-validation.d.ts +2 -0
- package/dist/core/lib/feathers-validation.d.ts.map +1 -1
- package/dist/core/lib/feathers-validation.js +9 -1
- package/dist/core/local-actions/git-remotes.d.ts +7 -0
- package/dist/core/local-actions/git-remotes.d.ts.map +1 -0
- package/dist/core/local-actions/index.cjs +8008 -0
- package/dist/core/local-actions/index.d.ts +6 -0
- package/dist/core/local-actions/index.d.ts.map +1 -0
- package/dist/core/local-actions/index.js +8010 -0
- package/dist/core/local-actions/symlinks.d.ts +20 -0
- package/dist/core/local-actions/symlinks.d.ts.map +1 -0
- package/dist/core/local-actions/types.d.ts +14 -0
- package/dist/core/local-actions/types.d.ts.map +1 -0
- package/dist/core/local-actions/unix-groups.d.ts +16 -0
- package/dist/core/local-actions/unix-groups.d.ts.map +1 -0
- package/dist/core/local-actions/unix-users.d.ts +12 -0
- package/dist/core/local-actions/unix-users.d.ts.map +1 -0
- package/dist/core/mcp/index.cjs +373 -28
- package/dist/core/mcp/index.d.ts +1 -1
- package/dist/core/mcp/index.d.ts.map +1 -1
- package/dist/core/mcp/index.js +369 -27
- package/dist/core/mcp/template-patterns.d.ts +15 -0
- package/dist/core/mcp/template-patterns.d.ts.map +1 -0
- package/dist/core/mcp/template-resolver.d.ts +13 -0
- package/dist/core/mcp/template-resolver.d.ts.map +1 -1
- package/dist/core/models/browser.cjs +154 -25
- package/dist/core/models/browser.js +150 -25
- package/dist/core/models/claude.d.ts +2 -2
- package/dist/core/models/claude.d.ts.map +1 -1
- package/dist/core/models/codex.d.ts +205 -21
- package/dist/core/models/codex.d.ts.map +1 -1
- package/dist/core/models/index.cjs +154 -25
- package/dist/core/models/index.js +150 -25
- package/dist/core/package.json +24 -0
- package/dist/core/seed/demo-fixtures.d.ts +87 -0
- package/dist/core/seed/demo-fixtures.d.ts.map +1 -0
- package/dist/core/seed/dev-fixtures.d.ts.map +1 -1
- package/dist/core/seed/index.cjs +8569 -5519
- package/dist/core/seed/index.d.ts +1 -0
- package/dist/core/seed/index.d.ts.map +1 -1
- package/dist/core/seed/index.js +8580 -5535
- package/dist/core/sessions/index.cjs +110 -24
- package/dist/core/sessions/index.js +110 -24
- package/dist/core/telemetry/index.cjs +361 -0
- package/dist/core/telemetry/index.d.ts +5 -0
- package/dist/core/telemetry/index.d.ts.map +1 -0
- package/dist/core/telemetry/index.js +315 -0
- package/dist/core/telemetry/logger.d.ts +44 -0
- package/dist/core/telemetry/logger.d.ts.map +1 -0
- package/dist/core/telemetry/model-normalization.d.ts +3 -0
- package/dist/core/telemetry/model-normalization.d.ts.map +1 -0
- package/dist/core/telemetry/types.d.ts +47 -0
- package/dist/core/telemetry/types.d.ts.map +1 -0
- package/dist/core/telemetry/version.d.ts +9 -0
- package/dist/core/telemetry/version.d.ts.map +1 -0
- package/dist/core/templates/agor-system-prompt.md +1 -0
- package/dist/core/templates/handlebars-helpers.cjs +3 -1
- package/dist/core/templates/handlebars-helpers.d.ts +5 -0
- package/dist/core/templates/handlebars-helpers.d.ts.map +1 -1
- package/dist/core/templates/handlebars-helpers.js +3 -1
- package/dist/core/tools/mcp/auth-secrets.cjs +3460 -3
- package/dist/core/tools/mcp/auth-secrets.d.ts.map +1 -1
- package/dist/core/tools/mcp/auth-secrets.js +3477 -3
- package/dist/core/tools/mcp/http-headers.cjs +17 -1
- package/dist/core/tools/mcp/http-headers.d.ts.map +1 -1
- package/dist/core/tools/mcp/http-headers.js +15 -1
- package/dist/core/tools/mcp/oauth-refresh.cjs +568 -114
- package/dist/core/tools/mcp/oauth-refresh.js +566 -115
- package/dist/core/types/board.d.ts +14 -0
- package/dist/core/types/board.d.ts.map +1 -1
- package/dist/core/types/branch.d.ts +13 -0
- package/dist/core/types/branch.d.ts.map +1 -1
- package/dist/core/types/config-services.d.ts.map +1 -1
- package/dist/core/types/feathers.d.ts +6 -0
- package/dist/core/types/feathers.d.ts.map +1 -1
- package/dist/core/types/gateway.d.ts +90 -1
- package/dist/core/types/gateway.d.ts.map +1 -1
- package/dist/core/types/index.cjs +42 -0
- package/dist/core/types/index.d.ts +1 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js +38 -0
- package/dist/core/types/schedule.d.ts +4 -3
- package/dist/core/types/schedule.d.ts.map +1 -1
- package/dist/core/types/session.d.ts +7 -1
- package/dist/core/types/session.d.ts.map +1 -1
- package/dist/core/types/tenant.d.ts +15 -0
- package/dist/core/types/tenant.d.ts.map +1 -0
- package/dist/core/types/user.d.ts +61 -0
- package/dist/core/types/user.d.ts.map +1 -1
- package/dist/core/unix/index.cjs +1123 -674
- package/dist/core/unix/index.js +1071 -624
- package/dist/core/utils/emoji-shortcodes.d.ts +13 -0
- package/dist/core/utils/emoji-shortcodes.d.ts.map +1 -0
- package/dist/core/yaml/index.cjs +8 -8
- package/dist/core/yaml/index.d.ts +1 -1
- package/dist/core/yaml/index.d.ts.map +1 -1
- package/dist/core/yaml/index.js +7 -7
- package/dist/daemon/adapters/drizzle.d.ts +26 -4
- package/dist/daemon/adapters/drizzle.d.ts.map +1 -1
- package/dist/daemon/adapters/drizzle.js +68 -7
- package/dist/daemon/auth/api-key-strategy.js +1 -1
- package/dist/daemon/auth/executor-runtime-scope.d.ts.map +1 -1
- package/dist/daemon/auth/executor-runtime-scope.js +34 -6
- package/dist/daemon/auth/executor-session-token.d.ts +15 -0
- package/dist/daemon/auth/executor-session-token.d.ts.map +1 -0
- package/dist/daemon/auth/executor-session-token.js +17 -0
- package/dist/daemon/auth/issue-browser-tokens-hook.d.ts +24 -0
- package/dist/daemon/auth/issue-browser-tokens-hook.d.ts.map +1 -0
- package/dist/daemon/auth/issue-browser-tokens-hook.js +95 -0
- package/dist/daemon/auth/launch-auth.d.ts +5 -4
- package/dist/daemon/auth/launch-auth.d.ts.map +1 -1
- package/dist/daemon/auth/launch-auth.js +123 -39
- package/dist/daemon/auth/refresh-token-service.d.ts +22 -0
- package/dist/daemon/auth/refresh-token-service.d.ts.map +1 -0
- package/dist/daemon/auth/refresh-token-service.js +133 -0
- package/dist/daemon/auth/runtime-tokens.d.ts +3 -1
- package/dist/daemon/auth/runtime-tokens.d.ts.map +1 -1
- package/dist/daemon/auth/runtime-tokens.js +17 -4
- package/dist/daemon/auth/service-jwt-strategy.d.ts +2 -1
- package/dist/daemon/auth/service-jwt-strategy.d.ts.map +1 -1
- package/dist/daemon/auth/service-jwt-strategy.js +141 -3
- package/dist/daemon/auth/token-invalidation.d.ts +11 -0
- package/dist/daemon/auth/token-invalidation.d.ts.map +1 -0
- package/dist/daemon/auth/token-invalidation.js +38 -0
- package/dist/daemon/auth/user-redaction.d.ts +12 -0
- package/dist/daemon/auth/user-redaction.d.ts.map +1 -0
- package/dist/daemon/auth/user-redaction.js +13 -0
- package/dist/daemon/declarations.d.ts +5 -4
- package/dist/daemon/declarations.d.ts.map +1 -1
- package/dist/daemon/hooks/gateway-route.d.ts.map +1 -1
- package/dist/daemon/hooks/gateway-route.js +23 -13
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +8271 -2956
- package/dist/daemon/knowledge/pgvector.d.ts +3 -3
- package/dist/daemon/knowledge/pgvector.d.ts.map +1 -1
- package/dist/daemon/knowledge/pgvector.js +24 -0
- package/dist/daemon/knowledge/units.d.ts +2 -2
- package/dist/daemon/knowledge/units.d.ts.map +1 -1
- package/dist/daemon/main.js +8271 -2956
- package/dist/daemon/mcp/server.d.ts +3 -3
- package/dist/daemon/mcp/server.d.ts.map +1 -1
- package/dist/daemon/mcp/server.js +1740 -81
- package/dist/daemon/mcp/tokens.d.ts +2 -2
- package/dist/daemon/mcp/tokens.d.ts.map +1 -1
- package/dist/daemon/mcp/tokens.js +5 -1
- package/dist/daemon/mcp/tool-registry.d.ts.map +1 -1
- package/dist/daemon/mcp/tool-registry.js +1 -0
- package/dist/daemon/mcp/tools/analytics.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/analytics.js +598 -24
- package/dist/daemon/mcp/tools/artifacts.js +560 -20
- package/dist/daemon/mcp/tools/boards.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/boards.js +567 -21
- package/dist/daemon/mcp/tools/branches.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/branches.js +624 -50
- package/dist/daemon/mcp/tools/card-types.js +558 -18
- package/dist/daemon/mcp/tools/cards.js +558 -18
- package/dist/daemon/mcp/tools/environment.js +566 -18
- package/dist/daemon/mcp/tools/gateway-channels.d.ts +4 -0
- package/dist/daemon/mcp/tools/gateway-channels.d.ts.map +1 -0
- package/dist/daemon/mcp/tools/gateway-channels.js +16187 -0
- package/dist/daemon/mcp/tools/knowledge.js +558 -18
- package/dist/daemon/mcp/tools/mcp-servers.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/mcp-servers.js +893 -18
- package/dist/daemon/mcp/tools/messages.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/messages.js +618 -32
- package/dist/daemon/mcp/tools/proxies.js +568 -20
- package/dist/daemon/mcp/tools/repos.js +558 -18
- package/dist/daemon/mcp/tools/schedules.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/schedules.js +561 -19
- package/dist/daemon/mcp/tools/search.js +558 -18
- package/dist/daemon/mcp/tools/sessions.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/sessions.js +571 -24
- package/dist/daemon/mcp/tools/tasks.js +558 -18
- package/dist/daemon/mcp/tools/users.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/users.js +577 -23
- package/dist/daemon/mcp/tools/widgets.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/widgets.js +759 -83
- package/dist/daemon/oauth-auth-helpers.d.ts +35 -0
- package/dist/daemon/oauth-auth-helpers.d.ts.map +1 -0
- package/dist/daemon/oauth-auth-helpers.js +14 -0
- package/dist/daemon/register-hooks.d.ts +4 -2
- package/dist/daemon/register-hooks.d.ts.map +1 -1
- package/dist/daemon/register-hooks.js +1158 -595
- package/dist/daemon/register-routes.d.ts +3 -2
- package/dist/daemon/register-routes.d.ts.map +1 -1
- package/dist/daemon/register-routes.js +3161 -812
- package/dist/daemon/register-services.d.ts +2 -2
- package/dist/daemon/register-services.d.ts.map +1 -1
- package/dist/daemon/register-services.js +2782 -739
- package/dist/daemon/services/artifacts.d.ts +34 -6
- package/dist/daemon/services/artifacts.d.ts.map +1 -1
- package/dist/daemon/services/artifacts.js +109 -8
- package/dist/daemon/services/assistant-knowledge.d.ts +2 -2
- package/dist/daemon/services/assistant-knowledge.d.ts.map +1 -1
- package/dist/daemon/services/board-comments.d.ts +8 -5
- package/dist/daemon/services/board-comments.d.ts.map +1 -1
- package/dist/daemon/services/board-comments.js +78 -13
- package/dist/daemon/services/board-objects.d.ts +8 -5
- package/dist/daemon/services/board-objects.d.ts.map +1 -1
- package/dist/daemon/services/board-objects.js +14 -4
- package/dist/daemon/services/boards.d.ts +39 -5
- package/dist/daemon/services/boards.d.ts.map +1 -1
- package/dist/daemon/services/boards.js +123 -8
- package/dist/daemon/services/branch-owners.d.ts +3 -1
- package/dist/daemon/services/branch-owners.d.ts.map +1 -1
- package/dist/daemon/services/branch-owners.js +31 -4
- package/dist/daemon/services/branches.d.ts +31 -8
- package/dist/daemon/services/branches.d.ts.map +1 -1
- package/dist/daemon/services/branches.js +272 -36
- package/dist/daemon/services/card-types.d.ts +3 -3
- package/dist/daemon/services/card-types.d.ts.map +1 -1
- package/dist/daemon/services/card-types.js +68 -7
- package/dist/daemon/services/cards.d.ts +19 -4
- package/dist/daemon/services/cards.d.ts.map +1 -1
- package/dist/daemon/services/cards.js +92 -8
- package/dist/daemon/services/check-auth.d.ts +2 -2
- package/dist/daemon/services/check-auth.d.ts.map +1 -1
- package/dist/daemon/services/claude-cli-integration.d.ts +4 -1
- package/dist/daemon/services/claude-cli-integration.d.ts.map +1 -1
- package/dist/daemon/services/claude-cli-integration.js +117 -65
- package/dist/daemon/services/claude-models.d.ts +3 -3
- package/dist/daemon/services/claude-models.d.ts.map +1 -1
- package/dist/daemon/services/claude-models.js +387 -273
- package/dist/daemon/services/config.d.ts +12 -4
- package/dist/daemon/services/config.d.ts.map +1 -1
- package/dist/daemon/services/config.js +39 -3
- package/dist/daemon/services/copilot-models.d.ts +3 -3
- package/dist/daemon/services/copilot-models.d.ts.map +1 -1
- package/dist/daemon/services/cursor-models.d.ts +3 -3
- package/dist/daemon/services/cursor-models.d.ts.map +1 -1
- package/dist/daemon/services/files.d.ts +3 -3
- package/dist/daemon/services/files.d.ts.map +1 -1
- package/dist/daemon/services/files.js +24 -5
- package/dist/daemon/services/gateway-channels-test.d.ts +24 -0
- package/dist/daemon/services/gateway-channels-test.d.ts.map +1 -0
- package/dist/daemon/services/gateway-channels-test.js +66 -0
- package/dist/daemon/services/gateway-channels.d.ts +3 -3
- package/dist/daemon/services/gateway-channels.d.ts.map +1 -1
- package/dist/daemon/services/gateway-channels.js +68 -7
- package/dist/daemon/services/gateway.d.ts +63 -3
- package/dist/daemon/services/gateway.d.ts.map +1 -1
- package/dist/daemon/services/gateway.js +640 -60
- package/dist/daemon/services/github-app-setup.d.ts +3 -3
- package/dist/daemon/services/github-app-setup.d.ts.map +1 -1
- package/dist/daemon/services/groups.d.ts +5 -5
- package/dist/daemon/services/groups.d.ts.map +1 -1
- package/dist/daemon/services/health-monitor.d.ts +34 -2
- package/dist/daemon/services/health-monitor.d.ts.map +1 -1
- package/dist/daemon/services/health-monitor.js +155 -30
- package/dist/daemon/services/knowledge-document-edits.d.ts +3 -3
- package/dist/daemon/services/knowledge-document-edits.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-documents.d.ts +3 -3
- package/dist/daemon/services/knowledge-documents.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-documents.js +92 -7
- package/dist/daemon/services/knowledge-embedding-indexer.d.ts +7 -2
- package/dist/daemon/services/knowledge-embedding-indexer.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-embedding-indexer.js +37 -3
- package/dist/daemon/services/knowledge-graph.d.ts +3 -3
- package/dist/daemon/services/knowledge-graph.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-indexing.d.ts +3 -3
- package/dist/daemon/services/knowledge-indexing.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-namespaces.d.ts +3 -3
- package/dist/daemon/services/knowledge-namespaces.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-namespaces.js +72 -8
- package/dist/daemon/services/knowledge-reindex.d.ts +3 -3
- package/dist/daemon/services/knowledge-reindex.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-reindex.js +28 -1
- package/dist/daemon/services/knowledge-search.d.ts +3 -3
- package/dist/daemon/services/knowledge-search.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-settings.d.ts +3 -3
- package/dist/daemon/services/knowledge-settings.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-settings.js +24 -0
- package/dist/daemon/services/knowledge-versions.d.ts +3 -3
- package/dist/daemon/services/knowledge-versions.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-versions.js +68 -7
- package/dist/daemon/services/leaderboard.d.ts +14 -6
- package/dist/daemon/services/leaderboard.d.ts.map +1 -1
- package/dist/daemon/services/leaderboard.js +74 -15
- package/dist/daemon/services/local-actions.d.ts +13 -0
- package/dist/daemon/services/local-actions.d.ts.map +1 -0
- package/dist/daemon/services/local-actions.js +120 -0
- package/dist/daemon/services/mcp-servers.d.ts +3 -3
- package/dist/daemon/services/mcp-servers.d.ts.map +1 -1
- package/dist/daemon/services/mcp-servers.js +68 -7
- package/dist/daemon/services/messages.d.ts +10 -6
- package/dist/daemon/services/messages.d.ts.map +1 -1
- package/dist/daemon/services/messages.js +87 -7
- package/dist/daemon/services/repos.d.ts +6 -6
- package/dist/daemon/services/repos.d.ts.map +1 -1
- package/dist/daemon/services/repos.js +131 -32
- package/dist/daemon/services/scheduler.d.ts +23 -27
- package/dist/daemon/services/scheduler.d.ts.map +1 -1
- package/dist/daemon/services/scheduler.js +55 -28
- package/dist/daemon/services/schedules.d.ts +3 -3
- package/dist/daemon/services/schedules.d.ts.map +1 -1
- package/dist/daemon/services/schedules.js +68 -7
- package/dist/daemon/services/session-env-selections.d.ts +3 -3
- package/dist/daemon/services/session-env-selections.d.ts.map +1 -1
- package/dist/daemon/services/session-mcp-servers.d.ts +3 -3
- package/dist/daemon/services/session-mcp-servers.d.ts.map +1 -1
- package/dist/daemon/services/session-streams.d.ts +29 -0
- package/dist/daemon/services/session-streams.d.ts.map +1 -0
- package/dist/daemon/services/session-streams.js +84 -0
- package/dist/daemon/services/session-token-service.d.ts.map +1 -1
- package/dist/daemon/services/session-token-service.js +11 -4
- package/dist/daemon/services/sessions.d.ts +9 -5
- package/dist/daemon/services/sessions.d.ts.map +1 -1
- package/dist/daemon/services/sessions.js +143 -10
- package/dist/daemon/services/tasks.d.ts +11 -5
- package/dist/daemon/services/tasks.d.ts.map +1 -1
- package/dist/daemon/services/tasks.js +199 -39
- package/dist/daemon/services/terminals.d.ts +21 -3
- package/dist/daemon/services/terminals.d.ts.map +1 -1
- package/dist/daemon/services/terminals.js +81 -25
- package/dist/daemon/services/thread-session-map.d.ts +3 -3
- package/dist/daemon/services/thread-session-map.d.ts.map +1 -1
- package/dist/daemon/services/thread-session-map.js +68 -7
- package/dist/daemon/services/user-avatar-sync.d.ts +21 -0
- package/dist/daemon/services/user-avatar-sync.d.ts.map +1 -0
- package/dist/daemon/services/user-avatar-sync.js +267 -0
- package/dist/daemon/services/users.d.ts +29 -9
- package/dist/daemon/services/users.d.ts.map +1 -1
- package/dist/daemon/services/users.js +383 -30
- package/dist/daemon/services/zone-trigger.d.ts.map +1 -1
- package/dist/daemon/services/zone-trigger.js +17 -4
- package/dist/daemon/setup/build-info.d.ts +1 -1
- package/dist/daemon/setup/build-info.d.ts.map +1 -1
- package/dist/daemon/setup/build-info.js +5 -1
- package/dist/daemon/setup/database.d.ts +8 -3
- package/dist/daemon/setup/database.d.ts.map +1 -1
- package/dist/daemon/setup/database.js +26 -6
- package/dist/daemon/setup/first-run-admin.d.ts +2 -2
- package/dist/daemon/setup/first-run-admin.d.ts.map +1 -1
- package/dist/daemon/setup/index.js +137 -25
- package/dist/daemon/setup/socketio.d.ts +10 -1
- package/dist/daemon/setup/socketio.d.ts.map +1 -1
- package/dist/daemon/setup/socketio.js +108 -18
- package/dist/daemon/startup.d.ts +13 -2
- package/dist/daemon/startup.d.ts.map +1 -1
- package/dist/daemon/startup.js +377 -94
- package/dist/daemon/utils/append-system-message.d.ts +2 -2
- package/dist/daemon/utils/append-system-message.d.ts.map +1 -1
- package/dist/daemon/utils/apply-session-config-defaults.d.ts.map +1 -1
- package/dist/daemon/utils/apply-session-config-defaults.js +12 -1
- package/dist/daemon/utils/authorization.d.ts +3 -1
- package/dist/daemon/utils/authorization.d.ts.map +1 -1
- package/dist/daemon/utils/authorization.js +36 -7
- package/dist/daemon/utils/branch-authorization.d.ts +30 -0
- package/dist/daemon/utils/branch-authorization.d.ts.map +1 -1
- package/dist/daemon/utils/branch-authorization.js +63 -5
- package/dist/daemon/utils/branch-inspect.d.ts +1 -0
- package/dist/daemon/utils/branch-inspect.d.ts.map +1 -1
- package/dist/daemon/utils/branch-inspect.js +11 -3
- package/dist/daemon/utils/emit-service-event.d.ts +56 -0
- package/dist/daemon/utils/emit-service-event.d.ts.map +1 -0
- package/dist/daemon/utils/emit-service-event.js +23 -0
- package/dist/daemon/utils/executor-read-impersonation.d.ts +2 -2
- package/dist/daemon/utils/executor-read-impersonation.d.ts.map +1 -1
- package/dist/daemon/utils/git-impersonation.d.ts +10 -10
- package/dist/daemon/utils/git-impersonation.d.ts.map +1 -1
- package/dist/daemon/utils/git-remote-credential-scan.d.ts +3 -3
- package/dist/daemon/utils/git-remote-credential-scan.d.ts.map +1 -1
- package/dist/daemon/utils/git-remote-credential-scan.js +6 -2
- package/dist/daemon/utils/mcp-header-secrets.d.ts +3 -5
- package/dist/daemon/utils/mcp-header-secrets.d.ts.map +1 -1
- package/dist/daemon/utils/mcp-header-secrets.js +31 -2
- package/dist/daemon/utils/mcp-token-authorization.d.ts +18 -13
- package/dist/daemon/utils/mcp-token-authorization.d.ts.map +1 -1
- package/dist/daemon/utils/mcp-token-authorization.js +11 -5
- package/dist/daemon/utils/open-source-telemetry-config.d.ts +6 -0
- package/dist/daemon/utils/open-source-telemetry-config.d.ts.map +1 -0
- package/dist/daemon/utils/open-source-telemetry-config.js +21 -0
- package/dist/daemon/utils/open-source-telemetry-heartbeat.d.ts +7 -0
- package/dist/daemon/utils/open-source-telemetry-heartbeat.d.ts.map +1 -0
- package/dist/daemon/utils/open-source-telemetry-heartbeat.js +15 -0
- package/dist/daemon/utils/open-source-telemetry-usage.d.ts +9 -0
- package/dist/daemon/utils/open-source-telemetry-usage.d.ts.map +1 -0
- package/dist/daemon/utils/open-source-telemetry-usage.js +121 -0
- package/dist/daemon/utils/realign-repo-origin.d.ts +3 -3
- package/dist/daemon/utils/realign-repo-origin.d.ts.map +1 -1
- package/dist/daemon/utils/realign-repo-origin.js +47 -16
- package/dist/daemon/utils/realtime-access-cache.d.ts +9 -0
- package/dist/daemon/utils/realtime-access-cache.d.ts.map +1 -1
- package/dist/daemon/utils/realtime-access-cache.js +24 -0
- package/dist/daemon/utils/realtime-publish.d.ts +26 -0
- package/dist/daemon/utils/realtime-publish.d.ts.map +1 -1
- package/dist/daemon/utils/realtime-publish.js +171 -12
- package/dist/daemon/utils/session-queue-tenant-scope.d.ts +24 -0
- package/dist/daemon/utils/session-queue-tenant-scope.d.ts.map +1 -0
- package/dist/daemon/utils/session-queue-tenant-scope.js +133 -0
- package/dist/daemon/utils/session-state-hooks.d.ts +3 -3
- package/dist/daemon/utils/session-state-hooks.d.ts.map +1 -1
- package/dist/daemon/utils/session-turn-lock.d.ts +8 -1
- package/dist/daemon/utils/session-turn-lock.d.ts.map +1 -1
- package/dist/daemon/utils/session-turn-lock.js +25 -2
- package/dist/daemon/utils/spawn-executor.d.ts +23 -1
- package/dist/daemon/utils/spawn-executor.d.ts.map +1 -1
- package/dist/daemon/utils/spawn-executor.js +34 -4
- package/dist/daemon/utils/tenant-db-scope.d.ts +20 -0
- package/dist/daemon/utils/tenant-db-scope.d.ts.map +1 -0
- package/dist/daemon/utils/tenant-db-scope.js +114 -0
- package/dist/daemon/utils/unix-group-init.d.ts +3 -3
- package/dist/daemon/utils/unix-group-init.d.ts.map +1 -1
- package/dist/daemon/utils/upload.d.ts +6 -9
- package/dist/daemon/utils/upload.d.ts.map +1 -1
- package/dist/daemon/utils/upload.js +30 -37
- package/dist/daemon/widgets/env-vars/index.d.ts +26 -1
- package/dist/daemon/widgets/env-vars/index.d.ts.map +1 -1
- package/dist/daemon/widgets/env-vars/index.js +145 -21
- package/dist/daemon/widgets/gateway-token/index.d.ts +114 -0
- package/dist/daemon/widgets/gateway-token/index.d.ts.map +1 -0
- package/dist/daemon/widgets/gateway-token/index.js +14711 -0
- package/dist/daemon/widgets/index.d.ts.map +1 -1
- package/dist/daemon/widgets/index.js +327 -37
- package/dist/daemon/widgets/registry.d.ts +7 -0
- package/dist/daemon/widgets/registry.d.ts.map +1 -1
- package/dist/daemon/widgets/submissions.js +12 -9
- package/dist/executor/commands/environment.d.ts.map +1 -1
- package/dist/executor/commands/environment.js +9 -5
- package/dist/executor/commands/git.d.ts.map +1 -1
- package/dist/executor/commands/git.js +3 -1
- package/dist/executor/db/feathers-repositories.d.ts +19 -1
- package/dist/executor/db/feathers-repositories.d.ts.map +1 -1
- package/dist/executor/db/feathers-repositories.js +31 -1
- package/dist/executor/git/index.d.ts +8 -0
- package/dist/executor/git/index.d.ts.map +1 -0
- package/dist/executor/git/index.js +7 -0
- package/dist/executor/handlers/sdk/base-executor.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/base-executor.js +4 -1
- package/dist/executor/handlers/sdk/claude.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/claude.js +1 -1
- package/dist/executor/handlers/sdk/codex.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/codex.js +1 -1
- package/dist/executor/handlers/sdk/copilot.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/copilot.js +1 -1
- package/dist/executor/handlers/sdk/cursor.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/cursor.js +1 -0
- package/dist/executor/handlers/sdk/gemini.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/gemini.js +1 -1
- package/dist/executor/handlers/sdk/git-safe-directory.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/git-safe-directory.js +1 -1
- package/dist/executor/handlers/sdk/opencode.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/opencode.js +1 -1
- package/dist/executor/payload-types.d.ts +5 -5
- package/dist/executor/sdk-handlers/base/diff-enrichment.js +1 -1
- package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts +8 -1
- package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/base/mcp-scoping.js +58 -6
- package/dist/executor/sdk-handlers/claude/claude-tool.d.ts +2 -2
- package/dist/executor/sdk-handlers/claude/claude-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/claude-tool.js +2 -2
- package/dist/executor/sdk-handlers/claude/prompt-service.d.ts +13 -3
- package/dist/executor/sdk-handlers/claude/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/prompt-service.js +16 -3
- package/dist/executor/sdk-handlers/claude/query-builder.d.ts +2 -1
- package/dist/executor/sdk-handlers/claude/query-builder.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/query-builder.js +2 -1
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +8 -12
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/codex-tool.js +14 -17
- package/dist/executor/sdk-handlers/codex/normalizer.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/normalizer.js +11 -1
- package/dist/executor/sdk-handlers/codex/pricing/litellm-openai-model-prices.json +3663 -0
- package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.d.ts +31 -0
- package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.d.ts.map +1 -0
- package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.js +46 -0
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts +3 -2
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/prompt-service.js +131 -12
- package/dist/executor/sdk-handlers/codex/usage.d.ts +14 -23
- package/dist/executor/sdk-handlers/codex/usage.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/usage.js +18 -33
- package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts +2 -2
- package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/copilot/copilot-tool.js +2 -2
- package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts +3 -2
- package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/copilot/prompt-service.js +4 -1
- package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts +2 -2
- package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/gemini/gemini-tool.js +2 -2
- package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts +3 -2
- package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/gemini/prompt-service.js +4 -1
- package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts +3 -2
- package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/opencode/opencode-tool.js +4 -1
- package/dist/executor/services/feathers-client.d.ts.map +1 -1
- package/dist/executor/services/feathers-client.js +124 -25
- package/dist/git/index.cjs +1101 -0
- package/dist/git/index.d.ts +533 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +1022 -0
- package/dist/git/package.json +21 -0
- package/dist/git/pure.cjs +185 -0
- package/dist/git/pure.d.ts +39 -0
- package/dist/git/pure.d.ts.map +1 -0
- package/dist/git/pure.js +139 -0
- package/dist/ui/assets/AgorEmojiPickerInner-leeNywMc.js +1 -0
- package/dist/ui/assets/App-Dpl4Cc0U.js +4 -0
- package/dist/ui/assets/App-Dpl4Cc0U.js.gz +0 -0
- package/dist/ui/assets/AppNode-wN3UZlFK.js +1 -0
- package/dist/ui/assets/AppNode-wN3UZlFK.js.gz +0 -0
- package/dist/ui/assets/ArtifactConsentModal-DjzXcP_L.js +1 -0
- package/dist/ui/assets/ArtifactConsentModal-DjzXcP_L.js.gz +0 -0
- package/dist/ui/assets/ArtifactFullscreenPage-B3b_EZ0F.js +9 -0
- package/dist/ui/assets/ArtifactFullscreenPage-B3b_EZ0F.js.gz +0 -0
- package/dist/ui/assets/ArtifactNode-DISy2T-6.js +9 -0
- package/dist/ui/assets/ArtifactNode-DISy2T-6.js.gz +0 -0
- package/dist/ui/assets/AutocompleteTextarea-DUpsoEGr.js +19 -0
- package/dist/ui/assets/AutocompleteTextarea-DUpsoEGr.js.gz +0 -0
- package/dist/ui/assets/BoardObjectNodes-BakeGpIX.js +34 -0
- package/dist/ui/assets/BoardObjectNodes-BakeGpIX.js.gz +0 -0
- package/dist/ui/assets/CodeEditor.inner-HmSdTLW5.js +7 -0
- package/dist/ui/assets/CodeEditor.inner-HmSdTLW5.js.gz +0 -0
- package/dist/ui/assets/ConversationView-mWaA-B1f.js +1 -0
- package/dist/ui/assets/ConversationView-mWaA-B1f.js.gz +0 -0
- package/dist/ui/assets/EmbeddedTerminal-NNoyPA81.js +2 -0
- package/dist/ui/assets/EmbeddedTerminal-NNoyPA81.js.gz +0 -0
- package/dist/ui/assets/KnowledgePage-CkxVnRvz.js +24 -0
- package/dist/ui/assets/KnowledgePage-CkxVnRvz.js.gz +0 -0
- package/dist/ui/assets/{MarketingScreenshotPage-zv5RUCuV.js → MarketingScreenshotPage-B86Gs8jx.js} +2 -2
- package/dist/ui/assets/MarketingScreenshotPage-B86Gs8jx.js.gz +0 -0
- package/dist/ui/assets/MobileApp-BPs-SXvz.js +1 -0
- package/dist/ui/assets/MobileApp-BPs-SXvz.js.gz +0 -0
- package/dist/ui/assets/{SessionCanvas-mEmYGZhC.css → SessionCanvas-Bh7Yg5dZ.css} +1 -1
- package/dist/ui/assets/SessionCanvas-Bh7Yg5dZ.css.gz +0 -0
- package/dist/ui/assets/SessionCanvas-xVfDoEtz.js +13 -0
- package/dist/ui/assets/SessionCanvas-xVfDoEtz.js.gz +0 -0
- package/dist/ui/assets/{StreamdownDemoPage-wzWaqWwr.js → StreamdownDemoPage-CvWLzVsv.js} +2 -2
- package/dist/ui/assets/StreamdownDemoPage-CvWLzVsv.js.gz +0 -0
- package/dist/ui/assets/TerminalModal-ExOgsuOP.js +2 -0
- package/dist/ui/assets/TerminalModal-ExOgsuOP.js.gz +0 -0
- package/dist/ui/assets/ThemeSwitcher-Cgyp5ruu.js +1 -0
- package/dist/ui/assets/ThemeSwitcher-Cgyp5ruu.js.gz +0 -0
- package/dist/ui/assets/ThemedSyntaxHighlighter.inner-rpCN9S6K.js +1 -0
- package/dist/ui/assets/{antd-CfbbHJOz.js → antd-BCqimh1J.js} +5 -5
- package/dist/ui/assets/{antd-CfbbHJOz.js.gz → antd-BCqimh1J.js.gz} +0 -0
- package/dist/ui/assets/architecture-U656AL7Q-BxSQIjrE.js +1 -0
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-pDpGHSqT.js +36 -0
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-pDpGHSqT.js.gz +0 -0
- package/dist/ui/assets/{blockDiagram-VD42YOAC-BhZaEN19.js → blockDiagram-VD42YOAC-uP8JTJpK.js} +4 -4
- package/dist/ui/assets/blockDiagram-VD42YOAC-uP8JTJpK.js.gz +0 -0
- package/dist/ui/assets/{c4Diagram-YG6GDRKO-Dk_UH-sY.js → c4Diagram-YG6GDRKO-qQe72Mm7.js} +2 -2
- package/dist/ui/assets/c4Diagram-YG6GDRKO-qQe72Mm7.js.gz +0 -0
- package/dist/ui/assets/channel-CoUBs6Zn.js +1 -0
- package/dist/ui/assets/{chunk-4BX2VUAB-XprbG2TG.js → chunk-4BX2VUAB-sz-YE8Nt.js} +1 -1
- package/dist/ui/assets/chunk-4ZMWKKQ3-3oKtfWXp.js +3 -0
- package/dist/ui/assets/chunk-4ZMWKKQ3-3oKtfWXp.js.gz +0 -0
- package/dist/ui/assets/chunk-55IACEB6-BS04dgKF.js +1 -0
- package/dist/ui/assets/{chunk-ABZYJK2D-BJcrryHK.js → chunk-ABZYJK2D-t3Gkphds.js} +3 -3
- package/dist/ui/assets/chunk-ABZYJK2D-t3Gkphds.js.gz +0 -0
- package/dist/ui/assets/{chunk-AGHRB4JF-DvxmfbM0.js → chunk-AGHRB4JF-D_QmWxbY.js} +1 -1
- package/dist/ui/assets/chunk-AGHRB4JF-D_QmWxbY.js.gz +0 -0
- package/dist/ui/assets/{chunk-ATLVNIR6-DbeJ0OrR.js → chunk-ATLVNIR6-Bmg7-Ufz.js} +1 -1
- package/dist/ui/assets/chunk-ATLVNIR6-Bmg7-Ufz.js.gz +0 -0
- package/dist/ui/assets/{chunk-B4BG7PRW-C53q2ggf.js → chunk-B4BG7PRW-dnSEE1u-.js} +3 -3
- package/dist/ui/assets/chunk-B4BG7PRW-dnSEE1u-.js.gz +0 -0
- package/dist/ui/assets/{chunk-CVBHYZKI-B3EBSlb3.js → chunk-CVBHYZKI-BStaYnF0.js} +1 -1
- package/dist/ui/assets/{chunk-DI55MBZ5-vIyNEQN-.js → chunk-DI55MBZ5-28dvx6o3.js} +1 -1
- package/dist/ui/assets/chunk-DI55MBZ5-28dvx6o3.js.gz +0 -0
- package/dist/ui/assets/chunk-EXTU4WIE-X-FURkEh.js +1 -0
- package/dist/ui/assets/{chunk-FMBD7UC4-rddmfK-Z.js → chunk-FMBD7UC4-C_63gC9S.js} +1 -1
- package/dist/ui/assets/{chunk-HN2XXSSU-Dttqcg3b.js → chunk-HN2XXSSU-UFD374KI.js} +1 -1
- package/dist/ui/assets/chunk-HN2XXSSU-UFD374KI.js.gz +0 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-B60hLNeR.js +11 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-B60hLNeR.js.gz +0 -0
- package/dist/ui/assets/{chunk-JZLCHNYA-EUmx2y4H.js → chunk-JZLCHNYA-ButC6pwN.js} +5 -5
- package/dist/ui/assets/chunk-JZLCHNYA-ButC6pwN.js.gz +0 -0
- package/dist/ui/assets/{chunk-MI3HLSF2-65n9Mkyc.js → chunk-MI3HLSF2-BivYzoSV.js} +1 -1
- package/dist/ui/assets/chunk-MI3HLSF2-BivYzoSV.js.gz +0 -0
- package/dist/ui/assets/chunk-N4CR4FBY-mVWzo5wJ.js +2 -0
- package/dist/ui/assets/chunk-N4CR4FBY-mVWzo5wJ.js.gz +0 -0
- package/dist/ui/assets/{chunk-QN33PNHL-DsRKK6NR.js → chunk-QN33PNHL-tXtHZpaG.js} +1 -1
- package/dist/ui/assets/{chunk-QXUST7PY-BCYnMiS3.js → chunk-QXUST7PY-DATib_Vv.js} +2 -2
- package/dist/ui/assets/chunk-QXUST7PY-DATib_Vv.js.gz +0 -0
- package/dist/ui/assets/chunk-QZHKN3VN-y6l249e5.js +1 -0
- package/dist/ui/assets/chunk-S3R3BYOJ-BEtfmflI.js +2 -0
- package/dist/ui/assets/chunk-S3R3BYOJ-BEtfmflI.js.gz +0 -0
- package/dist/ui/assets/{chunk-TZMSLE5B-BuQUQcTr.js → chunk-TZMSLE5B-BY1ZtogK.js} +1 -1
- package/dist/ui/assets/chunk-TZMSLE5B-BY1ZtogK.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-BYvq-uPY.js +1 -0
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-BYvq-uPY.js +1 -0
- package/dist/ui/assets/constants-CYzQKfD1.js +1 -0
- package/dist/ui/assets/{cose-bilkent-S5V4N54A-CnPB3ARO.js → cose-bilkent-S5V4N54A-DPvYrqGG.js} +1 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-DPvYrqGG.js.gz +0 -0
- package/dist/ui/assets/{dagre-6UL2VRFP-DhS-k_Se.js → dagre-6UL2VRFP-D800J6qb.js} +1 -1
- package/dist/ui/assets/dagre-6UL2VRFP-D800J6qb.js.gz +0 -0
- package/dist/ui/assets/{dagre-KgLoHEuy.js → dagre-TNc4wezg.js} +1 -1
- package/dist/ui/assets/dagre-TNc4wezg.js.gz +0 -0
- package/dist/ui/assets/diagram-PSM6KHXK-CGdP9F-X.js +24 -0
- package/dist/ui/assets/diagram-PSM6KHXK-CGdP9F-X.js.gz +0 -0
- package/dist/ui/assets/{diagram-QEK2KX5R-BPCitvbo.js → diagram-QEK2KX5R-BD5lOCe5.js} +1 -1
- package/dist/ui/assets/diagram-QEK2KX5R-BD5lOCe5.js.gz +0 -0
- package/dist/ui/assets/{diagram-S2PKOQOG-NW4uK6sx.js → diagram-S2PKOQOG-cp3l22vN.js} +1 -1
- package/dist/ui/assets/diagram-S2PKOQOG-cp3l22vN.js.gz +0 -0
- package/dist/ui/assets/editor-Cr0W5BQI.js +39 -0
- package/dist/ui/assets/editor-Cr0W5BQI.js.gz +0 -0
- package/dist/ui/assets/emoji-Bv3m24sO.js +3 -0
- package/dist/ui/assets/emoji-Bv3m24sO.js.gz +0 -0
- package/dist/ui/assets/{erDiagram-Q2GNP2WA-me1fboaf.js → erDiagram-Q2GNP2WA-CQSXRgqr.js} +2 -2
- package/dist/ui/assets/erDiagram-Q2GNP2WA-CQSXRgqr.js.gz +0 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-CKcKpkph.js +162 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-CKcKpkph.js.gz +0 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-DlAHzXO5.js +267 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-DlAHzXO5.js.gz +0 -0
- package/dist/ui/assets/{gitGraph-F6HP7TQM-CfFE_uAC.js → gitGraph-F6HP7TQM-DeuXy4B1.js} +1 -1
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-aB-AI4Vq.js +65 -0
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-aB-AI4Vq.js.gz +0 -0
- package/dist/ui/assets/index-B-qHc0o5.js +63 -0
- package/dist/ui/assets/index-B-qHc0o5.js.gz +0 -0
- package/dist/ui/assets/{index-DxuPq13l.css → index-qkT7Qqm2.css} +1 -1
- package/dist/ui/assets/index-qkT7Qqm2.css.gz +0 -0
- package/dist/ui/assets/{info-NVLQJR56-i_xHYg3f.js → info-NVLQJR56-B9PG7xsc.js} +1 -1
- package/dist/ui/assets/{infoDiagram-ER5ION4S-2NL93b78.js → infoDiagram-ER5ION4S-C5Wpoqim.js} +1 -1
- package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-CZF-2DHU.js → journeyDiagram-XKPGCS4Q-CHLziqfS.js} +3 -3
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CHLziqfS.js.gz +0 -0
- package/dist/ui/assets/{kanban-definition-3W4ZIXB7-CfvJIOny.js → kanban-definition-3W4ZIXB7-Dq7GzQE_.js} +1 -1
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-Dq7GzQE_.js.gz +0 -0
- package/dist/ui/assets/{line-DDv8kOJk.js → line-DHKNg83I.js} +1 -1
- package/dist/ui/assets/{linear-Daef-l29.js → linear-BvUfn0I8.js} +1 -1
- package/dist/ui/assets/linear-BvUfn0I8.js.gz +0 -0
- package/dist/ui/assets/{mermaid-parser.core-CdK9QgYV.js → mermaid-parser.core-C6d9tKoo.js} +2 -2
- package/dist/ui/assets/mermaid-parser.core-C6d9tKoo.js.gz +0 -0
- package/dist/ui/assets/mermaid.core-CxE5KezR.js +11 -0
- package/dist/ui/assets/mermaid.core-CxE5KezR.js.gz +0 -0
- package/dist/ui/assets/{mindmap-definition-VGOIOE7T-Cb3QMflX.js → mindmap-definition-VGOIOE7T-DmPoQ48w.js} +1 -1
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-DmPoQ48w.js.gz +0 -0
- package/dist/ui/assets/{packet-BFZMPI3H-Bm2uwz4i.js → packet-BFZMPI3H-JZEkVZxU.js} +1 -1
- package/dist/ui/assets/{particles-DsJFOarW.js → particles-CxMmUw86.js} +1 -1
- package/dist/ui/assets/particles-CxMmUw86.js.gz +0 -0
- package/dist/ui/assets/{pie-7BOR55EZ-5i17tVnF.js → pie-7BOR55EZ-_1II5pYQ.js} +1 -1
- package/dist/ui/assets/{pieDiagram-ADFJNKIX-BxIwQWvw.js → pieDiagram-ADFJNKIX-DrNkH33i.js} +1 -1
- package/dist/ui/assets/pieDiagram-ADFJNKIX-DrNkH33i.js.gz +0 -0
- package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-B5HPe4ga.js → quadrantDiagram-AYHSOK5B-DOpC-HEF.js} +3 -3
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-DOpC-HEF.js.gz +0 -0
- package/dist/ui/assets/{radar-NHE76QYJ-BTn-tq0k.js → radar-NHE76QYJ-DDmqhzEZ.js} +1 -1
- package/dist/ui/assets/reactflow-D98uPOMq.js +2 -0
- package/dist/ui/assets/reactflow-D98uPOMq.js.gz +0 -0
- package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-YfI6llkX.js → requirementDiagram-UZGBJVZJ-Bzx0iEPP.js} +1 -1
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-Bzx0iEPP.js.gz +0 -0
- package/dist/ui/assets/{sandpack-D7koO5op.js → sandpack-059Z4UWP.js} +38 -38
- package/dist/ui/assets/sandpack-059Z4UWP.js.gz +0 -0
- package/dist/ui/assets/sandpackDefaults-CPMNDsw7.js +1 -0
- package/dist/ui/assets/sandpackDefaults-CPMNDsw7.js.gz +0 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-Do9pvfDv.js +10 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-Do9pvfDv.js.gz +0 -0
- package/dist/ui/assets/{sequenceDiagram-WL72ISMW-DAe4Um17.js → sequenceDiagram-WL72ISMW-CN8neUTA.js} +6 -6
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-CN8neUTA.js.gz +0 -0
- package/dist/ui/assets/src-DEbsv3pp.js +34 -0
- package/dist/ui/assets/src-DEbsv3pp.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BluWJi8n.js +1 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BluWJi8n.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-DeyqBMDR.js +1 -0
- package/dist/ui/assets/streamdown-BT1twtFc.js +521 -0
- package/dist/ui/assets/streamdown-BT1twtFc.js.gz +0 -0
- package/dist/ui/assets/syntax-CBu6nLfm.js +9 -0
- package/dist/ui/assets/syntax-CBu6nLfm.js.gz +0 -0
- package/dist/ui/assets/{timeline-definition-IT6M3QCI-D6P5txjT.js → timeline-definition-IT6M3QCI-WdUNkiRj.js} +16 -16
- package/dist/ui/assets/timeline-definition-IT6M3QCI-WdUNkiRj.js.gz +0 -0
- package/dist/ui/assets/{treemap-KMMF4GRG-Bitm3gy4.js → treemap-KMMF4GRG-CoriU4Jl.js} +1 -1
- package/dist/ui/assets/{useUserLocalStorage-Ckb8HsIw.js → useUserLocalStorage-GidNiOPC.js} +1 -1
- package/dist/ui/assets/useUserLocalStorage-GidNiOPC.js.gz +0 -0
- package/dist/ui/assets/{xychartDiagram-PRI3JC2R-CsybjUbd.js → xychartDiagram-PRI3JC2R-CgBAKNt2.js} +1 -1
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-CgBAKNt2.js.gz +0 -0
- package/dist/ui/index.html +11 -11
- package/dist/ui/index.html.gz +0 -0
- package/package.json +6 -5
- package/scripts/postinstall.js +27 -19
- package/dist/cli/commands/daemon/sync.d.ts.map +0 -1
- package/dist/ui/assets/App-DcEY8Ota.js +0 -3
- package/dist/ui/assets/App-DcEY8Ota.js.gz +0 -0
- package/dist/ui/assets/ArtifactConsentModal-CiCbK9iv.js +0 -1
- package/dist/ui/assets/ArtifactConsentModal-CiCbK9iv.js.gz +0 -0
- package/dist/ui/assets/ArtifactFullscreenPage-CfsTEGKd.js +0 -9
- package/dist/ui/assets/ArtifactFullscreenPage-CfsTEGKd.js.gz +0 -0
- package/dist/ui/assets/AutocompleteTextarea-BAFFH_5e.js +0 -18
- package/dist/ui/assets/AutocompleteTextarea-BAFFH_5e.js.gz +0 -0
- package/dist/ui/assets/BoardObjectNodes-D-O6bZIG.js +0 -34
- package/dist/ui/assets/BoardObjectNodes-D-O6bZIG.js.gz +0 -0
- package/dist/ui/assets/CodeEditor.inner-DBgsP4tn.js +0 -8
- package/dist/ui/assets/CodeEditor.inner-DBgsP4tn.js.gz +0 -0
- package/dist/ui/assets/ConversationView-CUWR0gR6.js +0 -1
- package/dist/ui/assets/ConversationView-CUWR0gR6.js.gz +0 -0
- package/dist/ui/assets/KnowledgePage-B2bzlXfn.js +0 -24
- package/dist/ui/assets/KnowledgePage-B2bzlXfn.js.gz +0 -0
- package/dist/ui/assets/MarketingScreenshotPage-zv5RUCuV.js.gz +0 -0
- package/dist/ui/assets/MobileApp-VgVnsnsN.js +0 -1
- package/dist/ui/assets/MobileApp-VgVnsnsN.js.gz +0 -0
- package/dist/ui/assets/SessionCanvas-f1-1Gbcw.js +0 -20
- package/dist/ui/assets/SessionCanvas-f1-1Gbcw.js.gz +0 -0
- package/dist/ui/assets/SessionCanvas-mEmYGZhC.css.gz +0 -0
- package/dist/ui/assets/StreamdownDemoPage-wzWaqWwr.js.gz +0 -0
- package/dist/ui/assets/ThemeSwitcher-Dly2y9pi.js +0 -1
- package/dist/ui/assets/ThemeSwitcher-Dly2y9pi.js.gz +0 -0
- package/dist/ui/assets/architecture-U656AL7Q-CykGFbQU.js +0 -1
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-C8HXAenz.js +0 -36
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-C8HXAenz.js.gz +0 -0
- package/dist/ui/assets/blockDiagram-VD42YOAC-BhZaEN19.js.gz +0 -0
- package/dist/ui/assets/c4Diagram-YG6GDRKO-Dk_UH-sY.js.gz +0 -0
- package/dist/ui/assets/channel-D6_nUWlW.js +0 -1
- package/dist/ui/assets/chunk-55IACEB6-ByzqIgSb.js +0 -1
- package/dist/ui/assets/chunk-ABZYJK2D-BJcrryHK.js.gz +0 -0
- package/dist/ui/assets/chunk-AGHRB4JF-DvxmfbM0.js.gz +0 -0
- package/dist/ui/assets/chunk-ATLVNIR6-DbeJ0OrR.js.gz +0 -0
- package/dist/ui/assets/chunk-B4BG7PRW-C53q2ggf.js.gz +0 -0
- package/dist/ui/assets/chunk-DI55MBZ5-vIyNEQN-.js.gz +0 -0
- package/dist/ui/assets/chunk-EXTU4WIE-B3ObkuOm.js +0 -1
- package/dist/ui/assets/chunk-HN2XXSSU-Dttqcg3b.js.gz +0 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-DbNDev3D.js +0 -11
- package/dist/ui/assets/chunk-JA3XYJ7Z-DbNDev3D.js.gz +0 -0
- package/dist/ui/assets/chunk-JZLCHNYA-EUmx2y4H.js.gz +0 -0
- package/dist/ui/assets/chunk-MI3HLSF2-65n9Mkyc.js.gz +0 -0
- package/dist/ui/assets/chunk-N4CR4FBY-mv5koXqW.js +0 -2
- package/dist/ui/assets/chunk-N4CR4FBY-mv5koXqW.js.gz +0 -0
- package/dist/ui/assets/chunk-QXUST7PY-BCYnMiS3.js.gz +0 -0
- package/dist/ui/assets/chunk-QZHKN3VN-HucAw4xW.js +0 -1
- package/dist/ui/assets/chunk-S3R3BYOJ-CWMEa9Dc.js +0 -2
- package/dist/ui/assets/chunk-S3R3BYOJ-CWMEa9Dc.js.gz +0 -0
- package/dist/ui/assets/chunk-TZMSLE5B-BuQUQcTr.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-CUT3rPTB.js +0 -1
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-CUT3rPTB.js +0 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-CnPB3ARO.js.gz +0 -0
- package/dist/ui/assets/dagre-6UL2VRFP-DhS-k_Se.js.gz +0 -0
- package/dist/ui/assets/dagre-KgLoHEuy.js.gz +0 -0
- package/dist/ui/assets/diagram-PSM6KHXK-BZg3MJmb.js +0 -24
- package/dist/ui/assets/diagram-PSM6KHXK-BZg3MJmb.js.gz +0 -0
- package/dist/ui/assets/diagram-QEK2KX5R-BPCitvbo.js.gz +0 -0
- package/dist/ui/assets/diagram-S2PKOQOG-NW4uK6sx.js.gz +0 -0
- package/dist/ui/assets/editor-CzFWIUw2.js +0 -39
- package/dist/ui/assets/editor-CzFWIUw2.js.gz +0 -0
- package/dist/ui/assets/emoji-Dkz4Zzv_.js +0 -3
- package/dist/ui/assets/emoji-Dkz4Zzv_.js.gz +0 -0
- package/dist/ui/assets/erDiagram-Q2GNP2WA-me1fboaf.js.gz +0 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-DzE8dGsh.js +0 -162
- package/dist/ui/assets/flowDiagram-NV44I4VS-DzE8dGsh.js.gz +0 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-CFQD09Mi.js +0 -267
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-CFQD09Mi.js.gz +0 -0
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CaVoxU4C.js +0 -65
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CaVoxU4C.js.gz +0 -0
- package/dist/ui/assets/index-BN5_Qq7R.js +0 -324
- package/dist/ui/assets/index-BN5_Qq7R.js.gz +0 -0
- package/dist/ui/assets/index-DxuPq13l.css.gz +0 -0
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CZF-2DHU.js.gz +0 -0
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-CfvJIOny.js.gz +0 -0
- package/dist/ui/assets/katex-CamJ39w1.js +0 -257
- package/dist/ui/assets/katex-CamJ39w1.js.gz +0 -0
- package/dist/ui/assets/linear-Daef-l29.js.gz +0 -0
- package/dist/ui/assets/mermaid-parser.core-CdK9QgYV.js.gz +0 -0
- package/dist/ui/assets/mermaid.core-D6GS9mU-.js +0 -11
- package/dist/ui/assets/mermaid.core-D6GS9mU-.js.gz +0 -0
- package/dist/ui/assets/message-SqLqNYcv.js +0 -36
- package/dist/ui/assets/message-SqLqNYcv.js.gz +0 -0
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-Cb3QMflX.js.gz +0 -0
- package/dist/ui/assets/particles-DsJFOarW.js.gz +0 -0
- package/dist/ui/assets/pieDiagram-ADFJNKIX-BxIwQWvw.js.gz +0 -0
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-B5HPe4ga.js.gz +0 -0
- package/dist/ui/assets/reactflow-Bf74ngoo.js +0 -2
- package/dist/ui/assets/reactflow-Bf74ngoo.js.gz +0 -0
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-YfI6llkX.js.gz +0 -0
- package/dist/ui/assets/sandpack-D7koO5op.js.gz +0 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DOk_B10B.js +0 -10
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DOk_B10B.js.gz +0 -0
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-DAe4Um17.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-CCesDu_C.js +0 -1
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-CCesDu_C.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-CMlIrsoO.js +0 -1
- package/dist/ui/assets/syntax-C-M-8jOU.js +0 -10
- package/dist/ui/assets/syntax-C-M-8jOU.js.gz +0 -0
- package/dist/ui/assets/theme-BQZdiqwv.js +0 -1
- package/dist/ui/assets/timeline-definition-IT6M3QCI-D6P5txjT.js.gz +0 -0
- package/dist/ui/assets/useUserLocalStorage-Ckb8HsIw.js.gz +0 -0
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-CsybjUbd.js.gz +0 -0
- /package/dist/cli/commands/{admin → local}/sync-unix.d.ts +0 -0
package/dist/core/mcp/index.cjs
CHANGED
|
@@ -30,7 +30,10 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// src/mcp/index.ts
|
|
31
31
|
var mcp_exports = {};
|
|
32
32
|
__export(mcp_exports, {
|
|
33
|
+
TEMPLATE_RESOLVABLE_MCP_AUTH_SECRET_FIELDS: () => TEMPLATE_RESOLVABLE_MCP_AUTH_SECRET_FIELDS,
|
|
33
34
|
buildMCPTemplateContextFromEnv: () => buildMCPTemplateContextFromEnv,
|
|
35
|
+
containsTemplate: () => containsTemplate,
|
|
36
|
+
isUserEnvPlaceholder: () => isUserEnvPlaceholder,
|
|
34
37
|
resolveMcpServerEnv: () => resolveMcpServerEnv,
|
|
35
38
|
resolveMcpServerTemplates: () => resolveMcpServerTemplates,
|
|
36
39
|
resolveMcpServersTemplates: () => resolveMcpServersTemplates
|
|
@@ -43,6 +46,10 @@ var import_drizzle_orm5 = require("drizzle-orm");
|
|
|
43
46
|
// src/db/database-wrapper.ts
|
|
44
47
|
var import_drizzle_orm = require("drizzle-orm");
|
|
45
48
|
|
|
49
|
+
// src/db/tenant-context.ts
|
|
50
|
+
var import_node_async_hooks = require("async_hooks");
|
|
51
|
+
var tenantDatabaseScope = new import_node_async_hooks.AsyncLocalStorage();
|
|
52
|
+
|
|
46
53
|
// src/db/encryption.ts
|
|
47
54
|
var import_node_crypto = require("crypto");
|
|
48
55
|
|
|
@@ -67,6 +74,7 @@ __export(schema_postgres_exports, {
|
|
|
67
74
|
cardTypes: () => cardTypes,
|
|
68
75
|
cards: () => cards,
|
|
69
76
|
gatewayChannels: () => gatewayChannels,
|
|
77
|
+
gatewayOutboundMessages: () => gatewayOutboundMessages,
|
|
70
78
|
groupMemberships: () => groupMemberships,
|
|
71
79
|
groups: () => groups,
|
|
72
80
|
kbDocumentUnits: () => kbDocumentUnits,
|
|
@@ -196,6 +204,7 @@ var t = {
|
|
|
196
204
|
var sessions = (0, import_pg_core.pgTable)(
|
|
197
205
|
"sessions",
|
|
198
206
|
{
|
|
207
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
199
208
|
// Primary identity
|
|
200
209
|
session_id: (0, import_pg_core.varchar)("session_id", { length: 36 }).primaryKey(),
|
|
201
210
|
created_at: t.timestamp("created_at").notNull(),
|
|
@@ -255,7 +264,9 @@ var sessions = (0, import_pg_core.pgTable)(
|
|
|
255
264
|
data: t.json("data").$type().notNull()
|
|
256
265
|
},
|
|
257
266
|
(table) => ({
|
|
267
|
+
tenantIdx: (0, import_pg_core.index)("sessions_tenant_id_idx").on(table.tenant_id),
|
|
258
268
|
statusIdx: (0, import_pg_core.index)("sessions_status_idx").on(table.status),
|
|
269
|
+
statusReadyIdx: (0, import_pg_core.index)("sessions_status_ready_idx").on(table.status, table.ready_for_prompt),
|
|
259
270
|
agenticToolIdx: (0, import_pg_core.index)("sessions_agentic_tool_idx").on(table.agentic_tool),
|
|
260
271
|
boardIdx: (0, import_pg_core.index)("sessions_board_idx").on(table.board_id),
|
|
261
272
|
branchIdx: (0, import_pg_core.index)("sessions_branch_idx").on(table.branch_id),
|
|
@@ -267,12 +278,13 @@ var sessions = (0, import_pg_core.pgTable)(
|
|
|
267
278
|
// Partial unique index — covering for the scheduler's dedup lookup
|
|
268
279
|
// AND serves as the DB-level guard against check-then-create races
|
|
269
280
|
// in spawnScheduledSession.
|
|
270
|
-
scheduleRunUnique: (0, import_pg_core.uniqueIndex)("sessions_schedule_run_unique").on(table.schedule_id, table.scheduled_run_at).where(import_drizzle_orm2.sql`${table.schedule_id} IS NOT NULL AND ${table.scheduled_run_at} IS NOT NULL`)
|
|
281
|
+
scheduleRunUnique: (0, import_pg_core.uniqueIndex)("sessions_schedule_run_unique").on(table.tenant_id, table.schedule_id, table.scheduled_run_at).where(import_drizzle_orm2.sql`${table.schedule_id} IS NOT NULL AND ${table.scheduled_run_at} IS NOT NULL`)
|
|
271
282
|
})
|
|
272
283
|
);
|
|
273
284
|
var sessionRelationships = (0, import_pg_core.pgTable)(
|
|
274
285
|
"session_relationships",
|
|
275
286
|
{
|
|
287
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
276
288
|
relationship_id: (0, import_pg_core.varchar)("relationship_id", { length: 36 }).primaryKey(),
|
|
277
289
|
source_session_id: (0, import_pg_core.varchar)("source_session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
|
|
278
290
|
target_session_id: (0, import_pg_core.varchar)("target_session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
|
|
@@ -290,10 +302,23 @@ var sessionRelationships = (0, import_pg_core.pgTable)(
|
|
|
290
302
|
data: t.json("data")
|
|
291
303
|
},
|
|
292
304
|
(table) => ({
|
|
305
|
+
tenantIdx: (0, import_pg_core.index)("session_relationships_tenant_id_idx").on(table.tenant_id),
|
|
293
306
|
sourceIdx: (0, import_pg_core.index)("session_relationships_source_idx").on(table.source_session_id),
|
|
294
307
|
targetIdx: (0, import_pg_core.index)("session_relationships_target_idx").on(table.target_session_id),
|
|
295
308
|
callbackIdx: (0, import_pg_core.index)("session_relationships_callback_idx").on(table.callback_session_id),
|
|
309
|
+
// Composite indexes so the OR predicate in dispatchCompletionCallbacks
|
|
310
|
+
// (WHERE source_session_id = $1 OR target_session_id = $2) uses BitmapOr
|
|
311
|
+
// over these instead of a full tenant table scan via tenant_id_idx.
|
|
312
|
+
tenantSourceIdx: (0, import_pg_core.index)("session_relationships_tenant_source_idx").on(
|
|
313
|
+
table.tenant_id,
|
|
314
|
+
table.source_session_id
|
|
315
|
+
),
|
|
316
|
+
tenantTargetIdx: (0, import_pg_core.index)("session_relationships_tenant_target_idx").on(
|
|
317
|
+
table.tenant_id,
|
|
318
|
+
table.target_session_id
|
|
319
|
+
),
|
|
296
320
|
sourceTargetTypeUnique: (0, import_pg_core.uniqueIndex)("session_relationships_source_target_type_unique").on(
|
|
321
|
+
table.tenant_id,
|
|
297
322
|
table.source_session_id,
|
|
298
323
|
table.target_session_id,
|
|
299
324
|
table.relationship_type
|
|
@@ -303,6 +328,7 @@ var sessionRelationships = (0, import_pg_core.pgTable)(
|
|
|
303
328
|
var tasks = (0, import_pg_core.pgTable)(
|
|
304
329
|
"tasks",
|
|
305
330
|
{
|
|
331
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
306
332
|
task_id: (0, import_pg_core.varchar)("task_id", { length: 36 }).primaryKey(),
|
|
307
333
|
session_id: (0, import_pg_core.varchar)("session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
|
|
308
334
|
created_at: t.timestamp("created_at").notNull(),
|
|
@@ -332,19 +358,23 @@ var tasks = (0, import_pg_core.pgTable)(
|
|
|
332
358
|
data: t.json("data").$type().notNull()
|
|
333
359
|
},
|
|
334
360
|
(table) => ({
|
|
361
|
+
tenantIdx: (0, import_pg_core.index)("tasks_tenant_id_idx").on(table.tenant_id),
|
|
335
362
|
sessionIdx: (0, import_pg_core.index)("tasks_session_idx").on(table.session_id),
|
|
336
363
|
statusIdx: (0, import_pg_core.index)("tasks_status_idx").on(table.status),
|
|
337
364
|
createdIdx: (0, import_pg_core.index)("tasks_created_idx").on(table.created_at),
|
|
365
|
+
// Composite for "latest task for session" queries (ORDER BY created_at DESC LIMIT 1).
|
|
366
|
+
sessionCreatedIdx: (0, import_pg_core.index)("tasks_session_created_idx").on(table.session_id, table.created_at),
|
|
338
367
|
queueIdx: (0, import_pg_core.index)("tasks_queue_idx").on(table.session_id, table.status, table.queue_position),
|
|
339
368
|
// Partial unique index — defense-in-depth for `tasks.createPending` race
|
|
340
369
|
// serialization. Only QUEUED rows are constrained; CREATED/RUNNING/done
|
|
341
370
|
// rows have NULL queue_position and are unaffected.
|
|
342
|
-
queuedPositionUnique: (0, import_pg_core.uniqueIndex)("tasks_queued_position_unique").on(table.session_id, table.queue_position).where(import_drizzle_orm2.sql`${table.status} = 'queued'`)
|
|
371
|
+
queuedPositionUnique: (0, import_pg_core.uniqueIndex)("tasks_queued_position_unique").on(table.tenant_id, table.session_id, table.queue_position).where(import_drizzle_orm2.sql`${table.status} = 'queued'`)
|
|
343
372
|
})
|
|
344
373
|
);
|
|
345
374
|
var serializedSessions = (0, import_pg_core.pgTable)(
|
|
346
375
|
"serialized_sessions",
|
|
347
376
|
{
|
|
377
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
348
378
|
id: (0, import_pg_core.varchar)("id", { length: 36 }).primaryKey(),
|
|
349
379
|
session_id: (0, import_pg_core.varchar)("session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
|
|
350
380
|
branch_id: (0, import_pg_core.varchar)("branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
|
|
@@ -360,6 +390,7 @@ var serializedSessions = (0, import_pg_core.pgTable)(
|
|
|
360
390
|
// gzipped; NULL while status='processing'
|
|
361
391
|
},
|
|
362
392
|
(table) => ({
|
|
393
|
+
tenantIdx: (0, import_pg_core.index)("serialized_sessions_tenant_id_idx").on(table.tenant_id),
|
|
363
394
|
sessionTurnIdx: (0, import_pg_core.index)("serialized_sessions_session_turn_idx").on(
|
|
364
395
|
table.session_id,
|
|
365
396
|
table.turn_index
|
|
@@ -370,6 +401,7 @@ var serializedSessions = (0, import_pg_core.pgTable)(
|
|
|
370
401
|
var messages = (0, import_pg_core.pgTable)(
|
|
371
402
|
"messages",
|
|
372
403
|
{
|
|
404
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
373
405
|
// Primary identity
|
|
374
406
|
message_id: (0, import_pg_core.varchar)("message_id", { length: 36 }).primaryKey(),
|
|
375
407
|
created_at: t.timestamp("created_at").notNull(),
|
|
@@ -409,15 +441,23 @@ var messages = (0, import_pg_core.pgTable)(
|
|
|
409
441
|
data: t.json("data").$type().notNull()
|
|
410
442
|
},
|
|
411
443
|
(table) => ({
|
|
444
|
+
tenantIdx: (0, import_pg_core.index)("messages_tenant_id_idx").on(table.tenant_id),
|
|
445
|
+
tenantTimestampIdx: (0, import_pg_core.index)("messages_tenant_timestamp_idx").on(table.tenant_id, table.timestamp),
|
|
412
446
|
// Indexes for efficient lookups
|
|
413
447
|
sessionIdx: (0, import_pg_core.index)("messages_session_id_idx").on(table.session_id),
|
|
414
448
|
taskIdx: (0, import_pg_core.index)("messages_task_id_idx").on(table.task_id),
|
|
415
|
-
sessionIndexIdx: (0, import_pg_core.index)("messages_session_index_idx").on(table.session_id, table.index)
|
|
449
|
+
sessionIndexIdx: (0, import_pg_core.index)("messages_session_index_idx").on(table.session_id, table.index),
|
|
450
|
+
timestampIdx: (0, import_pg_core.index)("messages_timestamp_idx").on(table.timestamp),
|
|
451
|
+
sessionTimestampIdx: (0, import_pg_core.index)("messages_session_timestamp_idx").on(
|
|
452
|
+
table.session_id,
|
|
453
|
+
table.timestamp
|
|
454
|
+
)
|
|
416
455
|
})
|
|
417
456
|
);
|
|
418
457
|
var boards = (0, import_pg_core.pgTable)(
|
|
419
458
|
"boards",
|
|
420
459
|
{
|
|
460
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
421
461
|
board_id: (0, import_pg_core.varchar)("board_id", { length: 36 }).primaryKey(),
|
|
422
462
|
created_at: t.timestamp("created_at").notNull(),
|
|
423
463
|
updated_at: t.timestamp("updated_at"),
|
|
@@ -425,7 +465,7 @@ var boards = (0, import_pg_core.pgTable)(
|
|
|
425
465
|
created_by: (0, import_pg_core.varchar)("created_by", { length: 36 }).notNull(),
|
|
426
466
|
// Materialized for lookups
|
|
427
467
|
name: (0, import_pg_core.text)("name").notNull(),
|
|
428
|
-
slug: (0, import_pg_core.text)("slug")
|
|
468
|
+
slug: (0, import_pg_core.text)("slug"),
|
|
429
469
|
primary_assistant_id: (0, import_pg_core.varchar)("primary_assistant_id", { length: 36 }).references(
|
|
430
470
|
() => branches.branch_id,
|
|
431
471
|
{
|
|
@@ -440,18 +480,21 @@ var boards = (0, import_pg_core.pgTable)(
|
|
|
440
480
|
archived_by: (0, import_pg_core.varchar)("archived_by", { length: 36 })
|
|
441
481
|
},
|
|
442
482
|
(table) => ({
|
|
483
|
+
tenantIdx: (0, import_pg_core.index)("boards_tenant_id_idx").on(table.tenant_id),
|
|
443
484
|
nameIdx: (0, import_pg_core.index)("boards_name_idx").on(table.name),
|
|
444
|
-
slugIdx: (0, import_pg_core.index)("boards_slug_idx").on(table.slug)
|
|
485
|
+
slugIdx: (0, import_pg_core.index)("boards_slug_idx").on(table.slug),
|
|
486
|
+
slugTenantUnique: (0, import_pg_core.uniqueIndex)("boards_tenant_slug_unique").on(table.tenant_id, table.slug)
|
|
445
487
|
})
|
|
446
488
|
);
|
|
447
489
|
var repos = (0, import_pg_core.pgTable)(
|
|
448
490
|
"repos",
|
|
449
491
|
{
|
|
492
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
450
493
|
repo_id: (0, import_pg_core.varchar)("repo_id", { length: 36 }).primaryKey(),
|
|
451
494
|
created_at: t.timestamp("created_at").notNull(),
|
|
452
495
|
updated_at: t.timestamp("updated_at"),
|
|
453
496
|
// Materialized for querying
|
|
454
|
-
slug: (0, import_pg_core.text)("slug").notNull()
|
|
497
|
+
slug: (0, import_pg_core.text)("slug").notNull(),
|
|
455
498
|
repo_type: (0, import_pg_core.text)("repo_type", { enum: ["remote", "local"] }).notNull().default("remote"),
|
|
456
499
|
// Unix group for repo-level git access (agor_rp_<short-id>)
|
|
457
500
|
// Users who have access to ANY branch in this repo get added to this group.
|
|
@@ -462,12 +505,15 @@ var repos = (0, import_pg_core.pgTable)(
|
|
|
462
505
|
data: t.json("data").$type().notNull()
|
|
463
506
|
},
|
|
464
507
|
(table) => ({
|
|
465
|
-
|
|
508
|
+
tenantIdx: (0, import_pg_core.index)("repos_tenant_id_idx").on(table.tenant_id),
|
|
509
|
+
slugIdx: (0, import_pg_core.index)("repos_slug_idx").on(table.slug),
|
|
510
|
+
slugTenantUnique: (0, import_pg_core.uniqueIndex)("repos_tenant_slug_unique").on(table.tenant_id, table.slug)
|
|
466
511
|
})
|
|
467
512
|
);
|
|
468
513
|
var branches = (0, import_pg_core.pgTable)(
|
|
469
514
|
"branches",
|
|
470
515
|
{
|
|
516
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
471
517
|
// Primary identity
|
|
472
518
|
branch_id: (0, import_pg_core.varchar)("branch_id", { length: 36 }).primaryKey(),
|
|
473
519
|
repo_id: (0, import_pg_core.varchar)("repo_id", { length: 36 }).notNull().references(() => repos.repo_id, { onDelete: "cascade" }),
|
|
@@ -542,6 +588,7 @@ var branches = (0, import_pg_core.pgTable)(
|
|
|
542
588
|
data: t.json("data").$type().notNull()
|
|
543
589
|
},
|
|
544
590
|
(table) => ({
|
|
591
|
+
tenantIdx: (0, import_pg_core.index)("branches_tenant_id_idx").on(table.tenant_id),
|
|
545
592
|
repoIdx: (0, import_pg_core.index)("branches_repo_idx").on(table.repo_id),
|
|
546
593
|
nameIdx: (0, import_pg_core.index)("branches_name_idx").on(table.name),
|
|
547
594
|
refIdx: (0, import_pg_core.index)("branches_ref_idx").on(table.ref),
|
|
@@ -555,22 +602,26 @@ var branches = (0, import_pg_core.pgTable)(
|
|
|
555
602
|
var branchOwners = (0, import_pg_core.pgTable)(
|
|
556
603
|
"branch_owners",
|
|
557
604
|
{
|
|
605
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
558
606
|
branch_id: (0, import_pg_core.varchar)("branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
|
|
559
607
|
user_id: (0, import_pg_core.varchar)("user_id", { length: 36 }).notNull().references(() => users.user_id, { onDelete: "cascade" }),
|
|
560
608
|
created_at: t.timestamp("created_at").defaultNow()
|
|
561
609
|
},
|
|
562
610
|
(table) => ({
|
|
611
|
+
tenantIdx: (0, import_pg_core.index)("branch_owners_tenant_id_idx").on(table.tenant_id),
|
|
563
612
|
pk: (0, import_pg_core.primaryKey)({ columns: [table.branch_id, table.user_id] })
|
|
564
613
|
})
|
|
565
614
|
);
|
|
566
615
|
var boardOwners = (0, import_pg_core.pgTable)(
|
|
567
616
|
"board_owners",
|
|
568
617
|
{
|
|
618
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
569
619
|
board_id: (0, import_pg_core.varchar)("board_id", { length: 36 }).notNull().references(() => boards.board_id, { onDelete: "cascade" }),
|
|
570
620
|
user_id: (0, import_pg_core.varchar)("user_id", { length: 36 }).notNull().references(() => users.user_id, { onDelete: "cascade" }),
|
|
571
621
|
created_at: t.timestamp("created_at")
|
|
572
622
|
},
|
|
573
623
|
(table) => ({
|
|
624
|
+
tenantIdx: (0, import_pg_core.index)("board_owners_tenant_id_idx").on(table.tenant_id),
|
|
574
625
|
pk: (0, import_pg_core.primaryKey)({ columns: [table.board_id, table.user_id] }),
|
|
575
626
|
userIdx: (0, import_pg_core.index)("board_owners_user_idx").on(table.user_id)
|
|
576
627
|
})
|
|
@@ -578,6 +629,7 @@ var boardOwners = (0, import_pg_core.pgTable)(
|
|
|
578
629
|
var schedules = (0, import_pg_core.pgTable)(
|
|
579
630
|
"schedules",
|
|
580
631
|
{
|
|
632
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
581
633
|
schedule_id: (0, import_pg_core.varchar)("schedule_id", { length: 36 }).primaryKey(),
|
|
582
634
|
branch_id: (0, import_pg_core.varchar)("branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
|
|
583
635
|
name: (0, import_pg_core.text)("name").notNull(),
|
|
@@ -601,6 +653,7 @@ var schedules = (0, import_pg_core.pgTable)(
|
|
|
601
653
|
created_by: (0, import_pg_core.varchar)("created_by", { length: 36 }).notNull().references(() => users.user_id)
|
|
602
654
|
},
|
|
603
655
|
(table) => ({
|
|
656
|
+
tenantIdx: (0, import_pg_core.index)("schedules_tenant_id_idx").on(table.tenant_id),
|
|
604
657
|
enabledNextRunIdx: (0, import_pg_core.index)("schedules_enabled_next_run_idx").on(table.enabled, table.next_run_at),
|
|
605
658
|
branchIdx: (0, import_pg_core.index)("schedules_branch_idx").on(table.branch_id),
|
|
606
659
|
createdByIdx: (0, import_pg_core.index)("schedules_created_by_idx").on(table.created_by)
|
|
@@ -609,12 +662,13 @@ var schedules = (0, import_pg_core.pgTable)(
|
|
|
609
662
|
var users = (0, import_pg_core.pgTable)(
|
|
610
663
|
"users",
|
|
611
664
|
{
|
|
665
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
612
666
|
// Primary identity
|
|
613
667
|
user_id: (0, import_pg_core.varchar)("user_id", { length: 36 }).primaryKey(),
|
|
614
668
|
created_at: t.timestamp("created_at").notNull(),
|
|
615
669
|
updated_at: t.timestamp("updated_at"),
|
|
616
670
|
// Materialized for auth lookups
|
|
617
|
-
email: (0, import_pg_core.text)("email").
|
|
671
|
+
email: (0, import_pg_core.text)("email").notNull(),
|
|
618
672
|
password: (0, import_pg_core.text)("password").notNull(),
|
|
619
673
|
// bcrypt hashed
|
|
620
674
|
// Basic profile (materialized for display)
|
|
@@ -630,16 +684,22 @@ var users = (0, import_pg_core.pgTable)(
|
|
|
630
684
|
onboarding_completed: t.bool("onboarding_completed").notNull().default(false),
|
|
631
685
|
// Force password change flag (admin-settable, auto-cleared on password change)
|
|
632
686
|
must_change_password: t.bool("must_change_password").notNull().default(false),
|
|
687
|
+
// Auth invalidation marker. Password changes set this timestamp so any
|
|
688
|
+
// previously issued browser access or refresh token is rejected.
|
|
689
|
+
tokens_valid_after: t.timestamp("tokens_valid_after"),
|
|
633
690
|
// JSON blob for profile/preferences
|
|
634
691
|
data: t.json("data").$type().notNull()
|
|
635
692
|
},
|
|
636
693
|
(table) => ({
|
|
637
|
-
|
|
694
|
+
tenantIdx: (0, import_pg_core.index)("users_tenant_id_idx").on(table.tenant_id),
|
|
695
|
+
emailIdx: (0, import_pg_core.index)("users_email_idx").on(table.email),
|
|
696
|
+
emailTenantUnique: (0, import_pg_core.uniqueIndex)("users_tenant_email_unique").on(table.tenant_id, table.email)
|
|
638
697
|
})
|
|
639
698
|
);
|
|
640
699
|
var groups = (0, import_pg_core.pgTable)(
|
|
641
700
|
"groups",
|
|
642
701
|
{
|
|
702
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
643
703
|
group_id: (0, import_pg_core.varchar)("group_id", { length: 36 }).primaryKey(),
|
|
644
704
|
name: (0, import_pg_core.text)("name").notNull(),
|
|
645
705
|
slug: (0, import_pg_core.text)("slug").notNull(),
|
|
@@ -652,13 +712,15 @@ var groups = (0, import_pg_core.pgTable)(
|
|
|
652
712
|
updated_at: t.timestamp("updated_at")
|
|
653
713
|
},
|
|
654
714
|
(table) => ({
|
|
655
|
-
|
|
715
|
+
tenantIdx: (0, import_pg_core.index)("groups_tenant_id_idx").on(table.tenant_id),
|
|
716
|
+
slugIdx: (0, import_pg_core.uniqueIndex)("groups_tenant_slug_unique").on(table.tenant_id, table.slug),
|
|
656
717
|
archivedIdx: (0, import_pg_core.index)("groups_archived_idx").on(table.archived)
|
|
657
718
|
})
|
|
658
719
|
);
|
|
659
720
|
var groupMemberships = (0, import_pg_core.pgTable)(
|
|
660
721
|
"group_memberships",
|
|
661
722
|
{
|
|
723
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
662
724
|
group_id: (0, import_pg_core.varchar)("group_id", { length: 36 }).notNull().references(() => groups.group_id, { onDelete: "cascade" }),
|
|
663
725
|
user_id: (0, import_pg_core.varchar)("user_id", { length: 36 }).notNull().references(() => users.user_id, { onDelete: "cascade" }),
|
|
664
726
|
added_by: (0, import_pg_core.varchar)("added_by", { length: 36 }).references(() => users.user_id, {
|
|
@@ -667,6 +729,7 @@ var groupMemberships = (0, import_pg_core.pgTable)(
|
|
|
667
729
|
created_at: t.timestamp("created_at").notNull()
|
|
668
730
|
},
|
|
669
731
|
(table) => ({
|
|
732
|
+
tenantIdx: (0, import_pg_core.index)("group_memberships_tenant_id_idx").on(table.tenant_id),
|
|
670
733
|
pk: (0, import_pg_core.primaryKey)({ columns: [table.group_id, table.user_id] }),
|
|
671
734
|
userIdx: (0, import_pg_core.index)("group_memberships_user_idx").on(table.user_id)
|
|
672
735
|
})
|
|
@@ -674,6 +737,7 @@ var groupMemberships = (0, import_pg_core.pgTable)(
|
|
|
674
737
|
var branchGroupGrants = (0, import_pg_core.pgTable)(
|
|
675
738
|
"branch_group_grants",
|
|
676
739
|
{
|
|
740
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
677
741
|
branch_id: (0, import_pg_core.varchar)("branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
|
|
678
742
|
group_id: (0, import_pg_core.varchar)("group_id", { length: 36 }).notNull().references(() => groups.group_id, { onDelete: "cascade" }),
|
|
679
743
|
can: (0, import_pg_core.text)("can", { enum: [...BRANCH_PERMISSION_LEVELS] }).notNull().default("view"),
|
|
@@ -685,6 +749,7 @@ var branchGroupGrants = (0, import_pg_core.pgTable)(
|
|
|
685
749
|
updated_at: t.timestamp("updated_at")
|
|
686
750
|
},
|
|
687
751
|
(table) => ({
|
|
752
|
+
tenantIdx: (0, import_pg_core.index)("branch_group_grants_tenant_id_idx").on(table.tenant_id),
|
|
688
753
|
pk: (0, import_pg_core.primaryKey)({ columns: [table.branch_id, table.group_id] }),
|
|
689
754
|
groupIdx: (0, import_pg_core.index)("branch_group_grants_group_idx").on(table.group_id)
|
|
690
755
|
})
|
|
@@ -692,6 +757,7 @@ var branchGroupGrants = (0, import_pg_core.pgTable)(
|
|
|
692
757
|
var boardGroupGrants = (0, import_pg_core.pgTable)(
|
|
693
758
|
"board_group_grants",
|
|
694
759
|
{
|
|
760
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
695
761
|
board_id: (0, import_pg_core.varchar)("board_id", { length: 36 }).notNull().references(() => boards.board_id, { onDelete: "cascade" }),
|
|
696
762
|
group_id: (0, import_pg_core.varchar)("group_id", { length: 36 }).notNull().references(() => groups.group_id, { onDelete: "cascade" }),
|
|
697
763
|
can: (0, import_pg_core.text)("can", { enum: [...BRANCH_PERMISSION_LEVELS] }).notNull().default("view"),
|
|
@@ -703,6 +769,7 @@ var boardGroupGrants = (0, import_pg_core.pgTable)(
|
|
|
703
769
|
updated_at: t.timestamp("updated_at")
|
|
704
770
|
},
|
|
705
771
|
(table) => ({
|
|
772
|
+
tenantIdx: (0, import_pg_core.index)("board_group_grants_tenant_id_idx").on(table.tenant_id),
|
|
706
773
|
pk: (0, import_pg_core.primaryKey)({ columns: [table.board_id, table.group_id] }),
|
|
707
774
|
groupIdx: (0, import_pg_core.index)("board_group_grants_group_idx").on(table.group_id)
|
|
708
775
|
})
|
|
@@ -710,6 +777,7 @@ var boardGroupGrants = (0, import_pg_core.pgTable)(
|
|
|
710
777
|
var appVariables = (0, import_pg_core.pgTable)(
|
|
711
778
|
"app_variables",
|
|
712
779
|
{
|
|
780
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
713
781
|
variable_id: (0, import_pg_core.varchar)("variable_id", { length: 36 }).primaryKey(),
|
|
714
782
|
namespace: (0, import_pg_core.text)("namespace").notNull(),
|
|
715
783
|
key: (0, import_pg_core.text)("key").notNull(),
|
|
@@ -725,13 +793,19 @@ var appVariables = (0, import_pg_core.pgTable)(
|
|
|
725
793
|
updated_at: t.timestamp("updated_at").notNull()
|
|
726
794
|
},
|
|
727
795
|
(table) => ({
|
|
728
|
-
|
|
796
|
+
tenantIdx: (0, import_pg_core.index)("app_variables_tenant_id_idx").on(table.tenant_id),
|
|
797
|
+
namespaceKeyIdx: (0, import_pg_core.uniqueIndex)("app_variables_tenant_namespace_key_unique").on(
|
|
798
|
+
table.tenant_id,
|
|
799
|
+
table.namespace,
|
|
800
|
+
table.key
|
|
801
|
+
),
|
|
729
802
|
namespaceIdx: (0, import_pg_core.index)("app_variables_namespace_idx").on(table.namespace)
|
|
730
803
|
})
|
|
731
804
|
);
|
|
732
805
|
var userApiKeys = (0, import_pg_core.pgTable)(
|
|
733
806
|
"user_api_keys",
|
|
734
807
|
{
|
|
808
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
735
809
|
id: (0, import_pg_core.varchar)("id", { length: 36 }).primaryKey(),
|
|
736
810
|
user_id: (0, import_pg_core.varchar)("user_id", { length: 36 }).notNull().references(() => users.user_id, { onDelete: "cascade" }),
|
|
737
811
|
name: (0, import_pg_core.text)("name").notNull(),
|
|
@@ -743,6 +817,7 @@ var userApiKeys = (0, import_pg_core.pgTable)(
|
|
|
743
817
|
last_used_at: t.timestamp("last_used_at")
|
|
744
818
|
},
|
|
745
819
|
(table) => ({
|
|
820
|
+
tenantIdx: (0, import_pg_core.index)("user_api_keys_tenant_id_idx").on(table.tenant_id),
|
|
746
821
|
userIdx: (0, import_pg_core.index)("user_api_keys_user_idx").on(table.user_id),
|
|
747
822
|
prefixIdx: (0, import_pg_core.index)("user_api_keys_prefix_idx").on(table.prefix)
|
|
748
823
|
})
|
|
@@ -750,6 +825,7 @@ var userApiKeys = (0, import_pg_core.pgTable)(
|
|
|
750
825
|
var mcpServers = (0, import_pg_core.pgTable)(
|
|
751
826
|
"mcp_servers",
|
|
752
827
|
{
|
|
828
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
753
829
|
// Primary identity
|
|
754
830
|
mcp_server_id: (0, import_pg_core.varchar)("mcp_server_id", { length: 36 }).primaryKey(),
|
|
755
831
|
created_at: t.timestamp("created_at").notNull(),
|
|
@@ -776,6 +852,7 @@ var mcpServers = (0, import_pg_core.pgTable)(
|
|
|
776
852
|
data: t.json("data").$type().notNull()
|
|
777
853
|
},
|
|
778
854
|
(table) => ({
|
|
855
|
+
tenantIdx: (0, import_pg_core.index)("mcp_servers_tenant_id_idx").on(table.tenant_id),
|
|
779
856
|
nameIdx: (0, import_pg_core.index)("mcp_servers_name_idx").on(table.name),
|
|
780
857
|
scopeIdx: (0, import_pg_core.index)("mcp_servers_scope_idx").on(table.scope),
|
|
781
858
|
ownerIdx: (0, import_pg_core.index)("mcp_servers_owner_idx").on(table.owner_user_id),
|
|
@@ -785,6 +862,7 @@ var mcpServers = (0, import_pg_core.pgTable)(
|
|
|
785
862
|
var cardTypes = (0, import_pg_core.pgTable)(
|
|
786
863
|
"card_types",
|
|
787
864
|
{
|
|
865
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
788
866
|
card_type_id: (0, import_pg_core.varchar)("card_type_id", { length: 36 }).primaryKey(),
|
|
789
867
|
name: (0, import_pg_core.text)("name").notNull(),
|
|
790
868
|
emoji: (0, import_pg_core.text)("emoji"),
|
|
@@ -796,12 +874,14 @@ var cardTypes = (0, import_pg_core.pgTable)(
|
|
|
796
874
|
updated_at: t.timestamp("updated_at").notNull()
|
|
797
875
|
},
|
|
798
876
|
(table) => ({
|
|
877
|
+
tenantIdx: (0, import_pg_core.index)("card_types_tenant_id_idx").on(table.tenant_id),
|
|
799
878
|
nameIdx: (0, import_pg_core.index)("card_types_name_idx").on(table.name)
|
|
800
879
|
})
|
|
801
880
|
);
|
|
802
881
|
var cards = (0, import_pg_core.pgTable)(
|
|
803
882
|
"cards",
|
|
804
883
|
{
|
|
884
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
805
885
|
card_id: (0, import_pg_core.varchar)("card_id", { length: 36 }).primaryKey(),
|
|
806
886
|
board_id: (0, import_pg_core.varchar)("board_id", { length: 36 }).notNull().references(() => boards.board_id, { onDelete: "cascade" }),
|
|
807
887
|
card_type_id: (0, import_pg_core.varchar)("card_type_id", { length: 36 }).references(() => cardTypes.card_type_id, {
|
|
@@ -822,6 +902,7 @@ var cards = (0, import_pg_core.pgTable)(
|
|
|
822
902
|
archived_at: t.timestamp("archived_at")
|
|
823
903
|
},
|
|
824
904
|
(table) => ({
|
|
905
|
+
tenantIdx: (0, import_pg_core.index)("cards_tenant_id_idx").on(table.tenant_id),
|
|
825
906
|
boardIdx: (0, import_pg_core.index)("cards_board_idx").on(table.board_id),
|
|
826
907
|
cardTypeIdx: (0, import_pg_core.index)("cards_card_type_idx").on(table.card_type_id),
|
|
827
908
|
titleIdx: (0, import_pg_core.index)("cards_title_idx").on(table.title),
|
|
@@ -832,6 +913,7 @@ var cards = (0, import_pg_core.pgTable)(
|
|
|
832
913
|
var artifacts = (0, import_pg_core.pgTable)(
|
|
833
914
|
"artifacts",
|
|
834
915
|
{
|
|
916
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
835
917
|
artifact_id: (0, import_pg_core.varchar)("artifact_id", { length: 36 }).primaryKey(),
|
|
836
918
|
branch_id: (0, import_pg_core.varchar)("branch_id", { length: 36 }).references(() => branches.branch_id, {
|
|
837
919
|
onDelete: "set null"
|
|
@@ -867,6 +949,7 @@ var artifacts = (0, import_pg_core.pgTable)(
|
|
|
867
949
|
archived_at: t.timestamp("archived_at")
|
|
868
950
|
},
|
|
869
951
|
(table) => ({
|
|
952
|
+
tenantIdx: (0, import_pg_core.index)("artifacts_tenant_id_idx").on(table.tenant_id),
|
|
870
953
|
branchIdx: (0, import_pg_core.index)("artifacts_branch_idx").on(table.branch_id),
|
|
871
954
|
sourceSessionIdx: (0, import_pg_core.index)("artifacts_source_session_idx").on(table.source_session_id),
|
|
872
955
|
boardIdx: (0, import_pg_core.index)("artifacts_board_idx").on(table.board_id),
|
|
@@ -877,6 +960,7 @@ var artifacts = (0, import_pg_core.pgTable)(
|
|
|
877
960
|
var artifactTrustGrants = (0, import_pg_core.pgTable)(
|
|
878
961
|
"artifact_trust_grants",
|
|
879
962
|
{
|
|
963
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
880
964
|
grant_id: (0, import_pg_core.varchar)("grant_id", { length: 36 }).primaryKey(),
|
|
881
965
|
user_id: (0, import_pg_core.varchar)("user_id", { length: 36 }).notNull(),
|
|
882
966
|
scope_type: (0, import_pg_core.text)("scope_type").notNull(),
|
|
@@ -887,6 +971,7 @@ var artifactTrustGrants = (0, import_pg_core.pgTable)(
|
|
|
887
971
|
revoked_at: t.timestamp("revoked_at")
|
|
888
972
|
},
|
|
889
973
|
(table) => ({
|
|
974
|
+
tenantIdx: (0, import_pg_core.index)("artifact_trust_grants_tenant_id_idx").on(table.tenant_id),
|
|
890
975
|
userIdx: (0, import_pg_core.index)("artifact_trust_grants_user_idx").on(table.user_id),
|
|
891
976
|
scopeIdx: (0, import_pg_core.index)("artifact_trust_grants_scope_idx").on(table.scope_type, table.scope_value)
|
|
892
977
|
})
|
|
@@ -894,6 +979,7 @@ var artifactTrustGrants = (0, import_pg_core.pgTable)(
|
|
|
894
979
|
var boardObjects = (0, import_pg_core.pgTable)(
|
|
895
980
|
"board_objects",
|
|
896
981
|
{
|
|
982
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
897
983
|
// Primary identity
|
|
898
984
|
object_id: (0, import_pg_core.varchar)("object_id", { length: 36 }).primaryKey(),
|
|
899
985
|
board_id: (0, import_pg_core.varchar)("board_id", { length: 36 }).notNull().references(() => boards.board_id, { onDelete: "cascade" }),
|
|
@@ -909,6 +995,7 @@ var boardObjects = (0, import_pg_core.pgTable)(
|
|
|
909
995
|
data: t.json("data").$type().notNull()
|
|
910
996
|
},
|
|
911
997
|
(table) => ({
|
|
998
|
+
tenantIdx: (0, import_pg_core.index)("board_objects_tenant_id_idx").on(table.tenant_id),
|
|
912
999
|
boardIdx: (0, import_pg_core.index)("board_objects_board_idx").on(table.board_id),
|
|
913
1000
|
branchIdx: (0, import_pg_core.index)("board_objects_branch_idx").on(table.branch_id),
|
|
914
1001
|
cardIdx: (0, import_pg_core.index)("board_objects_card_idx").on(table.card_id)
|
|
@@ -917,12 +1004,14 @@ var boardObjects = (0, import_pg_core.pgTable)(
|
|
|
917
1004
|
var sessionMcpServers = (0, import_pg_core.pgTable)(
|
|
918
1005
|
"session_mcp_servers",
|
|
919
1006
|
{
|
|
1007
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
920
1008
|
session_id: (0, import_pg_core.varchar)("session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
|
|
921
1009
|
mcp_server_id: (0, import_pg_core.varchar)("mcp_server_id", { length: 36 }).notNull().references(() => mcpServers.mcp_server_id, { onDelete: "cascade" }),
|
|
922
1010
|
enabled: t.bool("enabled").notNull().default(true),
|
|
923
1011
|
added_at: t.timestamp("added_at").notNull()
|
|
924
1012
|
},
|
|
925
1013
|
(table) => ({
|
|
1014
|
+
tenantIdx: (0, import_pg_core.index)("session_mcp_servers_tenant_id_idx").on(table.tenant_id),
|
|
926
1015
|
// Composite primary key
|
|
927
1016
|
pk: (0, import_pg_core.index)("session_mcp_servers_pk").on(table.session_id, table.mcp_server_id),
|
|
928
1017
|
// Indexes for queries
|
|
@@ -934,6 +1023,7 @@ var sessionMcpServers = (0, import_pg_core.pgTable)(
|
|
|
934
1023
|
var userMcpOauthTokens = (0, import_pg_core.pgTable)(
|
|
935
1024
|
"user_mcp_oauth_tokens",
|
|
936
1025
|
{
|
|
1026
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
937
1027
|
// NULL = shared-mode token (one per mcp_server_id)
|
|
938
1028
|
user_id: (0, import_pg_core.varchar)("user_id", { length: 36 }).references(() => users.user_id, {
|
|
939
1029
|
onDelete: "cascade"
|
|
@@ -951,6 +1041,7 @@ var userMcpOauthTokens = (0, import_pg_core.pgTable)(
|
|
|
951
1041
|
updated_at: t.timestamp("updated_at")
|
|
952
1042
|
},
|
|
953
1043
|
(table) => ({
|
|
1044
|
+
tenantIdx: (0, import_pg_core.index)("user_mcp_oauth_tokens_tenant_id_idx").on(table.tenant_id),
|
|
954
1045
|
// Composite lookup indexes. Uniqueness enforced via partial unique indexes
|
|
955
1046
|
// created in the migration (one for per-user rows, one for the shared row).
|
|
956
1047
|
pk: (0, import_pg_core.index)("user_mcp_oauth_tokens_pk").on(table.user_id, table.mcp_server_id),
|
|
@@ -961,6 +1052,7 @@ var userMcpOauthTokens = (0, import_pg_core.pgTable)(
|
|
|
961
1052
|
var boardComments = (0, import_pg_core.pgTable)(
|
|
962
1053
|
"board_comments",
|
|
963
1054
|
{
|
|
1055
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
964
1056
|
// Primary identity
|
|
965
1057
|
comment_id: (0, import_pg_core.varchar)("comment_id", { length: 36 }).primaryKey(),
|
|
966
1058
|
created_at: t.timestamp("created_at").notNull(),
|
|
@@ -1002,6 +1094,7 @@ var boardComments = (0, import_pg_core.pgTable)(
|
|
|
1002
1094
|
data: t.json("data").$type().notNull()
|
|
1003
1095
|
},
|
|
1004
1096
|
(table) => ({
|
|
1097
|
+
tenantIdx: (0, import_pg_core.index)("board_comments_tenant_id_idx").on(table.tenant_id),
|
|
1005
1098
|
boardIdx: (0, import_pg_core.index)("board_comments_board_idx").on(table.board_id),
|
|
1006
1099
|
sessionIdx: (0, import_pg_core.index)("board_comments_session_idx").on(table.session_id),
|
|
1007
1100
|
taskIdx: (0, import_pg_core.index)("board_comments_task_idx").on(table.task_id),
|
|
@@ -1016,6 +1109,7 @@ var boardComments = (0, import_pg_core.pgTable)(
|
|
|
1016
1109
|
var gatewayChannels = (0, import_pg_core.pgTable)(
|
|
1017
1110
|
"gateway_channels",
|
|
1018
1111
|
{
|
|
1112
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
1019
1113
|
// Primary identity
|
|
1020
1114
|
id: (0, import_pg_core.varchar)("id", { length: 36 }).primaryKey(),
|
|
1021
1115
|
created_at: t.timestamp("created_at").notNull(),
|
|
@@ -1029,7 +1123,7 @@ var gatewayChannels = (0, import_pg_core.pgTable)(
|
|
|
1029
1123
|
}).notNull(),
|
|
1030
1124
|
target_branch_id: (0, import_pg_core.varchar)("target_branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
|
|
1031
1125
|
agor_user_id: (0, import_pg_core.varchar)("agor_user_id", { length: 36 }).notNull(),
|
|
1032
|
-
channel_key: (0, import_pg_core.text)("channel_key").notNull()
|
|
1126
|
+
channel_key: (0, import_pg_core.text)("channel_key").notNull(),
|
|
1033
1127
|
enabled: t.bool("enabled").notNull().default(true),
|
|
1034
1128
|
last_message_at: t.timestamp("last_message_at"),
|
|
1035
1129
|
// JSON blob for platform credentials (encrypted at rest)
|
|
@@ -1038,13 +1132,19 @@ var gatewayChannels = (0, import_pg_core.pgTable)(
|
|
|
1038
1132
|
agentic_config: t.json("agentic_config")
|
|
1039
1133
|
},
|
|
1040
1134
|
(table) => ({
|
|
1135
|
+
tenantIdx: (0, import_pg_core.index)("gateway_channels_tenant_id_idx").on(table.tenant_id),
|
|
1041
1136
|
channelKeyIdx: (0, import_pg_core.index)("idx_gateway_channel_key").on(table.channel_key),
|
|
1137
|
+
channelKeyTenantUnique: (0, import_pg_core.uniqueIndex)("gateway_channels_tenant_channel_key_unique").on(
|
|
1138
|
+
table.tenant_id,
|
|
1139
|
+
table.channel_key
|
|
1140
|
+
),
|
|
1042
1141
|
enabledTypeIdx: (0, import_pg_core.index)("idx_gateway_enabled_type").on(table.enabled, table.channel_type)
|
|
1043
1142
|
})
|
|
1044
1143
|
);
|
|
1045
1144
|
var threadSessionMap = (0, import_pg_core.pgTable)(
|
|
1046
1145
|
"thread_session_map",
|
|
1047
1146
|
{
|
|
1147
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
1048
1148
|
// Primary identity
|
|
1049
1149
|
id: (0, import_pg_core.varchar)("id", { length: 36 }).primaryKey(),
|
|
1050
1150
|
created_at: t.timestamp("created_at").notNull(),
|
|
@@ -1062,7 +1162,9 @@ var threadSessionMap = (0, import_pg_core.pgTable)(
|
|
|
1062
1162
|
metadata: t.json("metadata")
|
|
1063
1163
|
},
|
|
1064
1164
|
(table) => ({
|
|
1065
|
-
|
|
1165
|
+
tenantIdx: (0, import_pg_core.index)("thread_session_map_tenant_id_idx").on(table.tenant_id),
|
|
1166
|
+
uniqueChannelThread: (0, import_pg_core.uniqueIndex)("uniq_thread_map_tenant_channel_thread").on(
|
|
1167
|
+
table.tenant_id,
|
|
1066
1168
|
table.channel_id,
|
|
1067
1169
|
table.thread_id
|
|
1068
1170
|
),
|
|
@@ -1071,14 +1173,82 @@ var threadSessionMap = (0, import_pg_core.pgTable)(
|
|
|
1071
1173
|
channelStatusIdx: (0, import_pg_core.index)("idx_thread_map_channel_status").on(table.channel_id, table.status)
|
|
1072
1174
|
})
|
|
1073
1175
|
);
|
|
1176
|
+
var gatewayOutboundMessages = (0, import_pg_core.pgTable)(
|
|
1177
|
+
"gateway_outbound_messages",
|
|
1178
|
+
{
|
|
1179
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
1180
|
+
id: (0, import_pg_core.varchar)("id", { length: 36 }).primaryKey(),
|
|
1181
|
+
created_at: t.timestamp("created_at").notNull(),
|
|
1182
|
+
updated_at: t.timestamp("updated_at").notNull(),
|
|
1183
|
+
gateway_channel_id: (0, import_pg_core.varchar)("gateway_channel_id", { length: 36 }).notNull().references(() => gatewayChannels.id, { onDelete: "cascade" }),
|
|
1184
|
+
channel_type: (0, import_pg_core.text)("channel_type", {
|
|
1185
|
+
enum: ["slack", "discord", "whatsapp", "telegram", "github", "teams"]
|
|
1186
|
+
}).notNull(),
|
|
1187
|
+
platform_channel_id: (0, import_pg_core.text)("platform_channel_id").notNull(),
|
|
1188
|
+
platform_message_id: (0, import_pg_core.text)("platform_message_id").notNull(),
|
|
1189
|
+
platform_thread_id: (0, import_pg_core.text)("platform_thread_id").notNull(),
|
|
1190
|
+
platform_permalink: (0, import_pg_core.text)("platform_permalink"),
|
|
1191
|
+
target_branch_id: (0, import_pg_core.varchar)("target_branch_id", { length: 36 }).notNull().references(() => branches.branch_id),
|
|
1192
|
+
emitted_by_user_id: (0, import_pg_core.varchar)("emitted_by_user_id", { length: 36 }).notNull().references(() => users.user_id),
|
|
1193
|
+
emitted_by_session_id: (0, import_pg_core.varchar)("emitted_by_session_id", { length: 36 }).references(
|
|
1194
|
+
() => sessions.session_id,
|
|
1195
|
+
{
|
|
1196
|
+
onDelete: "set null"
|
|
1197
|
+
}
|
|
1198
|
+
),
|
|
1199
|
+
emitted_by_task_id: (0, import_pg_core.varchar)("emitted_by_task_id", { length: 36 }).references(
|
|
1200
|
+
() => tasks.task_id,
|
|
1201
|
+
{
|
|
1202
|
+
onDelete: "set null"
|
|
1203
|
+
}
|
|
1204
|
+
),
|
|
1205
|
+
emitted_by_schedule_id: (0, import_pg_core.varchar)("emitted_by_schedule_id", { length: 36 }).references(
|
|
1206
|
+
() => schedules.schedule_id,
|
|
1207
|
+
{
|
|
1208
|
+
onDelete: "set null"
|
|
1209
|
+
}
|
|
1210
|
+
),
|
|
1211
|
+
message_text: (0, import_pg_core.text)("message_text").notNull(),
|
|
1212
|
+
message_preview: (0, import_pg_core.text)("message_preview").notNull(),
|
|
1213
|
+
metadata: t.json("metadata"),
|
|
1214
|
+
consumed_by_session_id: (0, import_pg_core.varchar)("consumed_by_session_id", { length: 36 }).references(
|
|
1215
|
+
() => sessions.session_id,
|
|
1216
|
+
{
|
|
1217
|
+
onDelete: "set null"
|
|
1218
|
+
}
|
|
1219
|
+
),
|
|
1220
|
+
consumed_at: t.timestamp("consumed_at")
|
|
1221
|
+
},
|
|
1222
|
+
(table) => ({
|
|
1223
|
+
tenantIdx: (0, import_pg_core.index)("gateway_outbound_messages_tenant_id_idx").on(table.tenant_id),
|
|
1224
|
+
uniqueChannelThread: (0, import_pg_core.uniqueIndex)("uniq_gateway_outbound_tenant_channel_thread").on(
|
|
1225
|
+
table.tenant_id,
|
|
1226
|
+
table.gateway_channel_id,
|
|
1227
|
+
table.platform_thread_id
|
|
1228
|
+
),
|
|
1229
|
+
emittedSessionIdx: (0, import_pg_core.index)("idx_gateway_outbound_emitted_session").on(
|
|
1230
|
+
table.emitted_by_session_id
|
|
1231
|
+
),
|
|
1232
|
+
emittedScheduleIdx: (0, import_pg_core.index)("idx_gateway_outbound_emitted_schedule").on(
|
|
1233
|
+
table.emitted_by_schedule_id
|
|
1234
|
+
),
|
|
1235
|
+
targetBranchCreatedIdx: (0, import_pg_core.index)("idx_gateway_outbound_branch_created").on(
|
|
1236
|
+
table.target_branch_id,
|
|
1237
|
+
table.created_at
|
|
1238
|
+
),
|
|
1239
|
+
consumedIdx: (0, import_pg_core.index)("idx_gateway_outbound_consumed").on(table.consumed_at)
|
|
1240
|
+
})
|
|
1241
|
+
);
|
|
1074
1242
|
var sessionEnvSelections = (0, import_pg_core.pgTable)(
|
|
1075
1243
|
"session_env_selections",
|
|
1076
1244
|
{
|
|
1245
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
1077
1246
|
session_id: (0, import_pg_core.varchar)("session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
|
|
1078
1247
|
env_var_name: (0, import_pg_core.text)("env_var_name").notNull(),
|
|
1079
1248
|
created_at: t.timestamp("created_at").notNull()
|
|
1080
1249
|
},
|
|
1081
1250
|
(table) => ({
|
|
1251
|
+
tenantIdx: (0, import_pg_core.index)("session_env_selections_tenant_id_idx").on(table.tenant_id),
|
|
1082
1252
|
pk: (0, import_pg_core.primaryKey)({ columns: [table.session_id, table.env_var_name] }),
|
|
1083
1253
|
sessionIdx: (0, import_pg_core.index)("session_env_selections_session_idx").on(table.session_id)
|
|
1084
1254
|
})
|
|
@@ -1086,6 +1256,7 @@ var sessionEnvSelections = (0, import_pg_core.pgTable)(
|
|
|
1086
1256
|
var kbNamespaces = (0, import_pg_core.pgTable)(
|
|
1087
1257
|
"kb_namespaces",
|
|
1088
1258
|
{
|
|
1259
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
1089
1260
|
namespace_id: (0, import_pg_core.varchar)("namespace_id", { length: 36 }).primaryKey(),
|
|
1090
1261
|
slug: (0, import_pg_core.text)("slug").notNull(),
|
|
1091
1262
|
display_name: (0, import_pg_core.text)("display_name").notNull(),
|
|
@@ -1112,7 +1283,8 @@ var kbNamespaces = (0, import_pg_core.pgTable)(
|
|
|
1112
1283
|
archived_at: t.timestamp("archived_at")
|
|
1113
1284
|
},
|
|
1114
1285
|
(table) => ({
|
|
1115
|
-
|
|
1286
|
+
tenantIdx: (0, import_pg_core.index)("kb_namespaces_tenant_id_idx").on(table.tenant_id),
|
|
1287
|
+
slugIdx: (0, import_pg_core.uniqueIndex)("kb_namespaces_tenant_slug_unique").on(table.tenant_id, table.slug).where(import_drizzle_orm2.sql`${table.archived} = false`),
|
|
1116
1288
|
kindIdx: (0, import_pg_core.index)("kb_namespaces_kind_idx").on(table.kind),
|
|
1117
1289
|
ownerIdx: (0, import_pg_core.index)("kb_namespaces_owner_idx").on(table.owner_user_id),
|
|
1118
1290
|
repoIdx: (0, import_pg_core.index)("kb_namespaces_repo_idx").on(table.repo_id),
|
|
@@ -1123,6 +1295,7 @@ var kbNamespaces = (0, import_pg_core.pgTable)(
|
|
|
1123
1295
|
var kbNamespaceAcl = (0, import_pg_core.pgTable)(
|
|
1124
1296
|
"kb_namespace_acl",
|
|
1125
1297
|
{
|
|
1298
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
1126
1299
|
namespace_acl_id: (0, import_pg_core.varchar)("namespace_acl_id", { length: 36 }).primaryKey(),
|
|
1127
1300
|
namespace_id: (0, import_pg_core.varchar)("namespace_id", { length: 36 }).notNull().references(() => kbNamespaces.namespace_id, { onDelete: "cascade" }),
|
|
1128
1301
|
subject_type: (0, import_pg_core.text)("subject_type", { enum: ["user", "group"] }).notNull(),
|
|
@@ -1135,9 +1308,11 @@ var kbNamespaceAcl = (0, import_pg_core.pgTable)(
|
|
|
1135
1308
|
updated_at: t.timestamp("updated_at")
|
|
1136
1309
|
},
|
|
1137
1310
|
(table) => ({
|
|
1311
|
+
tenantIdx: (0, import_pg_core.index)("kb_namespace_acl_tenant_id_idx").on(table.tenant_id),
|
|
1138
1312
|
namespaceIdx: (0, import_pg_core.index)("kb_namespace_acl_namespace_idx").on(table.namespace_id),
|
|
1139
1313
|
subjectIdx: (0, import_pg_core.index)("kb_namespace_acl_subject_idx").on(table.subject_type, table.subject_id),
|
|
1140
|
-
namespaceSubjectIdx: (0, import_pg_core.uniqueIndex)("
|
|
1314
|
+
namespaceSubjectIdx: (0, import_pg_core.uniqueIndex)("kb_namespace_acl_tenant_namespace_subject_unique").on(
|
|
1315
|
+
table.tenant_id,
|
|
1141
1316
|
table.namespace_id,
|
|
1142
1317
|
table.subject_type,
|
|
1143
1318
|
table.subject_id
|
|
@@ -1147,6 +1322,7 @@ var kbNamespaceAcl = (0, import_pg_core.pgTable)(
|
|
|
1147
1322
|
var kbDocuments = (0, import_pg_core.pgTable)(
|
|
1148
1323
|
"kb_documents",
|
|
1149
1324
|
{
|
|
1325
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
1150
1326
|
document_id: (0, import_pg_core.varchar)("document_id", { length: 36 }).primaryKey(),
|
|
1151
1327
|
namespace_id: (0, import_pg_core.varchar)("namespace_id", { length: 36 }).notNull().references(() => kbNamespaces.namespace_id, { onDelete: "cascade" }),
|
|
1152
1328
|
path: (0, import_pg_core.text)("path").notNull(),
|
|
@@ -1174,8 +1350,9 @@ var kbDocuments = (0, import_pg_core.pgTable)(
|
|
|
1174
1350
|
archived_at: t.timestamp("archived_at")
|
|
1175
1351
|
},
|
|
1176
1352
|
(table) => ({
|
|
1177
|
-
|
|
1178
|
-
|
|
1353
|
+
tenantIdx: (0, import_pg_core.index)("kb_documents_tenant_id_idx").on(table.tenant_id),
|
|
1354
|
+
namespacePathIdx: (0, import_pg_core.uniqueIndex)("kb_documents_tenant_namespace_path_unique").on(table.tenant_id, table.namespace_id, table.path).where(import_drizzle_orm2.sql`${table.archived} = false`),
|
|
1355
|
+
uriIdx: (0, import_pg_core.uniqueIndex)("kb_documents_tenant_uri_unique").on(table.tenant_id, table.uri).where(import_drizzle_orm2.sql`${table.archived} = false`),
|
|
1179
1356
|
namespaceIdx: (0, import_pg_core.index)("kb_documents_namespace_idx").on(table.namespace_id),
|
|
1180
1357
|
kindIdx: (0, import_pg_core.index)("kb_documents_kind_idx").on(table.kind),
|
|
1181
1358
|
visibilityIdx: (0, import_pg_core.index)("kb_documents_visibility_idx").on(table.visibility),
|
|
@@ -1188,6 +1365,7 @@ var kbDocuments = (0, import_pg_core.pgTable)(
|
|
|
1188
1365
|
var kbDocumentVersions = (0, import_pg_core.pgTable)(
|
|
1189
1366
|
"kb_document_versions",
|
|
1190
1367
|
{
|
|
1368
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
1191
1369
|
version_id: (0, import_pg_core.varchar)("version_id", { length: 36 }).primaryKey(),
|
|
1192
1370
|
document_id: (0, import_pg_core.varchar)("document_id", { length: 36 }).notNull().references(() => kbDocuments.document_id, { onDelete: "cascade" }),
|
|
1193
1371
|
version_number: (0, import_pg_core.integer)("version_number").notNull(),
|
|
@@ -1207,7 +1385,9 @@ var kbDocumentVersions = (0, import_pg_core.pgTable)(
|
|
|
1207
1385
|
created_at: t.timestamp("created_at").notNull()
|
|
1208
1386
|
},
|
|
1209
1387
|
(table) => ({
|
|
1210
|
-
|
|
1388
|
+
tenantIdx: (0, import_pg_core.index)("kb_document_versions_tenant_id_idx").on(table.tenant_id),
|
|
1389
|
+
documentVersionIdx: (0, import_pg_core.uniqueIndex)("kb_document_versions_tenant_document_version_unique").on(
|
|
1390
|
+
table.tenant_id,
|
|
1211
1391
|
table.document_id,
|
|
1212
1392
|
table.version_number
|
|
1213
1393
|
),
|
|
@@ -1219,6 +1399,7 @@ var kbDocumentVersions = (0, import_pg_core.pgTable)(
|
|
|
1219
1399
|
var kbDocumentUnits = (0, import_pg_core.pgTable)(
|
|
1220
1400
|
"kb_document_units",
|
|
1221
1401
|
{
|
|
1402
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
1222
1403
|
unit_id: (0, import_pg_core.varchar)("unit_id", { length: 36 }).primaryKey(),
|
|
1223
1404
|
document_id: (0, import_pg_core.varchar)("document_id", { length: 36 }).notNull().references(() => kbDocuments.document_id, { onDelete: "cascade" }),
|
|
1224
1405
|
version_id: (0, import_pg_core.varchar)("version_id", { length: 36 }).notNull().references(() => kbDocumentVersions.version_id, { onDelete: "cascade" }),
|
|
@@ -1243,6 +1424,7 @@ var kbDocumentUnits = (0, import_pg_core.pgTable)(
|
|
|
1243
1424
|
updated_at: t.timestamp("updated_at")
|
|
1244
1425
|
},
|
|
1245
1426
|
(table) => ({
|
|
1427
|
+
tenantIdx: (0, import_pg_core.index)("kb_document_units_tenant_id_idx").on(table.tenant_id),
|
|
1246
1428
|
documentIdx: (0, import_pg_core.index)("kb_document_units_document_idx").on(table.document_id),
|
|
1247
1429
|
versionIdx: (0, import_pg_core.index)("kb_document_units_version_idx").on(table.version_id),
|
|
1248
1430
|
versionOrdinalIdx: (0, import_pg_core.index)("kb_document_units_version_ordinal_idx").on(
|
|
@@ -1256,6 +1438,7 @@ var kbDocumentUnits = (0, import_pg_core.pgTable)(
|
|
|
1256
1438
|
var kbEmbeddingSpaces = (0, import_pg_core.pgTable)(
|
|
1257
1439
|
"kb_embedding_spaces",
|
|
1258
1440
|
{
|
|
1441
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
1259
1442
|
embedding_space_id: (0, import_pg_core.varchar)("embedding_space_id", { length: 36 }).primaryKey(),
|
|
1260
1443
|
provider: (0, import_pg_core.text)("provider").notNull(),
|
|
1261
1444
|
model: (0, import_pg_core.text)("model").notNull(),
|
|
@@ -1268,7 +1451,9 @@ var kbEmbeddingSpaces = (0, import_pg_core.pgTable)(
|
|
|
1268
1451
|
updated_at: t.timestamp("updated_at")
|
|
1269
1452
|
},
|
|
1270
1453
|
(table) => ({
|
|
1271
|
-
|
|
1454
|
+
tenantIdx: (0, import_pg_core.index)("kb_embedding_spaces_tenant_id_idx").on(table.tenant_id),
|
|
1455
|
+
providerModelIdx: (0, import_pg_core.uniqueIndex)("kb_embedding_spaces_tenant_provider_model_unique").on(
|
|
1456
|
+
table.tenant_id,
|
|
1272
1457
|
table.provider,
|
|
1273
1458
|
table.model,
|
|
1274
1459
|
table.dimensions,
|
|
@@ -1281,6 +1466,7 @@ var kbEmbeddingSpaces = (0, import_pg_core.pgTable)(
|
|
|
1281
1466
|
var kbGraphNodes = (0, import_pg_core.pgTable)(
|
|
1282
1467
|
"kb_graph_nodes",
|
|
1283
1468
|
{
|
|
1469
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
1284
1470
|
node_id: (0, import_pg_core.varchar)("node_id", { length: 36 }).primaryKey(),
|
|
1285
1471
|
node_type: (0, import_pg_core.text)("node_type", {
|
|
1286
1472
|
enum: [
|
|
@@ -1346,7 +1532,8 @@ var kbGraphNodes = (0, import_pg_core.pgTable)(
|
|
|
1346
1532
|
archived_at: t.timestamp("archived_at")
|
|
1347
1533
|
},
|
|
1348
1534
|
(table) => ({
|
|
1349
|
-
|
|
1535
|
+
tenantIdx: (0, import_pg_core.index)("kb_graph_nodes_tenant_id_idx").on(table.tenant_id),
|
|
1536
|
+
uriIdx: (0, import_pg_core.uniqueIndex)("kb_graph_nodes_tenant_uri_unique").on(table.tenant_id, table.uri).where(import_drizzle_orm2.sql`${table.archived} = false`),
|
|
1350
1537
|
typeIdx: (0, import_pg_core.index)("kb_graph_nodes_type_idx").on(table.node_type),
|
|
1351
1538
|
namespaceIdx: (0, import_pg_core.index)("kb_graph_nodes_namespace_idx").on(table.namespace_id),
|
|
1352
1539
|
documentIdx: (0, import_pg_core.index)("kb_graph_nodes_document_idx").on(table.document_id),
|
|
@@ -1366,6 +1553,7 @@ var kbGraphNodes = (0, import_pg_core.pgTable)(
|
|
|
1366
1553
|
var kbGraphEdges = (0, import_pg_core.pgTable)(
|
|
1367
1554
|
"kb_graph_edges",
|
|
1368
1555
|
{
|
|
1556
|
+
tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
|
|
1369
1557
|
edge_id: (0, import_pg_core.varchar)("edge_id", { length: 36 }).primaryKey(),
|
|
1370
1558
|
source_node_id: (0, import_pg_core.varchar)("source_node_id", { length: 36 }).notNull().references(() => kbGraphNodes.node_id, { onDelete: "cascade" }),
|
|
1371
1559
|
target_node_id: (0, import_pg_core.varchar)("target_node_id", { length: 36 }).notNull().references(() => kbGraphNodes.node_id, { onDelete: "cascade" }),
|
|
@@ -1394,6 +1582,7 @@ var kbGraphEdges = (0, import_pg_core.pgTable)(
|
|
|
1394
1582
|
archived_at: t.timestamp("archived_at")
|
|
1395
1583
|
},
|
|
1396
1584
|
(table) => ({
|
|
1585
|
+
tenantIdx: (0, import_pg_core.index)("kb_graph_edges_tenant_id_idx").on(table.tenant_id),
|
|
1397
1586
|
sourceIdx: (0, import_pg_core.index)("kb_graph_edges_source_idx").on(table.source_node_id),
|
|
1398
1587
|
targetIdx: (0, import_pg_core.index)("kb_graph_edges_target_idx").on(table.target_node_id),
|
|
1399
1588
|
typeIdx: (0, import_pg_core.index)("kb_graph_edges_type_idx").on(table.edge_type),
|
|
@@ -1405,7 +1594,7 @@ var kbGraphEdges = (0, import_pg_core.pgTable)(
|
|
|
1405
1594
|
table.target_node_id,
|
|
1406
1595
|
table.edge_type
|
|
1407
1596
|
),
|
|
1408
|
-
sourceTargetTypeIdx: (0, import_pg_core.uniqueIndex)("
|
|
1597
|
+
sourceTargetTypeIdx: (0, import_pg_core.uniqueIndex)("kb_graph_edges_tenant_source_target_type_unique").on(table.tenant_id, table.source_node_id, table.target_node_id, table.edge_type).where(import_drizzle_orm2.sql`${table.archived} = false`),
|
|
1409
1598
|
archivedIdx: (0, import_pg_core.index)("kb_graph_edges_archived_idx").on(table.archived)
|
|
1410
1599
|
})
|
|
1411
1600
|
);
|
|
@@ -1467,6 +1656,7 @@ __export(schema_sqlite_exports, {
|
|
|
1467
1656
|
cardTypes: () => cardTypes2,
|
|
1468
1657
|
cards: () => cards2,
|
|
1469
1658
|
gatewayChannels: () => gatewayChannels2,
|
|
1659
|
+
gatewayOutboundMessages: () => gatewayOutboundMessages2,
|
|
1470
1660
|
groupMemberships: () => groupMemberships2,
|
|
1471
1661
|
groups: () => groups2,
|
|
1472
1662
|
kbDocumentUnits: () => kbDocumentUnits2,
|
|
@@ -1565,6 +1755,7 @@ var sessions2 = (0, import_sqlite_core.sqliteTable)(
|
|
|
1565
1755
|
},
|
|
1566
1756
|
(table) => ({
|
|
1567
1757
|
statusIdx: (0, import_sqlite_core.index)("sessions_status_idx").on(table.status),
|
|
1758
|
+
statusReadyIdx: (0, import_sqlite_core.index)("sessions_status_ready_idx").on(table.status, table.ready_for_prompt),
|
|
1568
1759
|
agenticToolIdx: (0, import_sqlite_core.index)("sessions_agentic_tool_idx").on(table.agentic_tool),
|
|
1569
1760
|
boardIdx: (0, import_sqlite_core.index)("sessions_board_idx").on(table.board_id),
|
|
1570
1761
|
branchIdx: (0, import_sqlite_core.index)("sessions_branch_idx").on(table.branch_id),
|
|
@@ -1604,6 +1795,9 @@ var sessionRelationships2 = (0, import_sqlite_core.sqliteTable)(
|
|
|
1604
1795
|
sourceIdx: (0, import_sqlite_core.index)("session_relationships_source_idx").on(table.source_session_id),
|
|
1605
1796
|
targetIdx: (0, import_sqlite_core.index)("session_relationships_target_idx").on(table.target_session_id),
|
|
1606
1797
|
callbackIdx: (0, import_sqlite_core.index)("session_relationships_callback_idx").on(table.callback_session_id),
|
|
1798
|
+
// Note: no tenant_source/tenant_target composite indexes here — SQLite schema
|
|
1799
|
+
// has no tenant column on this table (RLS is Postgres-only). The standalone
|
|
1800
|
+
// source/target indexes above are sufficient for SQLite.
|
|
1607
1801
|
sourceTargetTypeUnique: (0, import_sqlite_core.uniqueIndex)("session_relationships_source_target_type_unique").on(
|
|
1608
1802
|
table.source_session_id,
|
|
1609
1803
|
table.target_session_id,
|
|
@@ -1723,7 +1917,12 @@ var messages2 = (0, import_sqlite_core.sqliteTable)(
|
|
|
1723
1917
|
// Indexes for efficient lookups
|
|
1724
1918
|
sessionIdx: (0, import_sqlite_core.index)("messages_session_id_idx").on(table.session_id),
|
|
1725
1919
|
taskIdx: (0, import_sqlite_core.index)("messages_task_id_idx").on(table.task_id),
|
|
1726
|
-
sessionIndexIdx: (0, import_sqlite_core.index)("messages_session_index_idx").on(table.session_id, table.index)
|
|
1920
|
+
sessionIndexIdx: (0, import_sqlite_core.index)("messages_session_index_idx").on(table.session_id, table.index),
|
|
1921
|
+
timestampIdx: (0, import_sqlite_core.index)("messages_timestamp_idx").on(table.timestamp),
|
|
1922
|
+
sessionTimestampIdx: (0, import_sqlite_core.index)("messages_session_timestamp_idx").on(
|
|
1923
|
+
table.session_id,
|
|
1924
|
+
table.timestamp
|
|
1925
|
+
)
|
|
1727
1926
|
})
|
|
1728
1927
|
);
|
|
1729
1928
|
var boards2 = (0, import_sqlite_core.sqliteTable)(
|
|
@@ -1949,6 +2148,9 @@ var users2 = (0, import_sqlite_core.sqliteTable)(
|
|
|
1949
2148
|
onboarding_completed: t2.bool("onboarding_completed").notNull().default(false),
|
|
1950
2149
|
// Force password change flag (admin-settable, auto-cleared on password change)
|
|
1951
2150
|
must_change_password: t2.bool("must_change_password").notNull().default(false),
|
|
2151
|
+
// Auth invalidation marker. Password changes set this timestamp so any
|
|
2152
|
+
// previously issued browser access or refresh token is rejected.
|
|
2153
|
+
tokens_valid_after: t2.timestamp("tokens_valid_after"),
|
|
1952
2154
|
// JSON blob for profile/preferences
|
|
1953
2155
|
data: t2.json("data").$type().notNull()
|
|
1954
2156
|
},
|
|
@@ -2392,6 +2594,66 @@ var threadSessionMap2 = (0, import_sqlite_core.sqliteTable)(
|
|
|
2392
2594
|
channelStatusIdx: (0, import_sqlite_core.index)("idx_thread_map_channel_status").on(table.channel_id, table.status)
|
|
2393
2595
|
})
|
|
2394
2596
|
);
|
|
2597
|
+
var gatewayOutboundMessages2 = (0, import_sqlite_core.sqliteTable)(
|
|
2598
|
+
"gateway_outbound_messages",
|
|
2599
|
+
{
|
|
2600
|
+
id: (0, import_sqlite_core.text)("id", { length: 36 }).primaryKey(),
|
|
2601
|
+
created_at: t2.timestamp("created_at").notNull(),
|
|
2602
|
+
updated_at: t2.timestamp("updated_at").notNull(),
|
|
2603
|
+
gateway_channel_id: (0, import_sqlite_core.text)("gateway_channel_id", { length: 36 }).notNull().references(() => gatewayChannels2.id, { onDelete: "cascade" }),
|
|
2604
|
+
channel_type: (0, import_sqlite_core.text)("channel_type", {
|
|
2605
|
+
enum: ["slack", "discord", "whatsapp", "telegram", "github", "teams"]
|
|
2606
|
+
}).notNull(),
|
|
2607
|
+
platform_channel_id: (0, import_sqlite_core.text)("platform_channel_id").notNull(),
|
|
2608
|
+
platform_message_id: (0, import_sqlite_core.text)("platform_message_id").notNull(),
|
|
2609
|
+
platform_thread_id: (0, import_sqlite_core.text)("platform_thread_id").notNull(),
|
|
2610
|
+
platform_permalink: (0, import_sqlite_core.text)("platform_permalink"),
|
|
2611
|
+
target_branch_id: (0, import_sqlite_core.text)("target_branch_id", { length: 36 }).notNull().references(() => branches2.branch_id),
|
|
2612
|
+
emitted_by_user_id: (0, import_sqlite_core.text)("emitted_by_user_id", { length: 36 }).notNull().references(() => users2.user_id),
|
|
2613
|
+
emitted_by_session_id: (0, import_sqlite_core.text)("emitted_by_session_id", { length: 36 }).references(
|
|
2614
|
+
() => sessions2.session_id,
|
|
2615
|
+
{
|
|
2616
|
+
onDelete: "set null"
|
|
2617
|
+
}
|
|
2618
|
+
),
|
|
2619
|
+
emitted_by_task_id: (0, import_sqlite_core.text)("emitted_by_task_id", { length: 36 }).references(() => tasks2.task_id, {
|
|
2620
|
+
onDelete: "set null"
|
|
2621
|
+
}),
|
|
2622
|
+
emitted_by_schedule_id: (0, import_sqlite_core.text)("emitted_by_schedule_id", { length: 36 }).references(
|
|
2623
|
+
() => schedules2.schedule_id,
|
|
2624
|
+
{
|
|
2625
|
+
onDelete: "set null"
|
|
2626
|
+
}
|
|
2627
|
+
),
|
|
2628
|
+
message_text: (0, import_sqlite_core.text)("message_text").notNull(),
|
|
2629
|
+
message_preview: (0, import_sqlite_core.text)("message_preview").notNull(),
|
|
2630
|
+
metadata: t2.json("metadata"),
|
|
2631
|
+
consumed_by_session_id: (0, import_sqlite_core.text)("consumed_by_session_id", { length: 36 }).references(
|
|
2632
|
+
() => sessions2.session_id,
|
|
2633
|
+
{
|
|
2634
|
+
onDelete: "set null"
|
|
2635
|
+
}
|
|
2636
|
+
),
|
|
2637
|
+
consumed_at: t2.timestamp("consumed_at")
|
|
2638
|
+
},
|
|
2639
|
+
(table) => ({
|
|
2640
|
+
uniqueChannelThread: (0, import_sqlite_core.uniqueIndex)("uniq_gateway_outbound_channel_thread").on(
|
|
2641
|
+
table.gateway_channel_id,
|
|
2642
|
+
table.platform_thread_id
|
|
2643
|
+
),
|
|
2644
|
+
emittedSessionIdx: (0, import_sqlite_core.index)("idx_gateway_outbound_emitted_session").on(
|
|
2645
|
+
table.emitted_by_session_id
|
|
2646
|
+
),
|
|
2647
|
+
emittedScheduleIdx: (0, import_sqlite_core.index)("idx_gateway_outbound_emitted_schedule").on(
|
|
2648
|
+
table.emitted_by_schedule_id
|
|
2649
|
+
),
|
|
2650
|
+
targetBranchCreatedIdx: (0, import_sqlite_core.index)("idx_gateway_outbound_branch_created").on(
|
|
2651
|
+
table.target_branch_id,
|
|
2652
|
+
table.created_at
|
|
2653
|
+
),
|
|
2654
|
+
consumedIdx: (0, import_sqlite_core.index)("idx_gateway_outbound_consumed").on(table.consumed_at)
|
|
2655
|
+
})
|
|
2656
|
+
);
|
|
2395
2657
|
var sessionEnvSelections2 = (0, import_sqlite_core.sqliteTable)(
|
|
2396
2658
|
"session_env_selections",
|
|
2397
2659
|
{
|
|
@@ -2774,7 +3036,7 @@ var import_node_fs = require("fs");
|
|
|
2774
3036
|
var import_promises = __toESM(require("fs/promises"), 1);
|
|
2775
3037
|
var import_node_os = __toESM(require("os"), 1);
|
|
2776
3038
|
var import_node_path = __toESM(require("path"), 1);
|
|
2777
|
-
var
|
|
3039
|
+
var yaml = __toESM(require("js-yaml"), 1);
|
|
2778
3040
|
|
|
2779
3041
|
// src/config/analytics-defaults.ts
|
|
2780
3042
|
function getDefaultAnalyticsConfig() {
|
|
@@ -2875,6 +3137,64 @@ function resolveExecutorHeartbeatConfig(execution) {
|
|
|
2875
3137
|
};
|
|
2876
3138
|
}
|
|
2877
3139
|
|
|
3140
|
+
// src/config/multitenancy.ts
|
|
3141
|
+
var DEFAULT_STATIC_TENANT_ID = "default";
|
|
3142
|
+
var RESERVED_AUTH_CLAIMS = /* @__PURE__ */ new Set(["aud", "exp", "iat", "iss", "jti", "nbf", "sub", "type"]);
|
|
3143
|
+
function detectPostgresUrl(url) {
|
|
3144
|
+
if (!url) return false;
|
|
3145
|
+
const lower = url.toLowerCase();
|
|
3146
|
+
return lower.startsWith("postgresql://") || lower.startsWith("postgres://") || lower.startsWith("pg://");
|
|
3147
|
+
}
|
|
3148
|
+
function resolveMultiTenancyDatabaseDialect(config = {}) {
|
|
3149
|
+
if (process.env.AGOR_DB_DIALECT === "postgresql" || process.env.AGOR_DB_DIALECT === "sqlite") {
|
|
3150
|
+
return process.env.AGOR_DB_DIALECT;
|
|
3151
|
+
}
|
|
3152
|
+
if (detectPostgresUrl(process.env.DATABASE_URL)) return "postgresql";
|
|
3153
|
+
if (config.database?.dialect === "postgresql" || config.database?.dialect === "sqlite") {
|
|
3154
|
+
return config.database.dialect;
|
|
3155
|
+
}
|
|
3156
|
+
if (detectPostgresUrl(config.database?.postgresql?.url) || config.database?.postgresql?.host) {
|
|
3157
|
+
return "postgresql";
|
|
3158
|
+
}
|
|
3159
|
+
return "sqlite";
|
|
3160
|
+
}
|
|
3161
|
+
function resolveMultiTenancyConfig(config) {
|
|
3162
|
+
const raw = config.multi_tenancy ?? {};
|
|
3163
|
+
const mode = raw.mode ?? "static";
|
|
3164
|
+
return {
|
|
3165
|
+
mode,
|
|
3166
|
+
static_tenant_id: raw.static_tenant_id?.trim() || DEFAULT_STATIC_TENANT_ID,
|
|
3167
|
+
...raw.auth_claim ? { auth_claim: raw.auth_claim } : {},
|
|
3168
|
+
...raw.trusted_header ? { trusted_header: raw.trusted_header } : {}
|
|
3169
|
+
};
|
|
3170
|
+
}
|
|
3171
|
+
function assertValidMultiTenancyConfig(config) {
|
|
3172
|
+
const resolved = resolveMultiTenancyConfig(config);
|
|
3173
|
+
if (resolved.mode !== "static" && resolved.mode !== "required_from_auth") {
|
|
3174
|
+
throw new Error("Config error: multi_tenancy.mode must be one of: static, required_from_auth");
|
|
3175
|
+
}
|
|
3176
|
+
if (!resolved.static_tenant_id) {
|
|
3177
|
+
throw new Error("Config error: multi_tenancy.static_tenant_id must not be empty");
|
|
3178
|
+
}
|
|
3179
|
+
if (resolved.auth_claim && RESERVED_AUTH_CLAIMS.has(resolved.auth_claim)) {
|
|
3180
|
+
throw new Error(
|
|
3181
|
+
`Config error: multi_tenancy.auth_claim cannot be reserved JWT claim '${resolved.auth_claim}'`
|
|
3182
|
+
);
|
|
3183
|
+
}
|
|
3184
|
+
if (resolved.mode === "required_from_auth") {
|
|
3185
|
+
if (resolveMultiTenancyDatabaseDialect(config) !== "postgresql") {
|
|
3186
|
+
throw new Error(
|
|
3187
|
+
"Config error: multi_tenancy.required_from_auth requires database.dialect: postgresql"
|
|
3188
|
+
);
|
|
3189
|
+
}
|
|
3190
|
+
if (!resolved.auth_claim && !resolved.trusted_header) {
|
|
3191
|
+
throw new Error(
|
|
3192
|
+
"Config error: multi_tenancy.required_from_auth requires multi_tenancy.auth_claim or multi_tenancy.trusted_header"
|
|
3193
|
+
);
|
|
3194
|
+
}
|
|
3195
|
+
}
|
|
3196
|
+
}
|
|
3197
|
+
|
|
2878
3198
|
// src/config/config-manager.ts
|
|
2879
3199
|
var NO_FILE = -1;
|
|
2880
3200
|
var NO_FILE_KEY = { mtimeMs: NO_FILE, size: 0 };
|
|
@@ -2907,7 +3227,10 @@ function writeCachedConfig(configPath, config, key) {
|
|
|
2907
3227
|
cachedEntry = { path: configPath, config: structuredClone(config), key };
|
|
2908
3228
|
}
|
|
2909
3229
|
function parseAndValidateConfig(content) {
|
|
2910
|
-
|
|
3230
|
+
if (content.trim() === "") {
|
|
3231
|
+
return {};
|
|
3232
|
+
}
|
|
3233
|
+
const parsed = yaml.load(content);
|
|
2911
3234
|
const finalConfig = parsed || {};
|
|
2912
3235
|
validateConfig(finalConfig);
|
|
2913
3236
|
return finalConfig;
|
|
@@ -2936,6 +3259,7 @@ To update: agor config set execution.unix_user_mode insulated`
|
|
|
2936
3259
|
`Config error: execution.managed_envs_execution_mode must be one of: hybrid, webhook-only`
|
|
2937
3260
|
);
|
|
2938
3261
|
}
|
|
3262
|
+
assertValidMultiTenancyConfig(config);
|
|
2939
3263
|
validateOptionalHttpUrl(
|
|
2940
3264
|
config.external_launch,
|
|
2941
3265
|
"login_redirect_url",
|
|
@@ -2996,7 +3320,12 @@ function getDefaultConfig() {
|
|
|
2996
3320
|
// Default: sync passwords to Unix
|
|
2997
3321
|
executor_heartbeat: resolveExecutorHeartbeatConfig()
|
|
2998
3322
|
},
|
|
2999
|
-
analytics: getDefaultAnalyticsConfig()
|
|
3323
|
+
analytics: getDefaultAnalyticsConfig(),
|
|
3324
|
+
telemetry: {},
|
|
3325
|
+
multi_tenancy: {
|
|
3326
|
+
mode: "static",
|
|
3327
|
+
static_tenant_id: "default"
|
|
3328
|
+
}
|
|
3000
3329
|
};
|
|
3001
3330
|
}
|
|
3002
3331
|
function loadConfigSync() {
|
|
@@ -3110,6 +3439,7 @@ var userMcpOauthTokens3 = schema.userMcpOauthTokens;
|
|
|
3110
3439
|
var boardComments3 = schema.boardComments;
|
|
3111
3440
|
var gatewayChannels3 = schema.gatewayChannels;
|
|
3112
3441
|
var threadSessionMap3 = schema.threadSessionMap;
|
|
3442
|
+
var gatewayOutboundMessages3 = schema.gatewayOutboundMessages;
|
|
3113
3443
|
var userApiKeys3 = schema.userApiKeys;
|
|
3114
3444
|
var serializedSessions3 = schema.serializedSessions;
|
|
3115
3445
|
var kbNamespaces3 = schema.kbNamespaces;
|
|
@@ -3253,6 +3583,15 @@ function renderTemplate(templateString, context, options = {}) {
|
|
|
3253
3583
|
}
|
|
3254
3584
|
}
|
|
3255
3585
|
|
|
3586
|
+
// src/mcp/template-patterns.ts
|
|
3587
|
+
function containsTemplate(value) {
|
|
3588
|
+
return value.includes("{{") && value.includes("}}");
|
|
3589
|
+
}
|
|
3590
|
+
var USER_ENV_PLACEHOLDER_RE = /^\{\{\s*user\.env\.[A-Za-z_][A-Za-z0-9_]*\s*\}\}$/;
|
|
3591
|
+
function isUserEnvPlaceholder(value) {
|
|
3592
|
+
return USER_ENV_PLACEHOLDER_RE.test(value.trim());
|
|
3593
|
+
}
|
|
3594
|
+
|
|
3256
3595
|
// src/mcp/template-resolver.ts
|
|
3257
3596
|
function buildMCPTemplateContextFromEnv(env) {
|
|
3258
3597
|
const userEnvKeysStr = env[AGOR_USER_ENV_KEYS_VAR];
|
|
@@ -3270,9 +3609,6 @@ function buildMCPTemplateContextFromEnv(env) {
|
|
|
3270
3609
|
}
|
|
3271
3610
|
};
|
|
3272
3611
|
}
|
|
3273
|
-
function containsTemplate(value) {
|
|
3274
|
-
return value.includes("{{") && value.includes("}}");
|
|
3275
|
-
}
|
|
3276
3612
|
function resolveStringValue(fieldName, templateValue, context) {
|
|
3277
3613
|
if (!containsTemplate(templateValue)) {
|
|
3278
3614
|
return templateValue;
|
|
@@ -3305,6 +3641,12 @@ function resolveMcpServerEnv(envTemplate, context) {
|
|
|
3305
3641
|
}
|
|
3306
3642
|
return Object.keys(result).length > 0 ? result : void 0;
|
|
3307
3643
|
}
|
|
3644
|
+
var TEMPLATE_RESOLVABLE_MCP_AUTH_SECRET_FIELDS = [
|
|
3645
|
+
"token",
|
|
3646
|
+
"api_token",
|
|
3647
|
+
"api_secret",
|
|
3648
|
+
"oauth_client_secret"
|
|
3649
|
+
];
|
|
3308
3650
|
function resolveMcpServerTemplates(server, context) {
|
|
3309
3651
|
const resolved = { ...server };
|
|
3310
3652
|
const unresolvedFields = [];
|
|
@@ -3447,7 +3789,10 @@ function resolveMcpServersTemplates(servers, context) {
|
|
|
3447
3789
|
}
|
|
3448
3790
|
// Annotate the CommonJS export names for ESM import in node:
|
|
3449
3791
|
0 && (module.exports = {
|
|
3792
|
+
TEMPLATE_RESOLVABLE_MCP_AUTH_SECRET_FIELDS,
|
|
3450
3793
|
buildMCPTemplateContextFromEnv,
|
|
3794
|
+
containsTemplate,
|
|
3795
|
+
isUserEnvPlaceholder,
|
|
3451
3796
|
resolveMcpServerEnv,
|
|
3452
3797
|
resolveMcpServerTemplates,
|
|
3453
3798
|
resolveMcpServersTemplates
|