agor-live 0.22.0 → 0.23.1
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 +482 -77
- package/dist/core/claude/index.js +479 -76
- package/dist/core/claude-cli/index.cjs +11 -0
- package/dist/core/claude-cli/index.js +11 -0
- package/dist/core/claude-cli/pricing.d.ts.map +1 -1
- package/dist/core/client/index.cjs +35 -7
- package/dist/core/client/index.js +32 -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 +2422 -1084
- 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 +2162 -852
- 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 +28 -4
- 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 +41 -1
- 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.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 +49 -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 +1 -4
- package/dist/core/environment/render-snapshot.js +1 -4
- 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 +11137 -10604
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +11673 -10630
- package/dist/core/lib/feathers-validation.cjs +6 -1
- package/dist/core/lib/feathers-validation.d.ts +1 -0
- package/dist/core/lib/feathers-validation.d.ts.map +1 -1
- package/dist/core/lib/feathers-validation.js +6 -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 +7941 -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 +7943 -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 +352 -25
- package/dist/core/mcp/index.js +351 -24
- package/dist/core/models/browser.cjs +148 -25
- package/dist/core/models/browser.js +144 -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 +148 -25
- package/dist/core/models/index.js +144 -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 +8410 -5504
- 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 +8434 -5533
- 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/tools/mcp/oauth-refresh.cjs +532 -102
- package/dist/core/tools/mcp/oauth-refresh.js +530 -103
- package/dist/core/types/board.d.ts +2 -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 +76 -1
- package/dist/core/types/gateway.d.ts.map +1 -1
- package/dist/core/types/index.cjs +25 -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 +22 -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 +1056 -674
- package/dist/core/unix/index.js +1003 -623
- 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 +19 -5
- 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 +127 -1
- 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 +4 -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 +7234 -2866
- 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 +7234 -2866
- 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 +1467 -71
- 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 +548 -23
- package/dist/daemon/mcp/tools/artifacts.js +510 -19
- package/dist/daemon/mcp/tools/boards.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/boards.js +517 -20
- package/dist/daemon/mcp/tools/branches.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/branches.js +574 -49
- package/dist/daemon/mcp/tools/card-types.js +508 -17
- package/dist/daemon/mcp/tools/cards.js +508 -17
- package/dist/daemon/mcp/tools/environment.js +516 -17
- 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 +16035 -0
- package/dist/daemon/mcp/tools/knowledge.js +508 -17
- package/dist/daemon/mcp/tools/mcp-servers.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/mcp-servers.js +843 -17
- package/dist/daemon/mcp/tools/messages.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/messages.js +568 -31
- package/dist/daemon/mcp/tools/proxies.js +518 -19
- package/dist/daemon/mcp/tools/repos.js +508 -17
- package/dist/daemon/mcp/tools/schedules.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/schedules.js +511 -18
- package/dist/daemon/mcp/tools/search.js +508 -17
- package/dist/daemon/mcp/tools/sessions.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/sessions.js +521 -23
- package/dist/daemon/mcp/tools/tasks.js +508 -17
- package/dist/daemon/mcp/tools/users.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/users.js +527 -22
- package/dist/daemon/mcp/tools/widgets.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/widgets.js +536 -18
- package/dist/daemon/register-hooks.d.ts +3 -2
- package/dist/daemon/register-hooks.d.ts.map +1 -1
- package/dist/daemon/register-hooks.js +894 -582
- 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 +2715 -816
- 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 +2445 -633
- 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 +34 -5
- package/dist/daemon/services/boards.d.ts.map +1 -1
- package/dist/daemon/services/boards.js +116 -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 +242 -35
- 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 +383 -272
- 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 +48 -3
- package/dist/daemon/services/gateway.d.ts.map +1 -1
- package/dist/daemon/services/gateway.js +606 -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 +145 -23
- 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-token-service.d.ts.map +1 -1
- package/dist/daemon/services/session-token-service.js +3 -0
- 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 +97 -17
- 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 +68 -10
- package/dist/daemon/startup.d.ts +13 -2
- package/dist/daemon/startup.d.ts.map +1 -1
- package/dist/daemon/startup.js +348 -86
- 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 +21 -6
- 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/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-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-publish.d.ts +2 -0
- package/dist/daemon/utils/realtime-publish.d.ts.map +1 -1
- package/dist/daemon/utils/realtime-publish.js +51 -10
- 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/index.js +137 -21
- package/dist/executor/commands/environment.d.ts.map +1 -1
- package/dist/executor/commands/environment.js +9 -5
- package/dist/executor/commands/git.js +1 -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/git-safe-directory.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/git-safe-directory.js +1 -1
- package/dist/executor/sdk-handlers/base/diff-enrichment.js +1 -1
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +6 -10
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/codex-tool.js +12 -15
- 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.map +1 -1
- package/dist/executor/sdk-handlers/codex/prompt-service.js +61 -6
- 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/services/feathers-client.js +5 -5
- 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-DQjr8M3_.js +1 -0
- package/dist/ui/assets/App-hJtcOxHv.js +5 -0
- package/dist/ui/assets/App-hJtcOxHv.js.gz +0 -0
- package/dist/ui/assets/AppNode-BhuMpn8O.js +1 -0
- package/dist/ui/assets/AppNode-BhuMpn8O.js.gz +0 -0
- package/dist/ui/assets/ArtifactConsentModal-oMMzRn8L.js +1 -0
- package/dist/ui/assets/ArtifactConsentModal-oMMzRn8L.js.gz +0 -0
- package/dist/ui/assets/ArtifactFullscreenPage-B3wT8t8f.js +9 -0
- package/dist/ui/assets/ArtifactFullscreenPage-B3wT8t8f.js.gz +0 -0
- package/dist/ui/assets/ArtifactNode-BzQcrwFS.js +9 -0
- package/dist/ui/assets/ArtifactNode-BzQcrwFS.js.gz +0 -0
- package/dist/ui/assets/AutocompleteTextarea-Dau-V_30.js +19 -0
- package/dist/ui/assets/AutocompleteTextarea-Dau-V_30.js.gz +0 -0
- package/dist/ui/assets/BoardObjectNodes-DdKWv_ZT.js +34 -0
- package/dist/ui/assets/BoardObjectNodes-DdKWv_ZT.js.gz +0 -0
- package/dist/ui/assets/CodeEditor.inner-Cuj6RuLL.js +7 -0
- package/dist/ui/assets/CodeEditor.inner-Cuj6RuLL.js.gz +0 -0
- package/dist/ui/assets/ConversationView-9-3ma1u-.js +1 -0
- package/dist/ui/assets/ConversationView-9-3ma1u-.js.gz +0 -0
- package/dist/ui/assets/EmbeddedTerminal-Lx5I9EOJ.js +2 -0
- package/dist/ui/assets/EmbeddedTerminal-Lx5I9EOJ.js.gz +0 -0
- package/dist/ui/assets/KnowledgePage-Dz8YAMYC.js +24 -0
- package/dist/ui/assets/KnowledgePage-Dz8YAMYC.js.gz +0 -0
- package/dist/ui/assets/{MarketingScreenshotPage-zv5RUCuV.js → MarketingScreenshotPage-CmDPBHOl.js} +2 -2
- package/dist/ui/assets/MarketingScreenshotPage-CmDPBHOl.js.gz +0 -0
- package/dist/ui/assets/MobileApp-BpgSG_gz.js +1 -0
- package/dist/ui/assets/MobileApp-BpgSG_gz.js.gz +0 -0
- package/dist/ui/assets/SessionCanvas-B6_mtlxK.js +13 -0
- package/dist/ui/assets/SessionCanvas-B6_mtlxK.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/{StreamdownDemoPage-wzWaqWwr.js → StreamdownDemoPage-okKKR2QH.js} +2 -2
- package/dist/ui/assets/StreamdownDemoPage-okKKR2QH.js.gz +0 -0
- package/dist/ui/assets/TerminalModal-D9jMGZXv.js +2 -0
- package/dist/ui/assets/TerminalModal-D9jMGZXv.js.gz +0 -0
- package/dist/ui/assets/ThemeSwitcher-D9HgT37l.js +1 -0
- package/dist/ui/assets/ThemeSwitcher-D9HgT37l.js.gz +0 -0
- package/dist/ui/assets/ThemedSyntaxHighlighter.inner-C1FdIHn0.js +1 -0
- package/dist/ui/assets/{antd-CfbbHJOz.js → antd-DT5ackd0.js} +5 -5
- package/dist/ui/assets/{antd-CfbbHJOz.js.gz → antd-DT5ackd0.js.gz} +0 -0
- package/dist/ui/assets/architecture-U656AL7Q-DMnxkQRZ.js +1 -0
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-DwTJGGoj.js +36 -0
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-DwTJGGoj.js.gz +0 -0
- package/dist/ui/assets/{blockDiagram-VD42YOAC-BhZaEN19.js → blockDiagram-VD42YOAC-Dh1_TVW2.js} +4 -4
- package/dist/ui/assets/blockDiagram-VD42YOAC-Dh1_TVW2.js.gz +0 -0
- package/dist/ui/assets/{c4Diagram-YG6GDRKO-Dk_UH-sY.js → c4Diagram-YG6GDRKO-B1e96AcB.js} +2 -2
- package/dist/ui/assets/c4Diagram-YG6GDRKO-B1e96AcB.js.gz +0 -0
- package/dist/ui/assets/channel-Jv4dT4S5.js +1 -0
- package/dist/ui/assets/{chunk-4BX2VUAB-XprbG2TG.js → chunk-4BX2VUAB-BODpCjJx.js} +1 -1
- package/dist/ui/assets/chunk-55IACEB6-lJXvUquf.js +1 -0
- package/dist/ui/assets/{chunk-ABZYJK2D-BJcrryHK.js → chunk-ABZYJK2D-DCTXWSzV.js} +3 -3
- package/dist/ui/assets/chunk-ABZYJK2D-DCTXWSzV.js.gz +0 -0
- package/dist/ui/assets/{chunk-AGHRB4JF-DvxmfbM0.js → chunk-AGHRB4JF-CbNphBjE.js} +1 -1
- package/dist/ui/assets/chunk-AGHRB4JF-CbNphBjE.js.gz +0 -0
- package/dist/ui/assets/{chunk-ATLVNIR6-DbeJ0OrR.js → chunk-ATLVNIR6-rWg3qxof.js} +1 -1
- package/dist/ui/assets/chunk-ATLVNIR6-rWg3qxof.js.gz +0 -0
- package/dist/ui/assets/{chunk-B4BG7PRW-C53q2ggf.js → chunk-B4BG7PRW-CgtLCbpE.js} +3 -3
- package/dist/ui/assets/chunk-B4BG7PRW-CgtLCbpE.js.gz +0 -0
- package/dist/ui/assets/{chunk-CVBHYZKI-B3EBSlb3.js → chunk-CVBHYZKI-DTL6Zgr0.js} +1 -1
- package/dist/ui/assets/{chunk-DI55MBZ5-vIyNEQN-.js → chunk-DI55MBZ5-Dwvx2Kva.js} +1 -1
- package/dist/ui/assets/chunk-DI55MBZ5-Dwvx2Kva.js.gz +0 -0
- package/dist/ui/assets/chunk-EXTU4WIE-DHyaqTsP.js +1 -0
- package/dist/ui/assets/{chunk-FMBD7UC4-rddmfK-Z.js → chunk-FMBD7UC4-BogA_9CV.js} +1 -1
- package/dist/ui/assets/{chunk-HN2XXSSU-Dttqcg3b.js → chunk-HN2XXSSU-2blQO3Gb.js} +1 -1
- package/dist/ui/assets/chunk-HN2XXSSU-2blQO3Gb.js.gz +0 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-Cr1rmOui.js +11 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-Cr1rmOui.js.gz +0 -0
- package/dist/ui/assets/{chunk-JZLCHNYA-EUmx2y4H.js → chunk-JZLCHNYA-BsgZ79Fa.js} +5 -5
- package/dist/ui/assets/chunk-JZLCHNYA-BsgZ79Fa.js.gz +0 -0
- package/dist/ui/assets/{chunk-MI3HLSF2-65n9Mkyc.js → chunk-MI3HLSF2-dwYeUy5S.js} +1 -1
- package/dist/ui/assets/chunk-MI3HLSF2-dwYeUy5S.js.gz +0 -0
- package/dist/ui/assets/chunk-N4CR4FBY-DEMgSRVe.js +2 -0
- package/dist/ui/assets/chunk-N4CR4FBY-DEMgSRVe.js.gz +0 -0
- package/dist/ui/assets/{chunk-QN33PNHL-DsRKK6NR.js → chunk-QN33PNHL-DxdIDCAa.js} +1 -1
- package/dist/ui/assets/{chunk-QXUST7PY-BCYnMiS3.js → chunk-QXUST7PY-BCK2V0i-.js} +2 -2
- package/dist/ui/assets/chunk-QXUST7PY-BCK2V0i-.js.gz +0 -0
- package/dist/ui/assets/chunk-QZHKN3VN-CALjGrEE.js +1 -0
- package/dist/ui/assets/chunk-S3R3BYOJ-GP3zIxrB.js +2 -0
- package/dist/ui/assets/chunk-S3R3BYOJ-GP3zIxrB.js.gz +0 -0
- package/dist/ui/assets/{chunk-TZMSLE5B-BuQUQcTr.js → chunk-TZMSLE5B-dX5RaM6g.js} +1 -1
- package/dist/ui/assets/chunk-TZMSLE5B-dX5RaM6g.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-C3_RVP70.js +1 -0
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-C3_RVP70.js +1 -0
- package/dist/ui/assets/constants-GjIDNVyt.js +1 -0
- package/dist/ui/assets/{cose-bilkent-S5V4N54A-CnPB3ARO.js → cose-bilkent-S5V4N54A-Dx0BJVDl.js} +1 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-Dx0BJVDl.js.gz +0 -0
- package/dist/ui/assets/{dagre-6UL2VRFP-DhS-k_Se.js → dagre-6UL2VRFP-DiQSUxqN.js} +1 -1
- package/dist/ui/assets/dagre-6UL2VRFP-DiQSUxqN.js.gz +0 -0
- package/dist/ui/assets/{dagre-KgLoHEuy.js → dagre-Bekd9Vdj.js} +1 -1
- package/dist/ui/assets/dagre-Bekd9Vdj.js.gz +0 -0
- package/dist/ui/assets/diagram-PSM6KHXK-DtJnDQjc.js +24 -0
- package/dist/ui/assets/diagram-PSM6KHXK-DtJnDQjc.js.gz +0 -0
- package/dist/ui/assets/{diagram-QEK2KX5R-BPCitvbo.js → diagram-QEK2KX5R-CobkCRdj.js} +1 -1
- package/dist/ui/assets/diagram-QEK2KX5R-CobkCRdj.js.gz +0 -0
- package/dist/ui/assets/{diagram-S2PKOQOG-NW4uK6sx.js → diagram-S2PKOQOG-DHEZYivc.js} +1 -1
- package/dist/ui/assets/diagram-S2PKOQOG-DHEZYivc.js.gz +0 -0
- package/dist/ui/assets/editor-DQIG-JYZ.js +43 -0
- package/dist/ui/assets/editor-DQIG-JYZ.js.gz +0 -0
- package/dist/ui/assets/emoji-B0hLmSLZ.js +3 -0
- package/dist/ui/assets/emoji-B0hLmSLZ.js.gz +0 -0
- package/dist/ui/assets/{erDiagram-Q2GNP2WA-me1fboaf.js → erDiagram-Q2GNP2WA-BVNeTZPQ.js} +2 -2
- package/dist/ui/assets/erDiagram-Q2GNP2WA-BVNeTZPQ.js.gz +0 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-C73VFdyk.js +162 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-C73VFdyk.js.gz +0 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-B_RosuD1.js +267 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-B_RosuD1.js.gz +0 -0
- package/dist/ui/assets/{gitGraph-F6HP7TQM-CfFE_uAC.js → gitGraph-F6HP7TQM-DMFIqn4h.js} +1 -1
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-hxbgwNA1.js +65 -0
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-hxbgwNA1.js.gz +0 -0
- package/dist/ui/assets/index-DTz1Dif6.js +64 -0
- package/dist/ui/assets/index-DTz1Dif6.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-DZ3K-w48.js} +1 -1
- package/dist/ui/assets/{infoDiagram-ER5ION4S-2NL93b78.js → infoDiagram-ER5ION4S-CxnBJQu6.js} +1 -1
- package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-CZF-2DHU.js → journeyDiagram-XKPGCS4Q-CHYNj-f8.js} +3 -3
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CHYNj-f8.js.gz +0 -0
- package/dist/ui/assets/{kanban-definition-3W4ZIXB7-CfvJIOny.js → kanban-definition-3W4ZIXB7-DQPCCsj2.js} +1 -1
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-DQPCCsj2.js.gz +0 -0
- package/dist/ui/assets/{line-DDv8kOJk.js → line-DBRjKmfa.js} +1 -1
- package/dist/ui/assets/{linear-Daef-l29.js → linear-DFao5Wyp.js} +1 -1
- package/dist/ui/assets/linear-DFao5Wyp.js.gz +0 -0
- package/dist/ui/assets/{mermaid-parser.core-CdK9QgYV.js → mermaid-parser.core-DYCfacHj.js} +2 -2
- package/dist/ui/assets/mermaid-parser.core-DYCfacHj.js.gz +0 -0
- package/dist/ui/assets/mermaid.core-C6xGFSdE.js +11 -0
- package/dist/ui/assets/mermaid.core-C6xGFSdE.js.gz +0 -0
- package/dist/ui/assets/{mindmap-definition-VGOIOE7T-Cb3QMflX.js → mindmap-definition-VGOIOE7T-L3Pw-YM7.js} +1 -1
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-L3Pw-YM7.js.gz +0 -0
- package/dist/ui/assets/{packet-BFZMPI3H-Bm2uwz4i.js → packet-BFZMPI3H-CpL6iNoa.js} +1 -1
- package/dist/ui/assets/{particles-DsJFOarW.js → particles-CT8hcJOA.js} +1 -1
- package/dist/ui/assets/particles-CT8hcJOA.js.gz +0 -0
- package/dist/ui/assets/{pie-7BOR55EZ-5i17tVnF.js → pie-7BOR55EZ-hTqChbTo.js} +1 -1
- package/dist/ui/assets/{pieDiagram-ADFJNKIX-BxIwQWvw.js → pieDiagram-ADFJNKIX-Bf4Nou75.js} +1 -1
- package/dist/ui/assets/pieDiagram-ADFJNKIX-Bf4Nou75.js.gz +0 -0
- package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-B5HPe4ga.js → quadrantDiagram-AYHSOK5B-DpjUTLB1.js} +3 -3
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-DpjUTLB1.js.gz +0 -0
- package/dist/ui/assets/{radar-NHE76QYJ-BTn-tq0k.js → radar-NHE76QYJ-myy7OENC.js} +1 -1
- package/dist/ui/assets/reactflow-Cubtnk8i.js +2 -0
- package/dist/ui/assets/reactflow-Cubtnk8i.js.gz +0 -0
- package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-YfI6llkX.js → requirementDiagram-UZGBJVZJ-Bfrfh-0-.js} +1 -1
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-Bfrfh-0-.js.gz +0 -0
- package/dist/ui/assets/{sandpack-D7koO5op.js → sandpack-C58bwfIS.js} +38 -38
- package/dist/ui/assets/sandpack-C58bwfIS.js.gz +0 -0
- package/dist/ui/assets/sandpackDefaults-Bkga8XAE.js +1 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-ClZAZ6va.js +10 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-ClZAZ6va.js.gz +0 -0
- package/dist/ui/assets/{sequenceDiagram-WL72ISMW-DAe4Um17.js → sequenceDiagram-WL72ISMW-CNgly63p.js} +6 -6
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-CNgly63p.js.gz +0 -0
- package/dist/ui/assets/src-DAeyG22O.js +34 -0
- package/dist/ui/assets/src-DAeyG22O.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BrEAoDpE.js +1 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BrEAoDpE.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-BNL52_oN.js +1 -0
- package/dist/ui/assets/streamdown-BdAVfkeF.js +521 -0
- package/dist/ui/assets/streamdown-BdAVfkeF.js.gz +0 -0
- package/dist/ui/assets/syntax-BOfTnQiy.js +9 -0
- package/dist/ui/assets/syntax-BOfTnQiy.js.gz +0 -0
- package/dist/ui/assets/{timeline-definition-IT6M3QCI-D6P5txjT.js → timeline-definition-IT6M3QCI-CaRH3k4l.js} +16 -16
- package/dist/ui/assets/timeline-definition-IT6M3QCI-CaRH3k4l.js.gz +0 -0
- package/dist/ui/assets/{treemap-KMMF4GRG-Bitm3gy4.js → treemap-KMMF4GRG-CUaLOV_B.js} +1 -1
- package/dist/ui/assets/{useUserLocalStorage-Ckb8HsIw.js → useUserLocalStorage-C8sgXgXR.js} +1 -1
- package/dist/ui/assets/useUserLocalStorage-C8sgXgXR.js.gz +0 -0
- package/dist/ui/assets/{xychartDiagram-PRI3JC2R-CsybjUbd.js → xychartDiagram-PRI3JC2R-BlhkI9T_.js} +1 -1
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-BlhkI9T_.js.gz +0 -0
- package/dist/ui/index.html +10 -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
|
@@ -127,7 +127,12 @@ async function findHostTaskForSession(app, sessionId, params) {
|
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
// src/widgets/env-vars/index.ts
|
|
130
|
-
import {
|
|
130
|
+
import {
|
|
131
|
+
ENV_VAR_CONSTRAINTS,
|
|
132
|
+
isEnvVarAllowed,
|
|
133
|
+
validateEnvVar
|
|
134
|
+
} from "@agor/core/config";
|
|
135
|
+
import { SessionEnvSelectionRepository } from "@agor/core/db";
|
|
131
136
|
import { BadRequest } from "@agor/core/feathers";
|
|
132
137
|
|
|
133
138
|
// ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.js
|
|
@@ -14646,6 +14651,30 @@ config(en_default());
|
|
|
14646
14651
|
|
|
14647
14652
|
// src/widgets/env-vars/index.ts
|
|
14648
14653
|
var ENV_VAR_NAME_REGEX = ENV_VAR_CONSTRAINTS.NAME_PATTERN;
|
|
14654
|
+
function orderedEnvVarNames(names) {
|
|
14655
|
+
return [...names].sort();
|
|
14656
|
+
}
|
|
14657
|
+
var envVarFieldMetadataSchema = external_exports.object({
|
|
14658
|
+
description: external_exports.string().max(200).optional(),
|
|
14659
|
+
placeholder: external_exports.string().max(120).optional(),
|
|
14660
|
+
format_hint: external_exports.string().max(80).optional(),
|
|
14661
|
+
input_type: external_exports.enum(["password", "text", "textarea"]).default("password").optional()
|
|
14662
|
+
}).strict();
|
|
14663
|
+
function orderedRecord(record2) {
|
|
14664
|
+
if (!record2) return void 0;
|
|
14665
|
+
const out = {};
|
|
14666
|
+
for (const key of orderedEnvVarNames(Object.keys(record2))) {
|
|
14667
|
+
out[key] = record2[key];
|
|
14668
|
+
}
|
|
14669
|
+
return out;
|
|
14670
|
+
}
|
|
14671
|
+
function normalizeEnvVarsParams(params) {
|
|
14672
|
+
return {
|
|
14673
|
+
...params,
|
|
14674
|
+
names: orderedEnvVarNames(params.names),
|
|
14675
|
+
variable_metadata: orderedRecord(params.variable_metadata)
|
|
14676
|
+
};
|
|
14677
|
+
}
|
|
14649
14678
|
var envVarsParamsSchema = external_exports.object({
|
|
14650
14679
|
names: external_exports.array(external_exports.string().regex(ENV_VAR_NAME_REGEX)).min(1).max(10).refine((names) => new Set(names).size === names.length, {
|
|
14651
14680
|
message: "Env var names must be unique"
|
|
@@ -14653,18 +14682,56 @@ var envVarsParamsSchema = external_exports.object({
|
|
|
14653
14682
|
reason: external_exports.string().min(1).max(200).describe(
|
|
14654
14683
|
"One sentence explaining why you need the value(s). Keep it tight \u2014 this renders in a small muted line under the input. NOT a place to restate what the widget does."
|
|
14655
14684
|
),
|
|
14685
|
+
variable_metadata: external_exports.record(external_exports.string().regex(ENV_VAR_NAME_REGEX), envVarFieldMetadataSchema).optional().describe(
|
|
14686
|
+
"Optional per-variable display metadata keyed by requested name. Allowed keys per variable: description, placeholder, format_hint, input_type (password|text|textarea). Do not include values, defaults, examples containing secrets, or anything secret-like."
|
|
14687
|
+
),
|
|
14656
14688
|
auto_resume: external_exports.boolean().default(true).describe(
|
|
14657
14689
|
"When true (default), a system-authored prompt is auto-queued back into the agent on submit/dismiss."
|
|
14658
14690
|
)
|
|
14691
|
+
}).superRefine((params, ctx) => {
|
|
14692
|
+
const requested = new Set(params.names);
|
|
14693
|
+
for (const key of Object.keys(params.variable_metadata ?? {})) {
|
|
14694
|
+
if (!requested.has(key)) {
|
|
14695
|
+
ctx.addIssue({
|
|
14696
|
+
code: external_exports.ZodIssueCode.custom,
|
|
14697
|
+
path: ["variable_metadata", key],
|
|
14698
|
+
message: `Metadata key ${key} must match a requested env var name`
|
|
14699
|
+
});
|
|
14700
|
+
}
|
|
14701
|
+
}
|
|
14659
14702
|
});
|
|
14660
14703
|
var envVarsSubmitSchema = external_exports.object({
|
|
14661
14704
|
values: external_exports.record(
|
|
14662
14705
|
external_exports.string().regex(ENV_VAR_NAME_REGEX),
|
|
14663
14706
|
external_exports.string().min(1).max(ENV_VAR_CONSTRAINTS.MAX_VALUE_LENGTH)
|
|
14664
|
-
).
|
|
14665
|
-
|
|
14666
|
-
}),
|
|
14707
|
+
).default({}),
|
|
14708
|
+
use_existing: external_exports.array(external_exports.string().regex(ENV_VAR_NAME_REGEX)).max(10).default([]).describe("Requested names whose already-saved global values should be used."),
|
|
14667
14709
|
scope: external_exports.enum(["global", "session"])
|
|
14710
|
+
}).superRefine((submit, ctx) => {
|
|
14711
|
+
const valueNames = Object.keys(submit.values);
|
|
14712
|
+
const existingNames = submit.use_existing;
|
|
14713
|
+
const total = valueNames.length + existingNames.length;
|
|
14714
|
+
if (total < 1 || total > 10) {
|
|
14715
|
+
ctx.addIssue({
|
|
14716
|
+
code: external_exports.ZodIssueCode.custom,
|
|
14717
|
+
message: "Must submit between 1 and 10 env vars"
|
|
14718
|
+
});
|
|
14719
|
+
}
|
|
14720
|
+
const duplicates = existingNames.filter((name) => valueNames.includes(name));
|
|
14721
|
+
for (const name of duplicates) {
|
|
14722
|
+
ctx.addIssue({
|
|
14723
|
+
code: external_exports.ZodIssueCode.custom,
|
|
14724
|
+
path: ["use_existing"],
|
|
14725
|
+
message: `Cannot both submit and use existing value for ${name}`
|
|
14726
|
+
});
|
|
14727
|
+
}
|
|
14728
|
+
if (new Set(existingNames).size !== existingNames.length) {
|
|
14729
|
+
ctx.addIssue({
|
|
14730
|
+
code: external_exports.ZodIssueCode.custom,
|
|
14731
|
+
path: ["use_existing"],
|
|
14732
|
+
message: "use_existing names must be unique"
|
|
14733
|
+
});
|
|
14734
|
+
}
|
|
14668
14735
|
});
|
|
14669
14736
|
|
|
14670
14737
|
// src/mcp/server.ts
|
|
@@ -14678,7 +14745,11 @@ import { ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
|
|
|
14678
14745
|
|
|
14679
14746
|
// src/mcp/tokens.ts
|
|
14680
14747
|
import { MCP_TOKEN } from "@agor/core/config";
|
|
14681
|
-
import {
|
|
14748
|
+
import {
|
|
14749
|
+
generateId as generateId2,
|
|
14750
|
+
SessionRepository as SessionRepository2,
|
|
14751
|
+
shortId
|
|
14752
|
+
} from "@agor/core/db";
|
|
14682
14753
|
import {
|
|
14683
14754
|
MCP_TOKEN_AUDIENCE,
|
|
14684
14755
|
MCP_TOKEN_ISSUER
|
|
@@ -14699,6 +14770,7 @@ var DOMAIN_DESCRIPTIONS = {
|
|
|
14699
14770
|
users: "User accounts, profiles, preferences, and administration",
|
|
14700
14771
|
analytics: "Usage and cost tracking leaderboard",
|
|
14701
14772
|
"mcp-servers": "External MCP server configuration and OAuth management",
|
|
14773
|
+
gateway: "Gateway channels for Slack, GitHub, Teams, and other message integrations",
|
|
14702
14774
|
proxies: "Configured HTTP proxies for third-party APIs (Shortcut, Linear, Jira, etc.)",
|
|
14703
14775
|
widgets: "In-conversation interactive widgets \u2014 agents render small forms/buttons inline in the transcript to capture user input that never enters the LLM context",
|
|
14704
14776
|
knowledge: "DB-backed markdown knowledge documents, version history, search, and graph links",
|
|
@@ -14722,6 +14794,11 @@ function mcpOptionalString(fieldName, description) {
|
|
|
14722
14794
|
error: `${fieldName} must be a string when provided.`
|
|
14723
14795
|
}).optional().describe(description);
|
|
14724
14796
|
}
|
|
14797
|
+
function mcpOptionalNonEmptyString(fieldName, description) {
|
|
14798
|
+
return external_exports.string({
|
|
14799
|
+
error: `${fieldName} must be a string when provided.`
|
|
14800
|
+
}).min(1, `${fieldName} cannot be empty when provided.`).optional().describe(description);
|
|
14801
|
+
}
|
|
14725
14802
|
function mcpOptionalNonBlankString(fieldName, description) {
|
|
14726
14803
|
return external_exports.string({
|
|
14727
14804
|
error: `${fieldName} must be a string when provided.`
|
|
@@ -14742,6 +14819,14 @@ function mcpRequiredPositiveInt(fieldName, description) {
|
|
|
14742
14819
|
error: `${fieldName} is required and must be a positive integer.`
|
|
14743
14820
|
}).int(`${fieldName} must be an integer.`).positive(`${fieldName} must be greater than 0.`).describe(description);
|
|
14744
14821
|
}
|
|
14822
|
+
function mcpOptionalPositiveInt(fieldName, description) {
|
|
14823
|
+
return external_exports.number({
|
|
14824
|
+
error: `${fieldName} must be a positive integer when provided.`
|
|
14825
|
+
}).int(`${fieldName} must be an integer.`).positive(`${fieldName} must be greater than 0.`).optional().describe(description);
|
|
14826
|
+
}
|
|
14827
|
+
function mcpLimit(defaultValue = 50) {
|
|
14828
|
+
return mcpOptionalPositiveInt("limit", `Maximum number of results (default: ${defaultValue})`);
|
|
14829
|
+
}
|
|
14745
14830
|
|
|
14746
14831
|
// src/mcp/tools/artifacts.ts
|
|
14747
14832
|
import path from "path";
|
|
@@ -14801,7 +14886,7 @@ var AgorRuntimeSchema = external_exports.object({
|
|
|
14801
14886
|
|
|
14802
14887
|
// src/mcp/tools/branches.ts
|
|
14803
14888
|
import { existsSync } from "fs";
|
|
14804
|
-
import { isBranchRbacEnabled } from "@agor/core/config";
|
|
14889
|
+
import { isBranchRbacEnabled, loadConfig } from "@agor/core/config";
|
|
14805
14890
|
import { BranchRepository as BranchRepository2, shortId as shortId3 } from "@agor/core/db";
|
|
14806
14891
|
import { BRANCH_PERMISSION_LEVELS as BRANCH_PERMISSION_LEVELS2, getAssistantConfig, isAssistant } from "@agor/core/types";
|
|
14807
14892
|
import { computeZoneRelativePosition } from "@agor/core/utils/board-placement";
|
|
@@ -14810,12 +14895,186 @@ import { normalizeOptionalHttpUrl } from "@agor/core/utils/url";
|
|
|
14810
14895
|
// src/mcp/tools/cards.ts
|
|
14811
14896
|
import { BoardObjectRepository } from "@agor/core/db";
|
|
14812
14897
|
|
|
14898
|
+
// src/mcp/tools/gateway-channels.ts
|
|
14899
|
+
import {
|
|
14900
|
+
BranchRepository as BranchRepository3,
|
|
14901
|
+
GatewayChannelRepository,
|
|
14902
|
+
SessionRepository as SessionRepository3,
|
|
14903
|
+
ThreadSessionMapRepository
|
|
14904
|
+
} from "@agor/core/db";
|
|
14905
|
+
import {
|
|
14906
|
+
getConnector
|
|
14907
|
+
} from "@agor/core/gateway";
|
|
14908
|
+
import {
|
|
14909
|
+
GATEWAY_REDACTED_SENTINEL,
|
|
14910
|
+
GATEWAY_SENSITIVE_CONFIG_FIELDS,
|
|
14911
|
+
hasMinimumRole as hasMinimumRole2,
|
|
14912
|
+
ROLES as ROLES2
|
|
14913
|
+
} from "@agor/core/types";
|
|
14914
|
+
var configSchema = external_exports.record(external_exports.string(), external_exports.unknown()).describe(
|
|
14915
|
+
"Platform-specific gateway configuration. Secrets are stored encrypted and returned redacted. Prefer env/template references for shared credentials where the connector supports them."
|
|
14916
|
+
);
|
|
14917
|
+
var outboundTargetSchema = external_exports.string().trim().regex(
|
|
14918
|
+
/^(channel:[^:\s]+|channel_name:[^\s]+|#[^\s]+|(?:email:|user_email:)?[^@\s]+@[^@\s]+\.[^@\s]+)$/
|
|
14919
|
+
).describe(
|
|
14920
|
+
"Slack outbound target for v0: channel:C123, #project-updates, channel_name:project-updates, or user@example.com. Thread targets are intentionally not supported."
|
|
14921
|
+
);
|
|
14922
|
+
var envVarSchema = external_exports.strictObject({
|
|
14923
|
+
key: mcpRequiredString("agenticConfig.envVars[].key", "Environment variable name"),
|
|
14924
|
+
value: mcpRequiredString(
|
|
14925
|
+
"agenticConfig.envVars[].value",
|
|
14926
|
+
`Environment variable value. Prefer references/templates over raw secrets. Existing redacted values may be passed as '${GATEWAY_REDACTED_SENTINEL}' on update to preserve them.`
|
|
14927
|
+
),
|
|
14928
|
+
forceOverride: external_exports.boolean().optional().describe("When true, channel value wins over user env vars. Defaults to false.")
|
|
14929
|
+
});
|
|
14930
|
+
var agenticConfigSchema = external_exports.strictObject({
|
|
14931
|
+
agent: external_exports.enum(["claude-code", "claude-code-cli", "codex", "gemini", "opencode", "copilot", "cursor"]).describe("Agent used for sessions created from this gateway channel."),
|
|
14932
|
+
permissionMode: external_exports.enum([
|
|
14933
|
+
"default",
|
|
14934
|
+
"acceptEdits",
|
|
14935
|
+
"bypassPermissions",
|
|
14936
|
+
"plan",
|
|
14937
|
+
"dontAsk",
|
|
14938
|
+
"autoEdit",
|
|
14939
|
+
"yolo",
|
|
14940
|
+
"ask",
|
|
14941
|
+
"auto",
|
|
14942
|
+
"on-failure",
|
|
14943
|
+
"allow-all"
|
|
14944
|
+
]).optional().describe("Permission mode for spawned sessions."),
|
|
14945
|
+
modelConfig: external_exports.record(external_exports.string(), external_exports.unknown()).optional().describe("Agent model configuration."),
|
|
14946
|
+
mcpServerIds: external_exports.array(external_exports.string().min(1)).optional().describe("MCP server IDs to attach to gateway-created sessions."),
|
|
14947
|
+
codexSandboxMode: external_exports.enum(["read-only", "workspace-write", "danger-full-access"]).optional().describe("Codex sandbox mode for Codex gateway sessions."),
|
|
14948
|
+
codexApprovalPolicy: external_exports.enum(["untrusted", "on-failure", "on-request", "never"]).optional().describe("Codex approval policy for Codex gateway sessions."),
|
|
14949
|
+
codexNetworkAccess: external_exports.boolean().optional().describe("Allow Codex network access."),
|
|
14950
|
+
envVars: external_exports.array(envVarSchema).optional().describe("Gateway-level env vars. Values are redacted in responses.")
|
|
14951
|
+
}).describe("Agent/session defaults for conversations created through this gateway channel.");
|
|
14952
|
+
var gatewayChannelCreateSchema = external_exports.strictObject({
|
|
14953
|
+
name: mcpRequiredString("name", 'Human-readable channel name, e.g. "Engineering Slack".'),
|
|
14954
|
+
channelType: external_exports.enum(["slack", "github", "teams", "discord", "whatsapp", "telegram"]).default("slack").describe("Gateway platform type. Current active connectors are slack, github, and teams."),
|
|
14955
|
+
targetBranchId: mcpRequiredId(
|
|
14956
|
+
"targetBranchId",
|
|
14957
|
+
"Branch",
|
|
14958
|
+
"Branch/worktree ID that this gateway channel prompts."
|
|
14959
|
+
),
|
|
14960
|
+
agorUserId: mcpOptionalId(
|
|
14961
|
+
"agorUserId",
|
|
14962
|
+
"User",
|
|
14963
|
+
"Agor user ID whose identity is used when platform-user alignment is disabled."
|
|
14964
|
+
),
|
|
14965
|
+
enabled: external_exports.boolean().optional().describe("Whether the channel is active. Defaults to true."),
|
|
14966
|
+
config: configSchema,
|
|
14967
|
+
agenticConfig: agenticConfigSchema.optional()
|
|
14968
|
+
}).superRefine((value, issue2) => {
|
|
14969
|
+
const config2 = value.config ?? {};
|
|
14970
|
+
if (value.channelType === "slack") {
|
|
14971
|
+
if (!config2.bot_token) {
|
|
14972
|
+
issue2.addIssue({
|
|
14973
|
+
code: "custom",
|
|
14974
|
+
path: ["config", "bot_token"],
|
|
14975
|
+
message: "config.bot_token is required for Slack. Prefer a bot token stored outside the transcript when possible."
|
|
14976
|
+
});
|
|
14977
|
+
}
|
|
14978
|
+
if (config2.connection_mode === "socket" && !config2.app_token) {
|
|
14979
|
+
issue2.addIssue({
|
|
14980
|
+
code: "custom",
|
|
14981
|
+
path: ["config", "app_token"],
|
|
14982
|
+
message: "config.app_token is required for Slack Socket Mode."
|
|
14983
|
+
});
|
|
14984
|
+
}
|
|
14985
|
+
}
|
|
14986
|
+
if (value.channelType === "github") {
|
|
14987
|
+
for (const field of ["app_id", "private_key", "installation_id", "watch_repos"]) {
|
|
14988
|
+
if (!config2[field]) {
|
|
14989
|
+
issue2.addIssue({
|
|
14990
|
+
code: "custom",
|
|
14991
|
+
path: ["config", field],
|
|
14992
|
+
message: `config.${field} is required for GitHub gateway channels.`
|
|
14993
|
+
});
|
|
14994
|
+
}
|
|
14995
|
+
}
|
|
14996
|
+
}
|
|
14997
|
+
if (value.channelType === "teams") {
|
|
14998
|
+
for (const field of ["app_id", "app_password"]) {
|
|
14999
|
+
if (!config2[field]) {
|
|
15000
|
+
issue2.addIssue({
|
|
15001
|
+
code: "custom",
|
|
15002
|
+
path: ["config", field],
|
|
15003
|
+
message: `config.${field} is required for Teams gateway channels.`
|
|
15004
|
+
});
|
|
15005
|
+
}
|
|
15006
|
+
}
|
|
15007
|
+
}
|
|
15008
|
+
});
|
|
15009
|
+
var slackThreadHistorySchema = external_exports.strictObject({
|
|
15010
|
+
sessionId: mcpOptionalId(
|
|
15011
|
+
"sessionId",
|
|
15012
|
+
"Session",
|
|
15013
|
+
"Preferred: resolve the Slack thread mapping from an accessible Agor session ID (UUIDv7 or short ID). If provided, gatewayChannelId/threadId are ignored."
|
|
15014
|
+
),
|
|
15015
|
+
gatewayChannelId: mcpOptionalId(
|
|
15016
|
+
"gatewayChannelId",
|
|
15017
|
+
"Gateway channel",
|
|
15018
|
+
"Explicit Slack gateway channel ID (UUIDv7 or short ID). Required when sessionId is omitted."
|
|
15019
|
+
),
|
|
15020
|
+
threadId: mcpOptionalNonEmptyString(
|
|
15021
|
+
"threadId",
|
|
15022
|
+
"Explicit Slack thread ID in Agor gateway format, e.g. C123-171234.000100. Required when sessionId is omitted."
|
|
15023
|
+
),
|
|
15024
|
+
oldestTs: mcpOptionalNonEmptyString(
|
|
15025
|
+
"oldestTs",
|
|
15026
|
+
"Optional Slack oldest timestamp bound, e.g. 171234.000100."
|
|
15027
|
+
),
|
|
15028
|
+
latestTs: mcpOptionalNonEmptyString(
|
|
15029
|
+
"latestTs",
|
|
15030
|
+
"Optional Slack latest timestamp bound, e.g. 171235.000200."
|
|
15031
|
+
),
|
|
15032
|
+
inclusive: external_exports.boolean().optional().describe("Whether Slack should include messages exactly at oldest/latest bounds."),
|
|
15033
|
+
limit: mcpLimit(50).describe("Maximum Slack messages to request (default: 50, max: 200)."),
|
|
15034
|
+
includeBotMessages: external_exports.boolean().optional().describe("Include Slack bot messages in the returned history. Defaults to false."),
|
|
15035
|
+
format: external_exports.enum(["messages", "markdown"]).optional().describe(
|
|
15036
|
+
'Response body format. "messages" returns normalized JSON; "markdown" returns a transcript string.'
|
|
15037
|
+
)
|
|
15038
|
+
}).superRefine((value, issue2) => {
|
|
15039
|
+
if (value.sessionId) return;
|
|
15040
|
+
if (!value.gatewayChannelId) {
|
|
15041
|
+
issue2.addIssue({
|
|
15042
|
+
code: "custom",
|
|
15043
|
+
path: ["gatewayChannelId"],
|
|
15044
|
+
message: "gatewayChannelId is required when sessionId is omitted."
|
|
15045
|
+
});
|
|
15046
|
+
}
|
|
15047
|
+
if (!value.threadId) {
|
|
15048
|
+
issue2.addIssue({
|
|
15049
|
+
code: "custom",
|
|
15050
|
+
path: ["threadId"],
|
|
15051
|
+
message: "threadId is required when sessionId is omitted."
|
|
15052
|
+
});
|
|
15053
|
+
}
|
|
15054
|
+
});
|
|
15055
|
+
var gatewayChannelUpdateSchema = external_exports.strictObject({
|
|
15056
|
+
gatewayChannelId: mcpRequiredId(
|
|
15057
|
+
"gatewayChannelId",
|
|
15058
|
+
"Gateway channel",
|
|
15059
|
+
"Gateway channel ID (UUIDv7 or short ID)"
|
|
15060
|
+
),
|
|
15061
|
+
name: mcpOptionalNonEmptyString("name", "New human-readable channel name."),
|
|
15062
|
+
channelType: external_exports.enum(["slack", "github", "teams", "discord", "whatsapp", "telegram"]).optional().describe("Gateway platform type. Changing this should include compatible config."),
|
|
15063
|
+
targetBranchId: mcpOptionalId("targetBranchId", "Branch", "New target branch/worktree ID."),
|
|
15064
|
+
agorUserId: mcpOptionalId("agorUserId", "User", "New run-as Agor user ID."),
|
|
15065
|
+
enabled: external_exports.boolean().optional().describe("Enable/disable the channel."),
|
|
15066
|
+
config: configSchema.optional().describe(
|
|
15067
|
+
`Partial platform config to merge. Send '${GATEWAY_REDACTED_SENTINEL}' or omit sensitive fields to preserve existing secrets; send a new value to rotate.`
|
|
15068
|
+
),
|
|
15069
|
+
agenticConfig: agenticConfigSchema.nullable().optional().describe("Replace agent/session defaults. null clears the gateway agentic config.")
|
|
15070
|
+
});
|
|
15071
|
+
|
|
14813
15072
|
// src/mcp/tools/knowledge.ts
|
|
14814
15073
|
import { createHash, randomUUID } from "crypto";
|
|
14815
15074
|
import fs2 from "fs";
|
|
14816
15075
|
import { mkdir, readFile, writeFile } from "fs/promises";
|
|
14817
15076
|
import path3 from "path";
|
|
14818
|
-
import { BranchRepository as
|
|
15077
|
+
import { BranchRepository as BranchRepository5, KnowledgeNamespaceRepository as KnowledgeNamespaceRepository2 } from "@agor/core/db";
|
|
14819
15078
|
import { NotFound as NotFound2 } from "@agor/core/feathers";
|
|
14820
15079
|
import {
|
|
14821
15080
|
buildKnowledgeDocumentUri,
|
|
@@ -14841,14 +15100,14 @@ import { unified } from "unified";
|
|
|
14841
15100
|
|
|
14842
15101
|
// src/services/assistant-knowledge.ts
|
|
14843
15102
|
import {
|
|
14844
|
-
BranchRepository as
|
|
15103
|
+
BranchRepository as BranchRepository4,
|
|
14845
15104
|
KnowledgeNamespaceRepository,
|
|
14846
15105
|
shortId as shortId4
|
|
14847
15106
|
} from "@agor/core/db";
|
|
14848
15107
|
import { getAssistantConfig as getAssistantConfig2, isAssistant as isAssistant2 } from "@agor/core/types";
|
|
14849
15108
|
|
|
14850
15109
|
// src/services/knowledge-access.ts
|
|
14851
|
-
import { hasMinimumRole as
|
|
15110
|
+
import { hasMinimumRole as hasMinimumRole3, ROLES as ROLES3 } from "@agor/core/types";
|
|
14852
15111
|
|
|
14853
15112
|
// src/utils/branch-workspace-path.ts
|
|
14854
15113
|
import fs from "fs";
|
|
@@ -14990,6 +15249,261 @@ var KnowledgeNodeRefSchema = external_exports.object(
|
|
|
14990
15249
|
"Reference to an existing or creatable knowledge graph node. Prefer nodeId or uri; use typed IDs for links to Agor core objects."
|
|
14991
15250
|
);
|
|
14992
15251
|
|
|
15252
|
+
// src/mcp/tools/mcp-servers.ts
|
|
15253
|
+
import {
|
|
15254
|
+
isReservedMCPCustomHeaderName,
|
|
15255
|
+
isValidMCPHeaderName
|
|
15256
|
+
} from "@agor/core/tools/mcp/http-headers";
|
|
15257
|
+
var mcpNameSchema = external_exports.string({
|
|
15258
|
+
error: 'name is required and must be a string. Example: { "name": "context7" }'
|
|
15259
|
+
}).regex(
|
|
15260
|
+
/^[a-z][a-z0-9_-]{0,63}$/,
|
|
15261
|
+
'name must start with a lowercase letter and contain only lowercase letters, digits, "_" or "-" (max 64 chars).'
|
|
15262
|
+
).describe('Stable internal ID, e.g. "context7", "github", "datadog". Cannot be changed later.');
|
|
15263
|
+
var stringMapSchema = external_exports.record(external_exports.string(), external_exports.string()).describe(
|
|
15264
|
+
"JSON object of string keys/values. Values may use templates like {{ user.env.API_TOKEN }}."
|
|
15265
|
+
);
|
|
15266
|
+
var mcpAuthInputSchema = external_exports.strictObject({
|
|
15267
|
+
type: external_exports.enum(["none", "bearer", "jwt", "oauth"]).describe(
|
|
15268
|
+
"Authentication mode. OAuth tip: start with { type: 'oauth' } plus the MCP server URL; only add endpoint/client fields if discovery/DCR fails."
|
|
15269
|
+
),
|
|
15270
|
+
token: mcpOptionalString(
|
|
15271
|
+
"auth.token",
|
|
15272
|
+
"Bearer token. Prefer {{ user.env.MCP_TOKEN }} templates; raw secrets will be stored redacted but are still visible in this MCP call transcript."
|
|
15273
|
+
),
|
|
15274
|
+
api_url: mcpOptionalString("auth.api_url", "JWT auth API URL."),
|
|
15275
|
+
api_token: mcpOptionalString(
|
|
15276
|
+
"auth.api_token",
|
|
15277
|
+
"JWT API token. Prefer {{ user.env.JWT_TOKEN }} templates."
|
|
15278
|
+
),
|
|
15279
|
+
api_secret: mcpOptionalString(
|
|
15280
|
+
"auth.api_secret",
|
|
15281
|
+
"JWT API secret. Prefer {{ user.env.JWT_SECRET }} templates."
|
|
15282
|
+
),
|
|
15283
|
+
oauth_authorization_url: mcpOptionalString(
|
|
15284
|
+
"auth.oauth_authorization_url",
|
|
15285
|
+
"Optional OAuth authorization endpoint override. Leave blank for discovery."
|
|
15286
|
+
),
|
|
15287
|
+
oauth_token_url: mcpOptionalString(
|
|
15288
|
+
"auth.oauth_token_url",
|
|
15289
|
+
"Optional OAuth token endpoint override. Leave blank for discovery."
|
|
15290
|
+
),
|
|
15291
|
+
oauth_client_id: mcpOptionalString(
|
|
15292
|
+
"auth.oauth_client_id",
|
|
15293
|
+
"Optional OAuth client ID for providers that require a pre-registered app. Leave blank for Dynamic Client Registration where supported."
|
|
15294
|
+
),
|
|
15295
|
+
oauth_client_secret: mcpOptionalString(
|
|
15296
|
+
"auth.oauth_client_secret",
|
|
15297
|
+
"Optional OAuth client secret. Prefer {{ user.env.OAUTH_CLIENT_SECRET }} templates; raw secrets are not returned by this tool."
|
|
15298
|
+
),
|
|
15299
|
+
oauth_scope: mcpOptionalString("auth.oauth_scope", "Optional OAuth scopes, space-separated."),
|
|
15300
|
+
oauth_grant_type: external_exports.enum(["client_credentials", "authorization_code"]).optional().describe(
|
|
15301
|
+
"OAuth grant type hint. Defaults to 'client_credentials' for legacy token testing; browser OAuth uses authorization code with PKCE."
|
|
15302
|
+
),
|
|
15303
|
+
oauth_mode: external_exports.enum(["per_user", "shared"]).optional().describe("OAuth token ownership. Defaults to 'per_user' (recommended)."),
|
|
15304
|
+
insecure: external_exports.boolean().optional().describe("Allow insecure auth behavior if supported.")
|
|
15305
|
+
}).superRefine((auth, issue2) => {
|
|
15306
|
+
if (auth.type === "bearer" && !auth.token) {
|
|
15307
|
+
issue2.addIssue({
|
|
15308
|
+
code: "custom",
|
|
15309
|
+
path: ["token"],
|
|
15310
|
+
message: "auth.token is required when auth.type is 'bearer'."
|
|
15311
|
+
});
|
|
15312
|
+
}
|
|
15313
|
+
const fieldsByType = {
|
|
15314
|
+
none: [],
|
|
15315
|
+
bearer: ["token"],
|
|
15316
|
+
jwt: ["api_url", "api_token", "api_secret"],
|
|
15317
|
+
oauth: [
|
|
15318
|
+
"oauth_authorization_url",
|
|
15319
|
+
"oauth_token_url",
|
|
15320
|
+
"oauth_client_id",
|
|
15321
|
+
"oauth_client_secret",
|
|
15322
|
+
"oauth_scope",
|
|
15323
|
+
"oauth_grant_type",
|
|
15324
|
+
"oauth_mode",
|
|
15325
|
+
"insecure"
|
|
15326
|
+
]
|
|
15327
|
+
};
|
|
15328
|
+
const allowed = /* @__PURE__ */ new Set(["type", ...fieldsByType[auth.type]]);
|
|
15329
|
+
for (const key of Object.keys(auth)) {
|
|
15330
|
+
if (!allowed.has(key)) {
|
|
15331
|
+
issue2.addIssue({
|
|
15332
|
+
code: "custom",
|
|
15333
|
+
path: [key],
|
|
15334
|
+
message: `auth.${key} does not apply when auth.type is '${auth.type}'.`
|
|
15335
|
+
});
|
|
15336
|
+
}
|
|
15337
|
+
}
|
|
15338
|
+
if (auth.type === "jwt") {
|
|
15339
|
+
for (const field of ["api_url", "api_token", "api_secret"]) {
|
|
15340
|
+
if (!auth[field]) {
|
|
15341
|
+
issue2.addIssue({
|
|
15342
|
+
code: "custom",
|
|
15343
|
+
path: [field],
|
|
15344
|
+
message: `auth.${field} is required when auth.type is 'jwt'.`
|
|
15345
|
+
});
|
|
15346
|
+
}
|
|
15347
|
+
}
|
|
15348
|
+
}
|
|
15349
|
+
}).describe(
|
|
15350
|
+
"Auth config. Common OAuth path: { type: 'oauth' } plus url; leave OAuth URLs/client fields blank first so metadata discovery/DCR can do the work."
|
|
15351
|
+
);
|
|
15352
|
+
var toolPermissionsSchema = external_exports.record(external_exports.string(), external_exports.enum(["ask", "allow", "deny"])).describe("Optional per-tool permissions, e.g. { 'list_files': 'allow', 'write_file': 'ask' }.");
|
|
15353
|
+
var mcpServerCreateSchema = external_exports.strictObject({
|
|
15354
|
+
name: mcpNameSchema,
|
|
15355
|
+
displayName: mcpOptionalNonEmptyString(
|
|
15356
|
+
"displayName",
|
|
15357
|
+
'Human-friendly display name, e.g. "Context7 MCP".'
|
|
15358
|
+
),
|
|
15359
|
+
description: mcpOptionalString("description", "Optional description."),
|
|
15360
|
+
transport: external_exports.enum(["stdio", "http", "sse"]).optional().describe(
|
|
15361
|
+
"Transport. Defaults to 'http' when url is provided, otherwise 'stdio'. Most remote OAuth MCP servers use 'http'."
|
|
15362
|
+
),
|
|
15363
|
+
url: mcpOptionalString(
|
|
15364
|
+
"url",
|
|
15365
|
+
"Remote MCP server URL for http/sse transports. Supports templates like {{ user.env.MCP_URL }}."
|
|
15366
|
+
),
|
|
15367
|
+
command: mcpOptionalString("command", 'Local command for stdio transport, e.g. "npx".'),
|
|
15368
|
+
args: external_exports.array(external_exports.string()).optional().describe(
|
|
15369
|
+
'Arguments for stdio command, e.g. ["-y", "@modelcontextprotocol/server-filesystem"].'
|
|
15370
|
+
),
|
|
15371
|
+
headers: stringMapSchema.optional().describe(
|
|
15372
|
+
"Custom HTTP headers for http/sse transports. Do not include Authorization; use auth instead. Prefer templates for secret values."
|
|
15373
|
+
),
|
|
15374
|
+
env: stringMapSchema.optional().describe(
|
|
15375
|
+
"Environment variables for the MCP process/config. Prefer {{ user.env.VAR }} templates for secrets."
|
|
15376
|
+
),
|
|
15377
|
+
auth: mcpAuthInputSchema.optional(),
|
|
15378
|
+
scope: external_exports.enum(["global", "session"]).optional().describe(
|
|
15379
|
+
"Scope. Defaults to 'global' so it appears in agor_mcp_servers_list. 'session' is only for explicit session attachment workflows."
|
|
15380
|
+
),
|
|
15381
|
+
enabled: external_exports.boolean().optional().describe("Whether the server is enabled. Defaults to true."),
|
|
15382
|
+
attachToCurrentSession: external_exports.boolean().optional().describe(
|
|
15383
|
+
`If true, also add a session-specific link after creating. Mostly useful for scope:"session" servers; global enabled servers are already in each session's effective MCP set.`
|
|
15384
|
+
),
|
|
15385
|
+
attachToSessionId: mcpOptionalId(
|
|
15386
|
+
"attachToSessionId",
|
|
15387
|
+
"Session",
|
|
15388
|
+
"Optional session ID (UUIDv7 or short ID) to attach after creating. Overrides attachToCurrentSession."
|
|
15389
|
+
)
|
|
15390
|
+
}).superRefine((value, issue2) => validateMcpServerConfig(value, issue2, false));
|
|
15391
|
+
var mcpServerUpdateSchema = external_exports.strictObject({
|
|
15392
|
+
mcpServerId: mcpRequiredId(
|
|
15393
|
+
"mcpServerId",
|
|
15394
|
+
"MCP server",
|
|
15395
|
+
"MCP server ID to update (UUIDv7 or short ID)"
|
|
15396
|
+
),
|
|
15397
|
+
displayName: mcpOptionalNonEmptyString("displayName", "New human-friendly display name."),
|
|
15398
|
+
description: mcpOptionalString(
|
|
15399
|
+
"description",
|
|
15400
|
+
"New description. Pass an empty string to clear."
|
|
15401
|
+
),
|
|
15402
|
+
transport: external_exports.enum(["stdio", "http", "sse"]).optional().describe("Transport to set."),
|
|
15403
|
+
url: mcpOptionalString("url", "Remote MCP URL for http/sse transports."),
|
|
15404
|
+
command: mcpOptionalString("command", "Local command for stdio transport."),
|
|
15405
|
+
args: external_exports.array(external_exports.string()).optional().describe("Arguments for stdio command."),
|
|
15406
|
+
headers: stringMapSchema.optional().describe(
|
|
15407
|
+
"Replace custom HTTP headers. Redacted existing header values may be passed back unchanged by the UI; this tool should normally pass real template values or omit headers."
|
|
15408
|
+
),
|
|
15409
|
+
env: stringMapSchema.optional().describe("Replace environment variables."),
|
|
15410
|
+
auth: mcpAuthInputSchema.optional().describe(
|
|
15411
|
+
"Replace auth config. Existing redacted secrets are preserved if their redacted placeholders are passed back; prefer omitting auth unless changing it. Use { type: 'none' } to clear auth."
|
|
15412
|
+
),
|
|
15413
|
+
scope: external_exports.enum(["global", "session"]).optional().describe("Scope to set."),
|
|
15414
|
+
enabled: external_exports.boolean().optional().describe("Enabled flag."),
|
|
15415
|
+
toolPermissions: toolPermissionsSchema.optional()
|
|
15416
|
+
}).superRefine((value, issue2) => validateMcpServerConfig(value, issue2, true));
|
|
15417
|
+
function validateHeaders(headers, issue2) {
|
|
15418
|
+
if (!headers) return;
|
|
15419
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
15420
|
+
const name = key.trim();
|
|
15421
|
+
if (!name) {
|
|
15422
|
+
issue2.addIssue({
|
|
15423
|
+
code: "custom",
|
|
15424
|
+
path: ["headers", key],
|
|
15425
|
+
message: "Header names cannot be empty."
|
|
15426
|
+
});
|
|
15427
|
+
} else if (!isValidMCPHeaderName(name)) {
|
|
15428
|
+
issue2.addIssue({
|
|
15429
|
+
code: "custom",
|
|
15430
|
+
path: ["headers", key],
|
|
15431
|
+
message: `Invalid HTTP header name: ${key}`
|
|
15432
|
+
});
|
|
15433
|
+
} else if (isReservedMCPCustomHeaderName(name)) {
|
|
15434
|
+
issue2.addIssue({
|
|
15435
|
+
code: "custom",
|
|
15436
|
+
path: ["headers", key],
|
|
15437
|
+
message: `Header ${name} is reserved; configure Authorization through auth instead.`
|
|
15438
|
+
});
|
|
15439
|
+
}
|
|
15440
|
+
if (typeof value !== "string") {
|
|
15441
|
+
issue2.addIssue({
|
|
15442
|
+
code: "custom",
|
|
15443
|
+
path: ["headers", key],
|
|
15444
|
+
message: "Header values must be strings."
|
|
15445
|
+
});
|
|
15446
|
+
}
|
|
15447
|
+
}
|
|
15448
|
+
}
|
|
15449
|
+
function validateMcpServerConfig(value, issue2, partial2) {
|
|
15450
|
+
const transport = value.transport ?? (value.url ? "http" : "stdio");
|
|
15451
|
+
validateHeaders(value.headers, issue2);
|
|
15452
|
+
if (!partial2 || value.transport !== void 0 || value.url !== void 0 || value.command !== void 0) {
|
|
15453
|
+
if (transport === "stdio") {
|
|
15454
|
+
if (!partial2 && !value.command) {
|
|
15455
|
+
issue2.addIssue({
|
|
15456
|
+
code: "custom",
|
|
15457
|
+
path: ["command"],
|
|
15458
|
+
message: "command is required for stdio transport."
|
|
15459
|
+
});
|
|
15460
|
+
}
|
|
15461
|
+
if (value.url) {
|
|
15462
|
+
issue2.addIssue({
|
|
15463
|
+
code: "custom",
|
|
15464
|
+
path: ["url"],
|
|
15465
|
+
message: "url only applies to http/sse transports, not stdio."
|
|
15466
|
+
});
|
|
15467
|
+
}
|
|
15468
|
+
if (value.headers) {
|
|
15469
|
+
issue2.addIssue({
|
|
15470
|
+
code: "custom",
|
|
15471
|
+
path: ["headers"],
|
|
15472
|
+
message: "headers only apply to http/sse transports, not stdio."
|
|
15473
|
+
});
|
|
15474
|
+
}
|
|
15475
|
+
if (value.auth && value.auth.type !== "none") {
|
|
15476
|
+
issue2.addIssue({
|
|
15477
|
+
code: "custom",
|
|
15478
|
+
path: ["auth", "type"],
|
|
15479
|
+
message: "Authentication config only applies to http/sse transports."
|
|
15480
|
+
});
|
|
15481
|
+
}
|
|
15482
|
+
} else if (!partial2 && !value.url) {
|
|
15483
|
+
issue2.addIssue({
|
|
15484
|
+
code: "custom",
|
|
15485
|
+
path: ["url"],
|
|
15486
|
+
message: `url is required for ${transport} transport.`
|
|
15487
|
+
});
|
|
15488
|
+
} else {
|
|
15489
|
+
if (value.command) {
|
|
15490
|
+
issue2.addIssue({
|
|
15491
|
+
code: "custom",
|
|
15492
|
+
path: ["command"],
|
|
15493
|
+
message: "command only applies to stdio transport, not http/sse."
|
|
15494
|
+
});
|
|
15495
|
+
}
|
|
15496
|
+
if (value.args && value.args.length > 0) {
|
|
15497
|
+
issue2.addIssue({
|
|
15498
|
+
code: "custom",
|
|
15499
|
+
path: ["args"],
|
|
15500
|
+
message: "args only apply to stdio transport, not http/sse."
|
|
15501
|
+
});
|
|
15502
|
+
}
|
|
15503
|
+
}
|
|
15504
|
+
}
|
|
15505
|
+
}
|
|
15506
|
+
|
|
14993
15507
|
// src/mcp/tools/messages.ts
|
|
14994
15508
|
import { isBranchRbacEnabled as isBranchRbacEnabled2 } from "@agor/core/config";
|
|
14995
15509
|
import {
|
|
@@ -14997,16 +15511,18 @@ import {
|
|
|
14997
15511
|
asc,
|
|
14998
15512
|
desc,
|
|
14999
15513
|
eq,
|
|
15000
|
-
|
|
15514
|
+
gte,
|
|
15515
|
+
lte,
|
|
15001
15516
|
messages as messagesTable,
|
|
15002
15517
|
or,
|
|
15003
|
-
SessionRepository as SessionRepository3,
|
|
15004
15518
|
select,
|
|
15005
|
-
sql
|
|
15519
|
+
sql,
|
|
15520
|
+
visibleSessionReferenceAccessExists
|
|
15006
15521
|
} from "@agor/core/db";
|
|
15522
|
+
var MAX_CROSS_SESSION_SEARCH_WINDOW_MS = 31 * 24 * 60 * 60 * 1e3;
|
|
15007
15523
|
|
|
15008
15524
|
// src/mcp/tools/proxies.ts
|
|
15009
|
-
import { getBaseUrl, loadConfig, resolveProxies } from "@agor/core/config";
|
|
15525
|
+
import { getBaseUrl, loadConfig as loadConfig2, resolveProxies } from "@agor/core/config";
|
|
15010
15526
|
|
|
15011
15527
|
// src/mcp/tools/repos.ts
|
|
15012
15528
|
import { extractSlugFromUrl, isValidGitUrl, isValidSlug } from "@agor/core/config";
|
|
@@ -15018,7 +15534,7 @@ var agenticToolConfigSchema = external_exports.object({
|
|
|
15018
15534
|
model_config: external_exports.object({
|
|
15019
15535
|
mode: external_exports.enum(["alias", "exact"]).optional(),
|
|
15020
15536
|
model: mcpOptionalString("model_config.model", "Model name override."),
|
|
15021
|
-
effort: external_exports.enum(["low", "medium", "high", "max"]).optional(),
|
|
15537
|
+
effort: external_exports.enum(["low", "medium", "high", "xhigh", "max"]).optional(),
|
|
15022
15538
|
advisorModel: mcpOptionalString(
|
|
15023
15539
|
"model_config.advisorModel",
|
|
15024
15540
|
"Claude Code advisor model override (e.g. 'opus', 'sonnet', 'fable')."
|
|
@@ -15034,7 +15550,7 @@ var agenticToolConfigSchema = external_exports.object({
|
|
|
15034
15550
|
|
|
15035
15551
|
// src/mcp/tools/sessions.ts
|
|
15036
15552
|
import {
|
|
15037
|
-
BranchRepository as
|
|
15553
|
+
BranchRepository as BranchRepository6,
|
|
15038
15554
|
SessionRelationshipRepository,
|
|
15039
15555
|
shortId as shortId5
|
|
15040
15556
|
} from "@agor/core/db";
|
|
@@ -15057,6 +15573,7 @@ import {
|
|
|
15057
15573
|
} from "@agor/core/types";
|
|
15058
15574
|
init_branch_inspect();
|
|
15059
15575
|
init_executor_read_impersonation();
|
|
15576
|
+
init_spawn_executor();
|
|
15060
15577
|
var modelConfigObjectSchema = external_exports.object({
|
|
15061
15578
|
mode: external_exports.enum(["alias", "exact"]).optional().describe("Model selection mode (default: 'alias')"),
|
|
15062
15579
|
// .min(1): reject empty-string model explicitly so callers don't silently
|
|
@@ -15065,7 +15582,7 @@ var modelConfigObjectSchema = external_exports.object({
|
|
|
15065
15582
|
"modelConfig.model",
|
|
15066
15583
|
"Model identifier (e.g. 'claude-opus-4-6', 'claude-sonnet-4-6')"
|
|
15067
15584
|
),
|
|
15068
|
-
effort: external_exports.enum(["low", "medium", "high", "max"]).optional().describe("Reasoning effort level (default: high)"),
|
|
15585
|
+
effort: external_exports.enum(["low", "medium", "high", "xhigh", "max"]).optional().describe("Reasoning effort level (default: high)"),
|
|
15069
15586
|
advisorModel: mcpOptionalString(
|
|
15070
15587
|
"modelConfig.advisorModel",
|
|
15071
15588
|
"Claude Code advisor model override (e.g. 'opus', 'sonnet', 'fable', or a full model ID)."
|
|
@@ -15086,7 +15603,7 @@ var modelConfigInputSchema = external_exports.union([
|
|
|
15086
15603
|
);
|
|
15087
15604
|
|
|
15088
15605
|
// src/mcp/tools/users.ts
|
|
15089
|
-
import { ROLES as
|
|
15606
|
+
import { ROLES as ROLES4 } from "@agor/core/types";
|
|
15090
15607
|
|
|
15091
15608
|
// src/mcp/server.ts
|
|
15092
15609
|
var DEBUG_MCP_REQUESTS = process.env.AGOR_DEBUG_MCP_REQUESTS === "1" || process.env.DEBUG?.includes("mcp-requests");
|
|
@@ -15156,10 +15673,11 @@ function registerWidgetTools(server, ctx) {
|
|
|
15156
15673
|
async (args) => {
|
|
15157
15674
|
if (!ctx.sessionId) return sessionContextRequiredResult();
|
|
15158
15675
|
const currentSessionId = ctx.sessionId;
|
|
15159
|
-
const
|
|
15676
|
+
const toolParams = normalizeEnvVarsParams(envVarsParamsSchema.parse(args));
|
|
15160
15677
|
const session = await ctx.app.service("sessions").get(currentSessionId, ctx.baseServiceParams);
|
|
15161
15678
|
const sessionCreatorId = session.created_by;
|
|
15162
15679
|
const creator = await ctx.app.service("users").get(sessionCreatorId, ctx.baseServiceParams);
|
|
15680
|
+
const params = toolParams;
|
|
15163
15681
|
const presentEverywhere = allNamesPresentInScope(
|
|
15164
15682
|
creator.env_vars,
|
|
15165
15683
|
params.names,
|