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
|
@@ -14606,6 +14606,11 @@ function mcpOptionalString(fieldName, description) {
|
|
|
14606
14606
|
error: `${fieldName} must be a string when provided.`
|
|
14607
14607
|
}).optional().describe(description);
|
|
14608
14608
|
}
|
|
14609
|
+
function mcpOptionalNonEmptyString(fieldName, description) {
|
|
14610
|
+
return external_exports.string({
|
|
14611
|
+
error: `${fieldName} must be a string when provided.`
|
|
14612
|
+
}).min(1, `${fieldName} cannot be empty when provided.`).optional().describe(description);
|
|
14613
|
+
}
|
|
14609
14614
|
function mcpOptionalNonBlankString(fieldName, description) {
|
|
14610
14615
|
return external_exports.string({
|
|
14611
14616
|
error: `${fieldName} must be a string when provided.`
|
|
@@ -14657,7 +14662,11 @@ import { ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
|
|
|
14657
14662
|
|
|
14658
14663
|
// src/mcp/tokens.ts
|
|
14659
14664
|
import { MCP_TOKEN } from "@agor/core/config";
|
|
14660
|
-
import {
|
|
14665
|
+
import {
|
|
14666
|
+
generateId,
|
|
14667
|
+
SessionRepository,
|
|
14668
|
+
shortId
|
|
14669
|
+
} from "@agor/core/db";
|
|
14661
14670
|
import {
|
|
14662
14671
|
MCP_TOKEN_AUDIENCE,
|
|
14663
14672
|
MCP_TOKEN_ISSUER
|
|
@@ -14678,6 +14687,7 @@ var DOMAIN_DESCRIPTIONS = {
|
|
|
14678
14687
|
users: "User accounts, profiles, preferences, and administration",
|
|
14679
14688
|
analytics: "Usage and cost tracking leaderboard",
|
|
14680
14689
|
"mcp-servers": "External MCP server configuration and OAuth management",
|
|
14690
|
+
gateway: "Gateway channels for Slack, GitHub, Teams, and other message integrations",
|
|
14681
14691
|
proxies: "Configured HTTP proxies for third-party APIs (Shortcut, Linear, Jira, etc.)",
|
|
14682
14692
|
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",
|
|
14683
14693
|
knowledge: "DB-backed markdown knowledge documents, version history, search, and graph links",
|
|
@@ -14745,7 +14755,7 @@ var AgorRuntimeSchema = external_exports.object({
|
|
|
14745
14755
|
|
|
14746
14756
|
// src/mcp/tools/branches.ts
|
|
14747
14757
|
import { existsSync } from "fs";
|
|
14748
|
-
import { isBranchRbacEnabled } from "@agor/core/config";
|
|
14758
|
+
import { isBranchRbacEnabled, loadConfig } from "@agor/core/config";
|
|
14749
14759
|
import { BranchRepository as BranchRepository2, shortId as shortId3 } from "@agor/core/db";
|
|
14750
14760
|
import { BRANCH_PERMISSION_LEVELS as BRANCH_PERMISSION_LEVELS2, getAssistantConfig, isAssistant } from "@agor/core/types";
|
|
14751
14761
|
import { computeZoneRelativePosition } from "@agor/core/utils/board-placement";
|
|
@@ -14754,12 +14764,211 @@ import { normalizeOptionalHttpUrl } from "@agor/core/utils/url";
|
|
|
14754
14764
|
// src/mcp/tools/cards.ts
|
|
14755
14765
|
import { BoardObjectRepository } from "@agor/core/db";
|
|
14756
14766
|
|
|
14767
|
+
// src/mcp/tools/gateway-channels.ts
|
|
14768
|
+
import {
|
|
14769
|
+
BranchRepository as BranchRepository3,
|
|
14770
|
+
GatewayChannelRepository,
|
|
14771
|
+
SessionRepository as SessionRepository2,
|
|
14772
|
+
ThreadSessionMapRepository
|
|
14773
|
+
} from "@agor/core/db";
|
|
14774
|
+
import {
|
|
14775
|
+
buildSlackManifest,
|
|
14776
|
+
getConnector,
|
|
14777
|
+
requiredBotEvents,
|
|
14778
|
+
requiredBotScopes
|
|
14779
|
+
} from "@agor/core/gateway";
|
|
14780
|
+
import {
|
|
14781
|
+
GATEWAY_REDACTED_SENTINEL,
|
|
14782
|
+
GATEWAY_SENSITIVE_CONFIG_FIELDS,
|
|
14783
|
+
getRequiredSecretFields,
|
|
14784
|
+
hasMinimumRole as hasMinimumRole2,
|
|
14785
|
+
ROLES as ROLES2
|
|
14786
|
+
} from "@agor/core/types";
|
|
14787
|
+
var configSchema = external_exports.record(external_exports.string(), external_exports.unknown()).describe(
|
|
14788
|
+
"Platform-specific gateway configuration. Secrets are stored encrypted and returned redacted. Prefer env/template references for shared credentials where the connector supports them."
|
|
14789
|
+
);
|
|
14790
|
+
var outboundTargetSchema = external_exports.string().trim().regex(
|
|
14791
|
+
/^(channel:[^:\s]+|channel_name:[^\s]+|#[^\s]+|(?:email:|user_email:)?[^@\s]+@[^@\s]+\.[^@\s]+)$/
|
|
14792
|
+
).describe(
|
|
14793
|
+
"Slack outbound target for v0: channel:C123, #project-updates, channel_name:project-updates, or user@example.com. Thread targets are intentionally not supported."
|
|
14794
|
+
);
|
|
14795
|
+
var envVarSchema = external_exports.strictObject({
|
|
14796
|
+
key: mcpRequiredString("agenticConfig.envVars[].key", "Environment variable name"),
|
|
14797
|
+
value: mcpRequiredString(
|
|
14798
|
+
"agenticConfig.envVars[].value",
|
|
14799
|
+
`Environment variable value. Prefer references/templates over raw secrets. Existing redacted values may be passed as '${GATEWAY_REDACTED_SENTINEL}' on update to preserve them.`
|
|
14800
|
+
),
|
|
14801
|
+
forceOverride: external_exports.boolean().optional().describe("When true, channel value wins over user env vars. Defaults to false.")
|
|
14802
|
+
});
|
|
14803
|
+
var agenticConfigSchema = external_exports.strictObject({
|
|
14804
|
+
agent: external_exports.enum(["claude-code", "claude-code-cli", "codex", "gemini", "opencode", "copilot", "cursor"]).describe("Agent used for sessions created from this gateway channel."),
|
|
14805
|
+
permissionMode: external_exports.enum([
|
|
14806
|
+
"default",
|
|
14807
|
+
"acceptEdits",
|
|
14808
|
+
"bypassPermissions",
|
|
14809
|
+
"plan",
|
|
14810
|
+
"dontAsk",
|
|
14811
|
+
"autoEdit",
|
|
14812
|
+
"yolo",
|
|
14813
|
+
"ask",
|
|
14814
|
+
"auto",
|
|
14815
|
+
"on-failure",
|
|
14816
|
+
"allow-all"
|
|
14817
|
+
]).optional().describe("Permission mode for spawned sessions."),
|
|
14818
|
+
modelConfig: external_exports.record(external_exports.string(), external_exports.unknown()).optional().describe("Agent model configuration."),
|
|
14819
|
+
mcpServerIds: external_exports.array(external_exports.string().min(1)).optional().describe("MCP server IDs to attach to gateway-created sessions."),
|
|
14820
|
+
codexSandboxMode: external_exports.enum(["read-only", "workspace-write", "danger-full-access"]).optional().describe("Codex sandbox mode for Codex gateway sessions."),
|
|
14821
|
+
codexApprovalPolicy: external_exports.enum(["untrusted", "on-failure", "on-request", "never"]).optional().describe("Codex approval policy for Codex gateway sessions."),
|
|
14822
|
+
codexNetworkAccess: external_exports.boolean().optional().describe("Allow Codex network access."),
|
|
14823
|
+
envVars: external_exports.array(envVarSchema).optional().describe("Gateway-level env vars. Values are redacted in responses.")
|
|
14824
|
+
}).describe("Agent/session defaults for conversations created through this gateway channel.");
|
|
14825
|
+
var gatewayChannelCreateSchema = external_exports.strictObject({
|
|
14826
|
+
name: mcpRequiredString("name", 'Human-readable channel name, e.g. "Engineering Slack".'),
|
|
14827
|
+
channelType: external_exports.enum(["slack", "github", "teams", "discord", "whatsapp", "telegram"]).default("slack").describe("Gateway platform type. Current active connectors are slack, github, and teams."),
|
|
14828
|
+
targetBranchId: mcpRequiredId(
|
|
14829
|
+
"targetBranchId",
|
|
14830
|
+
"Branch",
|
|
14831
|
+
"Branch/worktree ID that this gateway channel prompts."
|
|
14832
|
+
),
|
|
14833
|
+
agorUserId: mcpOptionalId(
|
|
14834
|
+
"agorUserId",
|
|
14835
|
+
"User",
|
|
14836
|
+
"Agor user ID whose identity is used when platform-user alignment is disabled."
|
|
14837
|
+
),
|
|
14838
|
+
enabled: external_exports.boolean().optional().describe("Whether the channel is active. Defaults to true."),
|
|
14839
|
+
config: configSchema,
|
|
14840
|
+
agenticConfig: agenticConfigSchema.optional()
|
|
14841
|
+
}).superRefine((value, issue2) => {
|
|
14842
|
+
const config2 = value.config ?? {};
|
|
14843
|
+
if (value.enabled !== false) {
|
|
14844
|
+
const requiredSecretMessages = {
|
|
14845
|
+
bot_token: "config.bot_token is required for Slack. Prefer a bot token stored outside the transcript when possible.",
|
|
14846
|
+
app_token: "config.app_token is required for Slack Socket Mode.",
|
|
14847
|
+
private_key: "config.private_key is required for GitHub gateway channels.",
|
|
14848
|
+
app_password: "config.app_password is required for Teams gateway channels."
|
|
14849
|
+
};
|
|
14850
|
+
for (const field of getRequiredSecretFields(value.channelType, config2)) {
|
|
14851
|
+
if (!config2[field]) {
|
|
14852
|
+
issue2.addIssue({
|
|
14853
|
+
code: "custom",
|
|
14854
|
+
path: ["config", field],
|
|
14855
|
+
message: requiredSecretMessages[field] ?? `config.${field} is required for ${value.channelType} gateway channels.`
|
|
14856
|
+
});
|
|
14857
|
+
}
|
|
14858
|
+
}
|
|
14859
|
+
}
|
|
14860
|
+
if (value.channelType === "github") {
|
|
14861
|
+
for (const field of ["app_id", "installation_id", "watch_repos"]) {
|
|
14862
|
+
if (!config2[field]) {
|
|
14863
|
+
issue2.addIssue({
|
|
14864
|
+
code: "custom",
|
|
14865
|
+
path: ["config", field],
|
|
14866
|
+
message: `config.${field} is required for GitHub gateway channels.`
|
|
14867
|
+
});
|
|
14868
|
+
}
|
|
14869
|
+
}
|
|
14870
|
+
}
|
|
14871
|
+
if (value.channelType === "teams" && !config2.app_id) {
|
|
14872
|
+
issue2.addIssue({
|
|
14873
|
+
code: "custom",
|
|
14874
|
+
path: ["config", "app_id"],
|
|
14875
|
+
message: "config.app_id is required for Teams gateway channels."
|
|
14876
|
+
});
|
|
14877
|
+
}
|
|
14878
|
+
if (value.channelType === "slack" && config2.align_slack_users !== true && !value.agorUserId) {
|
|
14879
|
+
issue2.addIssue({
|
|
14880
|
+
code: "custom",
|
|
14881
|
+
path: ["agorUserId"],
|
|
14882
|
+
message: "Run-as-selected-user needs agorUserId \u2014 set config.align_slack_users:true to align by email, or pass agorUserId."
|
|
14883
|
+
});
|
|
14884
|
+
}
|
|
14885
|
+
});
|
|
14886
|
+
var slackThreadHistorySchema = external_exports.strictObject({
|
|
14887
|
+
sessionId: mcpOptionalId(
|
|
14888
|
+
"sessionId",
|
|
14889
|
+
"Session",
|
|
14890
|
+
"Preferred: resolve the Slack thread mapping from an accessible Agor session ID (UUIDv7 or short ID). If provided, gatewayChannelId/threadId are ignored."
|
|
14891
|
+
),
|
|
14892
|
+
gatewayChannelId: mcpOptionalId(
|
|
14893
|
+
"gatewayChannelId",
|
|
14894
|
+
"Gateway channel",
|
|
14895
|
+
"Explicit Slack gateway channel ID (UUIDv7 or short ID). Required when sessionId is omitted."
|
|
14896
|
+
),
|
|
14897
|
+
threadId: mcpOptionalNonEmptyString(
|
|
14898
|
+
"threadId",
|
|
14899
|
+
"Explicit Slack thread ID in Agor gateway format, e.g. C123-171234.000100. Required when sessionId is omitted."
|
|
14900
|
+
),
|
|
14901
|
+
oldestTs: mcpOptionalNonEmptyString(
|
|
14902
|
+
"oldestTs",
|
|
14903
|
+
"Optional Slack oldest timestamp bound, e.g. 171234.000100."
|
|
14904
|
+
),
|
|
14905
|
+
latestTs: mcpOptionalNonEmptyString(
|
|
14906
|
+
"latestTs",
|
|
14907
|
+
"Optional Slack latest timestamp bound, e.g. 171235.000200."
|
|
14908
|
+
),
|
|
14909
|
+
inclusive: external_exports.boolean().optional().describe("Whether Slack should include messages exactly at oldest/latest bounds."),
|
|
14910
|
+
limit: mcpLimit(50).describe("Maximum Slack messages to request (default: 50, max: 200)."),
|
|
14911
|
+
includeBotMessages: external_exports.boolean().optional().describe("Include Slack bot messages in the returned history. Defaults to false."),
|
|
14912
|
+
format: external_exports.enum(["messages", "markdown"]).optional().describe(
|
|
14913
|
+
'Response body format. "messages" returns normalized JSON; "markdown" returns a transcript string.'
|
|
14914
|
+
)
|
|
14915
|
+
}).superRefine((value, issue2) => {
|
|
14916
|
+
if (value.sessionId) return;
|
|
14917
|
+
if (!value.gatewayChannelId) {
|
|
14918
|
+
issue2.addIssue({
|
|
14919
|
+
code: "custom",
|
|
14920
|
+
path: ["gatewayChannelId"],
|
|
14921
|
+
message: "gatewayChannelId is required when sessionId is omitted."
|
|
14922
|
+
});
|
|
14923
|
+
}
|
|
14924
|
+
if (!value.threadId) {
|
|
14925
|
+
issue2.addIssue({
|
|
14926
|
+
code: "custom",
|
|
14927
|
+
path: ["threadId"],
|
|
14928
|
+
message: "threadId is required when sessionId is omitted."
|
|
14929
|
+
});
|
|
14930
|
+
}
|
|
14931
|
+
});
|
|
14932
|
+
var gatewayChannelUpdateSchema = external_exports.strictObject({
|
|
14933
|
+
gatewayChannelId: mcpRequiredId(
|
|
14934
|
+
"gatewayChannelId",
|
|
14935
|
+
"Gateway channel",
|
|
14936
|
+
"Gateway channel ID (UUIDv7 or short ID)"
|
|
14937
|
+
),
|
|
14938
|
+
name: mcpOptionalNonEmptyString("name", "New human-readable channel name."),
|
|
14939
|
+
channelType: external_exports.enum(["slack", "github", "teams", "discord", "whatsapp", "telegram"]).optional().describe("Gateway platform type. Changing this should include compatible config."),
|
|
14940
|
+
targetBranchId: mcpOptionalId("targetBranchId", "Branch", "New target branch/worktree ID."),
|
|
14941
|
+
agorUserId: mcpOptionalId("agorUserId", "User", "New run-as Agor user ID."),
|
|
14942
|
+
enabled: external_exports.boolean().optional().describe("Enable/disable the channel."),
|
|
14943
|
+
config: configSchema.optional().describe(
|
|
14944
|
+
`Partial platform config to merge. Send '${GATEWAY_REDACTED_SENTINEL}' or omit sensitive fields to preserve existing secrets; send a new value to rotate.`
|
|
14945
|
+
),
|
|
14946
|
+
agenticConfig: agenticConfigSchema.nullable().optional().describe("Replace agent/session defaults. null clears the gateway agentic config.")
|
|
14947
|
+
});
|
|
14948
|
+
var slackManifestGenerateSchema = external_exports.strictObject({
|
|
14949
|
+
appName: mcpRequiredString("appName", 'Slack app display name, e.g. "Agor".'),
|
|
14950
|
+
botDisplayName: mcpOptionalNonEmptyString(
|
|
14951
|
+
"botDisplayName",
|
|
14952
|
+
"Bot user display name. Defaults to appName."
|
|
14953
|
+
),
|
|
14954
|
+
publicChannels: external_exports.boolean().default(false).describe("Listen in public channels (#channel) via @mention."),
|
|
14955
|
+
privateChannels: external_exports.boolean().default(false).describe("Listen in private channels (groups) via @mention."),
|
|
14956
|
+
groupDms: external_exports.boolean().default(false).describe("Listen in group DMs (multi-person IMs) via @mention."),
|
|
14957
|
+
alignUsers: external_exports.boolean().default(true).describe(
|
|
14958
|
+
"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)."
|
|
14959
|
+
),
|
|
14960
|
+
outbound: external_exports.boolean().default(false).describe("Proactive outbound: post to channels by name and DM users by email."),
|
|
14961
|
+
restrictToChannelIds: external_exports.array(external_exports.string().min(1)).optional().describe(
|
|
14962
|
+
"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."
|
|
14963
|
+
)
|
|
14964
|
+
});
|
|
14965
|
+
|
|
14757
14966
|
// src/mcp/tools/knowledge.ts
|
|
14758
14967
|
import { createHash, randomUUID } from "crypto";
|
|
14759
14968
|
import fs2 from "fs";
|
|
14760
14969
|
import { mkdir, readFile, writeFile } from "fs/promises";
|
|
14761
14970
|
import path3 from "path";
|
|
14762
|
-
import { BranchRepository as
|
|
14971
|
+
import { BranchRepository as BranchRepository5, KnowledgeNamespaceRepository as KnowledgeNamespaceRepository2 } from "@agor/core/db";
|
|
14763
14972
|
import { NotFound as NotFound2 } from "@agor/core/feathers";
|
|
14764
14973
|
import {
|
|
14765
14974
|
buildKnowledgeDocumentUri,
|
|
@@ -14785,14 +14994,14 @@ import { unified } from "unified";
|
|
|
14785
14994
|
|
|
14786
14995
|
// src/services/assistant-knowledge.ts
|
|
14787
14996
|
import {
|
|
14788
|
-
BranchRepository as
|
|
14997
|
+
BranchRepository as BranchRepository4,
|
|
14789
14998
|
KnowledgeNamespaceRepository,
|
|
14790
14999
|
shortId as shortId4
|
|
14791
15000
|
} from "@agor/core/db";
|
|
14792
15001
|
import { getAssistantConfig as getAssistantConfig2, isAssistant as isAssistant2 } from "@agor/core/types";
|
|
14793
15002
|
|
|
14794
15003
|
// src/services/knowledge-access.ts
|
|
14795
|
-
import { hasMinimumRole as
|
|
15004
|
+
import { hasMinimumRole as hasMinimumRole3, ROLES as ROLES3 } from "@agor/core/types";
|
|
14796
15005
|
|
|
14797
15006
|
// src/utils/branch-workspace-path.ts
|
|
14798
15007
|
import fs from "fs";
|
|
@@ -14934,6 +15143,261 @@ var KnowledgeNodeRefSchema = external_exports.object(
|
|
|
14934
15143
|
"Reference to an existing or creatable knowledge graph node. Prefer nodeId or uri; use typed IDs for links to Agor core objects."
|
|
14935
15144
|
);
|
|
14936
15145
|
|
|
15146
|
+
// src/mcp/tools/mcp-servers.ts
|
|
15147
|
+
import {
|
|
15148
|
+
isReservedMCPCustomHeaderName,
|
|
15149
|
+
isValidMCPHeaderName
|
|
15150
|
+
} from "@agor/core/tools/mcp/http-headers";
|
|
15151
|
+
var mcpNameSchema = external_exports.string({
|
|
15152
|
+
error: 'name is required and must be a string. Example: { "name": "context7" }'
|
|
15153
|
+
}).regex(
|
|
15154
|
+
/^[a-z][a-z0-9_-]{0,63}$/,
|
|
15155
|
+
'name must start with a lowercase letter and contain only lowercase letters, digits, "_" or "-" (max 64 chars).'
|
|
15156
|
+
).describe('Stable internal ID, e.g. "context7", "github", "datadog". Cannot be changed later.');
|
|
15157
|
+
var stringMapSchema = external_exports.record(external_exports.string(), external_exports.string()).describe(
|
|
15158
|
+
"JSON object of string keys/values. Values may use templates like {{ user.env.API_TOKEN }}."
|
|
15159
|
+
);
|
|
15160
|
+
var mcpAuthInputSchema = external_exports.strictObject({
|
|
15161
|
+
type: external_exports.enum(["none", "bearer", "jwt", "oauth"]).describe(
|
|
15162
|
+
"Authentication mode. OAuth tip: start with { type: 'oauth' } plus the MCP server URL; only add endpoint/client fields if discovery/DCR fails."
|
|
15163
|
+
),
|
|
15164
|
+
token: mcpOptionalString(
|
|
15165
|
+
"auth.token",
|
|
15166
|
+
"Bearer token. Prefer {{ user.env.MCP_TOKEN }} templates; raw secrets will be stored redacted but are still visible in this MCP call transcript."
|
|
15167
|
+
),
|
|
15168
|
+
api_url: mcpOptionalString("auth.api_url", "JWT auth API URL."),
|
|
15169
|
+
api_token: mcpOptionalString(
|
|
15170
|
+
"auth.api_token",
|
|
15171
|
+
"JWT API token. Prefer {{ user.env.JWT_TOKEN }} templates."
|
|
15172
|
+
),
|
|
15173
|
+
api_secret: mcpOptionalString(
|
|
15174
|
+
"auth.api_secret",
|
|
15175
|
+
"JWT API secret. Prefer {{ user.env.JWT_SECRET }} templates."
|
|
15176
|
+
),
|
|
15177
|
+
oauth_authorization_url: mcpOptionalString(
|
|
15178
|
+
"auth.oauth_authorization_url",
|
|
15179
|
+
"Optional OAuth authorization endpoint override. Leave blank for discovery."
|
|
15180
|
+
),
|
|
15181
|
+
oauth_token_url: mcpOptionalString(
|
|
15182
|
+
"auth.oauth_token_url",
|
|
15183
|
+
"Optional OAuth token endpoint override. Leave blank for discovery."
|
|
15184
|
+
),
|
|
15185
|
+
oauth_client_id: mcpOptionalString(
|
|
15186
|
+
"auth.oauth_client_id",
|
|
15187
|
+
"Optional OAuth client ID for providers that require a pre-registered app. Leave blank for Dynamic Client Registration where supported."
|
|
15188
|
+
),
|
|
15189
|
+
oauth_client_secret: mcpOptionalString(
|
|
15190
|
+
"auth.oauth_client_secret",
|
|
15191
|
+
"Optional OAuth client secret. Prefer {{ user.env.OAUTH_CLIENT_SECRET }} templates; raw secrets are not returned by this tool."
|
|
15192
|
+
),
|
|
15193
|
+
oauth_scope: mcpOptionalString("auth.oauth_scope", "Optional OAuth scopes, space-separated."),
|
|
15194
|
+
oauth_grant_type: external_exports.enum(["client_credentials", "authorization_code"]).optional().describe(
|
|
15195
|
+
"OAuth grant type hint. Defaults to 'client_credentials' for legacy token testing; browser OAuth uses authorization code with PKCE."
|
|
15196
|
+
),
|
|
15197
|
+
oauth_mode: external_exports.enum(["per_user", "shared"]).optional().describe("OAuth token ownership. Defaults to 'per_user' (recommended)."),
|
|
15198
|
+
insecure: external_exports.boolean().optional().describe("Allow insecure auth behavior if supported.")
|
|
15199
|
+
}).superRefine((auth, issue2) => {
|
|
15200
|
+
if (auth.type === "bearer" && !auth.token) {
|
|
15201
|
+
issue2.addIssue({
|
|
15202
|
+
code: "custom",
|
|
15203
|
+
path: ["token"],
|
|
15204
|
+
message: "auth.token is required when auth.type is 'bearer'."
|
|
15205
|
+
});
|
|
15206
|
+
}
|
|
15207
|
+
const fieldsByType = {
|
|
15208
|
+
none: [],
|
|
15209
|
+
bearer: ["token"],
|
|
15210
|
+
jwt: ["api_url", "api_token", "api_secret"],
|
|
15211
|
+
oauth: [
|
|
15212
|
+
"oauth_authorization_url",
|
|
15213
|
+
"oauth_token_url",
|
|
15214
|
+
"oauth_client_id",
|
|
15215
|
+
"oauth_client_secret",
|
|
15216
|
+
"oauth_scope",
|
|
15217
|
+
"oauth_grant_type",
|
|
15218
|
+
"oauth_mode",
|
|
15219
|
+
"insecure"
|
|
15220
|
+
]
|
|
15221
|
+
};
|
|
15222
|
+
const allowed = /* @__PURE__ */ new Set(["type", ...fieldsByType[auth.type]]);
|
|
15223
|
+
for (const key of Object.keys(auth)) {
|
|
15224
|
+
if (!allowed.has(key)) {
|
|
15225
|
+
issue2.addIssue({
|
|
15226
|
+
code: "custom",
|
|
15227
|
+
path: [key],
|
|
15228
|
+
message: `auth.${key} does not apply when auth.type is '${auth.type}'.`
|
|
15229
|
+
});
|
|
15230
|
+
}
|
|
15231
|
+
}
|
|
15232
|
+
if (auth.type === "jwt") {
|
|
15233
|
+
for (const field of ["api_url", "api_token", "api_secret"]) {
|
|
15234
|
+
if (!auth[field]) {
|
|
15235
|
+
issue2.addIssue({
|
|
15236
|
+
code: "custom",
|
|
15237
|
+
path: [field],
|
|
15238
|
+
message: `auth.${field} is required when auth.type is 'jwt'.`
|
|
15239
|
+
});
|
|
15240
|
+
}
|
|
15241
|
+
}
|
|
15242
|
+
}
|
|
15243
|
+
}).describe(
|
|
15244
|
+
"Auth config. Common OAuth path: { type: 'oauth' } plus url; leave OAuth URLs/client fields blank first so metadata discovery/DCR can do the work."
|
|
15245
|
+
);
|
|
15246
|
+
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' }.");
|
|
15247
|
+
var mcpServerCreateSchema = external_exports.strictObject({
|
|
15248
|
+
name: mcpNameSchema,
|
|
15249
|
+
displayName: mcpOptionalNonEmptyString(
|
|
15250
|
+
"displayName",
|
|
15251
|
+
'Human-friendly display name, e.g. "Context7 MCP".'
|
|
15252
|
+
),
|
|
15253
|
+
description: mcpOptionalString("description", "Optional description."),
|
|
15254
|
+
transport: external_exports.enum(["stdio", "http", "sse"]).optional().describe(
|
|
15255
|
+
"Transport. Defaults to 'http' when url is provided, otherwise 'stdio'. Most remote OAuth MCP servers use 'http'."
|
|
15256
|
+
),
|
|
15257
|
+
url: mcpOptionalString(
|
|
15258
|
+
"url",
|
|
15259
|
+
"Remote MCP server URL for http/sse transports. Supports templates like {{ user.env.MCP_URL }}."
|
|
15260
|
+
),
|
|
15261
|
+
command: mcpOptionalString("command", 'Local command for stdio transport, e.g. "npx".'),
|
|
15262
|
+
args: external_exports.array(external_exports.string()).optional().describe(
|
|
15263
|
+
'Arguments for stdio command, e.g. ["-y", "@modelcontextprotocol/server-filesystem"].'
|
|
15264
|
+
),
|
|
15265
|
+
headers: stringMapSchema.optional().describe(
|
|
15266
|
+
"Custom HTTP headers for http/sse transports. Do not include Authorization; use auth instead. Prefer templates for secret values."
|
|
15267
|
+
),
|
|
15268
|
+
env: stringMapSchema.optional().describe(
|
|
15269
|
+
"Environment variables for the MCP process/config. Prefer {{ user.env.VAR }} templates for secrets."
|
|
15270
|
+
),
|
|
15271
|
+
auth: mcpAuthInputSchema.optional(),
|
|
15272
|
+
scope: external_exports.enum(["global", "session"]).optional().describe(
|
|
15273
|
+
"Scope. Defaults to 'global' so it appears in agor_mcp_servers_list. 'session' is only for explicit session attachment workflows."
|
|
15274
|
+
),
|
|
15275
|
+
enabled: external_exports.boolean().optional().describe("Whether the server is enabled. Defaults to true."),
|
|
15276
|
+
attachToCurrentSession: external_exports.boolean().optional().describe(
|
|
15277
|
+
`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.`
|
|
15278
|
+
),
|
|
15279
|
+
attachToSessionId: mcpOptionalId(
|
|
15280
|
+
"attachToSessionId",
|
|
15281
|
+
"Session",
|
|
15282
|
+
"Optional session ID (UUIDv7 or short ID) to attach after creating. Overrides attachToCurrentSession."
|
|
15283
|
+
)
|
|
15284
|
+
}).superRefine((value, issue2) => validateMcpServerConfig(value, issue2, false));
|
|
15285
|
+
var mcpServerUpdateSchema = external_exports.strictObject({
|
|
15286
|
+
mcpServerId: mcpRequiredId(
|
|
15287
|
+
"mcpServerId",
|
|
15288
|
+
"MCP server",
|
|
15289
|
+
"MCP server ID to update (UUIDv7 or short ID)"
|
|
15290
|
+
),
|
|
15291
|
+
displayName: mcpOptionalNonEmptyString("displayName", "New human-friendly display name."),
|
|
15292
|
+
description: mcpOptionalString(
|
|
15293
|
+
"description",
|
|
15294
|
+
"New description. Pass an empty string to clear."
|
|
15295
|
+
),
|
|
15296
|
+
transport: external_exports.enum(["stdio", "http", "sse"]).optional().describe("Transport to set."),
|
|
15297
|
+
url: mcpOptionalString("url", "Remote MCP URL for http/sse transports."),
|
|
15298
|
+
command: mcpOptionalString("command", "Local command for stdio transport."),
|
|
15299
|
+
args: external_exports.array(external_exports.string()).optional().describe("Arguments for stdio command."),
|
|
15300
|
+
headers: stringMapSchema.optional().describe(
|
|
15301
|
+
"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."
|
|
15302
|
+
),
|
|
15303
|
+
env: stringMapSchema.optional().describe("Replace environment variables."),
|
|
15304
|
+
auth: mcpAuthInputSchema.optional().describe(
|
|
15305
|
+
"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."
|
|
15306
|
+
),
|
|
15307
|
+
scope: external_exports.enum(["global", "session"]).optional().describe("Scope to set."),
|
|
15308
|
+
enabled: external_exports.boolean().optional().describe("Enabled flag."),
|
|
15309
|
+
toolPermissions: toolPermissionsSchema.optional()
|
|
15310
|
+
}).superRefine((value, issue2) => validateMcpServerConfig(value, issue2, true));
|
|
15311
|
+
function validateHeaders(headers, issue2) {
|
|
15312
|
+
if (!headers) return;
|
|
15313
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
15314
|
+
const name = key.trim();
|
|
15315
|
+
if (!name) {
|
|
15316
|
+
issue2.addIssue({
|
|
15317
|
+
code: "custom",
|
|
15318
|
+
path: ["headers", key],
|
|
15319
|
+
message: "Header names cannot be empty."
|
|
15320
|
+
});
|
|
15321
|
+
} else if (!isValidMCPHeaderName(name)) {
|
|
15322
|
+
issue2.addIssue({
|
|
15323
|
+
code: "custom",
|
|
15324
|
+
path: ["headers", key],
|
|
15325
|
+
message: `Invalid HTTP header name: ${key}`
|
|
15326
|
+
});
|
|
15327
|
+
} else if (isReservedMCPCustomHeaderName(name)) {
|
|
15328
|
+
issue2.addIssue({
|
|
15329
|
+
code: "custom",
|
|
15330
|
+
path: ["headers", key],
|
|
15331
|
+
message: `Header ${name} is reserved; configure Authorization through auth instead.`
|
|
15332
|
+
});
|
|
15333
|
+
}
|
|
15334
|
+
if (typeof value !== "string") {
|
|
15335
|
+
issue2.addIssue({
|
|
15336
|
+
code: "custom",
|
|
15337
|
+
path: ["headers", key],
|
|
15338
|
+
message: "Header values must be strings."
|
|
15339
|
+
});
|
|
15340
|
+
}
|
|
15341
|
+
}
|
|
15342
|
+
}
|
|
15343
|
+
function validateMcpServerConfig(value, issue2, partial2) {
|
|
15344
|
+
const transport = value.transport ?? (value.url ? "http" : "stdio");
|
|
15345
|
+
validateHeaders(value.headers, issue2);
|
|
15346
|
+
if (!partial2 || value.transport !== void 0 || value.url !== void 0 || value.command !== void 0) {
|
|
15347
|
+
if (transport === "stdio") {
|
|
15348
|
+
if (!partial2 && !value.command) {
|
|
15349
|
+
issue2.addIssue({
|
|
15350
|
+
code: "custom",
|
|
15351
|
+
path: ["command"],
|
|
15352
|
+
message: "command is required for stdio transport."
|
|
15353
|
+
});
|
|
15354
|
+
}
|
|
15355
|
+
if (value.url) {
|
|
15356
|
+
issue2.addIssue({
|
|
15357
|
+
code: "custom",
|
|
15358
|
+
path: ["url"],
|
|
15359
|
+
message: "url only applies to http/sse transports, not stdio."
|
|
15360
|
+
});
|
|
15361
|
+
}
|
|
15362
|
+
if (value.headers) {
|
|
15363
|
+
issue2.addIssue({
|
|
15364
|
+
code: "custom",
|
|
15365
|
+
path: ["headers"],
|
|
15366
|
+
message: "headers only apply to http/sse transports, not stdio."
|
|
15367
|
+
});
|
|
15368
|
+
}
|
|
15369
|
+
if (value.auth && value.auth.type !== "none") {
|
|
15370
|
+
issue2.addIssue({
|
|
15371
|
+
code: "custom",
|
|
15372
|
+
path: ["auth", "type"],
|
|
15373
|
+
message: "Authentication config only applies to http/sse transports."
|
|
15374
|
+
});
|
|
15375
|
+
}
|
|
15376
|
+
} else if (!partial2 && !value.url) {
|
|
15377
|
+
issue2.addIssue({
|
|
15378
|
+
code: "custom",
|
|
15379
|
+
path: ["url"],
|
|
15380
|
+
message: `url is required for ${transport} transport.`
|
|
15381
|
+
});
|
|
15382
|
+
} else {
|
|
15383
|
+
if (value.command) {
|
|
15384
|
+
issue2.addIssue({
|
|
15385
|
+
code: "custom",
|
|
15386
|
+
path: ["command"],
|
|
15387
|
+
message: "command only applies to stdio transport, not http/sse."
|
|
15388
|
+
});
|
|
15389
|
+
}
|
|
15390
|
+
if (value.args && value.args.length > 0) {
|
|
15391
|
+
issue2.addIssue({
|
|
15392
|
+
code: "custom",
|
|
15393
|
+
path: ["args"],
|
|
15394
|
+
message: "args only apply to stdio transport, not http/sse."
|
|
15395
|
+
});
|
|
15396
|
+
}
|
|
15397
|
+
}
|
|
15398
|
+
}
|
|
15399
|
+
}
|
|
15400
|
+
|
|
14937
15401
|
// src/mcp/tools/messages.ts
|
|
14938
15402
|
import { isBranchRbacEnabled as isBranchRbacEnabled2 } from "@agor/core/config";
|
|
14939
15403
|
import {
|
|
@@ -14941,16 +15405,18 @@ import {
|
|
|
14941
15405
|
asc,
|
|
14942
15406
|
desc,
|
|
14943
15407
|
eq,
|
|
14944
|
-
|
|
15408
|
+
gte,
|
|
15409
|
+
lte,
|
|
14945
15410
|
messages as messagesTable,
|
|
14946
15411
|
or,
|
|
14947
|
-
SessionRepository as SessionRepository2,
|
|
14948
15412
|
select,
|
|
14949
|
-
sql
|
|
15413
|
+
sql,
|
|
15414
|
+
visibleSessionReferenceAccessExists
|
|
14950
15415
|
} from "@agor/core/db";
|
|
15416
|
+
var MAX_CROSS_SESSION_SEARCH_WINDOW_MS = 31 * 24 * 60 * 60 * 1e3;
|
|
14951
15417
|
|
|
14952
15418
|
// src/mcp/tools/proxies.ts
|
|
14953
|
-
import { getBaseUrl, loadConfig, resolveProxies } from "@agor/core/config";
|
|
15419
|
+
import { getBaseUrl, loadConfig as loadConfig2, resolveProxies } from "@agor/core/config";
|
|
14954
15420
|
|
|
14955
15421
|
// src/mcp/tools/repos.ts
|
|
14956
15422
|
import { extractSlugFromUrl, isValidGitUrl, isValidSlug } from "@agor/core/config";
|
|
@@ -14962,7 +15428,7 @@ var agenticToolConfigSchema = external_exports.object({
|
|
|
14962
15428
|
model_config: external_exports.object({
|
|
14963
15429
|
mode: external_exports.enum(["alias", "exact"]).optional(),
|
|
14964
15430
|
model: mcpOptionalString("model_config.model", "Model name override."),
|
|
14965
|
-
effort: external_exports.enum(["low", "medium", "high", "max"]).optional(),
|
|
15431
|
+
effort: external_exports.enum(["low", "medium", "high", "xhigh", "max"]).optional(),
|
|
14966
15432
|
advisorModel: mcpOptionalString(
|
|
14967
15433
|
"model_config.advisorModel",
|
|
14968
15434
|
"Claude Code advisor model override (e.g. 'opus', 'sonnet', 'fable')."
|
|
@@ -14978,7 +15444,7 @@ var agenticToolConfigSchema = external_exports.object({
|
|
|
14978
15444
|
|
|
14979
15445
|
// src/mcp/tools/sessions.ts
|
|
14980
15446
|
import {
|
|
14981
|
-
BranchRepository as
|
|
15447
|
+
BranchRepository as BranchRepository6,
|
|
14982
15448
|
SessionRelationshipRepository,
|
|
14983
15449
|
shortId as shortId5
|
|
14984
15450
|
} from "@agor/core/db";
|
|
@@ -15001,6 +15467,7 @@ import {
|
|
|
15001
15467
|
} from "@agor/core/types";
|
|
15002
15468
|
init_branch_inspect();
|
|
15003
15469
|
init_executor_read_impersonation();
|
|
15470
|
+
init_spawn_executor();
|
|
15004
15471
|
var modelConfigObjectSchema = external_exports.object({
|
|
15005
15472
|
mode: external_exports.enum(["alias", "exact"]).optional().describe("Model selection mode (default: 'alias')"),
|
|
15006
15473
|
// .min(1): reject empty-string model explicitly so callers don't silently
|
|
@@ -15009,7 +15476,7 @@ var modelConfigObjectSchema = external_exports.object({
|
|
|
15009
15476
|
"modelConfig.model",
|
|
15010
15477
|
"Model identifier (e.g. 'claude-opus-4-6', 'claude-sonnet-4-6')"
|
|
15011
15478
|
),
|
|
15012
|
-
effort: external_exports.enum(["low", "medium", "high", "max"]).optional().describe("Reasoning effort level (default: high)"),
|
|
15479
|
+
effort: external_exports.enum(["low", "medium", "high", "xhigh", "max"]).optional().describe("Reasoning effort level (default: high)"),
|
|
15013
15480
|
advisorModel: mcpOptionalString(
|
|
15014
15481
|
"modelConfig.advisorModel",
|
|
15015
15482
|
"Claude Code advisor model override (e.g. 'opus', 'sonnet', 'fable', or a full model ID)."
|
|
@@ -15030,10 +15497,10 @@ var modelConfigInputSchema = external_exports.union([
|
|
|
15030
15497
|
);
|
|
15031
15498
|
|
|
15032
15499
|
// src/mcp/tools/users.ts
|
|
15033
|
-
import { ROLES as
|
|
15500
|
+
import { ROLES as ROLES4 } from "@agor/core/types";
|
|
15034
15501
|
|
|
15035
15502
|
// src/mcp/tools/widgets.ts
|
|
15036
|
-
import { MessageRole as MessageRole2 } from "@agor/core/types";
|
|
15503
|
+
import { getRequiredSecretFields as getRequiredSecretFields2, hasMinimumRole as hasMinimumRole5, MessageRole as MessageRole2, ROLES as ROLES6 } from "@agor/core/types";
|
|
15037
15504
|
|
|
15038
15505
|
// src/utils/append-system-message.ts
|
|
15039
15506
|
import { generateId as generateId2, SessionRepository as SessionRepository3 } from "@agor/core/db";
|
|
@@ -15043,9 +15510,20 @@ import { MessageRole } from "@agor/core/types";
|
|
|
15043
15510
|
import { EXECUTING_TASK_STATUSES, isTaskExecuting } from "@agor/core/types";
|
|
15044
15511
|
|
|
15045
15512
|
// src/widgets/env-vars/index.ts
|
|
15046
|
-
import {
|
|
15513
|
+
import {
|
|
15514
|
+
ENV_VAR_CONSTRAINTS,
|
|
15515
|
+
isEnvVarAllowed,
|
|
15516
|
+
validateEnvVar
|
|
15517
|
+
} from "@agor/core/config";
|
|
15518
|
+
import { SessionEnvSelectionRepository } from "@agor/core/db";
|
|
15047
15519
|
import { BadRequest } from "@agor/core/feathers";
|
|
15048
15520
|
var ENV_VAR_NAME_REGEX = ENV_VAR_CONSTRAINTS.NAME_PATTERN;
|
|
15521
|
+
var envVarFieldMetadataSchema = external_exports.object({
|
|
15522
|
+
description: external_exports.string().max(200).optional(),
|
|
15523
|
+
placeholder: external_exports.string().max(120).optional(),
|
|
15524
|
+
format_hint: external_exports.string().max(80).optional(),
|
|
15525
|
+
input_type: external_exports.enum(["password", "text", "textarea"]).default("password").optional()
|
|
15526
|
+
}).strict();
|
|
15049
15527
|
var envVarsParamsSchema = external_exports.object({
|
|
15050
15528
|
names: external_exports.array(external_exports.string().regex(ENV_VAR_NAME_REGEX)).min(1).max(10).refine((names) => new Set(names).size === names.length, {
|
|
15051
15529
|
message: "Env var names must be unique"
|
|
@@ -15053,20 +15531,82 @@ var envVarsParamsSchema = external_exports.object({
|
|
|
15053
15531
|
reason: external_exports.string().min(1).max(200).describe(
|
|
15054
15532
|
"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."
|
|
15055
15533
|
),
|
|
15534
|
+
variable_metadata: external_exports.record(external_exports.string().regex(ENV_VAR_NAME_REGEX), envVarFieldMetadataSchema).optional().describe(
|
|
15535
|
+
"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."
|
|
15536
|
+
),
|
|
15056
15537
|
auto_resume: external_exports.boolean().default(true).describe(
|
|
15057
15538
|
"When true (default), a system-authored prompt is auto-queued back into the agent on submit/dismiss."
|
|
15058
15539
|
)
|
|
15540
|
+
}).superRefine((params, ctx) => {
|
|
15541
|
+
const requested = new Set(params.names);
|
|
15542
|
+
for (const key of Object.keys(params.variable_metadata ?? {})) {
|
|
15543
|
+
if (!requested.has(key)) {
|
|
15544
|
+
ctx.addIssue({
|
|
15545
|
+
code: external_exports.ZodIssueCode.custom,
|
|
15546
|
+
path: ["variable_metadata", key],
|
|
15547
|
+
message: `Metadata key ${key} must match a requested env var name`
|
|
15548
|
+
});
|
|
15549
|
+
}
|
|
15550
|
+
}
|
|
15059
15551
|
});
|
|
15060
15552
|
var envVarsSubmitSchema = external_exports.object({
|
|
15061
15553
|
values: external_exports.record(
|
|
15062
15554
|
external_exports.string().regex(ENV_VAR_NAME_REGEX),
|
|
15063
15555
|
external_exports.string().min(1).max(ENV_VAR_CONSTRAINTS.MAX_VALUE_LENGTH)
|
|
15064
|
-
).
|
|
15065
|
-
|
|
15066
|
-
}),
|
|
15556
|
+
).default({}),
|
|
15557
|
+
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."),
|
|
15067
15558
|
scope: external_exports.enum(["global", "session"])
|
|
15559
|
+
}).superRefine((submit, ctx) => {
|
|
15560
|
+
const valueNames = Object.keys(submit.values);
|
|
15561
|
+
const existingNames = submit.use_existing;
|
|
15562
|
+
const total = valueNames.length + existingNames.length;
|
|
15563
|
+
if (total < 1 || total > 10) {
|
|
15564
|
+
ctx.addIssue({
|
|
15565
|
+
code: external_exports.ZodIssueCode.custom,
|
|
15566
|
+
message: "Must submit between 1 and 10 env vars"
|
|
15567
|
+
});
|
|
15568
|
+
}
|
|
15569
|
+
const duplicates = existingNames.filter((name) => valueNames.includes(name));
|
|
15570
|
+
for (const name of duplicates) {
|
|
15571
|
+
ctx.addIssue({
|
|
15572
|
+
code: external_exports.ZodIssueCode.custom,
|
|
15573
|
+
path: ["use_existing"],
|
|
15574
|
+
message: `Cannot both submit and use existing value for ${name}`
|
|
15575
|
+
});
|
|
15576
|
+
}
|
|
15577
|
+
if (new Set(existingNames).size !== existingNames.length) {
|
|
15578
|
+
ctx.addIssue({
|
|
15579
|
+
code: external_exports.ZodIssueCode.custom,
|
|
15580
|
+
path: ["use_existing"],
|
|
15581
|
+
message: "use_existing names must be unique"
|
|
15582
|
+
});
|
|
15583
|
+
}
|
|
15068
15584
|
});
|
|
15069
15585
|
|
|
15586
|
+
// src/widgets/gateway-token/index.ts
|
|
15587
|
+
import { Forbidden as Forbidden2 } from "@agor/core/feathers";
|
|
15588
|
+
import {
|
|
15589
|
+
GATEWAY_SENSITIVE_CONFIG_FIELDS as GATEWAY_SENSITIVE_CONFIG_FIELDS2,
|
|
15590
|
+
hasMinimumRole as hasMinimumRole4,
|
|
15591
|
+
ROLES as ROLES5
|
|
15592
|
+
} from "@agor/core/types";
|
|
15593
|
+
var MAX_TOKEN_LENGTH = 8192;
|
|
15594
|
+
var gatewayTokenParamsSchema = external_exports.object({
|
|
15595
|
+
gatewayChannelId: external_exports.string().min(1).describe("Gateway channel whose credentials are being set."),
|
|
15596
|
+
channelType: external_exports.enum(["slack", "discord", "whatsapp", "telegram", "github", "teams"]).describe("Platform type of the channel; drives per-field placeholders."),
|
|
15597
|
+
channelName: external_exports.string().min(1).max(200).describe("Human-readable channel name for the form heading and prompts."),
|
|
15598
|
+
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, {
|
|
15599
|
+
message: "Token field names must be unique"
|
|
15600
|
+
}).describe("Secret config field names to collect (subset of the sensitive fields)."),
|
|
15601
|
+
reason: external_exports.string().min(1).max(200).describe("One sentence explaining why the tokens are needed. Renders as a muted line.")
|
|
15602
|
+
}).strict();
|
|
15603
|
+
var gatewayTokenSubmitSchema = external_exports.object({
|
|
15604
|
+
tokens: external_exports.partialRecord(
|
|
15605
|
+
external_exports.enum(GATEWAY_SENSITIVE_CONFIG_FIELDS2),
|
|
15606
|
+
external_exports.string().min(1).max(MAX_TOKEN_LENGTH)
|
|
15607
|
+
).describe("Map of sensitive field name \u2192 credential value.")
|
|
15608
|
+
}).strict();
|
|
15609
|
+
|
|
15070
15610
|
// src/mcp/server.ts
|
|
15071
15611
|
var DEBUG_MCP_REQUESTS = process.env.AGOR_DEBUG_MCP_REQUESTS === "1" || process.env.DEBUG?.includes("mcp-requests");
|
|
15072
15612
|
function textResult(data) {
|
|
@@ -15102,6 +15642,15 @@ Continue or fork an existing session:
|
|
|
15102
15642
|
Discover tools: search domains/summaries \u2192 get details for one tool \u2192 execute`;
|
|
15103
15643
|
|
|
15104
15644
|
// src/mcp/tools/analytics.ts
|
|
15645
|
+
var optionalStringOrStringArray = (fieldName, description) => external_exports.union([
|
|
15646
|
+
external_exports.string().min(1, `${fieldName} cannot be empty when provided.`),
|
|
15647
|
+
external_exports.array(external_exports.string().min(1, `${fieldName} values cannot be empty.`)).min(1)
|
|
15648
|
+
]).optional().describe(description);
|
|
15649
|
+
async function resolveOneOrMany(value, resolver) {
|
|
15650
|
+
if (!value) return void 0;
|
|
15651
|
+
if (Array.isArray(value)) return Promise.all(value.map((item) => resolver(item)));
|
|
15652
|
+
return resolver(value);
|
|
15653
|
+
}
|
|
15105
15654
|
function registerAnalyticsTools(server, ctx) {
|
|
15106
15655
|
server.registerTool(
|
|
15107
15656
|
"agor_analytics_leaderboard",
|
|
@@ -15109,9 +15658,26 @@ function registerAnalyticsTools(server, ctx) {
|
|
|
15109
15658
|
description: "Get usage analytics leaderboard showing token, cost, session, and duration breakdown. Supports dynamic grouping by user, branch, repo, model, and/or tool (freely combined), plus optional time bucketing (hour/day/week/month) for time-series reports.",
|
|
15110
15659
|
annotations: { readOnlyHint: true },
|
|
15111
15660
|
inputSchema: external_exports.strictObject({
|
|
15112
|
-
userId:
|
|
15113
|
-
|
|
15114
|
-
|
|
15661
|
+
userId: optionalStringOrStringArray(
|
|
15662
|
+
"userId",
|
|
15663
|
+
"Filter by one or more user IDs (UUIDv7 or short IDs). Accepts a string or array."
|
|
15664
|
+
),
|
|
15665
|
+
branchId: optionalStringOrStringArray(
|
|
15666
|
+
"branchId",
|
|
15667
|
+
"Filter by one or more branch IDs (UUIDv7 or short IDs). Accepts a string or array."
|
|
15668
|
+
),
|
|
15669
|
+
repoId: optionalStringOrStringArray(
|
|
15670
|
+
"repoId",
|
|
15671
|
+
"Filter by one or more repository IDs (UUIDv7 or short IDs). Accepts a string or array."
|
|
15672
|
+
),
|
|
15673
|
+
model: optionalStringOrStringArray(
|
|
15674
|
+
"model",
|
|
15675
|
+
"Filter by one or more model names. Accepts a string or array."
|
|
15676
|
+
),
|
|
15677
|
+
tool: optionalStringOrStringArray(
|
|
15678
|
+
"tool",
|
|
15679
|
+
"Filter by one or more agentic tools. Accepts a string or array."
|
|
15680
|
+
),
|
|
15115
15681
|
startDate: mcpOptionalString(
|
|
15116
15682
|
"startDate",
|
|
15117
15683
|
"Filter by start date (ISO 8601 format, optional)"
|
|
@@ -15132,9 +15698,17 @@ function registerAnalyticsTools(server, ctx) {
|
|
|
15132
15698
|
},
|
|
15133
15699
|
async (args) => {
|
|
15134
15700
|
const query = {};
|
|
15135
|
-
|
|
15136
|
-
if (
|
|
15137
|
-
|
|
15701
|
+
const userId = await resolveOneOrMany(args.userId, (value) => resolveUserId(ctx, value));
|
|
15702
|
+
if (userId) query.userId = userId;
|
|
15703
|
+
const branchId = await resolveOneOrMany(
|
|
15704
|
+
args.branchId,
|
|
15705
|
+
(value) => resolveBranchId(ctx, value)
|
|
15706
|
+
);
|
|
15707
|
+
if (branchId) query.branchId = branchId;
|
|
15708
|
+
const repoId = await resolveOneOrMany(args.repoId, (value) => resolveRepoId(ctx, value));
|
|
15709
|
+
if (repoId) query.repoId = repoId;
|
|
15710
|
+
if (args.model) query.model = args.model;
|
|
15711
|
+
if (args.tool) query.tool = args.tool;
|
|
15138
15712
|
if (args.startDate) query.startDate = args.startDate;
|
|
15139
15713
|
if (args.endDate) query.endDate = args.endDate;
|
|
15140
15714
|
if (args.groupBy) query.groupBy = args.groupBy;
|