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
|
@@ -65,7 +65,7 @@ var init_executor_read_impersonation = __esm({
|
|
|
65
65
|
});
|
|
66
66
|
|
|
67
67
|
// src/mcp/tools/users.ts
|
|
68
|
-
import { ROLES as
|
|
68
|
+
import { ROLES as ROLES4 } from "@agor/core/types";
|
|
69
69
|
|
|
70
70
|
// ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.js
|
|
71
71
|
var external_exports = {};
|
|
@@ -14595,6 +14595,11 @@ function mcpOptionalString(fieldName, description) {
|
|
|
14595
14595
|
error: `${fieldName} must be a string when provided.`
|
|
14596
14596
|
}).optional().describe(description);
|
|
14597
14597
|
}
|
|
14598
|
+
function mcpOptionalNonEmptyString(fieldName, description) {
|
|
14599
|
+
return external_exports.string({
|
|
14600
|
+
error: `${fieldName} must be a string when provided.`
|
|
14601
|
+
}).min(1, `${fieldName} cannot be empty when provided.`).optional().describe(description);
|
|
14602
|
+
}
|
|
14598
14603
|
function mcpOptionalNonBlankString(fieldName, description) {
|
|
14599
14604
|
return external_exports.string({
|
|
14600
14605
|
error: `${fieldName} must be a string when provided.`
|
|
@@ -14615,6 +14620,14 @@ function mcpRequiredPositiveInt(fieldName, description) {
|
|
|
14615
14620
|
error: `${fieldName} is required and must be a positive integer.`
|
|
14616
14621
|
}).int(`${fieldName} must be an integer.`).positive(`${fieldName} must be greater than 0.`).describe(description);
|
|
14617
14622
|
}
|
|
14623
|
+
function mcpOptionalPositiveInt(fieldName, description) {
|
|
14624
|
+
return external_exports.number({
|
|
14625
|
+
error: `${fieldName} must be a positive integer when provided.`
|
|
14626
|
+
}).int(`${fieldName} must be an integer.`).positive(`${fieldName} must be greater than 0.`).optional().describe(description);
|
|
14627
|
+
}
|
|
14628
|
+
function mcpLimit(defaultValue = 50) {
|
|
14629
|
+
return mcpOptionalPositiveInt("limit", `Maximum number of results (default: ${defaultValue})`);
|
|
14630
|
+
}
|
|
14618
14631
|
|
|
14619
14632
|
// src/mcp/server.ts
|
|
14620
14633
|
import { randomUUID as randomUUID2 } from "crypto";
|
|
@@ -14627,7 +14640,11 @@ import { ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
|
|
|
14627
14640
|
|
|
14628
14641
|
// src/mcp/tokens.ts
|
|
14629
14642
|
import { MCP_TOKEN } from "@agor/core/config";
|
|
14630
|
-
import {
|
|
14643
|
+
import {
|
|
14644
|
+
generateId,
|
|
14645
|
+
SessionRepository,
|
|
14646
|
+
shortId
|
|
14647
|
+
} from "@agor/core/db";
|
|
14631
14648
|
import {
|
|
14632
14649
|
MCP_TOKEN_AUDIENCE,
|
|
14633
14650
|
MCP_TOKEN_ISSUER
|
|
@@ -14648,6 +14665,7 @@ var DOMAIN_DESCRIPTIONS = {
|
|
|
14648
14665
|
users: "User accounts, profiles, preferences, and administration",
|
|
14649
14666
|
analytics: "Usage and cost tracking leaderboard",
|
|
14650
14667
|
"mcp-servers": "External MCP server configuration and OAuth management",
|
|
14668
|
+
gateway: "Gateway channels for Slack, GitHub, Teams, and other message integrations",
|
|
14651
14669
|
proxies: "Configured HTTP proxies for third-party APIs (Shortcut, Linear, Jira, etc.)",
|
|
14652
14670
|
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",
|
|
14653
14671
|
knowledge: "DB-backed markdown knowledge documents, version history, search, and graph links",
|
|
@@ -14715,7 +14733,7 @@ var AgorRuntimeSchema = external_exports.object({
|
|
|
14715
14733
|
|
|
14716
14734
|
// src/mcp/tools/branches.ts
|
|
14717
14735
|
import { existsSync } from "fs";
|
|
14718
|
-
import { isBranchRbacEnabled } from "@agor/core/config";
|
|
14736
|
+
import { isBranchRbacEnabled, loadConfig } from "@agor/core/config";
|
|
14719
14737
|
import { BranchRepository as BranchRepository2, shortId as shortId3 } from "@agor/core/db";
|
|
14720
14738
|
import { BRANCH_PERMISSION_LEVELS as BRANCH_PERMISSION_LEVELS2, getAssistantConfig, isAssistant } from "@agor/core/types";
|
|
14721
14739
|
import { computeZoneRelativePosition } from "@agor/core/utils/board-placement";
|
|
@@ -14724,12 +14742,186 @@ import { normalizeOptionalHttpUrl } from "@agor/core/utils/url";
|
|
|
14724
14742
|
// src/mcp/tools/cards.ts
|
|
14725
14743
|
import { BoardObjectRepository } from "@agor/core/db";
|
|
14726
14744
|
|
|
14745
|
+
// src/mcp/tools/gateway-channels.ts
|
|
14746
|
+
import {
|
|
14747
|
+
BranchRepository as BranchRepository3,
|
|
14748
|
+
GatewayChannelRepository,
|
|
14749
|
+
SessionRepository as SessionRepository2,
|
|
14750
|
+
ThreadSessionMapRepository
|
|
14751
|
+
} from "@agor/core/db";
|
|
14752
|
+
import {
|
|
14753
|
+
getConnector
|
|
14754
|
+
} from "@agor/core/gateway";
|
|
14755
|
+
import {
|
|
14756
|
+
GATEWAY_REDACTED_SENTINEL,
|
|
14757
|
+
GATEWAY_SENSITIVE_CONFIG_FIELDS,
|
|
14758
|
+
hasMinimumRole as hasMinimumRole2,
|
|
14759
|
+
ROLES as ROLES2
|
|
14760
|
+
} from "@agor/core/types";
|
|
14761
|
+
var configSchema = external_exports.record(external_exports.string(), external_exports.unknown()).describe(
|
|
14762
|
+
"Platform-specific gateway configuration. Secrets are stored encrypted and returned redacted. Prefer env/template references for shared credentials where the connector supports them."
|
|
14763
|
+
);
|
|
14764
|
+
var outboundTargetSchema = external_exports.string().trim().regex(
|
|
14765
|
+
/^(channel:[^:\s]+|channel_name:[^\s]+|#[^\s]+|(?:email:|user_email:)?[^@\s]+@[^@\s]+\.[^@\s]+)$/
|
|
14766
|
+
).describe(
|
|
14767
|
+
"Slack outbound target for v0: channel:C123, #project-updates, channel_name:project-updates, or user@example.com. Thread targets are intentionally not supported."
|
|
14768
|
+
);
|
|
14769
|
+
var envVarSchema = external_exports.strictObject({
|
|
14770
|
+
key: mcpRequiredString("agenticConfig.envVars[].key", "Environment variable name"),
|
|
14771
|
+
value: mcpRequiredString(
|
|
14772
|
+
"agenticConfig.envVars[].value",
|
|
14773
|
+
`Environment variable value. Prefer references/templates over raw secrets. Existing redacted values may be passed as '${GATEWAY_REDACTED_SENTINEL}' on update to preserve them.`
|
|
14774
|
+
),
|
|
14775
|
+
forceOverride: external_exports.boolean().optional().describe("When true, channel value wins over user env vars. Defaults to false.")
|
|
14776
|
+
});
|
|
14777
|
+
var agenticConfigSchema = external_exports.strictObject({
|
|
14778
|
+
agent: external_exports.enum(["claude-code", "claude-code-cli", "codex", "gemini", "opencode", "copilot", "cursor"]).describe("Agent used for sessions created from this gateway channel."),
|
|
14779
|
+
permissionMode: external_exports.enum([
|
|
14780
|
+
"default",
|
|
14781
|
+
"acceptEdits",
|
|
14782
|
+
"bypassPermissions",
|
|
14783
|
+
"plan",
|
|
14784
|
+
"dontAsk",
|
|
14785
|
+
"autoEdit",
|
|
14786
|
+
"yolo",
|
|
14787
|
+
"ask",
|
|
14788
|
+
"auto",
|
|
14789
|
+
"on-failure",
|
|
14790
|
+
"allow-all"
|
|
14791
|
+
]).optional().describe("Permission mode for spawned sessions."),
|
|
14792
|
+
modelConfig: external_exports.record(external_exports.string(), external_exports.unknown()).optional().describe("Agent model configuration."),
|
|
14793
|
+
mcpServerIds: external_exports.array(external_exports.string().min(1)).optional().describe("MCP server IDs to attach to gateway-created sessions."),
|
|
14794
|
+
codexSandboxMode: external_exports.enum(["read-only", "workspace-write", "danger-full-access"]).optional().describe("Codex sandbox mode for Codex gateway sessions."),
|
|
14795
|
+
codexApprovalPolicy: external_exports.enum(["untrusted", "on-failure", "on-request", "never"]).optional().describe("Codex approval policy for Codex gateway sessions."),
|
|
14796
|
+
codexNetworkAccess: external_exports.boolean().optional().describe("Allow Codex network access."),
|
|
14797
|
+
envVars: external_exports.array(envVarSchema).optional().describe("Gateway-level env vars. Values are redacted in responses.")
|
|
14798
|
+
}).describe("Agent/session defaults for conversations created through this gateway channel.");
|
|
14799
|
+
var gatewayChannelCreateSchema = external_exports.strictObject({
|
|
14800
|
+
name: mcpRequiredString("name", 'Human-readable channel name, e.g. "Engineering Slack".'),
|
|
14801
|
+
channelType: external_exports.enum(["slack", "github", "teams", "discord", "whatsapp", "telegram"]).default("slack").describe("Gateway platform type. Current active connectors are slack, github, and teams."),
|
|
14802
|
+
targetBranchId: mcpRequiredId(
|
|
14803
|
+
"targetBranchId",
|
|
14804
|
+
"Branch",
|
|
14805
|
+
"Branch/worktree ID that this gateway channel prompts."
|
|
14806
|
+
),
|
|
14807
|
+
agorUserId: mcpOptionalId(
|
|
14808
|
+
"agorUserId",
|
|
14809
|
+
"User",
|
|
14810
|
+
"Agor user ID whose identity is used when platform-user alignment is disabled."
|
|
14811
|
+
),
|
|
14812
|
+
enabled: external_exports.boolean().optional().describe("Whether the channel is active. Defaults to true."),
|
|
14813
|
+
config: configSchema,
|
|
14814
|
+
agenticConfig: agenticConfigSchema.optional()
|
|
14815
|
+
}).superRefine((value, issue2) => {
|
|
14816
|
+
const config2 = value.config ?? {};
|
|
14817
|
+
if (value.channelType === "slack") {
|
|
14818
|
+
if (!config2.bot_token) {
|
|
14819
|
+
issue2.addIssue({
|
|
14820
|
+
code: "custom",
|
|
14821
|
+
path: ["config", "bot_token"],
|
|
14822
|
+
message: "config.bot_token is required for Slack. Prefer a bot token stored outside the transcript when possible."
|
|
14823
|
+
});
|
|
14824
|
+
}
|
|
14825
|
+
if (config2.connection_mode === "socket" && !config2.app_token) {
|
|
14826
|
+
issue2.addIssue({
|
|
14827
|
+
code: "custom",
|
|
14828
|
+
path: ["config", "app_token"],
|
|
14829
|
+
message: "config.app_token is required for Slack Socket Mode."
|
|
14830
|
+
});
|
|
14831
|
+
}
|
|
14832
|
+
}
|
|
14833
|
+
if (value.channelType === "github") {
|
|
14834
|
+
for (const field of ["app_id", "private_key", "installation_id", "watch_repos"]) {
|
|
14835
|
+
if (!config2[field]) {
|
|
14836
|
+
issue2.addIssue({
|
|
14837
|
+
code: "custom",
|
|
14838
|
+
path: ["config", field],
|
|
14839
|
+
message: `config.${field} is required for GitHub gateway channels.`
|
|
14840
|
+
});
|
|
14841
|
+
}
|
|
14842
|
+
}
|
|
14843
|
+
}
|
|
14844
|
+
if (value.channelType === "teams") {
|
|
14845
|
+
for (const field of ["app_id", "app_password"]) {
|
|
14846
|
+
if (!config2[field]) {
|
|
14847
|
+
issue2.addIssue({
|
|
14848
|
+
code: "custom",
|
|
14849
|
+
path: ["config", field],
|
|
14850
|
+
message: `config.${field} is required for Teams gateway channels.`
|
|
14851
|
+
});
|
|
14852
|
+
}
|
|
14853
|
+
}
|
|
14854
|
+
}
|
|
14855
|
+
});
|
|
14856
|
+
var slackThreadHistorySchema = external_exports.strictObject({
|
|
14857
|
+
sessionId: mcpOptionalId(
|
|
14858
|
+
"sessionId",
|
|
14859
|
+
"Session",
|
|
14860
|
+
"Preferred: resolve the Slack thread mapping from an accessible Agor session ID (UUIDv7 or short ID). If provided, gatewayChannelId/threadId are ignored."
|
|
14861
|
+
),
|
|
14862
|
+
gatewayChannelId: mcpOptionalId(
|
|
14863
|
+
"gatewayChannelId",
|
|
14864
|
+
"Gateway channel",
|
|
14865
|
+
"Explicit Slack gateway channel ID (UUIDv7 or short ID). Required when sessionId is omitted."
|
|
14866
|
+
),
|
|
14867
|
+
threadId: mcpOptionalNonEmptyString(
|
|
14868
|
+
"threadId",
|
|
14869
|
+
"Explicit Slack thread ID in Agor gateway format, e.g. C123-171234.000100. Required when sessionId is omitted."
|
|
14870
|
+
),
|
|
14871
|
+
oldestTs: mcpOptionalNonEmptyString(
|
|
14872
|
+
"oldestTs",
|
|
14873
|
+
"Optional Slack oldest timestamp bound, e.g. 171234.000100."
|
|
14874
|
+
),
|
|
14875
|
+
latestTs: mcpOptionalNonEmptyString(
|
|
14876
|
+
"latestTs",
|
|
14877
|
+
"Optional Slack latest timestamp bound, e.g. 171235.000200."
|
|
14878
|
+
),
|
|
14879
|
+
inclusive: external_exports.boolean().optional().describe("Whether Slack should include messages exactly at oldest/latest bounds."),
|
|
14880
|
+
limit: mcpLimit(50).describe("Maximum Slack messages to request (default: 50, max: 200)."),
|
|
14881
|
+
includeBotMessages: external_exports.boolean().optional().describe("Include Slack bot messages in the returned history. Defaults to false."),
|
|
14882
|
+
format: external_exports.enum(["messages", "markdown"]).optional().describe(
|
|
14883
|
+
'Response body format. "messages" returns normalized JSON; "markdown" returns a transcript string.'
|
|
14884
|
+
)
|
|
14885
|
+
}).superRefine((value, issue2) => {
|
|
14886
|
+
if (value.sessionId) return;
|
|
14887
|
+
if (!value.gatewayChannelId) {
|
|
14888
|
+
issue2.addIssue({
|
|
14889
|
+
code: "custom",
|
|
14890
|
+
path: ["gatewayChannelId"],
|
|
14891
|
+
message: "gatewayChannelId is required when sessionId is omitted."
|
|
14892
|
+
});
|
|
14893
|
+
}
|
|
14894
|
+
if (!value.threadId) {
|
|
14895
|
+
issue2.addIssue({
|
|
14896
|
+
code: "custom",
|
|
14897
|
+
path: ["threadId"],
|
|
14898
|
+
message: "threadId is required when sessionId is omitted."
|
|
14899
|
+
});
|
|
14900
|
+
}
|
|
14901
|
+
});
|
|
14902
|
+
var gatewayChannelUpdateSchema = external_exports.strictObject({
|
|
14903
|
+
gatewayChannelId: mcpRequiredId(
|
|
14904
|
+
"gatewayChannelId",
|
|
14905
|
+
"Gateway channel",
|
|
14906
|
+
"Gateway channel ID (UUIDv7 or short ID)"
|
|
14907
|
+
),
|
|
14908
|
+
name: mcpOptionalNonEmptyString("name", "New human-readable channel name."),
|
|
14909
|
+
channelType: external_exports.enum(["slack", "github", "teams", "discord", "whatsapp", "telegram"]).optional().describe("Gateway platform type. Changing this should include compatible config."),
|
|
14910
|
+
targetBranchId: mcpOptionalId("targetBranchId", "Branch", "New target branch/worktree ID."),
|
|
14911
|
+
agorUserId: mcpOptionalId("agorUserId", "User", "New run-as Agor user ID."),
|
|
14912
|
+
enabled: external_exports.boolean().optional().describe("Enable/disable the channel."),
|
|
14913
|
+
config: configSchema.optional().describe(
|
|
14914
|
+
`Partial platform config to merge. Send '${GATEWAY_REDACTED_SENTINEL}' or omit sensitive fields to preserve existing secrets; send a new value to rotate.`
|
|
14915
|
+
),
|
|
14916
|
+
agenticConfig: agenticConfigSchema.nullable().optional().describe("Replace agent/session defaults. null clears the gateway agentic config.")
|
|
14917
|
+
});
|
|
14918
|
+
|
|
14727
14919
|
// src/mcp/tools/knowledge.ts
|
|
14728
14920
|
import { createHash, randomUUID } from "crypto";
|
|
14729
14921
|
import fs2 from "fs";
|
|
14730
14922
|
import { mkdir, readFile, writeFile } from "fs/promises";
|
|
14731
14923
|
import path3 from "path";
|
|
14732
|
-
import { BranchRepository as
|
|
14924
|
+
import { BranchRepository as BranchRepository5, KnowledgeNamespaceRepository as KnowledgeNamespaceRepository2 } from "@agor/core/db";
|
|
14733
14925
|
import { NotFound as NotFound2 } from "@agor/core/feathers";
|
|
14734
14926
|
import {
|
|
14735
14927
|
buildKnowledgeDocumentUri,
|
|
@@ -14755,14 +14947,14 @@ import { unified } from "unified";
|
|
|
14755
14947
|
|
|
14756
14948
|
// src/services/assistant-knowledge.ts
|
|
14757
14949
|
import {
|
|
14758
|
-
BranchRepository as
|
|
14950
|
+
BranchRepository as BranchRepository4,
|
|
14759
14951
|
KnowledgeNamespaceRepository,
|
|
14760
14952
|
shortId as shortId4
|
|
14761
14953
|
} from "@agor/core/db";
|
|
14762
14954
|
import { getAssistantConfig as getAssistantConfig2, isAssistant as isAssistant2 } from "@agor/core/types";
|
|
14763
14955
|
|
|
14764
14956
|
// src/services/knowledge-access.ts
|
|
14765
|
-
import { hasMinimumRole as
|
|
14957
|
+
import { hasMinimumRole as hasMinimumRole3, ROLES as ROLES3 } from "@agor/core/types";
|
|
14766
14958
|
|
|
14767
14959
|
// src/utils/branch-workspace-path.ts
|
|
14768
14960
|
import fs from "fs";
|
|
@@ -14904,6 +15096,261 @@ var KnowledgeNodeRefSchema = external_exports.object(
|
|
|
14904
15096
|
"Reference to an existing or creatable knowledge graph node. Prefer nodeId or uri; use typed IDs for links to Agor core objects."
|
|
14905
15097
|
);
|
|
14906
15098
|
|
|
15099
|
+
// src/mcp/tools/mcp-servers.ts
|
|
15100
|
+
import {
|
|
15101
|
+
isReservedMCPCustomHeaderName,
|
|
15102
|
+
isValidMCPHeaderName
|
|
15103
|
+
} from "@agor/core/tools/mcp/http-headers";
|
|
15104
|
+
var mcpNameSchema = external_exports.string({
|
|
15105
|
+
error: 'name is required and must be a string. Example: { "name": "context7" }'
|
|
15106
|
+
}).regex(
|
|
15107
|
+
/^[a-z][a-z0-9_-]{0,63}$/,
|
|
15108
|
+
'name must start with a lowercase letter and contain only lowercase letters, digits, "_" or "-" (max 64 chars).'
|
|
15109
|
+
).describe('Stable internal ID, e.g. "context7", "github", "datadog". Cannot be changed later.');
|
|
15110
|
+
var stringMapSchema = external_exports.record(external_exports.string(), external_exports.string()).describe(
|
|
15111
|
+
"JSON object of string keys/values. Values may use templates like {{ user.env.API_TOKEN }}."
|
|
15112
|
+
);
|
|
15113
|
+
var mcpAuthInputSchema = external_exports.strictObject({
|
|
15114
|
+
type: external_exports.enum(["none", "bearer", "jwt", "oauth"]).describe(
|
|
15115
|
+
"Authentication mode. OAuth tip: start with { type: 'oauth' } plus the MCP server URL; only add endpoint/client fields if discovery/DCR fails."
|
|
15116
|
+
),
|
|
15117
|
+
token: mcpOptionalString(
|
|
15118
|
+
"auth.token",
|
|
15119
|
+
"Bearer token. Prefer {{ user.env.MCP_TOKEN }} templates; raw secrets will be stored redacted but are still visible in this MCP call transcript."
|
|
15120
|
+
),
|
|
15121
|
+
api_url: mcpOptionalString("auth.api_url", "JWT auth API URL."),
|
|
15122
|
+
api_token: mcpOptionalString(
|
|
15123
|
+
"auth.api_token",
|
|
15124
|
+
"JWT API token. Prefer {{ user.env.JWT_TOKEN }} templates."
|
|
15125
|
+
),
|
|
15126
|
+
api_secret: mcpOptionalString(
|
|
15127
|
+
"auth.api_secret",
|
|
15128
|
+
"JWT API secret. Prefer {{ user.env.JWT_SECRET }} templates."
|
|
15129
|
+
),
|
|
15130
|
+
oauth_authorization_url: mcpOptionalString(
|
|
15131
|
+
"auth.oauth_authorization_url",
|
|
15132
|
+
"Optional OAuth authorization endpoint override. Leave blank for discovery."
|
|
15133
|
+
),
|
|
15134
|
+
oauth_token_url: mcpOptionalString(
|
|
15135
|
+
"auth.oauth_token_url",
|
|
15136
|
+
"Optional OAuth token endpoint override. Leave blank for discovery."
|
|
15137
|
+
),
|
|
15138
|
+
oauth_client_id: mcpOptionalString(
|
|
15139
|
+
"auth.oauth_client_id",
|
|
15140
|
+
"Optional OAuth client ID for providers that require a pre-registered app. Leave blank for Dynamic Client Registration where supported."
|
|
15141
|
+
),
|
|
15142
|
+
oauth_client_secret: mcpOptionalString(
|
|
15143
|
+
"auth.oauth_client_secret",
|
|
15144
|
+
"Optional OAuth client secret. Prefer {{ user.env.OAUTH_CLIENT_SECRET }} templates; raw secrets are not returned by this tool."
|
|
15145
|
+
),
|
|
15146
|
+
oauth_scope: mcpOptionalString("auth.oauth_scope", "Optional OAuth scopes, space-separated."),
|
|
15147
|
+
oauth_grant_type: external_exports.enum(["client_credentials", "authorization_code"]).optional().describe(
|
|
15148
|
+
"OAuth grant type hint. Defaults to 'client_credentials' for legacy token testing; browser OAuth uses authorization code with PKCE."
|
|
15149
|
+
),
|
|
15150
|
+
oauth_mode: external_exports.enum(["per_user", "shared"]).optional().describe("OAuth token ownership. Defaults to 'per_user' (recommended)."),
|
|
15151
|
+
insecure: external_exports.boolean().optional().describe("Allow insecure auth behavior if supported.")
|
|
15152
|
+
}).superRefine((auth, issue2) => {
|
|
15153
|
+
if (auth.type === "bearer" && !auth.token) {
|
|
15154
|
+
issue2.addIssue({
|
|
15155
|
+
code: "custom",
|
|
15156
|
+
path: ["token"],
|
|
15157
|
+
message: "auth.token is required when auth.type is 'bearer'."
|
|
15158
|
+
});
|
|
15159
|
+
}
|
|
15160
|
+
const fieldsByType = {
|
|
15161
|
+
none: [],
|
|
15162
|
+
bearer: ["token"],
|
|
15163
|
+
jwt: ["api_url", "api_token", "api_secret"],
|
|
15164
|
+
oauth: [
|
|
15165
|
+
"oauth_authorization_url",
|
|
15166
|
+
"oauth_token_url",
|
|
15167
|
+
"oauth_client_id",
|
|
15168
|
+
"oauth_client_secret",
|
|
15169
|
+
"oauth_scope",
|
|
15170
|
+
"oauth_grant_type",
|
|
15171
|
+
"oauth_mode",
|
|
15172
|
+
"insecure"
|
|
15173
|
+
]
|
|
15174
|
+
};
|
|
15175
|
+
const allowed = /* @__PURE__ */ new Set(["type", ...fieldsByType[auth.type]]);
|
|
15176
|
+
for (const key of Object.keys(auth)) {
|
|
15177
|
+
if (!allowed.has(key)) {
|
|
15178
|
+
issue2.addIssue({
|
|
15179
|
+
code: "custom",
|
|
15180
|
+
path: [key],
|
|
15181
|
+
message: `auth.${key} does not apply when auth.type is '${auth.type}'.`
|
|
15182
|
+
});
|
|
15183
|
+
}
|
|
15184
|
+
}
|
|
15185
|
+
if (auth.type === "jwt") {
|
|
15186
|
+
for (const field of ["api_url", "api_token", "api_secret"]) {
|
|
15187
|
+
if (!auth[field]) {
|
|
15188
|
+
issue2.addIssue({
|
|
15189
|
+
code: "custom",
|
|
15190
|
+
path: [field],
|
|
15191
|
+
message: `auth.${field} is required when auth.type is 'jwt'.`
|
|
15192
|
+
});
|
|
15193
|
+
}
|
|
15194
|
+
}
|
|
15195
|
+
}
|
|
15196
|
+
}).describe(
|
|
15197
|
+
"Auth config. Common OAuth path: { type: 'oauth' } plus url; leave OAuth URLs/client fields blank first so metadata discovery/DCR can do the work."
|
|
15198
|
+
);
|
|
15199
|
+
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' }.");
|
|
15200
|
+
var mcpServerCreateSchema = external_exports.strictObject({
|
|
15201
|
+
name: mcpNameSchema,
|
|
15202
|
+
displayName: mcpOptionalNonEmptyString(
|
|
15203
|
+
"displayName",
|
|
15204
|
+
'Human-friendly display name, e.g. "Context7 MCP".'
|
|
15205
|
+
),
|
|
15206
|
+
description: mcpOptionalString("description", "Optional description."),
|
|
15207
|
+
transport: external_exports.enum(["stdio", "http", "sse"]).optional().describe(
|
|
15208
|
+
"Transport. Defaults to 'http' when url is provided, otherwise 'stdio'. Most remote OAuth MCP servers use 'http'."
|
|
15209
|
+
),
|
|
15210
|
+
url: mcpOptionalString(
|
|
15211
|
+
"url",
|
|
15212
|
+
"Remote MCP server URL for http/sse transports. Supports templates like {{ user.env.MCP_URL }}."
|
|
15213
|
+
),
|
|
15214
|
+
command: mcpOptionalString("command", 'Local command for stdio transport, e.g. "npx".'),
|
|
15215
|
+
args: external_exports.array(external_exports.string()).optional().describe(
|
|
15216
|
+
'Arguments for stdio command, e.g. ["-y", "@modelcontextprotocol/server-filesystem"].'
|
|
15217
|
+
),
|
|
15218
|
+
headers: stringMapSchema.optional().describe(
|
|
15219
|
+
"Custom HTTP headers for http/sse transports. Do not include Authorization; use auth instead. Prefer templates for secret values."
|
|
15220
|
+
),
|
|
15221
|
+
env: stringMapSchema.optional().describe(
|
|
15222
|
+
"Environment variables for the MCP process/config. Prefer {{ user.env.VAR }} templates for secrets."
|
|
15223
|
+
),
|
|
15224
|
+
auth: mcpAuthInputSchema.optional(),
|
|
15225
|
+
scope: external_exports.enum(["global", "session"]).optional().describe(
|
|
15226
|
+
"Scope. Defaults to 'global' so it appears in agor_mcp_servers_list. 'session' is only for explicit session attachment workflows."
|
|
15227
|
+
),
|
|
15228
|
+
enabled: external_exports.boolean().optional().describe("Whether the server is enabled. Defaults to true."),
|
|
15229
|
+
attachToCurrentSession: external_exports.boolean().optional().describe(
|
|
15230
|
+
`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.`
|
|
15231
|
+
),
|
|
15232
|
+
attachToSessionId: mcpOptionalId(
|
|
15233
|
+
"attachToSessionId",
|
|
15234
|
+
"Session",
|
|
15235
|
+
"Optional session ID (UUIDv7 or short ID) to attach after creating. Overrides attachToCurrentSession."
|
|
15236
|
+
)
|
|
15237
|
+
}).superRefine((value, issue2) => validateMcpServerConfig(value, issue2, false));
|
|
15238
|
+
var mcpServerUpdateSchema = external_exports.strictObject({
|
|
15239
|
+
mcpServerId: mcpRequiredId(
|
|
15240
|
+
"mcpServerId",
|
|
15241
|
+
"MCP server",
|
|
15242
|
+
"MCP server ID to update (UUIDv7 or short ID)"
|
|
15243
|
+
),
|
|
15244
|
+
displayName: mcpOptionalNonEmptyString("displayName", "New human-friendly display name."),
|
|
15245
|
+
description: mcpOptionalString(
|
|
15246
|
+
"description",
|
|
15247
|
+
"New description. Pass an empty string to clear."
|
|
15248
|
+
),
|
|
15249
|
+
transport: external_exports.enum(["stdio", "http", "sse"]).optional().describe("Transport to set."),
|
|
15250
|
+
url: mcpOptionalString("url", "Remote MCP URL for http/sse transports."),
|
|
15251
|
+
command: mcpOptionalString("command", "Local command for stdio transport."),
|
|
15252
|
+
args: external_exports.array(external_exports.string()).optional().describe("Arguments for stdio command."),
|
|
15253
|
+
headers: stringMapSchema.optional().describe(
|
|
15254
|
+
"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."
|
|
15255
|
+
),
|
|
15256
|
+
env: stringMapSchema.optional().describe("Replace environment variables."),
|
|
15257
|
+
auth: mcpAuthInputSchema.optional().describe(
|
|
15258
|
+
"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."
|
|
15259
|
+
),
|
|
15260
|
+
scope: external_exports.enum(["global", "session"]).optional().describe("Scope to set."),
|
|
15261
|
+
enabled: external_exports.boolean().optional().describe("Enabled flag."),
|
|
15262
|
+
toolPermissions: toolPermissionsSchema.optional()
|
|
15263
|
+
}).superRefine((value, issue2) => validateMcpServerConfig(value, issue2, true));
|
|
15264
|
+
function validateHeaders(headers, issue2) {
|
|
15265
|
+
if (!headers) return;
|
|
15266
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
15267
|
+
const name = key.trim();
|
|
15268
|
+
if (!name) {
|
|
15269
|
+
issue2.addIssue({
|
|
15270
|
+
code: "custom",
|
|
15271
|
+
path: ["headers", key],
|
|
15272
|
+
message: "Header names cannot be empty."
|
|
15273
|
+
});
|
|
15274
|
+
} else if (!isValidMCPHeaderName(name)) {
|
|
15275
|
+
issue2.addIssue({
|
|
15276
|
+
code: "custom",
|
|
15277
|
+
path: ["headers", key],
|
|
15278
|
+
message: `Invalid HTTP header name: ${key}`
|
|
15279
|
+
});
|
|
15280
|
+
} else if (isReservedMCPCustomHeaderName(name)) {
|
|
15281
|
+
issue2.addIssue({
|
|
15282
|
+
code: "custom",
|
|
15283
|
+
path: ["headers", key],
|
|
15284
|
+
message: `Header ${name} is reserved; configure Authorization through auth instead.`
|
|
15285
|
+
});
|
|
15286
|
+
}
|
|
15287
|
+
if (typeof value !== "string") {
|
|
15288
|
+
issue2.addIssue({
|
|
15289
|
+
code: "custom",
|
|
15290
|
+
path: ["headers", key],
|
|
15291
|
+
message: "Header values must be strings."
|
|
15292
|
+
});
|
|
15293
|
+
}
|
|
15294
|
+
}
|
|
15295
|
+
}
|
|
15296
|
+
function validateMcpServerConfig(value, issue2, partial2) {
|
|
15297
|
+
const transport = value.transport ?? (value.url ? "http" : "stdio");
|
|
15298
|
+
validateHeaders(value.headers, issue2);
|
|
15299
|
+
if (!partial2 || value.transport !== void 0 || value.url !== void 0 || value.command !== void 0) {
|
|
15300
|
+
if (transport === "stdio") {
|
|
15301
|
+
if (!partial2 && !value.command) {
|
|
15302
|
+
issue2.addIssue({
|
|
15303
|
+
code: "custom",
|
|
15304
|
+
path: ["command"],
|
|
15305
|
+
message: "command is required for stdio transport."
|
|
15306
|
+
});
|
|
15307
|
+
}
|
|
15308
|
+
if (value.url) {
|
|
15309
|
+
issue2.addIssue({
|
|
15310
|
+
code: "custom",
|
|
15311
|
+
path: ["url"],
|
|
15312
|
+
message: "url only applies to http/sse transports, not stdio."
|
|
15313
|
+
});
|
|
15314
|
+
}
|
|
15315
|
+
if (value.headers) {
|
|
15316
|
+
issue2.addIssue({
|
|
15317
|
+
code: "custom",
|
|
15318
|
+
path: ["headers"],
|
|
15319
|
+
message: "headers only apply to http/sse transports, not stdio."
|
|
15320
|
+
});
|
|
15321
|
+
}
|
|
15322
|
+
if (value.auth && value.auth.type !== "none") {
|
|
15323
|
+
issue2.addIssue({
|
|
15324
|
+
code: "custom",
|
|
15325
|
+
path: ["auth", "type"],
|
|
15326
|
+
message: "Authentication config only applies to http/sse transports."
|
|
15327
|
+
});
|
|
15328
|
+
}
|
|
15329
|
+
} else if (!partial2 && !value.url) {
|
|
15330
|
+
issue2.addIssue({
|
|
15331
|
+
code: "custom",
|
|
15332
|
+
path: ["url"],
|
|
15333
|
+
message: `url is required for ${transport} transport.`
|
|
15334
|
+
});
|
|
15335
|
+
} else {
|
|
15336
|
+
if (value.command) {
|
|
15337
|
+
issue2.addIssue({
|
|
15338
|
+
code: "custom",
|
|
15339
|
+
path: ["command"],
|
|
15340
|
+
message: "command only applies to stdio transport, not http/sse."
|
|
15341
|
+
});
|
|
15342
|
+
}
|
|
15343
|
+
if (value.args && value.args.length > 0) {
|
|
15344
|
+
issue2.addIssue({
|
|
15345
|
+
code: "custom",
|
|
15346
|
+
path: ["args"],
|
|
15347
|
+
message: "args only apply to stdio transport, not http/sse."
|
|
15348
|
+
});
|
|
15349
|
+
}
|
|
15350
|
+
}
|
|
15351
|
+
}
|
|
15352
|
+
}
|
|
15353
|
+
|
|
14907
15354
|
// src/mcp/tools/messages.ts
|
|
14908
15355
|
import { isBranchRbacEnabled as isBranchRbacEnabled2 } from "@agor/core/config";
|
|
14909
15356
|
import {
|
|
@@ -14911,16 +15358,18 @@ import {
|
|
|
14911
15358
|
asc,
|
|
14912
15359
|
desc,
|
|
14913
15360
|
eq,
|
|
14914
|
-
|
|
15361
|
+
gte,
|
|
15362
|
+
lte,
|
|
14915
15363
|
messages as messagesTable,
|
|
14916
15364
|
or,
|
|
14917
|
-
SessionRepository as SessionRepository2,
|
|
14918
15365
|
select,
|
|
14919
|
-
sql
|
|
15366
|
+
sql,
|
|
15367
|
+
visibleSessionReferenceAccessExists
|
|
14920
15368
|
} from "@agor/core/db";
|
|
15369
|
+
var MAX_CROSS_SESSION_SEARCH_WINDOW_MS = 31 * 24 * 60 * 60 * 1e3;
|
|
14921
15370
|
|
|
14922
15371
|
// src/mcp/tools/proxies.ts
|
|
14923
|
-
import { getBaseUrl, loadConfig, resolveProxies } from "@agor/core/config";
|
|
15372
|
+
import { getBaseUrl, loadConfig as loadConfig2, resolveProxies } from "@agor/core/config";
|
|
14924
15373
|
|
|
14925
15374
|
// src/mcp/tools/repos.ts
|
|
14926
15375
|
import { extractSlugFromUrl, isValidGitUrl, isValidSlug } from "@agor/core/config";
|
|
@@ -14932,7 +15381,7 @@ var agenticToolConfigSchema = external_exports.object({
|
|
|
14932
15381
|
model_config: external_exports.object({
|
|
14933
15382
|
mode: external_exports.enum(["alias", "exact"]).optional(),
|
|
14934
15383
|
model: mcpOptionalString("model_config.model", "Model name override."),
|
|
14935
|
-
effort: external_exports.enum(["low", "medium", "high", "max"]).optional(),
|
|
15384
|
+
effort: external_exports.enum(["low", "medium", "high", "xhigh", "max"]).optional(),
|
|
14936
15385
|
advisorModel: mcpOptionalString(
|
|
14937
15386
|
"model_config.advisorModel",
|
|
14938
15387
|
"Claude Code advisor model override (e.g. 'opus', 'sonnet', 'fable')."
|
|
@@ -14948,7 +15397,7 @@ var agenticToolConfigSchema = external_exports.object({
|
|
|
14948
15397
|
|
|
14949
15398
|
// src/mcp/tools/sessions.ts
|
|
14950
15399
|
import {
|
|
14951
|
-
BranchRepository as
|
|
15400
|
+
BranchRepository as BranchRepository6,
|
|
14952
15401
|
SessionRelationshipRepository,
|
|
14953
15402
|
shortId as shortId5
|
|
14954
15403
|
} from "@agor/core/db";
|
|
@@ -14971,6 +15420,7 @@ import {
|
|
|
14971
15420
|
} from "@agor/core/types";
|
|
14972
15421
|
init_branch_inspect();
|
|
14973
15422
|
init_executor_read_impersonation();
|
|
15423
|
+
init_spawn_executor();
|
|
14974
15424
|
var modelConfigObjectSchema = external_exports.object({
|
|
14975
15425
|
mode: external_exports.enum(["alias", "exact"]).optional().describe("Model selection mode (default: 'alias')"),
|
|
14976
15426
|
// .min(1): reject empty-string model explicitly so callers don't silently
|
|
@@ -14979,7 +15429,7 @@ var modelConfigObjectSchema = external_exports.object({
|
|
|
14979
15429
|
"modelConfig.model",
|
|
14980
15430
|
"Model identifier (e.g. 'claude-opus-4-6', 'claude-sonnet-4-6')"
|
|
14981
15431
|
),
|
|
14982
|
-
effort: external_exports.enum(["low", "medium", "high", "max"]).optional().describe("Reasoning effort level (default: high)"),
|
|
15432
|
+
effort: external_exports.enum(["low", "medium", "high", "xhigh", "max"]).optional().describe("Reasoning effort level (default: high)"),
|
|
14983
15433
|
advisorModel: mcpOptionalString(
|
|
14984
15434
|
"modelConfig.advisorModel",
|
|
14985
15435
|
"Claude Code advisor model override (e.g. 'opus', 'sonnet', 'fable', or a full model ID)."
|
|
@@ -15010,9 +15460,20 @@ import { MessageRole } from "@agor/core/types";
|
|
|
15010
15460
|
import { EXECUTING_TASK_STATUSES, isTaskExecuting } from "@agor/core/types";
|
|
15011
15461
|
|
|
15012
15462
|
// src/widgets/env-vars/index.ts
|
|
15013
|
-
import {
|
|
15463
|
+
import {
|
|
15464
|
+
ENV_VAR_CONSTRAINTS,
|
|
15465
|
+
isEnvVarAllowed,
|
|
15466
|
+
validateEnvVar
|
|
15467
|
+
} from "@agor/core/config";
|
|
15468
|
+
import { SessionEnvSelectionRepository } from "@agor/core/db";
|
|
15014
15469
|
import { BadRequest } from "@agor/core/feathers";
|
|
15015
15470
|
var ENV_VAR_NAME_REGEX = ENV_VAR_CONSTRAINTS.NAME_PATTERN;
|
|
15471
|
+
var envVarFieldMetadataSchema = external_exports.object({
|
|
15472
|
+
description: external_exports.string().max(200).optional(),
|
|
15473
|
+
placeholder: external_exports.string().max(120).optional(),
|
|
15474
|
+
format_hint: external_exports.string().max(80).optional(),
|
|
15475
|
+
input_type: external_exports.enum(["password", "text", "textarea"]).default("password").optional()
|
|
15476
|
+
}).strict();
|
|
15016
15477
|
var envVarsParamsSchema = external_exports.object({
|
|
15017
15478
|
names: external_exports.array(external_exports.string().regex(ENV_VAR_NAME_REGEX)).min(1).max(10).refine((names) => new Set(names).size === names.length, {
|
|
15018
15479
|
message: "Env var names must be unique"
|
|
@@ -15020,18 +15481,56 @@ var envVarsParamsSchema = external_exports.object({
|
|
|
15020
15481
|
reason: external_exports.string().min(1).max(200).describe(
|
|
15021
15482
|
"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."
|
|
15022
15483
|
),
|
|
15484
|
+
variable_metadata: external_exports.record(external_exports.string().regex(ENV_VAR_NAME_REGEX), envVarFieldMetadataSchema).optional().describe(
|
|
15485
|
+
"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."
|
|
15486
|
+
),
|
|
15023
15487
|
auto_resume: external_exports.boolean().default(true).describe(
|
|
15024
15488
|
"When true (default), a system-authored prompt is auto-queued back into the agent on submit/dismiss."
|
|
15025
15489
|
)
|
|
15490
|
+
}).superRefine((params, ctx) => {
|
|
15491
|
+
const requested = new Set(params.names);
|
|
15492
|
+
for (const key of Object.keys(params.variable_metadata ?? {})) {
|
|
15493
|
+
if (!requested.has(key)) {
|
|
15494
|
+
ctx.addIssue({
|
|
15495
|
+
code: external_exports.ZodIssueCode.custom,
|
|
15496
|
+
path: ["variable_metadata", key],
|
|
15497
|
+
message: `Metadata key ${key} must match a requested env var name`
|
|
15498
|
+
});
|
|
15499
|
+
}
|
|
15500
|
+
}
|
|
15026
15501
|
});
|
|
15027
15502
|
var envVarsSubmitSchema = external_exports.object({
|
|
15028
15503
|
values: external_exports.record(
|
|
15029
15504
|
external_exports.string().regex(ENV_VAR_NAME_REGEX),
|
|
15030
15505
|
external_exports.string().min(1).max(ENV_VAR_CONSTRAINTS.MAX_VALUE_LENGTH)
|
|
15031
|
-
).
|
|
15032
|
-
|
|
15033
|
-
}),
|
|
15506
|
+
).default({}),
|
|
15507
|
+
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."),
|
|
15034
15508
|
scope: external_exports.enum(["global", "session"])
|
|
15509
|
+
}).superRefine((submit, ctx) => {
|
|
15510
|
+
const valueNames = Object.keys(submit.values);
|
|
15511
|
+
const existingNames = submit.use_existing;
|
|
15512
|
+
const total = valueNames.length + existingNames.length;
|
|
15513
|
+
if (total < 1 || total > 10) {
|
|
15514
|
+
ctx.addIssue({
|
|
15515
|
+
code: external_exports.ZodIssueCode.custom,
|
|
15516
|
+
message: "Must submit between 1 and 10 env vars"
|
|
15517
|
+
});
|
|
15518
|
+
}
|
|
15519
|
+
const duplicates = existingNames.filter((name) => valueNames.includes(name));
|
|
15520
|
+
for (const name of duplicates) {
|
|
15521
|
+
ctx.addIssue({
|
|
15522
|
+
code: external_exports.ZodIssueCode.custom,
|
|
15523
|
+
path: ["use_existing"],
|
|
15524
|
+
message: `Cannot both submit and use existing value for ${name}`
|
|
15525
|
+
});
|
|
15526
|
+
}
|
|
15527
|
+
if (new Set(existingNames).size !== existingNames.length) {
|
|
15528
|
+
ctx.addIssue({
|
|
15529
|
+
code: external_exports.ZodIssueCode.custom,
|
|
15530
|
+
path: ["use_existing"],
|
|
15531
|
+
message: "use_existing names must be unique"
|
|
15532
|
+
});
|
|
15533
|
+
}
|
|
15035
15534
|
});
|
|
15036
15535
|
|
|
15037
15536
|
// src/mcp/server.ts
|
|
@@ -15220,7 +15719,8 @@ function registerUserTools(server, ctx) {
|
|
|
15220
15719
|
inputSchema: external_exports.strictObject({
|
|
15221
15720
|
name: mcpOptionalString("name", "Display name"),
|
|
15222
15721
|
emoji: mcpOptionalString("emoji", "User emoji (single emoji character)"),
|
|
15223
|
-
|
|
15722
|
+
avatar_url: mcpOptionalString("avatar_url", "Avatar URL"),
|
|
15723
|
+
avatar: mcpOptionalString("avatar", "Legacy avatar URL alias"),
|
|
15224
15724
|
preferences: external_exports.object({}).passthrough().optional().describe("User preferences (JSON object)")
|
|
15225
15725
|
})
|
|
15226
15726
|
},
|
|
@@ -15228,6 +15728,7 @@ function registerUserTools(server, ctx) {
|
|
|
15228
15728
|
const updateData = {};
|
|
15229
15729
|
if (args.name !== void 0) updateData.name = args.name;
|
|
15230
15730
|
if (args.emoji !== void 0) updateData.emoji = args.emoji;
|
|
15731
|
+
if (args.avatar_url !== void 0) updateData.avatar_url = args.avatar_url;
|
|
15231
15732
|
if (args.avatar !== void 0) updateData.avatar = args.avatar;
|
|
15232
15733
|
if (args.preferences !== void 0) updateData.preferences = args.preferences;
|
|
15233
15734
|
const updatedUser = await ctx.app.service("users").patch(ctx.userId, updateData, ctx.baseServiceParams);
|
|
@@ -15244,7 +15745,7 @@ function registerUserTools(server, ctx) {
|
|
|
15244
15745
|
email: mcpOptionalString("email", "New email address (optional)"),
|
|
15245
15746
|
name: mcpOptionalString("name", "New display name (optional)"),
|
|
15246
15747
|
password: mcpOptionalString("password", "New password (optional, will be hashed)"),
|
|
15247
|
-
role: external_exports.enum([
|
|
15748
|
+
role: external_exports.enum([ROLES4.SUPERADMIN, ROLES4.ADMIN, ROLES4.MEMBER, ROLES4.VIEWER]).optional().describe(
|
|
15248
15749
|
"New user role (optional). superadmin=full system access + branch RBAC bypass, admin=manage resources, member=standard user, viewer=read-only"
|
|
15249
15750
|
),
|
|
15250
15751
|
unix_username: mcpOptionalString(
|
|
@@ -15253,7 +15754,8 @@ function registerUserTools(server, ctx) {
|
|
|
15253
15754
|
),
|
|
15254
15755
|
must_change_password: external_exports.boolean().optional().describe("Force user to change password on next login (optional)"),
|
|
15255
15756
|
emoji: mcpOptionalString("emoji", "User emoji (optional, single emoji character)"),
|
|
15256
|
-
|
|
15757
|
+
avatar_url: mcpOptionalString("avatar_url", "Avatar URL (optional)"),
|
|
15758
|
+
avatar: mcpOptionalString("avatar", "Legacy avatar URL alias (optional)"),
|
|
15257
15759
|
preferences: external_exports.object({}).passthrough().optional().describe("User preferences (optional, JSON object)")
|
|
15258
15760
|
})
|
|
15259
15761
|
},
|
|
@@ -15267,6 +15769,7 @@ function registerUserTools(server, ctx) {
|
|
|
15267
15769
|
if (args.must_change_password !== void 0)
|
|
15268
15770
|
updateData.must_change_password = args.must_change_password;
|
|
15269
15771
|
if (args.emoji !== void 0) updateData.emoji = args.emoji;
|
|
15772
|
+
if (args.avatar_url !== void 0) updateData.avatar_url = args.avatar_url;
|
|
15270
15773
|
if (args.avatar !== void 0) updateData.avatar = args.avatar;
|
|
15271
15774
|
if (args.preferences !== void 0) updateData.preferences = args.preferences;
|
|
15272
15775
|
if (Object.keys(updateData).length === 0) {
|
|
@@ -15288,13 +15791,14 @@ function registerUserTools(server, ctx) {
|
|
|
15288
15791
|
"emoji",
|
|
15289
15792
|
"User emoji for visual identity (optional, single emoji character)"
|
|
15290
15793
|
),
|
|
15291
|
-
|
|
15794
|
+
avatar_url: mcpOptionalString("avatar_url", "Avatar URL (optional)"),
|
|
15795
|
+
avatar: mcpOptionalString("avatar", "Legacy avatar URL alias (optional)"),
|
|
15292
15796
|
unix_username: mcpOptionalString(
|
|
15293
15797
|
"unix_username",
|
|
15294
15798
|
"Unix username for shell access (optional, defaults to email prefix if not specified)"
|
|
15295
15799
|
),
|
|
15296
15800
|
must_change_password: external_exports.boolean().optional().describe("Force user to change password on first login (optional, defaults to false)"),
|
|
15297
|
-
role: external_exports.enum([
|
|
15801
|
+
role: external_exports.enum([ROLES4.SUPERADMIN, ROLES4.ADMIN, ROLES4.MEMBER, ROLES4.VIEWER]).optional().describe(
|
|
15298
15802
|
'User role (optional, defaults to "member"). Roles: superadmin=full system access + branch RBAC bypass, admin=manage resources, member=standard user, viewer=read-only'
|
|
15299
15803
|
)
|
|
15300
15804
|
})
|
|
@@ -15306,6 +15810,7 @@ function registerUserTools(server, ctx) {
|
|
|
15306
15810
|
};
|
|
15307
15811
|
if (args.name !== void 0) createData.name = args.name;
|
|
15308
15812
|
if (args.emoji !== void 0) createData.emoji = args.emoji;
|
|
15813
|
+
if (args.avatar_url !== void 0) createData.avatar_url = args.avatar_url;
|
|
15309
15814
|
if (args.avatar !== void 0) createData.avatar = args.avatar;
|
|
15310
15815
|
if (args.unix_username !== void 0) createData.unix_username = args.unix_username;
|
|
15311
15816
|
if (args.must_change_password !== void 0)
|