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
|
@@ -1,7 +1,22 @@
|
|
|
1
1
|
// src/auth/launch-auth.ts
|
|
2
2
|
import { createHash, createPublicKey, randomBytes } from "crypto";
|
|
3
|
-
import {
|
|
4
|
-
|
|
3
|
+
import {
|
|
4
|
+
resolveMultiTenancyConfig,
|
|
5
|
+
resolveTenantContext,
|
|
6
|
+
TenantResolutionError
|
|
7
|
+
} from "@agor/core/config";
|
|
8
|
+
import {
|
|
9
|
+
eq,
|
|
10
|
+
generateId,
|
|
11
|
+
hash,
|
|
12
|
+
insert,
|
|
13
|
+
reattributeLegacyAnonymousRows,
|
|
14
|
+
runWithTenantDatabaseScope,
|
|
15
|
+
select,
|
|
16
|
+
update,
|
|
17
|
+
users
|
|
18
|
+
} from "@agor/core/db";
|
|
19
|
+
import { BadRequest, NotAuthenticated as NotAuthenticated2 } from "@agor/core/feathers";
|
|
5
20
|
import { normalizeRole, ROLES } from "@agor/core/types";
|
|
6
21
|
import jwt2 from "jsonwebtoken";
|
|
7
22
|
|
|
@@ -9,6 +24,11 @@ import jwt2 from "jsonwebtoken";
|
|
|
9
24
|
import jwt from "jsonwebtoken";
|
|
10
25
|
var RUNTIME_JWT_ISSUER = "agor";
|
|
11
26
|
var RUNTIME_JWT_AUDIENCE = "https://agor.dev";
|
|
27
|
+
function runtimeTenantClaims(tenantId, claimName = "tenant_id") {
|
|
28
|
+
if (!tenantId) return {};
|
|
29
|
+
if (claimName === "tenant_id") return { tenant_id: tenantId };
|
|
30
|
+
return { tenant_id: tenantId, [claimName]: tenantId };
|
|
31
|
+
}
|
|
12
32
|
function issueRuntimeToken(payload, jwtSecret, expiresIn, options = {}) {
|
|
13
33
|
return jwt.sign(payload, jwtSecret, {
|
|
14
34
|
expiresIn,
|
|
@@ -16,21 +36,46 @@ function issueRuntimeToken(payload, jwtSecret, expiresIn, options = {}) {
|
|
|
16
36
|
audience: options.audience ?? RUNTIME_JWT_AUDIENCE
|
|
17
37
|
});
|
|
18
38
|
}
|
|
19
|
-
function issueRuntimeTokenPair(user, jwtSecret, accessTokenTtl, refreshTokenTtl) {
|
|
39
|
+
function issueRuntimeTokenPair(user, jwtSecret, accessTokenTtl, refreshTokenTtl, extraClaims = {}) {
|
|
20
40
|
return {
|
|
21
41
|
accessToken: issueRuntimeToken(
|
|
22
|
-
{ sub: user.user_id, type: "access" },
|
|
42
|
+
{ sub: user.user_id, type: "access", ...extraClaims },
|
|
23
43
|
jwtSecret,
|
|
24
44
|
accessTokenTtl
|
|
25
45
|
),
|
|
26
46
|
refreshToken: issueRuntimeToken(
|
|
27
|
-
{ sub: user.user_id, type: "refresh" },
|
|
47
|
+
{ sub: user.user_id, type: "refresh", ...extraClaims },
|
|
28
48
|
jwtSecret,
|
|
29
49
|
refreshTokenTtl
|
|
30
50
|
)
|
|
31
51
|
};
|
|
32
52
|
}
|
|
33
53
|
|
|
54
|
+
// src/auth/token-invalidation.ts
|
|
55
|
+
import { NotAuthenticated } from "@agor/core/feathers";
|
|
56
|
+
var AUTH_TOKEN_ISSUED_AT_MS_CLAIM = "auth_time_ms";
|
|
57
|
+
function dateToMillis(value) {
|
|
58
|
+
if (value === void 0) return null;
|
|
59
|
+
const millis = value instanceof Date ? value.getTime() : new Date(value).getTime();
|
|
60
|
+
return Number.isFinite(millis) ? millis : null;
|
|
61
|
+
}
|
|
62
|
+
function authTokenIssuedAtClaim(now = Date.now(), user) {
|
|
63
|
+
const validAfterMs = dateToMillis(user?.tokens_valid_after);
|
|
64
|
+
const issuedAtMs = validAfterMs !== null && now <= validAfterMs ? validAfterMs + 1 : now;
|
|
65
|
+
return { [AUTH_TOKEN_ISSUED_AT_MS_CLAIM]: issuedAtMs };
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// src/auth/user-redaction.ts
|
|
69
|
+
function redactUserAuthMetadata(user) {
|
|
70
|
+
const {
|
|
71
|
+
tokens_valid_after: _tokensValidAfter,
|
|
72
|
+
password: _password,
|
|
73
|
+
tenant_id: _tenantId,
|
|
74
|
+
...publicUser
|
|
75
|
+
} = user;
|
|
76
|
+
return publicUser;
|
|
77
|
+
}
|
|
78
|
+
|
|
34
79
|
// src/auth/launch-auth.ts
|
|
35
80
|
var DEFAULT_TIMEOUT_MS = 1e4;
|
|
36
81
|
var DEFAULT_SERVICE_TOKEN_ENV = "AGOR_EXTERNAL_LAUNCH_SERVICE_TOKEN";
|
|
@@ -59,6 +104,7 @@ function resolveLaunchSettings(config) {
|
|
|
59
104
|
devSharedSecret: process.env[sharedSecretEnv] || raw?.dev_shared_secret,
|
|
60
105
|
serviceCredential: process.env[serviceTokenEnv] || raw?.service_credential,
|
|
61
106
|
allowAdminRoles: raw?.allow_admin_roles === true,
|
|
107
|
+
trustVerifiedEmailForLinking: raw?.trust_verified_email_for_linking === true,
|
|
62
108
|
requestTimeoutMs: raw?.request_timeout_ms ?? DEFAULT_TIMEOUT_MS,
|
|
63
109
|
algorithms: raw?.algorithms
|
|
64
110
|
};
|
|
@@ -74,7 +120,7 @@ function resolvePublicLaunchAuthSettings(config) {
|
|
|
74
120
|
function assertConfigured(settings) {
|
|
75
121
|
const rejectConfig = (reason) => {
|
|
76
122
|
console.warn(`[auth/launch] ${reason}`);
|
|
77
|
-
throw new
|
|
123
|
+
throw new NotAuthenticated2("One-time launch authentication is unavailable");
|
|
78
124
|
};
|
|
79
125
|
if (!settings.enabled) {
|
|
80
126
|
rejectConfig("disabled");
|
|
@@ -149,11 +195,27 @@ async function findUserByExternalIdentity(db, key) {
|
|
|
149
195
|
}
|
|
150
196
|
return null;
|
|
151
197
|
}
|
|
152
|
-
async function
|
|
198
|
+
async function findUserByTrustedEmail(db, email, key, settings, claims) {
|
|
199
|
+
if (!settings.trustVerifiedEmailForLinking || claims.email_verified !== true || !email) {
|
|
200
|
+
return null;
|
|
201
|
+
}
|
|
202
|
+
const existing = await select(db).from(users).where(eq(users.email, email)).one();
|
|
203
|
+
if (!existing) return null;
|
|
204
|
+
const identities = getExternalIdentities(existing.data);
|
|
205
|
+
if (identities.length > 0 && !identities.some((identity) => identity.key === key)) {
|
|
206
|
+
return null;
|
|
207
|
+
}
|
|
208
|
+
return existing;
|
|
209
|
+
}
|
|
210
|
+
async function upsertLaunchUser(options, claims, tenant) {
|
|
153
211
|
const { db, config, usersService } = options;
|
|
154
212
|
const issuer = claims.iss;
|
|
155
213
|
const subject = claims.sub;
|
|
156
214
|
const settings = resolveLaunchSettings(config);
|
|
215
|
+
const userLookupParams = {
|
|
216
|
+
provider: void 0,
|
|
217
|
+
...tenant ? { tenant } : {}
|
|
218
|
+
};
|
|
157
219
|
const provider = claims.provider || settings.providerId || issuer;
|
|
158
220
|
const key = identityKey(provider, issuer, subject);
|
|
159
221
|
const now = /* @__PURE__ */ new Date();
|
|
@@ -170,7 +232,7 @@ async function upsertLaunchUser(options, claims) {
|
|
|
170
232
|
name,
|
|
171
233
|
last_login_at: nowIso
|
|
172
234
|
};
|
|
173
|
-
const existing = await findUserByExternalIdentity(db, key);
|
|
235
|
+
const existing = await findUserByExternalIdentity(db, key) ?? await findUserByTrustedEmail(db, email, key, settings, claims);
|
|
174
236
|
if (existing) {
|
|
175
237
|
const role2 = mapRole(
|
|
176
238
|
claims.role,
|
|
@@ -192,11 +254,13 @@ async function upsertLaunchUser(options, claims) {
|
|
|
192
254
|
updated_at: now,
|
|
193
255
|
data: {
|
|
194
256
|
...data,
|
|
195
|
-
|
|
257
|
+
avatar_url: avatar ?? data.avatar_url ?? data.avatar,
|
|
258
|
+
avatar_source: avatar ? "launch-auth" : data.avatar_source,
|
|
196
259
|
external_identities: nextIdentities
|
|
197
260
|
}
|
|
198
261
|
}).where(eq(users.user_id, existing.user_id)).run();
|
|
199
|
-
|
|
262
|
+
await reattributeLegacyAnonymousRows(db, existing.user_id);
|
|
263
|
+
return usersService.get(existing.user_id, userLookupParams);
|
|
200
264
|
}
|
|
201
265
|
const role = mapRole(claims.role, settings, config.execution?.allow_superadmin);
|
|
202
266
|
const localEmail = await chooseLocalEmail(db, email, key, provider, issuer, subject);
|
|
@@ -214,12 +278,15 @@ async function upsertLaunchUser(options, claims) {
|
|
|
214
278
|
onboarding_completed: false,
|
|
215
279
|
must_change_password: false,
|
|
216
280
|
data: {
|
|
281
|
+
avatar_url: avatar,
|
|
217
282
|
avatar,
|
|
283
|
+
avatar_source: avatar ? "launch-auth" : void 0,
|
|
218
284
|
preferences: {},
|
|
219
285
|
external_identities: [identity]
|
|
220
286
|
}
|
|
221
287
|
}).run();
|
|
222
|
-
|
|
288
|
+
await reattributeLegacyAnonymousRows(db, userId);
|
|
289
|
+
return usersService.get(userId, userLookupParams);
|
|
223
290
|
}
|
|
224
291
|
async function fetchJson(url, init, timeoutMs) {
|
|
225
292
|
const controller = new AbortController();
|
|
@@ -227,7 +294,7 @@ async function fetchJson(url, init, timeoutMs) {
|
|
|
227
294
|
try {
|
|
228
295
|
const response = await fetch(url, { ...init, signal: controller.signal });
|
|
229
296
|
if (!response.ok) {
|
|
230
|
-
throw new
|
|
297
|
+
throw new NotAuthenticated2("Invalid or expired one-time launch code");
|
|
231
298
|
}
|
|
232
299
|
return response.json();
|
|
233
300
|
} finally {
|
|
@@ -251,32 +318,32 @@ async function exchangeLaunchCode(launchCode, settings) {
|
|
|
251
318
|
settings.requestTimeoutMs
|
|
252
319
|
);
|
|
253
320
|
if (!json || typeof json !== "object") {
|
|
254
|
-
throw new
|
|
321
|
+
throw new NotAuthenticated2("Invalid one-time launch exchange response");
|
|
255
322
|
}
|
|
256
323
|
return json;
|
|
257
324
|
}
|
|
258
325
|
async function resolveVerificationKey(header, settings) {
|
|
259
326
|
if (settings.devSharedSecret) return settings.devSharedSecret;
|
|
260
327
|
if (settings.publicKey) return settings.publicKey;
|
|
261
|
-
if (!settings.jwksUrl) throw new
|
|
328
|
+
if (!settings.jwksUrl) throw new NotAuthenticated2("Launch assertion verification failed");
|
|
262
329
|
if (!header.kid) {
|
|
263
|
-
throw new
|
|
330
|
+
throw new NotAuthenticated2("Launch assertion verification failed");
|
|
264
331
|
}
|
|
265
332
|
const jwks = await fetchJson(settings.jwksUrl, { method: "GET" }, settings.requestTimeoutMs);
|
|
266
333
|
const keys = jwks?.keys;
|
|
267
334
|
const jwk = keys?.find((candidate) => candidate.kid === header.kid);
|
|
268
|
-
if (!jwk) throw new
|
|
335
|
+
if (!jwk) throw new NotAuthenticated2("Launch assertion verification failed");
|
|
269
336
|
if (jwk.use && jwk.use !== "sig")
|
|
270
|
-
throw new
|
|
337
|
+
throw new NotAuthenticated2("Launch assertion verification failed");
|
|
271
338
|
if (header.alg && jwk.alg && jwk.alg !== header.alg) {
|
|
272
|
-
throw new
|
|
339
|
+
throw new NotAuthenticated2("Launch assertion verification failed");
|
|
273
340
|
}
|
|
274
341
|
return createPublicKey({ key: jwk, format: "jwk" });
|
|
275
342
|
}
|
|
276
343
|
async function verifyLaunchAssertion(assertion, settings) {
|
|
277
344
|
const decoded = jwt2.decode(assertion, { complete: true });
|
|
278
345
|
if (!decoded || typeof decoded !== "object") {
|
|
279
|
-
throw new
|
|
346
|
+
throw new NotAuthenticated2("Invalid one-time launch assertion");
|
|
280
347
|
}
|
|
281
348
|
const key = await resolveVerificationKey(decoded.header, settings);
|
|
282
349
|
const algorithms = settings.algorithms ?? (settings.devSharedSecret ? ["HS256"] : void 0);
|
|
@@ -290,38 +357,43 @@ async function verifyLaunchAssertion(assertion, settings) {
|
|
|
290
357
|
}
|
|
291
358
|
function validateLaunchClaims(claims, settings) {
|
|
292
359
|
if (!claims.iss || claims.iss !== settings.issuer) {
|
|
293
|
-
throw new
|
|
360
|
+
throw new NotAuthenticated2("Invalid one-time launch assertion issuer");
|
|
294
361
|
}
|
|
295
362
|
if (!claims.sub || typeof claims.sub !== "string") {
|
|
296
|
-
throw new
|
|
363
|
+
throw new NotAuthenticated2("Invalid one-time launch assertion subject");
|
|
297
364
|
}
|
|
298
365
|
if (typeof claims.exp !== "number") {
|
|
299
|
-
throw new
|
|
366
|
+
throw new NotAuthenticated2("Invalid one-time launch assertion expiration");
|
|
300
367
|
}
|
|
301
368
|
if (settings.instanceId) {
|
|
302
369
|
const claimInstance = claims.instance_id || claims.runtime_instance_id;
|
|
303
370
|
if (typeof claimInstance !== "string" || claimInstance !== settings.instanceId) {
|
|
304
|
-
throw new
|
|
371
|
+
throw new NotAuthenticated2("Invalid one-time launch assertion instance");
|
|
305
372
|
}
|
|
306
373
|
}
|
|
307
374
|
if (claims.jti !== void 0 && typeof claims.jti !== "string") {
|
|
308
|
-
throw new
|
|
375
|
+
throw new NotAuthenticated2("Invalid one-time launch assertion id");
|
|
309
376
|
}
|
|
310
377
|
if (claims.nonce !== void 0 && typeof claims.nonce !== "string") {
|
|
311
|
-
throw new
|
|
378
|
+
throw new NotAuthenticated2("Invalid one-time launch assertion nonce");
|
|
312
379
|
}
|
|
313
380
|
}
|
|
314
|
-
function issueRuntimeTokens(user, jwtSecret, accessTokenTtl, refreshTokenTtl) {
|
|
315
|
-
const tokens = issueRuntimeTokenPair(user, jwtSecret, accessTokenTtl, refreshTokenTtl
|
|
381
|
+
function issueRuntimeTokens(user, jwtSecret, accessTokenTtl, refreshTokenTtl, tenantClaim = "tenant_id", tenantId) {
|
|
382
|
+
const tokens = issueRuntimeTokenPair(user, jwtSecret, accessTokenTtl, refreshTokenTtl, {
|
|
383
|
+
...authTokenIssuedAtClaim(Date.now(), user),
|
|
384
|
+
...runtimeTenantClaims(tenantId ?? user.tenant_id, tenantClaim)
|
|
385
|
+
});
|
|
316
386
|
return {
|
|
317
387
|
...tokens,
|
|
318
388
|
authentication: { strategy: "launch" },
|
|
319
|
-
user
|
|
389
|
+
user: redactUserAuthMetadata(user)
|
|
320
390
|
};
|
|
321
391
|
}
|
|
322
392
|
function createLaunchAuthService(options) {
|
|
393
|
+
const multiTenancy = resolveMultiTenancyConfig(options.config);
|
|
394
|
+
const tenantClaim = multiTenancy.auth_claim ?? "tenant_id";
|
|
323
395
|
return {
|
|
324
|
-
async create(data,
|
|
396
|
+
async create(data, params) {
|
|
325
397
|
const launchCode = typeof data?.launchCode === "string" ? data.launchCode.trim() : typeof data?.launch_code === "string" ? data.launch_code.trim() : "";
|
|
326
398
|
if (!launchCode) {
|
|
327
399
|
throw new BadRequest("launchCode is required");
|
|
@@ -334,21 +406,33 @@ function createLaunchAuthService(options) {
|
|
|
334
406
|
try {
|
|
335
407
|
const exchange = await exchangeLaunchCode(launchCode, settings);
|
|
336
408
|
if (!exchange.assertion) {
|
|
337
|
-
throw new
|
|
409
|
+
throw new NotAuthenticated2("Invalid one-time launch exchange response");
|
|
338
410
|
}
|
|
339
411
|
const claims = await verifyLaunchAssertion(exchange.assertion, settings);
|
|
340
|
-
const
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
412
|
+
const tenant = resolveTenantContext(multiTenancy, {
|
|
413
|
+
params,
|
|
414
|
+
authPayload: claims,
|
|
415
|
+
headers: params?.headers
|
|
416
|
+
});
|
|
417
|
+
return await runWithTenantDatabaseScope(options.db, tenant.tenant_id, async () => {
|
|
418
|
+
const user = await upsertLaunchUser(options, claims, tenant);
|
|
419
|
+
return issueRuntimeTokens(
|
|
420
|
+
user,
|
|
421
|
+
options.jwtSecret,
|
|
422
|
+
options.accessTokenTtl,
|
|
423
|
+
options.refreshTokenTtl,
|
|
424
|
+
tenantClaim,
|
|
425
|
+
tenant.tenant_id
|
|
426
|
+
);
|
|
427
|
+
});
|
|
347
428
|
} catch (error) {
|
|
348
|
-
if (error instanceof BadRequest || error instanceof
|
|
429
|
+
if (error instanceof BadRequest || error instanceof NotAuthenticated2) {
|
|
349
430
|
throw error;
|
|
350
431
|
}
|
|
351
|
-
|
|
432
|
+
if (error instanceof TenantResolutionError) {
|
|
433
|
+
throw new NotAuthenticated2(error.message);
|
|
434
|
+
}
|
|
435
|
+
throw new NotAuthenticated2("Invalid or expired one-time launch code");
|
|
352
436
|
}
|
|
353
437
|
}
|
|
354
438
|
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Params, User, UserID } from '@agor/core/types';
|
|
2
|
+
import { type SignOptions } from 'jsonwebtoken';
|
|
3
|
+
interface RefreshTokenServiceOptions {
|
|
4
|
+
jwtSecret: string;
|
|
5
|
+
accessTokenTtl: SignOptions['expiresIn'];
|
|
6
|
+
refreshTokenTtl: SignOptions['expiresIn'];
|
|
7
|
+
tenantClaim?: string;
|
|
8
|
+
usersService: {
|
|
9
|
+
get(id: UserID, params?: Params): Promise<User>;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export declare function createRefreshTokenService(options: RefreshTokenServiceOptions): {
|
|
13
|
+
create(data: {
|
|
14
|
+
refreshToken: string;
|
|
15
|
+
}, _params?: Params): Promise<{
|
|
16
|
+
accessToken: string;
|
|
17
|
+
refreshToken: string;
|
|
18
|
+
user: User;
|
|
19
|
+
}>;
|
|
20
|
+
};
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=refresh-token-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refresh-token-service.d.ts","sourceRoot":"","sources":["../../src/auth/refresh-token-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAY,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAerD,UAAU,0BAA0B;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IACzC,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE;QACZ,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACjD,CAAC;CACH;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,0BAA0B;iBAEtD;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,YAAY,MAAM;;;;;EAmDhE"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// src/auth/refresh-token-service.ts
|
|
2
|
+
import { NotAuthenticated as NotAuthenticated2 } from "@agor/core/feathers";
|
|
3
|
+
import jwt2 from "jsonwebtoken";
|
|
4
|
+
|
|
5
|
+
// src/auth/runtime-tokens.ts
|
|
6
|
+
import jwt from "jsonwebtoken";
|
|
7
|
+
var RUNTIME_JWT_ISSUER = "agor";
|
|
8
|
+
var RUNTIME_JWT_AUDIENCE = "https://agor.dev";
|
|
9
|
+
function runtimeTenantClaims(tenantId, claimName = "tenant_id") {
|
|
10
|
+
if (!tenantId) return {};
|
|
11
|
+
if (claimName === "tenant_id") return { tenant_id: tenantId };
|
|
12
|
+
return { tenant_id: tenantId, [claimName]: tenantId };
|
|
13
|
+
}
|
|
14
|
+
function readRuntimeTenantClaim(payload, claimName = "tenant_id") {
|
|
15
|
+
if (!payload || typeof payload !== "object") return void 0;
|
|
16
|
+
const record = payload;
|
|
17
|
+
const value = record[claimName] ?? record.tenant_id;
|
|
18
|
+
return typeof value === "string" && value.trim() ? value.trim() : void 0;
|
|
19
|
+
}
|
|
20
|
+
function issueRuntimeToken(payload, jwtSecret, expiresIn, options = {}) {
|
|
21
|
+
return jwt.sign(payload, jwtSecret, {
|
|
22
|
+
expiresIn,
|
|
23
|
+
issuer: RUNTIME_JWT_ISSUER,
|
|
24
|
+
audience: options.audience ?? RUNTIME_JWT_AUDIENCE
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function issueRuntimeTokenPair(user, jwtSecret, accessTokenTtl, refreshTokenTtl, extraClaims = {}) {
|
|
28
|
+
return {
|
|
29
|
+
accessToken: issueRuntimeToken(
|
|
30
|
+
{ sub: user.user_id, type: "access", ...extraClaims },
|
|
31
|
+
jwtSecret,
|
|
32
|
+
accessTokenTtl
|
|
33
|
+
),
|
|
34
|
+
refreshToken: issueRuntimeToken(
|
|
35
|
+
{ sub: user.user_id, type: "refresh", ...extraClaims },
|
|
36
|
+
jwtSecret,
|
|
37
|
+
refreshTokenTtl
|
|
38
|
+
)
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// src/auth/token-invalidation.ts
|
|
43
|
+
import { NotAuthenticated } from "@agor/core/feathers";
|
|
44
|
+
var AUTH_TOKEN_ISSUED_AT_MS_CLAIM = "auth_time_ms";
|
|
45
|
+
function dateToMillis(value) {
|
|
46
|
+
if (value === void 0) return null;
|
|
47
|
+
const millis = value instanceof Date ? value.getTime() : new Date(value).getTime();
|
|
48
|
+
return Number.isFinite(millis) ? millis : null;
|
|
49
|
+
}
|
|
50
|
+
function getAuthTokenIssuedAtMs(payload) {
|
|
51
|
+
const authTimeMs = payload?.[AUTH_TOKEN_ISSUED_AT_MS_CLAIM];
|
|
52
|
+
if (typeof authTimeMs === "number" && Number.isFinite(authTimeMs)) {
|
|
53
|
+
return authTimeMs;
|
|
54
|
+
}
|
|
55
|
+
if (typeof authTimeMs === "string") {
|
|
56
|
+
const parsed = Number(authTimeMs);
|
|
57
|
+
if (Number.isFinite(parsed)) return parsed;
|
|
58
|
+
}
|
|
59
|
+
return typeof payload?.iat === "number" && Number.isFinite(payload.iat) ? payload.iat * 1e3 : null;
|
|
60
|
+
}
|
|
61
|
+
function assertUserTokenNotInvalidated(user, payload) {
|
|
62
|
+
const validAfterMs = dateToMillis(user.tokens_valid_after);
|
|
63
|
+
if (validAfterMs === null) return;
|
|
64
|
+
const issuedAtMs = getAuthTokenIssuedAtMs(payload);
|
|
65
|
+
if (issuedAtMs === null || issuedAtMs <= validAfterMs) {
|
|
66
|
+
throw new NotAuthenticated("Session expired, please login again");
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function authTokenIssuedAtClaim(now = Date.now(), user) {
|
|
70
|
+
const validAfterMs = dateToMillis(user?.tokens_valid_after);
|
|
71
|
+
const issuedAtMs = validAfterMs !== null && now <= validAfterMs ? validAfterMs + 1 : now;
|
|
72
|
+
return { [AUTH_TOKEN_ISSUED_AT_MS_CLAIM]: issuedAtMs };
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// src/auth/user-redaction.ts
|
|
76
|
+
function redactUserAuthMetadata(user) {
|
|
77
|
+
const {
|
|
78
|
+
tokens_valid_after: _tokensValidAfter,
|
|
79
|
+
password: _password,
|
|
80
|
+
tenant_id: _tenantId,
|
|
81
|
+
...publicUser
|
|
82
|
+
} = user;
|
|
83
|
+
return publicUser;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// src/auth/refresh-token-service.ts
|
|
87
|
+
function createRefreshTokenService(options) {
|
|
88
|
+
return {
|
|
89
|
+
async create(data, _params) {
|
|
90
|
+
try {
|
|
91
|
+
const decoded = jwt2.verify(data.refreshToken, options.jwtSecret, {
|
|
92
|
+
issuer: RUNTIME_JWT_ISSUER,
|
|
93
|
+
audience: RUNTIME_JWT_AUDIENCE
|
|
94
|
+
});
|
|
95
|
+
if (decoded.type !== "refresh") {
|
|
96
|
+
throw new Error("Invalid token type");
|
|
97
|
+
}
|
|
98
|
+
const tenantId = readRuntimeTenantClaim(decoded, options.tenantClaim);
|
|
99
|
+
const user = await options.usersService.get(
|
|
100
|
+
decoded.sub,
|
|
101
|
+
tenantId ? {
|
|
102
|
+
tenant: { tenant_id: tenantId, source: "auth_claim" },
|
|
103
|
+
authentication: { payload: decoded }
|
|
104
|
+
} : { authentication: { payload: decoded } }
|
|
105
|
+
);
|
|
106
|
+
assertUserTokenNotInvalidated(user, decoded);
|
|
107
|
+
const tokens = issueRuntimeTokenPair(
|
|
108
|
+
user,
|
|
109
|
+
options.jwtSecret,
|
|
110
|
+
options.accessTokenTtl,
|
|
111
|
+
options.refreshTokenTtl,
|
|
112
|
+
{
|
|
113
|
+
...authTokenIssuedAtClaim(Date.now(), user),
|
|
114
|
+
...runtimeTenantClaims(
|
|
115
|
+
tenantId ?? user.tenant_id,
|
|
116
|
+
options.tenantClaim
|
|
117
|
+
)
|
|
118
|
+
}
|
|
119
|
+
);
|
|
120
|
+
return {
|
|
121
|
+
accessToken: tokens.accessToken,
|
|
122
|
+
refreshToken: tokens.refreshToken,
|
|
123
|
+
user: redactUserAuthMetadata(user)
|
|
124
|
+
};
|
|
125
|
+
} catch (_error) {
|
|
126
|
+
throw new NotAuthenticated2("Invalid or expired refresh token");
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
export {
|
|
132
|
+
createRefreshTokenService
|
|
133
|
+
};
|
|
@@ -13,6 +13,8 @@ export interface RuntimeTokenPair {
|
|
|
13
13
|
accessToken: string;
|
|
14
14
|
refreshToken: string;
|
|
15
15
|
}
|
|
16
|
+
export declare function runtimeTenantClaims(tenantId: string | undefined, claimName?: string): Record<string, string>;
|
|
17
|
+
export declare function readRuntimeTenantClaim(payload: unknown, claimName?: string): string | undefined;
|
|
16
18
|
export declare function issueRuntimeToken(payload: RuntimeTokenPayload, jwtSecret: string, expiresIn: SignOptions['expiresIn'], options?: Pick<SignOptions, 'audience'>): string;
|
|
17
|
-
export declare function issueRuntimeTokenPair(user: Pick<User, 'user_id'>, jwtSecret: string, accessTokenTtl: SignOptions['expiresIn'], refreshTokenTtl: SignOptions['expiresIn']): RuntimeTokenPair;
|
|
19
|
+
export declare function issueRuntimeTokenPair(user: Pick<User, 'user_id'>, jwtSecret: string, accessTokenTtl: SignOptions['expiresIn'], refreshTokenTtl: SignOptions['expiresIn'], extraClaims?: Record<string, unknown>): RuntimeTokenPair;
|
|
18
20
|
//# sourceMappingURL=runtime-tokens.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-tokens.d.ts","sourceRoot":"","sources":["../../src/auth/runtime-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAY,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErD,eAAO,MAAM,kBAAkB,SAAS,CAAC;AACzC,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,6BAA6B,0BAA0B,CAAC;AAErE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,kBAAkB,GAAG,UAAU,CAAC;AAElG,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,EAAE,gBAAgB,CAAC;IACvB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EACnC,OAAO,GAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAM,GAC1C,MAAM,CAMR;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,EAC3B,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,WAAW,CAAC,WAAW,CAAC,EACxC,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC,GACxC,gBAAgB,CAalB"}
|
|
1
|
+
{"version":3,"file":"runtime-tokens.d.ts","sourceRoot":"","sources":["../../src/auth/runtime-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAY,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErD,eAAO,MAAM,kBAAkB,SAAS,CAAC;AACzC,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,6BAA6B,0BAA0B,CAAC;AAErE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,kBAAkB,GAAG,UAAU,CAAC;AAElG,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,EAAE,gBAAgB,CAAC;IACvB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,SAAS,SAAc,GACtB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIxB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,SAAS,SAAc,GACtB,MAAM,GAAG,SAAS,CAKpB;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EACnC,OAAO,GAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAM,GAC1C,MAAM,CAMR;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,EAC3B,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,WAAW,CAAC,WAAW,CAAC,EACxC,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC,EACzC,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACxC,gBAAgB,CAalB"}
|
|
@@ -3,6 +3,17 @@ import jwt from "jsonwebtoken";
|
|
|
3
3
|
var RUNTIME_JWT_ISSUER = "agor";
|
|
4
4
|
var RUNTIME_JWT_AUDIENCE = "https://agor.dev";
|
|
5
5
|
var ARTIFACT_RUNTIME_JWT_AUDIENCE = "agor:artifact-runtime";
|
|
6
|
+
function runtimeTenantClaims(tenantId, claimName = "tenant_id") {
|
|
7
|
+
if (!tenantId) return {};
|
|
8
|
+
if (claimName === "tenant_id") return { tenant_id: tenantId };
|
|
9
|
+
return { tenant_id: tenantId, [claimName]: tenantId };
|
|
10
|
+
}
|
|
11
|
+
function readRuntimeTenantClaim(payload, claimName = "tenant_id") {
|
|
12
|
+
if (!payload || typeof payload !== "object") return void 0;
|
|
13
|
+
const record = payload;
|
|
14
|
+
const value = record[claimName] ?? record.tenant_id;
|
|
15
|
+
return typeof value === "string" && value.trim() ? value.trim() : void 0;
|
|
16
|
+
}
|
|
6
17
|
function issueRuntimeToken(payload, jwtSecret, expiresIn, options = {}) {
|
|
7
18
|
return jwt.sign(payload, jwtSecret, {
|
|
8
19
|
expiresIn,
|
|
@@ -10,15 +21,15 @@ function issueRuntimeToken(payload, jwtSecret, expiresIn, options = {}) {
|
|
|
10
21
|
audience: options.audience ?? RUNTIME_JWT_AUDIENCE
|
|
11
22
|
});
|
|
12
23
|
}
|
|
13
|
-
function issueRuntimeTokenPair(user, jwtSecret, accessTokenTtl, refreshTokenTtl) {
|
|
24
|
+
function issueRuntimeTokenPair(user, jwtSecret, accessTokenTtl, refreshTokenTtl, extraClaims = {}) {
|
|
14
25
|
return {
|
|
15
26
|
accessToken: issueRuntimeToken(
|
|
16
|
-
{ sub: user.user_id, type: "access" },
|
|
27
|
+
{ sub: user.user_id, type: "access", ...extraClaims },
|
|
17
28
|
jwtSecret,
|
|
18
29
|
accessTokenTtl
|
|
19
30
|
),
|
|
20
31
|
refreshToken: issueRuntimeToken(
|
|
21
|
-
{ sub: user.user_id, type: "refresh" },
|
|
32
|
+
{ sub: user.user_id, type: "refresh", ...extraClaims },
|
|
22
33
|
jwtSecret,
|
|
23
34
|
refreshTokenTtl
|
|
24
35
|
)
|
|
@@ -29,5 +40,7 @@ export {
|
|
|
29
40
|
RUNTIME_JWT_AUDIENCE,
|
|
30
41
|
RUNTIME_JWT_ISSUER,
|
|
31
42
|
issueRuntimeToken,
|
|
32
|
-
issueRuntimeTokenPair
|
|
43
|
+
issueRuntimeTokenPair,
|
|
44
|
+
readRuntimeTenantClaim,
|
|
45
|
+
runtimeTenantClaims
|
|
33
46
|
};
|
|
@@ -20,7 +20,8 @@ import type { SessionTokenService } from '../services/session-token-service.js';
|
|
|
20
20
|
*/
|
|
21
21
|
export declare class ServiceJWTStrategy extends JWTStrategy {
|
|
22
22
|
private sessionTokenService?;
|
|
23
|
-
|
|
23
|
+
private tenantClaim?;
|
|
24
|
+
constructor(sessionTokenService?: SessionTokenService | undefined, tenantClaim?: string | undefined);
|
|
24
25
|
/**
|
|
25
26
|
* Override getEntity to handle service tokens
|
|
26
27
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-jwt-strategy.d.ts","sourceRoot":"","sources":["../../src/auth/service-jwt-strategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"service-jwt-strategy.d.ts","sourceRoot":"","sources":["../../src/auth/service-jwt-strategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAoB,MAAM,kBAAkB,CAAC;AAEjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAwDhF;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IAE/C,OAAO,CAAC,mBAAmB,CAAC;IAC5B,OAAO,CAAC,WAAW,CAAC;gBADZ,mBAAmB,CAAC,EAAE,mBAAmB,YAAA,EACzC,WAAW,CAAC,EAAE,MAAM,YAAA;IAI9B;;;;;OAKG;IAEG,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA0BzD;;;;;OAKG;IAEG,YAAY,CAAC,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CA8EnE"}
|