agor-live 0.22.0 → 0.23.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/admin/add-to-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/add-to-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/add-to-branch-group.js +133 -33
- package/dist/cli/commands/admin/create-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/create-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/create-branch-group.js +132 -38
- package/dist/cli/commands/admin/create-symlink.d.ts +2 -14
- package/dist/cli/commands/admin/create-symlink.d.ts.map +1 -1
- package/dist/cli/commands/admin/create-symlink.js +138 -61
- package/dist/cli/commands/admin/delete-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/delete-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/delete-branch-group.js +132 -28
- package/dist/cli/commands/admin/delete-user.d.ts +2 -13
- package/dist/cli/commands/admin/delete-user.d.ts.map +1 -1
- package/dist/cli/commands/admin/delete-user.js +132 -38
- package/dist/cli/commands/admin/ensure-user.d.ts +2 -14
- package/dist/cli/commands/admin/ensure-user.d.ts.map +1 -1
- package/dist/cli/commands/admin/ensure-user.js +131 -46
- package/dist/cli/commands/admin/remove-from-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/remove-from-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/remove-from-branch-group.js +133 -33
- package/dist/cli/commands/admin/remove-symlink.d.ts +2 -14
- package/dist/cli/commands/admin/remove-symlink.d.ts.map +1 -1
- package/dist/cli/commands/admin/remove-symlink.js +136 -49
- package/dist/cli/commands/admin/scrub-git-remotes.d.ts +2 -2
- package/dist/cli/commands/admin/scrub-git-remotes.d.ts.map +1 -1
- package/dist/cli/commands/admin/scrub-git-remotes.js +128 -86
- package/dist/cli/commands/admin/sync-user-symlinks.d.ts +2 -14
- package/dist/cli/commands/admin/sync-user-symlinks.d.ts.map +1 -1
- package/dist/cli/commands/admin/sync-user-symlinks.js +132 -43
- package/dist/cli/commands/auth/whoami.d.ts.map +1 -1
- package/dist/cli/commands/auth/whoami.js +2 -1
- package/dist/cli/commands/branch/env/request.test.d.ts +2 -0
- package/dist/cli/commands/branch/env/request.test.d.ts.map +1 -0
- package/dist/cli/commands/branch/env/request.test.js +17723 -0
- package/dist/cli/commands/branch/env/restart.d.ts.map +1 -1
- package/dist/cli/commands/branch/env/restart.js +7 -1
- package/dist/cli/commands/branch/env/start.d.ts.map +1 -1
- package/dist/cli/commands/branch/env/start.js +7 -1
- package/dist/cli/commands/branch/env/stop.d.ts.map +1 -1
- package/dist/cli/commands/branch/env/stop.js +7 -1
- package/dist/cli/commands/daemon/status.d.ts.map +1 -1
- package/dist/cli/commands/daemon/status.js +2 -1
- package/dist/cli/commands/init.d.ts +6 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +140 -2
- package/dist/cli/commands/local/add-to-branch-group.d.ts +13 -0
- package/dist/cli/commands/local/add-to-branch-group.d.ts.map +1 -0
- package/dist/cli/commands/local/add-to-branch-group.js +37 -0
- package/dist/cli/commands/local/create-branch-group.d.ts +12 -0
- package/dist/cli/commands/local/create-branch-group.d.ts.map +1 -0
- package/dist/cli/commands/local/create-branch-group.js +35 -0
- package/dist/cli/commands/local/create-symlink.d.ts +14 -0
- package/dist/cli/commands/local/create-symlink.d.ts.map +1 -0
- package/dist/cli/commands/local/create-symlink.js +45 -0
- package/dist/cli/commands/{daemon → local/daemon}/sync.d.ts +1 -1
- package/dist/cli/commands/local/daemon/sync.d.ts.map +1 -0
- package/dist/cli/commands/{daemon → local/daemon}/sync.js +7 -6
- package/dist/cli/commands/local/delete-branch-group.d.ts +12 -0
- package/dist/cli/commands/local/delete-branch-group.d.ts.map +1 -0
- package/dist/cli/commands/local/delete-branch-group.js +35 -0
- package/dist/cli/commands/local/delete-user.d.ts +12 -0
- package/dist/cli/commands/local/delete-user.d.ts.map +1 -0
- package/dist/cli/commands/local/delete-user.js +36 -0
- package/dist/cli/commands/local/ensure-user.d.ts +12 -0
- package/dist/cli/commands/local/ensure-user.d.ts.map +1 -0
- package/dist/cli/commands/local/ensure-user.js +41 -0
- package/dist/cli/commands/local/remove-from-branch-group.d.ts +13 -0
- package/dist/cli/commands/local/remove-from-branch-group.d.ts.map +1 -0
- package/dist/cli/commands/local/remove-from-branch-group.js +37 -0
- package/dist/cli/commands/local/remove-symlink.d.ts +13 -0
- package/dist/cli/commands/local/remove-symlink.d.ts.map +1 -0
- package/dist/cli/commands/local/remove-symlink.js +39 -0
- package/dist/cli/commands/local/scrub-git-remotes.d.ts +9 -0
- package/dist/cli/commands/local/scrub-git-remotes.d.ts.map +1 -0
- package/dist/cli/commands/local/scrub-git-remotes.js +23 -0
- package/dist/cli/commands/{admin → local}/sync-unix.d.ts.map +1 -1
- package/dist/cli/commands/{admin → local}/sync-unix.js +3 -3
- package/dist/cli/commands/local/sync-user-symlinks.d.ts +12 -0
- package/dist/cli/commands/local/sync-user-symlinks.d.ts.map +1 -0
- package/dist/cli/commands/local/sync-user-symlinks.js +37 -0
- package/dist/cli/commands/telemetry/index.d.ts +7 -0
- package/dist/cli/commands/telemetry/index.d.ts.map +1 -0
- package/dist/cli/commands/telemetry/index.js +40 -0
- package/dist/cli/commands/telemetry/off.d.ts +6 -0
- package/dist/cli/commands/telemetry/off.d.ts.map +1 -0
- package/dist/cli/commands/telemetry/off.js +35 -0
- package/dist/cli/commands/telemetry/on.d.ts +6 -0
- package/dist/cli/commands/telemetry/on.d.ts.map +1 -0
- package/dist/cli/commands/telemetry/on.js +37 -0
- package/dist/cli/commands/telemetry/test.d.ts +6 -0
- package/dist/cli/commands/telemetry/test.d.ts.map +1 -0
- package/dist/cli/commands/telemetry/test.js +56 -0
- package/dist/cli/commands/user/create-admin.d.ts.map +1 -1
- package/dist/cli/commands/user/create-admin.js +81 -72
- package/dist/cli/commands/user/list.d.ts.map +1 -1
- package/dist/cli/commands/user/list.js +1 -0
- package/dist/cli/commands/whoami.js +2 -1
- package/dist/cli/lib/branch-environment-action.d.ts +21 -0
- package/dist/cli/lib/branch-environment-action.d.ts.map +1 -0
- package/dist/cli/lib/branch-environment-action.js +8 -0
- package/dist/core/api/index.cjs +7 -2
- package/dist/core/api/index.d.ts +13 -4
- package/dist/core/api/index.d.ts.map +1 -1
- package/dist/core/api/index.js +7 -2
- package/dist/core/claude/index.cjs +518 -89
- package/dist/core/claude/index.js +515 -88
- package/dist/core/claude-cli/index.cjs +24 -0
- package/dist/core/claude-cli/index.js +24 -0
- package/dist/core/claude-cli/pricing.d.ts.map +1 -1
- package/dist/core/client/index.cjs +52 -7
- package/dist/core/client/index.js +48 -7
- package/dist/core/config/browser.cjs +3 -5
- package/dist/core/config/browser.js +3 -5
- package/dist/core/config/config-manager.d.ts +33 -13
- package/dist/core/config/config-manager.d.ts.map +1 -1
- package/dist/core/config/index.cjs +4259 -4527
- package/dist/core/config/index.d.ts +1 -0
- package/dist/core/config/index.d.ts.map +1 -1
- package/dist/core/config/index.js +4295 -4583
- package/dist/core/config/key-resolver.d.ts.map +1 -1
- package/dist/core/config/multitenancy.d.ts +33 -0
- package/dist/core/config/multitenancy.d.ts.map +1 -0
- package/dist/core/config/security-resolver.d.ts +1 -0
- package/dist/core/config/security-resolver.d.ts.map +1 -1
- package/dist/core/config/types.d.ts +67 -4
- package/dist/core/config/types.d.ts.map +1 -1
- package/dist/core/db/client.d.ts +34 -2
- package/dist/core/db/client.d.ts.map +1 -1
- package/dist/core/db/database-wrapper.d.ts.map +1 -1
- package/dist/core/db/first-run-bootstrap.d.ts.map +1 -1
- package/dist/core/db/index.cjs +2767 -1232
- package/dist/core/db/index.d.ts +2 -1
- package/dist/core/db/index.d.ts.map +1 -1
- package/dist/core/db/index.js +2601 -1094
- package/dist/core/db/migrate.d.ts.map +1 -1
- package/dist/core/db/repositories/artifacts.d.ts +27 -2
- package/dist/core/db/repositories/artifacts.d.ts.map +1 -1
- package/dist/core/db/repositories/base.d.ts +18 -0
- package/dist/core/db/repositories/base.d.ts.map +1 -1
- package/dist/core/db/repositories/board-comments.d.ts +17 -1
- package/dist/core/db/repositories/board-comments.d.ts.map +1 -1
- package/dist/core/db/repositories/board-objects.d.ts.map +1 -1
- package/dist/core/db/repositories/boards.d.ts +54 -3
- package/dist/core/db/repositories/boards.d.ts.map +1 -1
- package/dist/core/db/repositories/branch-access.d.ts +32 -0
- package/dist/core/db/repositories/branch-access.d.ts.map +1 -1
- package/dist/core/db/repositories/branches.d.ts +52 -2
- package/dist/core/db/repositories/branches.d.ts.map +1 -1
- package/dist/core/db/repositories/cards.d.ts +15 -1
- package/dist/core/db/repositories/cards.d.ts.map +1 -1
- package/dist/core/db/repositories/gateway-channels.d.ts +9 -0
- package/dist/core/db/repositories/gateway-channels.d.ts.map +1 -1
- package/dist/core/db/repositories/gateway-outbound-messages.d.ts +19 -0
- package/dist/core/db/repositories/gateway-outbound-messages.d.ts.map +1 -0
- package/dist/core/db/repositories/index.d.ts +2 -0
- package/dist/core/db/repositories/index.d.ts.map +1 -1
- package/dist/core/db/repositories/messages.d.ts +9 -2
- package/dist/core/db/repositories/messages.d.ts.map +1 -1
- package/dist/core/db/repositories/repos.d.ts.map +1 -1
- package/dist/core/db/repositories/schedules.d.ts +12 -1
- package/dist/core/db/repositories/schedules.d.ts.map +1 -1
- package/dist/core/db/repositories/sessions.d.ts +56 -5
- package/dist/core/db/repositories/sessions.d.ts.map +1 -1
- package/dist/core/db/repositories/tasks.d.ts +7 -2
- package/dist/core/db/repositories/tasks.d.ts.map +1 -1
- package/dist/core/db/repositories/user-api-keys.d.ts +10 -1
- package/dist/core/db/repositories/user-api-keys.d.ts.map +1 -1
- package/dist/core/db/repositories/users.d.ts +8 -8
- package/dist/core/db/repositories/users.d.ts.map +1 -1
- package/dist/core/db/schema.d.ts +1460 -38
- package/dist/core/db/schema.d.ts.map +1 -1
- package/dist/core/db/schema.postgres.d.ts +1082 -37
- package/dist/core/db/schema.postgres.d.ts.map +1 -1
- package/dist/core/db/schema.sqlite.d.ts +397 -1
- package/dist/core/db/schema.sqlite.d.ts.map +1 -1
- package/dist/core/db/tenant-context.d.ts +26 -0
- package/dist/core/db/tenant-context.d.ts.map +1 -0
- package/dist/core/db/tenant-scope.d.ts +31 -0
- package/dist/core/db/tenant-scope.d.ts.map +1 -0
- package/dist/core/db/user-utils.d.ts +2 -2
- package/dist/core/db/user-utils.d.ts.map +1 -1
- package/dist/core/drizzle/postgres/0052_gateway_outbound_messages.sql +45 -0
- package/dist/core/drizzle/postgres/0053_user_token_invalidation.sql +1 -0
- package/dist/core/drizzle/postgres/0054_app_level_multitenancy.sql +219 -0
- package/dist/core/drizzle/postgres/0055_app_level_multitenancy_rls.sql +411 -0
- package/dist/core/drizzle/postgres/0056_composite_indexes.sql +15 -0
- package/dist/core/drizzle/postgres/0057_message_timestamp_indexes.sql +3 -0
- package/dist/core/drizzle/postgres/meta/_journal.json +42 -0
- package/dist/core/drizzle/sqlite/0061_gateway_outbound_messages.sql +38 -0
- package/dist/core/drizzle/sqlite/0062_user_token_invalidation.sql +1 -0
- package/dist/core/drizzle/sqlite/0063_composite_indexes.sql +10 -0
- package/dist/core/drizzle/sqlite/0064_message_timestamp_indexes.sql +2 -0
- package/dist/core/drizzle/sqlite/meta/_journal.json +28 -0
- package/dist/core/environment/render-snapshot.cjs +7 -6
- package/dist/core/environment/render-snapshot.d.ts +2 -0
- package/dist/core/environment/render-snapshot.d.ts.map +1 -1
- package/dist/core/environment/render-snapshot.js +7 -6
- package/dist/core/environment/variable-resolver.cjs +3 -1
- package/dist/core/environment/variable-resolver.js +3 -1
- package/dist/core/environment/webhook.cjs +1 -4
- package/dist/core/environment/webhook.js +1 -4
- package/dist/core/gateway/connector.d.ts +10 -1
- package/dist/core/gateway/connector.d.ts.map +1 -1
- package/dist/core/gateway/connectors/slack-manifest.cjs +108 -0
- package/dist/core/gateway/connectors/slack-manifest.d.ts +85 -0
- package/dist/core/gateway/connectors/slack-manifest.d.ts.map +1 -0
- package/dist/core/gateway/connectors/slack-manifest.js +81 -0
- package/dist/core/gateway/connectors/slack.d.ts +101 -4
- package/dist/core/gateway/connectors/slack.d.ts.map +1 -1
- package/dist/core/gateway/index.cjs +495 -29
- package/dist/core/gateway/index.d.ts +4 -1
- package/dist/core/gateway/index.d.ts.map +1 -1
- package/dist/core/gateway/index.js +490 -28
- package/dist/core/gateway/system-message.d.ts.map +1 -1
- package/dist/core/git/exec.cjs +24 -0
- package/dist/core/git/exec.d.ts +6 -4
- package/dist/core/git/exec.d.ts.map +1 -1
- package/dist/core/git/exec.js +2 -0
- package/dist/core/git/index.cjs +3 -1363
- package/dist/core/git/index.d.ts +4 -614
- package/dist/core/git/index.d.ts.map +1 -1
- package/dist/core/git/index.js +1 -1304
- package/dist/core/git/pure.cjs +24 -0
- package/dist/core/git/pure.d.ts +2 -27
- package/dist/core/git/pure.d.ts.map +1 -1
- package/dist/core/git/pure.js +2 -0
- package/dist/core/index.cjs +11563 -10832
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +12203 -10962
- package/dist/core/lib/feathers-validation.cjs +9 -1
- package/dist/core/lib/feathers-validation.d.ts +2 -0
- package/dist/core/lib/feathers-validation.d.ts.map +1 -1
- package/dist/core/lib/feathers-validation.js +9 -1
- package/dist/core/local-actions/git-remotes.d.ts +7 -0
- package/dist/core/local-actions/git-remotes.d.ts.map +1 -0
- package/dist/core/local-actions/index.cjs +8008 -0
- package/dist/core/local-actions/index.d.ts +6 -0
- package/dist/core/local-actions/index.d.ts.map +1 -0
- package/dist/core/local-actions/index.js +8010 -0
- package/dist/core/local-actions/symlinks.d.ts +20 -0
- package/dist/core/local-actions/symlinks.d.ts.map +1 -0
- package/dist/core/local-actions/types.d.ts +14 -0
- package/dist/core/local-actions/types.d.ts.map +1 -0
- package/dist/core/local-actions/unix-groups.d.ts +16 -0
- package/dist/core/local-actions/unix-groups.d.ts.map +1 -0
- package/dist/core/local-actions/unix-users.d.ts +12 -0
- package/dist/core/local-actions/unix-users.d.ts.map +1 -0
- package/dist/core/mcp/index.cjs +373 -28
- package/dist/core/mcp/index.d.ts +1 -1
- package/dist/core/mcp/index.d.ts.map +1 -1
- package/dist/core/mcp/index.js +369 -27
- package/dist/core/mcp/template-patterns.d.ts +15 -0
- package/dist/core/mcp/template-patterns.d.ts.map +1 -0
- package/dist/core/mcp/template-resolver.d.ts +13 -0
- package/dist/core/mcp/template-resolver.d.ts.map +1 -1
- package/dist/core/models/browser.cjs +154 -25
- package/dist/core/models/browser.js +150 -25
- package/dist/core/models/claude.d.ts +2 -2
- package/dist/core/models/claude.d.ts.map +1 -1
- package/dist/core/models/codex.d.ts +205 -21
- package/dist/core/models/codex.d.ts.map +1 -1
- package/dist/core/models/index.cjs +154 -25
- package/dist/core/models/index.js +150 -25
- package/dist/core/package.json +24 -0
- package/dist/core/seed/demo-fixtures.d.ts +87 -0
- package/dist/core/seed/demo-fixtures.d.ts.map +1 -0
- package/dist/core/seed/dev-fixtures.d.ts.map +1 -1
- package/dist/core/seed/index.cjs +8569 -5519
- package/dist/core/seed/index.d.ts +1 -0
- package/dist/core/seed/index.d.ts.map +1 -1
- package/dist/core/seed/index.js +8580 -5535
- package/dist/core/sessions/index.cjs +110 -24
- package/dist/core/sessions/index.js +110 -24
- package/dist/core/telemetry/index.cjs +361 -0
- package/dist/core/telemetry/index.d.ts +5 -0
- package/dist/core/telemetry/index.d.ts.map +1 -0
- package/dist/core/telemetry/index.js +315 -0
- package/dist/core/telemetry/logger.d.ts +44 -0
- package/dist/core/telemetry/logger.d.ts.map +1 -0
- package/dist/core/telemetry/model-normalization.d.ts +3 -0
- package/dist/core/telemetry/model-normalization.d.ts.map +1 -0
- package/dist/core/telemetry/types.d.ts +47 -0
- package/dist/core/telemetry/types.d.ts.map +1 -0
- package/dist/core/telemetry/version.d.ts +9 -0
- package/dist/core/telemetry/version.d.ts.map +1 -0
- package/dist/core/templates/agor-system-prompt.md +1 -0
- package/dist/core/templates/handlebars-helpers.cjs +3 -1
- package/dist/core/templates/handlebars-helpers.d.ts +5 -0
- package/dist/core/templates/handlebars-helpers.d.ts.map +1 -1
- package/dist/core/templates/handlebars-helpers.js +3 -1
- package/dist/core/tools/mcp/auth-secrets.cjs +3460 -3
- package/dist/core/tools/mcp/auth-secrets.d.ts.map +1 -1
- package/dist/core/tools/mcp/auth-secrets.js +3477 -3
- package/dist/core/tools/mcp/http-headers.cjs +17 -1
- package/dist/core/tools/mcp/http-headers.d.ts.map +1 -1
- package/dist/core/tools/mcp/http-headers.js +15 -1
- package/dist/core/tools/mcp/oauth-refresh.cjs +568 -114
- package/dist/core/tools/mcp/oauth-refresh.js +566 -115
- package/dist/core/types/board.d.ts +14 -0
- package/dist/core/types/board.d.ts.map +1 -1
- package/dist/core/types/branch.d.ts +13 -0
- package/dist/core/types/branch.d.ts.map +1 -1
- package/dist/core/types/config-services.d.ts.map +1 -1
- package/dist/core/types/feathers.d.ts +6 -0
- package/dist/core/types/feathers.d.ts.map +1 -1
- package/dist/core/types/gateway.d.ts +90 -1
- package/dist/core/types/gateway.d.ts.map +1 -1
- package/dist/core/types/index.cjs +42 -0
- package/dist/core/types/index.d.ts +1 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js +38 -0
- package/dist/core/types/schedule.d.ts +4 -3
- package/dist/core/types/schedule.d.ts.map +1 -1
- package/dist/core/types/session.d.ts +7 -1
- package/dist/core/types/session.d.ts.map +1 -1
- package/dist/core/types/tenant.d.ts +15 -0
- package/dist/core/types/tenant.d.ts.map +1 -0
- package/dist/core/types/user.d.ts +61 -0
- package/dist/core/types/user.d.ts.map +1 -1
- package/dist/core/unix/index.cjs +1123 -674
- package/dist/core/unix/index.js +1071 -624
- package/dist/core/utils/emoji-shortcodes.d.ts +13 -0
- package/dist/core/utils/emoji-shortcodes.d.ts.map +1 -0
- package/dist/core/yaml/index.cjs +8 -8
- package/dist/core/yaml/index.d.ts +1 -1
- package/dist/core/yaml/index.d.ts.map +1 -1
- package/dist/core/yaml/index.js +7 -7
- package/dist/daemon/adapters/drizzle.d.ts +26 -4
- package/dist/daemon/adapters/drizzle.d.ts.map +1 -1
- package/dist/daemon/adapters/drizzle.js +68 -7
- package/dist/daemon/auth/api-key-strategy.js +1 -1
- package/dist/daemon/auth/executor-runtime-scope.d.ts.map +1 -1
- package/dist/daemon/auth/executor-runtime-scope.js +34 -6
- package/dist/daemon/auth/executor-session-token.d.ts +15 -0
- package/dist/daemon/auth/executor-session-token.d.ts.map +1 -0
- package/dist/daemon/auth/executor-session-token.js +17 -0
- package/dist/daemon/auth/issue-browser-tokens-hook.d.ts +24 -0
- package/dist/daemon/auth/issue-browser-tokens-hook.d.ts.map +1 -0
- package/dist/daemon/auth/issue-browser-tokens-hook.js +95 -0
- package/dist/daemon/auth/launch-auth.d.ts +5 -4
- package/dist/daemon/auth/launch-auth.d.ts.map +1 -1
- package/dist/daemon/auth/launch-auth.js +123 -39
- package/dist/daemon/auth/refresh-token-service.d.ts +22 -0
- package/dist/daemon/auth/refresh-token-service.d.ts.map +1 -0
- package/dist/daemon/auth/refresh-token-service.js +133 -0
- package/dist/daemon/auth/runtime-tokens.d.ts +3 -1
- package/dist/daemon/auth/runtime-tokens.d.ts.map +1 -1
- package/dist/daemon/auth/runtime-tokens.js +17 -4
- package/dist/daemon/auth/service-jwt-strategy.d.ts +2 -1
- package/dist/daemon/auth/service-jwt-strategy.d.ts.map +1 -1
- package/dist/daemon/auth/service-jwt-strategy.js +141 -3
- package/dist/daemon/auth/token-invalidation.d.ts +11 -0
- package/dist/daemon/auth/token-invalidation.d.ts.map +1 -0
- package/dist/daemon/auth/token-invalidation.js +38 -0
- package/dist/daemon/auth/user-redaction.d.ts +12 -0
- package/dist/daemon/auth/user-redaction.d.ts.map +1 -0
- package/dist/daemon/auth/user-redaction.js +13 -0
- package/dist/daemon/declarations.d.ts +5 -4
- package/dist/daemon/declarations.d.ts.map +1 -1
- package/dist/daemon/hooks/gateway-route.d.ts.map +1 -1
- package/dist/daemon/hooks/gateway-route.js +23 -13
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +8271 -2956
- package/dist/daemon/knowledge/pgvector.d.ts +3 -3
- package/dist/daemon/knowledge/pgvector.d.ts.map +1 -1
- package/dist/daemon/knowledge/pgvector.js +24 -0
- package/dist/daemon/knowledge/units.d.ts +2 -2
- package/dist/daemon/knowledge/units.d.ts.map +1 -1
- package/dist/daemon/main.js +8271 -2956
- package/dist/daemon/mcp/server.d.ts +3 -3
- package/dist/daemon/mcp/server.d.ts.map +1 -1
- package/dist/daemon/mcp/server.js +1740 -81
- package/dist/daemon/mcp/tokens.d.ts +2 -2
- package/dist/daemon/mcp/tokens.d.ts.map +1 -1
- package/dist/daemon/mcp/tokens.js +5 -1
- package/dist/daemon/mcp/tool-registry.d.ts.map +1 -1
- package/dist/daemon/mcp/tool-registry.js +1 -0
- package/dist/daemon/mcp/tools/analytics.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/analytics.js +598 -24
- package/dist/daemon/mcp/tools/artifacts.js +560 -20
- package/dist/daemon/mcp/tools/boards.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/boards.js +567 -21
- package/dist/daemon/mcp/tools/branches.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/branches.js +624 -50
- package/dist/daemon/mcp/tools/card-types.js +558 -18
- package/dist/daemon/mcp/tools/cards.js +558 -18
- package/dist/daemon/mcp/tools/environment.js +566 -18
- package/dist/daemon/mcp/tools/gateway-channels.d.ts +4 -0
- package/dist/daemon/mcp/tools/gateway-channels.d.ts.map +1 -0
- package/dist/daemon/mcp/tools/gateway-channels.js +16187 -0
- package/dist/daemon/mcp/tools/knowledge.js +558 -18
- package/dist/daemon/mcp/tools/mcp-servers.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/mcp-servers.js +893 -18
- package/dist/daemon/mcp/tools/messages.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/messages.js +618 -32
- package/dist/daemon/mcp/tools/proxies.js +568 -20
- package/dist/daemon/mcp/tools/repos.js +558 -18
- package/dist/daemon/mcp/tools/schedules.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/schedules.js +561 -19
- package/dist/daemon/mcp/tools/search.js +558 -18
- package/dist/daemon/mcp/tools/sessions.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/sessions.js +571 -24
- package/dist/daemon/mcp/tools/tasks.js +558 -18
- package/dist/daemon/mcp/tools/users.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/users.js +577 -23
- package/dist/daemon/mcp/tools/widgets.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/widgets.js +759 -83
- package/dist/daemon/oauth-auth-helpers.d.ts +35 -0
- package/dist/daemon/oauth-auth-helpers.d.ts.map +1 -0
- package/dist/daemon/oauth-auth-helpers.js +14 -0
- package/dist/daemon/register-hooks.d.ts +4 -2
- package/dist/daemon/register-hooks.d.ts.map +1 -1
- package/dist/daemon/register-hooks.js +1158 -595
- package/dist/daemon/register-routes.d.ts +3 -2
- package/dist/daemon/register-routes.d.ts.map +1 -1
- package/dist/daemon/register-routes.js +3161 -812
- package/dist/daemon/register-services.d.ts +2 -2
- package/dist/daemon/register-services.d.ts.map +1 -1
- package/dist/daemon/register-services.js +2782 -739
- package/dist/daemon/services/artifacts.d.ts +34 -6
- package/dist/daemon/services/artifacts.d.ts.map +1 -1
- package/dist/daemon/services/artifacts.js +109 -8
- package/dist/daemon/services/assistant-knowledge.d.ts +2 -2
- package/dist/daemon/services/assistant-knowledge.d.ts.map +1 -1
- package/dist/daemon/services/board-comments.d.ts +8 -5
- package/dist/daemon/services/board-comments.d.ts.map +1 -1
- package/dist/daemon/services/board-comments.js +78 -13
- package/dist/daemon/services/board-objects.d.ts +8 -5
- package/dist/daemon/services/board-objects.d.ts.map +1 -1
- package/dist/daemon/services/board-objects.js +14 -4
- package/dist/daemon/services/boards.d.ts +39 -5
- package/dist/daemon/services/boards.d.ts.map +1 -1
- package/dist/daemon/services/boards.js +123 -8
- package/dist/daemon/services/branch-owners.d.ts +3 -1
- package/dist/daemon/services/branch-owners.d.ts.map +1 -1
- package/dist/daemon/services/branch-owners.js +31 -4
- package/dist/daemon/services/branches.d.ts +31 -8
- package/dist/daemon/services/branches.d.ts.map +1 -1
- package/dist/daemon/services/branches.js +272 -36
- package/dist/daemon/services/card-types.d.ts +3 -3
- package/dist/daemon/services/card-types.d.ts.map +1 -1
- package/dist/daemon/services/card-types.js +68 -7
- package/dist/daemon/services/cards.d.ts +19 -4
- package/dist/daemon/services/cards.d.ts.map +1 -1
- package/dist/daemon/services/cards.js +92 -8
- package/dist/daemon/services/check-auth.d.ts +2 -2
- package/dist/daemon/services/check-auth.d.ts.map +1 -1
- package/dist/daemon/services/claude-cli-integration.d.ts +4 -1
- package/dist/daemon/services/claude-cli-integration.d.ts.map +1 -1
- package/dist/daemon/services/claude-cli-integration.js +117 -65
- package/dist/daemon/services/claude-models.d.ts +3 -3
- package/dist/daemon/services/claude-models.d.ts.map +1 -1
- package/dist/daemon/services/claude-models.js +387 -273
- package/dist/daemon/services/config.d.ts +12 -4
- package/dist/daemon/services/config.d.ts.map +1 -1
- package/dist/daemon/services/config.js +39 -3
- package/dist/daemon/services/copilot-models.d.ts +3 -3
- package/dist/daemon/services/copilot-models.d.ts.map +1 -1
- package/dist/daemon/services/cursor-models.d.ts +3 -3
- package/dist/daemon/services/cursor-models.d.ts.map +1 -1
- package/dist/daemon/services/files.d.ts +3 -3
- package/dist/daemon/services/files.d.ts.map +1 -1
- package/dist/daemon/services/files.js +24 -5
- package/dist/daemon/services/gateway-channels-test.d.ts +24 -0
- package/dist/daemon/services/gateway-channels-test.d.ts.map +1 -0
- package/dist/daemon/services/gateway-channels-test.js +66 -0
- package/dist/daemon/services/gateway-channels.d.ts +3 -3
- package/dist/daemon/services/gateway-channels.d.ts.map +1 -1
- package/dist/daemon/services/gateway-channels.js +68 -7
- package/dist/daemon/services/gateway.d.ts +63 -3
- package/dist/daemon/services/gateway.d.ts.map +1 -1
- package/dist/daemon/services/gateway.js +640 -60
- package/dist/daemon/services/github-app-setup.d.ts +3 -3
- package/dist/daemon/services/github-app-setup.d.ts.map +1 -1
- package/dist/daemon/services/groups.d.ts +5 -5
- package/dist/daemon/services/groups.d.ts.map +1 -1
- package/dist/daemon/services/health-monitor.d.ts +34 -2
- package/dist/daemon/services/health-monitor.d.ts.map +1 -1
- package/dist/daemon/services/health-monitor.js +155 -30
- package/dist/daemon/services/knowledge-document-edits.d.ts +3 -3
- package/dist/daemon/services/knowledge-document-edits.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-documents.d.ts +3 -3
- package/dist/daemon/services/knowledge-documents.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-documents.js +92 -7
- package/dist/daemon/services/knowledge-embedding-indexer.d.ts +7 -2
- package/dist/daemon/services/knowledge-embedding-indexer.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-embedding-indexer.js +37 -3
- package/dist/daemon/services/knowledge-graph.d.ts +3 -3
- package/dist/daemon/services/knowledge-graph.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-indexing.d.ts +3 -3
- package/dist/daemon/services/knowledge-indexing.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-namespaces.d.ts +3 -3
- package/dist/daemon/services/knowledge-namespaces.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-namespaces.js +72 -8
- package/dist/daemon/services/knowledge-reindex.d.ts +3 -3
- package/dist/daemon/services/knowledge-reindex.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-reindex.js +28 -1
- package/dist/daemon/services/knowledge-search.d.ts +3 -3
- package/dist/daemon/services/knowledge-search.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-settings.d.ts +3 -3
- package/dist/daemon/services/knowledge-settings.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-settings.js +24 -0
- package/dist/daemon/services/knowledge-versions.d.ts +3 -3
- package/dist/daemon/services/knowledge-versions.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-versions.js +68 -7
- package/dist/daemon/services/leaderboard.d.ts +14 -6
- package/dist/daemon/services/leaderboard.d.ts.map +1 -1
- package/dist/daemon/services/leaderboard.js +74 -15
- package/dist/daemon/services/local-actions.d.ts +13 -0
- package/dist/daemon/services/local-actions.d.ts.map +1 -0
- package/dist/daemon/services/local-actions.js +120 -0
- package/dist/daemon/services/mcp-servers.d.ts +3 -3
- package/dist/daemon/services/mcp-servers.d.ts.map +1 -1
- package/dist/daemon/services/mcp-servers.js +68 -7
- package/dist/daemon/services/messages.d.ts +10 -6
- package/dist/daemon/services/messages.d.ts.map +1 -1
- package/dist/daemon/services/messages.js +87 -7
- package/dist/daemon/services/repos.d.ts +6 -6
- package/dist/daemon/services/repos.d.ts.map +1 -1
- package/dist/daemon/services/repos.js +131 -32
- package/dist/daemon/services/scheduler.d.ts +23 -27
- package/dist/daemon/services/scheduler.d.ts.map +1 -1
- package/dist/daemon/services/scheduler.js +55 -28
- package/dist/daemon/services/schedules.d.ts +3 -3
- package/dist/daemon/services/schedules.d.ts.map +1 -1
- package/dist/daemon/services/schedules.js +68 -7
- package/dist/daemon/services/session-env-selections.d.ts +3 -3
- package/dist/daemon/services/session-env-selections.d.ts.map +1 -1
- package/dist/daemon/services/session-mcp-servers.d.ts +3 -3
- package/dist/daemon/services/session-mcp-servers.d.ts.map +1 -1
- package/dist/daemon/services/session-streams.d.ts +29 -0
- package/dist/daemon/services/session-streams.d.ts.map +1 -0
- package/dist/daemon/services/session-streams.js +84 -0
- package/dist/daemon/services/session-token-service.d.ts.map +1 -1
- package/dist/daemon/services/session-token-service.js +11 -4
- package/dist/daemon/services/sessions.d.ts +9 -5
- package/dist/daemon/services/sessions.d.ts.map +1 -1
- package/dist/daemon/services/sessions.js +143 -10
- package/dist/daemon/services/tasks.d.ts +11 -5
- package/dist/daemon/services/tasks.d.ts.map +1 -1
- package/dist/daemon/services/tasks.js +199 -39
- package/dist/daemon/services/terminals.d.ts +21 -3
- package/dist/daemon/services/terminals.d.ts.map +1 -1
- package/dist/daemon/services/terminals.js +81 -25
- package/dist/daemon/services/thread-session-map.d.ts +3 -3
- package/dist/daemon/services/thread-session-map.d.ts.map +1 -1
- package/dist/daemon/services/thread-session-map.js +68 -7
- package/dist/daemon/services/user-avatar-sync.d.ts +21 -0
- package/dist/daemon/services/user-avatar-sync.d.ts.map +1 -0
- package/dist/daemon/services/user-avatar-sync.js +267 -0
- package/dist/daemon/services/users.d.ts +29 -9
- package/dist/daemon/services/users.d.ts.map +1 -1
- package/dist/daemon/services/users.js +383 -30
- package/dist/daemon/services/zone-trigger.d.ts.map +1 -1
- package/dist/daemon/services/zone-trigger.js +17 -4
- package/dist/daemon/setup/build-info.d.ts +1 -1
- package/dist/daemon/setup/build-info.d.ts.map +1 -1
- package/dist/daemon/setup/build-info.js +5 -1
- package/dist/daemon/setup/database.d.ts +8 -3
- package/dist/daemon/setup/database.d.ts.map +1 -1
- package/dist/daemon/setup/database.js +26 -6
- package/dist/daemon/setup/first-run-admin.d.ts +2 -2
- package/dist/daemon/setup/first-run-admin.d.ts.map +1 -1
- package/dist/daemon/setup/index.js +137 -25
- package/dist/daemon/setup/socketio.d.ts +10 -1
- package/dist/daemon/setup/socketio.d.ts.map +1 -1
- package/dist/daemon/setup/socketio.js +108 -18
- package/dist/daemon/startup.d.ts +13 -2
- package/dist/daemon/startup.d.ts.map +1 -1
- package/dist/daemon/startup.js +377 -94
- package/dist/daemon/utils/append-system-message.d.ts +2 -2
- package/dist/daemon/utils/append-system-message.d.ts.map +1 -1
- package/dist/daemon/utils/apply-session-config-defaults.d.ts.map +1 -1
- package/dist/daemon/utils/apply-session-config-defaults.js +12 -1
- package/dist/daemon/utils/authorization.d.ts +3 -1
- package/dist/daemon/utils/authorization.d.ts.map +1 -1
- package/dist/daemon/utils/authorization.js +36 -7
- package/dist/daemon/utils/branch-authorization.d.ts +30 -0
- package/dist/daemon/utils/branch-authorization.d.ts.map +1 -1
- package/dist/daemon/utils/branch-authorization.js +63 -5
- package/dist/daemon/utils/branch-inspect.d.ts +1 -0
- package/dist/daemon/utils/branch-inspect.d.ts.map +1 -1
- package/dist/daemon/utils/branch-inspect.js +11 -3
- package/dist/daemon/utils/emit-service-event.d.ts +56 -0
- package/dist/daemon/utils/emit-service-event.d.ts.map +1 -0
- package/dist/daemon/utils/emit-service-event.js +23 -0
- package/dist/daemon/utils/executor-read-impersonation.d.ts +2 -2
- package/dist/daemon/utils/executor-read-impersonation.d.ts.map +1 -1
- package/dist/daemon/utils/git-impersonation.d.ts +10 -10
- package/dist/daemon/utils/git-impersonation.d.ts.map +1 -1
- package/dist/daemon/utils/git-remote-credential-scan.d.ts +3 -3
- package/dist/daemon/utils/git-remote-credential-scan.d.ts.map +1 -1
- package/dist/daemon/utils/git-remote-credential-scan.js +6 -2
- package/dist/daemon/utils/mcp-header-secrets.d.ts +3 -5
- package/dist/daemon/utils/mcp-header-secrets.d.ts.map +1 -1
- package/dist/daemon/utils/mcp-header-secrets.js +31 -2
- package/dist/daemon/utils/mcp-token-authorization.d.ts +18 -13
- package/dist/daemon/utils/mcp-token-authorization.d.ts.map +1 -1
- package/dist/daemon/utils/mcp-token-authorization.js +11 -5
- package/dist/daemon/utils/open-source-telemetry-config.d.ts +6 -0
- package/dist/daemon/utils/open-source-telemetry-config.d.ts.map +1 -0
- package/dist/daemon/utils/open-source-telemetry-config.js +21 -0
- package/dist/daemon/utils/open-source-telemetry-heartbeat.d.ts +7 -0
- package/dist/daemon/utils/open-source-telemetry-heartbeat.d.ts.map +1 -0
- package/dist/daemon/utils/open-source-telemetry-heartbeat.js +15 -0
- package/dist/daemon/utils/open-source-telemetry-usage.d.ts +9 -0
- package/dist/daemon/utils/open-source-telemetry-usage.d.ts.map +1 -0
- package/dist/daemon/utils/open-source-telemetry-usage.js +121 -0
- package/dist/daemon/utils/realign-repo-origin.d.ts +3 -3
- package/dist/daemon/utils/realign-repo-origin.d.ts.map +1 -1
- package/dist/daemon/utils/realign-repo-origin.js +47 -16
- package/dist/daemon/utils/realtime-access-cache.d.ts +9 -0
- package/dist/daemon/utils/realtime-access-cache.d.ts.map +1 -1
- package/dist/daemon/utils/realtime-access-cache.js +24 -0
- package/dist/daemon/utils/realtime-publish.d.ts +26 -0
- package/dist/daemon/utils/realtime-publish.d.ts.map +1 -1
- package/dist/daemon/utils/realtime-publish.js +171 -12
- package/dist/daemon/utils/session-queue-tenant-scope.d.ts +24 -0
- package/dist/daemon/utils/session-queue-tenant-scope.d.ts.map +1 -0
- package/dist/daemon/utils/session-queue-tenant-scope.js +133 -0
- package/dist/daemon/utils/session-state-hooks.d.ts +3 -3
- package/dist/daemon/utils/session-state-hooks.d.ts.map +1 -1
- package/dist/daemon/utils/session-turn-lock.d.ts +8 -1
- package/dist/daemon/utils/session-turn-lock.d.ts.map +1 -1
- package/dist/daemon/utils/session-turn-lock.js +25 -2
- package/dist/daemon/utils/spawn-executor.d.ts +23 -1
- package/dist/daemon/utils/spawn-executor.d.ts.map +1 -1
- package/dist/daemon/utils/spawn-executor.js +34 -4
- package/dist/daemon/utils/tenant-db-scope.d.ts +20 -0
- package/dist/daemon/utils/tenant-db-scope.d.ts.map +1 -0
- package/dist/daemon/utils/tenant-db-scope.js +114 -0
- package/dist/daemon/utils/unix-group-init.d.ts +3 -3
- package/dist/daemon/utils/unix-group-init.d.ts.map +1 -1
- package/dist/daemon/utils/upload.d.ts +6 -9
- package/dist/daemon/utils/upload.d.ts.map +1 -1
- package/dist/daemon/utils/upload.js +30 -37
- package/dist/daemon/widgets/env-vars/index.d.ts +26 -1
- package/dist/daemon/widgets/env-vars/index.d.ts.map +1 -1
- package/dist/daemon/widgets/env-vars/index.js +145 -21
- package/dist/daemon/widgets/gateway-token/index.d.ts +114 -0
- package/dist/daemon/widgets/gateway-token/index.d.ts.map +1 -0
- package/dist/daemon/widgets/gateway-token/index.js +14711 -0
- package/dist/daemon/widgets/index.d.ts.map +1 -1
- package/dist/daemon/widgets/index.js +327 -37
- package/dist/daemon/widgets/registry.d.ts +7 -0
- package/dist/daemon/widgets/registry.d.ts.map +1 -1
- package/dist/daemon/widgets/submissions.js +12 -9
- package/dist/executor/commands/environment.d.ts.map +1 -1
- package/dist/executor/commands/environment.js +9 -5
- package/dist/executor/commands/git.d.ts.map +1 -1
- package/dist/executor/commands/git.js +3 -1
- package/dist/executor/db/feathers-repositories.d.ts +19 -1
- package/dist/executor/db/feathers-repositories.d.ts.map +1 -1
- package/dist/executor/db/feathers-repositories.js +31 -1
- package/dist/executor/git/index.d.ts +8 -0
- package/dist/executor/git/index.d.ts.map +1 -0
- package/dist/executor/git/index.js +7 -0
- package/dist/executor/handlers/sdk/base-executor.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/base-executor.js +4 -1
- package/dist/executor/handlers/sdk/claude.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/claude.js +1 -1
- package/dist/executor/handlers/sdk/codex.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/codex.js +1 -1
- package/dist/executor/handlers/sdk/copilot.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/copilot.js +1 -1
- package/dist/executor/handlers/sdk/cursor.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/cursor.js +1 -0
- package/dist/executor/handlers/sdk/gemini.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/gemini.js +1 -1
- package/dist/executor/handlers/sdk/git-safe-directory.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/git-safe-directory.js +1 -1
- package/dist/executor/handlers/sdk/opencode.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/opencode.js +1 -1
- package/dist/executor/payload-types.d.ts +5 -5
- package/dist/executor/sdk-handlers/base/diff-enrichment.js +1 -1
- package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts +8 -1
- package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/base/mcp-scoping.js +58 -6
- package/dist/executor/sdk-handlers/claude/claude-tool.d.ts +2 -2
- package/dist/executor/sdk-handlers/claude/claude-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/claude-tool.js +2 -2
- package/dist/executor/sdk-handlers/claude/prompt-service.d.ts +13 -3
- package/dist/executor/sdk-handlers/claude/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/prompt-service.js +16 -3
- package/dist/executor/sdk-handlers/claude/query-builder.d.ts +2 -1
- package/dist/executor/sdk-handlers/claude/query-builder.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/query-builder.js +2 -1
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +8 -12
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/codex-tool.js +14 -17
- package/dist/executor/sdk-handlers/codex/normalizer.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/normalizer.js +11 -1
- package/dist/executor/sdk-handlers/codex/pricing/litellm-openai-model-prices.json +3663 -0
- package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.d.ts +31 -0
- package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.d.ts.map +1 -0
- package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.js +46 -0
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts +3 -2
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/prompt-service.js +131 -12
- package/dist/executor/sdk-handlers/codex/usage.d.ts +14 -23
- package/dist/executor/sdk-handlers/codex/usage.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/usage.js +18 -33
- package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts +2 -2
- package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/copilot/copilot-tool.js +2 -2
- package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts +3 -2
- package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/copilot/prompt-service.js +4 -1
- package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts +2 -2
- package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/gemini/gemini-tool.js +2 -2
- package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts +3 -2
- package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/gemini/prompt-service.js +4 -1
- package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts +3 -2
- package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/opencode/opencode-tool.js +4 -1
- package/dist/executor/services/feathers-client.d.ts.map +1 -1
- package/dist/executor/services/feathers-client.js +124 -25
- package/dist/git/index.cjs +1101 -0
- package/dist/git/index.d.ts +533 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +1022 -0
- package/dist/git/package.json +21 -0
- package/dist/git/pure.cjs +185 -0
- package/dist/git/pure.d.ts +39 -0
- package/dist/git/pure.d.ts.map +1 -0
- package/dist/git/pure.js +139 -0
- package/dist/ui/assets/AgorEmojiPickerInner-leeNywMc.js +1 -0
- package/dist/ui/assets/App-Dpl4Cc0U.js +4 -0
- package/dist/ui/assets/App-Dpl4Cc0U.js.gz +0 -0
- package/dist/ui/assets/AppNode-wN3UZlFK.js +1 -0
- package/dist/ui/assets/AppNode-wN3UZlFK.js.gz +0 -0
- package/dist/ui/assets/ArtifactConsentModal-DjzXcP_L.js +1 -0
- package/dist/ui/assets/ArtifactConsentModal-DjzXcP_L.js.gz +0 -0
- package/dist/ui/assets/ArtifactFullscreenPage-B3b_EZ0F.js +9 -0
- package/dist/ui/assets/ArtifactFullscreenPage-B3b_EZ0F.js.gz +0 -0
- package/dist/ui/assets/ArtifactNode-DISy2T-6.js +9 -0
- package/dist/ui/assets/ArtifactNode-DISy2T-6.js.gz +0 -0
- package/dist/ui/assets/AutocompleteTextarea-DUpsoEGr.js +19 -0
- package/dist/ui/assets/AutocompleteTextarea-DUpsoEGr.js.gz +0 -0
- package/dist/ui/assets/BoardObjectNodes-BakeGpIX.js +34 -0
- package/dist/ui/assets/BoardObjectNodes-BakeGpIX.js.gz +0 -0
- package/dist/ui/assets/CodeEditor.inner-HmSdTLW5.js +7 -0
- package/dist/ui/assets/CodeEditor.inner-HmSdTLW5.js.gz +0 -0
- package/dist/ui/assets/ConversationView-mWaA-B1f.js +1 -0
- package/dist/ui/assets/ConversationView-mWaA-B1f.js.gz +0 -0
- package/dist/ui/assets/EmbeddedTerminal-NNoyPA81.js +2 -0
- package/dist/ui/assets/EmbeddedTerminal-NNoyPA81.js.gz +0 -0
- package/dist/ui/assets/KnowledgePage-CkxVnRvz.js +24 -0
- package/dist/ui/assets/KnowledgePage-CkxVnRvz.js.gz +0 -0
- package/dist/ui/assets/{MarketingScreenshotPage-zv5RUCuV.js → MarketingScreenshotPage-B86Gs8jx.js} +2 -2
- package/dist/ui/assets/MarketingScreenshotPage-B86Gs8jx.js.gz +0 -0
- package/dist/ui/assets/MobileApp-BPs-SXvz.js +1 -0
- package/dist/ui/assets/MobileApp-BPs-SXvz.js.gz +0 -0
- package/dist/ui/assets/{SessionCanvas-mEmYGZhC.css → SessionCanvas-Bh7Yg5dZ.css} +1 -1
- package/dist/ui/assets/SessionCanvas-Bh7Yg5dZ.css.gz +0 -0
- package/dist/ui/assets/SessionCanvas-xVfDoEtz.js +13 -0
- package/dist/ui/assets/SessionCanvas-xVfDoEtz.js.gz +0 -0
- package/dist/ui/assets/{StreamdownDemoPage-wzWaqWwr.js → StreamdownDemoPage-CvWLzVsv.js} +2 -2
- package/dist/ui/assets/StreamdownDemoPage-CvWLzVsv.js.gz +0 -0
- package/dist/ui/assets/TerminalModal-ExOgsuOP.js +2 -0
- package/dist/ui/assets/TerminalModal-ExOgsuOP.js.gz +0 -0
- package/dist/ui/assets/ThemeSwitcher-Cgyp5ruu.js +1 -0
- package/dist/ui/assets/ThemeSwitcher-Cgyp5ruu.js.gz +0 -0
- package/dist/ui/assets/ThemedSyntaxHighlighter.inner-rpCN9S6K.js +1 -0
- package/dist/ui/assets/{antd-CfbbHJOz.js → antd-BCqimh1J.js} +5 -5
- package/dist/ui/assets/{antd-CfbbHJOz.js.gz → antd-BCqimh1J.js.gz} +0 -0
- package/dist/ui/assets/architecture-U656AL7Q-BxSQIjrE.js +1 -0
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-pDpGHSqT.js +36 -0
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-pDpGHSqT.js.gz +0 -0
- package/dist/ui/assets/{blockDiagram-VD42YOAC-BhZaEN19.js → blockDiagram-VD42YOAC-uP8JTJpK.js} +4 -4
- package/dist/ui/assets/blockDiagram-VD42YOAC-uP8JTJpK.js.gz +0 -0
- package/dist/ui/assets/{c4Diagram-YG6GDRKO-Dk_UH-sY.js → c4Diagram-YG6GDRKO-qQe72Mm7.js} +2 -2
- package/dist/ui/assets/c4Diagram-YG6GDRKO-qQe72Mm7.js.gz +0 -0
- package/dist/ui/assets/channel-CoUBs6Zn.js +1 -0
- package/dist/ui/assets/{chunk-4BX2VUAB-XprbG2TG.js → chunk-4BX2VUAB-sz-YE8Nt.js} +1 -1
- package/dist/ui/assets/chunk-4ZMWKKQ3-3oKtfWXp.js +3 -0
- package/dist/ui/assets/chunk-4ZMWKKQ3-3oKtfWXp.js.gz +0 -0
- package/dist/ui/assets/chunk-55IACEB6-BS04dgKF.js +1 -0
- package/dist/ui/assets/{chunk-ABZYJK2D-BJcrryHK.js → chunk-ABZYJK2D-t3Gkphds.js} +3 -3
- package/dist/ui/assets/chunk-ABZYJK2D-t3Gkphds.js.gz +0 -0
- package/dist/ui/assets/{chunk-AGHRB4JF-DvxmfbM0.js → chunk-AGHRB4JF-D_QmWxbY.js} +1 -1
- package/dist/ui/assets/chunk-AGHRB4JF-D_QmWxbY.js.gz +0 -0
- package/dist/ui/assets/{chunk-ATLVNIR6-DbeJ0OrR.js → chunk-ATLVNIR6-Bmg7-Ufz.js} +1 -1
- package/dist/ui/assets/chunk-ATLVNIR6-Bmg7-Ufz.js.gz +0 -0
- package/dist/ui/assets/{chunk-B4BG7PRW-C53q2ggf.js → chunk-B4BG7PRW-dnSEE1u-.js} +3 -3
- package/dist/ui/assets/chunk-B4BG7PRW-dnSEE1u-.js.gz +0 -0
- package/dist/ui/assets/{chunk-CVBHYZKI-B3EBSlb3.js → chunk-CVBHYZKI-BStaYnF0.js} +1 -1
- package/dist/ui/assets/{chunk-DI55MBZ5-vIyNEQN-.js → chunk-DI55MBZ5-28dvx6o3.js} +1 -1
- package/dist/ui/assets/chunk-DI55MBZ5-28dvx6o3.js.gz +0 -0
- package/dist/ui/assets/chunk-EXTU4WIE-X-FURkEh.js +1 -0
- package/dist/ui/assets/{chunk-FMBD7UC4-rddmfK-Z.js → chunk-FMBD7UC4-C_63gC9S.js} +1 -1
- package/dist/ui/assets/{chunk-HN2XXSSU-Dttqcg3b.js → chunk-HN2XXSSU-UFD374KI.js} +1 -1
- package/dist/ui/assets/chunk-HN2XXSSU-UFD374KI.js.gz +0 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-B60hLNeR.js +11 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-B60hLNeR.js.gz +0 -0
- package/dist/ui/assets/{chunk-JZLCHNYA-EUmx2y4H.js → chunk-JZLCHNYA-ButC6pwN.js} +5 -5
- package/dist/ui/assets/chunk-JZLCHNYA-ButC6pwN.js.gz +0 -0
- package/dist/ui/assets/{chunk-MI3HLSF2-65n9Mkyc.js → chunk-MI3HLSF2-BivYzoSV.js} +1 -1
- package/dist/ui/assets/chunk-MI3HLSF2-BivYzoSV.js.gz +0 -0
- package/dist/ui/assets/chunk-N4CR4FBY-mVWzo5wJ.js +2 -0
- package/dist/ui/assets/chunk-N4CR4FBY-mVWzo5wJ.js.gz +0 -0
- package/dist/ui/assets/{chunk-QN33PNHL-DsRKK6NR.js → chunk-QN33PNHL-tXtHZpaG.js} +1 -1
- package/dist/ui/assets/{chunk-QXUST7PY-BCYnMiS3.js → chunk-QXUST7PY-DATib_Vv.js} +2 -2
- package/dist/ui/assets/chunk-QXUST7PY-DATib_Vv.js.gz +0 -0
- package/dist/ui/assets/chunk-QZHKN3VN-y6l249e5.js +1 -0
- package/dist/ui/assets/chunk-S3R3BYOJ-BEtfmflI.js +2 -0
- package/dist/ui/assets/chunk-S3R3BYOJ-BEtfmflI.js.gz +0 -0
- package/dist/ui/assets/{chunk-TZMSLE5B-BuQUQcTr.js → chunk-TZMSLE5B-BY1ZtogK.js} +1 -1
- package/dist/ui/assets/chunk-TZMSLE5B-BY1ZtogK.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-BYvq-uPY.js +1 -0
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-BYvq-uPY.js +1 -0
- package/dist/ui/assets/constants-CYzQKfD1.js +1 -0
- package/dist/ui/assets/{cose-bilkent-S5V4N54A-CnPB3ARO.js → cose-bilkent-S5V4N54A-DPvYrqGG.js} +1 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-DPvYrqGG.js.gz +0 -0
- package/dist/ui/assets/{dagre-6UL2VRFP-DhS-k_Se.js → dagre-6UL2VRFP-D800J6qb.js} +1 -1
- package/dist/ui/assets/dagre-6UL2VRFP-D800J6qb.js.gz +0 -0
- package/dist/ui/assets/{dagre-KgLoHEuy.js → dagre-TNc4wezg.js} +1 -1
- package/dist/ui/assets/dagre-TNc4wezg.js.gz +0 -0
- package/dist/ui/assets/diagram-PSM6KHXK-CGdP9F-X.js +24 -0
- package/dist/ui/assets/diagram-PSM6KHXK-CGdP9F-X.js.gz +0 -0
- package/dist/ui/assets/{diagram-QEK2KX5R-BPCitvbo.js → diagram-QEK2KX5R-BD5lOCe5.js} +1 -1
- package/dist/ui/assets/diagram-QEK2KX5R-BD5lOCe5.js.gz +0 -0
- package/dist/ui/assets/{diagram-S2PKOQOG-NW4uK6sx.js → diagram-S2PKOQOG-cp3l22vN.js} +1 -1
- package/dist/ui/assets/diagram-S2PKOQOG-cp3l22vN.js.gz +0 -0
- package/dist/ui/assets/editor-Cr0W5BQI.js +39 -0
- package/dist/ui/assets/editor-Cr0W5BQI.js.gz +0 -0
- package/dist/ui/assets/emoji-Bv3m24sO.js +3 -0
- package/dist/ui/assets/emoji-Bv3m24sO.js.gz +0 -0
- package/dist/ui/assets/{erDiagram-Q2GNP2WA-me1fboaf.js → erDiagram-Q2GNP2WA-CQSXRgqr.js} +2 -2
- package/dist/ui/assets/erDiagram-Q2GNP2WA-CQSXRgqr.js.gz +0 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-CKcKpkph.js +162 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-CKcKpkph.js.gz +0 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-DlAHzXO5.js +267 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-DlAHzXO5.js.gz +0 -0
- package/dist/ui/assets/{gitGraph-F6HP7TQM-CfFE_uAC.js → gitGraph-F6HP7TQM-DeuXy4B1.js} +1 -1
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-aB-AI4Vq.js +65 -0
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-aB-AI4Vq.js.gz +0 -0
- package/dist/ui/assets/index-B-qHc0o5.js +63 -0
- package/dist/ui/assets/index-B-qHc0o5.js.gz +0 -0
- package/dist/ui/assets/{index-DxuPq13l.css → index-qkT7Qqm2.css} +1 -1
- package/dist/ui/assets/index-qkT7Qqm2.css.gz +0 -0
- package/dist/ui/assets/{info-NVLQJR56-i_xHYg3f.js → info-NVLQJR56-B9PG7xsc.js} +1 -1
- package/dist/ui/assets/{infoDiagram-ER5ION4S-2NL93b78.js → infoDiagram-ER5ION4S-C5Wpoqim.js} +1 -1
- package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-CZF-2DHU.js → journeyDiagram-XKPGCS4Q-CHLziqfS.js} +3 -3
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CHLziqfS.js.gz +0 -0
- package/dist/ui/assets/{kanban-definition-3W4ZIXB7-CfvJIOny.js → kanban-definition-3W4ZIXB7-Dq7GzQE_.js} +1 -1
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-Dq7GzQE_.js.gz +0 -0
- package/dist/ui/assets/{line-DDv8kOJk.js → line-DHKNg83I.js} +1 -1
- package/dist/ui/assets/{linear-Daef-l29.js → linear-BvUfn0I8.js} +1 -1
- package/dist/ui/assets/linear-BvUfn0I8.js.gz +0 -0
- package/dist/ui/assets/{mermaid-parser.core-CdK9QgYV.js → mermaid-parser.core-C6d9tKoo.js} +2 -2
- package/dist/ui/assets/mermaid-parser.core-C6d9tKoo.js.gz +0 -0
- package/dist/ui/assets/mermaid.core-CxE5KezR.js +11 -0
- package/dist/ui/assets/mermaid.core-CxE5KezR.js.gz +0 -0
- package/dist/ui/assets/{mindmap-definition-VGOIOE7T-Cb3QMflX.js → mindmap-definition-VGOIOE7T-DmPoQ48w.js} +1 -1
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-DmPoQ48w.js.gz +0 -0
- package/dist/ui/assets/{packet-BFZMPI3H-Bm2uwz4i.js → packet-BFZMPI3H-JZEkVZxU.js} +1 -1
- package/dist/ui/assets/{particles-DsJFOarW.js → particles-CxMmUw86.js} +1 -1
- package/dist/ui/assets/particles-CxMmUw86.js.gz +0 -0
- package/dist/ui/assets/{pie-7BOR55EZ-5i17tVnF.js → pie-7BOR55EZ-_1II5pYQ.js} +1 -1
- package/dist/ui/assets/{pieDiagram-ADFJNKIX-BxIwQWvw.js → pieDiagram-ADFJNKIX-DrNkH33i.js} +1 -1
- package/dist/ui/assets/pieDiagram-ADFJNKIX-DrNkH33i.js.gz +0 -0
- package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-B5HPe4ga.js → quadrantDiagram-AYHSOK5B-DOpC-HEF.js} +3 -3
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-DOpC-HEF.js.gz +0 -0
- package/dist/ui/assets/{radar-NHE76QYJ-BTn-tq0k.js → radar-NHE76QYJ-DDmqhzEZ.js} +1 -1
- package/dist/ui/assets/reactflow-D98uPOMq.js +2 -0
- package/dist/ui/assets/reactflow-D98uPOMq.js.gz +0 -0
- package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-YfI6llkX.js → requirementDiagram-UZGBJVZJ-Bzx0iEPP.js} +1 -1
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-Bzx0iEPP.js.gz +0 -0
- package/dist/ui/assets/{sandpack-D7koO5op.js → sandpack-059Z4UWP.js} +38 -38
- package/dist/ui/assets/sandpack-059Z4UWP.js.gz +0 -0
- package/dist/ui/assets/sandpackDefaults-CPMNDsw7.js +1 -0
- package/dist/ui/assets/sandpackDefaults-CPMNDsw7.js.gz +0 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-Do9pvfDv.js +10 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-Do9pvfDv.js.gz +0 -0
- package/dist/ui/assets/{sequenceDiagram-WL72ISMW-DAe4Um17.js → sequenceDiagram-WL72ISMW-CN8neUTA.js} +6 -6
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-CN8neUTA.js.gz +0 -0
- package/dist/ui/assets/src-DEbsv3pp.js +34 -0
- package/dist/ui/assets/src-DEbsv3pp.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BluWJi8n.js +1 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BluWJi8n.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-DeyqBMDR.js +1 -0
- package/dist/ui/assets/streamdown-BT1twtFc.js +521 -0
- package/dist/ui/assets/streamdown-BT1twtFc.js.gz +0 -0
- package/dist/ui/assets/syntax-CBu6nLfm.js +9 -0
- package/dist/ui/assets/syntax-CBu6nLfm.js.gz +0 -0
- package/dist/ui/assets/{timeline-definition-IT6M3QCI-D6P5txjT.js → timeline-definition-IT6M3QCI-WdUNkiRj.js} +16 -16
- package/dist/ui/assets/timeline-definition-IT6M3QCI-WdUNkiRj.js.gz +0 -0
- package/dist/ui/assets/{treemap-KMMF4GRG-Bitm3gy4.js → treemap-KMMF4GRG-CoriU4Jl.js} +1 -1
- package/dist/ui/assets/{useUserLocalStorage-Ckb8HsIw.js → useUserLocalStorage-GidNiOPC.js} +1 -1
- package/dist/ui/assets/useUserLocalStorage-GidNiOPC.js.gz +0 -0
- package/dist/ui/assets/{xychartDiagram-PRI3JC2R-CsybjUbd.js → xychartDiagram-PRI3JC2R-CgBAKNt2.js} +1 -1
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-CgBAKNt2.js.gz +0 -0
- package/dist/ui/index.html +11 -11
- package/dist/ui/index.html.gz +0 -0
- package/package.json +6 -5
- package/scripts/postinstall.js +27 -19
- package/dist/cli/commands/daemon/sync.d.ts.map +0 -1
- package/dist/ui/assets/App-DcEY8Ota.js +0 -3
- package/dist/ui/assets/App-DcEY8Ota.js.gz +0 -0
- package/dist/ui/assets/ArtifactConsentModal-CiCbK9iv.js +0 -1
- package/dist/ui/assets/ArtifactConsentModal-CiCbK9iv.js.gz +0 -0
- package/dist/ui/assets/ArtifactFullscreenPage-CfsTEGKd.js +0 -9
- package/dist/ui/assets/ArtifactFullscreenPage-CfsTEGKd.js.gz +0 -0
- package/dist/ui/assets/AutocompleteTextarea-BAFFH_5e.js +0 -18
- package/dist/ui/assets/AutocompleteTextarea-BAFFH_5e.js.gz +0 -0
- package/dist/ui/assets/BoardObjectNodes-D-O6bZIG.js +0 -34
- package/dist/ui/assets/BoardObjectNodes-D-O6bZIG.js.gz +0 -0
- package/dist/ui/assets/CodeEditor.inner-DBgsP4tn.js +0 -8
- package/dist/ui/assets/CodeEditor.inner-DBgsP4tn.js.gz +0 -0
- package/dist/ui/assets/ConversationView-CUWR0gR6.js +0 -1
- package/dist/ui/assets/ConversationView-CUWR0gR6.js.gz +0 -0
- package/dist/ui/assets/KnowledgePage-B2bzlXfn.js +0 -24
- package/dist/ui/assets/KnowledgePage-B2bzlXfn.js.gz +0 -0
- package/dist/ui/assets/MarketingScreenshotPage-zv5RUCuV.js.gz +0 -0
- package/dist/ui/assets/MobileApp-VgVnsnsN.js +0 -1
- package/dist/ui/assets/MobileApp-VgVnsnsN.js.gz +0 -0
- package/dist/ui/assets/SessionCanvas-f1-1Gbcw.js +0 -20
- package/dist/ui/assets/SessionCanvas-f1-1Gbcw.js.gz +0 -0
- package/dist/ui/assets/SessionCanvas-mEmYGZhC.css.gz +0 -0
- package/dist/ui/assets/StreamdownDemoPage-wzWaqWwr.js.gz +0 -0
- package/dist/ui/assets/ThemeSwitcher-Dly2y9pi.js +0 -1
- package/dist/ui/assets/ThemeSwitcher-Dly2y9pi.js.gz +0 -0
- package/dist/ui/assets/architecture-U656AL7Q-CykGFbQU.js +0 -1
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-C8HXAenz.js +0 -36
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-C8HXAenz.js.gz +0 -0
- package/dist/ui/assets/blockDiagram-VD42YOAC-BhZaEN19.js.gz +0 -0
- package/dist/ui/assets/c4Diagram-YG6GDRKO-Dk_UH-sY.js.gz +0 -0
- package/dist/ui/assets/channel-D6_nUWlW.js +0 -1
- package/dist/ui/assets/chunk-55IACEB6-ByzqIgSb.js +0 -1
- package/dist/ui/assets/chunk-ABZYJK2D-BJcrryHK.js.gz +0 -0
- package/dist/ui/assets/chunk-AGHRB4JF-DvxmfbM0.js.gz +0 -0
- package/dist/ui/assets/chunk-ATLVNIR6-DbeJ0OrR.js.gz +0 -0
- package/dist/ui/assets/chunk-B4BG7PRW-C53q2ggf.js.gz +0 -0
- package/dist/ui/assets/chunk-DI55MBZ5-vIyNEQN-.js.gz +0 -0
- package/dist/ui/assets/chunk-EXTU4WIE-B3ObkuOm.js +0 -1
- package/dist/ui/assets/chunk-HN2XXSSU-Dttqcg3b.js.gz +0 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-DbNDev3D.js +0 -11
- package/dist/ui/assets/chunk-JA3XYJ7Z-DbNDev3D.js.gz +0 -0
- package/dist/ui/assets/chunk-JZLCHNYA-EUmx2y4H.js.gz +0 -0
- package/dist/ui/assets/chunk-MI3HLSF2-65n9Mkyc.js.gz +0 -0
- package/dist/ui/assets/chunk-N4CR4FBY-mv5koXqW.js +0 -2
- package/dist/ui/assets/chunk-N4CR4FBY-mv5koXqW.js.gz +0 -0
- package/dist/ui/assets/chunk-QXUST7PY-BCYnMiS3.js.gz +0 -0
- package/dist/ui/assets/chunk-QZHKN3VN-HucAw4xW.js +0 -1
- package/dist/ui/assets/chunk-S3R3BYOJ-CWMEa9Dc.js +0 -2
- package/dist/ui/assets/chunk-S3R3BYOJ-CWMEa9Dc.js.gz +0 -0
- package/dist/ui/assets/chunk-TZMSLE5B-BuQUQcTr.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-CUT3rPTB.js +0 -1
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-CUT3rPTB.js +0 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-CnPB3ARO.js.gz +0 -0
- package/dist/ui/assets/dagre-6UL2VRFP-DhS-k_Se.js.gz +0 -0
- package/dist/ui/assets/dagre-KgLoHEuy.js.gz +0 -0
- package/dist/ui/assets/diagram-PSM6KHXK-BZg3MJmb.js +0 -24
- package/dist/ui/assets/diagram-PSM6KHXK-BZg3MJmb.js.gz +0 -0
- package/dist/ui/assets/diagram-QEK2KX5R-BPCitvbo.js.gz +0 -0
- package/dist/ui/assets/diagram-S2PKOQOG-NW4uK6sx.js.gz +0 -0
- package/dist/ui/assets/editor-CzFWIUw2.js +0 -39
- package/dist/ui/assets/editor-CzFWIUw2.js.gz +0 -0
- package/dist/ui/assets/emoji-Dkz4Zzv_.js +0 -3
- package/dist/ui/assets/emoji-Dkz4Zzv_.js.gz +0 -0
- package/dist/ui/assets/erDiagram-Q2GNP2WA-me1fboaf.js.gz +0 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-DzE8dGsh.js +0 -162
- package/dist/ui/assets/flowDiagram-NV44I4VS-DzE8dGsh.js.gz +0 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-CFQD09Mi.js +0 -267
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-CFQD09Mi.js.gz +0 -0
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CaVoxU4C.js +0 -65
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CaVoxU4C.js.gz +0 -0
- package/dist/ui/assets/index-BN5_Qq7R.js +0 -324
- package/dist/ui/assets/index-BN5_Qq7R.js.gz +0 -0
- package/dist/ui/assets/index-DxuPq13l.css.gz +0 -0
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CZF-2DHU.js.gz +0 -0
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-CfvJIOny.js.gz +0 -0
- package/dist/ui/assets/katex-CamJ39w1.js +0 -257
- package/dist/ui/assets/katex-CamJ39w1.js.gz +0 -0
- package/dist/ui/assets/linear-Daef-l29.js.gz +0 -0
- package/dist/ui/assets/mermaid-parser.core-CdK9QgYV.js.gz +0 -0
- package/dist/ui/assets/mermaid.core-D6GS9mU-.js +0 -11
- package/dist/ui/assets/mermaid.core-D6GS9mU-.js.gz +0 -0
- package/dist/ui/assets/message-SqLqNYcv.js +0 -36
- package/dist/ui/assets/message-SqLqNYcv.js.gz +0 -0
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-Cb3QMflX.js.gz +0 -0
- package/dist/ui/assets/particles-DsJFOarW.js.gz +0 -0
- package/dist/ui/assets/pieDiagram-ADFJNKIX-BxIwQWvw.js.gz +0 -0
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-B5HPe4ga.js.gz +0 -0
- package/dist/ui/assets/reactflow-Bf74ngoo.js +0 -2
- package/dist/ui/assets/reactflow-Bf74ngoo.js.gz +0 -0
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-YfI6llkX.js.gz +0 -0
- package/dist/ui/assets/sandpack-D7koO5op.js.gz +0 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DOk_B10B.js +0 -10
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DOk_B10B.js.gz +0 -0
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-DAe4Um17.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-CCesDu_C.js +0 -1
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-CCesDu_C.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-CMlIrsoO.js +0 -1
- package/dist/ui/assets/syntax-C-M-8jOU.js +0 -10
- package/dist/ui/assets/syntax-C-M-8jOU.js.gz +0 -0
- package/dist/ui/assets/theme-BQZdiqwv.js +0 -1
- package/dist/ui/assets/timeline-definition-IT6M3QCI-D6P5txjT.js.gz +0 -0
- package/dist/ui/assets/useUserLocalStorage-Ckb8HsIw.js.gz +0 -0
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-CsybjUbd.js.gz +0 -0
- /package/dist/cli/commands/{admin → local}/sync-unix.d.ts +0 -0
|
@@ -125,6 +125,13 @@ function generateTaskId() {
|
|
|
125
125
|
return Array.from(bytes).map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
126
126
|
}
|
|
127
127
|
function findExecutorPath() {
|
|
128
|
+
const configuredPath = process.env.AGOR_EXECUTOR_PATH;
|
|
129
|
+
if (configuredPath) {
|
|
130
|
+
if (!existsSync(configuredPath)) {
|
|
131
|
+
throw new Error(`Configured AGOR_EXECUTOR_PATH does not exist: ${configuredPath}`);
|
|
132
|
+
}
|
|
133
|
+
return configuredPath;
|
|
134
|
+
}
|
|
128
135
|
const dirname = typeof __dirname !== "undefined" ? __dirname : path4.dirname(fileURLToPath(import.meta.url));
|
|
129
136
|
const possiblePaths = [
|
|
130
137
|
path4.join(dirname, "../executor/cli.js"),
|
|
@@ -423,12 +430,16 @@ function createServiceToken(jwtSecret, expiresIn, scope = {}) {
|
|
|
423
430
|
expiresIn || "5m"
|
|
424
431
|
);
|
|
425
432
|
}
|
|
426
|
-
function
|
|
433
|
+
function serviceTokenScopeForParams(params) {
|
|
434
|
+
const tenantId = params?.tenant?.tenant_id ?? params?.tenant_id ?? params?.user?.tenant_id;
|
|
435
|
+
return tenantId ? { tenant_id: tenantId } : {};
|
|
436
|
+
}
|
|
437
|
+
function generateSessionToken(app, scope = {}) {
|
|
427
438
|
const jwtSecret = app.settings.authentication?.secret;
|
|
428
439
|
if (!jwtSecret) {
|
|
429
440
|
throw new Error("JWT secret not configured in app settings");
|
|
430
441
|
}
|
|
431
|
-
return createServiceToken(jwtSecret);
|
|
442
|
+
return createServiceToken(jwtSecret, void 0, scope);
|
|
432
443
|
}
|
|
433
444
|
var configuredDaemonUrl, configuredExecutorDefaults, EXECUTOR_RESULT_PREFIX;
|
|
434
445
|
var init_spawn_executor = __esm({
|
|
@@ -448,7 +459,8 @@ function isBranchInspectResult(value) {
|
|
|
448
459
|
}
|
|
449
460
|
async function inspectBranchViaExecutor(app, branchId, options = {}) {
|
|
450
461
|
const sessionToken = generateSessionToken(
|
|
451
|
-
app
|
|
462
|
+
app,
|
|
463
|
+
options.serviceTokenScope
|
|
452
464
|
);
|
|
453
465
|
const result = await runExecutorCommand(
|
|
454
466
|
{
|
|
@@ -545,7 +557,8 @@ async function fireAlwaysNewZoneTrigger(input) {
|
|
|
545
557
|
const asUser = db ? await resolveExecutorReadAsUser(db, user) : void 0;
|
|
546
558
|
const { currentSha, currentRef } = await inspectBranchViaExecutor(app, branch.branch_id, {
|
|
547
559
|
asUser,
|
|
548
|
-
logPrefix: `[zone-trigger ${branch.name}]
|
|
560
|
+
logPrefix: `[zone-trigger ${branch.name}]`,
|
|
561
|
+
serviceTokenScope: serviceTokenScopeForParams(params)
|
|
549
562
|
});
|
|
550
563
|
const newSession = await app.service("sessions").create(
|
|
551
564
|
{
|
|
@@ -588,14 +601,15 @@ var init_zone_trigger = __esm({
|
|
|
588
601
|
"use strict";
|
|
589
602
|
init_branch_inspect();
|
|
590
603
|
init_executor_read_impersonation();
|
|
604
|
+
init_spawn_executor();
|
|
591
605
|
VALID_AGENTS = ["claude-code", "codex", "gemini", "opencode"];
|
|
592
606
|
}
|
|
593
607
|
});
|
|
594
608
|
|
|
595
609
|
// src/mcp/tools/branches.ts
|
|
596
610
|
import { existsSync as existsSync2 } from "fs";
|
|
597
|
-
import { isBranchRbacEnabled as isBranchRbacEnabled2 } from "@agor/core/config";
|
|
598
|
-
import { BranchRepository as
|
|
611
|
+
import { isBranchRbacEnabled as isBranchRbacEnabled2, loadConfig as loadConfig2 } from "@agor/core/config";
|
|
612
|
+
import { BranchRepository as BranchRepository6, shortId as shortId6 } from "@agor/core/db";
|
|
599
613
|
import { BRANCH_PERMISSION_LEVELS as BRANCH_PERMISSION_LEVELS2, getAssistantConfig as getAssistantConfig3, isAssistant as isAssistant3 } from "@agor/core/types";
|
|
600
614
|
import { computeZoneRelativePosition } from "@agor/core/utils/board-placement";
|
|
601
615
|
import { normalizeOptionalHttpUrl } from "@agor/core/utils/url";
|
|
@@ -15114,11 +15128,19 @@ function date4(params) {
|
|
|
15114
15128
|
// ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.js
|
|
15115
15129
|
config(en_default());
|
|
15116
15130
|
|
|
15117
|
-
// src/
|
|
15118
|
-
|
|
15119
|
-
|
|
15120
|
-
|
|
15131
|
+
// src/utils/branch-authorization.ts
|
|
15132
|
+
import { shortId } from "@agor/core/db";
|
|
15133
|
+
import { Forbidden, NotAuthenticated, NotFound } from "@agor/core/feathers";
|
|
15134
|
+
import { BRANCH_PERMISSION_LEVELS, hasMinimumRole, ROLES } from "@agor/core/types";
|
|
15135
|
+
function isSuperAdmin(role, allowSuperadmin = true) {
|
|
15136
|
+
if (!allowSuperadmin) return false;
|
|
15137
|
+
return role === ROLES.SUPERADMIN || role === "owner";
|
|
15121
15138
|
}
|
|
15139
|
+
var PERMISSION_RANK = Object.fromEntries(
|
|
15140
|
+
BRANCH_PERMISSION_LEVELS.map((level, i) => [level, i - 1])
|
|
15141
|
+
);
|
|
15142
|
+
|
|
15143
|
+
// src/mcp/resolve-ids.ts
|
|
15122
15144
|
async function resolveBranchId(ctx, id) {
|
|
15123
15145
|
const entity = await ctx.app.service("branches").get(id, ctx.baseServiceParams);
|
|
15124
15146
|
return entity.branch_id;
|
|
@@ -15150,6 +15172,11 @@ function mcpOptionalString(fieldName, description) {
|
|
|
15150
15172
|
error: `${fieldName} must be a string when provided.`
|
|
15151
15173
|
}).optional().describe(description);
|
|
15152
15174
|
}
|
|
15175
|
+
function mcpOptionalNonEmptyString(fieldName, description) {
|
|
15176
|
+
return external_exports.string({
|
|
15177
|
+
error: `${fieldName} must be a string when provided.`
|
|
15178
|
+
}).min(1, `${fieldName} cannot be empty when provided.`).optional().describe(description);
|
|
15179
|
+
}
|
|
15153
15180
|
function mcpOptionalNonBlankString(fieldName, description) {
|
|
15154
15181
|
return external_exports.string({
|
|
15155
15182
|
error: `${fieldName} must be a string when provided.`
|
|
@@ -15195,7 +15222,11 @@ import { ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
|
|
|
15195
15222
|
|
|
15196
15223
|
// src/mcp/tokens.ts
|
|
15197
15224
|
import { MCP_TOKEN } from "@agor/core/config";
|
|
15198
|
-
import {
|
|
15225
|
+
import {
|
|
15226
|
+
generateId,
|
|
15227
|
+
SessionRepository,
|
|
15228
|
+
shortId as shortId2
|
|
15229
|
+
} from "@agor/core/db";
|
|
15199
15230
|
import {
|
|
15200
15231
|
MCP_TOKEN_AUDIENCE,
|
|
15201
15232
|
MCP_TOKEN_ISSUER
|
|
@@ -15216,6 +15247,7 @@ var DOMAIN_DESCRIPTIONS = {
|
|
|
15216
15247
|
users: "User accounts, profiles, preferences, and administration",
|
|
15217
15248
|
analytics: "Usage and cost tracking leaderboard",
|
|
15218
15249
|
"mcp-servers": "External MCP server configuration and OAuth management",
|
|
15250
|
+
gateway: "Gateway channels for Slack, GitHub, Teams, and other message integrations",
|
|
15219
15251
|
proxies: "Configured HTTP proxies for third-party APIs (Shortcut, Linear, Jira, etc.)",
|
|
15220
15252
|
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",
|
|
15221
15253
|
knowledge: "DB-backed markdown knowledge documents, version history, search, and graph links",
|
|
@@ -15229,16 +15261,6 @@ function formatDomainDescriptionsForInstructions() {
|
|
|
15229
15261
|
import path from "path";
|
|
15230
15262
|
import { BranchRepository } from "@agor/core/db";
|
|
15231
15263
|
import { NotFoundError } from "@agor/core/utils/errors";
|
|
15232
|
-
|
|
15233
|
-
// src/utils/branch-authorization.ts
|
|
15234
|
-
import { shortId as shortId2 } from "@agor/core/db";
|
|
15235
|
-
import { Forbidden, NotAuthenticated, NotFound } from "@agor/core/feathers";
|
|
15236
|
-
import { BRANCH_PERMISSION_LEVELS, hasMinimumRole, ROLES } from "@agor/core/types";
|
|
15237
|
-
var PERMISSION_RANK = Object.fromEntries(
|
|
15238
|
-
BRANCH_PERMISSION_LEVELS.map((level, i) => [level, i - 1])
|
|
15239
|
-
);
|
|
15240
|
-
|
|
15241
|
-
// src/mcp/tools/artifacts.ts
|
|
15242
15264
|
var SANDPACK_TEMPLATES = [
|
|
15243
15265
|
"react",
|
|
15244
15266
|
"react-ts",
|
|
@@ -15295,12 +15317,211 @@ function assertValidVariant(repo, variant) {
|
|
|
15295
15317
|
}
|
|
15296
15318
|
}
|
|
15297
15319
|
|
|
15320
|
+
// src/mcp/tools/gateway-channels.ts
|
|
15321
|
+
import {
|
|
15322
|
+
BranchRepository as BranchRepository2,
|
|
15323
|
+
GatewayChannelRepository,
|
|
15324
|
+
SessionRepository as SessionRepository2,
|
|
15325
|
+
ThreadSessionMapRepository
|
|
15326
|
+
} from "@agor/core/db";
|
|
15327
|
+
import {
|
|
15328
|
+
buildSlackManifest,
|
|
15329
|
+
getConnector,
|
|
15330
|
+
requiredBotEvents,
|
|
15331
|
+
requiredBotScopes
|
|
15332
|
+
} from "@agor/core/gateway";
|
|
15333
|
+
import {
|
|
15334
|
+
GATEWAY_REDACTED_SENTINEL,
|
|
15335
|
+
GATEWAY_SENSITIVE_CONFIG_FIELDS,
|
|
15336
|
+
getRequiredSecretFields,
|
|
15337
|
+
hasMinimumRole as hasMinimumRole2,
|
|
15338
|
+
ROLES as ROLES2
|
|
15339
|
+
} from "@agor/core/types";
|
|
15340
|
+
var configSchema = external_exports.record(external_exports.string(), external_exports.unknown()).describe(
|
|
15341
|
+
"Platform-specific gateway configuration. Secrets are stored encrypted and returned redacted. Prefer env/template references for shared credentials where the connector supports them."
|
|
15342
|
+
);
|
|
15343
|
+
var outboundTargetSchema = external_exports.string().trim().regex(
|
|
15344
|
+
/^(channel:[^:\s]+|channel_name:[^\s]+|#[^\s]+|(?:email:|user_email:)?[^@\s]+@[^@\s]+\.[^@\s]+)$/
|
|
15345
|
+
).describe(
|
|
15346
|
+
"Slack outbound target for v0: channel:C123, #project-updates, channel_name:project-updates, or user@example.com. Thread targets are intentionally not supported."
|
|
15347
|
+
);
|
|
15348
|
+
var envVarSchema = external_exports.strictObject({
|
|
15349
|
+
key: mcpRequiredString("agenticConfig.envVars[].key", "Environment variable name"),
|
|
15350
|
+
value: mcpRequiredString(
|
|
15351
|
+
"agenticConfig.envVars[].value",
|
|
15352
|
+
`Environment variable value. Prefer references/templates over raw secrets. Existing redacted values may be passed as '${GATEWAY_REDACTED_SENTINEL}' on update to preserve them.`
|
|
15353
|
+
),
|
|
15354
|
+
forceOverride: external_exports.boolean().optional().describe("When true, channel value wins over user env vars. Defaults to false.")
|
|
15355
|
+
});
|
|
15356
|
+
var agenticConfigSchema = external_exports.strictObject({
|
|
15357
|
+
agent: external_exports.enum(["claude-code", "claude-code-cli", "codex", "gemini", "opencode", "copilot", "cursor"]).describe("Agent used for sessions created from this gateway channel."),
|
|
15358
|
+
permissionMode: external_exports.enum([
|
|
15359
|
+
"default",
|
|
15360
|
+
"acceptEdits",
|
|
15361
|
+
"bypassPermissions",
|
|
15362
|
+
"plan",
|
|
15363
|
+
"dontAsk",
|
|
15364
|
+
"autoEdit",
|
|
15365
|
+
"yolo",
|
|
15366
|
+
"ask",
|
|
15367
|
+
"auto",
|
|
15368
|
+
"on-failure",
|
|
15369
|
+
"allow-all"
|
|
15370
|
+
]).optional().describe("Permission mode for spawned sessions."),
|
|
15371
|
+
modelConfig: external_exports.record(external_exports.string(), external_exports.unknown()).optional().describe("Agent model configuration."),
|
|
15372
|
+
mcpServerIds: external_exports.array(external_exports.string().min(1)).optional().describe("MCP server IDs to attach to gateway-created sessions."),
|
|
15373
|
+
codexSandboxMode: external_exports.enum(["read-only", "workspace-write", "danger-full-access"]).optional().describe("Codex sandbox mode for Codex gateway sessions."),
|
|
15374
|
+
codexApprovalPolicy: external_exports.enum(["untrusted", "on-failure", "on-request", "never"]).optional().describe("Codex approval policy for Codex gateway sessions."),
|
|
15375
|
+
codexNetworkAccess: external_exports.boolean().optional().describe("Allow Codex network access."),
|
|
15376
|
+
envVars: external_exports.array(envVarSchema).optional().describe("Gateway-level env vars. Values are redacted in responses.")
|
|
15377
|
+
}).describe("Agent/session defaults for conversations created through this gateway channel.");
|
|
15378
|
+
var gatewayChannelCreateSchema = external_exports.strictObject({
|
|
15379
|
+
name: mcpRequiredString("name", 'Human-readable channel name, e.g. "Engineering Slack".'),
|
|
15380
|
+
channelType: external_exports.enum(["slack", "github", "teams", "discord", "whatsapp", "telegram"]).default("slack").describe("Gateway platform type. Current active connectors are slack, github, and teams."),
|
|
15381
|
+
targetBranchId: mcpRequiredId(
|
|
15382
|
+
"targetBranchId",
|
|
15383
|
+
"Branch",
|
|
15384
|
+
"Branch/worktree ID that this gateway channel prompts."
|
|
15385
|
+
),
|
|
15386
|
+
agorUserId: mcpOptionalId(
|
|
15387
|
+
"agorUserId",
|
|
15388
|
+
"User",
|
|
15389
|
+
"Agor user ID whose identity is used when platform-user alignment is disabled."
|
|
15390
|
+
),
|
|
15391
|
+
enabled: external_exports.boolean().optional().describe("Whether the channel is active. Defaults to true."),
|
|
15392
|
+
config: configSchema,
|
|
15393
|
+
agenticConfig: agenticConfigSchema.optional()
|
|
15394
|
+
}).superRefine((value, issue2) => {
|
|
15395
|
+
const config2 = value.config ?? {};
|
|
15396
|
+
if (value.enabled !== false) {
|
|
15397
|
+
const requiredSecretMessages = {
|
|
15398
|
+
bot_token: "config.bot_token is required for Slack. Prefer a bot token stored outside the transcript when possible.",
|
|
15399
|
+
app_token: "config.app_token is required for Slack Socket Mode.",
|
|
15400
|
+
private_key: "config.private_key is required for GitHub gateway channels.",
|
|
15401
|
+
app_password: "config.app_password is required for Teams gateway channels."
|
|
15402
|
+
};
|
|
15403
|
+
for (const field of getRequiredSecretFields(value.channelType, config2)) {
|
|
15404
|
+
if (!config2[field]) {
|
|
15405
|
+
issue2.addIssue({
|
|
15406
|
+
code: "custom",
|
|
15407
|
+
path: ["config", field],
|
|
15408
|
+
message: requiredSecretMessages[field] ?? `config.${field} is required for ${value.channelType} gateway channels.`
|
|
15409
|
+
});
|
|
15410
|
+
}
|
|
15411
|
+
}
|
|
15412
|
+
}
|
|
15413
|
+
if (value.channelType === "github") {
|
|
15414
|
+
for (const field of ["app_id", "installation_id", "watch_repos"]) {
|
|
15415
|
+
if (!config2[field]) {
|
|
15416
|
+
issue2.addIssue({
|
|
15417
|
+
code: "custom",
|
|
15418
|
+
path: ["config", field],
|
|
15419
|
+
message: `config.${field} is required for GitHub gateway channels.`
|
|
15420
|
+
});
|
|
15421
|
+
}
|
|
15422
|
+
}
|
|
15423
|
+
}
|
|
15424
|
+
if (value.channelType === "teams" && !config2.app_id) {
|
|
15425
|
+
issue2.addIssue({
|
|
15426
|
+
code: "custom",
|
|
15427
|
+
path: ["config", "app_id"],
|
|
15428
|
+
message: "config.app_id is required for Teams gateway channels."
|
|
15429
|
+
});
|
|
15430
|
+
}
|
|
15431
|
+
if (value.channelType === "slack" && config2.align_slack_users !== true && !value.agorUserId) {
|
|
15432
|
+
issue2.addIssue({
|
|
15433
|
+
code: "custom",
|
|
15434
|
+
path: ["agorUserId"],
|
|
15435
|
+
message: "Run-as-selected-user needs agorUserId \u2014 set config.align_slack_users:true to align by email, or pass agorUserId."
|
|
15436
|
+
});
|
|
15437
|
+
}
|
|
15438
|
+
});
|
|
15439
|
+
var slackThreadHistorySchema = external_exports.strictObject({
|
|
15440
|
+
sessionId: mcpOptionalId(
|
|
15441
|
+
"sessionId",
|
|
15442
|
+
"Session",
|
|
15443
|
+
"Preferred: resolve the Slack thread mapping from an accessible Agor session ID (UUIDv7 or short ID). If provided, gatewayChannelId/threadId are ignored."
|
|
15444
|
+
),
|
|
15445
|
+
gatewayChannelId: mcpOptionalId(
|
|
15446
|
+
"gatewayChannelId",
|
|
15447
|
+
"Gateway channel",
|
|
15448
|
+
"Explicit Slack gateway channel ID (UUIDv7 or short ID). Required when sessionId is omitted."
|
|
15449
|
+
),
|
|
15450
|
+
threadId: mcpOptionalNonEmptyString(
|
|
15451
|
+
"threadId",
|
|
15452
|
+
"Explicit Slack thread ID in Agor gateway format, e.g. C123-171234.000100. Required when sessionId is omitted."
|
|
15453
|
+
),
|
|
15454
|
+
oldestTs: mcpOptionalNonEmptyString(
|
|
15455
|
+
"oldestTs",
|
|
15456
|
+
"Optional Slack oldest timestamp bound, e.g. 171234.000100."
|
|
15457
|
+
),
|
|
15458
|
+
latestTs: mcpOptionalNonEmptyString(
|
|
15459
|
+
"latestTs",
|
|
15460
|
+
"Optional Slack latest timestamp bound, e.g. 171235.000200."
|
|
15461
|
+
),
|
|
15462
|
+
inclusive: external_exports.boolean().optional().describe("Whether Slack should include messages exactly at oldest/latest bounds."),
|
|
15463
|
+
limit: mcpLimit(50).describe("Maximum Slack messages to request (default: 50, max: 200)."),
|
|
15464
|
+
includeBotMessages: external_exports.boolean().optional().describe("Include Slack bot messages in the returned history. Defaults to false."),
|
|
15465
|
+
format: external_exports.enum(["messages", "markdown"]).optional().describe(
|
|
15466
|
+
'Response body format. "messages" returns normalized JSON; "markdown" returns a transcript string.'
|
|
15467
|
+
)
|
|
15468
|
+
}).superRefine((value, issue2) => {
|
|
15469
|
+
if (value.sessionId) return;
|
|
15470
|
+
if (!value.gatewayChannelId) {
|
|
15471
|
+
issue2.addIssue({
|
|
15472
|
+
code: "custom",
|
|
15473
|
+
path: ["gatewayChannelId"],
|
|
15474
|
+
message: "gatewayChannelId is required when sessionId is omitted."
|
|
15475
|
+
});
|
|
15476
|
+
}
|
|
15477
|
+
if (!value.threadId) {
|
|
15478
|
+
issue2.addIssue({
|
|
15479
|
+
code: "custom",
|
|
15480
|
+
path: ["threadId"],
|
|
15481
|
+
message: "threadId is required when sessionId is omitted."
|
|
15482
|
+
});
|
|
15483
|
+
}
|
|
15484
|
+
});
|
|
15485
|
+
var gatewayChannelUpdateSchema = external_exports.strictObject({
|
|
15486
|
+
gatewayChannelId: mcpRequiredId(
|
|
15487
|
+
"gatewayChannelId",
|
|
15488
|
+
"Gateway channel",
|
|
15489
|
+
"Gateway channel ID (UUIDv7 or short ID)"
|
|
15490
|
+
),
|
|
15491
|
+
name: mcpOptionalNonEmptyString("name", "New human-readable channel name."),
|
|
15492
|
+
channelType: external_exports.enum(["slack", "github", "teams", "discord", "whatsapp", "telegram"]).optional().describe("Gateway platform type. Changing this should include compatible config."),
|
|
15493
|
+
targetBranchId: mcpOptionalId("targetBranchId", "Branch", "New target branch/worktree ID."),
|
|
15494
|
+
agorUserId: mcpOptionalId("agorUserId", "User", "New run-as Agor user ID."),
|
|
15495
|
+
enabled: external_exports.boolean().optional().describe("Enable/disable the channel."),
|
|
15496
|
+
config: configSchema.optional().describe(
|
|
15497
|
+
`Partial platform config to merge. Send '${GATEWAY_REDACTED_SENTINEL}' or omit sensitive fields to preserve existing secrets; send a new value to rotate.`
|
|
15498
|
+
),
|
|
15499
|
+
agenticConfig: agenticConfigSchema.nullable().optional().describe("Replace agent/session defaults. null clears the gateway agentic config.")
|
|
15500
|
+
});
|
|
15501
|
+
var slackManifestGenerateSchema = external_exports.strictObject({
|
|
15502
|
+
appName: mcpRequiredString("appName", 'Slack app display name, e.g. "Agor".'),
|
|
15503
|
+
botDisplayName: mcpOptionalNonEmptyString(
|
|
15504
|
+
"botDisplayName",
|
|
15505
|
+
"Bot user display name. Defaults to appName."
|
|
15506
|
+
),
|
|
15507
|
+
publicChannels: external_exports.boolean().default(false).describe("Listen in public channels (#channel) via @mention."),
|
|
15508
|
+
privateChannels: external_exports.boolean().default(false).describe("Listen in private channels (groups) via @mention."),
|
|
15509
|
+
groupDms: external_exports.boolean().default(false).describe("Listen in group DMs (multi-person IMs) via @mention."),
|
|
15510
|
+
alignUsers: external_exports.boolean().default(true).describe(
|
|
15511
|
+
"Resolve Slack user email \u2192 Agor user (adds the users:read.email scope). Defaults to true: each Slack user runs as their matched Agor account and unmatched users are rejected, so no fixed run-as user is needed. Set false to run every message as one fixed Agor user (then pass agorUserId to agor_gateway_channels_create)."
|
|
15512
|
+
),
|
|
15513
|
+
outbound: external_exports.boolean().default(false).describe("Proactive outbound: post to channels by name and DM users by email."),
|
|
15514
|
+
restrictToChannelIds: external_exports.array(external_exports.string().min(1)).optional().describe(
|
|
15515
|
+
"Slack channel ID whitelist. Maps to config.allowed_channel_ids when you call agor_gateway_channels_create; it does NOT change the manifest scopes or events."
|
|
15516
|
+
)
|
|
15517
|
+
});
|
|
15518
|
+
|
|
15298
15519
|
// src/mcp/tools/knowledge.ts
|
|
15299
15520
|
import { createHash, randomUUID } from "crypto";
|
|
15300
15521
|
import fs2 from "fs";
|
|
15301
15522
|
import { mkdir, readFile, writeFile } from "fs/promises";
|
|
15302
15523
|
import path3 from "path";
|
|
15303
|
-
import { BranchRepository as
|
|
15524
|
+
import { BranchRepository as BranchRepository4, KnowledgeNamespaceRepository as KnowledgeNamespaceRepository2 } from "@agor/core/db";
|
|
15304
15525
|
import { NotFound as NotFound2 } from "@agor/core/feathers";
|
|
15305
15526
|
import {
|
|
15306
15527
|
buildKnowledgeDocumentUri,
|
|
@@ -15326,14 +15547,14 @@ import { unified } from "unified";
|
|
|
15326
15547
|
|
|
15327
15548
|
// src/services/assistant-knowledge.ts
|
|
15328
15549
|
import {
|
|
15329
|
-
BranchRepository as
|
|
15550
|
+
BranchRepository as BranchRepository3,
|
|
15330
15551
|
KnowledgeNamespaceRepository,
|
|
15331
15552
|
shortId as shortId3
|
|
15332
15553
|
} from "@agor/core/db";
|
|
15333
15554
|
import { getAssistantConfig, isAssistant } from "@agor/core/types";
|
|
15334
15555
|
|
|
15335
15556
|
// src/services/knowledge-access.ts
|
|
15336
|
-
import { hasMinimumRole as
|
|
15557
|
+
import { hasMinimumRole as hasMinimumRole3, ROLES as ROLES3 } from "@agor/core/types";
|
|
15337
15558
|
|
|
15338
15559
|
// src/utils/branch-workspace-path.ts
|
|
15339
15560
|
import fs from "fs";
|
|
@@ -15475,6 +15696,261 @@ var KnowledgeNodeRefSchema = external_exports.object(
|
|
|
15475
15696
|
"Reference to an existing or creatable knowledge graph node. Prefer nodeId or uri; use typed IDs for links to Agor core objects."
|
|
15476
15697
|
);
|
|
15477
15698
|
|
|
15699
|
+
// src/mcp/tools/mcp-servers.ts
|
|
15700
|
+
import {
|
|
15701
|
+
isReservedMCPCustomHeaderName,
|
|
15702
|
+
isValidMCPHeaderName
|
|
15703
|
+
} from "@agor/core/tools/mcp/http-headers";
|
|
15704
|
+
var mcpNameSchema = external_exports.string({
|
|
15705
|
+
error: 'name is required and must be a string. Example: { "name": "context7" }'
|
|
15706
|
+
}).regex(
|
|
15707
|
+
/^[a-z][a-z0-9_-]{0,63}$/,
|
|
15708
|
+
'name must start with a lowercase letter and contain only lowercase letters, digits, "_" or "-" (max 64 chars).'
|
|
15709
|
+
).describe('Stable internal ID, e.g. "context7", "github", "datadog". Cannot be changed later.');
|
|
15710
|
+
var stringMapSchema = external_exports.record(external_exports.string(), external_exports.string()).describe(
|
|
15711
|
+
"JSON object of string keys/values. Values may use templates like {{ user.env.API_TOKEN }}."
|
|
15712
|
+
);
|
|
15713
|
+
var mcpAuthInputSchema = external_exports.strictObject({
|
|
15714
|
+
type: external_exports.enum(["none", "bearer", "jwt", "oauth"]).describe(
|
|
15715
|
+
"Authentication mode. OAuth tip: start with { type: 'oauth' } plus the MCP server URL; only add endpoint/client fields if discovery/DCR fails."
|
|
15716
|
+
),
|
|
15717
|
+
token: mcpOptionalString(
|
|
15718
|
+
"auth.token",
|
|
15719
|
+
"Bearer token. Prefer {{ user.env.MCP_TOKEN }} templates; raw secrets will be stored redacted but are still visible in this MCP call transcript."
|
|
15720
|
+
),
|
|
15721
|
+
api_url: mcpOptionalString("auth.api_url", "JWT auth API URL."),
|
|
15722
|
+
api_token: mcpOptionalString(
|
|
15723
|
+
"auth.api_token",
|
|
15724
|
+
"JWT API token. Prefer {{ user.env.JWT_TOKEN }} templates."
|
|
15725
|
+
),
|
|
15726
|
+
api_secret: mcpOptionalString(
|
|
15727
|
+
"auth.api_secret",
|
|
15728
|
+
"JWT API secret. Prefer {{ user.env.JWT_SECRET }} templates."
|
|
15729
|
+
),
|
|
15730
|
+
oauth_authorization_url: mcpOptionalString(
|
|
15731
|
+
"auth.oauth_authorization_url",
|
|
15732
|
+
"Optional OAuth authorization endpoint override. Leave blank for discovery."
|
|
15733
|
+
),
|
|
15734
|
+
oauth_token_url: mcpOptionalString(
|
|
15735
|
+
"auth.oauth_token_url",
|
|
15736
|
+
"Optional OAuth token endpoint override. Leave blank for discovery."
|
|
15737
|
+
),
|
|
15738
|
+
oauth_client_id: mcpOptionalString(
|
|
15739
|
+
"auth.oauth_client_id",
|
|
15740
|
+
"Optional OAuth client ID for providers that require a pre-registered app. Leave blank for Dynamic Client Registration where supported."
|
|
15741
|
+
),
|
|
15742
|
+
oauth_client_secret: mcpOptionalString(
|
|
15743
|
+
"auth.oauth_client_secret",
|
|
15744
|
+
"Optional OAuth client secret. Prefer {{ user.env.OAUTH_CLIENT_SECRET }} templates; raw secrets are not returned by this tool."
|
|
15745
|
+
),
|
|
15746
|
+
oauth_scope: mcpOptionalString("auth.oauth_scope", "Optional OAuth scopes, space-separated."),
|
|
15747
|
+
oauth_grant_type: external_exports.enum(["client_credentials", "authorization_code"]).optional().describe(
|
|
15748
|
+
"OAuth grant type hint. Defaults to 'client_credentials' for legacy token testing; browser OAuth uses authorization code with PKCE."
|
|
15749
|
+
),
|
|
15750
|
+
oauth_mode: external_exports.enum(["per_user", "shared"]).optional().describe("OAuth token ownership. Defaults to 'per_user' (recommended)."),
|
|
15751
|
+
insecure: external_exports.boolean().optional().describe("Allow insecure auth behavior if supported.")
|
|
15752
|
+
}).superRefine((auth, issue2) => {
|
|
15753
|
+
if (auth.type === "bearer" && !auth.token) {
|
|
15754
|
+
issue2.addIssue({
|
|
15755
|
+
code: "custom",
|
|
15756
|
+
path: ["token"],
|
|
15757
|
+
message: "auth.token is required when auth.type is 'bearer'."
|
|
15758
|
+
});
|
|
15759
|
+
}
|
|
15760
|
+
const fieldsByType = {
|
|
15761
|
+
none: [],
|
|
15762
|
+
bearer: ["token"],
|
|
15763
|
+
jwt: ["api_url", "api_token", "api_secret"],
|
|
15764
|
+
oauth: [
|
|
15765
|
+
"oauth_authorization_url",
|
|
15766
|
+
"oauth_token_url",
|
|
15767
|
+
"oauth_client_id",
|
|
15768
|
+
"oauth_client_secret",
|
|
15769
|
+
"oauth_scope",
|
|
15770
|
+
"oauth_grant_type",
|
|
15771
|
+
"oauth_mode",
|
|
15772
|
+
"insecure"
|
|
15773
|
+
]
|
|
15774
|
+
};
|
|
15775
|
+
const allowed = /* @__PURE__ */ new Set(["type", ...fieldsByType[auth.type]]);
|
|
15776
|
+
for (const key of Object.keys(auth)) {
|
|
15777
|
+
if (!allowed.has(key)) {
|
|
15778
|
+
issue2.addIssue({
|
|
15779
|
+
code: "custom",
|
|
15780
|
+
path: [key],
|
|
15781
|
+
message: `auth.${key} does not apply when auth.type is '${auth.type}'.`
|
|
15782
|
+
});
|
|
15783
|
+
}
|
|
15784
|
+
}
|
|
15785
|
+
if (auth.type === "jwt") {
|
|
15786
|
+
for (const field of ["api_url", "api_token", "api_secret"]) {
|
|
15787
|
+
if (!auth[field]) {
|
|
15788
|
+
issue2.addIssue({
|
|
15789
|
+
code: "custom",
|
|
15790
|
+
path: [field],
|
|
15791
|
+
message: `auth.${field} is required when auth.type is 'jwt'.`
|
|
15792
|
+
});
|
|
15793
|
+
}
|
|
15794
|
+
}
|
|
15795
|
+
}
|
|
15796
|
+
}).describe(
|
|
15797
|
+
"Auth config. Common OAuth path: { type: 'oauth' } plus url; leave OAuth URLs/client fields blank first so metadata discovery/DCR can do the work."
|
|
15798
|
+
);
|
|
15799
|
+
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' }.");
|
|
15800
|
+
var mcpServerCreateSchema = external_exports.strictObject({
|
|
15801
|
+
name: mcpNameSchema,
|
|
15802
|
+
displayName: mcpOptionalNonEmptyString(
|
|
15803
|
+
"displayName",
|
|
15804
|
+
'Human-friendly display name, e.g. "Context7 MCP".'
|
|
15805
|
+
),
|
|
15806
|
+
description: mcpOptionalString("description", "Optional description."),
|
|
15807
|
+
transport: external_exports.enum(["stdio", "http", "sse"]).optional().describe(
|
|
15808
|
+
"Transport. Defaults to 'http' when url is provided, otherwise 'stdio'. Most remote OAuth MCP servers use 'http'."
|
|
15809
|
+
),
|
|
15810
|
+
url: mcpOptionalString(
|
|
15811
|
+
"url",
|
|
15812
|
+
"Remote MCP server URL for http/sse transports. Supports templates like {{ user.env.MCP_URL }}."
|
|
15813
|
+
),
|
|
15814
|
+
command: mcpOptionalString("command", 'Local command for stdio transport, e.g. "npx".'),
|
|
15815
|
+
args: external_exports.array(external_exports.string()).optional().describe(
|
|
15816
|
+
'Arguments for stdio command, e.g. ["-y", "@modelcontextprotocol/server-filesystem"].'
|
|
15817
|
+
),
|
|
15818
|
+
headers: stringMapSchema.optional().describe(
|
|
15819
|
+
"Custom HTTP headers for http/sse transports. Do not include Authorization; use auth instead. Prefer templates for secret values."
|
|
15820
|
+
),
|
|
15821
|
+
env: stringMapSchema.optional().describe(
|
|
15822
|
+
"Environment variables for the MCP process/config. Prefer {{ user.env.VAR }} templates for secrets."
|
|
15823
|
+
),
|
|
15824
|
+
auth: mcpAuthInputSchema.optional(),
|
|
15825
|
+
scope: external_exports.enum(["global", "session"]).optional().describe(
|
|
15826
|
+
"Scope. Defaults to 'global' so it appears in agor_mcp_servers_list. 'session' is only for explicit session attachment workflows."
|
|
15827
|
+
),
|
|
15828
|
+
enabled: external_exports.boolean().optional().describe("Whether the server is enabled. Defaults to true."),
|
|
15829
|
+
attachToCurrentSession: external_exports.boolean().optional().describe(
|
|
15830
|
+
`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.`
|
|
15831
|
+
),
|
|
15832
|
+
attachToSessionId: mcpOptionalId(
|
|
15833
|
+
"attachToSessionId",
|
|
15834
|
+
"Session",
|
|
15835
|
+
"Optional session ID (UUIDv7 or short ID) to attach after creating. Overrides attachToCurrentSession."
|
|
15836
|
+
)
|
|
15837
|
+
}).superRefine((value, issue2) => validateMcpServerConfig(value, issue2, false));
|
|
15838
|
+
var mcpServerUpdateSchema = external_exports.strictObject({
|
|
15839
|
+
mcpServerId: mcpRequiredId(
|
|
15840
|
+
"mcpServerId",
|
|
15841
|
+
"MCP server",
|
|
15842
|
+
"MCP server ID to update (UUIDv7 or short ID)"
|
|
15843
|
+
),
|
|
15844
|
+
displayName: mcpOptionalNonEmptyString("displayName", "New human-friendly display name."),
|
|
15845
|
+
description: mcpOptionalString(
|
|
15846
|
+
"description",
|
|
15847
|
+
"New description. Pass an empty string to clear."
|
|
15848
|
+
),
|
|
15849
|
+
transport: external_exports.enum(["stdio", "http", "sse"]).optional().describe("Transport to set."),
|
|
15850
|
+
url: mcpOptionalString("url", "Remote MCP URL for http/sse transports."),
|
|
15851
|
+
command: mcpOptionalString("command", "Local command for stdio transport."),
|
|
15852
|
+
args: external_exports.array(external_exports.string()).optional().describe("Arguments for stdio command."),
|
|
15853
|
+
headers: stringMapSchema.optional().describe(
|
|
15854
|
+
"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."
|
|
15855
|
+
),
|
|
15856
|
+
env: stringMapSchema.optional().describe("Replace environment variables."),
|
|
15857
|
+
auth: mcpAuthInputSchema.optional().describe(
|
|
15858
|
+
"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."
|
|
15859
|
+
),
|
|
15860
|
+
scope: external_exports.enum(["global", "session"]).optional().describe("Scope to set."),
|
|
15861
|
+
enabled: external_exports.boolean().optional().describe("Enabled flag."),
|
|
15862
|
+
toolPermissions: toolPermissionsSchema.optional()
|
|
15863
|
+
}).superRefine((value, issue2) => validateMcpServerConfig(value, issue2, true));
|
|
15864
|
+
function validateHeaders(headers, issue2) {
|
|
15865
|
+
if (!headers) return;
|
|
15866
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
15867
|
+
const name = key.trim();
|
|
15868
|
+
if (!name) {
|
|
15869
|
+
issue2.addIssue({
|
|
15870
|
+
code: "custom",
|
|
15871
|
+
path: ["headers", key],
|
|
15872
|
+
message: "Header names cannot be empty."
|
|
15873
|
+
});
|
|
15874
|
+
} else if (!isValidMCPHeaderName(name)) {
|
|
15875
|
+
issue2.addIssue({
|
|
15876
|
+
code: "custom",
|
|
15877
|
+
path: ["headers", key],
|
|
15878
|
+
message: `Invalid HTTP header name: ${key}`
|
|
15879
|
+
});
|
|
15880
|
+
} else if (isReservedMCPCustomHeaderName(name)) {
|
|
15881
|
+
issue2.addIssue({
|
|
15882
|
+
code: "custom",
|
|
15883
|
+
path: ["headers", key],
|
|
15884
|
+
message: `Header ${name} is reserved; configure Authorization through auth instead.`
|
|
15885
|
+
});
|
|
15886
|
+
}
|
|
15887
|
+
if (typeof value !== "string") {
|
|
15888
|
+
issue2.addIssue({
|
|
15889
|
+
code: "custom",
|
|
15890
|
+
path: ["headers", key],
|
|
15891
|
+
message: "Header values must be strings."
|
|
15892
|
+
});
|
|
15893
|
+
}
|
|
15894
|
+
}
|
|
15895
|
+
}
|
|
15896
|
+
function validateMcpServerConfig(value, issue2, partial2) {
|
|
15897
|
+
const transport = value.transport ?? (value.url ? "http" : "stdio");
|
|
15898
|
+
validateHeaders(value.headers, issue2);
|
|
15899
|
+
if (!partial2 || value.transport !== void 0 || value.url !== void 0 || value.command !== void 0) {
|
|
15900
|
+
if (transport === "stdio") {
|
|
15901
|
+
if (!partial2 && !value.command) {
|
|
15902
|
+
issue2.addIssue({
|
|
15903
|
+
code: "custom",
|
|
15904
|
+
path: ["command"],
|
|
15905
|
+
message: "command is required for stdio transport."
|
|
15906
|
+
});
|
|
15907
|
+
}
|
|
15908
|
+
if (value.url) {
|
|
15909
|
+
issue2.addIssue({
|
|
15910
|
+
code: "custom",
|
|
15911
|
+
path: ["url"],
|
|
15912
|
+
message: "url only applies to http/sse transports, not stdio."
|
|
15913
|
+
});
|
|
15914
|
+
}
|
|
15915
|
+
if (value.headers) {
|
|
15916
|
+
issue2.addIssue({
|
|
15917
|
+
code: "custom",
|
|
15918
|
+
path: ["headers"],
|
|
15919
|
+
message: "headers only apply to http/sse transports, not stdio."
|
|
15920
|
+
});
|
|
15921
|
+
}
|
|
15922
|
+
if (value.auth && value.auth.type !== "none") {
|
|
15923
|
+
issue2.addIssue({
|
|
15924
|
+
code: "custom",
|
|
15925
|
+
path: ["auth", "type"],
|
|
15926
|
+
message: "Authentication config only applies to http/sse transports."
|
|
15927
|
+
});
|
|
15928
|
+
}
|
|
15929
|
+
} else if (!partial2 && !value.url) {
|
|
15930
|
+
issue2.addIssue({
|
|
15931
|
+
code: "custom",
|
|
15932
|
+
path: ["url"],
|
|
15933
|
+
message: `url is required for ${transport} transport.`
|
|
15934
|
+
});
|
|
15935
|
+
} else {
|
|
15936
|
+
if (value.command) {
|
|
15937
|
+
issue2.addIssue({
|
|
15938
|
+
code: "custom",
|
|
15939
|
+
path: ["command"],
|
|
15940
|
+
message: "command only applies to stdio transport, not http/sse."
|
|
15941
|
+
});
|
|
15942
|
+
}
|
|
15943
|
+
if (value.args && value.args.length > 0) {
|
|
15944
|
+
issue2.addIssue({
|
|
15945
|
+
code: "custom",
|
|
15946
|
+
path: ["args"],
|
|
15947
|
+
message: "args only apply to stdio transport, not http/sse."
|
|
15948
|
+
});
|
|
15949
|
+
}
|
|
15950
|
+
}
|
|
15951
|
+
}
|
|
15952
|
+
}
|
|
15953
|
+
|
|
15478
15954
|
// src/mcp/tools/messages.ts
|
|
15479
15955
|
import { isBranchRbacEnabled } from "@agor/core/config";
|
|
15480
15956
|
import {
|
|
@@ -15482,13 +15958,15 @@ import {
|
|
|
15482
15958
|
asc,
|
|
15483
15959
|
desc,
|
|
15484
15960
|
eq,
|
|
15485
|
-
|
|
15961
|
+
gte,
|
|
15962
|
+
lte,
|
|
15486
15963
|
messages as messagesTable,
|
|
15487
15964
|
or,
|
|
15488
|
-
SessionRepository as SessionRepository2,
|
|
15489
15965
|
select,
|
|
15490
|
-
sql
|
|
15966
|
+
sql,
|
|
15967
|
+
visibleSessionReferenceAccessExists
|
|
15491
15968
|
} from "@agor/core/db";
|
|
15969
|
+
var MAX_CROSS_SESSION_SEARCH_WINDOW_MS = 31 * 24 * 60 * 60 * 1e3;
|
|
15492
15970
|
|
|
15493
15971
|
// src/mcp/tools/proxies.ts
|
|
15494
15972
|
import { getBaseUrl, loadConfig, resolveProxies } from "@agor/core/config";
|
|
@@ -15503,7 +15981,7 @@ var agenticToolConfigSchema = external_exports.object({
|
|
|
15503
15981
|
model_config: external_exports.object({
|
|
15504
15982
|
mode: external_exports.enum(["alias", "exact"]).optional(),
|
|
15505
15983
|
model: mcpOptionalString("model_config.model", "Model name override."),
|
|
15506
|
-
effort: external_exports.enum(["low", "medium", "high", "max"]).optional(),
|
|
15984
|
+
effort: external_exports.enum(["low", "medium", "high", "xhigh", "max"]).optional(),
|
|
15507
15985
|
advisorModel: mcpOptionalString(
|
|
15508
15986
|
"model_config.advisorModel",
|
|
15509
15987
|
"Claude Code advisor model override (e.g. 'opus', 'sonnet', 'fable')."
|
|
@@ -15519,7 +15997,7 @@ var agenticToolConfigSchema = external_exports.object({
|
|
|
15519
15997
|
|
|
15520
15998
|
// src/mcp/tools/sessions.ts
|
|
15521
15999
|
import {
|
|
15522
|
-
BranchRepository as
|
|
16000
|
+
BranchRepository as BranchRepository5,
|
|
15523
16001
|
SessionRelationshipRepository,
|
|
15524
16002
|
shortId as shortId4
|
|
15525
16003
|
} from "@agor/core/db";
|
|
@@ -15542,6 +16020,7 @@ import {
|
|
|
15542
16020
|
} from "@agor/core/types";
|
|
15543
16021
|
init_branch_inspect();
|
|
15544
16022
|
init_executor_read_impersonation();
|
|
16023
|
+
init_spawn_executor();
|
|
15545
16024
|
var modelConfigObjectSchema = external_exports.object({
|
|
15546
16025
|
mode: external_exports.enum(["alias", "exact"]).optional().describe("Model selection mode (default: 'alias')"),
|
|
15547
16026
|
// .min(1): reject empty-string model explicitly so callers don't silently
|
|
@@ -15550,7 +16029,7 @@ var modelConfigObjectSchema = external_exports.object({
|
|
|
15550
16029
|
"modelConfig.model",
|
|
15551
16030
|
"Model identifier (e.g. 'claude-opus-4-6', 'claude-sonnet-4-6')"
|
|
15552
16031
|
),
|
|
15553
|
-
effort: external_exports.enum(["low", "medium", "high", "max"]).optional().describe("Reasoning effort level (default: high)"),
|
|
16032
|
+
effort: external_exports.enum(["low", "medium", "high", "xhigh", "max"]).optional().describe("Reasoning effort level (default: high)"),
|
|
15554
16033
|
advisorModel: mcpOptionalString(
|
|
15555
16034
|
"modelConfig.advisorModel",
|
|
15556
16035
|
"Claude Code advisor model override (e.g. 'opus', 'sonnet', 'fable', or a full model ID)."
|
|
@@ -15571,10 +16050,10 @@ var modelConfigInputSchema = external_exports.union([
|
|
|
15571
16050
|
);
|
|
15572
16051
|
|
|
15573
16052
|
// src/mcp/tools/users.ts
|
|
15574
|
-
import { ROLES as
|
|
16053
|
+
import { ROLES as ROLES4 } from "@agor/core/types";
|
|
15575
16054
|
|
|
15576
16055
|
// src/mcp/tools/widgets.ts
|
|
15577
|
-
import { MessageRole as MessageRole2 } from "@agor/core/types";
|
|
16056
|
+
import { getRequiredSecretFields as getRequiredSecretFields2, hasMinimumRole as hasMinimumRole5, MessageRole as MessageRole2, ROLES as ROLES6 } from "@agor/core/types";
|
|
15578
16057
|
|
|
15579
16058
|
// src/utils/append-system-message.ts
|
|
15580
16059
|
import { generateId as generateId2, SessionRepository as SessionRepository3 } from "@agor/core/db";
|
|
@@ -15584,9 +16063,20 @@ import { MessageRole } from "@agor/core/types";
|
|
|
15584
16063
|
import { EXECUTING_TASK_STATUSES, isTaskExecuting } from "@agor/core/types";
|
|
15585
16064
|
|
|
15586
16065
|
// src/widgets/env-vars/index.ts
|
|
15587
|
-
import {
|
|
16066
|
+
import {
|
|
16067
|
+
ENV_VAR_CONSTRAINTS,
|
|
16068
|
+
isEnvVarAllowed,
|
|
16069
|
+
validateEnvVar
|
|
16070
|
+
} from "@agor/core/config";
|
|
16071
|
+
import { SessionEnvSelectionRepository } from "@agor/core/db";
|
|
15588
16072
|
import { BadRequest } from "@agor/core/feathers";
|
|
15589
16073
|
var ENV_VAR_NAME_REGEX = ENV_VAR_CONSTRAINTS.NAME_PATTERN;
|
|
16074
|
+
var envVarFieldMetadataSchema = external_exports.object({
|
|
16075
|
+
description: external_exports.string().max(200).optional(),
|
|
16076
|
+
placeholder: external_exports.string().max(120).optional(),
|
|
16077
|
+
format_hint: external_exports.string().max(80).optional(),
|
|
16078
|
+
input_type: external_exports.enum(["password", "text", "textarea"]).default("password").optional()
|
|
16079
|
+
}).strict();
|
|
15590
16080
|
var envVarsParamsSchema = external_exports.object({
|
|
15591
16081
|
names: external_exports.array(external_exports.string().regex(ENV_VAR_NAME_REGEX)).min(1).max(10).refine((names) => new Set(names).size === names.length, {
|
|
15592
16082
|
message: "Env var names must be unique"
|
|
@@ -15594,20 +16084,82 @@ var envVarsParamsSchema = external_exports.object({
|
|
|
15594
16084
|
reason: external_exports.string().min(1).max(200).describe(
|
|
15595
16085
|
"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."
|
|
15596
16086
|
),
|
|
16087
|
+
variable_metadata: external_exports.record(external_exports.string().regex(ENV_VAR_NAME_REGEX), envVarFieldMetadataSchema).optional().describe(
|
|
16088
|
+
"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."
|
|
16089
|
+
),
|
|
15597
16090
|
auto_resume: external_exports.boolean().default(true).describe(
|
|
15598
16091
|
"When true (default), a system-authored prompt is auto-queued back into the agent on submit/dismiss."
|
|
15599
16092
|
)
|
|
16093
|
+
}).superRefine((params, ctx) => {
|
|
16094
|
+
const requested = new Set(params.names);
|
|
16095
|
+
for (const key of Object.keys(params.variable_metadata ?? {})) {
|
|
16096
|
+
if (!requested.has(key)) {
|
|
16097
|
+
ctx.addIssue({
|
|
16098
|
+
code: external_exports.ZodIssueCode.custom,
|
|
16099
|
+
path: ["variable_metadata", key],
|
|
16100
|
+
message: `Metadata key ${key} must match a requested env var name`
|
|
16101
|
+
});
|
|
16102
|
+
}
|
|
16103
|
+
}
|
|
15600
16104
|
});
|
|
15601
16105
|
var envVarsSubmitSchema = external_exports.object({
|
|
15602
16106
|
values: external_exports.record(
|
|
15603
16107
|
external_exports.string().regex(ENV_VAR_NAME_REGEX),
|
|
15604
16108
|
external_exports.string().min(1).max(ENV_VAR_CONSTRAINTS.MAX_VALUE_LENGTH)
|
|
15605
|
-
).
|
|
15606
|
-
|
|
15607
|
-
}),
|
|
16109
|
+
).default({}),
|
|
16110
|
+
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."),
|
|
15608
16111
|
scope: external_exports.enum(["global", "session"])
|
|
16112
|
+
}).superRefine((submit, ctx) => {
|
|
16113
|
+
const valueNames = Object.keys(submit.values);
|
|
16114
|
+
const existingNames = submit.use_existing;
|
|
16115
|
+
const total = valueNames.length + existingNames.length;
|
|
16116
|
+
if (total < 1 || total > 10) {
|
|
16117
|
+
ctx.addIssue({
|
|
16118
|
+
code: external_exports.ZodIssueCode.custom,
|
|
16119
|
+
message: "Must submit between 1 and 10 env vars"
|
|
16120
|
+
});
|
|
16121
|
+
}
|
|
16122
|
+
const duplicates = existingNames.filter((name) => valueNames.includes(name));
|
|
16123
|
+
for (const name of duplicates) {
|
|
16124
|
+
ctx.addIssue({
|
|
16125
|
+
code: external_exports.ZodIssueCode.custom,
|
|
16126
|
+
path: ["use_existing"],
|
|
16127
|
+
message: `Cannot both submit and use existing value for ${name}`
|
|
16128
|
+
});
|
|
16129
|
+
}
|
|
16130
|
+
if (new Set(existingNames).size !== existingNames.length) {
|
|
16131
|
+
ctx.addIssue({
|
|
16132
|
+
code: external_exports.ZodIssueCode.custom,
|
|
16133
|
+
path: ["use_existing"],
|
|
16134
|
+
message: "use_existing names must be unique"
|
|
16135
|
+
});
|
|
16136
|
+
}
|
|
15609
16137
|
});
|
|
15610
16138
|
|
|
16139
|
+
// src/widgets/gateway-token/index.ts
|
|
16140
|
+
import { Forbidden as Forbidden2 } from "@agor/core/feathers";
|
|
16141
|
+
import {
|
|
16142
|
+
GATEWAY_SENSITIVE_CONFIG_FIELDS as GATEWAY_SENSITIVE_CONFIG_FIELDS2,
|
|
16143
|
+
hasMinimumRole as hasMinimumRole4,
|
|
16144
|
+
ROLES as ROLES5
|
|
16145
|
+
} from "@agor/core/types";
|
|
16146
|
+
var MAX_TOKEN_LENGTH = 8192;
|
|
16147
|
+
var gatewayTokenParamsSchema = external_exports.object({
|
|
16148
|
+
gatewayChannelId: external_exports.string().min(1).describe("Gateway channel whose credentials are being set."),
|
|
16149
|
+
channelType: external_exports.enum(["slack", "discord", "whatsapp", "telegram", "github", "teams"]).describe("Platform type of the channel; drives per-field placeholders."),
|
|
16150
|
+
channelName: external_exports.string().min(1).max(200).describe("Human-readable channel name for the form heading and prompts."),
|
|
16151
|
+
fields: external_exports.array(external_exports.enum(GATEWAY_SENSITIVE_CONFIG_FIELDS2)).min(1).max(GATEWAY_SENSITIVE_CONFIG_FIELDS2.length).refine((fields) => new Set(fields).size === fields.length, {
|
|
16152
|
+
message: "Token field names must be unique"
|
|
16153
|
+
}).describe("Secret config field names to collect (subset of the sensitive fields)."),
|
|
16154
|
+
reason: external_exports.string().min(1).max(200).describe("One sentence explaining why the tokens are needed. Renders as a muted line.")
|
|
16155
|
+
}).strict();
|
|
16156
|
+
var gatewayTokenSubmitSchema = external_exports.object({
|
|
16157
|
+
tokens: external_exports.partialRecord(
|
|
16158
|
+
external_exports.enum(GATEWAY_SENSITIVE_CONFIG_FIELDS2),
|
|
16159
|
+
external_exports.string().min(1).max(MAX_TOKEN_LENGTH)
|
|
16160
|
+
).describe("Map of sensitive field name \u2192 credential value.")
|
|
16161
|
+
}).strict();
|
|
16162
|
+
|
|
15611
16163
|
// src/mcp/server.ts
|
|
15612
16164
|
var DEBUG_MCP_REQUESTS = process.env.AGOR_DEBUG_MCP_REQUESTS === "1" || process.env.DEBUG?.includes("mcp-requests");
|
|
15613
16165
|
function coerceString(value) {
|
|
@@ -15720,6 +16272,13 @@ function notesPreview(notes, maxLength = 200) {
|
|
|
15720
16272
|
if (singleLine.length <= maxLength) return singleLine;
|
|
15721
16273
|
return `${singleLine.slice(0, maxLength - 1)}\u2026`;
|
|
15722
16274
|
}
|
|
16275
|
+
async function shouldScopeAssistantDiscoveryToUser(ctx) {
|
|
16276
|
+
if (!isBranchRbacEnabled2()) return false;
|
|
16277
|
+
if (ctx.authenticatedUser?._isServiceAccount) return false;
|
|
16278
|
+
const config2 = await loadConfig2();
|
|
16279
|
+
const allowSuperadmin = config2.execution?.allow_superadmin === true;
|
|
16280
|
+
return !isSuperAdmin(ctx.authenticatedUser?.role, allowSuperadmin);
|
|
16281
|
+
}
|
|
15723
16282
|
async function findAllArchivedBranchesForCleanup(ctx, baseQuery) {
|
|
15724
16283
|
const branches = [];
|
|
15725
16284
|
let skip = 0;
|
|
@@ -16020,7 +16579,7 @@ function registerBranchTools(server, ctx) {
|
|
|
16020
16579
|
const variant = coerceString(args.variant);
|
|
16021
16580
|
if (variant) assertValidVariant(repo, variant);
|
|
16022
16581
|
if (autoSuffix) {
|
|
16023
|
-
const branchRepo = new
|
|
16582
|
+
const branchRepo = new BranchRepository6(ctx.db);
|
|
16024
16583
|
const activeNames = await branchRepo.getActiveNamesByRepo(repoId);
|
|
16025
16584
|
const existingNames = new Set(activeNames);
|
|
16026
16585
|
if (existingNames.has(branchName)) {
|
|
@@ -16092,7 +16651,7 @@ function registerBranchTools(server, ctx) {
|
|
|
16092
16651
|
server.registerTool(
|
|
16093
16652
|
"agor_branches_update",
|
|
16094
16653
|
{
|
|
16095
|
-
description: "Update metadata for an existing branch (issue/PR URLs, notes, board placement, custom context, RBAC permissions, owners)",
|
|
16654
|
+
description: "Update metadata for an existing branch (issue/PR URLs, notes, board placement, attention state, custom context, RBAC permissions, owners)",
|
|
16096
16655
|
annotations: { idempotentHint: true },
|
|
16097
16656
|
inputSchema: external_exports.object({
|
|
16098
16657
|
branchId: mcpOptionalId(
|
|
@@ -16114,6 +16673,9 @@ function registerBranchTools(server, ctx) {
|
|
|
16114
16673
|
mcpServerIds: external_exports.array(mcpRequiredId("mcpServerIds[]", "MCP server", "MCP server ID")).nullable().optional().describe(
|
|
16115
16674
|
"Default MCP server IDs for new sessions in this branch. Sessions inherit these unless they explicitly specify their own. Pass null to clear."
|
|
16116
16675
|
),
|
|
16676
|
+
needsAttention: external_exports.boolean({ error: "needsAttention must be a boolean when provided." }).optional().describe(
|
|
16677
|
+
"Branch/card attention highlight state. Pass true to mark the branch as needing attention, or false to clear it."
|
|
16678
|
+
),
|
|
16117
16679
|
// RBAC fields (optional, safe to ignore for single-user setups)
|
|
16118
16680
|
othersCan: external_exports.enum(BRANCH_PERMISSION_LEVELS2).optional().describe(
|
|
16119
16681
|
`App-layer permission for non-owner users. "none" = no access, "view" = read-only, "session" = can create & prompt own sessions, "prompt" = can prompt ANY session (including other users'), "all" = full access. Always effective regardless of Unix isolation mode. Single-user setups can ignore this.`
|
|
@@ -16178,6 +16740,10 @@ function registerBranchTools(server, ctx) {
|
|
|
16178
16740
|
fieldsProvided++;
|
|
16179
16741
|
updates.mcp_server_ids = args.mcpServerIds === null ? [] : await Promise.all(args.mcpServerIds.map((id) => resolveMcpServerId(ctx, id)));
|
|
16180
16742
|
}
|
|
16743
|
+
if (args.needsAttention !== void 0) {
|
|
16744
|
+
fieldsProvided++;
|
|
16745
|
+
updates.needs_attention = args.needsAttention;
|
|
16746
|
+
}
|
|
16181
16747
|
if (args.othersCan !== void 0) {
|
|
16182
16748
|
fieldsProvided++;
|
|
16183
16749
|
updates.others_can = args.othersCan;
|
|
@@ -16279,11 +16845,21 @@ function registerBranchTools(server, ctx) {
|
|
|
16279
16845
|
"triggerTemplate and targetSessionId cannot be used when zoneId is null; clearing a zone pin does not run zone triggers."
|
|
16280
16846
|
);
|
|
16281
16847
|
}
|
|
16282
|
-
const
|
|
16848
|
+
const targetSession = rawTargetSessionId ? await ctx.app.service("sessions").get(rawTargetSessionId, ctx.baseServiceParams) : void 0;
|
|
16849
|
+
const targetSessionId = targetSession?.session_id;
|
|
16283
16850
|
console.log(
|
|
16284
16851
|
zoneId === null ? `\u{1F4CD} MCP clearing zone pin for branch ${shortId6(branchId)}` : `\u{1F4CD} MCP pinning branch ${shortId6(branchId)} to zone ${zoneId}`
|
|
16285
16852
|
);
|
|
16286
16853
|
const branch = await ctx.app.service("branches").get(branchId, ctx.baseServiceParams);
|
|
16854
|
+
if (triggerTemplate && targetSession && targetSession.branch_id !== branch.branch_id) {
|
|
16855
|
+
throw new Error(
|
|
16856
|
+
`targetSessionId ${shortId6(targetSession.session_id)} belongs to branch ${shortId6(
|
|
16857
|
+
targetSession.branch_id
|
|
16858
|
+
)}, but agor_branches_set_zone is moving branch ${shortId6(
|
|
16859
|
+
branch.branch_id
|
|
16860
|
+
)}. Use a session in the moved branch or create a branch-local session first.`
|
|
16861
|
+
);
|
|
16862
|
+
}
|
|
16287
16863
|
const boardObjectsService = ctx.app.service("board-objects");
|
|
16288
16864
|
if (zoneId === null) {
|
|
16289
16865
|
const boardObject2 = await boardObjectsService.findByBranchId(
|
|
@@ -16347,12 +16923,6 @@ function registerBranchTools(server, ctx) {
|
|
|
16347
16923
|
console.log(`\u{1F3AF} Triggering zone prompt template for session ${shortId6(targetSessionId)}`);
|
|
16348
16924
|
const { renderTemplate: renderTemplate2 } = await import("@agor/core/templates/handlebars-helpers");
|
|
16349
16925
|
const { buildZoneTriggerContext: buildZoneTriggerContext2 } = await import("@agor/core/templates/zone-trigger-context");
|
|
16350
|
-
let targetSession;
|
|
16351
|
-
try {
|
|
16352
|
-
targetSession = await ctx.app.service("sessions").get(targetSessionId, ctx.baseServiceParams);
|
|
16353
|
-
} catch {
|
|
16354
|
-
targetSession = void 0;
|
|
16355
|
-
}
|
|
16356
16926
|
const templateContext = buildZoneTriggerContext2({
|
|
16357
16927
|
branch,
|
|
16358
16928
|
board,
|
|
@@ -16552,11 +17122,15 @@ function registerBranchTools(server, ctx) {
|
|
|
16552
17122
|
})
|
|
16553
17123
|
},
|
|
16554
17124
|
async (args) => {
|
|
16555
|
-
const
|
|
16556
|
-
|
|
16557
|
-
const
|
|
16558
|
-
const
|
|
16559
|
-
|
|
17125
|
+
const limit = args.limit || 200;
|
|
17126
|
+
const repoId = args.repoId ? await resolveRepoId(ctx, args.repoId) : void 0;
|
|
17127
|
+
const branchRepo = new BranchRepository6(ctx.db);
|
|
17128
|
+
const assistants = await branchRepo.findAssistantBranches({
|
|
17129
|
+
archived: false,
|
|
17130
|
+
...repoId ? { repo_id: repoId } : {},
|
|
17131
|
+
...await shouldScopeAssistantDiscoveryToUser(ctx) ? { userId: ctx.userId } : {},
|
|
17132
|
+
limit
|
|
17133
|
+
});
|
|
16560
17134
|
const shaped = assistants.map((w) => {
|
|
16561
17135
|
const config2 = getAssistantConfig3(w);
|
|
16562
17136
|
return {
|