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
|
@@ -34,6 +34,34 @@ var DrizzleService = class {
|
|
|
34
34
|
// Event emitter for FeathersJS (will be injected by framework)
|
|
35
35
|
// biome-ignore lint/suspicious/noExplicitAny: FeathersJS event system
|
|
36
36
|
emit;
|
|
37
|
+
/** Extract resolved tenant context from Feathers params. */
|
|
38
|
+
getTenant(params) {
|
|
39
|
+
return params?.tenant;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Whether a row belongs to the current tenant. Rows from pre-migration test
|
|
43
|
+
* fixtures that do not expose tenant_id are treated as visible so existing
|
|
44
|
+
* single-tenant unit tests keep working; migrated DB rows always carry it.
|
|
45
|
+
*/
|
|
46
|
+
rowBelongsToTenant(row, tenant) {
|
|
47
|
+
if (!tenant) return true;
|
|
48
|
+
const record = row;
|
|
49
|
+
if (!("tenant_id" in record)) return true;
|
|
50
|
+
return record.tenant_id === tenant.tenant_id;
|
|
51
|
+
}
|
|
52
|
+
/** Stamp tenant_id onto created rows and prevent client-supplied drift. */
|
|
53
|
+
withTenant(data, params) {
|
|
54
|
+
const tenant = this.getTenant(params);
|
|
55
|
+
if (!tenant || !data || typeof data !== "object" || Array.isArray(data)) return data;
|
|
56
|
+
return { ...data, tenant_id: tenant.tenant_id };
|
|
57
|
+
}
|
|
58
|
+
/** Never allow a patch/update to move a row across tenants. */
|
|
59
|
+
stripTenantMutation(data) {
|
|
60
|
+
if (!data || typeof data !== "object" || Array.isArray(data)) return data;
|
|
61
|
+
const clone = { ...data };
|
|
62
|
+
delete clone.tenant_id;
|
|
63
|
+
return clone;
|
|
64
|
+
}
|
|
37
65
|
/**
|
|
38
66
|
* Extract query parameters from params
|
|
39
67
|
*/
|
|
@@ -125,12 +153,28 @@ var DrizzleService = class {
|
|
|
125
153
|
data: paginated
|
|
126
154
|
};
|
|
127
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Resolve the candidate row set that `find` filters, sorts, and paginates.
|
|
158
|
+
*
|
|
159
|
+
* The base implementation reads the whole table and relies on `filterData` to
|
|
160
|
+
* narrow it in memory. Subclasses may override this to push high-selectivity
|
|
161
|
+
* predicates into SQL; because `find` always re-applies every query filter via
|
|
162
|
+
* `filterData`, an override only needs to return a superset of the matching
|
|
163
|
+
* rows for the result to stay identical.
|
|
164
|
+
*/
|
|
165
|
+
async fetchData(_query, _params) {
|
|
166
|
+
return this.repository.findAll();
|
|
167
|
+
}
|
|
128
168
|
/**
|
|
129
169
|
* Find records
|
|
130
170
|
*/
|
|
131
171
|
async find(params) {
|
|
132
172
|
const query = this.getQuery(params);
|
|
133
|
-
let data = await this.
|
|
173
|
+
let data = await this.fetchData(query, params);
|
|
174
|
+
const tenant = this.getTenant(params);
|
|
175
|
+
if (tenant) {
|
|
176
|
+
data = data.filter((row) => this.rowBelongsToTenant(row, tenant));
|
|
177
|
+
}
|
|
134
178
|
data = this.filterData(data, query);
|
|
135
179
|
const total = data.length;
|
|
136
180
|
data = this.sortData(data, query.$sort);
|
|
@@ -142,10 +186,13 @@ var DrizzleService = class {
|
|
|
142
186
|
*/
|
|
143
187
|
async get(id, _params) {
|
|
144
188
|
const prefetched = _params?._agorPrefetchedRecord;
|
|
145
|
-
if (prefetched && prefetched.idField === this.id && prefetched.id === String(id) && String(prefetched.record[this.id]) === String(id)) {
|
|
189
|
+
if (prefetched && prefetched.idField === this.id && prefetched.id === String(id) && String(prefetched.record[this.id]) === String(id) && this.rowBelongsToTenant(prefetched.record, this.getTenant(_params))) {
|
|
146
190
|
return prefetched.record;
|
|
147
191
|
}
|
|
148
192
|
const result = await this.repository.findById(String(id));
|
|
193
|
+
if (result && !this.rowBelongsToTenant(result, this.getTenant(_params))) {
|
|
194
|
+
throw new NotFoundError(this.resourceType, String(id));
|
|
195
|
+
}
|
|
149
196
|
if (!result) {
|
|
150
197
|
throw new NotFoundError(this.resourceType, String(id));
|
|
151
198
|
}
|
|
@@ -157,14 +204,18 @@ var DrizzleService = class {
|
|
|
157
204
|
async create(data, params) {
|
|
158
205
|
if (Array.isArray(data)) {
|
|
159
206
|
const results = await Promise.all(
|
|
160
|
-
data.map(
|
|
207
|
+
data.map(
|
|
208
|
+
(item) => this.repository.create(this.withTenant(item, params))
|
|
209
|
+
)
|
|
161
210
|
);
|
|
162
211
|
for (const result2 of results) {
|
|
163
212
|
this.emit?.("created", result2, params);
|
|
164
213
|
}
|
|
165
214
|
return results;
|
|
166
215
|
}
|
|
167
|
-
const result = await this.repository.create(
|
|
216
|
+
const result = await this.repository.create(
|
|
217
|
+
this.withTenant(data, params)
|
|
218
|
+
);
|
|
168
219
|
this.emit?.("created", result, params);
|
|
169
220
|
return result;
|
|
170
221
|
}
|
|
@@ -180,7 +231,10 @@ var DrizzleService = class {
|
|
|
180
231
|
*/
|
|
181
232
|
async update(id, data, params) {
|
|
182
233
|
await this.get(id, params);
|
|
183
|
-
const result = await this.repository.update(
|
|
234
|
+
const result = await this.repository.update(
|
|
235
|
+
String(id),
|
|
236
|
+
this.stripTenantMutation(data)
|
|
237
|
+
);
|
|
184
238
|
this.emit?.("updated", result, params);
|
|
185
239
|
return result;
|
|
186
240
|
}
|
|
@@ -194,12 +248,14 @@ var DrizzleService = class {
|
|
|
194
248
|
}
|
|
195
249
|
const query = this.getQuery(params);
|
|
196
250
|
let records = await this.repository.findAll();
|
|
251
|
+
const tenant = this.getTenant(params);
|
|
252
|
+
if (tenant) records = records.filter((row) => this.rowBelongsToTenant(row, tenant));
|
|
197
253
|
records = this.filterData(records, query);
|
|
198
254
|
const results = await Promise.all(
|
|
199
255
|
records.map(
|
|
200
256
|
(record) => this.repository.update(
|
|
201
257
|
record[this.id],
|
|
202
|
-
data
|
|
258
|
+
this.stripTenantMutation(data)
|
|
203
259
|
)
|
|
204
260
|
)
|
|
205
261
|
);
|
|
@@ -209,7 +265,10 @@ var DrizzleService = class {
|
|
|
209
265
|
return results;
|
|
210
266
|
}
|
|
211
267
|
await this.get(id, params);
|
|
212
|
-
const result = await this.repository.update(
|
|
268
|
+
const result = await this.repository.update(
|
|
269
|
+
String(id),
|
|
270
|
+
this.stripTenantMutation(data)
|
|
271
|
+
);
|
|
213
272
|
this.emit?.("patched", result, params);
|
|
214
273
|
return result;
|
|
215
274
|
}
|
|
@@ -223,6 +282,8 @@ var DrizzleService = class {
|
|
|
223
282
|
}
|
|
224
283
|
const query = this.getQuery(params);
|
|
225
284
|
let records = await this.repository.findAll();
|
|
285
|
+
const tenant = this.getTenant(params);
|
|
286
|
+
if (tenant) records = records.filter((row) => this.rowBelongsToTenant(row, tenant));
|
|
226
287
|
records = this.filterData(records, query);
|
|
227
288
|
await Promise.all(records.map((record) => this.repository.delete(record[this.id])));
|
|
228
289
|
for (const record of records) {
|
|
@@ -270,6 +331,28 @@ function rowsOf(result) {
|
|
|
270
331
|
function boolValue(value) {
|
|
271
332
|
return value === true || value === "t" || value === "true" || value === 1 || value === "1";
|
|
272
333
|
}
|
|
334
|
+
async function ensureEmbeddingTenantIsolation(db) {
|
|
335
|
+
await executeRaw(
|
|
336
|
+
db,
|
|
337
|
+
sql`ALTER TABLE kb_unit_embeddings ADD COLUMN IF NOT EXISTS tenant_id text DEFAULT 'default' NOT NULL`
|
|
338
|
+
);
|
|
339
|
+
await executeRaw(
|
|
340
|
+
db,
|
|
341
|
+
sql`CREATE INDEX IF NOT EXISTS kb_unit_embeddings_tenant_id_idx ON kb_unit_embeddings USING btree (tenant_id)`
|
|
342
|
+
);
|
|
343
|
+
await executeRaw(db, sql`ALTER TABLE kb_unit_embeddings ENABLE ROW LEVEL SECURITY`);
|
|
344
|
+
await executeRaw(db, sql`ALTER TABLE kb_unit_embeddings FORCE ROW LEVEL SECURITY`);
|
|
345
|
+
await executeRaw(
|
|
346
|
+
db,
|
|
347
|
+
sql`DROP POLICY IF EXISTS tenant_isolation_kb_unit_embeddings ON kb_unit_embeddings`
|
|
348
|
+
);
|
|
349
|
+
await executeRaw(
|
|
350
|
+
db,
|
|
351
|
+
sql`CREATE POLICY tenant_isolation_kb_unit_embeddings ON kb_unit_embeddings
|
|
352
|
+
USING (tenant_id = COALESCE(NULLIF(current_setting('agor.tenant_id', true), ''), 'default'))
|
|
353
|
+
WITH CHECK (tenant_id = COALESCE(NULLIF(current_setting('agor.tenant_id', true), ''), 'default'))`
|
|
354
|
+
);
|
|
355
|
+
}
|
|
273
356
|
async function readCapability(db) {
|
|
274
357
|
if (!isPostgresDatabase(db)) {
|
|
275
358
|
return {
|
|
@@ -352,6 +435,7 @@ async function ensureKnowledgePgvectorStorage(db) {
|
|
|
352
435
|
await executeRaw(
|
|
353
436
|
db,
|
|
354
437
|
sql`CREATE TABLE IF NOT EXISTS kb_unit_embeddings (
|
|
438
|
+
tenant_id text DEFAULT 'default' NOT NULL,
|
|
355
439
|
unit_id varchar(36) NOT NULL REFERENCES public.kb_document_units(unit_id) ON DELETE cascade,
|
|
356
440
|
embedding_space_id varchar(36) NOT NULL REFERENCES public.kb_embedding_spaces(embedding_space_id) ON DELETE cascade,
|
|
357
441
|
content_sha256 text NOT NULL,
|
|
@@ -364,6 +448,7 @@ async function ensureKnowledgePgvectorStorage(db) {
|
|
|
364
448
|
);
|
|
365
449
|
capability.tableReady = true;
|
|
366
450
|
}
|
|
451
|
+
await ensureEmbeddingTenantIsolation(db);
|
|
367
452
|
if (!capability.spaceIndexReady) {
|
|
368
453
|
await executeRaw(
|
|
369
454
|
db,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type TenantScopeAwareDatabase } from '@agor/core/db';
|
|
2
|
+
import type { TenantID } from '@agor/core/types';
|
|
2
3
|
export interface EmbeddingReuseIntoNextMetadataUpdate {
|
|
3
4
|
targetVersionId: string;
|
|
4
5
|
embeddingSpaceId: string;
|
|
@@ -19,6 +20,7 @@ export interface KnowledgeEmbeddingReuseSqlParams {
|
|
|
19
20
|
export declare function buildKnowledgeEmbeddingReuseSql(params: KnowledgeEmbeddingReuseSqlParams): import("drizzle-orm").SQL<unknown>;
|
|
20
21
|
export declare class KnowledgeEmbeddingIndexer {
|
|
21
22
|
private db;
|
|
23
|
+
private options;
|
|
22
24
|
private intervalHandle?;
|
|
23
25
|
private running;
|
|
24
26
|
private wakeScheduled;
|
|
@@ -27,7 +29,9 @@ export declare class KnowledgeEmbeddingIndexer {
|
|
|
27
29
|
private lastError;
|
|
28
30
|
private lastIndexedAt;
|
|
29
31
|
private pgvectorStorageReady;
|
|
30
|
-
constructor(db:
|
|
32
|
+
constructor(db: TenantScopeAwareDatabase, options?: {
|
|
33
|
+
tenantId?: TenantID | string;
|
|
34
|
+
});
|
|
31
35
|
start(): void;
|
|
32
36
|
stop(): void;
|
|
33
37
|
wake(): void;
|
|
@@ -51,6 +55,7 @@ export declare class KnowledgeEmbeddingIndexer {
|
|
|
51
55
|
private reuseExistingEmbeddings;
|
|
52
56
|
private recordEmbeddingReuseIntoNext;
|
|
53
57
|
tick(): Promise<void>;
|
|
58
|
+
private tickInScope;
|
|
54
59
|
indexBatch(): Promise<number>;
|
|
55
60
|
}
|
|
56
61
|
//# sourceMappingURL=knowledge-embedding-indexer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-embedding-indexer.d.ts","sourceRoot":"","sources":["../../src/services/knowledge-embedding-indexer.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"knowledge-embedding-indexer.d.ts","sourceRoot":"","sources":["../../src/services/knowledge-embedding-indexer.ts"],"names":[],"mappings":"AACA,OAAO,EAcL,KAAK,wBAAwB,EAE9B,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAA2B,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA8B1E,MAAM,WAAW,oCAAoC;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAqBD,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EACpD,MAAM,EAAE,oCAAoC,GAC3C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBzB;AAED,MAAM,WAAW,gCAAgC;IAC/C,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,gCAAgC,sCA4EvF;AAED,qBAAa,yBAAyB;IAWlC,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,OAAO;IAXjB,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,oBAAoB,CAAS;gBAG3B,EAAE,EAAE,wBAAwB,EAC5B,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;KAAO;IAKxD,KAAK,IAAI,IAAI;IAUb,IAAI,IAAI,IAAI;IAKZ,IAAI,IAAI,IAAI;IAWZ,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,gBAAgB,IAAI,IAAI,GAAG,IAAI;IAI/B,OAAO,CAAC,IAAI;YAKE,oBAAoB;IAgClC,OAAO,CAAC,OAAO;IAMf;;;;;;;;;;;OAWG;YACW,uBAAuB;YAcvB,4BAA4B;IAwEpC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAOb,WAAW;IAcnB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAkKpC"}
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
kbDocumentUnits,
|
|
11
11
|
kbDocumentVersions,
|
|
12
12
|
kbEmbeddingSpaces,
|
|
13
|
+
runWithTenantDatabaseScope,
|
|
13
14
|
select,
|
|
14
15
|
shortId,
|
|
15
16
|
sql as sql2,
|
|
@@ -82,6 +83,28 @@ function rowsOf(result) {
|
|
|
82
83
|
function boolValue(value) {
|
|
83
84
|
return value === true || value === "t" || value === "true" || value === 1 || value === "1";
|
|
84
85
|
}
|
|
86
|
+
async function ensureEmbeddingTenantIsolation(db) {
|
|
87
|
+
await executeRaw(
|
|
88
|
+
db,
|
|
89
|
+
sql`ALTER TABLE kb_unit_embeddings ADD COLUMN IF NOT EXISTS tenant_id text DEFAULT 'default' NOT NULL`
|
|
90
|
+
);
|
|
91
|
+
await executeRaw(
|
|
92
|
+
db,
|
|
93
|
+
sql`CREATE INDEX IF NOT EXISTS kb_unit_embeddings_tenant_id_idx ON kb_unit_embeddings USING btree (tenant_id)`
|
|
94
|
+
);
|
|
95
|
+
await executeRaw(db, sql`ALTER TABLE kb_unit_embeddings ENABLE ROW LEVEL SECURITY`);
|
|
96
|
+
await executeRaw(db, sql`ALTER TABLE kb_unit_embeddings FORCE ROW LEVEL SECURITY`);
|
|
97
|
+
await executeRaw(
|
|
98
|
+
db,
|
|
99
|
+
sql`DROP POLICY IF EXISTS tenant_isolation_kb_unit_embeddings ON kb_unit_embeddings`
|
|
100
|
+
);
|
|
101
|
+
await executeRaw(
|
|
102
|
+
db,
|
|
103
|
+
sql`CREATE POLICY tenant_isolation_kb_unit_embeddings ON kb_unit_embeddings
|
|
104
|
+
USING (tenant_id = COALESCE(NULLIF(current_setting('agor.tenant_id', true), ''), 'default'))
|
|
105
|
+
WITH CHECK (tenant_id = COALESCE(NULLIF(current_setting('agor.tenant_id', true), ''), 'default'))`
|
|
106
|
+
);
|
|
107
|
+
}
|
|
85
108
|
async function readCapability(db) {
|
|
86
109
|
if (!isPostgresDatabase(db)) {
|
|
87
110
|
return {
|
|
@@ -164,6 +187,7 @@ async function ensureKnowledgePgvectorStorage(db) {
|
|
|
164
187
|
await executeRaw(
|
|
165
188
|
db,
|
|
166
189
|
sql`CREATE TABLE IF NOT EXISTS kb_unit_embeddings (
|
|
190
|
+
tenant_id text DEFAULT 'default' NOT NULL,
|
|
167
191
|
unit_id varchar(36) NOT NULL REFERENCES public.kb_document_units(unit_id) ON DELETE cascade,
|
|
168
192
|
embedding_space_id varchar(36) NOT NULL REFERENCES public.kb_embedding_spaces(embedding_space_id) ON DELETE cascade,
|
|
169
193
|
content_sha256 text NOT NULL,
|
|
@@ -176,6 +200,7 @@ async function ensureKnowledgePgvectorStorage(db) {
|
|
|
176
200
|
);
|
|
177
201
|
capability.tableReady = true;
|
|
178
202
|
}
|
|
203
|
+
await ensureEmbeddingTenantIsolation(db);
|
|
179
204
|
if (!capability.spaceIndexReady) {
|
|
180
205
|
await executeRaw(
|
|
181
206
|
db,
|
|
@@ -274,6 +299,7 @@ function buildKnowledgeEmbeddingReuseSql(params) {
|
|
|
274
299
|
ORDER BY p.unit_id, old_u.updated_at DESC NULLS LAST, old_u.created_at DESC
|
|
275
300
|
), upserted AS (
|
|
276
301
|
INSERT INTO kb_unit_embeddings (
|
|
302
|
+
tenant_id,
|
|
277
303
|
unit_id,
|
|
278
304
|
embedding_space_id,
|
|
279
305
|
content_sha256,
|
|
@@ -283,6 +309,7 @@ function buildKnowledgeEmbeddingReuseSql(params) {
|
|
|
283
309
|
updated_at
|
|
284
310
|
)
|
|
285
311
|
SELECT
|
|
312
|
+
COALESCE(NULLIF(current_setting('agor.tenant_id', true), ''), 'default'),
|
|
286
313
|
new_unit_id,
|
|
287
314
|
${params.embeddingSpaceId},
|
|
288
315
|
content_sha256,
|
|
@@ -314,8 +341,9 @@ function buildKnowledgeEmbeddingReuseSql(params) {
|
|
|
314
341
|
candidates.previous_version_id`;
|
|
315
342
|
}
|
|
316
343
|
var KnowledgeEmbeddingIndexer = class {
|
|
317
|
-
constructor(db) {
|
|
344
|
+
constructor(db, options = {}) {
|
|
318
345
|
this.db = db;
|
|
346
|
+
this.options = options;
|
|
319
347
|
this.variables = new AppVariableRepository(db);
|
|
320
348
|
}
|
|
321
349
|
intervalHandle;
|
|
@@ -454,6 +482,12 @@ var KnowledgeEmbeddingIndexer = class {
|
|
|
454
482
|
}
|
|
455
483
|
}
|
|
456
484
|
async tick() {
|
|
485
|
+
if (this.options.tenantId) {
|
|
486
|
+
return runWithTenantDatabaseScope(this.db, this.options.tenantId, () => this.tickInScope());
|
|
487
|
+
}
|
|
488
|
+
return this.tickInScope();
|
|
489
|
+
}
|
|
490
|
+
async tickInScope() {
|
|
457
491
|
if (this.running) return;
|
|
458
492
|
this.running = true;
|
|
459
493
|
try {
|
|
@@ -566,8 +600,8 @@ var KnowledgeEmbeddingIndexer = class {
|
|
|
566
600
|
const vector = embeddingToPgvector(result.embedding);
|
|
567
601
|
await executeRaw2(
|
|
568
602
|
this.db,
|
|
569
|
-
sql2`INSERT INTO kb_unit_embeddings (unit_id, embedding_space_id, content_sha256, embedding, token_count, created_at, updated_at)
|
|
570
|
-
VALUES (${result.id}, ${embeddingSpaceId}, ${sha256Text(content)}, ${vector}::vector, ${result.tokenCount ?? null}, now(), now())
|
|
603
|
+
sql2`INSERT INTO kb_unit_embeddings (tenant_id, unit_id, embedding_space_id, content_sha256, embedding, token_count, created_at, updated_at)
|
|
604
|
+
VALUES (COALESCE(NULLIF(current_setting('agor.tenant_id', true), ''), 'default'), ${result.id}, ${embeddingSpaceId}, ${sha256Text(content)}, ${vector}::vector, ${result.tokenCount ?? null}, now(), now())
|
|
571
605
|
ON CONFLICT (unit_id, embedding_space_id) DO UPDATE SET
|
|
572
606
|
content_sha256 = EXCLUDED.content_sha256,
|
|
573
607
|
embedding = EXCLUDED.embedding,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Knowledge graph service
|
|
3
3
|
*/
|
|
4
|
-
import { type
|
|
4
|
+
import { type KnowledgeGraphLinkInput, type KnowledgeGraphNeighborsQuery, type TenantScopeAwareDatabase } from '@agor/core/db';
|
|
5
5
|
import type { AuthenticatedParams, KnowledgeGraphEdgeType, KnowledgeGraphNode, KnowledgeNamespaceGraph, QueryParams } from '@agor/core/types';
|
|
6
6
|
/** Query for the namespace-wide graph view (whole-namespace document graph). */
|
|
7
7
|
export interface KnowledgeNamespaceGraphRequest {
|
|
@@ -18,7 +18,7 @@ export declare class KnowledgeGraphService {
|
|
|
18
18
|
private graph;
|
|
19
19
|
private documents;
|
|
20
20
|
private namespaces;
|
|
21
|
-
constructor(db:
|
|
21
|
+
constructor(db: TenantScopeAwareDatabase);
|
|
22
22
|
create(data: KnowledgeGraphLinkInput, params?: KnowledgeGraphParams): Promise<import("@agor/core").KnowledgeGraphEdge>;
|
|
23
23
|
find(params?: KnowledgeGraphParams): Promise<KnowledgeNamespaceGraph | {
|
|
24
24
|
center: KnowledgeGraphNode;
|
|
@@ -54,5 +54,5 @@ export declare class KnowledgeGraphService {
|
|
|
54
54
|
edges: import("@agor/core").KnowledgeGraphEdge[];
|
|
55
55
|
}>;
|
|
56
56
|
}
|
|
57
|
-
export declare function createKnowledgeGraphService(db:
|
|
57
|
+
export declare function createKnowledgeGraphService(db: TenantScopeAwareDatabase): KnowledgeGraphService;
|
|
58
58
|
//# sourceMappingURL=knowledge-graph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-graph.d.ts","sourceRoot":"","sources":["../../src/services/knowledge-graph.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"knowledge-graph.d.ts","sourceRoot":"","sources":["../../src/services/knowledge-graph.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EAIjC,KAAK,wBAAwB,EAC9B,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EACV,mBAAmB,EAGnB,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,EACvB,WAAW,EAGZ,MAAM,kBAAkB,CAAC;AAc1B,gFAAgF;AAChF,MAAM,WAAW,8BAA8B;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACtC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAC5C,4BAA4B,GAAG,8BAA8B,CAC9D,GACC,mBAAmB,CAAC;AAEtB,qBAAa,qBAAqB;IAChC,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,UAAU,CAA+B;gBAErC,EAAE,EAAE,wBAAwB;IAMlC,MAAM,CAAC,IAAI,EAAE,uBAAuB,EAAE,MAAM,CAAC,EAAE,oBAAoB;IAInE,IAAI,CAAC,MAAM,CAAC,EAAE,oBAAoB;;;;;IAUxC;;;;;OAKG;IACG,cAAc,CAClB,OAAO,EAAE,8BAA8B,EACvC,MAAM,CAAC,EAAE,oBAAoB,GAC5B,OAAO,CAAC,uBAAuB,CAAC;YAmDrB,mBAAmB;YAInB,OAAO;YAKP,QAAQ;YAKR,cAAc;IAS5B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,cAAc;YAWR,cAAc;YAiBd,gBAAgB;YAYhB,eAAe;YAcf,WAAW;IAMzB,OAAO,CAAC,iBAAiB;IAMnB,IAAI,CAAC,IAAI,EAAE,uBAAuB,EAAE,MAAM,CAAC,EAAE,oBAAoB;IAUjE,SAAS,CAAC,IAAI,EAAE,4BAA4B,EAAE,MAAM,CAAC,EAAE,oBAAoB;;;;;CAyBlF;AAED,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,wBAAwB,GAAG,qBAAqB,CAE/F"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type TenantScopeAwareDatabase } from '@agor/core/db';
|
|
2
2
|
import type { Application } from '@agor/core/feathers';
|
|
3
3
|
import type { AuthenticatedParams, KnowledgeIndexingStatus, Params } from '@agor/core/types';
|
|
4
4
|
export type KnowledgeIndexingParams = Params & AuthenticatedParams;
|
|
@@ -6,8 +6,8 @@ export declare class KnowledgeIndexingStatusService {
|
|
|
6
6
|
private db;
|
|
7
7
|
private app?;
|
|
8
8
|
private variables;
|
|
9
|
-
constructor(db:
|
|
9
|
+
constructor(db: TenantScopeAwareDatabase, app?: Application | undefined);
|
|
10
10
|
find(_params?: KnowledgeIndexingParams): Promise<KnowledgeIndexingStatus>;
|
|
11
11
|
}
|
|
12
|
-
export declare function createKnowledgeIndexingStatusService(db:
|
|
12
|
+
export declare function createKnowledgeIndexingStatusService(db: TenantScopeAwareDatabase, app?: Application): KnowledgeIndexingStatusService;
|
|
13
13
|
//# sourceMappingURL=knowledge-indexing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-indexing.d.ts","sourceRoot":"","sources":["../../src/services/knowledge-indexing.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"knowledge-indexing.d.ts","sourceRoot":"","sources":["../../src/services/knowledge-indexing.ts"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,wBAAwB,EAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EACV,mBAAmB,EAEnB,uBAAuB,EACvB,MAAM,EACP,MAAM,kBAAkB,CAAC;AAkB1B,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,mBAAmB,CAAC;AAEnE,qBAAa,8BAA8B;IAIvC,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,GAAG,CAAC;IAJd,OAAO,CAAC,SAAS,CAAwB;gBAG/B,EAAE,EAAE,wBAAwB,EAC5B,GAAG,CAAC,EAAE,WAAW,YAAA;IAKrB,IAAI,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAyDhF;AAED,wBAAgB,oCAAoC,CAClD,EAAE,EAAE,wBAAwB,EAC5B,GAAG,CAAC,EAAE,WAAW,GAChB,8BAA8B,CAEhC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Knowledge namespaces service
|
|
3
3
|
*/
|
|
4
|
-
import { type
|
|
4
|
+
import { type TenantScopeAwareDatabase } from '@agor/core/db';
|
|
5
5
|
import type { AuthenticatedParams, Id, KnowledgeNamespace, KnowledgeNamespaceAclEntry, KnowledgeNamespacePermission, KnowledgeNamespaceSubjectType, NullableId, QueryParams, UserID } from '@agor/core/types';
|
|
6
6
|
import { DrizzleService } from '../adapters/drizzle';
|
|
7
7
|
export type KnowledgeNamespaceParams = QueryParams<{
|
|
@@ -26,7 +26,7 @@ type KnowledgeNamespaceWithAclResult = {
|
|
|
26
26
|
export declare class KnowledgeNamespacesService extends DrizzleService<KnowledgeNamespace, Partial<KnowledgeNamespace>, KnowledgeNamespaceParams> {
|
|
27
27
|
private repo;
|
|
28
28
|
private groups;
|
|
29
|
-
constructor(db:
|
|
29
|
+
constructor(db: TenantScopeAwareDatabase);
|
|
30
30
|
private withEffectivePermission;
|
|
31
31
|
find(params?: KnowledgeNamespaceParams): Promise<KnowledgeNamespace[]>;
|
|
32
32
|
get(id: Id, params?: KnowledgeNamespaceParams): Promise<KnowledgeNamespace>;
|
|
@@ -76,6 +76,6 @@ export declare class KnowledgeNamespacesService extends DrizzleService<Knowledge
|
|
|
76
76
|
subjectId?: string;
|
|
77
77
|
}, params?: KnowledgeNamespaceParams): Promise<KnowledgeNamespaceAclEntry | null>;
|
|
78
78
|
}
|
|
79
|
-
export declare function createKnowledgeNamespacesService(db:
|
|
79
|
+
export declare function createKnowledgeNamespacesService(db: TenantScopeAwareDatabase): KnowledgeNamespacesService;
|
|
80
80
|
export {};
|
|
81
81
|
//# sourceMappingURL=knowledge-namespaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-namespaces.d.ts","sourceRoot":"","sources":["../../src/services/knowledge-namespaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"knowledge-namespaces.d.ts","sourceRoot":"","sources":["../../src/services/knowledge-namespaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EACV,mBAAmB,EAEnB,EAAE,EACF,kBAAkB,EAClB,0BAA0B,EAE1B,4BAA4B,EAC5B,6BAA6B,EAC7B,UAAU,EACV,WAAW,EAEX,MAAM,EACP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,MAAM,MAAM,wBAAwB,GAAG,WAAW,CAAC;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC,GACA,mBAAmB,CAAC;AAEtB,KAAK,+BAA+B,GAAG;IACrC,YAAY,CAAC,EAAE,6BAA6B,CAAC;IAC7C,WAAW,CAAC,EAAE,6BAA6B,CAAC;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,4BAA4B,CAAC;CAC3C,CAAC;AAEF,KAAK,+BAA+B,GAAG;IACrC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,GAAG,EAAE,0BAA0B,EAAE,CAAC;CACnC,CAAC;AAEF,qBAAa,0BAA2B,SAAQ,cAAc,CAC5D,kBAAkB,EAClB,OAAO,CAAC,kBAAkB,CAAC,EAC3B,wBAAwB,CACzB;IACC,OAAO,CAAC,IAAI,CAA+B;IAC3C,OAAO,CAAC,MAAM,CAAkB;gBAEpB,EAAE,EAAE,wBAAwB;IAcxC,OAAO,CAAC,uBAAuB;IAOzB,IAAI,CAAC,MAAM,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAiBtE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAWjF,OAAO,CAAC,OAAO;YAID,mBAAmB;YAcnB,sBAAsB;YAUtB,eAAe;IAU7B,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,mBAAmB;IA8B3B,OAAO,CAAC,kBAAkB;YAuBZ,2BAA2B;YA2B3B,oBAAoB;YAmBpB,yBAAyB;YAYzB,+BAA+B;YAqB/B,qCAAqC;YAcrC,SAAS;IAwBjB,MAAM,CACV,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,EAAE,EACjE,MAAM,CAAC,EAAE,wBAAwB,GAChC,OAAO,CAAC,kBAAkB,GAAG,kBAAkB,EAAE,CAAC;IAO/C,KAAK,CACT,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACjC,MAAM,CAAC,EAAE,wBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC;IAkBxB,MAAM,CACV,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACjC,MAAM,CAAC,EAAE,wBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC;IAiBxB,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAUtF,WAAW,CACf,IAAI,EAAE;QACJ,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACxC,GAAG,CAAC,EAAE,+BAA+B,EAAE,CAAC;KACzC,EACD,MAAM,CAAC,EAAE,wBAAwB,GAChC,OAAO,CAAC,+BAA+B,CAAC;IAuCrC,OAAO,CACX,IAAI,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,EAC9D,MAAM,CAAC,EAAE,wBAAwB,GAChC,OAAO,CAAC,0BAA0B,EAAE,CAAC;IASlC,MAAM,CACV,IAAI,EAAE;QACJ,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,6BAA6B,CAAC;QAC7C,WAAW,CAAC,EAAE,6BAA6B,CAAC;QAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,4BAA4B,CAAC;KAC3C,EACD,MAAM,CAAC,EAAE,wBAAwB,GAChC,OAAO,CAAC,0BAA0B,CAAC;IA0BhC,SAAS,CACb,IAAI,EAAE;QACJ,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,6BAA6B,CAAC;QAC7C,WAAW,CAAC,EAAE,6BAA6B,CAAC;QAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,EACD,MAAM,CAAC,EAAE,wBAAwB,GAChC,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC;CAa9C;AAED,wBAAgB,gCAAgC,CAC9C,EAAE,EAAE,wBAAwB,GAC3B,0BAA0B,CAE5B"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
// src/services/knowledge-namespaces.ts
|
|
2
2
|
import { PAGINATION } from "@agor/core/config";
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
GroupRepository,
|
|
5
|
+
KnowledgeNamespaceRepository
|
|
6
|
+
} from "@agor/core/db";
|
|
4
7
|
import { BadRequest, Forbidden, NotFound } from "@agor/core/feathers";
|
|
5
8
|
|
|
6
9
|
// src/adapters/drizzle.ts
|
|
@@ -20,6 +23,34 @@ var DrizzleService = class {
|
|
|
20
23
|
// Event emitter for FeathersJS (will be injected by framework)
|
|
21
24
|
// biome-ignore lint/suspicious/noExplicitAny: FeathersJS event system
|
|
22
25
|
emit;
|
|
26
|
+
/** Extract resolved tenant context from Feathers params. */
|
|
27
|
+
getTenant(params) {
|
|
28
|
+
return params?.tenant;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Whether a row belongs to the current tenant. Rows from pre-migration test
|
|
32
|
+
* fixtures that do not expose tenant_id are treated as visible so existing
|
|
33
|
+
* single-tenant unit tests keep working; migrated DB rows always carry it.
|
|
34
|
+
*/
|
|
35
|
+
rowBelongsToTenant(row, tenant) {
|
|
36
|
+
if (!tenant) return true;
|
|
37
|
+
const record = row;
|
|
38
|
+
if (!("tenant_id" in record)) return true;
|
|
39
|
+
return record.tenant_id === tenant.tenant_id;
|
|
40
|
+
}
|
|
41
|
+
/** Stamp tenant_id onto created rows and prevent client-supplied drift. */
|
|
42
|
+
withTenant(data, params) {
|
|
43
|
+
const tenant = this.getTenant(params);
|
|
44
|
+
if (!tenant || !data || typeof data !== "object" || Array.isArray(data)) return data;
|
|
45
|
+
return { ...data, tenant_id: tenant.tenant_id };
|
|
46
|
+
}
|
|
47
|
+
/** Never allow a patch/update to move a row across tenants. */
|
|
48
|
+
stripTenantMutation(data) {
|
|
49
|
+
if (!data || typeof data !== "object" || Array.isArray(data)) return data;
|
|
50
|
+
const clone = { ...data };
|
|
51
|
+
delete clone.tenant_id;
|
|
52
|
+
return clone;
|
|
53
|
+
}
|
|
23
54
|
/**
|
|
24
55
|
* Extract query parameters from params
|
|
25
56
|
*/
|
|
@@ -111,12 +142,28 @@ var DrizzleService = class {
|
|
|
111
142
|
data: paginated
|
|
112
143
|
};
|
|
113
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Resolve the candidate row set that `find` filters, sorts, and paginates.
|
|
147
|
+
*
|
|
148
|
+
* The base implementation reads the whole table and relies on `filterData` to
|
|
149
|
+
* narrow it in memory. Subclasses may override this to push high-selectivity
|
|
150
|
+
* predicates into SQL; because `find` always re-applies every query filter via
|
|
151
|
+
* `filterData`, an override only needs to return a superset of the matching
|
|
152
|
+
* rows for the result to stay identical.
|
|
153
|
+
*/
|
|
154
|
+
async fetchData(_query, _params) {
|
|
155
|
+
return this.repository.findAll();
|
|
156
|
+
}
|
|
114
157
|
/**
|
|
115
158
|
* Find records
|
|
116
159
|
*/
|
|
117
160
|
async find(params) {
|
|
118
161
|
const query = this.getQuery(params);
|
|
119
|
-
let data = await this.
|
|
162
|
+
let data = await this.fetchData(query, params);
|
|
163
|
+
const tenant = this.getTenant(params);
|
|
164
|
+
if (tenant) {
|
|
165
|
+
data = data.filter((row) => this.rowBelongsToTenant(row, tenant));
|
|
166
|
+
}
|
|
120
167
|
data = this.filterData(data, query);
|
|
121
168
|
const total = data.length;
|
|
122
169
|
data = this.sortData(data, query.$sort);
|
|
@@ -128,10 +175,13 @@ var DrizzleService = class {
|
|
|
128
175
|
*/
|
|
129
176
|
async get(id, _params) {
|
|
130
177
|
const prefetched = _params?._agorPrefetchedRecord;
|
|
131
|
-
if (prefetched && prefetched.idField === this.id && prefetched.id === String(id) && String(prefetched.record[this.id]) === String(id)) {
|
|
178
|
+
if (prefetched && prefetched.idField === this.id && prefetched.id === String(id) && String(prefetched.record[this.id]) === String(id) && this.rowBelongsToTenant(prefetched.record, this.getTenant(_params))) {
|
|
132
179
|
return prefetched.record;
|
|
133
180
|
}
|
|
134
181
|
const result = await this.repository.findById(String(id));
|
|
182
|
+
if (result && !this.rowBelongsToTenant(result, this.getTenant(_params))) {
|
|
183
|
+
throw new NotFoundError(this.resourceType, String(id));
|
|
184
|
+
}
|
|
135
185
|
if (!result) {
|
|
136
186
|
throw new NotFoundError(this.resourceType, String(id));
|
|
137
187
|
}
|
|
@@ -143,14 +193,18 @@ var DrizzleService = class {
|
|
|
143
193
|
async create(data, params) {
|
|
144
194
|
if (Array.isArray(data)) {
|
|
145
195
|
const results = await Promise.all(
|
|
146
|
-
data.map(
|
|
196
|
+
data.map(
|
|
197
|
+
(item) => this.repository.create(this.withTenant(item, params))
|
|
198
|
+
)
|
|
147
199
|
);
|
|
148
200
|
for (const result2 of results) {
|
|
149
201
|
this.emit?.("created", result2, params);
|
|
150
202
|
}
|
|
151
203
|
return results;
|
|
152
204
|
}
|
|
153
|
-
const result = await this.repository.create(
|
|
205
|
+
const result = await this.repository.create(
|
|
206
|
+
this.withTenant(data, params)
|
|
207
|
+
);
|
|
154
208
|
this.emit?.("created", result, params);
|
|
155
209
|
return result;
|
|
156
210
|
}
|
|
@@ -166,7 +220,10 @@ var DrizzleService = class {
|
|
|
166
220
|
*/
|
|
167
221
|
async update(id, data, params) {
|
|
168
222
|
await this.get(id, params);
|
|
169
|
-
const result = await this.repository.update(
|
|
223
|
+
const result = await this.repository.update(
|
|
224
|
+
String(id),
|
|
225
|
+
this.stripTenantMutation(data)
|
|
226
|
+
);
|
|
170
227
|
this.emit?.("updated", result, params);
|
|
171
228
|
return result;
|
|
172
229
|
}
|
|
@@ -180,12 +237,14 @@ var DrizzleService = class {
|
|
|
180
237
|
}
|
|
181
238
|
const query = this.getQuery(params);
|
|
182
239
|
let records = await this.repository.findAll();
|
|
240
|
+
const tenant = this.getTenant(params);
|
|
241
|
+
if (tenant) records = records.filter((row) => this.rowBelongsToTenant(row, tenant));
|
|
183
242
|
records = this.filterData(records, query);
|
|
184
243
|
const results = await Promise.all(
|
|
185
244
|
records.map(
|
|
186
245
|
(record) => this.repository.update(
|
|
187
246
|
record[this.id],
|
|
188
|
-
data
|
|
247
|
+
this.stripTenantMutation(data)
|
|
189
248
|
)
|
|
190
249
|
)
|
|
191
250
|
);
|
|
@@ -195,7 +254,10 @@ var DrizzleService = class {
|
|
|
195
254
|
return results;
|
|
196
255
|
}
|
|
197
256
|
await this.get(id, params);
|
|
198
|
-
const result = await this.repository.update(
|
|
257
|
+
const result = await this.repository.update(
|
|
258
|
+
String(id),
|
|
259
|
+
this.stripTenantMutation(data)
|
|
260
|
+
);
|
|
199
261
|
this.emit?.("patched", result, params);
|
|
200
262
|
return result;
|
|
201
263
|
}
|
|
@@ -209,6 +271,8 @@ var DrizzleService = class {
|
|
|
209
271
|
}
|
|
210
272
|
const query = this.getQuery(params);
|
|
211
273
|
let records = await this.repository.findAll();
|
|
274
|
+
const tenant = this.getTenant(params);
|
|
275
|
+
if (tenant) records = records.filter((row) => this.rowBelongsToTenant(row, tenant));
|
|
212
276
|
records = this.filterData(records, query);
|
|
213
277
|
await Promise.all(records.map((record) => this.repository.delete(record[this.id])));
|
|
214
278
|
for (const record of records) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type TenantScopeAwareDatabase } from '@agor/core/db';
|
|
2
2
|
import type { Application } from '@agor/core/feathers';
|
|
3
3
|
import type { AuthenticatedParams, KnowledgeEmbeddingStatus, Params } from '@agor/core/types';
|
|
4
4
|
export interface KnowledgeReindexResult {
|
|
@@ -10,8 +10,8 @@ export declare class KnowledgeReindexService {
|
|
|
10
10
|
private db;
|
|
11
11
|
private app?;
|
|
12
12
|
private variables;
|
|
13
|
-
constructor(db:
|
|
13
|
+
constructor(db: TenantScopeAwareDatabase, app?: Application | undefined);
|
|
14
14
|
create(_data?: unknown, _params?: KnowledgeReindexParams): Promise<KnowledgeReindexResult>;
|
|
15
15
|
}
|
|
16
|
-
export declare function createKnowledgeReindexService(db:
|
|
16
|
+
export declare function createKnowledgeReindexService(db: TenantScopeAwareDatabase, app?: Application): KnowledgeReindexService;
|
|
17
17
|
//# sourceMappingURL=knowledge-reindex.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-reindex.d.ts","sourceRoot":"","sources":["../../src/services/knowledge-reindex.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"knowledge-reindex.d.ts","sourceRoot":"","sources":["../../src/services/knowledge-reindex.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAS9F,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,wBAAwB,CAAC;CAClC;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,mBAAmB,CAAC;AAElE,qBAAa,uBAAuB;IAIhC,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,GAAG,CAAC;IAJd,OAAO,CAAC,SAAS,CAAwB;gBAG/B,EAAE,EAAE,wBAAwB,EAC5B,GAAG,CAAC,EAAE,WAAW,YAAA;IAKrB,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAsBjG;AAED,wBAAgB,6BAA6B,CAC3C,EAAE,EAAE,wBAAwB,EAC5B,GAAG,CAAC,EAAE,WAAW,GAChB,uBAAuB,CAEzB"}
|