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
|
@@ -57,19 +57,49 @@ var init_ids = __esm({
|
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
59
|
|
|
60
|
+
// src/db/tenant-context.ts
|
|
61
|
+
import { AsyncLocalStorage } from "async_hooks";
|
|
62
|
+
function getCurrentTenantId() {
|
|
63
|
+
const store = tenantDatabaseScope.getStore();
|
|
64
|
+
return store?.kind === "tenant" ? store.tenantId : void 0;
|
|
65
|
+
}
|
|
66
|
+
var tenantDatabaseScope;
|
|
67
|
+
var init_tenant_context = __esm({
|
|
68
|
+
"src/db/tenant-context.ts"() {
|
|
69
|
+
"use strict";
|
|
70
|
+
init_esm_shims();
|
|
71
|
+
tenantDatabaseScope = new AsyncLocalStorage();
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
|
|
60
75
|
// src/db/database-wrapper.ts
|
|
61
76
|
import { sql } from "drizzle-orm";
|
|
62
77
|
function isSQLiteDatabase(db) {
|
|
63
78
|
return "run" in db && typeof db.run === "function";
|
|
64
79
|
}
|
|
65
|
-
function
|
|
80
|
+
function tableHasTenantColumn(table) {
|
|
81
|
+
return Boolean(table && "tenant_id" in table);
|
|
82
|
+
}
|
|
83
|
+
function withTenantInsertValues(values, table) {
|
|
84
|
+
const tenantId = getCurrentTenantId();
|
|
85
|
+
if (!tenantId || !tableHasTenantColumn(table)) return values;
|
|
86
|
+
const stamp = (row) => {
|
|
87
|
+
if (!row || typeof row !== "object" || Array.isArray(row)) return row;
|
|
88
|
+
if ("tenant_id" in row) return row;
|
|
89
|
+
return { tenant_id: tenantId, ...row };
|
|
90
|
+
};
|
|
91
|
+
return Array.isArray(values) ? values.map(stamp) : stamp(values);
|
|
92
|
+
}
|
|
93
|
+
function wrapQuery(query, db, table) {
|
|
66
94
|
return {
|
|
67
95
|
...query,
|
|
68
96
|
one: async () => {
|
|
69
97
|
if (isSQLiteDatabase(db)) {
|
|
70
98
|
return await query.get();
|
|
71
99
|
} else {
|
|
72
|
-
const results = await query.limit(
|
|
100
|
+
const results = await query.limit(
|
|
101
|
+
1
|
|
102
|
+
);
|
|
73
103
|
return results[0] || null;
|
|
74
104
|
}
|
|
75
105
|
},
|
|
@@ -91,30 +121,55 @@ function wrapQuery(query, db) {
|
|
|
91
121
|
return { rowsAffected: result.length || 0 };
|
|
92
122
|
}
|
|
93
123
|
},
|
|
94
|
-
// biome-ignore lint/suspicious/noExplicitAny: Drizzle query builder types vary by dialect
|
|
95
124
|
returning: () => wrapReturning(query.returning(), db),
|
|
96
125
|
// Preserve chainable methods
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
126
|
+
where: (...args) => wrapQuery(
|
|
127
|
+
query.where(...args),
|
|
128
|
+
db,
|
|
129
|
+
table
|
|
130
|
+
),
|
|
131
|
+
limit: (...args) => wrapQuery(
|
|
132
|
+
query.limit(...args),
|
|
133
|
+
db,
|
|
134
|
+
table
|
|
135
|
+
),
|
|
136
|
+
offset: (...args) => wrapQuery(
|
|
137
|
+
query.offset(...args),
|
|
138
|
+
db,
|
|
139
|
+
table
|
|
140
|
+
),
|
|
141
|
+
orderBy: (...args) => wrapQuery(
|
|
142
|
+
query.orderBy(...args),
|
|
143
|
+
db,
|
|
144
|
+
table
|
|
145
|
+
),
|
|
146
|
+
groupBy: (...args) => wrapQuery(
|
|
147
|
+
query.groupBy(...args),
|
|
148
|
+
db,
|
|
149
|
+
table
|
|
150
|
+
),
|
|
151
|
+
set: (...args) => wrapQuery(query.set(...args), db, table),
|
|
152
|
+
values: (...args) => wrapQuery(
|
|
153
|
+
query.values(
|
|
154
|
+
...args.map((arg) => withTenantInsertValues(arg, table))
|
|
155
|
+
),
|
|
156
|
+
db,
|
|
157
|
+
table
|
|
158
|
+
),
|
|
159
|
+
innerJoin: (...args) => wrapQuery(
|
|
160
|
+
query.innerJoin(...args),
|
|
161
|
+
db,
|
|
162
|
+
table
|
|
163
|
+
),
|
|
164
|
+
leftJoin: (...args) => wrapQuery(
|
|
165
|
+
query.leftJoin(...args),
|
|
166
|
+
db,
|
|
167
|
+
table
|
|
168
|
+
),
|
|
169
|
+
onConflictDoNothing: (...args) => wrapQuery(
|
|
170
|
+
query.onConflictDoNothing(...args),
|
|
171
|
+
db,
|
|
172
|
+
table
|
|
118
173
|
)
|
|
119
174
|
};
|
|
120
175
|
}
|
|
@@ -147,7 +202,7 @@ function select(db, columns) {
|
|
|
147
202
|
}
|
|
148
203
|
function insert(db, table) {
|
|
149
204
|
const query = db.insert(table);
|
|
150
|
-
return wrapQuery(query, db);
|
|
205
|
+
return wrapQuery(query, db, table);
|
|
151
206
|
}
|
|
152
207
|
function update(db, table) {
|
|
153
208
|
const query = db.update(table);
|
|
@@ -161,6 +216,7 @@ var init_database_wrapper = __esm({
|
|
|
161
216
|
"src/db/database-wrapper.ts"() {
|
|
162
217
|
"use strict";
|
|
163
218
|
init_esm_shims();
|
|
219
|
+
init_tenant_context();
|
|
164
220
|
}
|
|
165
221
|
});
|
|
166
222
|
|
|
@@ -408,6 +464,14 @@ var init_template = __esm({
|
|
|
408
464
|
}
|
|
409
465
|
});
|
|
410
466
|
|
|
467
|
+
// src/types/tenant.ts
|
|
468
|
+
var init_tenant = __esm({
|
|
469
|
+
"src/types/tenant.ts"() {
|
|
470
|
+
"use strict";
|
|
471
|
+
init_esm_shims();
|
|
472
|
+
}
|
|
473
|
+
});
|
|
474
|
+
|
|
411
475
|
// src/types/ui.ts
|
|
412
476
|
var init_ui = __esm({
|
|
413
477
|
"src/types/ui.ts"() {
|
|
@@ -498,6 +562,7 @@ var init_types = __esm({
|
|
|
498
562
|
init_session();
|
|
499
563
|
init_task();
|
|
500
564
|
init_template();
|
|
565
|
+
init_tenant();
|
|
501
566
|
init_ui();
|
|
502
567
|
init_user();
|
|
503
568
|
init_utils();
|
|
@@ -523,6 +588,7 @@ __export(schema_postgres_exports, {
|
|
|
523
588
|
cardTypes: () => cardTypes,
|
|
524
589
|
cards: () => cards,
|
|
525
590
|
gatewayChannels: () => gatewayChannels,
|
|
591
|
+
gatewayOutboundMessages: () => gatewayOutboundMessages,
|
|
526
592
|
groupMemberships: () => groupMemberships,
|
|
527
593
|
groups: () => groups,
|
|
528
594
|
kbDocumentUnits: () => kbDocumentUnits,
|
|
@@ -566,7 +632,7 @@ import {
|
|
|
566
632
|
uniqueIndex,
|
|
567
633
|
varchar
|
|
568
634
|
} from "drizzle-orm/pg-core";
|
|
569
|
-
var bytea, t, sessions, sessionRelationships, tasks, serializedSessions, messages, boards, repos, branches, branchOwners, boardOwners, schedules, users, groups, groupMemberships, branchGroupGrants, boardGroupGrants, appVariables, userApiKeys, mcpServers, cardTypes, cards, artifacts, artifactTrustGrants, boardObjects, sessionMcpServers, userMcpOauthTokens, boardComments, gatewayChannels, threadSessionMap, sessionEnvSelections, kbNamespaces, kbNamespaceAcl, kbDocuments, kbDocumentVersions, kbDocumentUnits, kbEmbeddingSpaces, kbGraphNodes, kbGraphEdges, sessionsRelations, sessionRelationshipsRelations, branchesRelations, schedulesRelations;
|
|
635
|
+
var bytea, t, sessions, sessionRelationships, tasks, serializedSessions, messages, boards, repos, branches, branchOwners, boardOwners, schedules, users, groups, groupMemberships, branchGroupGrants, boardGroupGrants, appVariables, userApiKeys, mcpServers, cardTypes, cards, artifacts, artifactTrustGrants, boardObjects, sessionMcpServers, userMcpOauthTokens, boardComments, gatewayChannels, threadSessionMap, gatewayOutboundMessages, sessionEnvSelections, kbNamespaces, kbNamespaceAcl, kbDocuments, kbDocumentVersions, kbDocumentUnits, kbEmbeddingSpaces, kbGraphNodes, kbGraphEdges, sessionsRelations, sessionRelationshipsRelations, branchesRelations, schedulesRelations;
|
|
570
636
|
var init_schema_postgres = __esm({
|
|
571
637
|
"src/db/schema.postgres.ts"() {
|
|
572
638
|
"use strict";
|
|
@@ -585,6 +651,7 @@ var init_schema_postgres = __esm({
|
|
|
585
651
|
sessions = pgTable(
|
|
586
652
|
"sessions",
|
|
587
653
|
{
|
|
654
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
588
655
|
// Primary identity
|
|
589
656
|
session_id: varchar("session_id", { length: 36 }).primaryKey(),
|
|
590
657
|
created_at: t.timestamp("created_at").notNull(),
|
|
@@ -644,7 +711,9 @@ var init_schema_postgres = __esm({
|
|
|
644
711
|
data: t.json("data").$type().notNull()
|
|
645
712
|
},
|
|
646
713
|
(table) => ({
|
|
714
|
+
tenantIdx: index("sessions_tenant_id_idx").on(table.tenant_id),
|
|
647
715
|
statusIdx: index("sessions_status_idx").on(table.status),
|
|
716
|
+
statusReadyIdx: index("sessions_status_ready_idx").on(table.status, table.ready_for_prompt),
|
|
648
717
|
agenticToolIdx: index("sessions_agentic_tool_idx").on(table.agentic_tool),
|
|
649
718
|
boardIdx: index("sessions_board_idx").on(table.board_id),
|
|
650
719
|
branchIdx: index("sessions_branch_idx").on(table.branch_id),
|
|
@@ -656,12 +725,13 @@ var init_schema_postgres = __esm({
|
|
|
656
725
|
// Partial unique index — covering for the scheduler's dedup lookup
|
|
657
726
|
// AND serves as the DB-level guard against check-then-create races
|
|
658
727
|
// in spawnScheduledSession.
|
|
659
|
-
scheduleRunUnique: uniqueIndex("sessions_schedule_run_unique").on(table.schedule_id, table.scheduled_run_at).where(sql2`${table.schedule_id} IS NOT NULL AND ${table.scheduled_run_at} IS NOT NULL`)
|
|
728
|
+
scheduleRunUnique: uniqueIndex("sessions_schedule_run_unique").on(table.tenant_id, table.schedule_id, table.scheduled_run_at).where(sql2`${table.schedule_id} IS NOT NULL AND ${table.scheduled_run_at} IS NOT NULL`)
|
|
660
729
|
})
|
|
661
730
|
);
|
|
662
731
|
sessionRelationships = pgTable(
|
|
663
732
|
"session_relationships",
|
|
664
733
|
{
|
|
734
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
665
735
|
relationship_id: varchar("relationship_id", { length: 36 }).primaryKey(),
|
|
666
736
|
source_session_id: varchar("source_session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
|
|
667
737
|
target_session_id: varchar("target_session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
|
|
@@ -679,10 +749,23 @@ var init_schema_postgres = __esm({
|
|
|
679
749
|
data: t.json("data")
|
|
680
750
|
},
|
|
681
751
|
(table) => ({
|
|
752
|
+
tenantIdx: index("session_relationships_tenant_id_idx").on(table.tenant_id),
|
|
682
753
|
sourceIdx: index("session_relationships_source_idx").on(table.source_session_id),
|
|
683
754
|
targetIdx: index("session_relationships_target_idx").on(table.target_session_id),
|
|
684
755
|
callbackIdx: index("session_relationships_callback_idx").on(table.callback_session_id),
|
|
756
|
+
// Composite indexes so the OR predicate in dispatchCompletionCallbacks
|
|
757
|
+
// (WHERE source_session_id = $1 OR target_session_id = $2) uses BitmapOr
|
|
758
|
+
// over these instead of a full tenant table scan via tenant_id_idx.
|
|
759
|
+
tenantSourceIdx: index("session_relationships_tenant_source_idx").on(
|
|
760
|
+
table.tenant_id,
|
|
761
|
+
table.source_session_id
|
|
762
|
+
),
|
|
763
|
+
tenantTargetIdx: index("session_relationships_tenant_target_idx").on(
|
|
764
|
+
table.tenant_id,
|
|
765
|
+
table.target_session_id
|
|
766
|
+
),
|
|
685
767
|
sourceTargetTypeUnique: uniqueIndex("session_relationships_source_target_type_unique").on(
|
|
768
|
+
table.tenant_id,
|
|
686
769
|
table.source_session_id,
|
|
687
770
|
table.target_session_id,
|
|
688
771
|
table.relationship_type
|
|
@@ -692,6 +775,7 @@ var init_schema_postgres = __esm({
|
|
|
692
775
|
tasks = pgTable(
|
|
693
776
|
"tasks",
|
|
694
777
|
{
|
|
778
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
695
779
|
task_id: varchar("task_id", { length: 36 }).primaryKey(),
|
|
696
780
|
session_id: varchar("session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
|
|
697
781
|
created_at: t.timestamp("created_at").notNull(),
|
|
@@ -721,19 +805,23 @@ var init_schema_postgres = __esm({
|
|
|
721
805
|
data: t.json("data").$type().notNull()
|
|
722
806
|
},
|
|
723
807
|
(table) => ({
|
|
808
|
+
tenantIdx: index("tasks_tenant_id_idx").on(table.tenant_id),
|
|
724
809
|
sessionIdx: index("tasks_session_idx").on(table.session_id),
|
|
725
810
|
statusIdx: index("tasks_status_idx").on(table.status),
|
|
726
811
|
createdIdx: index("tasks_created_idx").on(table.created_at),
|
|
812
|
+
// Composite for "latest task for session" queries (ORDER BY created_at DESC LIMIT 1).
|
|
813
|
+
sessionCreatedIdx: index("tasks_session_created_idx").on(table.session_id, table.created_at),
|
|
727
814
|
queueIdx: index("tasks_queue_idx").on(table.session_id, table.status, table.queue_position),
|
|
728
815
|
// Partial unique index — defense-in-depth for `tasks.createPending` race
|
|
729
816
|
// serialization. Only QUEUED rows are constrained; CREATED/RUNNING/done
|
|
730
817
|
// rows have NULL queue_position and are unaffected.
|
|
731
|
-
queuedPositionUnique: uniqueIndex("tasks_queued_position_unique").on(table.session_id, table.queue_position).where(sql2`${table.status} = 'queued'`)
|
|
818
|
+
queuedPositionUnique: uniqueIndex("tasks_queued_position_unique").on(table.tenant_id, table.session_id, table.queue_position).where(sql2`${table.status} = 'queued'`)
|
|
732
819
|
})
|
|
733
820
|
);
|
|
734
821
|
serializedSessions = pgTable(
|
|
735
822
|
"serialized_sessions",
|
|
736
823
|
{
|
|
824
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
737
825
|
id: varchar("id", { length: 36 }).primaryKey(),
|
|
738
826
|
session_id: varchar("session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
|
|
739
827
|
branch_id: varchar("branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
|
|
@@ -749,6 +837,7 @@ var init_schema_postgres = __esm({
|
|
|
749
837
|
// gzipped; NULL while status='processing'
|
|
750
838
|
},
|
|
751
839
|
(table) => ({
|
|
840
|
+
tenantIdx: index("serialized_sessions_tenant_id_idx").on(table.tenant_id),
|
|
752
841
|
sessionTurnIdx: index("serialized_sessions_session_turn_idx").on(
|
|
753
842
|
table.session_id,
|
|
754
843
|
table.turn_index
|
|
@@ -759,6 +848,7 @@ var init_schema_postgres = __esm({
|
|
|
759
848
|
messages = pgTable(
|
|
760
849
|
"messages",
|
|
761
850
|
{
|
|
851
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
762
852
|
// Primary identity
|
|
763
853
|
message_id: varchar("message_id", { length: 36 }).primaryKey(),
|
|
764
854
|
created_at: t.timestamp("created_at").notNull(),
|
|
@@ -798,15 +888,23 @@ var init_schema_postgres = __esm({
|
|
|
798
888
|
data: t.json("data").$type().notNull()
|
|
799
889
|
},
|
|
800
890
|
(table) => ({
|
|
891
|
+
tenantIdx: index("messages_tenant_id_idx").on(table.tenant_id),
|
|
892
|
+
tenantTimestampIdx: index("messages_tenant_timestamp_idx").on(table.tenant_id, table.timestamp),
|
|
801
893
|
// Indexes for efficient lookups
|
|
802
894
|
sessionIdx: index("messages_session_id_idx").on(table.session_id),
|
|
803
895
|
taskIdx: index("messages_task_id_idx").on(table.task_id),
|
|
804
|
-
sessionIndexIdx: index("messages_session_index_idx").on(table.session_id, table.index)
|
|
896
|
+
sessionIndexIdx: index("messages_session_index_idx").on(table.session_id, table.index),
|
|
897
|
+
timestampIdx: index("messages_timestamp_idx").on(table.timestamp),
|
|
898
|
+
sessionTimestampIdx: index("messages_session_timestamp_idx").on(
|
|
899
|
+
table.session_id,
|
|
900
|
+
table.timestamp
|
|
901
|
+
)
|
|
805
902
|
})
|
|
806
903
|
);
|
|
807
904
|
boards = pgTable(
|
|
808
905
|
"boards",
|
|
809
906
|
{
|
|
907
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
810
908
|
board_id: varchar("board_id", { length: 36 }).primaryKey(),
|
|
811
909
|
created_at: t.timestamp("created_at").notNull(),
|
|
812
910
|
updated_at: t.timestamp("updated_at"),
|
|
@@ -814,7 +912,7 @@ var init_schema_postgres = __esm({
|
|
|
814
912
|
created_by: varchar("created_by", { length: 36 }).notNull(),
|
|
815
913
|
// Materialized for lookups
|
|
816
914
|
name: text("name").notNull(),
|
|
817
|
-
slug: text("slug")
|
|
915
|
+
slug: text("slug"),
|
|
818
916
|
primary_assistant_id: varchar("primary_assistant_id", { length: 36 }).references(
|
|
819
917
|
() => branches.branch_id,
|
|
820
918
|
{
|
|
@@ -829,18 +927,21 @@ var init_schema_postgres = __esm({
|
|
|
829
927
|
archived_by: varchar("archived_by", { length: 36 })
|
|
830
928
|
},
|
|
831
929
|
(table) => ({
|
|
930
|
+
tenantIdx: index("boards_tenant_id_idx").on(table.tenant_id),
|
|
832
931
|
nameIdx: index("boards_name_idx").on(table.name),
|
|
833
|
-
slugIdx: index("boards_slug_idx").on(table.slug)
|
|
932
|
+
slugIdx: index("boards_slug_idx").on(table.slug),
|
|
933
|
+
slugTenantUnique: uniqueIndex("boards_tenant_slug_unique").on(table.tenant_id, table.slug)
|
|
834
934
|
})
|
|
835
935
|
);
|
|
836
936
|
repos = pgTable(
|
|
837
937
|
"repos",
|
|
838
938
|
{
|
|
939
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
839
940
|
repo_id: varchar("repo_id", { length: 36 }).primaryKey(),
|
|
840
941
|
created_at: t.timestamp("created_at").notNull(),
|
|
841
942
|
updated_at: t.timestamp("updated_at"),
|
|
842
943
|
// Materialized for querying
|
|
843
|
-
slug: text("slug").notNull()
|
|
944
|
+
slug: text("slug").notNull(),
|
|
844
945
|
repo_type: text("repo_type", { enum: ["remote", "local"] }).notNull().default("remote"),
|
|
845
946
|
// Unix group for repo-level git access (agor_rp_<short-id>)
|
|
846
947
|
// Users who have access to ANY branch in this repo get added to this group.
|
|
@@ -851,12 +952,15 @@ var init_schema_postgres = __esm({
|
|
|
851
952
|
data: t.json("data").$type().notNull()
|
|
852
953
|
},
|
|
853
954
|
(table) => ({
|
|
854
|
-
|
|
955
|
+
tenantIdx: index("repos_tenant_id_idx").on(table.tenant_id),
|
|
956
|
+
slugIdx: index("repos_slug_idx").on(table.slug),
|
|
957
|
+
slugTenantUnique: uniqueIndex("repos_tenant_slug_unique").on(table.tenant_id, table.slug)
|
|
855
958
|
})
|
|
856
959
|
);
|
|
857
960
|
branches = pgTable(
|
|
858
961
|
"branches",
|
|
859
962
|
{
|
|
963
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
860
964
|
// Primary identity
|
|
861
965
|
branch_id: varchar("branch_id", { length: 36 }).primaryKey(),
|
|
862
966
|
repo_id: varchar("repo_id", { length: 36 }).notNull().references(() => repos.repo_id, { onDelete: "cascade" }),
|
|
@@ -931,6 +1035,7 @@ var init_schema_postgres = __esm({
|
|
|
931
1035
|
data: t.json("data").$type().notNull()
|
|
932
1036
|
},
|
|
933
1037
|
(table) => ({
|
|
1038
|
+
tenantIdx: index("branches_tenant_id_idx").on(table.tenant_id),
|
|
934
1039
|
repoIdx: index("branches_repo_idx").on(table.repo_id),
|
|
935
1040
|
nameIdx: index("branches_name_idx").on(table.name),
|
|
936
1041
|
refIdx: index("branches_ref_idx").on(table.ref),
|
|
@@ -944,22 +1049,26 @@ var init_schema_postgres = __esm({
|
|
|
944
1049
|
branchOwners = pgTable(
|
|
945
1050
|
"branch_owners",
|
|
946
1051
|
{
|
|
1052
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
947
1053
|
branch_id: varchar("branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
|
|
948
1054
|
user_id: varchar("user_id", { length: 36 }).notNull().references(() => users.user_id, { onDelete: "cascade" }),
|
|
949
1055
|
created_at: t.timestamp("created_at").defaultNow()
|
|
950
1056
|
},
|
|
951
1057
|
(table) => ({
|
|
1058
|
+
tenantIdx: index("branch_owners_tenant_id_idx").on(table.tenant_id),
|
|
952
1059
|
pk: primaryKey({ columns: [table.branch_id, table.user_id] })
|
|
953
1060
|
})
|
|
954
1061
|
);
|
|
955
1062
|
boardOwners = pgTable(
|
|
956
1063
|
"board_owners",
|
|
957
1064
|
{
|
|
1065
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
958
1066
|
board_id: varchar("board_id", { length: 36 }).notNull().references(() => boards.board_id, { onDelete: "cascade" }),
|
|
959
1067
|
user_id: varchar("user_id", { length: 36 }).notNull().references(() => users.user_id, { onDelete: "cascade" }),
|
|
960
1068
|
created_at: t.timestamp("created_at")
|
|
961
1069
|
},
|
|
962
1070
|
(table) => ({
|
|
1071
|
+
tenantIdx: index("board_owners_tenant_id_idx").on(table.tenant_id),
|
|
963
1072
|
pk: primaryKey({ columns: [table.board_id, table.user_id] }),
|
|
964
1073
|
userIdx: index("board_owners_user_idx").on(table.user_id)
|
|
965
1074
|
})
|
|
@@ -967,6 +1076,7 @@ var init_schema_postgres = __esm({
|
|
|
967
1076
|
schedules = pgTable(
|
|
968
1077
|
"schedules",
|
|
969
1078
|
{
|
|
1079
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
970
1080
|
schedule_id: varchar("schedule_id", { length: 36 }).primaryKey(),
|
|
971
1081
|
branch_id: varchar("branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
|
|
972
1082
|
name: text("name").notNull(),
|
|
@@ -990,6 +1100,7 @@ var init_schema_postgres = __esm({
|
|
|
990
1100
|
created_by: varchar("created_by", { length: 36 }).notNull().references(() => users.user_id)
|
|
991
1101
|
},
|
|
992
1102
|
(table) => ({
|
|
1103
|
+
tenantIdx: index("schedules_tenant_id_idx").on(table.tenant_id),
|
|
993
1104
|
enabledNextRunIdx: index("schedules_enabled_next_run_idx").on(table.enabled, table.next_run_at),
|
|
994
1105
|
branchIdx: index("schedules_branch_idx").on(table.branch_id),
|
|
995
1106
|
createdByIdx: index("schedules_created_by_idx").on(table.created_by)
|
|
@@ -998,12 +1109,13 @@ var init_schema_postgres = __esm({
|
|
|
998
1109
|
users = pgTable(
|
|
999
1110
|
"users",
|
|
1000
1111
|
{
|
|
1112
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1001
1113
|
// Primary identity
|
|
1002
1114
|
user_id: varchar("user_id", { length: 36 }).primaryKey(),
|
|
1003
1115
|
created_at: t.timestamp("created_at").notNull(),
|
|
1004
1116
|
updated_at: t.timestamp("updated_at"),
|
|
1005
1117
|
// Materialized for auth lookups
|
|
1006
|
-
email: text("email").
|
|
1118
|
+
email: text("email").notNull(),
|
|
1007
1119
|
password: text("password").notNull(),
|
|
1008
1120
|
// bcrypt hashed
|
|
1009
1121
|
// Basic profile (materialized for display)
|
|
@@ -1019,16 +1131,22 @@ var init_schema_postgres = __esm({
|
|
|
1019
1131
|
onboarding_completed: t.bool("onboarding_completed").notNull().default(false),
|
|
1020
1132
|
// Force password change flag (admin-settable, auto-cleared on password change)
|
|
1021
1133
|
must_change_password: t.bool("must_change_password").notNull().default(false),
|
|
1134
|
+
// Auth invalidation marker. Password changes set this timestamp so any
|
|
1135
|
+
// previously issued browser access or refresh token is rejected.
|
|
1136
|
+
tokens_valid_after: t.timestamp("tokens_valid_after"),
|
|
1022
1137
|
// JSON blob for profile/preferences
|
|
1023
1138
|
data: t.json("data").$type().notNull()
|
|
1024
1139
|
},
|
|
1025
1140
|
(table) => ({
|
|
1026
|
-
|
|
1141
|
+
tenantIdx: index("users_tenant_id_idx").on(table.tenant_id),
|
|
1142
|
+
emailIdx: index("users_email_idx").on(table.email),
|
|
1143
|
+
emailTenantUnique: uniqueIndex("users_tenant_email_unique").on(table.tenant_id, table.email)
|
|
1027
1144
|
})
|
|
1028
1145
|
);
|
|
1029
1146
|
groups = pgTable(
|
|
1030
1147
|
"groups",
|
|
1031
1148
|
{
|
|
1149
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1032
1150
|
group_id: varchar("group_id", { length: 36 }).primaryKey(),
|
|
1033
1151
|
name: text("name").notNull(),
|
|
1034
1152
|
slug: text("slug").notNull(),
|
|
@@ -1041,13 +1159,15 @@ var init_schema_postgres = __esm({
|
|
|
1041
1159
|
updated_at: t.timestamp("updated_at")
|
|
1042
1160
|
},
|
|
1043
1161
|
(table) => ({
|
|
1044
|
-
|
|
1162
|
+
tenantIdx: index("groups_tenant_id_idx").on(table.tenant_id),
|
|
1163
|
+
slugIdx: uniqueIndex("groups_tenant_slug_unique").on(table.tenant_id, table.slug),
|
|
1045
1164
|
archivedIdx: index("groups_archived_idx").on(table.archived)
|
|
1046
1165
|
})
|
|
1047
1166
|
);
|
|
1048
1167
|
groupMemberships = pgTable(
|
|
1049
1168
|
"group_memberships",
|
|
1050
1169
|
{
|
|
1170
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1051
1171
|
group_id: varchar("group_id", { length: 36 }).notNull().references(() => groups.group_id, { onDelete: "cascade" }),
|
|
1052
1172
|
user_id: varchar("user_id", { length: 36 }).notNull().references(() => users.user_id, { onDelete: "cascade" }),
|
|
1053
1173
|
added_by: varchar("added_by", { length: 36 }).references(() => users.user_id, {
|
|
@@ -1056,6 +1176,7 @@ var init_schema_postgres = __esm({
|
|
|
1056
1176
|
created_at: t.timestamp("created_at").notNull()
|
|
1057
1177
|
},
|
|
1058
1178
|
(table) => ({
|
|
1179
|
+
tenantIdx: index("group_memberships_tenant_id_idx").on(table.tenant_id),
|
|
1059
1180
|
pk: primaryKey({ columns: [table.group_id, table.user_id] }),
|
|
1060
1181
|
userIdx: index("group_memberships_user_idx").on(table.user_id)
|
|
1061
1182
|
})
|
|
@@ -1063,6 +1184,7 @@ var init_schema_postgres = __esm({
|
|
|
1063
1184
|
branchGroupGrants = pgTable(
|
|
1064
1185
|
"branch_group_grants",
|
|
1065
1186
|
{
|
|
1187
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1066
1188
|
branch_id: varchar("branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
|
|
1067
1189
|
group_id: varchar("group_id", { length: 36 }).notNull().references(() => groups.group_id, { onDelete: "cascade" }),
|
|
1068
1190
|
can: text("can", { enum: [...BRANCH_PERMISSION_LEVELS] }).notNull().default("view"),
|
|
@@ -1074,6 +1196,7 @@ var init_schema_postgres = __esm({
|
|
|
1074
1196
|
updated_at: t.timestamp("updated_at")
|
|
1075
1197
|
},
|
|
1076
1198
|
(table) => ({
|
|
1199
|
+
tenantIdx: index("branch_group_grants_tenant_id_idx").on(table.tenant_id),
|
|
1077
1200
|
pk: primaryKey({ columns: [table.branch_id, table.group_id] }),
|
|
1078
1201
|
groupIdx: index("branch_group_grants_group_idx").on(table.group_id)
|
|
1079
1202
|
})
|
|
@@ -1081,6 +1204,7 @@ var init_schema_postgres = __esm({
|
|
|
1081
1204
|
boardGroupGrants = pgTable(
|
|
1082
1205
|
"board_group_grants",
|
|
1083
1206
|
{
|
|
1207
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1084
1208
|
board_id: varchar("board_id", { length: 36 }).notNull().references(() => boards.board_id, { onDelete: "cascade" }),
|
|
1085
1209
|
group_id: varchar("group_id", { length: 36 }).notNull().references(() => groups.group_id, { onDelete: "cascade" }),
|
|
1086
1210
|
can: text("can", { enum: [...BRANCH_PERMISSION_LEVELS] }).notNull().default("view"),
|
|
@@ -1092,6 +1216,7 @@ var init_schema_postgres = __esm({
|
|
|
1092
1216
|
updated_at: t.timestamp("updated_at")
|
|
1093
1217
|
},
|
|
1094
1218
|
(table) => ({
|
|
1219
|
+
tenantIdx: index("board_group_grants_tenant_id_idx").on(table.tenant_id),
|
|
1095
1220
|
pk: primaryKey({ columns: [table.board_id, table.group_id] }),
|
|
1096
1221
|
groupIdx: index("board_group_grants_group_idx").on(table.group_id)
|
|
1097
1222
|
})
|
|
@@ -1099,6 +1224,7 @@ var init_schema_postgres = __esm({
|
|
|
1099
1224
|
appVariables = pgTable(
|
|
1100
1225
|
"app_variables",
|
|
1101
1226
|
{
|
|
1227
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1102
1228
|
variable_id: varchar("variable_id", { length: 36 }).primaryKey(),
|
|
1103
1229
|
namespace: text("namespace").notNull(),
|
|
1104
1230
|
key: text("key").notNull(),
|
|
@@ -1114,13 +1240,19 @@ var init_schema_postgres = __esm({
|
|
|
1114
1240
|
updated_at: t.timestamp("updated_at").notNull()
|
|
1115
1241
|
},
|
|
1116
1242
|
(table) => ({
|
|
1117
|
-
|
|
1243
|
+
tenantIdx: index("app_variables_tenant_id_idx").on(table.tenant_id),
|
|
1244
|
+
namespaceKeyIdx: uniqueIndex("app_variables_tenant_namespace_key_unique").on(
|
|
1245
|
+
table.tenant_id,
|
|
1246
|
+
table.namespace,
|
|
1247
|
+
table.key
|
|
1248
|
+
),
|
|
1118
1249
|
namespaceIdx: index("app_variables_namespace_idx").on(table.namespace)
|
|
1119
1250
|
})
|
|
1120
1251
|
);
|
|
1121
1252
|
userApiKeys = pgTable(
|
|
1122
1253
|
"user_api_keys",
|
|
1123
1254
|
{
|
|
1255
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1124
1256
|
id: varchar("id", { length: 36 }).primaryKey(),
|
|
1125
1257
|
user_id: varchar("user_id", { length: 36 }).notNull().references(() => users.user_id, { onDelete: "cascade" }),
|
|
1126
1258
|
name: text("name").notNull(),
|
|
@@ -1132,6 +1264,7 @@ var init_schema_postgres = __esm({
|
|
|
1132
1264
|
last_used_at: t.timestamp("last_used_at")
|
|
1133
1265
|
},
|
|
1134
1266
|
(table) => ({
|
|
1267
|
+
tenantIdx: index("user_api_keys_tenant_id_idx").on(table.tenant_id),
|
|
1135
1268
|
userIdx: index("user_api_keys_user_idx").on(table.user_id),
|
|
1136
1269
|
prefixIdx: index("user_api_keys_prefix_idx").on(table.prefix)
|
|
1137
1270
|
})
|
|
@@ -1139,6 +1272,7 @@ var init_schema_postgres = __esm({
|
|
|
1139
1272
|
mcpServers = pgTable(
|
|
1140
1273
|
"mcp_servers",
|
|
1141
1274
|
{
|
|
1275
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1142
1276
|
// Primary identity
|
|
1143
1277
|
mcp_server_id: varchar("mcp_server_id", { length: 36 }).primaryKey(),
|
|
1144
1278
|
created_at: t.timestamp("created_at").notNull(),
|
|
@@ -1165,6 +1299,7 @@ var init_schema_postgres = __esm({
|
|
|
1165
1299
|
data: t.json("data").$type().notNull()
|
|
1166
1300
|
},
|
|
1167
1301
|
(table) => ({
|
|
1302
|
+
tenantIdx: index("mcp_servers_tenant_id_idx").on(table.tenant_id),
|
|
1168
1303
|
nameIdx: index("mcp_servers_name_idx").on(table.name),
|
|
1169
1304
|
scopeIdx: index("mcp_servers_scope_idx").on(table.scope),
|
|
1170
1305
|
ownerIdx: index("mcp_servers_owner_idx").on(table.owner_user_id),
|
|
@@ -1174,6 +1309,7 @@ var init_schema_postgres = __esm({
|
|
|
1174
1309
|
cardTypes = pgTable(
|
|
1175
1310
|
"card_types",
|
|
1176
1311
|
{
|
|
1312
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1177
1313
|
card_type_id: varchar("card_type_id", { length: 36 }).primaryKey(),
|
|
1178
1314
|
name: text("name").notNull(),
|
|
1179
1315
|
emoji: text("emoji"),
|
|
@@ -1185,12 +1321,14 @@ var init_schema_postgres = __esm({
|
|
|
1185
1321
|
updated_at: t.timestamp("updated_at").notNull()
|
|
1186
1322
|
},
|
|
1187
1323
|
(table) => ({
|
|
1324
|
+
tenantIdx: index("card_types_tenant_id_idx").on(table.tenant_id),
|
|
1188
1325
|
nameIdx: index("card_types_name_idx").on(table.name)
|
|
1189
1326
|
})
|
|
1190
1327
|
);
|
|
1191
1328
|
cards = pgTable(
|
|
1192
1329
|
"cards",
|
|
1193
1330
|
{
|
|
1331
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1194
1332
|
card_id: varchar("card_id", { length: 36 }).primaryKey(),
|
|
1195
1333
|
board_id: varchar("board_id", { length: 36 }).notNull().references(() => boards.board_id, { onDelete: "cascade" }),
|
|
1196
1334
|
card_type_id: varchar("card_type_id", { length: 36 }).references(() => cardTypes.card_type_id, {
|
|
@@ -1211,6 +1349,7 @@ var init_schema_postgres = __esm({
|
|
|
1211
1349
|
archived_at: t.timestamp("archived_at")
|
|
1212
1350
|
},
|
|
1213
1351
|
(table) => ({
|
|
1352
|
+
tenantIdx: index("cards_tenant_id_idx").on(table.tenant_id),
|
|
1214
1353
|
boardIdx: index("cards_board_idx").on(table.board_id),
|
|
1215
1354
|
cardTypeIdx: index("cards_card_type_idx").on(table.card_type_id),
|
|
1216
1355
|
titleIdx: index("cards_title_idx").on(table.title),
|
|
@@ -1221,6 +1360,7 @@ var init_schema_postgres = __esm({
|
|
|
1221
1360
|
artifacts = pgTable(
|
|
1222
1361
|
"artifacts",
|
|
1223
1362
|
{
|
|
1363
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1224
1364
|
artifact_id: varchar("artifact_id", { length: 36 }).primaryKey(),
|
|
1225
1365
|
branch_id: varchar("branch_id", { length: 36 }).references(() => branches.branch_id, {
|
|
1226
1366
|
onDelete: "set null"
|
|
@@ -1256,6 +1396,7 @@ var init_schema_postgres = __esm({
|
|
|
1256
1396
|
archived_at: t.timestamp("archived_at")
|
|
1257
1397
|
},
|
|
1258
1398
|
(table) => ({
|
|
1399
|
+
tenantIdx: index("artifacts_tenant_id_idx").on(table.tenant_id),
|
|
1259
1400
|
branchIdx: index("artifacts_branch_idx").on(table.branch_id),
|
|
1260
1401
|
sourceSessionIdx: index("artifacts_source_session_idx").on(table.source_session_id),
|
|
1261
1402
|
boardIdx: index("artifacts_board_idx").on(table.board_id),
|
|
@@ -1266,6 +1407,7 @@ var init_schema_postgres = __esm({
|
|
|
1266
1407
|
artifactTrustGrants = pgTable(
|
|
1267
1408
|
"artifact_trust_grants",
|
|
1268
1409
|
{
|
|
1410
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1269
1411
|
grant_id: varchar("grant_id", { length: 36 }).primaryKey(),
|
|
1270
1412
|
user_id: varchar("user_id", { length: 36 }).notNull(),
|
|
1271
1413
|
scope_type: text("scope_type").notNull(),
|
|
@@ -1276,6 +1418,7 @@ var init_schema_postgres = __esm({
|
|
|
1276
1418
|
revoked_at: t.timestamp("revoked_at")
|
|
1277
1419
|
},
|
|
1278
1420
|
(table) => ({
|
|
1421
|
+
tenantIdx: index("artifact_trust_grants_tenant_id_idx").on(table.tenant_id),
|
|
1279
1422
|
userIdx: index("artifact_trust_grants_user_idx").on(table.user_id),
|
|
1280
1423
|
scopeIdx: index("artifact_trust_grants_scope_idx").on(table.scope_type, table.scope_value)
|
|
1281
1424
|
})
|
|
@@ -1283,6 +1426,7 @@ var init_schema_postgres = __esm({
|
|
|
1283
1426
|
boardObjects = pgTable(
|
|
1284
1427
|
"board_objects",
|
|
1285
1428
|
{
|
|
1429
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1286
1430
|
// Primary identity
|
|
1287
1431
|
object_id: varchar("object_id", { length: 36 }).primaryKey(),
|
|
1288
1432
|
board_id: varchar("board_id", { length: 36 }).notNull().references(() => boards.board_id, { onDelete: "cascade" }),
|
|
@@ -1298,6 +1442,7 @@ var init_schema_postgres = __esm({
|
|
|
1298
1442
|
data: t.json("data").$type().notNull()
|
|
1299
1443
|
},
|
|
1300
1444
|
(table) => ({
|
|
1445
|
+
tenantIdx: index("board_objects_tenant_id_idx").on(table.tenant_id),
|
|
1301
1446
|
boardIdx: index("board_objects_board_idx").on(table.board_id),
|
|
1302
1447
|
branchIdx: index("board_objects_branch_idx").on(table.branch_id),
|
|
1303
1448
|
cardIdx: index("board_objects_card_idx").on(table.card_id)
|
|
@@ -1306,12 +1451,14 @@ var init_schema_postgres = __esm({
|
|
|
1306
1451
|
sessionMcpServers = pgTable(
|
|
1307
1452
|
"session_mcp_servers",
|
|
1308
1453
|
{
|
|
1454
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1309
1455
|
session_id: varchar("session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
|
|
1310
1456
|
mcp_server_id: varchar("mcp_server_id", { length: 36 }).notNull().references(() => mcpServers.mcp_server_id, { onDelete: "cascade" }),
|
|
1311
1457
|
enabled: t.bool("enabled").notNull().default(true),
|
|
1312
1458
|
added_at: t.timestamp("added_at").notNull()
|
|
1313
1459
|
},
|
|
1314
1460
|
(table) => ({
|
|
1461
|
+
tenantIdx: index("session_mcp_servers_tenant_id_idx").on(table.tenant_id),
|
|
1315
1462
|
// Composite primary key
|
|
1316
1463
|
pk: index("session_mcp_servers_pk").on(table.session_id, table.mcp_server_id),
|
|
1317
1464
|
// Indexes for queries
|
|
@@ -1323,6 +1470,7 @@ var init_schema_postgres = __esm({
|
|
|
1323
1470
|
userMcpOauthTokens = pgTable(
|
|
1324
1471
|
"user_mcp_oauth_tokens",
|
|
1325
1472
|
{
|
|
1473
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1326
1474
|
// NULL = shared-mode token (one per mcp_server_id)
|
|
1327
1475
|
user_id: varchar("user_id", { length: 36 }).references(() => users.user_id, {
|
|
1328
1476
|
onDelete: "cascade"
|
|
@@ -1340,6 +1488,7 @@ var init_schema_postgres = __esm({
|
|
|
1340
1488
|
updated_at: t.timestamp("updated_at")
|
|
1341
1489
|
},
|
|
1342
1490
|
(table) => ({
|
|
1491
|
+
tenantIdx: index("user_mcp_oauth_tokens_tenant_id_idx").on(table.tenant_id),
|
|
1343
1492
|
// Composite lookup indexes. Uniqueness enforced via partial unique indexes
|
|
1344
1493
|
// created in the migration (one for per-user rows, one for the shared row).
|
|
1345
1494
|
pk: index("user_mcp_oauth_tokens_pk").on(table.user_id, table.mcp_server_id),
|
|
@@ -1350,6 +1499,7 @@ var init_schema_postgres = __esm({
|
|
|
1350
1499
|
boardComments = pgTable(
|
|
1351
1500
|
"board_comments",
|
|
1352
1501
|
{
|
|
1502
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1353
1503
|
// Primary identity
|
|
1354
1504
|
comment_id: varchar("comment_id", { length: 36 }).primaryKey(),
|
|
1355
1505
|
created_at: t.timestamp("created_at").notNull(),
|
|
@@ -1391,6 +1541,7 @@ var init_schema_postgres = __esm({
|
|
|
1391
1541
|
data: t.json("data").$type().notNull()
|
|
1392
1542
|
},
|
|
1393
1543
|
(table) => ({
|
|
1544
|
+
tenantIdx: index("board_comments_tenant_id_idx").on(table.tenant_id),
|
|
1394
1545
|
boardIdx: index("board_comments_board_idx").on(table.board_id),
|
|
1395
1546
|
sessionIdx: index("board_comments_session_idx").on(table.session_id),
|
|
1396
1547
|
taskIdx: index("board_comments_task_idx").on(table.task_id),
|
|
@@ -1405,6 +1556,7 @@ var init_schema_postgres = __esm({
|
|
|
1405
1556
|
gatewayChannels = pgTable(
|
|
1406
1557
|
"gateway_channels",
|
|
1407
1558
|
{
|
|
1559
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1408
1560
|
// Primary identity
|
|
1409
1561
|
id: varchar("id", { length: 36 }).primaryKey(),
|
|
1410
1562
|
created_at: t.timestamp("created_at").notNull(),
|
|
@@ -1418,7 +1570,7 @@ var init_schema_postgres = __esm({
|
|
|
1418
1570
|
}).notNull(),
|
|
1419
1571
|
target_branch_id: varchar("target_branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
|
|
1420
1572
|
agor_user_id: varchar("agor_user_id", { length: 36 }).notNull(),
|
|
1421
|
-
channel_key: text("channel_key").notNull()
|
|
1573
|
+
channel_key: text("channel_key").notNull(),
|
|
1422
1574
|
enabled: t.bool("enabled").notNull().default(true),
|
|
1423
1575
|
last_message_at: t.timestamp("last_message_at"),
|
|
1424
1576
|
// JSON blob for platform credentials (encrypted at rest)
|
|
@@ -1427,13 +1579,19 @@ var init_schema_postgres = __esm({
|
|
|
1427
1579
|
agentic_config: t.json("agentic_config")
|
|
1428
1580
|
},
|
|
1429
1581
|
(table) => ({
|
|
1582
|
+
tenantIdx: index("gateway_channels_tenant_id_idx").on(table.tenant_id),
|
|
1430
1583
|
channelKeyIdx: index("idx_gateway_channel_key").on(table.channel_key),
|
|
1584
|
+
channelKeyTenantUnique: uniqueIndex("gateway_channels_tenant_channel_key_unique").on(
|
|
1585
|
+
table.tenant_id,
|
|
1586
|
+
table.channel_key
|
|
1587
|
+
),
|
|
1431
1588
|
enabledTypeIdx: index("idx_gateway_enabled_type").on(table.enabled, table.channel_type)
|
|
1432
1589
|
})
|
|
1433
1590
|
);
|
|
1434
1591
|
threadSessionMap = pgTable(
|
|
1435
1592
|
"thread_session_map",
|
|
1436
1593
|
{
|
|
1594
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1437
1595
|
// Primary identity
|
|
1438
1596
|
id: varchar("id", { length: 36 }).primaryKey(),
|
|
1439
1597
|
created_at: t.timestamp("created_at").notNull(),
|
|
@@ -1451,7 +1609,9 @@ var init_schema_postgres = __esm({
|
|
|
1451
1609
|
metadata: t.json("metadata")
|
|
1452
1610
|
},
|
|
1453
1611
|
(table) => ({
|
|
1454
|
-
|
|
1612
|
+
tenantIdx: index("thread_session_map_tenant_id_idx").on(table.tenant_id),
|
|
1613
|
+
uniqueChannelThread: uniqueIndex("uniq_thread_map_tenant_channel_thread").on(
|
|
1614
|
+
table.tenant_id,
|
|
1455
1615
|
table.channel_id,
|
|
1456
1616
|
table.thread_id
|
|
1457
1617
|
),
|
|
@@ -1460,14 +1620,82 @@ var init_schema_postgres = __esm({
|
|
|
1460
1620
|
channelStatusIdx: index("idx_thread_map_channel_status").on(table.channel_id, table.status)
|
|
1461
1621
|
})
|
|
1462
1622
|
);
|
|
1623
|
+
gatewayOutboundMessages = pgTable(
|
|
1624
|
+
"gateway_outbound_messages",
|
|
1625
|
+
{
|
|
1626
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1627
|
+
id: varchar("id", { length: 36 }).primaryKey(),
|
|
1628
|
+
created_at: t.timestamp("created_at").notNull(),
|
|
1629
|
+
updated_at: t.timestamp("updated_at").notNull(),
|
|
1630
|
+
gateway_channel_id: varchar("gateway_channel_id", { length: 36 }).notNull().references(() => gatewayChannels.id, { onDelete: "cascade" }),
|
|
1631
|
+
channel_type: text("channel_type", {
|
|
1632
|
+
enum: ["slack", "discord", "whatsapp", "telegram", "github", "teams"]
|
|
1633
|
+
}).notNull(),
|
|
1634
|
+
platform_channel_id: text("platform_channel_id").notNull(),
|
|
1635
|
+
platform_message_id: text("platform_message_id").notNull(),
|
|
1636
|
+
platform_thread_id: text("platform_thread_id").notNull(),
|
|
1637
|
+
platform_permalink: text("platform_permalink"),
|
|
1638
|
+
target_branch_id: varchar("target_branch_id", { length: 36 }).notNull().references(() => branches.branch_id),
|
|
1639
|
+
emitted_by_user_id: varchar("emitted_by_user_id", { length: 36 }).notNull().references(() => users.user_id),
|
|
1640
|
+
emitted_by_session_id: varchar("emitted_by_session_id", { length: 36 }).references(
|
|
1641
|
+
() => sessions.session_id,
|
|
1642
|
+
{
|
|
1643
|
+
onDelete: "set null"
|
|
1644
|
+
}
|
|
1645
|
+
),
|
|
1646
|
+
emitted_by_task_id: varchar("emitted_by_task_id", { length: 36 }).references(
|
|
1647
|
+
() => tasks.task_id,
|
|
1648
|
+
{
|
|
1649
|
+
onDelete: "set null"
|
|
1650
|
+
}
|
|
1651
|
+
),
|
|
1652
|
+
emitted_by_schedule_id: varchar("emitted_by_schedule_id", { length: 36 }).references(
|
|
1653
|
+
() => schedules.schedule_id,
|
|
1654
|
+
{
|
|
1655
|
+
onDelete: "set null"
|
|
1656
|
+
}
|
|
1657
|
+
),
|
|
1658
|
+
message_text: text("message_text").notNull(),
|
|
1659
|
+
message_preview: text("message_preview").notNull(),
|
|
1660
|
+
metadata: t.json("metadata"),
|
|
1661
|
+
consumed_by_session_id: varchar("consumed_by_session_id", { length: 36 }).references(
|
|
1662
|
+
() => sessions.session_id,
|
|
1663
|
+
{
|
|
1664
|
+
onDelete: "set null"
|
|
1665
|
+
}
|
|
1666
|
+
),
|
|
1667
|
+
consumed_at: t.timestamp("consumed_at")
|
|
1668
|
+
},
|
|
1669
|
+
(table) => ({
|
|
1670
|
+
tenantIdx: index("gateway_outbound_messages_tenant_id_idx").on(table.tenant_id),
|
|
1671
|
+
uniqueChannelThread: uniqueIndex("uniq_gateway_outbound_tenant_channel_thread").on(
|
|
1672
|
+
table.tenant_id,
|
|
1673
|
+
table.gateway_channel_id,
|
|
1674
|
+
table.platform_thread_id
|
|
1675
|
+
),
|
|
1676
|
+
emittedSessionIdx: index("idx_gateway_outbound_emitted_session").on(
|
|
1677
|
+
table.emitted_by_session_id
|
|
1678
|
+
),
|
|
1679
|
+
emittedScheduleIdx: index("idx_gateway_outbound_emitted_schedule").on(
|
|
1680
|
+
table.emitted_by_schedule_id
|
|
1681
|
+
),
|
|
1682
|
+
targetBranchCreatedIdx: index("idx_gateway_outbound_branch_created").on(
|
|
1683
|
+
table.target_branch_id,
|
|
1684
|
+
table.created_at
|
|
1685
|
+
),
|
|
1686
|
+
consumedIdx: index("idx_gateway_outbound_consumed").on(table.consumed_at)
|
|
1687
|
+
})
|
|
1688
|
+
);
|
|
1463
1689
|
sessionEnvSelections = pgTable(
|
|
1464
1690
|
"session_env_selections",
|
|
1465
1691
|
{
|
|
1692
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1466
1693
|
session_id: varchar("session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
|
|
1467
1694
|
env_var_name: text("env_var_name").notNull(),
|
|
1468
1695
|
created_at: t.timestamp("created_at").notNull()
|
|
1469
1696
|
},
|
|
1470
1697
|
(table) => ({
|
|
1698
|
+
tenantIdx: index("session_env_selections_tenant_id_idx").on(table.tenant_id),
|
|
1471
1699
|
pk: primaryKey({ columns: [table.session_id, table.env_var_name] }),
|
|
1472
1700
|
sessionIdx: index("session_env_selections_session_idx").on(table.session_id)
|
|
1473
1701
|
})
|
|
@@ -1475,6 +1703,7 @@ var init_schema_postgres = __esm({
|
|
|
1475
1703
|
kbNamespaces = pgTable(
|
|
1476
1704
|
"kb_namespaces",
|
|
1477
1705
|
{
|
|
1706
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1478
1707
|
namespace_id: varchar("namespace_id", { length: 36 }).primaryKey(),
|
|
1479
1708
|
slug: text("slug").notNull(),
|
|
1480
1709
|
display_name: text("display_name").notNull(),
|
|
@@ -1501,7 +1730,8 @@ var init_schema_postgres = __esm({
|
|
|
1501
1730
|
archived_at: t.timestamp("archived_at")
|
|
1502
1731
|
},
|
|
1503
1732
|
(table) => ({
|
|
1504
|
-
|
|
1733
|
+
tenantIdx: index("kb_namespaces_tenant_id_idx").on(table.tenant_id),
|
|
1734
|
+
slugIdx: uniqueIndex("kb_namespaces_tenant_slug_unique").on(table.tenant_id, table.slug).where(sql2`${table.archived} = false`),
|
|
1505
1735
|
kindIdx: index("kb_namespaces_kind_idx").on(table.kind),
|
|
1506
1736
|
ownerIdx: index("kb_namespaces_owner_idx").on(table.owner_user_id),
|
|
1507
1737
|
repoIdx: index("kb_namespaces_repo_idx").on(table.repo_id),
|
|
@@ -1512,6 +1742,7 @@ var init_schema_postgres = __esm({
|
|
|
1512
1742
|
kbNamespaceAcl = pgTable(
|
|
1513
1743
|
"kb_namespace_acl",
|
|
1514
1744
|
{
|
|
1745
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1515
1746
|
namespace_acl_id: varchar("namespace_acl_id", { length: 36 }).primaryKey(),
|
|
1516
1747
|
namespace_id: varchar("namespace_id", { length: 36 }).notNull().references(() => kbNamespaces.namespace_id, { onDelete: "cascade" }),
|
|
1517
1748
|
subject_type: text("subject_type", { enum: ["user", "group"] }).notNull(),
|
|
@@ -1524,9 +1755,11 @@ var init_schema_postgres = __esm({
|
|
|
1524
1755
|
updated_at: t.timestamp("updated_at")
|
|
1525
1756
|
},
|
|
1526
1757
|
(table) => ({
|
|
1758
|
+
tenantIdx: index("kb_namespace_acl_tenant_id_idx").on(table.tenant_id),
|
|
1527
1759
|
namespaceIdx: index("kb_namespace_acl_namespace_idx").on(table.namespace_id),
|
|
1528
1760
|
subjectIdx: index("kb_namespace_acl_subject_idx").on(table.subject_type, table.subject_id),
|
|
1529
|
-
namespaceSubjectIdx: uniqueIndex("
|
|
1761
|
+
namespaceSubjectIdx: uniqueIndex("kb_namespace_acl_tenant_namespace_subject_unique").on(
|
|
1762
|
+
table.tenant_id,
|
|
1530
1763
|
table.namespace_id,
|
|
1531
1764
|
table.subject_type,
|
|
1532
1765
|
table.subject_id
|
|
@@ -1536,6 +1769,7 @@ var init_schema_postgres = __esm({
|
|
|
1536
1769
|
kbDocuments = pgTable(
|
|
1537
1770
|
"kb_documents",
|
|
1538
1771
|
{
|
|
1772
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1539
1773
|
document_id: varchar("document_id", { length: 36 }).primaryKey(),
|
|
1540
1774
|
namespace_id: varchar("namespace_id", { length: 36 }).notNull().references(() => kbNamespaces.namespace_id, { onDelete: "cascade" }),
|
|
1541
1775
|
path: text("path").notNull(),
|
|
@@ -1563,8 +1797,9 @@ var init_schema_postgres = __esm({
|
|
|
1563
1797
|
archived_at: t.timestamp("archived_at")
|
|
1564
1798
|
},
|
|
1565
1799
|
(table) => ({
|
|
1566
|
-
|
|
1567
|
-
|
|
1800
|
+
tenantIdx: index("kb_documents_tenant_id_idx").on(table.tenant_id),
|
|
1801
|
+
namespacePathIdx: uniqueIndex("kb_documents_tenant_namespace_path_unique").on(table.tenant_id, table.namespace_id, table.path).where(sql2`${table.archived} = false`),
|
|
1802
|
+
uriIdx: uniqueIndex("kb_documents_tenant_uri_unique").on(table.tenant_id, table.uri).where(sql2`${table.archived} = false`),
|
|
1568
1803
|
namespaceIdx: index("kb_documents_namespace_idx").on(table.namespace_id),
|
|
1569
1804
|
kindIdx: index("kb_documents_kind_idx").on(table.kind),
|
|
1570
1805
|
visibilityIdx: index("kb_documents_visibility_idx").on(table.visibility),
|
|
@@ -1577,6 +1812,7 @@ var init_schema_postgres = __esm({
|
|
|
1577
1812
|
kbDocumentVersions = pgTable(
|
|
1578
1813
|
"kb_document_versions",
|
|
1579
1814
|
{
|
|
1815
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1580
1816
|
version_id: varchar("version_id", { length: 36 }).primaryKey(),
|
|
1581
1817
|
document_id: varchar("document_id", { length: 36 }).notNull().references(() => kbDocuments.document_id, { onDelete: "cascade" }),
|
|
1582
1818
|
version_number: integer("version_number").notNull(),
|
|
@@ -1596,7 +1832,9 @@ var init_schema_postgres = __esm({
|
|
|
1596
1832
|
created_at: t.timestamp("created_at").notNull()
|
|
1597
1833
|
},
|
|
1598
1834
|
(table) => ({
|
|
1599
|
-
|
|
1835
|
+
tenantIdx: index("kb_document_versions_tenant_id_idx").on(table.tenant_id),
|
|
1836
|
+
documentVersionIdx: uniqueIndex("kb_document_versions_tenant_document_version_unique").on(
|
|
1837
|
+
table.tenant_id,
|
|
1600
1838
|
table.document_id,
|
|
1601
1839
|
table.version_number
|
|
1602
1840
|
),
|
|
@@ -1608,6 +1846,7 @@ var init_schema_postgres = __esm({
|
|
|
1608
1846
|
kbDocumentUnits = pgTable(
|
|
1609
1847
|
"kb_document_units",
|
|
1610
1848
|
{
|
|
1849
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1611
1850
|
unit_id: varchar("unit_id", { length: 36 }).primaryKey(),
|
|
1612
1851
|
document_id: varchar("document_id", { length: 36 }).notNull().references(() => kbDocuments.document_id, { onDelete: "cascade" }),
|
|
1613
1852
|
version_id: varchar("version_id", { length: 36 }).notNull().references(() => kbDocumentVersions.version_id, { onDelete: "cascade" }),
|
|
@@ -1632,6 +1871,7 @@ var init_schema_postgres = __esm({
|
|
|
1632
1871
|
updated_at: t.timestamp("updated_at")
|
|
1633
1872
|
},
|
|
1634
1873
|
(table) => ({
|
|
1874
|
+
tenantIdx: index("kb_document_units_tenant_id_idx").on(table.tenant_id),
|
|
1635
1875
|
documentIdx: index("kb_document_units_document_idx").on(table.document_id),
|
|
1636
1876
|
versionIdx: index("kb_document_units_version_idx").on(table.version_id),
|
|
1637
1877
|
versionOrdinalIdx: index("kb_document_units_version_ordinal_idx").on(
|
|
@@ -1645,6 +1885,7 @@ var init_schema_postgres = __esm({
|
|
|
1645
1885
|
kbEmbeddingSpaces = pgTable(
|
|
1646
1886
|
"kb_embedding_spaces",
|
|
1647
1887
|
{
|
|
1888
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1648
1889
|
embedding_space_id: varchar("embedding_space_id", { length: 36 }).primaryKey(),
|
|
1649
1890
|
provider: text("provider").notNull(),
|
|
1650
1891
|
model: text("model").notNull(),
|
|
@@ -1657,7 +1898,9 @@ var init_schema_postgres = __esm({
|
|
|
1657
1898
|
updated_at: t.timestamp("updated_at")
|
|
1658
1899
|
},
|
|
1659
1900
|
(table) => ({
|
|
1660
|
-
|
|
1901
|
+
tenantIdx: index("kb_embedding_spaces_tenant_id_idx").on(table.tenant_id),
|
|
1902
|
+
providerModelIdx: uniqueIndex("kb_embedding_spaces_tenant_provider_model_unique").on(
|
|
1903
|
+
table.tenant_id,
|
|
1661
1904
|
table.provider,
|
|
1662
1905
|
table.model,
|
|
1663
1906
|
table.dimensions,
|
|
@@ -1670,6 +1913,7 @@ var init_schema_postgres = __esm({
|
|
|
1670
1913
|
kbGraphNodes = pgTable(
|
|
1671
1914
|
"kb_graph_nodes",
|
|
1672
1915
|
{
|
|
1916
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1673
1917
|
node_id: varchar("node_id", { length: 36 }).primaryKey(),
|
|
1674
1918
|
node_type: text("node_type", {
|
|
1675
1919
|
enum: [
|
|
@@ -1735,7 +1979,8 @@ var init_schema_postgres = __esm({
|
|
|
1735
1979
|
archived_at: t.timestamp("archived_at")
|
|
1736
1980
|
},
|
|
1737
1981
|
(table) => ({
|
|
1738
|
-
|
|
1982
|
+
tenantIdx: index("kb_graph_nodes_tenant_id_idx").on(table.tenant_id),
|
|
1983
|
+
uriIdx: uniqueIndex("kb_graph_nodes_tenant_uri_unique").on(table.tenant_id, table.uri).where(sql2`${table.archived} = false`),
|
|
1739
1984
|
typeIdx: index("kb_graph_nodes_type_idx").on(table.node_type),
|
|
1740
1985
|
namespaceIdx: index("kb_graph_nodes_namespace_idx").on(table.namespace_id),
|
|
1741
1986
|
documentIdx: index("kb_graph_nodes_document_idx").on(table.document_id),
|
|
@@ -1755,6 +2000,7 @@ var init_schema_postgres = __esm({
|
|
|
1755
2000
|
kbGraphEdges = pgTable(
|
|
1756
2001
|
"kb_graph_edges",
|
|
1757
2002
|
{
|
|
2003
|
+
tenant_id: text("tenant_id").notNull().default("default"),
|
|
1758
2004
|
edge_id: varchar("edge_id", { length: 36 }).primaryKey(),
|
|
1759
2005
|
source_node_id: varchar("source_node_id", { length: 36 }).notNull().references(() => kbGraphNodes.node_id, { onDelete: "cascade" }),
|
|
1760
2006
|
target_node_id: varchar("target_node_id", { length: 36 }).notNull().references(() => kbGraphNodes.node_id, { onDelete: "cascade" }),
|
|
@@ -1783,6 +2029,7 @@ var init_schema_postgres = __esm({
|
|
|
1783
2029
|
archived_at: t.timestamp("archived_at")
|
|
1784
2030
|
},
|
|
1785
2031
|
(table) => ({
|
|
2032
|
+
tenantIdx: index("kb_graph_edges_tenant_id_idx").on(table.tenant_id),
|
|
1786
2033
|
sourceIdx: index("kb_graph_edges_source_idx").on(table.source_node_id),
|
|
1787
2034
|
targetIdx: index("kb_graph_edges_target_idx").on(table.target_node_id),
|
|
1788
2035
|
typeIdx: index("kb_graph_edges_type_idx").on(table.edge_type),
|
|
@@ -1794,7 +2041,7 @@ var init_schema_postgres = __esm({
|
|
|
1794
2041
|
table.target_node_id,
|
|
1795
2042
|
table.edge_type
|
|
1796
2043
|
),
|
|
1797
|
-
sourceTargetTypeIdx: uniqueIndex("
|
|
2044
|
+
sourceTargetTypeIdx: 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(sql2`${table.archived} = false`),
|
|
1798
2045
|
archivedIdx: index("kb_graph_edges_archived_idx").on(table.archived)
|
|
1799
2046
|
})
|
|
1800
2047
|
);
|
|
@@ -1858,6 +2105,7 @@ __export(schema_sqlite_exports, {
|
|
|
1858
2105
|
cardTypes: () => cardTypes2,
|
|
1859
2106
|
cards: () => cards2,
|
|
1860
2107
|
gatewayChannels: () => gatewayChannels2,
|
|
2108
|
+
gatewayOutboundMessages: () => gatewayOutboundMessages2,
|
|
1861
2109
|
groupMemberships: () => groupMemberships2,
|
|
1862
2110
|
groups: () => groups2,
|
|
1863
2111
|
kbDocumentUnits: () => kbDocumentUnits2,
|
|
@@ -1896,7 +2144,7 @@ import {
|
|
|
1896
2144
|
text as text2,
|
|
1897
2145
|
uniqueIndex as uniqueIndex2
|
|
1898
2146
|
} from "drizzle-orm/sqlite-core";
|
|
1899
|
-
var t2, sessions2, sessionRelationships2, tasks2, serializedSessions2, messages2, boards2, repos2, branches2, branchOwners2, boardOwners2, schedules2, users2, groups2, groupMemberships2, branchGroupGrants2, boardGroupGrants2, appVariables2, userApiKeys2, mcpServers2, cardTypes2, cards2, artifacts2, artifactTrustGrants2, boardObjects2, sessionMcpServers2, userMcpOauthTokens2, boardComments2, gatewayChannels2, threadSessionMap2, sessionEnvSelections2, kbNamespaces2, kbNamespaceAcl2, kbDocuments2, kbDocumentVersions2, kbDocumentUnits2, kbEmbeddingSpaces2, kbGraphNodes2, kbGraphEdges2, sessionsRelations2, sessionRelationshipsRelations2, branchesRelations2, schedulesRelations2;
|
|
2147
|
+
var t2, sessions2, sessionRelationships2, tasks2, serializedSessions2, messages2, boards2, repos2, branches2, branchOwners2, boardOwners2, schedules2, users2, groups2, groupMemberships2, branchGroupGrants2, boardGroupGrants2, appVariables2, userApiKeys2, mcpServers2, cardTypes2, cards2, artifacts2, artifactTrustGrants2, boardObjects2, sessionMcpServers2, userMcpOauthTokens2, boardComments2, gatewayChannels2, threadSessionMap2, gatewayOutboundMessages2, sessionEnvSelections2, kbNamespaces2, kbNamespaceAcl2, kbDocuments2, kbDocumentVersions2, kbDocumentUnits2, kbEmbeddingSpaces2, kbGraphNodes2, kbGraphEdges2, sessionsRelations2, sessionRelationshipsRelations2, branchesRelations2, schedulesRelations2;
|
|
1900
2148
|
var init_schema_sqlite = __esm({
|
|
1901
2149
|
"src/db/schema.sqlite.ts"() {
|
|
1902
2150
|
"use strict";
|
|
@@ -1970,6 +2218,7 @@ var init_schema_sqlite = __esm({
|
|
|
1970
2218
|
},
|
|
1971
2219
|
(table) => ({
|
|
1972
2220
|
statusIdx: index2("sessions_status_idx").on(table.status),
|
|
2221
|
+
statusReadyIdx: index2("sessions_status_ready_idx").on(table.status, table.ready_for_prompt),
|
|
1973
2222
|
agenticToolIdx: index2("sessions_agentic_tool_idx").on(table.agentic_tool),
|
|
1974
2223
|
boardIdx: index2("sessions_board_idx").on(table.board_id),
|
|
1975
2224
|
branchIdx: index2("sessions_branch_idx").on(table.branch_id),
|
|
@@ -2009,6 +2258,9 @@ var init_schema_sqlite = __esm({
|
|
|
2009
2258
|
sourceIdx: index2("session_relationships_source_idx").on(table.source_session_id),
|
|
2010
2259
|
targetIdx: index2("session_relationships_target_idx").on(table.target_session_id),
|
|
2011
2260
|
callbackIdx: index2("session_relationships_callback_idx").on(table.callback_session_id),
|
|
2261
|
+
// Note: no tenant_source/tenant_target composite indexes here — SQLite schema
|
|
2262
|
+
// has no tenant column on this table (RLS is Postgres-only). The standalone
|
|
2263
|
+
// source/target indexes above are sufficient for SQLite.
|
|
2012
2264
|
sourceTargetTypeUnique: uniqueIndex2("session_relationships_source_target_type_unique").on(
|
|
2013
2265
|
table.source_session_id,
|
|
2014
2266
|
table.target_session_id,
|
|
@@ -2128,7 +2380,12 @@ var init_schema_sqlite = __esm({
|
|
|
2128
2380
|
// Indexes for efficient lookups
|
|
2129
2381
|
sessionIdx: index2("messages_session_id_idx").on(table.session_id),
|
|
2130
2382
|
taskIdx: index2("messages_task_id_idx").on(table.task_id),
|
|
2131
|
-
sessionIndexIdx: index2("messages_session_index_idx").on(table.session_id, table.index)
|
|
2383
|
+
sessionIndexIdx: index2("messages_session_index_idx").on(table.session_id, table.index),
|
|
2384
|
+
timestampIdx: index2("messages_timestamp_idx").on(table.timestamp),
|
|
2385
|
+
sessionTimestampIdx: index2("messages_session_timestamp_idx").on(
|
|
2386
|
+
table.session_id,
|
|
2387
|
+
table.timestamp
|
|
2388
|
+
)
|
|
2132
2389
|
})
|
|
2133
2390
|
);
|
|
2134
2391
|
boards2 = sqliteTable(
|
|
@@ -2354,6 +2611,9 @@ var init_schema_sqlite = __esm({
|
|
|
2354
2611
|
onboarding_completed: t2.bool("onboarding_completed").notNull().default(false),
|
|
2355
2612
|
// Force password change flag (admin-settable, auto-cleared on password change)
|
|
2356
2613
|
must_change_password: t2.bool("must_change_password").notNull().default(false),
|
|
2614
|
+
// Auth invalidation marker. Password changes set this timestamp so any
|
|
2615
|
+
// previously issued browser access or refresh token is rejected.
|
|
2616
|
+
tokens_valid_after: t2.timestamp("tokens_valid_after"),
|
|
2357
2617
|
// JSON blob for profile/preferences
|
|
2358
2618
|
data: t2.json("data").$type().notNull()
|
|
2359
2619
|
},
|
|
@@ -2797,6 +3057,66 @@ var init_schema_sqlite = __esm({
|
|
|
2797
3057
|
channelStatusIdx: index2("idx_thread_map_channel_status").on(table.channel_id, table.status)
|
|
2798
3058
|
})
|
|
2799
3059
|
);
|
|
3060
|
+
gatewayOutboundMessages2 = sqliteTable(
|
|
3061
|
+
"gateway_outbound_messages",
|
|
3062
|
+
{
|
|
3063
|
+
id: text2("id", { length: 36 }).primaryKey(),
|
|
3064
|
+
created_at: t2.timestamp("created_at").notNull(),
|
|
3065
|
+
updated_at: t2.timestamp("updated_at").notNull(),
|
|
3066
|
+
gateway_channel_id: text2("gateway_channel_id", { length: 36 }).notNull().references(() => gatewayChannels2.id, { onDelete: "cascade" }),
|
|
3067
|
+
channel_type: text2("channel_type", {
|
|
3068
|
+
enum: ["slack", "discord", "whatsapp", "telegram", "github", "teams"]
|
|
3069
|
+
}).notNull(),
|
|
3070
|
+
platform_channel_id: text2("platform_channel_id").notNull(),
|
|
3071
|
+
platform_message_id: text2("platform_message_id").notNull(),
|
|
3072
|
+
platform_thread_id: text2("platform_thread_id").notNull(),
|
|
3073
|
+
platform_permalink: text2("platform_permalink"),
|
|
3074
|
+
target_branch_id: text2("target_branch_id", { length: 36 }).notNull().references(() => branches2.branch_id),
|
|
3075
|
+
emitted_by_user_id: text2("emitted_by_user_id", { length: 36 }).notNull().references(() => users2.user_id),
|
|
3076
|
+
emitted_by_session_id: text2("emitted_by_session_id", { length: 36 }).references(
|
|
3077
|
+
() => sessions2.session_id,
|
|
3078
|
+
{
|
|
3079
|
+
onDelete: "set null"
|
|
3080
|
+
}
|
|
3081
|
+
),
|
|
3082
|
+
emitted_by_task_id: text2("emitted_by_task_id", { length: 36 }).references(() => tasks2.task_id, {
|
|
3083
|
+
onDelete: "set null"
|
|
3084
|
+
}),
|
|
3085
|
+
emitted_by_schedule_id: text2("emitted_by_schedule_id", { length: 36 }).references(
|
|
3086
|
+
() => schedules2.schedule_id,
|
|
3087
|
+
{
|
|
3088
|
+
onDelete: "set null"
|
|
3089
|
+
}
|
|
3090
|
+
),
|
|
3091
|
+
message_text: text2("message_text").notNull(),
|
|
3092
|
+
message_preview: text2("message_preview").notNull(),
|
|
3093
|
+
metadata: t2.json("metadata"),
|
|
3094
|
+
consumed_by_session_id: text2("consumed_by_session_id", { length: 36 }).references(
|
|
3095
|
+
() => sessions2.session_id,
|
|
3096
|
+
{
|
|
3097
|
+
onDelete: "set null"
|
|
3098
|
+
}
|
|
3099
|
+
),
|
|
3100
|
+
consumed_at: t2.timestamp("consumed_at")
|
|
3101
|
+
},
|
|
3102
|
+
(table) => ({
|
|
3103
|
+
uniqueChannelThread: uniqueIndex2("uniq_gateway_outbound_channel_thread").on(
|
|
3104
|
+
table.gateway_channel_id,
|
|
3105
|
+
table.platform_thread_id
|
|
3106
|
+
),
|
|
3107
|
+
emittedSessionIdx: index2("idx_gateway_outbound_emitted_session").on(
|
|
3108
|
+
table.emitted_by_session_id
|
|
3109
|
+
),
|
|
3110
|
+
emittedScheduleIdx: index2("idx_gateway_outbound_emitted_schedule").on(
|
|
3111
|
+
table.emitted_by_schedule_id
|
|
3112
|
+
),
|
|
3113
|
+
targetBranchCreatedIdx: index2("idx_gateway_outbound_branch_created").on(
|
|
3114
|
+
table.target_branch_id,
|
|
3115
|
+
table.created_at
|
|
3116
|
+
),
|
|
3117
|
+
consumedIdx: index2("idx_gateway_outbound_consumed").on(table.consumed_at)
|
|
3118
|
+
})
|
|
3119
|
+
);
|
|
2800
3120
|
sessionEnvSelections2 = sqliteTable(
|
|
2801
3121
|
"session_env_selections",
|
|
2802
3122
|
{
|
|
@@ -3295,6 +3615,71 @@ var init_executor_heartbeat = __esm({
|
|
|
3295
3615
|
}
|
|
3296
3616
|
});
|
|
3297
3617
|
|
|
3618
|
+
// src/config/multitenancy.ts
|
|
3619
|
+
function detectPostgresUrl(url) {
|
|
3620
|
+
if (!url) return false;
|
|
3621
|
+
const lower = url.toLowerCase();
|
|
3622
|
+
return lower.startsWith("postgresql://") || lower.startsWith("postgres://") || lower.startsWith("pg://");
|
|
3623
|
+
}
|
|
3624
|
+
function resolveMultiTenancyDatabaseDialect(config = {}) {
|
|
3625
|
+
if (process.env.AGOR_DB_DIALECT === "postgresql" || process.env.AGOR_DB_DIALECT === "sqlite") {
|
|
3626
|
+
return process.env.AGOR_DB_DIALECT;
|
|
3627
|
+
}
|
|
3628
|
+
if (detectPostgresUrl(process.env.DATABASE_URL)) return "postgresql";
|
|
3629
|
+
if (config.database?.dialect === "postgresql" || config.database?.dialect === "sqlite") {
|
|
3630
|
+
return config.database.dialect;
|
|
3631
|
+
}
|
|
3632
|
+
if (detectPostgresUrl(config.database?.postgresql?.url) || config.database?.postgresql?.host) {
|
|
3633
|
+
return "postgresql";
|
|
3634
|
+
}
|
|
3635
|
+
return "sqlite";
|
|
3636
|
+
}
|
|
3637
|
+
function resolveMultiTenancyConfig(config) {
|
|
3638
|
+
const raw = config.multi_tenancy ?? {};
|
|
3639
|
+
const mode = raw.mode ?? "static";
|
|
3640
|
+
return {
|
|
3641
|
+
mode,
|
|
3642
|
+
static_tenant_id: raw.static_tenant_id?.trim() || DEFAULT_STATIC_TENANT_ID,
|
|
3643
|
+
...raw.auth_claim ? { auth_claim: raw.auth_claim } : {},
|
|
3644
|
+
...raw.trusted_header ? { trusted_header: raw.trusted_header } : {}
|
|
3645
|
+
};
|
|
3646
|
+
}
|
|
3647
|
+
function assertValidMultiTenancyConfig(config) {
|
|
3648
|
+
const resolved = resolveMultiTenancyConfig(config);
|
|
3649
|
+
if (resolved.mode !== "static" && resolved.mode !== "required_from_auth") {
|
|
3650
|
+
throw new Error("Config error: multi_tenancy.mode must be one of: static, required_from_auth");
|
|
3651
|
+
}
|
|
3652
|
+
if (!resolved.static_tenant_id) {
|
|
3653
|
+
throw new Error("Config error: multi_tenancy.static_tenant_id must not be empty");
|
|
3654
|
+
}
|
|
3655
|
+
if (resolved.auth_claim && RESERVED_AUTH_CLAIMS.has(resolved.auth_claim)) {
|
|
3656
|
+
throw new Error(
|
|
3657
|
+
`Config error: multi_tenancy.auth_claim cannot be reserved JWT claim '${resolved.auth_claim}'`
|
|
3658
|
+
);
|
|
3659
|
+
}
|
|
3660
|
+
if (resolved.mode === "required_from_auth") {
|
|
3661
|
+
if (resolveMultiTenancyDatabaseDialect(config) !== "postgresql") {
|
|
3662
|
+
throw new Error(
|
|
3663
|
+
"Config error: multi_tenancy.required_from_auth requires database.dialect: postgresql"
|
|
3664
|
+
);
|
|
3665
|
+
}
|
|
3666
|
+
if (!resolved.auth_claim && !resolved.trusted_header) {
|
|
3667
|
+
throw new Error(
|
|
3668
|
+
"Config error: multi_tenancy.required_from_auth requires multi_tenancy.auth_claim or multi_tenancy.trusted_header"
|
|
3669
|
+
);
|
|
3670
|
+
}
|
|
3671
|
+
}
|
|
3672
|
+
}
|
|
3673
|
+
var DEFAULT_STATIC_TENANT_ID, RESERVED_AUTH_CLAIMS;
|
|
3674
|
+
var init_multitenancy = __esm({
|
|
3675
|
+
"src/config/multitenancy.ts"() {
|
|
3676
|
+
"use strict";
|
|
3677
|
+
init_esm_shims();
|
|
3678
|
+
DEFAULT_STATIC_TENANT_ID = "default";
|
|
3679
|
+
RESERVED_AUTH_CLAIMS = /* @__PURE__ */ new Set(["aud", "exp", "iat", "iss", "jti", "nbf", "sub", "type"]);
|
|
3680
|
+
}
|
|
3681
|
+
});
|
|
3682
|
+
|
|
3298
3683
|
// src/config/types.ts
|
|
3299
3684
|
var init_types2 = __esm({
|
|
3300
3685
|
"src/config/types.ts"() {
|
|
@@ -3308,7 +3693,7 @@ import { readFileSync, statSync } from "fs";
|
|
|
3308
3693
|
import fs from "fs/promises";
|
|
3309
3694
|
import os from "os";
|
|
3310
3695
|
import path2 from "path";
|
|
3311
|
-
import yaml from "js-yaml";
|
|
3696
|
+
import * as yaml from "js-yaml";
|
|
3312
3697
|
function cacheKeyMatches(a, b) {
|
|
3313
3698
|
return a.mtimeMs === b.mtimeMs && a.size === b.size;
|
|
3314
3699
|
}
|
|
@@ -3337,6 +3722,9 @@ function writeCachedConfig(configPath, config, key) {
|
|
|
3337
3722
|
cachedEntry = { path: configPath, config: structuredClone(config), key };
|
|
3338
3723
|
}
|
|
3339
3724
|
function parseAndValidateConfig(content) {
|
|
3725
|
+
if (content.trim() === "") {
|
|
3726
|
+
return {};
|
|
3727
|
+
}
|
|
3340
3728
|
const parsed = yaml.load(content);
|
|
3341
3729
|
const finalConfig = parsed || {};
|
|
3342
3730
|
validateConfig(finalConfig);
|
|
@@ -3366,6 +3754,7 @@ To update: agor config set execution.unix_user_mode insulated`
|
|
|
3366
3754
|
`Config error: execution.managed_envs_execution_mode must be one of: hybrid, webhook-only`
|
|
3367
3755
|
);
|
|
3368
3756
|
}
|
|
3757
|
+
assertValidMultiTenancyConfig(config);
|
|
3369
3758
|
validateOptionalHttpUrl(
|
|
3370
3759
|
config.external_launch,
|
|
3371
3760
|
"login_redirect_url",
|
|
@@ -3426,7 +3815,12 @@ function getDefaultConfig() {
|
|
|
3426
3815
|
// Default: sync passwords to Unix
|
|
3427
3816
|
executor_heartbeat: resolveExecutorHeartbeatConfig()
|
|
3428
3817
|
},
|
|
3429
|
-
analytics: getDefaultAnalyticsConfig()
|
|
3818
|
+
analytics: getDefaultAnalyticsConfig(),
|
|
3819
|
+
telemetry: {},
|
|
3820
|
+
multi_tenancy: {
|
|
3821
|
+
mode: "static",
|
|
3822
|
+
static_tenant_id: "default"
|
|
3823
|
+
}
|
|
3430
3824
|
};
|
|
3431
3825
|
}
|
|
3432
3826
|
function loadConfigSync() {
|
|
@@ -3478,6 +3872,7 @@ var init_config_manager = __esm({
|
|
|
3478
3872
|
init_analytics_defaults();
|
|
3479
3873
|
init_constants();
|
|
3480
3874
|
init_executor_heartbeat();
|
|
3875
|
+
init_multitenancy();
|
|
3481
3876
|
init_types2();
|
|
3482
3877
|
NO_FILE = -1;
|
|
3483
3878
|
NO_FILE_KEY = { mtimeMs: NO_FILE, size: 0 };
|
|
@@ -3531,7 +3926,7 @@ var init_schema_factory = __esm({
|
|
|
3531
3926
|
});
|
|
3532
3927
|
|
|
3533
3928
|
// src/db/schema.ts
|
|
3534
|
-
var dialect, schema, sessions3, tasks3, messages3, boards3, repos3, branches3, branchOwners3, boardOwners3, groups3, groupMemberships3, branchGroupGrants3, boardGroupGrants3, schedules3, users3, appVariables3, mcpServers3, cardTypes3, cards3, artifacts3, artifactTrustGrants3, boardObjects3, sessionMcpServers3, sessionRelationships3, sessionEnvSelections3, userMcpOauthTokens3, boardComments3, gatewayChannels3, threadSessionMap3, userApiKeys3, serializedSessions3, kbNamespaces3, kbNamespaceAcl3, kbDocuments3, kbDocumentVersions3, kbDocumentUnits3, kbEmbeddingSpaces3, kbGraphNodes3, kbGraphEdges3;
|
|
3929
|
+
var dialect, schema, sessions3, tasks3, messages3, boards3, repos3, branches3, branchOwners3, boardOwners3, groups3, groupMemberships3, branchGroupGrants3, boardGroupGrants3, schedules3, users3, appVariables3, mcpServers3, cardTypes3, cards3, artifacts3, artifactTrustGrants3, boardObjects3, sessionMcpServers3, sessionRelationships3, sessionEnvSelections3, userMcpOauthTokens3, boardComments3, gatewayChannels3, threadSessionMap3, gatewayOutboundMessages3, userApiKeys3, serializedSessions3, kbNamespaces3, kbNamespaceAcl3, kbDocuments3, kbDocumentVersions3, kbDocumentUnits3, kbEmbeddingSpaces3, kbGraphNodes3, kbGraphEdges3;
|
|
3535
3930
|
var init_schema = __esm({
|
|
3536
3931
|
"src/db/schema.ts"() {
|
|
3537
3932
|
"use strict";
|
|
@@ -3569,6 +3964,7 @@ var init_schema = __esm({
|
|
|
3569
3964
|
boardComments3 = schema.boardComments;
|
|
3570
3965
|
gatewayChannels3 = schema.gatewayChannels;
|
|
3571
3966
|
threadSessionMap3 = schema.threadSessionMap;
|
|
3967
|
+
gatewayOutboundMessages3 = schema.gatewayOutboundMessages;
|
|
3572
3968
|
userApiKeys3 = schema.userApiKeys;
|
|
3573
3969
|
serializedSessions3 = schema.serializedSessions;
|
|
3574
3970
|
kbNamespaces3 = schema.kbNamespaces;
|
|
@@ -3605,6 +4001,7 @@ init_schema();
|
|
|
3605
4001
|
init_esm_shims();
|
|
3606
4002
|
init_ids();
|
|
3607
4003
|
init_id();
|
|
4004
|
+
init_tenant_context();
|
|
3608
4005
|
var RepositoryError = class extends Error {
|
|
3609
4006
|
constructor(message, cause) {
|
|
3610
4007
|
super(message);
|
|
@@ -3658,7 +4055,7 @@ import { and as and2, eq as eq2, isNull } from "drizzle-orm";
|
|
|
3658
4055
|
init_esm_shims();
|
|
3659
4056
|
init_config_manager();
|
|
3660
4057
|
init_ids();
|
|
3661
|
-
import { and as
|
|
4058
|
+
import { and as and4, eq as eq4, inArray as inArray2, like, or as or2 } from "drizzle-orm";
|
|
3662
4059
|
|
|
3663
4060
|
// src/utils/url.ts
|
|
3664
4061
|
init_esm_shims();
|
|
@@ -3668,17 +4065,27 @@ init_id();
|
|
|
3668
4065
|
init_database_wrapper();
|
|
3669
4066
|
init_schema();
|
|
3670
4067
|
|
|
4068
|
+
// src/db/repositories/branch-access.ts
|
|
4069
|
+
init_esm_shims();
|
|
4070
|
+
init_types();
|
|
4071
|
+
init_database_wrapper();
|
|
4072
|
+
init_schema();
|
|
4073
|
+
import { and as and3, eq as eq3, exists, inArray, isNotNull, or, sql as sql4 } from "drizzle-orm";
|
|
4074
|
+
var VISIBLE_BRANCH_PERMISSION_LEVELS = BRANCH_PERMISSION_LEVELS.filter(
|
|
4075
|
+
(level) => level !== "none"
|
|
4076
|
+
);
|
|
4077
|
+
|
|
3671
4078
|
// src/db/repositories/board-comments.ts
|
|
3672
4079
|
init_esm_shims();
|
|
3673
4080
|
init_ids();
|
|
3674
4081
|
init_database_wrapper();
|
|
3675
4082
|
init_schema();
|
|
3676
|
-
import { and as
|
|
4083
|
+
import { and as and5, eq as eq5, isNotNull as isNotNull2, isNull as isNull2, like as like2, or as or3, sql as sql5 } from "drizzle-orm";
|
|
3677
4084
|
|
|
3678
4085
|
// src/db/repositories/board-objects.ts
|
|
3679
4086
|
init_esm_shims();
|
|
3680
4087
|
init_ids();
|
|
3681
|
-
import { and as and6, asc, eq as eq6, getTableColumns, isNotNull as
|
|
4088
|
+
import { and as and6, asc, eq as eq6, getTableColumns, isNotNull as isNotNull3, isNull as isNull3, or as or4, sql as sql6 } from "drizzle-orm";
|
|
3682
4089
|
|
|
3683
4090
|
// src/utils/board-placement.ts
|
|
3684
4091
|
init_esm_shims();
|
|
@@ -3687,27 +4094,41 @@ init_esm_shims();
|
|
|
3687
4094
|
init_database_wrapper();
|
|
3688
4095
|
init_schema();
|
|
3689
4096
|
|
|
3690
|
-
// src/db/repositories/branch-access.ts
|
|
3691
|
-
init_esm_shims();
|
|
3692
|
-
init_types();
|
|
3693
|
-
init_database_wrapper();
|
|
3694
|
-
init_schema();
|
|
3695
|
-
import { and as and5, eq as eq5, exists, inArray, isNotNull, or as or2, sql as sql4 } from "drizzle-orm";
|
|
3696
|
-
var VISIBLE_BRANCH_PERMISSION_LEVELS = BRANCH_PERMISSION_LEVELS.filter(
|
|
3697
|
-
(level) => level !== "none"
|
|
3698
|
-
);
|
|
3699
|
-
|
|
3700
4097
|
// src/db/repositories/boards.ts
|
|
3701
4098
|
init_esm_shims();
|
|
3702
4099
|
init_types();
|
|
3703
4100
|
init_config_manager();
|
|
3704
4101
|
init_ids();
|
|
3705
|
-
import { and as and9, eq as eq9,
|
|
4102
|
+
import { and as and9, eq as eq9, inArray as inArray4, isNull as isNull4, like as like4, ne } from "drizzle-orm";
|
|
3706
4103
|
import * as yaml2 from "js-yaml";
|
|
3707
4104
|
|
|
3708
4105
|
// src/lib/slugs.ts
|
|
3709
4106
|
init_esm_shims();
|
|
3710
4107
|
|
|
4108
|
+
// src/utils/emoji-shortcodes.ts
|
|
4109
|
+
init_esm_shims();
|
|
4110
|
+
import { createRequire } from "module";
|
|
4111
|
+
var requireJson = createRequire(import.meta.url);
|
|
4112
|
+
var emojiData = requireJson("emojibase-data/en/compact.json");
|
|
4113
|
+
var shortcodes = requireJson(
|
|
4114
|
+
"emojibase-data/en/shortcodes/emojibase.json"
|
|
4115
|
+
);
|
|
4116
|
+
var emojiByHexcode = /* @__PURE__ */ new Map();
|
|
4117
|
+
for (const emoji of emojiData) {
|
|
4118
|
+
if (emoji.unicode) {
|
|
4119
|
+
emojiByHexcode.set(emoji.hexcode, emoji.unicode);
|
|
4120
|
+
}
|
|
4121
|
+
}
|
|
4122
|
+
var emojiByShortcode = /* @__PURE__ */ new Map();
|
|
4123
|
+
for (const [hexcode, codes] of Object.entries(shortcodes)) {
|
|
4124
|
+
const emoji = emojiByHexcode.get(hexcode);
|
|
4125
|
+
if (!emoji) continue;
|
|
4126
|
+
const codeList = Array.isArray(codes) ? codes : [codes];
|
|
4127
|
+
for (const code of codeList) {
|
|
4128
|
+
emojiByShortcode.set(code.toLowerCase(), emoji);
|
|
4129
|
+
}
|
|
4130
|
+
}
|
|
4131
|
+
|
|
3711
4132
|
// src/db/repositories/boards.ts
|
|
3712
4133
|
init_database_wrapper();
|
|
3713
4134
|
init_schema();
|
|
@@ -3717,7 +4138,7 @@ init_esm_shims();
|
|
|
3717
4138
|
init_types();
|
|
3718
4139
|
init_config_manager();
|
|
3719
4140
|
init_ids();
|
|
3720
|
-
import { and as and8, desc, eq as eq8, getTableColumns as getTableColumns2, inArray as
|
|
4141
|
+
import { and as and8, desc, eq as eq8, exists as exists2, getTableColumns as getTableColumns2, inArray as inArray3, like as like3, or as or5, sql as sql7 } from "drizzle-orm";
|
|
3721
4142
|
init_database_wrapper();
|
|
3722
4143
|
init_schema();
|
|
3723
4144
|
|
|
@@ -3758,24 +4179,69 @@ init_database_wrapper();
|
|
|
3758
4179
|
import { eq as eq12, like as like7 } from "drizzle-orm";
|
|
3759
4180
|
init_schema();
|
|
3760
4181
|
|
|
4182
|
+
// src/db/repositories/gateway-outbound-messages.ts
|
|
4183
|
+
init_esm_shims();
|
|
4184
|
+
init_types();
|
|
4185
|
+
init_ids();
|
|
4186
|
+
init_database_wrapper();
|
|
4187
|
+
init_schema();
|
|
4188
|
+
import { and as and11, eq as eq13, isNull as isNull5, like as like8 } from "drizzle-orm";
|
|
4189
|
+
|
|
3761
4190
|
// src/db/repositories/knowledge.ts
|
|
3762
4191
|
init_esm_shims();
|
|
3763
4192
|
init_types();
|
|
3764
4193
|
init_config_manager();
|
|
3765
4194
|
init_ids();
|
|
3766
4195
|
import { createHash } from "crypto";
|
|
3767
|
-
import { and as
|
|
4196
|
+
import { and as and12, desc as desc2, eq as eq14, inArray as inArray5, like as like9, or as or6, sql as sql8 } from "drizzle-orm";
|
|
3768
4197
|
init_database_wrapper();
|
|
3769
4198
|
init_schema();
|
|
3770
4199
|
|
|
3771
4200
|
// src/db/repositories/mcp-servers.ts
|
|
3772
4201
|
init_esm_shims();
|
|
3773
4202
|
init_ids();
|
|
3774
|
-
import { and as
|
|
4203
|
+
import { and as and14, eq as eq17, like as like10 } from "drizzle-orm";
|
|
3775
4204
|
|
|
3776
4205
|
// src/tools/mcp/auth-secrets.ts
|
|
3777
4206
|
init_esm_shims();
|
|
3778
4207
|
|
|
4208
|
+
// src/mcp/template-resolver.ts
|
|
4209
|
+
init_esm_shims();
|
|
4210
|
+
|
|
4211
|
+
// src/config/env-resolver.ts
|
|
4212
|
+
init_esm_shims();
|
|
4213
|
+
init_database_wrapper();
|
|
4214
|
+
import { eq as eq16 } from "drizzle-orm";
|
|
4215
|
+
|
|
4216
|
+
// src/db/repositories/session-env-selections.ts
|
|
4217
|
+
init_esm_shims();
|
|
4218
|
+
init_database_wrapper();
|
|
4219
|
+
init_schema();
|
|
4220
|
+
import { and as and13, eq as eq15 } from "drizzle-orm";
|
|
4221
|
+
|
|
4222
|
+
// src/config/env-resolver.ts
|
|
4223
|
+
init_schema();
|
|
4224
|
+
|
|
4225
|
+
// src/config/env-blocklist.ts
|
|
4226
|
+
init_esm_shims();
|
|
4227
|
+
var BLOCKED_ENV_PATTERNS = Object.freeze([
|
|
4228
|
+
/^LD_/i,
|
|
4229
|
+
/^DYLD_/i,
|
|
4230
|
+
/^PYTHON(?!_AGOR_)/i
|
|
4231
|
+
]);
|
|
4232
|
+
|
|
4233
|
+
// src/config/env-vars.ts
|
|
4234
|
+
init_esm_shims();
|
|
4235
|
+
var V05_SCOPES = ["global", "session"];
|
|
4236
|
+
var V05_SCOPE_SET = new Set(V05_SCOPES);
|
|
4237
|
+
|
|
4238
|
+
// src/templates/handlebars-helpers.ts
|
|
4239
|
+
init_esm_shims();
|
|
4240
|
+
import Handlebars from "handlebars";
|
|
4241
|
+
|
|
4242
|
+
// src/mcp/template-patterns.ts
|
|
4243
|
+
init_esm_shims();
|
|
4244
|
+
|
|
3779
4245
|
// src/tools/mcp/http-headers.ts
|
|
3780
4246
|
init_esm_shims();
|
|
3781
4247
|
var MCP_HEADER_REDACTED_SENTINEL = "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022";
|
|
@@ -3926,7 +4392,7 @@ var MCPServerRepository = class {
|
|
|
3926
4392
|
*/
|
|
3927
4393
|
async resolveId(id) {
|
|
3928
4394
|
return resolveByShortIdPrefix(id, "MCPServer", async (pattern) => {
|
|
3929
|
-
const rows = await select(this.db).from(mcpServers3).where(
|
|
4395
|
+
const rows = await select(this.db).from(mcpServers3).where(like10(mcpServers3.mcp_server_id, pattern)).limit(RESOLVE_SHORT_ID_FETCH_LIMIT).all();
|
|
3930
4396
|
return rows.map((r) => r.mcp_server_id);
|
|
3931
4397
|
});
|
|
3932
4398
|
}
|
|
@@ -3937,7 +4403,7 @@ var MCPServerRepository = class {
|
|
|
3937
4403
|
try {
|
|
3938
4404
|
const insertData = this.mcpServerToInsert(data);
|
|
3939
4405
|
await insert(this.db, mcpServers3).values(insertData).run();
|
|
3940
|
-
const row = await select(this.db).from(mcpServers3).where(
|
|
4406
|
+
const row = await select(this.db).from(mcpServers3).where(eq17(mcpServers3.mcp_server_id, insertData.mcp_server_id)).one();
|
|
3941
4407
|
if (!row) {
|
|
3942
4408
|
throw new RepositoryError("Failed to retrieve created MCP server");
|
|
3943
4409
|
}
|
|
@@ -3956,7 +4422,7 @@ var MCPServerRepository = class {
|
|
|
3956
4422
|
async findById(id) {
|
|
3957
4423
|
try {
|
|
3958
4424
|
const fullId = await this.resolveId(id);
|
|
3959
|
-
const row = await select(this.db).from(mcpServers3).where(
|
|
4425
|
+
const row = await select(this.db).from(mcpServers3).where(eq17(mcpServers3.mcp_server_id, fullId)).one();
|
|
3960
4426
|
return row ? this.rowToMCPServer(row) : null;
|
|
3961
4427
|
} catch (error) {
|
|
3962
4428
|
if (error instanceof EntityNotFoundError) return null;
|
|
@@ -3975,24 +4441,24 @@ var MCPServerRepository = class {
|
|
|
3975
4441
|
let query = select(this.db).from(mcpServers3);
|
|
3976
4442
|
const conditions = [];
|
|
3977
4443
|
if (filters?.scope) {
|
|
3978
|
-
conditions.push(
|
|
4444
|
+
conditions.push(eq17(mcpServers3.scope, filters.scope));
|
|
3979
4445
|
}
|
|
3980
4446
|
if (filters?.scopeId) {
|
|
3981
4447
|
if (filters.scope === "global") {
|
|
3982
|
-
conditions.push(
|
|
4448
|
+
conditions.push(eq17(mcpServers3.owner_user_id, filters.scopeId));
|
|
3983
4449
|
}
|
|
3984
4450
|
}
|
|
3985
4451
|
if (filters?.transport) {
|
|
3986
|
-
conditions.push(
|
|
4452
|
+
conditions.push(eq17(mcpServers3.transport, filters.transport));
|
|
3987
4453
|
}
|
|
3988
4454
|
if (filters?.enabled !== void 0) {
|
|
3989
|
-
conditions.push(
|
|
4455
|
+
conditions.push(eq17(mcpServers3.enabled, filters.enabled));
|
|
3990
4456
|
}
|
|
3991
4457
|
if (filters?.source) {
|
|
3992
|
-
conditions.push(
|
|
4458
|
+
conditions.push(eq17(mcpServers3.source, filters.source));
|
|
3993
4459
|
}
|
|
3994
4460
|
if (conditions.length > 0) {
|
|
3995
|
-
query = query.where(
|
|
4461
|
+
query = query.where(and14(...conditions));
|
|
3996
4462
|
}
|
|
3997
4463
|
const rows = await query.all();
|
|
3998
4464
|
return rows.map((row) => this.rowToMCPServer(row));
|
|
@@ -4039,7 +4505,7 @@ var MCPServerRepository = class {
|
|
|
4039
4505
|
transport: insertData.transport,
|
|
4040
4506
|
updated_at: /* @__PURE__ */ new Date(),
|
|
4041
4507
|
data: insertData.data
|
|
4042
|
-
}).where(
|
|
4508
|
+
}).where(eq17(mcpServers3.mcp_server_id, fullId)).run();
|
|
4043
4509
|
const updated = await this.findById(fullId);
|
|
4044
4510
|
if (!updated) {
|
|
4045
4511
|
throw new RepositoryError("Failed to retrieve updated MCP server");
|
|
@@ -4060,7 +4526,7 @@ var MCPServerRepository = class {
|
|
|
4060
4526
|
async delete(id) {
|
|
4061
4527
|
try {
|
|
4062
4528
|
const fullId = await this.resolveId(id);
|
|
4063
|
-
const result = await deleteFrom(this.db, mcpServers3).where(
|
|
4529
|
+
const result = await deleteFrom(this.db, mcpServers3).where(eq17(mcpServers3.mcp_server_id, fullId)).run();
|
|
4064
4530
|
if (result.rowsAffected === 0) {
|
|
4065
4531
|
throw new EntityNotFoundError("MCPServer", id);
|
|
4066
4532
|
}
|
|
@@ -4092,21 +4558,18 @@ var MCPServerRepository = class {
|
|
|
4092
4558
|
init_esm_shims();
|
|
4093
4559
|
init_database_wrapper();
|
|
4094
4560
|
init_schema();
|
|
4095
|
-
import { and as
|
|
4561
|
+
import { and as and15, eq as eq18, inArray as inArray6 } from "drizzle-orm";
|
|
4096
4562
|
|
|
4097
4563
|
// src/db/repositories/repos.ts
|
|
4098
4564
|
init_esm_shims();
|
|
4099
|
-
import { eq as
|
|
4565
|
+
import { eq as eq19, like as like11, sql as sql9 } from "drizzle-orm";
|
|
4100
4566
|
|
|
4101
4567
|
// src/config/variant-resolver.ts
|
|
4102
4568
|
init_esm_shims();
|
|
4103
4569
|
|
|
4104
4570
|
// src/yaml/index.ts
|
|
4105
4571
|
init_esm_shims();
|
|
4106
|
-
import yaml3 from "js-yaml";
|
|
4107
|
-
var load2 = yaml3.load;
|
|
4108
|
-
var dump2 = yaml3.dump;
|
|
4109
|
-
var YAMLException = yaml3.YAMLException;
|
|
4572
|
+
import * as yaml3 from "js-yaml";
|
|
4110
4573
|
|
|
4111
4574
|
// src/db/repositories/repos.ts
|
|
4112
4575
|
init_ids();
|
|
@@ -4118,33 +4581,27 @@ init_esm_shims();
|
|
|
4118
4581
|
init_ids();
|
|
4119
4582
|
init_database_wrapper();
|
|
4120
4583
|
init_schema();
|
|
4121
|
-
import { and as
|
|
4584
|
+
import { and as and16, asc as asc2, desc as desc3, eq as eq20, isNull as isNull6, like as like12, lte, or as or7, sql as sql10 } from "drizzle-orm";
|
|
4122
4585
|
|
|
4123
4586
|
// src/db/repositories/serialized-sessions.ts
|
|
4124
4587
|
init_esm_shims();
|
|
4125
4588
|
init_ids();
|
|
4126
4589
|
init_database_wrapper();
|
|
4127
4590
|
init_schema();
|
|
4128
|
-
import { and as
|
|
4129
|
-
|
|
4130
|
-
// src/db/repositories/session-env-selections.ts
|
|
4131
|
-
init_esm_shims();
|
|
4132
|
-
init_database_wrapper();
|
|
4133
|
-
init_schema();
|
|
4134
|
-
import { and as and16, eq as eq19 } from "drizzle-orm";
|
|
4591
|
+
import { and as and17, desc as desc4, eq as eq21, lt } from "drizzle-orm";
|
|
4135
4592
|
|
|
4136
4593
|
// src/db/repositories/session-mcp-servers.ts
|
|
4137
4594
|
init_esm_shims();
|
|
4138
4595
|
init_database_wrapper();
|
|
4139
4596
|
init_schema();
|
|
4140
|
-
import { and as
|
|
4597
|
+
import { and as and19, eq as eq23 } from "drizzle-orm";
|
|
4141
4598
|
|
|
4142
4599
|
// src/db/repositories/sessions.ts
|
|
4143
4600
|
init_esm_shims();
|
|
4144
4601
|
init_types();
|
|
4145
4602
|
init_config_manager();
|
|
4146
4603
|
init_ids();
|
|
4147
|
-
import { and as
|
|
4604
|
+
import { and as and18, desc as desc5, eq as eq22, inArray as inArray7, like as like13, or as or8, sql as sql11 } from "drizzle-orm";
|
|
4148
4605
|
init_database_wrapper();
|
|
4149
4606
|
init_schema();
|
|
4150
4607
|
|
|
@@ -4153,7 +4610,7 @@ init_esm_shims();
|
|
|
4153
4610
|
init_ids();
|
|
4154
4611
|
init_database_wrapper();
|
|
4155
4612
|
init_schema();
|
|
4156
|
-
import { and as
|
|
4613
|
+
import { and as and20, eq as eq24, inArray as inArray8, or as or9 } from "drizzle-orm";
|
|
4157
4614
|
|
|
4158
4615
|
// src/db/repositories/tasks.ts
|
|
4159
4616
|
init_esm_shims();
|
|
@@ -4161,7 +4618,7 @@ init_types();
|
|
|
4161
4618
|
init_ids();
|
|
4162
4619
|
init_database_wrapper();
|
|
4163
4620
|
init_schema();
|
|
4164
|
-
import { eq as
|
|
4621
|
+
import { and as and21, eq as eq25, inArray as inArray9, like as like14, sql as sql12 } from "drizzle-orm";
|
|
4165
4622
|
|
|
4166
4623
|
// src/db/repositories/thread-session-map.ts
|
|
4167
4624
|
init_esm_shims();
|
|
@@ -4169,22 +4626,23 @@ init_types();
|
|
|
4169
4626
|
init_ids();
|
|
4170
4627
|
init_database_wrapper();
|
|
4171
4628
|
init_schema();
|
|
4172
|
-
import { and as
|
|
4629
|
+
import { and as and22, eq as eq26, like as like15, lt as lt2 } from "drizzle-orm";
|
|
4173
4630
|
|
|
4174
4631
|
// src/db/repositories/user-api-keys.ts
|
|
4175
4632
|
init_esm_shims();
|
|
4176
4633
|
init_ids();
|
|
4177
4634
|
init_database_wrapper();
|
|
4178
4635
|
init_schema();
|
|
4636
|
+
init_tenant_context();
|
|
4179
4637
|
import { randomBytes as randomBytes3 } from "crypto";
|
|
4180
4638
|
import bcrypt from "bcryptjs";
|
|
4181
|
-
import { and as
|
|
4639
|
+
import { and as and23, eq as eq27 } from "drizzle-orm";
|
|
4182
4640
|
|
|
4183
4641
|
// src/db/repositories/user-mcp-oauth-tokens.ts
|
|
4184
4642
|
init_esm_shims();
|
|
4185
4643
|
init_database_wrapper();
|
|
4186
4644
|
init_schema();
|
|
4187
|
-
import { and as
|
|
4645
|
+
import { and as and24, eq as eq28, isNull as isNull7 } from "drizzle-orm";
|
|
4188
4646
|
function rowToToken(row) {
|
|
4189
4647
|
return {
|
|
4190
4648
|
user_id: row.user_id ?? null,
|
|
@@ -4199,9 +4657,9 @@ function rowToToken(row) {
|
|
|
4199
4657
|
};
|
|
4200
4658
|
}
|
|
4201
4659
|
function matchKey(userId, serverId) {
|
|
4202
|
-
return
|
|
4203
|
-
userId === null ?
|
|
4204
|
-
|
|
4660
|
+
return and24(
|
|
4661
|
+
userId === null ? isNull7(userMcpOauthTokens3.user_id) : eq28(userMcpOauthTokens3.user_id, userId),
|
|
4662
|
+
eq28(userMcpOauthTokens3.mcp_server_id, serverId)
|
|
4205
4663
|
);
|
|
4206
4664
|
}
|
|
4207
4665
|
var UserMCPOAuthTokenRepository = class {
|
|
@@ -4318,7 +4776,7 @@ var UserMCPOAuthTokenRepository = class {
|
|
|
4318
4776
|
}
|
|
4319
4777
|
async deleteAllForUser(userId) {
|
|
4320
4778
|
try {
|
|
4321
|
-
const result = await deleteFrom(this.db, userMcpOauthTokens3).where(
|
|
4779
|
+
const result = await deleteFrom(this.db, userMcpOauthTokens3).where(eq28(userMcpOauthTokens3.user_id, userId)).run();
|
|
4322
4780
|
return result.rowsAffected;
|
|
4323
4781
|
} catch (error) {
|
|
4324
4782
|
throw new RepositoryError(
|
|
@@ -4329,7 +4787,7 @@ var UserMCPOAuthTokenRepository = class {
|
|
|
4329
4787
|
}
|
|
4330
4788
|
async deleteAllForServer(serverId) {
|
|
4331
4789
|
try {
|
|
4332
|
-
const result = await deleteFrom(this.db, userMcpOauthTokens3).where(
|
|
4790
|
+
const result = await deleteFrom(this.db, userMcpOauthTokens3).where(eq28(userMcpOauthTokens3.mcp_server_id, serverId)).run();
|
|
4333
4791
|
return result.rowsAffected;
|
|
4334
4792
|
} catch (error) {
|
|
4335
4793
|
throw new RepositoryError(
|
|
@@ -4340,7 +4798,7 @@ var UserMCPOAuthTokenRepository = class {
|
|
|
4340
4798
|
}
|
|
4341
4799
|
async listForUser(userId) {
|
|
4342
4800
|
try {
|
|
4343
|
-
const rows = await select(this.db).from(userMcpOauthTokens3).where(
|
|
4801
|
+
const rows = await select(this.db).from(userMcpOauthTokens3).where(eq28(userMcpOauthTokens3.user_id, userId)).all();
|
|
4344
4802
|
return rows.map(rowToToken);
|
|
4345
4803
|
} catch (error) {
|
|
4346
4804
|
throw new RepositoryError(
|
|
@@ -4358,14 +4816,7 @@ var UserMCPOAuthTokenRepository = class {
|
|
|
4358
4816
|
// src/db/repositories/users.ts
|
|
4359
4817
|
init_esm_shims();
|
|
4360
4818
|
init_types();
|
|
4361
|
-
import { eq as
|
|
4362
|
-
|
|
4363
|
-
// src/config/env-vars.ts
|
|
4364
|
-
init_esm_shims();
|
|
4365
|
-
var V05_SCOPES = ["global", "session"];
|
|
4366
|
-
var V05_SCOPE_SET = new Set(V05_SCOPES);
|
|
4367
|
-
|
|
4368
|
-
// src/db/repositories/users.ts
|
|
4819
|
+
import { eq as eq29, like as like16, sql as sql13 } from "drizzle-orm";
|
|
4369
4820
|
init_ids();
|
|
4370
4821
|
init_database_wrapper();
|
|
4371
4822
|
init_schema();
|