agor-live 0.21.2 → 0.23.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/admin/add-to-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/add-to-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/add-to-branch-group.js +133 -33
- package/dist/cli/commands/admin/create-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/create-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/create-branch-group.js +132 -38
- package/dist/cli/commands/admin/create-symlink.d.ts +2 -14
- package/dist/cli/commands/admin/create-symlink.d.ts.map +1 -1
- package/dist/cli/commands/admin/create-symlink.js +138 -61
- package/dist/cli/commands/admin/delete-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/delete-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/delete-branch-group.js +132 -28
- package/dist/cli/commands/admin/delete-user.d.ts +2 -13
- package/dist/cli/commands/admin/delete-user.d.ts.map +1 -1
- package/dist/cli/commands/admin/delete-user.js +132 -38
- package/dist/cli/commands/admin/ensure-user.d.ts +2 -14
- package/dist/cli/commands/admin/ensure-user.d.ts.map +1 -1
- package/dist/cli/commands/admin/ensure-user.js +131 -46
- package/dist/cli/commands/admin/remove-from-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/remove-from-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/remove-from-branch-group.js +133 -33
- package/dist/cli/commands/admin/remove-symlink.d.ts +2 -14
- package/dist/cli/commands/admin/remove-symlink.d.ts.map +1 -1
- package/dist/cli/commands/admin/remove-symlink.js +136 -49
- package/dist/cli/commands/admin/scrub-git-remotes.d.ts +2 -2
- package/dist/cli/commands/admin/scrub-git-remotes.d.ts.map +1 -1
- package/dist/cli/commands/admin/scrub-git-remotes.js +128 -86
- package/dist/cli/commands/admin/sync-user-symlinks.d.ts +2 -14
- package/dist/cli/commands/admin/sync-user-symlinks.d.ts.map +1 -1
- package/dist/cli/commands/admin/sync-user-symlinks.js +132 -43
- package/dist/cli/commands/auth/whoami.d.ts.map +1 -1
- package/dist/cli/commands/auth/whoami.js +2 -1
- package/dist/cli/commands/branch/env/request.test.d.ts +2 -0
- package/dist/cli/commands/branch/env/request.test.d.ts.map +1 -0
- package/dist/cli/commands/branch/env/request.test.js +17723 -0
- package/dist/cli/commands/branch/env/restart.d.ts.map +1 -1
- package/dist/cli/commands/branch/env/restart.js +8 -2
- package/dist/cli/commands/branch/env/start.d.ts.map +1 -1
- package/dist/cli/commands/branch/env/start.js +8 -2
- package/dist/cli/commands/branch/env/stop.d.ts.map +1 -1
- package/dist/cli/commands/branch/env/stop.js +8 -2
- 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 +12 -3
- package/dist/core/api/index.d.ts +16 -2
- package/dist/core/api/index.d.ts.map +1 -1
- package/dist/core/api/index.js +12 -3
- package/dist/core/claude/index.cjs +634 -81
- package/dist/core/claude/index.js +631 -80
- package/dist/core/claude-cli/index.cjs +11 -0
- package/dist/core/claude-cli/index.js +11 -0
- package/dist/core/claude-cli/pricing.d.ts.map +1 -1
- package/dist/core/client/index.cjs +78 -10
- package/dist/core/client/index.js +69 -10
- package/dist/core/config/browser.cjs +5 -7
- package/dist/core/config/browser.js +5 -7
- 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/constants.d.ts +1 -1
- package/dist/core/config/index.cjs +4277 -4391
- 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 +4299 -4433
- 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 +75 -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 +2765 -1018
- 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 +2612 -895
- package/dist/core/db/migrate.d.ts.map +1 -1
- package/dist/core/db/repositories/artifacts.d.ts +27 -2
- package/dist/core/db/repositories/artifacts.d.ts.map +1 -1
- package/dist/core/db/repositories/base.d.ts +18 -0
- package/dist/core/db/repositories/base.d.ts.map +1 -1
- package/dist/core/db/repositories/board-comments.d.ts +17 -1
- package/dist/core/db/repositories/board-comments.d.ts.map +1 -1
- package/dist/core/db/repositories/board-objects.d.ts.map +1 -1
- package/dist/core/db/repositories/boards.d.ts +28 -4
- package/dist/core/db/repositories/boards.d.ts.map +1 -1
- package/dist/core/db/repositories/branch-access.d.ts +32 -0
- package/dist/core/db/repositories/branch-access.d.ts.map +1 -1
- package/dist/core/db/repositories/branches.d.ts +54 -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.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 +3 -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/session-relationships.d.ts +30 -0
- package/dist/core/db/repositories/session-relationships.d.ts.map +1 -0
- package/dist/core/db/repositories/sessions.d.ts +49 -5
- package/dist/core/db/repositories/sessions.d.ts.map +1 -1
- package/dist/core/db/repositories/tasks.d.ts +7 -2
- package/dist/core/db/repositories/tasks.d.ts.map +1 -1
- package/dist/core/db/repositories/user-api-keys.d.ts +10 -1
- package/dist/core/db/repositories/user-api-keys.d.ts.map +1 -1
- package/dist/core/db/repositories/users.d.ts +18 -7
- package/dist/core/db/repositories/users.d.ts.map +1 -1
- package/dist/core/db/schema.d.ts +2605 -766
- package/dist/core/db/schema.d.ts.map +1 -1
- package/dist/core/db/schema.postgres.d.ts +1318 -49
- package/dist/core/db/schema.postgres.d.ts.map +1 -1
- package/dist/core/db/schema.sqlite.d.ts +667 -45
- 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/0050_artifact_source_session.sql +3 -0
- package/dist/core/drizzle/postgres/0051_session_relationships.sql +26 -0
- 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 +56 -0
- package/dist/core/drizzle/sqlite/0059_artifact_source_session.sql +2 -0
- package/dist/core/drizzle/sqlite/0060_session_relationships.sql +23 -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 +42 -0
- package/dist/core/environment/render-snapshot.cjs +1 -4
- package/dist/core/environment/render-snapshot.js +1 -4
- package/dist/core/environment/webhook.cjs +1 -4
- package/dist/core/environment/webhook.js +1 -4
- package/dist/core/gateway/connector-registry.d.ts.map +1 -1
- package/dist/core/gateway/connector.d.ts +32 -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 +136 -7
- package/dist/core/gateway/connectors/slack.d.ts.map +1 -1
- package/dist/core/gateway/connectors/teams.d.ts +107 -0
- package/dist/core/gateway/connectors/teams.d.ts.map +1 -0
- package/dist/core/gateway/context.d.ts.map +1 -1
- package/dist/core/gateway/index.cjs +1044 -78
- package/dist/core/gateway/index.d.ts +6 -2
- package/dist/core/gateway/index.d.ts.map +1 -1
- package/dist/core/gateway/index.js +1031 -77
- package/dist/core/gateway/system-message.d.ts +21 -0
- 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 +11268 -10246
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +11703 -10179
- package/dist/core/lib/feathers-validation.cjs +6 -1
- package/dist/core/lib/feathers-validation.d.ts +1 -0
- package/dist/core/lib/feathers-validation.d.ts.map +1 -1
- package/dist/core/lib/feathers-validation.js +6 -1
- package/dist/core/local-actions/git-remotes.d.ts +7 -0
- package/dist/core/local-actions/git-remotes.d.ts.map +1 -0
- package/dist/core/local-actions/index.cjs +7941 -0
- package/dist/core/local-actions/index.d.ts +6 -0
- package/dist/core/local-actions/index.d.ts.map +1 -0
- package/dist/core/local-actions/index.js +7943 -0
- package/dist/core/local-actions/symlinks.d.ts +20 -0
- package/dist/core/local-actions/symlinks.d.ts.map +1 -0
- package/dist/core/local-actions/types.d.ts +14 -0
- package/dist/core/local-actions/types.d.ts.map +1 -0
- package/dist/core/local-actions/unix-groups.d.ts +16 -0
- package/dist/core/local-actions/unix-groups.d.ts.map +1 -0
- package/dist/core/local-actions/unix-users.d.ts +12 -0
- package/dist/core/local-actions/unix-users.d.ts.map +1 -0
- package/dist/core/mcp/index.cjs +498 -34
- package/dist/core/mcp/index.js +497 -33
- package/dist/core/mcp/template-resolver.d.ts.map +1 -1
- package/dist/core/models/browser.cjs +148 -25
- package/dist/core/models/browser.js +144 -25
- package/dist/core/models/claude.d.ts +2 -2
- package/dist/core/models/claude.d.ts.map +1 -1
- package/dist/core/models/codex.d.ts +205 -21
- package/dist/core/models/codex.d.ts.map +1 -1
- package/dist/core/models/index.cjs +148 -25
- package/dist/core/models/index.js +144 -25
- package/dist/core/package.json +24 -0
- package/dist/core/seed/demo-fixtures.d.ts +87 -0
- package/dist/core/seed/demo-fixtures.d.ts.map +1 -0
- package/dist/core/seed/dev-fixtures.d.ts.map +1 -1
- package/dist/core/seed/index.cjs +8785 -5563
- 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 +8787 -5570
- package/dist/core/sessions/index.cjs +129 -24
- package/dist/core/sessions/index.js +129 -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 +22 -53
- package/dist/core/templates/session-context.cjs +2 -73
- package/dist/core/templates/session-context.d.ts +9 -53
- package/dist/core/templates/session-context.d.ts.map +1 -1
- package/dist/core/templates/session-context.js +2 -72
- package/dist/core/tools/mcp/jwt-auth.cjs +2 -20
- package/dist/core/tools/mcp/jwt-auth.d.ts.map +1 -1
- package/dist/core/tools/mcp/jwt-auth.js +2 -20
- package/dist/core/tools/mcp/oauth-mcp-transport.cjs +2 -15
- package/dist/core/tools/mcp/oauth-mcp-transport.d.ts.map +1 -1
- package/dist/core/tools/mcp/oauth-mcp-transport.js +2 -15
- package/dist/core/tools/mcp/oauth-refresh.cjs +684 -106
- package/dist/core/tools/mcp/oauth-refresh.js +682 -107
- package/dist/core/types/artifact.d.ts +5 -1
- package/dist/core/types/artifact.d.ts.map +1 -1
- package/dist/core/types/board.d.ts +2 -0
- package/dist/core/types/board.d.ts.map +1 -1
- package/dist/core/types/branch.d.ts +27 -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 +77 -2
- package/dist/core/types/gateway.d.ts.map +1 -1
- package/dist/core/types/id.d.ts +1 -0
- package/dist/core/types/id.d.ts.map +1 -1
- package/dist/core/types/index.cjs +61 -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 +52 -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 +72 -2
- package/dist/core/types/session.d.ts.map +1 -1
- package/dist/core/types/task.d.ts +9 -0
- package/dist/core/types/task.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 +1367 -669
- package/dist/core/unix/index.js +1330 -634
- package/dist/core/unix/unix-integration-service.d.ts +10 -7
- package/dist/core/unix/unix-integration-service.d.ts.map +1 -1
- package/dist/core/utils/emoji-shortcodes.d.ts +13 -0
- package/dist/core/utils/emoji-shortcodes.d.ts.map +1 -0
- package/dist/core/utils/permission-mode-mapper.cjs +19 -0
- package/dist/core/utils/permission-mode-mapper.js +19 -0
- package/dist/core/yaml/index.cjs +8 -8
- package/dist/core/yaml/index.d.ts +1 -1
- package/dist/core/yaml/index.d.ts.map +1 -1
- package/dist/core/yaml/index.js +7 -7
- package/dist/daemon/adapters/drizzle.d.ts +26 -4
- package/dist/daemon/adapters/drizzle.d.ts.map +1 -1
- package/dist/daemon/adapters/drizzle.js +68 -7
- package/dist/daemon/auth/api-key-strategy.js +1 -1
- package/dist/daemon/auth/executor-runtime-scope.d.ts.map +1 -1
- package/dist/daemon/auth/executor-runtime-scope.js +19 -5
- package/dist/daemon/auth/launch-auth.d.ts +5 -4
- package/dist/daemon/auth/launch-auth.d.ts.map +1 -1
- package/dist/daemon/auth/launch-auth.js +123 -39
- package/dist/daemon/auth/refresh-token-service.d.ts +22 -0
- package/dist/daemon/auth/refresh-token-service.d.ts.map +1 -0
- package/dist/daemon/auth/refresh-token-service.js +133 -0
- package/dist/daemon/auth/runtime-tokens.d.ts +3 -1
- package/dist/daemon/auth/runtime-tokens.d.ts.map +1 -1
- package/dist/daemon/auth/runtime-tokens.js +17 -4
- package/dist/daemon/auth/service-jwt-strategy.d.ts +2 -1
- package/dist/daemon/auth/service-jwt-strategy.d.ts.map +1 -1
- package/dist/daemon/auth/service-jwt-strategy.js +127 -1
- package/dist/daemon/auth/token-invalidation.d.ts +11 -0
- package/dist/daemon/auth/token-invalidation.d.ts.map +1 -0
- package/dist/daemon/auth/token-invalidation.js +38 -0
- package/dist/daemon/auth/user-redaction.d.ts +12 -0
- package/dist/daemon/auth/user-redaction.d.ts.map +1 -0
- package/dist/daemon/auth/user-redaction.js +13 -0
- package/dist/daemon/declarations.d.ts +8 -1
- 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 +69 -7
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +10429 -4408
- 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 +10429 -4408
- 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 +1621 -87
- 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 +553 -29
- package/dist/daemon/mcp/tools/artifacts.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/artifacts.js +516 -25
- package/dist/daemon/mcp/tools/boards.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/boards.js +522 -26
- package/dist/daemon/mcp/tools/branches.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/branches.js +579 -55
- package/dist/daemon/mcp/tools/card-types.js +513 -23
- package/dist/daemon/mcp/tools/cards.js +513 -23
- package/dist/daemon/mcp/tools/environment.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/environment.js +534 -28
- package/dist/daemon/mcp/tools/gateway-channels.d.ts +4 -0
- package/dist/daemon/mcp/tools/gateway-channels.d.ts.map +1 -0
- package/dist/daemon/mcp/tools/gateway-channels.js +16035 -0
- package/dist/daemon/mcp/tools/knowledge.js +513 -23
- package/dist/daemon/mcp/tools/mcp-servers.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/mcp-servers.js +848 -23
- package/dist/daemon/mcp/tools/messages.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/messages.js +573 -37
- package/dist/daemon/mcp/tools/proxies.js +523 -25
- package/dist/daemon/mcp/tools/repos.js +513 -23
- package/dist/daemon/mcp/tools/schedules.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/schedules.js +516 -24
- package/dist/daemon/mcp/tools/search.js +513 -23
- package/dist/daemon/mcp/tools/sessions.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/sessions.js +660 -33
- package/dist/daemon/mcp/tools/tasks.js +513 -23
- package/dist/daemon/mcp/tools/users.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/users.js +532 -28
- package/dist/daemon/mcp/tools/widgets.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/widgets.js +542 -25
- package/dist/daemon/register-hooks.d.ts +8 -3
- package/dist/daemon/register-hooks.d.ts.map +1 -1
- package/dist/daemon/register-hooks.js +1146 -609
- 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 +2926 -829
- 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 +4209 -1140
- package/dist/daemon/services/artifacts.d.ts +43 -6
- package/dist/daemon/services/artifacts.d.ts.map +1 -1
- package/dist/daemon/services/artifacts.js +134 -9
- package/dist/daemon/services/assistant-knowledge.d.ts +2 -2
- package/dist/daemon/services/assistant-knowledge.d.ts.map +1 -1
- package/dist/daemon/services/board-comments.d.ts +8 -5
- package/dist/daemon/services/board-comments.d.ts.map +1 -1
- package/dist/daemon/services/board-comments.js +78 -13
- package/dist/daemon/services/board-objects.d.ts +8 -5
- package/dist/daemon/services/board-objects.d.ts.map +1 -1
- package/dist/daemon/services/board-objects.js +14 -4
- package/dist/daemon/services/boards.d.ts +34 -5
- package/dist/daemon/services/boards.d.ts.map +1 -1
- package/dist/daemon/services/boards.js +116 -8
- package/dist/daemon/services/branch-owners.d.ts +3 -1
- package/dist/daemon/services/branch-owners.d.ts.map +1 -1
- package/dist/daemon/services/branch-owners.js +31 -4
- package/dist/daemon/services/branches.d.ts +39 -6
- package/dist/daemon/services/branches.d.ts.map +1 -1
- package/dist/daemon/services/branches.js +703 -210
- 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 +1048 -397
- 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 +106 -5
- package/dist/daemon/services/gateway.d.ts.map +1 -1
- package/dist/daemon/services/gateway.js +1184 -95
- 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 +7 -5
- package/dist/daemon/services/groups.d.ts.map +1 -1
- package/dist/daemon/services/groups.js +56 -0
- package/dist/daemon/services/health-monitor.d.ts +34 -2
- package/dist/daemon/services/health-monitor.d.ts.map +1 -1
- package/dist/daemon/services/health-monitor.js +145 -23
- package/dist/daemon/services/knowledge-document-edits.d.ts +3 -3
- package/dist/daemon/services/knowledge-document-edits.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-documents.d.ts +3 -3
- package/dist/daemon/services/knowledge-documents.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-documents.js +92 -7
- package/dist/daemon/services/knowledge-embedding-indexer.d.ts +7 -2
- package/dist/daemon/services/knowledge-embedding-indexer.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-embedding-indexer.js +37 -3
- package/dist/daemon/services/knowledge-graph.d.ts +3 -3
- package/dist/daemon/services/knowledge-graph.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-indexing.d.ts +3 -3
- package/dist/daemon/services/knowledge-indexing.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-namespaces.d.ts +3 -3
- package/dist/daemon/services/knowledge-namespaces.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-namespaces.js +72 -8
- package/dist/daemon/services/knowledge-reindex.d.ts +3 -3
- package/dist/daemon/services/knowledge-reindex.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-reindex.js +28 -1
- package/dist/daemon/services/knowledge-search.d.ts +3 -3
- package/dist/daemon/services/knowledge-search.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-settings.d.ts +3 -3
- package/dist/daemon/services/knowledge-settings.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-settings.js +24 -0
- package/dist/daemon/services/knowledge-versions.d.ts +3 -3
- package/dist/daemon/services/knowledge-versions.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-versions.js +68 -7
- package/dist/daemon/services/leaderboard.d.ts +14 -6
- package/dist/daemon/services/leaderboard.d.ts.map +1 -1
- package/dist/daemon/services/leaderboard.js +74 -15
- package/dist/daemon/services/local-actions.d.ts +13 -0
- package/dist/daemon/services/local-actions.d.ts.map +1 -0
- package/dist/daemon/services/local-actions.js +120 -0
- package/dist/daemon/services/mcp-servers.d.ts +3 -3
- package/dist/daemon/services/mcp-servers.d.ts.map +1 -1
- package/dist/daemon/services/mcp-servers.js +68 -13
- 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 +61 -30
- package/dist/daemon/services/schedules.d.ts +3 -3
- package/dist/daemon/services/schedules.d.ts.map +1 -1
- package/dist/daemon/services/schedules.js +68 -7
- package/dist/daemon/services/session-env-selections.d.ts +3 -3
- package/dist/daemon/services/session-env-selections.d.ts.map +1 -1
- package/dist/daemon/services/session-mcp-servers.d.ts +3 -3
- package/dist/daemon/services/session-mcp-servers.d.ts.map +1 -1
- package/dist/daemon/services/session-token-service.d.ts.map +1 -1
- package/dist/daemon/services/session-token-service.js +3 -0
- package/dist/daemon/services/sessions.d.ts +20 -8
- package/dist/daemon/services/sessions.d.ts.map +1 -1
- package/dist/daemon/services/sessions.js +211 -17
- package/dist/daemon/services/tasks.d.ts +24 -7
- package/dist/daemon/services/tasks.d.ts.map +1 -1
- package/dist/daemon/services/tasks.js +235 -59
- package/dist/daemon/services/terminals.d.ts +21 -3
- package/dist/daemon/services/terminals.d.ts.map +1 -1
- package/dist/daemon/services/terminals.js +81 -25
- package/dist/daemon/services/thread-session-map.d.ts +3 -3
- package/dist/daemon/services/thread-session-map.d.ts.map +1 -1
- package/dist/daemon/services/thread-session-map.js +68 -7
- package/dist/daemon/services/user-avatar-sync.d.ts +21 -0
- package/dist/daemon/services/user-avatar-sync.d.ts.map +1 -0
- package/dist/daemon/services/user-avatar-sync.js +267 -0
- package/dist/daemon/services/users.d.ts +29 -9
- package/dist/daemon/services/users.d.ts.map +1 -1
- package/dist/daemon/services/users.js +383 -30
- package/dist/daemon/services/zone-trigger.d.ts.map +1 -1
- package/dist/daemon/services/zone-trigger.js +17 -4
- package/dist/daemon/setup/build-info.d.ts +1 -1
- package/dist/daemon/setup/build-info.d.ts.map +1 -1
- package/dist/daemon/setup/build-info.js +5 -1
- package/dist/daemon/setup/database.d.ts +8 -3
- package/dist/daemon/setup/database.d.ts.map +1 -1
- package/dist/daemon/setup/database.js +26 -6
- package/dist/daemon/setup/first-run-admin.d.ts +2 -2
- package/dist/daemon/setup/first-run-admin.d.ts.map +1 -1
- package/dist/daemon/setup/index.js +97 -17
- package/dist/daemon/setup/socketio.d.ts +10 -1
- package/dist/daemon/setup/socketio.d.ts.map +1 -1
- package/dist/daemon/setup/socketio.js +68 -10
- package/dist/daemon/startup.d.ts +13 -2
- package/dist/daemon/startup.d.ts.map +1 -1
- package/dist/daemon/startup.js +354 -88
- package/dist/daemon/utils/append-system-message.d.ts +2 -2
- package/dist/daemon/utils/append-system-message.d.ts.map +1 -1
- package/dist/daemon/utils/apply-session-config-defaults.d.ts.map +1 -1
- package/dist/daemon/utils/apply-session-config-defaults.js +12 -1
- package/dist/daemon/utils/authorization.d.ts +3 -1
- package/dist/daemon/utils/authorization.d.ts.map +1 -1
- package/dist/daemon/utils/authorization.js +21 -6
- package/dist/daemon/utils/branch-authorization.d.ts +30 -0
- package/dist/daemon/utils/branch-authorization.d.ts.map +1 -1
- package/dist/daemon/utils/branch-authorization.js +63 -5
- package/dist/daemon/utils/branch-inspect.d.ts +1 -0
- package/dist/daemon/utils/branch-inspect.d.ts.map +1 -1
- package/dist/daemon/utils/branch-inspect.js +11 -3
- package/dist/daemon/utils/executor-read-impersonation.d.ts +2 -2
- package/dist/daemon/utils/executor-read-impersonation.d.ts.map +1 -1
- package/dist/daemon/utils/git-impersonation.d.ts +10 -10
- package/dist/daemon/utils/git-impersonation.d.ts.map +1 -1
- package/dist/daemon/utils/git-remote-credential-scan.d.ts +3 -3
- package/dist/daemon/utils/git-remote-credential-scan.d.ts.map +1 -1
- package/dist/daemon/utils/git-remote-credential-scan.js +6 -2
- package/dist/daemon/utils/mcp-token-authorization.d.ts +18 -13
- package/dist/daemon/utils/mcp-token-authorization.d.ts.map +1 -1
- package/dist/daemon/utils/mcp-token-authorization.js +11 -5
- package/dist/daemon/utils/open-source-telemetry-config.d.ts +6 -0
- package/dist/daemon/utils/open-source-telemetry-config.d.ts.map +1 -0
- package/dist/daemon/utils/open-source-telemetry-config.js +21 -0
- package/dist/daemon/utils/open-source-telemetry-heartbeat.d.ts +7 -0
- package/dist/daemon/utils/open-source-telemetry-heartbeat.d.ts.map +1 -0
- package/dist/daemon/utils/open-source-telemetry-heartbeat.js +15 -0
- package/dist/daemon/utils/open-source-telemetry-usage.d.ts +9 -0
- package/dist/daemon/utils/open-source-telemetry-usage.d.ts.map +1 -0
- package/dist/daemon/utils/open-source-telemetry-usage.js +121 -0
- package/dist/daemon/utils/realign-repo-origin.d.ts +3 -3
- package/dist/daemon/utils/realign-repo-origin.d.ts.map +1 -1
- package/dist/daemon/utils/realign-repo-origin.js +47 -16
- package/dist/daemon/utils/realtime-publish.d.ts +2 -0
- package/dist/daemon/utils/realtime-publish.d.ts.map +1 -1
- package/dist/daemon/utils/realtime-publish.js +51 -10
- package/dist/daemon/utils/session-state-hooks.d.ts +3 -3
- package/dist/daemon/utils/session-state-hooks.d.ts.map +1 -1
- package/dist/daemon/utils/session-stop.d.ts +43 -0
- package/dist/daemon/utils/session-stop.d.ts.map +1 -0
- package/dist/daemon/utils/session-stop.js +102 -0
- package/dist/daemon/utils/session-task-state.d.ts +7 -2
- package/dist/daemon/utils/session-task-state.d.ts.map +1 -1
- package/dist/daemon/utils/session-task-state.js +9 -3
- package/dist/daemon/utils/session-tasks.d.ts +4 -4
- package/dist/daemon/utils/session-tasks.d.ts.map +1 -1
- package/dist/daemon/utils/session-tasks.js +4 -8
- package/dist/daemon/utils/session-turn-lock.d.ts +8 -1
- package/dist/daemon/utils/session-turn-lock.d.ts.map +1 -1
- package/dist/daemon/utils/session-turn-lock.js +25 -2
- package/dist/daemon/utils/spawn-executor.d.ts +23 -1
- package/dist/daemon/utils/spawn-executor.d.ts.map +1 -1
- package/dist/daemon/utils/spawn-executor.js +34 -4
- package/dist/daemon/utils/tenant-db-scope.d.ts +20 -0
- package/dist/daemon/utils/tenant-db-scope.d.ts.map +1 -0
- package/dist/daemon/utils/tenant-db-scope.js +114 -0
- package/dist/daemon/utils/unix-group-init.d.ts +3 -3
- package/dist/daemon/utils/unix-group-init.d.ts.map +1 -1
- package/dist/daemon/utils/upload.d.ts +6 -9
- package/dist/daemon/utils/upload.d.ts.map +1 -1
- package/dist/daemon/utils/upload.js +30 -37
- package/dist/daemon/widgets/env-vars/index.d.ts +26 -1
- package/dist/daemon/widgets/env-vars/index.d.ts.map +1 -1
- package/dist/daemon/widgets/env-vars/index.js +145 -21
- package/dist/daemon/widgets/index.js +137 -21
- package/dist/executor/commands/environment.d.ts +13 -0
- package/dist/executor/commands/environment.d.ts.map +1 -0
- package/dist/executor/commands/environment.js +291 -0
- package/dist/executor/commands/git.js +1 -1
- package/dist/executor/commands/index.d.ts.map +1 -1
- package/dist/executor/commands/index.js +5 -1
- package/dist/executor/commands/unix.d.ts +8 -1
- package/dist/executor/commands/unix.d.ts.map +1 -1
- package/dist/executor/commands/unix.js +157 -2
- package/dist/executor/git/index.d.ts +8 -0
- package/dist/executor/git/index.d.ts.map +1 -0
- package/dist/executor/git/index.js +7 -0
- package/dist/executor/handlers/sdk/base-executor.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/base-executor.js +4 -1
- package/dist/executor/handlers/sdk/git-safe-directory.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/git-safe-directory.js +1 -1
- package/dist/executor/payload-types.d.ts +201 -5
- package/dist/executor/payload-types.d.ts.map +1 -1
- package/dist/executor/payload-types.js +98 -0
- package/dist/executor/sdk-handlers/base/diff-enrichment.js +1 -1
- package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/base/mcp-scoping.js +14 -0
- package/dist/executor/sdk-handlers/claude/message-processor.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/message-processor.js +0 -1
- package/dist/executor/sdk-handlers/claude/query-builder.d.ts +1 -0
- package/dist/executor/sdk-handlers/claude/query-builder.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/query-builder.js +91 -39
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +6 -10
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/codex-tool.js +12 -15
- package/dist/executor/sdk-handlers/codex/normalizer.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/normalizer.js +11 -1
- package/dist/executor/sdk-handlers/codex/pricing/litellm-openai-model-prices.json +3663 -0
- package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.d.ts +31 -0
- package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.d.ts.map +1 -0
- package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.js +46 -0
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts +12 -5
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/prompt-service.js +133 -36
- 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/prompt-service.d.ts +2 -4
- package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/copilot/prompt-service.js +4 -13
- package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts +2 -4
- package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/gemini/prompt-service.js +4 -13
- package/dist/executor/services/feathers-client.js +5 -5
- package/dist/git/index.cjs +1101 -0
- package/dist/git/index.d.ts +533 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +1022 -0
- package/dist/git/package.json +21 -0
- package/dist/git/pure.cjs +185 -0
- package/dist/git/pure.d.ts +39 -0
- package/dist/git/pure.d.ts.map +1 -0
- package/dist/git/pure.js +139 -0
- package/dist/ui/assets/AgorEmojiPickerInner-DQjr8M3_.js +1 -0
- package/dist/ui/assets/App-hJtcOxHv.js +5 -0
- package/dist/ui/assets/App-hJtcOxHv.js.gz +0 -0
- package/dist/ui/assets/AppNode-BhuMpn8O.js +1 -0
- package/dist/ui/assets/AppNode-BhuMpn8O.js.gz +0 -0
- package/dist/ui/assets/ArtifactConsentModal-oMMzRn8L.js +1 -0
- package/dist/ui/assets/ArtifactConsentModal-oMMzRn8L.js.gz +0 -0
- package/dist/ui/assets/ArtifactFullscreenPage-B3wT8t8f.js +9 -0
- package/dist/ui/assets/ArtifactFullscreenPage-B3wT8t8f.js.gz +0 -0
- package/dist/ui/assets/ArtifactNode-BzQcrwFS.js +9 -0
- package/dist/ui/assets/ArtifactNode-BzQcrwFS.js.gz +0 -0
- package/dist/ui/assets/AutocompleteTextarea-Dau-V_30.js +19 -0
- package/dist/ui/assets/AutocompleteTextarea-Dau-V_30.js.gz +0 -0
- package/dist/ui/assets/BoardObjectNodes-DdKWv_ZT.js +34 -0
- package/dist/ui/assets/BoardObjectNodes-DdKWv_ZT.js.gz +0 -0
- package/dist/ui/assets/CodeEditor.inner-Cuj6RuLL.js +7 -0
- package/dist/ui/assets/CodeEditor.inner-Cuj6RuLL.js.gz +0 -0
- package/dist/ui/assets/ConversationView-9-3ma1u-.js +1 -0
- package/dist/ui/assets/ConversationView-9-3ma1u-.js.gz +0 -0
- package/dist/ui/assets/EmbeddedTerminal-Lx5I9EOJ.js +2 -0
- package/dist/ui/assets/EmbeddedTerminal-Lx5I9EOJ.js.gz +0 -0
- package/dist/ui/assets/KnowledgePage-Dz8YAMYC.js +24 -0
- package/dist/ui/assets/KnowledgePage-Dz8YAMYC.js.gz +0 -0
- package/dist/ui/assets/MarketingScreenshotPage-9Qd7eZsm.css +1 -0
- package/dist/ui/assets/MarketingScreenshotPage-CmDPBHOl.js +143 -0
- package/dist/ui/assets/MarketingScreenshotPage-CmDPBHOl.js.gz +0 -0
- package/dist/ui/assets/MobileApp-BpgSG_gz.js +1 -0
- package/dist/ui/assets/MobileApp-BpgSG_gz.js.gz +0 -0
- package/dist/ui/assets/SessionCanvas-B6_mtlxK.js +13 -0
- package/dist/ui/assets/SessionCanvas-B6_mtlxK.js.gz +0 -0
- package/dist/ui/assets/SessionCanvas-Bh7Yg5dZ.css +1 -0
- package/dist/ui/assets/SessionCanvas-Bh7Yg5dZ.css.gz +0 -0
- package/dist/ui/assets/{StreamdownDemoPage-B9wbgp2s.js → StreamdownDemoPage-okKKR2QH.js} +2 -2
- package/dist/ui/assets/StreamdownDemoPage-okKKR2QH.js.gz +0 -0
- package/dist/ui/assets/TerminalModal-D9jMGZXv.js +2 -0
- package/dist/ui/assets/TerminalModal-D9jMGZXv.js.gz +0 -0
- package/dist/ui/assets/ThemeSwitcher-D9HgT37l.js +1 -0
- package/dist/ui/assets/ThemeSwitcher-D9HgT37l.js.gz +0 -0
- package/dist/ui/assets/ThemedSyntaxHighlighter.inner-C1FdIHn0.js +1 -0
- package/dist/ui/assets/antd-DT5ackd0.js +401 -0
- package/dist/ui/assets/antd-DT5ackd0.js.gz +0 -0
- package/dist/ui/assets/architecture-U656AL7Q-DMnxkQRZ.js +1 -0
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-DwTJGGoj.js +36 -0
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-DwTJGGoj.js.gz +0 -0
- package/dist/ui/assets/{blockDiagram-VD42YOAC-CzGHAHao.js → blockDiagram-VD42YOAC-Dh1_TVW2.js} +4 -4
- package/dist/ui/assets/blockDiagram-VD42YOAC-Dh1_TVW2.js.gz +0 -0
- package/dist/ui/assets/{c4Diagram-YG6GDRKO-DscJyaWN.js → c4Diagram-YG6GDRKO-B1e96AcB.js} +2 -2
- package/dist/ui/assets/c4Diagram-YG6GDRKO-B1e96AcB.js.gz +0 -0
- package/dist/ui/assets/channel-Jv4dT4S5.js +1 -0
- package/dist/ui/assets/{chunk-4BX2VUAB-DoWpTvP8.js → chunk-4BX2VUAB-BODpCjJx.js} +1 -1
- package/dist/ui/assets/chunk-55IACEB6-lJXvUquf.js +1 -0
- package/dist/ui/assets/{chunk-ABZYJK2D-RzDCrjE6.js → chunk-ABZYJK2D-DCTXWSzV.js} +3 -3
- package/dist/ui/assets/chunk-ABZYJK2D-DCTXWSzV.js.gz +0 -0
- package/dist/ui/assets/{chunk-AGHRB4JF-jidCS5Of.js → chunk-AGHRB4JF-CbNphBjE.js} +1 -1
- package/dist/ui/assets/chunk-AGHRB4JF-CbNphBjE.js.gz +0 -0
- package/dist/ui/assets/{chunk-ATLVNIR6-BEIIfJtC.js → chunk-ATLVNIR6-rWg3qxof.js} +1 -1
- package/dist/ui/assets/chunk-ATLVNIR6-rWg3qxof.js.gz +0 -0
- package/dist/ui/assets/{chunk-B4BG7PRW-B8b6dQQ2.js → chunk-B4BG7PRW-CgtLCbpE.js} +3 -3
- package/dist/ui/assets/chunk-B4BG7PRW-CgtLCbpE.js.gz +0 -0
- package/dist/ui/assets/{chunk-CVBHYZKI-D-mQAfrk.js → chunk-CVBHYZKI-DTL6Zgr0.js} +1 -1
- package/dist/ui/assets/{chunk-DI55MBZ5-BfATX3V8.js → chunk-DI55MBZ5-Dwvx2Kva.js} +1 -1
- package/dist/ui/assets/chunk-DI55MBZ5-Dwvx2Kva.js.gz +0 -0
- package/dist/ui/assets/chunk-EXTU4WIE-DHyaqTsP.js +1 -0
- package/dist/ui/assets/{chunk-FMBD7UC4-fqXscNvc.js → chunk-FMBD7UC4-BogA_9CV.js} +1 -1
- package/dist/ui/assets/{chunk-HN2XXSSU-BCHvD80g.js → chunk-HN2XXSSU-2blQO3Gb.js} +1 -1
- package/dist/ui/assets/chunk-HN2XXSSU-2blQO3Gb.js.gz +0 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-Cr1rmOui.js +11 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-Cr1rmOui.js.gz +0 -0
- package/dist/ui/assets/{chunk-JZLCHNYA-cKMooY3y.js → chunk-JZLCHNYA-BsgZ79Fa.js} +5 -5
- package/dist/ui/assets/chunk-JZLCHNYA-BsgZ79Fa.js.gz +0 -0
- package/dist/ui/assets/{chunk-MI3HLSF2-BlzO5wOE.js → chunk-MI3HLSF2-dwYeUy5S.js} +1 -1
- package/dist/ui/assets/chunk-MI3HLSF2-dwYeUy5S.js.gz +0 -0
- package/dist/ui/assets/chunk-N4CR4FBY-DEMgSRVe.js +2 -0
- package/dist/ui/assets/chunk-N4CR4FBY-DEMgSRVe.js.gz +0 -0
- package/dist/ui/assets/{chunk-QN33PNHL-DIHGQ_pd.js → chunk-QN33PNHL-DxdIDCAa.js} +1 -1
- package/dist/ui/assets/{chunk-QXUST7PY-C9l0muI0.js → chunk-QXUST7PY-BCK2V0i-.js} +2 -2
- package/dist/ui/assets/chunk-QXUST7PY-BCK2V0i-.js.gz +0 -0
- package/dist/ui/assets/chunk-QZHKN3VN-CALjGrEE.js +1 -0
- package/dist/ui/assets/chunk-S3R3BYOJ-GP3zIxrB.js +2 -0
- package/dist/ui/assets/chunk-S3R3BYOJ-GP3zIxrB.js.gz +0 -0
- package/dist/ui/assets/{chunk-TZMSLE5B-DZwI0C_2.js → chunk-TZMSLE5B-dX5RaM6g.js} +1 -1
- package/dist/ui/assets/chunk-TZMSLE5B-dX5RaM6g.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-C3_RVP70.js +1 -0
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-C3_RVP70.js +1 -0
- package/dist/ui/assets/constants-GjIDNVyt.js +1 -0
- package/dist/ui/assets/{cose-bilkent-S5V4N54A-Ipik-oSD.js → cose-bilkent-S5V4N54A-Dx0BJVDl.js} +1 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-Dx0BJVDl.js.gz +0 -0
- package/dist/ui/assets/cursor-QEb7m-rN.png +0 -0
- package/dist/ui/assets/{dagre-6UL2VRFP-BDpyWQnh.js → dagre-6UL2VRFP-DiQSUxqN.js} +1 -1
- package/dist/ui/assets/dagre-6UL2VRFP-DiQSUxqN.js.gz +0 -0
- package/dist/ui/assets/{dagre-CgA4KhUX.js → dagre-Bekd9Vdj.js} +1 -1
- package/dist/ui/assets/dagre-Bekd9Vdj.js.gz +0 -0
- package/dist/ui/assets/diagram-PSM6KHXK-DtJnDQjc.js +24 -0
- package/dist/ui/assets/diagram-PSM6KHXK-DtJnDQjc.js.gz +0 -0
- package/dist/ui/assets/{diagram-QEK2KX5R-BWPW28XI.js → diagram-QEK2KX5R-CobkCRdj.js} +1 -1
- package/dist/ui/assets/diagram-QEK2KX5R-CobkCRdj.js.gz +0 -0
- package/dist/ui/assets/{diagram-S2PKOQOG-BIHhcGoV.js → diagram-S2PKOQOG-DHEZYivc.js} +1 -1
- package/dist/ui/assets/diagram-S2PKOQOG-DHEZYivc.js.gz +0 -0
- package/dist/ui/assets/editor-DQIG-JYZ.js +43 -0
- package/dist/ui/assets/editor-DQIG-JYZ.js.gz +0 -0
- package/dist/ui/assets/emoji-B0hLmSLZ.js +3 -0
- package/dist/ui/assets/emoji-B0hLmSLZ.js.gz +0 -0
- package/dist/ui/assets/{erDiagram-Q2GNP2WA-ubTaAFcK.js → erDiagram-Q2GNP2WA-BVNeTZPQ.js} +2 -2
- package/dist/ui/assets/erDiagram-Q2GNP2WA-BVNeTZPQ.js.gz +0 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-C73VFdyk.js +162 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-C73VFdyk.js.gz +0 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-B_RosuD1.js +267 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-B_RosuD1.js.gz +0 -0
- package/dist/ui/assets/{gitGraph-F6HP7TQM-DghoobE6.js → gitGraph-F6HP7TQM-DMFIqn4h.js} +1 -1
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-hxbgwNA1.js +65 -0
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-hxbgwNA1.js.gz +0 -0
- package/dist/ui/assets/index-DTz1Dif6.js +64 -0
- package/dist/ui/assets/index-DTz1Dif6.js.gz +0 -0
- package/dist/ui/assets/index-qkT7Qqm2.css +1 -0
- package/dist/ui/assets/index-qkT7Qqm2.css.gz +0 -0
- package/dist/ui/assets/{info-NVLQJR56-0ZldEXPQ.js → info-NVLQJR56-DZ3K-w48.js} +1 -1
- package/dist/ui/assets/{infoDiagram-ER5ION4S-DMmPX-il.js → infoDiagram-ER5ION4S-CxnBJQu6.js} +1 -1
- package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-CrVickA2.js → journeyDiagram-XKPGCS4Q-CHYNj-f8.js} +3 -3
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CHYNj-f8.js.gz +0 -0
- package/dist/ui/assets/{kanban-definition-3W4ZIXB7-C_BsdHYL.js → kanban-definition-3W4ZIXB7-DQPCCsj2.js} +1 -1
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-DQPCCsj2.js.gz +0 -0
- package/dist/ui/assets/{line-CfBP7Yic.js → line-DBRjKmfa.js} +1 -1
- package/dist/ui/assets/{linear-BsjageUB.js → linear-DFao5Wyp.js} +1 -1
- package/dist/ui/assets/linear-DFao5Wyp.js.gz +0 -0
- package/dist/ui/assets/{mermaid-parser.core-DZdP-NFq.js → mermaid-parser.core-DYCfacHj.js} +2 -2
- package/dist/ui/assets/mermaid-parser.core-DYCfacHj.js.gz +0 -0
- package/dist/ui/assets/mermaid.core-C6xGFSdE.js +11 -0
- package/dist/ui/assets/mermaid.core-C6xGFSdE.js.gz +0 -0
- package/dist/ui/assets/{mindmap-definition-VGOIOE7T-BbmaUjMY.js → mindmap-definition-VGOIOE7T-L3Pw-YM7.js} +1 -1
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-L3Pw-YM7.js.gz +0 -0
- package/dist/ui/assets/{packet-BFZMPI3H-D_ZhkXuT.js → packet-BFZMPI3H-CpL6iNoa.js} +1 -1
- package/dist/ui/assets/{particles-Dv28pjOd.js → particles-CT8hcJOA.js} +1 -1
- package/dist/ui/assets/particles-CT8hcJOA.js.gz +0 -0
- package/dist/ui/assets/{pie-7BOR55EZ-Dn0Q3qNx.js → pie-7BOR55EZ-hTqChbTo.js} +1 -1
- package/dist/ui/assets/{pieDiagram-ADFJNKIX-BbyjfYu8.js → pieDiagram-ADFJNKIX-Bf4Nou75.js} +1 -1
- package/dist/ui/assets/pieDiagram-ADFJNKIX-Bf4Nou75.js.gz +0 -0
- package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-Bc3GqMKz.js → quadrantDiagram-AYHSOK5B-DpjUTLB1.js} +3 -3
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-DpjUTLB1.js.gz +0 -0
- package/dist/ui/assets/{radar-NHE76QYJ-BHwoAy1q.js → radar-NHE76QYJ-myy7OENC.js} +1 -1
- package/dist/ui/assets/reactflow-Cubtnk8i.js +2 -0
- package/dist/ui/assets/reactflow-Cubtnk8i.js.gz +0 -0
- package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-BQaKKL09.js → requirementDiagram-UZGBJVZJ-Bfrfh-0-.js} +1 -1
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-Bfrfh-0-.js.gz +0 -0
- package/dist/ui/assets/{sandpack-BQW_FQ7G.js → sandpack-C58bwfIS.js} +38 -38
- package/dist/ui/assets/sandpack-C58bwfIS.js.gz +0 -0
- package/dist/ui/assets/sandpackDefaults-Bkga8XAE.js +1 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-ClZAZ6va.js +10 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-ClZAZ6va.js.gz +0 -0
- package/dist/ui/assets/{sequenceDiagram-WL72ISMW-Dw32824o.js → sequenceDiagram-WL72ISMW-CNgly63p.js} +6 -6
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-CNgly63p.js.gz +0 -0
- package/dist/ui/assets/src-DAeyG22O.js +34 -0
- package/dist/ui/assets/src-DAeyG22O.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BrEAoDpE.js +1 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BrEAoDpE.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-BNL52_oN.js +1 -0
- package/dist/ui/assets/streamdown-BdAVfkeF.js +521 -0
- package/dist/ui/assets/streamdown-BdAVfkeF.js.gz +0 -0
- package/dist/ui/assets/syntax-BOfTnQiy.js +9 -0
- package/dist/ui/assets/syntax-BOfTnQiy.js.gz +0 -0
- package/dist/ui/assets/{timeline-definition-IT6M3QCI-Jh_WZzXv.js → timeline-definition-IT6M3QCI-CaRH3k4l.js} +16 -16
- package/dist/ui/assets/timeline-definition-IT6M3QCI-CaRH3k4l.js.gz +0 -0
- package/dist/ui/assets/{treemap-KMMF4GRG-CPYIgjxE.js → treemap-KMMF4GRG-CUaLOV_B.js} +1 -1
- package/dist/ui/assets/{knowledgeRoutes-CivaUqha.js → useUserLocalStorage-C8sgXgXR.js} +1 -1
- package/dist/ui/assets/useUserLocalStorage-C8sgXgXR.js.gz +0 -0
- package/dist/ui/assets/{xychartDiagram-PRI3JC2R-CERc7Rdb.js → xychartDiagram-PRI3JC2R-BlhkI9T_.js} +1 -1
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-BlhkI9T_.js.gz +0 -0
- package/dist/ui/index.html +13 -12
- package/dist/ui/index.html.gz +0 -0
- package/package.json +12 -10
- package/scripts/postinstall.js +27 -19
- package/dist/cli/commands/daemon/sync.d.ts.map +0 -1
- package/dist/ui/assets/App-9s2WHM6S.js +0 -22
- package/dist/ui/assets/App-9s2WHM6S.js.gz +0 -0
- package/dist/ui/assets/App-BAdBsEnV.css +0 -1
- package/dist/ui/assets/App-BAdBsEnV.css.gz +0 -0
- package/dist/ui/assets/ArtifactConsentModal-ParNk5kW.js +0 -1
- package/dist/ui/assets/ArtifactConsentModal-ParNk5kW.js.gz +0 -0
- package/dist/ui/assets/ArtifactFullscreenPage-VQxLMCiN.js +0 -9
- package/dist/ui/assets/ArtifactFullscreenPage-VQxLMCiN.js.gz +0 -0
- package/dist/ui/assets/AutocompleteTextarea-3RchrIgk.js +0 -18
- package/dist/ui/assets/AutocompleteTextarea-3RchrIgk.js.gz +0 -0
- package/dist/ui/assets/CodeEditor.inner-D51Z_CLQ.js +0 -8
- package/dist/ui/assets/CodeEditor.inner-D51Z_CLQ.js.gz +0 -0
- package/dist/ui/assets/ConversationView-Dyddw2b1.js +0 -34
- package/dist/ui/assets/ConversationView-Dyddw2b1.js.gz +0 -0
- package/dist/ui/assets/KnowledgePage-CdftslnF.js +0 -24
- package/dist/ui/assets/KnowledgePage-CdftslnF.js.gz +0 -0
- package/dist/ui/assets/MobileApp-BdBMpnJ1.js +0 -1
- package/dist/ui/assets/MobileApp-BdBMpnJ1.js.gz +0 -0
- package/dist/ui/assets/StreamdownDemoPage-B9wbgp2s.js.gz +0 -0
- package/dist/ui/assets/ThemeSwitcher-ubn6IOz9.js +0 -1
- package/dist/ui/assets/ThemeSwitcher-ubn6IOz9.js.gz +0 -0
- package/dist/ui/assets/antd-C-HfEC4E.js +0 -400
- package/dist/ui/assets/antd-C-HfEC4E.js.gz +0 -0
- package/dist/ui/assets/architecture-U656AL7Q-dkBewUpN.js +0 -1
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-ChmZt3zk.js +0 -36
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-ChmZt3zk.js.gz +0 -0
- package/dist/ui/assets/blockDiagram-VD42YOAC-CzGHAHao.js.gz +0 -0
- package/dist/ui/assets/c4Diagram-YG6GDRKO-DscJyaWN.js.gz +0 -0
- package/dist/ui/assets/channel-DvRQqEqC.js +0 -1
- package/dist/ui/assets/chunk-55IACEB6-DojF2pZN.js +0 -1
- package/dist/ui/assets/chunk-ABZYJK2D-RzDCrjE6.js.gz +0 -0
- package/dist/ui/assets/chunk-AGHRB4JF-jidCS5Of.js.gz +0 -0
- package/dist/ui/assets/chunk-ATLVNIR6-BEIIfJtC.js.gz +0 -0
- package/dist/ui/assets/chunk-B4BG7PRW-B8b6dQQ2.js.gz +0 -0
- package/dist/ui/assets/chunk-DI55MBZ5-BfATX3V8.js.gz +0 -0
- package/dist/ui/assets/chunk-EXTU4WIE-BKt6lPJM.js +0 -1
- package/dist/ui/assets/chunk-HN2XXSSU-BCHvD80g.js.gz +0 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-Cp6dqHnY.js +0 -11
- package/dist/ui/assets/chunk-JA3XYJ7Z-Cp6dqHnY.js.gz +0 -0
- package/dist/ui/assets/chunk-JZLCHNYA-cKMooY3y.js.gz +0 -0
- package/dist/ui/assets/chunk-MI3HLSF2-BlzO5wOE.js.gz +0 -0
- package/dist/ui/assets/chunk-N4CR4FBY-pASDorUx.js +0 -2
- package/dist/ui/assets/chunk-N4CR4FBY-pASDorUx.js.gz +0 -0
- package/dist/ui/assets/chunk-QXUST7PY-C9l0muI0.js.gz +0 -0
- package/dist/ui/assets/chunk-QZHKN3VN-CZskCFCf.js +0 -1
- package/dist/ui/assets/chunk-S3R3BYOJ-VJiLzt2o.js +0 -2
- package/dist/ui/assets/chunk-S3R3BYOJ-VJiLzt2o.js.gz +0 -0
- package/dist/ui/assets/chunk-TZMSLE5B-DZwI0C_2.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-BFASUbmZ.js +0 -1
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-BFASUbmZ.js +0 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-Ipik-oSD.js.gz +0 -0
- package/dist/ui/assets/dagre-6UL2VRFP-BDpyWQnh.js.gz +0 -0
- package/dist/ui/assets/dagre-CgA4KhUX.js.gz +0 -0
- package/dist/ui/assets/diagram-PSM6KHXK-B4GRzxLJ.js +0 -24
- package/dist/ui/assets/diagram-PSM6KHXK-B4GRzxLJ.js.gz +0 -0
- package/dist/ui/assets/diagram-QEK2KX5R-BWPW28XI.js.gz +0 -0
- package/dist/ui/assets/diagram-S2PKOQOG-BIHhcGoV.js.gz +0 -0
- package/dist/ui/assets/editor-C-HJ7Yw0.js +0 -39
- package/dist/ui/assets/editor-C-HJ7Yw0.js.gz +0 -0
- package/dist/ui/assets/emoji-D8F6B62m.js +0 -3
- package/dist/ui/assets/emoji-D8F6B62m.js.gz +0 -0
- package/dist/ui/assets/erDiagram-Q2GNP2WA-ubTaAFcK.js.gz +0 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-BHLCTYjI.js +0 -162
- package/dist/ui/assets/flowDiagram-NV44I4VS-BHLCTYjI.js.gz +0 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-ClC3pay1.js +0 -267
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-ClC3pay1.js.gz +0 -0
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-Clqpiswu.js +0 -65
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-Clqpiswu.js.gz +0 -0
- package/dist/ui/assets/index-D9OElx9A.css +0 -1
- package/dist/ui/assets/index-D9OElx9A.css.gz +0 -0
- package/dist/ui/assets/index-DxPuzG7E.js +0 -350
- package/dist/ui/assets/index-DxPuzG7E.js.gz +0 -0
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CrVickA2.js.gz +0 -0
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-C_BsdHYL.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/knowledgeRoutes-CivaUqha.js.gz +0 -0
- package/dist/ui/assets/linear-BsjageUB.js.gz +0 -0
- package/dist/ui/assets/mermaid-parser.core-DZdP-NFq.js.gz +0 -0
- package/dist/ui/assets/mermaid.core-TNrI0pHG.js +0 -11
- package/dist/ui/assets/mermaid.core-TNrI0pHG.js.gz +0 -0
- package/dist/ui/assets/message-BtWWJ9Af.js +0 -36
- package/dist/ui/assets/message-BtWWJ9Af.js.gz +0 -0
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-BbmaUjMY.js.gz +0 -0
- package/dist/ui/assets/particles-Dv28pjOd.js.gz +0 -0
- package/dist/ui/assets/pieDiagram-ADFJNKIX-BbyjfYu8.js.gz +0 -0
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-Bc3GqMKz.js.gz +0 -0
- package/dist/ui/assets/reactflow-BVYPxNhc.js +0 -2
- package/dist/ui/assets/reactflow-BVYPxNhc.js.gz +0 -0
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-BQaKKL09.js.gz +0 -0
- package/dist/ui/assets/sandpack-BQW_FQ7G.js.gz +0 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DiJvDvhb.js +0 -10
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DiJvDvhb.js.gz +0 -0
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-Dw32824o.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BCOpNdHV.js +0 -1
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BCOpNdHV.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-Cuqwvgfg.js +0 -1
- package/dist/ui/assets/syntax-VJrU5BEu.js +0 -10
- package/dist/ui/assets/syntax-VJrU5BEu.js.gz +0 -0
- package/dist/ui/assets/theme-DZtFA8b4.js +0 -1
- package/dist/ui/assets/timeline-definition-IT6M3QCI-Jh_WZzXv.js.gz +0 -0
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-CERc7Rdb.js.gz +0 -0
- /package/dist/cli/commands/{admin → local}/sync-unix.d.ts +0 -0
|
@@ -64,6 +64,12 @@ var init_executor_read_impersonation = __esm({
|
|
|
64
64
|
}
|
|
65
65
|
});
|
|
66
66
|
|
|
67
|
+
// src/mcp/tools/mcp-servers.ts
|
|
68
|
+
import {
|
|
69
|
+
isReservedMCPCustomHeaderName,
|
|
70
|
+
isValidMCPHeaderName
|
|
71
|
+
} from "@agor/core/tools/mcp/http-headers";
|
|
72
|
+
|
|
67
73
|
// ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.js
|
|
68
74
|
var external_exports = {};
|
|
69
75
|
__export(external_exports, {
|
|
@@ -14578,6 +14584,16 @@ function date4(params) {
|
|
|
14578
14584
|
// ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.js
|
|
14579
14585
|
config(en_default());
|
|
14580
14586
|
|
|
14587
|
+
// src/mcp/resolve-ids.ts
|
|
14588
|
+
async function resolveSessionId(ctx, id) {
|
|
14589
|
+
const entity = await ctx.app.service("sessions").get(id, ctx.baseServiceParams);
|
|
14590
|
+
return entity.session_id;
|
|
14591
|
+
}
|
|
14592
|
+
async function resolveMcpServerId(ctx, id) {
|
|
14593
|
+
const entity = await ctx.app.service("mcp-servers").get(id, ctx.baseServiceParams);
|
|
14594
|
+
return entity.mcp_server_id;
|
|
14595
|
+
}
|
|
14596
|
+
|
|
14581
14597
|
// src/mcp/schema.ts
|
|
14582
14598
|
function suffixExample(example) {
|
|
14583
14599
|
return example ? ` Example: ${example}` : "";
|
|
@@ -14592,6 +14608,11 @@ function mcpOptionalString(fieldName, description) {
|
|
|
14592
14608
|
error: `${fieldName} must be a string when provided.`
|
|
14593
14609
|
}).optional().describe(description);
|
|
14594
14610
|
}
|
|
14611
|
+
function mcpOptionalNonEmptyString(fieldName, description) {
|
|
14612
|
+
return external_exports.string({
|
|
14613
|
+
error: `${fieldName} must be a string when provided.`
|
|
14614
|
+
}).min(1, `${fieldName} cannot be empty when provided.`).optional().describe(description);
|
|
14615
|
+
}
|
|
14595
14616
|
function mcpOptionalNonBlankString(fieldName, description) {
|
|
14596
14617
|
return external_exports.string({
|
|
14597
14618
|
error: `${fieldName} must be a string when provided.`
|
|
@@ -14612,6 +14633,14 @@ function mcpRequiredPositiveInt(fieldName, description) {
|
|
|
14612
14633
|
error: `${fieldName} is required and must be a positive integer.`
|
|
14613
14634
|
}).int(`${fieldName} must be an integer.`).positive(`${fieldName} must be greater than 0.`).describe(description);
|
|
14614
14635
|
}
|
|
14636
|
+
function mcpOptionalPositiveInt(fieldName, description) {
|
|
14637
|
+
return external_exports.number({
|
|
14638
|
+
error: `${fieldName} must be a positive integer when provided.`
|
|
14639
|
+
}).int(`${fieldName} must be an integer.`).positive(`${fieldName} must be greater than 0.`).optional().describe(description);
|
|
14640
|
+
}
|
|
14641
|
+
function mcpLimit(defaultValue = 50) {
|
|
14642
|
+
return mcpOptionalPositiveInt("limit", `Maximum number of results (default: ${defaultValue})`);
|
|
14643
|
+
}
|
|
14615
14644
|
|
|
14616
14645
|
// src/mcp/server.ts
|
|
14617
14646
|
import { randomUUID as randomUUID2 } from "crypto";
|
|
@@ -14624,7 +14653,11 @@ import { ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
|
|
|
14624
14653
|
|
|
14625
14654
|
// src/mcp/tokens.ts
|
|
14626
14655
|
import { MCP_TOKEN } from "@agor/core/config";
|
|
14627
|
-
import {
|
|
14656
|
+
import {
|
|
14657
|
+
generateId,
|
|
14658
|
+
SessionRepository,
|
|
14659
|
+
shortId
|
|
14660
|
+
} from "@agor/core/db";
|
|
14628
14661
|
import {
|
|
14629
14662
|
MCP_TOKEN_AUDIENCE,
|
|
14630
14663
|
MCP_TOKEN_ISSUER
|
|
@@ -14645,6 +14678,7 @@ var DOMAIN_DESCRIPTIONS = {
|
|
|
14645
14678
|
users: "User accounts, profiles, preferences, and administration",
|
|
14646
14679
|
analytics: "Usage and cost tracking leaderboard",
|
|
14647
14680
|
"mcp-servers": "External MCP server configuration and OAuth management",
|
|
14681
|
+
gateway: "Gateway channels for Slack, GitHub, Teams, and other message integrations",
|
|
14648
14682
|
proxies: "Configured HTTP proxies for third-party APIs (Shortcut, Linear, Jira, etc.)",
|
|
14649
14683
|
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",
|
|
14650
14684
|
knowledge: "DB-backed markdown knowledge documents, version history, search, and graph links",
|
|
@@ -14712,7 +14746,7 @@ var AgorRuntimeSchema = external_exports.object({
|
|
|
14712
14746
|
|
|
14713
14747
|
// src/mcp/tools/branches.ts
|
|
14714
14748
|
import { existsSync } from "fs";
|
|
14715
|
-
import { isBranchRbacEnabled } from "@agor/core/config";
|
|
14749
|
+
import { isBranchRbacEnabled, loadConfig } from "@agor/core/config";
|
|
14716
14750
|
import { BranchRepository as BranchRepository2, shortId as shortId3 } from "@agor/core/db";
|
|
14717
14751
|
import { BRANCH_PERMISSION_LEVELS as BRANCH_PERMISSION_LEVELS2, getAssistantConfig, isAssistant } from "@agor/core/types";
|
|
14718
14752
|
import { computeZoneRelativePosition } from "@agor/core/utils/board-placement";
|
|
@@ -14721,12 +14755,186 @@ import { normalizeOptionalHttpUrl } from "@agor/core/utils/url";
|
|
|
14721
14755
|
// src/mcp/tools/cards.ts
|
|
14722
14756
|
import { BoardObjectRepository } from "@agor/core/db";
|
|
14723
14757
|
|
|
14758
|
+
// src/mcp/tools/gateway-channels.ts
|
|
14759
|
+
import {
|
|
14760
|
+
BranchRepository as BranchRepository3,
|
|
14761
|
+
GatewayChannelRepository,
|
|
14762
|
+
SessionRepository as SessionRepository2,
|
|
14763
|
+
ThreadSessionMapRepository
|
|
14764
|
+
} from "@agor/core/db";
|
|
14765
|
+
import {
|
|
14766
|
+
getConnector
|
|
14767
|
+
} from "@agor/core/gateway";
|
|
14768
|
+
import {
|
|
14769
|
+
GATEWAY_REDACTED_SENTINEL,
|
|
14770
|
+
GATEWAY_SENSITIVE_CONFIG_FIELDS,
|
|
14771
|
+
hasMinimumRole as hasMinimumRole2,
|
|
14772
|
+
ROLES as ROLES2
|
|
14773
|
+
} from "@agor/core/types";
|
|
14774
|
+
var configSchema = external_exports.record(external_exports.string(), external_exports.unknown()).describe(
|
|
14775
|
+
"Platform-specific gateway configuration. Secrets are stored encrypted and returned redacted. Prefer env/template references for shared credentials where the connector supports them."
|
|
14776
|
+
);
|
|
14777
|
+
var outboundTargetSchema = external_exports.string().trim().regex(
|
|
14778
|
+
/^(channel:[^:\s]+|channel_name:[^\s]+|#[^\s]+|(?:email:|user_email:)?[^@\s]+@[^@\s]+\.[^@\s]+)$/
|
|
14779
|
+
).describe(
|
|
14780
|
+
"Slack outbound target for v0: channel:C123, #project-updates, channel_name:project-updates, or user@example.com. Thread targets are intentionally not supported."
|
|
14781
|
+
);
|
|
14782
|
+
var envVarSchema = external_exports.strictObject({
|
|
14783
|
+
key: mcpRequiredString("agenticConfig.envVars[].key", "Environment variable name"),
|
|
14784
|
+
value: mcpRequiredString(
|
|
14785
|
+
"agenticConfig.envVars[].value",
|
|
14786
|
+
`Environment variable value. Prefer references/templates over raw secrets. Existing redacted values may be passed as '${GATEWAY_REDACTED_SENTINEL}' on update to preserve them.`
|
|
14787
|
+
),
|
|
14788
|
+
forceOverride: external_exports.boolean().optional().describe("When true, channel value wins over user env vars. Defaults to false.")
|
|
14789
|
+
});
|
|
14790
|
+
var agenticConfigSchema = external_exports.strictObject({
|
|
14791
|
+
agent: external_exports.enum(["claude-code", "claude-code-cli", "codex", "gemini", "opencode", "copilot", "cursor"]).describe("Agent used for sessions created from this gateway channel."),
|
|
14792
|
+
permissionMode: external_exports.enum([
|
|
14793
|
+
"default",
|
|
14794
|
+
"acceptEdits",
|
|
14795
|
+
"bypassPermissions",
|
|
14796
|
+
"plan",
|
|
14797
|
+
"dontAsk",
|
|
14798
|
+
"autoEdit",
|
|
14799
|
+
"yolo",
|
|
14800
|
+
"ask",
|
|
14801
|
+
"auto",
|
|
14802
|
+
"on-failure",
|
|
14803
|
+
"allow-all"
|
|
14804
|
+
]).optional().describe("Permission mode for spawned sessions."),
|
|
14805
|
+
modelConfig: external_exports.record(external_exports.string(), external_exports.unknown()).optional().describe("Agent model configuration."),
|
|
14806
|
+
mcpServerIds: external_exports.array(external_exports.string().min(1)).optional().describe("MCP server IDs to attach to gateway-created sessions."),
|
|
14807
|
+
codexSandboxMode: external_exports.enum(["read-only", "workspace-write", "danger-full-access"]).optional().describe("Codex sandbox mode for Codex gateway sessions."),
|
|
14808
|
+
codexApprovalPolicy: external_exports.enum(["untrusted", "on-failure", "on-request", "never"]).optional().describe("Codex approval policy for Codex gateway sessions."),
|
|
14809
|
+
codexNetworkAccess: external_exports.boolean().optional().describe("Allow Codex network access."),
|
|
14810
|
+
envVars: external_exports.array(envVarSchema).optional().describe("Gateway-level env vars. Values are redacted in responses.")
|
|
14811
|
+
}).describe("Agent/session defaults for conversations created through this gateway channel.");
|
|
14812
|
+
var gatewayChannelCreateSchema = external_exports.strictObject({
|
|
14813
|
+
name: mcpRequiredString("name", 'Human-readable channel name, e.g. "Engineering Slack".'),
|
|
14814
|
+
channelType: external_exports.enum(["slack", "github", "teams", "discord", "whatsapp", "telegram"]).default("slack").describe("Gateway platform type. Current active connectors are slack, github, and teams."),
|
|
14815
|
+
targetBranchId: mcpRequiredId(
|
|
14816
|
+
"targetBranchId",
|
|
14817
|
+
"Branch",
|
|
14818
|
+
"Branch/worktree ID that this gateway channel prompts."
|
|
14819
|
+
),
|
|
14820
|
+
agorUserId: mcpOptionalId(
|
|
14821
|
+
"agorUserId",
|
|
14822
|
+
"User",
|
|
14823
|
+
"Agor user ID whose identity is used when platform-user alignment is disabled."
|
|
14824
|
+
),
|
|
14825
|
+
enabled: external_exports.boolean().optional().describe("Whether the channel is active. Defaults to true."),
|
|
14826
|
+
config: configSchema,
|
|
14827
|
+
agenticConfig: agenticConfigSchema.optional()
|
|
14828
|
+
}).superRefine((value, issue2) => {
|
|
14829
|
+
const config2 = value.config ?? {};
|
|
14830
|
+
if (value.channelType === "slack") {
|
|
14831
|
+
if (!config2.bot_token) {
|
|
14832
|
+
issue2.addIssue({
|
|
14833
|
+
code: "custom",
|
|
14834
|
+
path: ["config", "bot_token"],
|
|
14835
|
+
message: "config.bot_token is required for Slack. Prefer a bot token stored outside the transcript when possible."
|
|
14836
|
+
});
|
|
14837
|
+
}
|
|
14838
|
+
if (config2.connection_mode === "socket" && !config2.app_token) {
|
|
14839
|
+
issue2.addIssue({
|
|
14840
|
+
code: "custom",
|
|
14841
|
+
path: ["config", "app_token"],
|
|
14842
|
+
message: "config.app_token is required for Slack Socket Mode."
|
|
14843
|
+
});
|
|
14844
|
+
}
|
|
14845
|
+
}
|
|
14846
|
+
if (value.channelType === "github") {
|
|
14847
|
+
for (const field of ["app_id", "private_key", "installation_id", "watch_repos"]) {
|
|
14848
|
+
if (!config2[field]) {
|
|
14849
|
+
issue2.addIssue({
|
|
14850
|
+
code: "custom",
|
|
14851
|
+
path: ["config", field],
|
|
14852
|
+
message: `config.${field} is required for GitHub gateway channels.`
|
|
14853
|
+
});
|
|
14854
|
+
}
|
|
14855
|
+
}
|
|
14856
|
+
}
|
|
14857
|
+
if (value.channelType === "teams") {
|
|
14858
|
+
for (const field of ["app_id", "app_password"]) {
|
|
14859
|
+
if (!config2[field]) {
|
|
14860
|
+
issue2.addIssue({
|
|
14861
|
+
code: "custom",
|
|
14862
|
+
path: ["config", field],
|
|
14863
|
+
message: `config.${field} is required for Teams gateway channels.`
|
|
14864
|
+
});
|
|
14865
|
+
}
|
|
14866
|
+
}
|
|
14867
|
+
}
|
|
14868
|
+
});
|
|
14869
|
+
var slackThreadHistorySchema = external_exports.strictObject({
|
|
14870
|
+
sessionId: mcpOptionalId(
|
|
14871
|
+
"sessionId",
|
|
14872
|
+
"Session",
|
|
14873
|
+
"Preferred: resolve the Slack thread mapping from an accessible Agor session ID (UUIDv7 or short ID). If provided, gatewayChannelId/threadId are ignored."
|
|
14874
|
+
),
|
|
14875
|
+
gatewayChannelId: mcpOptionalId(
|
|
14876
|
+
"gatewayChannelId",
|
|
14877
|
+
"Gateway channel",
|
|
14878
|
+
"Explicit Slack gateway channel ID (UUIDv7 or short ID). Required when sessionId is omitted."
|
|
14879
|
+
),
|
|
14880
|
+
threadId: mcpOptionalNonEmptyString(
|
|
14881
|
+
"threadId",
|
|
14882
|
+
"Explicit Slack thread ID in Agor gateway format, e.g. C123-171234.000100. Required when sessionId is omitted."
|
|
14883
|
+
),
|
|
14884
|
+
oldestTs: mcpOptionalNonEmptyString(
|
|
14885
|
+
"oldestTs",
|
|
14886
|
+
"Optional Slack oldest timestamp bound, e.g. 171234.000100."
|
|
14887
|
+
),
|
|
14888
|
+
latestTs: mcpOptionalNonEmptyString(
|
|
14889
|
+
"latestTs",
|
|
14890
|
+
"Optional Slack latest timestamp bound, e.g. 171235.000200."
|
|
14891
|
+
),
|
|
14892
|
+
inclusive: external_exports.boolean().optional().describe("Whether Slack should include messages exactly at oldest/latest bounds."),
|
|
14893
|
+
limit: mcpLimit(50).describe("Maximum Slack messages to request (default: 50, max: 200)."),
|
|
14894
|
+
includeBotMessages: external_exports.boolean().optional().describe("Include Slack bot messages in the returned history. Defaults to false."),
|
|
14895
|
+
format: external_exports.enum(["messages", "markdown"]).optional().describe(
|
|
14896
|
+
'Response body format. "messages" returns normalized JSON; "markdown" returns a transcript string.'
|
|
14897
|
+
)
|
|
14898
|
+
}).superRefine((value, issue2) => {
|
|
14899
|
+
if (value.sessionId) return;
|
|
14900
|
+
if (!value.gatewayChannelId) {
|
|
14901
|
+
issue2.addIssue({
|
|
14902
|
+
code: "custom",
|
|
14903
|
+
path: ["gatewayChannelId"],
|
|
14904
|
+
message: "gatewayChannelId is required when sessionId is omitted."
|
|
14905
|
+
});
|
|
14906
|
+
}
|
|
14907
|
+
if (!value.threadId) {
|
|
14908
|
+
issue2.addIssue({
|
|
14909
|
+
code: "custom",
|
|
14910
|
+
path: ["threadId"],
|
|
14911
|
+
message: "threadId is required when sessionId is omitted."
|
|
14912
|
+
});
|
|
14913
|
+
}
|
|
14914
|
+
});
|
|
14915
|
+
var gatewayChannelUpdateSchema = external_exports.strictObject({
|
|
14916
|
+
gatewayChannelId: mcpRequiredId(
|
|
14917
|
+
"gatewayChannelId",
|
|
14918
|
+
"Gateway channel",
|
|
14919
|
+
"Gateway channel ID (UUIDv7 or short ID)"
|
|
14920
|
+
),
|
|
14921
|
+
name: mcpOptionalNonEmptyString("name", "New human-readable channel name."),
|
|
14922
|
+
channelType: external_exports.enum(["slack", "github", "teams", "discord", "whatsapp", "telegram"]).optional().describe("Gateway platform type. Changing this should include compatible config."),
|
|
14923
|
+
targetBranchId: mcpOptionalId("targetBranchId", "Branch", "New target branch/worktree ID."),
|
|
14924
|
+
agorUserId: mcpOptionalId("agorUserId", "User", "New run-as Agor user ID."),
|
|
14925
|
+
enabled: external_exports.boolean().optional().describe("Enable/disable the channel."),
|
|
14926
|
+
config: configSchema.optional().describe(
|
|
14927
|
+
`Partial platform config to merge. Send '${GATEWAY_REDACTED_SENTINEL}' or omit sensitive fields to preserve existing secrets; send a new value to rotate.`
|
|
14928
|
+
),
|
|
14929
|
+
agenticConfig: agenticConfigSchema.nullable().optional().describe("Replace agent/session defaults. null clears the gateway agentic config.")
|
|
14930
|
+
});
|
|
14931
|
+
|
|
14724
14932
|
// src/mcp/tools/knowledge.ts
|
|
14725
14933
|
import { createHash, randomUUID } from "crypto";
|
|
14726
14934
|
import fs2 from "fs";
|
|
14727
14935
|
import { mkdir, readFile, writeFile } from "fs/promises";
|
|
14728
14936
|
import path3 from "path";
|
|
14729
|
-
import { BranchRepository as
|
|
14937
|
+
import { BranchRepository as BranchRepository5, KnowledgeNamespaceRepository as KnowledgeNamespaceRepository2 } from "@agor/core/db";
|
|
14730
14938
|
import { NotFound as NotFound2 } from "@agor/core/feathers";
|
|
14731
14939
|
import {
|
|
14732
14940
|
buildKnowledgeDocumentUri,
|
|
@@ -14752,14 +14960,14 @@ import { unified } from "unified";
|
|
|
14752
14960
|
|
|
14753
14961
|
// src/services/assistant-knowledge.ts
|
|
14754
14962
|
import {
|
|
14755
|
-
BranchRepository as
|
|
14963
|
+
BranchRepository as BranchRepository4,
|
|
14756
14964
|
KnowledgeNamespaceRepository,
|
|
14757
14965
|
shortId as shortId4
|
|
14758
14966
|
} from "@agor/core/db";
|
|
14759
14967
|
import { getAssistantConfig as getAssistantConfig2, isAssistant as isAssistant2 } from "@agor/core/types";
|
|
14760
14968
|
|
|
14761
14969
|
// src/services/knowledge-access.ts
|
|
14762
|
-
import { hasMinimumRole as
|
|
14970
|
+
import { hasMinimumRole as hasMinimumRole3, ROLES as ROLES3 } from "@agor/core/types";
|
|
14763
14971
|
|
|
14764
14972
|
// src/utils/branch-workspace-path.ts
|
|
14765
14973
|
import fs from "fs";
|
|
@@ -14908,16 +15116,18 @@ import {
|
|
|
14908
15116
|
asc,
|
|
14909
15117
|
desc,
|
|
14910
15118
|
eq,
|
|
14911
|
-
|
|
15119
|
+
gte,
|
|
15120
|
+
lte,
|
|
14912
15121
|
messages as messagesTable,
|
|
14913
15122
|
or,
|
|
14914
|
-
SessionRepository as SessionRepository2,
|
|
14915
15123
|
select,
|
|
14916
|
-
sql
|
|
15124
|
+
sql,
|
|
15125
|
+
visibleSessionReferenceAccessExists
|
|
14917
15126
|
} from "@agor/core/db";
|
|
15127
|
+
var MAX_CROSS_SESSION_SEARCH_WINDOW_MS = 31 * 24 * 60 * 60 * 1e3;
|
|
14918
15128
|
|
|
14919
15129
|
// src/mcp/tools/proxies.ts
|
|
14920
|
-
import { getBaseUrl, loadConfig, resolveProxies } from "@agor/core/config";
|
|
15130
|
+
import { getBaseUrl, loadConfig as loadConfig2, resolveProxies } from "@agor/core/config";
|
|
14921
15131
|
|
|
14922
15132
|
// src/mcp/tools/repos.ts
|
|
14923
15133
|
import { extractSlugFromUrl, isValidGitUrl, isValidSlug } from "@agor/core/config";
|
|
@@ -14929,7 +15139,7 @@ var agenticToolConfigSchema = external_exports.object({
|
|
|
14929
15139
|
model_config: external_exports.object({
|
|
14930
15140
|
mode: external_exports.enum(["alias", "exact"]).optional(),
|
|
14931
15141
|
model: mcpOptionalString("model_config.model", "Model name override."),
|
|
14932
|
-
effort: external_exports.enum(["low", "medium", "high", "max"]).optional(),
|
|
15142
|
+
effort: external_exports.enum(["low", "medium", "high", "xhigh", "max"]).optional(),
|
|
14933
15143
|
advisorModel: mcpOptionalString(
|
|
14934
15144
|
"model_config.advisorModel",
|
|
14935
15145
|
"Claude Code advisor model override (e.g. 'opus', 'sonnet', 'fable')."
|
|
@@ -14944,7 +15154,11 @@ var agenticToolConfigSchema = external_exports.object({
|
|
|
14944
15154
|
);
|
|
14945
15155
|
|
|
14946
15156
|
// src/mcp/tools/sessions.ts
|
|
14947
|
-
import {
|
|
15157
|
+
import {
|
|
15158
|
+
BranchRepository as BranchRepository6,
|
|
15159
|
+
SessionRelationshipRepository,
|
|
15160
|
+
shortId as shortId5
|
|
15161
|
+
} from "@agor/core/db";
|
|
14948
15162
|
import {
|
|
14949
15163
|
AVAILABLE_CLAUDE_MODEL_ALIASES,
|
|
14950
15164
|
CODEX_MODEL_METADATA,
|
|
@@ -14964,6 +15178,7 @@ import {
|
|
|
14964
15178
|
} from "@agor/core/types";
|
|
14965
15179
|
init_branch_inspect();
|
|
14966
15180
|
init_executor_read_impersonation();
|
|
15181
|
+
init_spawn_executor();
|
|
14967
15182
|
var modelConfigObjectSchema = external_exports.object({
|
|
14968
15183
|
mode: external_exports.enum(["alias", "exact"]).optional().describe("Model selection mode (default: 'alias')"),
|
|
14969
15184
|
// .min(1): reject empty-string model explicitly so callers don't silently
|
|
@@ -14972,7 +15187,7 @@ var modelConfigObjectSchema = external_exports.object({
|
|
|
14972
15187
|
"modelConfig.model",
|
|
14973
15188
|
"Model identifier (e.g. 'claude-opus-4-6', 'claude-sonnet-4-6')"
|
|
14974
15189
|
),
|
|
14975
|
-
effort: external_exports.enum(["low", "medium", "high", "max"]).optional().describe("Reasoning effort level (default: high)"),
|
|
15190
|
+
effort: external_exports.enum(["low", "medium", "high", "xhigh", "max"]).optional().describe("Reasoning effort level (default: high)"),
|
|
14976
15191
|
advisorModel: mcpOptionalString(
|
|
14977
15192
|
"modelConfig.advisorModel",
|
|
14978
15193
|
"Claude Code advisor model override (e.g. 'opus', 'sonnet', 'fable', or a full model ID)."
|
|
@@ -14993,7 +15208,7 @@ var modelConfigInputSchema = external_exports.union([
|
|
|
14993
15208
|
);
|
|
14994
15209
|
|
|
14995
15210
|
// src/mcp/tools/users.ts
|
|
14996
|
-
import { ROLES as
|
|
15211
|
+
import { ROLES as ROLES4 } from "@agor/core/types";
|
|
14997
15212
|
|
|
14998
15213
|
// src/mcp/tools/widgets.ts
|
|
14999
15214
|
import { MessageRole as MessageRole2 } from "@agor/core/types";
|
|
@@ -15003,17 +15218,23 @@ import { generateId as generateId2, SessionRepository as SessionRepository3 } fr
|
|
|
15003
15218
|
import { MessageRole } from "@agor/core/types";
|
|
15004
15219
|
|
|
15005
15220
|
// src/utils/session-tasks.ts
|
|
15006
|
-
import {
|
|
15007
|
-
var ACTIVE_TASK_STATUSES = /* @__PURE__ */ new Set([
|
|
15008
|
-
TaskStatus.RUNNING,
|
|
15009
|
-
TaskStatus.AWAITING_PERMISSION,
|
|
15010
|
-
TaskStatus.STOPPING
|
|
15011
|
-
]);
|
|
15221
|
+
import { EXECUTING_TASK_STATUSES, isTaskExecuting } from "@agor/core/types";
|
|
15012
15222
|
|
|
15013
15223
|
// src/widgets/env-vars/index.ts
|
|
15014
|
-
import {
|
|
15224
|
+
import {
|
|
15225
|
+
ENV_VAR_CONSTRAINTS,
|
|
15226
|
+
isEnvVarAllowed,
|
|
15227
|
+
validateEnvVar
|
|
15228
|
+
} from "@agor/core/config";
|
|
15229
|
+
import { SessionEnvSelectionRepository } from "@agor/core/db";
|
|
15015
15230
|
import { BadRequest } from "@agor/core/feathers";
|
|
15016
15231
|
var ENV_VAR_NAME_REGEX = ENV_VAR_CONSTRAINTS.NAME_PATTERN;
|
|
15232
|
+
var envVarFieldMetadataSchema = external_exports.object({
|
|
15233
|
+
description: external_exports.string().max(200).optional(),
|
|
15234
|
+
placeholder: external_exports.string().max(120).optional(),
|
|
15235
|
+
format_hint: external_exports.string().max(80).optional(),
|
|
15236
|
+
input_type: external_exports.enum(["password", "text", "textarea"]).default("password").optional()
|
|
15237
|
+
}).strict();
|
|
15017
15238
|
var envVarsParamsSchema = external_exports.object({
|
|
15018
15239
|
names: external_exports.array(external_exports.string().regex(ENV_VAR_NAME_REGEX)).min(1).max(10).refine((names) => new Set(names).size === names.length, {
|
|
15019
15240
|
message: "Env var names must be unique"
|
|
@@ -15021,18 +15242,56 @@ var envVarsParamsSchema = external_exports.object({
|
|
|
15021
15242
|
reason: external_exports.string().min(1).max(200).describe(
|
|
15022
15243
|
"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."
|
|
15023
15244
|
),
|
|
15245
|
+
variable_metadata: external_exports.record(external_exports.string().regex(ENV_VAR_NAME_REGEX), envVarFieldMetadataSchema).optional().describe(
|
|
15246
|
+
"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."
|
|
15247
|
+
),
|
|
15024
15248
|
auto_resume: external_exports.boolean().default(true).describe(
|
|
15025
15249
|
"When true (default), a system-authored prompt is auto-queued back into the agent on submit/dismiss."
|
|
15026
15250
|
)
|
|
15251
|
+
}).superRefine((params, ctx) => {
|
|
15252
|
+
const requested = new Set(params.names);
|
|
15253
|
+
for (const key of Object.keys(params.variable_metadata ?? {})) {
|
|
15254
|
+
if (!requested.has(key)) {
|
|
15255
|
+
ctx.addIssue({
|
|
15256
|
+
code: external_exports.ZodIssueCode.custom,
|
|
15257
|
+
path: ["variable_metadata", key],
|
|
15258
|
+
message: `Metadata key ${key} must match a requested env var name`
|
|
15259
|
+
});
|
|
15260
|
+
}
|
|
15261
|
+
}
|
|
15027
15262
|
});
|
|
15028
15263
|
var envVarsSubmitSchema = external_exports.object({
|
|
15029
15264
|
values: external_exports.record(
|
|
15030
15265
|
external_exports.string().regex(ENV_VAR_NAME_REGEX),
|
|
15031
15266
|
external_exports.string().min(1).max(ENV_VAR_CONSTRAINTS.MAX_VALUE_LENGTH)
|
|
15032
|
-
).
|
|
15033
|
-
|
|
15034
|
-
}),
|
|
15267
|
+
).default({}),
|
|
15268
|
+
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."),
|
|
15035
15269
|
scope: external_exports.enum(["global", "session"])
|
|
15270
|
+
}).superRefine((submit, ctx) => {
|
|
15271
|
+
const valueNames = Object.keys(submit.values);
|
|
15272
|
+
const existingNames = submit.use_existing;
|
|
15273
|
+
const total = valueNames.length + existingNames.length;
|
|
15274
|
+
if (total < 1 || total > 10) {
|
|
15275
|
+
ctx.addIssue({
|
|
15276
|
+
code: external_exports.ZodIssueCode.custom,
|
|
15277
|
+
message: "Must submit between 1 and 10 env vars"
|
|
15278
|
+
});
|
|
15279
|
+
}
|
|
15280
|
+
const duplicates = existingNames.filter((name) => valueNames.includes(name));
|
|
15281
|
+
for (const name of duplicates) {
|
|
15282
|
+
ctx.addIssue({
|
|
15283
|
+
code: external_exports.ZodIssueCode.custom,
|
|
15284
|
+
path: ["use_existing"],
|
|
15285
|
+
message: `Cannot both submit and use existing value for ${name}`
|
|
15286
|
+
});
|
|
15287
|
+
}
|
|
15288
|
+
if (new Set(existingNames).size !== existingNames.length) {
|
|
15289
|
+
ctx.addIssue({
|
|
15290
|
+
code: external_exports.ZodIssueCode.custom,
|
|
15291
|
+
path: ["use_existing"],
|
|
15292
|
+
message: "use_existing names must be unique"
|
|
15293
|
+
});
|
|
15294
|
+
}
|
|
15036
15295
|
});
|
|
15037
15296
|
|
|
15038
15297
|
// src/mcp/server.ts
|
|
@@ -15127,6 +15386,329 @@ async function listAttachedMcpServers(ctx, sessionId, opts = {}) {
|
|
|
15127
15386
|
}
|
|
15128
15387
|
return summaries;
|
|
15129
15388
|
}
|
|
15389
|
+
var mcpNameSchema = external_exports.string({
|
|
15390
|
+
error: 'name is required and must be a string. Example: { "name": "context7" }'
|
|
15391
|
+
}).regex(
|
|
15392
|
+
/^[a-z][a-z0-9_-]{0,63}$/,
|
|
15393
|
+
'name must start with a lowercase letter and contain only lowercase letters, digits, "_" or "-" (max 64 chars).'
|
|
15394
|
+
).describe('Stable internal ID, e.g. "context7", "github", "datadog". Cannot be changed later.');
|
|
15395
|
+
var stringMapSchema = external_exports.record(external_exports.string(), external_exports.string()).describe(
|
|
15396
|
+
"JSON object of string keys/values. Values may use templates like {{ user.env.API_TOKEN }}."
|
|
15397
|
+
);
|
|
15398
|
+
var mcpAuthInputSchema = external_exports.strictObject({
|
|
15399
|
+
type: external_exports.enum(["none", "bearer", "jwt", "oauth"]).describe(
|
|
15400
|
+
"Authentication mode. OAuth tip: start with { type: 'oauth' } plus the MCP server URL; only add endpoint/client fields if discovery/DCR fails."
|
|
15401
|
+
),
|
|
15402
|
+
token: mcpOptionalString(
|
|
15403
|
+
"auth.token",
|
|
15404
|
+
"Bearer token. Prefer {{ user.env.MCP_TOKEN }} templates; raw secrets will be stored redacted but are still visible in this MCP call transcript."
|
|
15405
|
+
),
|
|
15406
|
+
api_url: mcpOptionalString("auth.api_url", "JWT auth API URL."),
|
|
15407
|
+
api_token: mcpOptionalString(
|
|
15408
|
+
"auth.api_token",
|
|
15409
|
+
"JWT API token. Prefer {{ user.env.JWT_TOKEN }} templates."
|
|
15410
|
+
),
|
|
15411
|
+
api_secret: mcpOptionalString(
|
|
15412
|
+
"auth.api_secret",
|
|
15413
|
+
"JWT API secret. Prefer {{ user.env.JWT_SECRET }} templates."
|
|
15414
|
+
),
|
|
15415
|
+
oauth_authorization_url: mcpOptionalString(
|
|
15416
|
+
"auth.oauth_authorization_url",
|
|
15417
|
+
"Optional OAuth authorization endpoint override. Leave blank for discovery."
|
|
15418
|
+
),
|
|
15419
|
+
oauth_token_url: mcpOptionalString(
|
|
15420
|
+
"auth.oauth_token_url",
|
|
15421
|
+
"Optional OAuth token endpoint override. Leave blank for discovery."
|
|
15422
|
+
),
|
|
15423
|
+
oauth_client_id: mcpOptionalString(
|
|
15424
|
+
"auth.oauth_client_id",
|
|
15425
|
+
"Optional OAuth client ID for providers that require a pre-registered app. Leave blank for Dynamic Client Registration where supported."
|
|
15426
|
+
),
|
|
15427
|
+
oauth_client_secret: mcpOptionalString(
|
|
15428
|
+
"auth.oauth_client_secret",
|
|
15429
|
+
"Optional OAuth client secret. Prefer {{ user.env.OAUTH_CLIENT_SECRET }} templates; raw secrets are not returned by this tool."
|
|
15430
|
+
),
|
|
15431
|
+
oauth_scope: mcpOptionalString("auth.oauth_scope", "Optional OAuth scopes, space-separated."),
|
|
15432
|
+
oauth_grant_type: external_exports.enum(["client_credentials", "authorization_code"]).optional().describe(
|
|
15433
|
+
"OAuth grant type hint. Defaults to 'client_credentials' for legacy token testing; browser OAuth uses authorization code with PKCE."
|
|
15434
|
+
),
|
|
15435
|
+
oauth_mode: external_exports.enum(["per_user", "shared"]).optional().describe("OAuth token ownership. Defaults to 'per_user' (recommended)."),
|
|
15436
|
+
insecure: external_exports.boolean().optional().describe("Allow insecure auth behavior if supported.")
|
|
15437
|
+
}).superRefine((auth, issue2) => {
|
|
15438
|
+
if (auth.type === "bearer" && !auth.token) {
|
|
15439
|
+
issue2.addIssue({
|
|
15440
|
+
code: "custom",
|
|
15441
|
+
path: ["token"],
|
|
15442
|
+
message: "auth.token is required when auth.type is 'bearer'."
|
|
15443
|
+
});
|
|
15444
|
+
}
|
|
15445
|
+
const fieldsByType = {
|
|
15446
|
+
none: [],
|
|
15447
|
+
bearer: ["token"],
|
|
15448
|
+
jwt: ["api_url", "api_token", "api_secret"],
|
|
15449
|
+
oauth: [
|
|
15450
|
+
"oauth_authorization_url",
|
|
15451
|
+
"oauth_token_url",
|
|
15452
|
+
"oauth_client_id",
|
|
15453
|
+
"oauth_client_secret",
|
|
15454
|
+
"oauth_scope",
|
|
15455
|
+
"oauth_grant_type",
|
|
15456
|
+
"oauth_mode",
|
|
15457
|
+
"insecure"
|
|
15458
|
+
]
|
|
15459
|
+
};
|
|
15460
|
+
const allowed = /* @__PURE__ */ new Set(["type", ...fieldsByType[auth.type]]);
|
|
15461
|
+
for (const key of Object.keys(auth)) {
|
|
15462
|
+
if (!allowed.has(key)) {
|
|
15463
|
+
issue2.addIssue({
|
|
15464
|
+
code: "custom",
|
|
15465
|
+
path: [key],
|
|
15466
|
+
message: `auth.${key} does not apply when auth.type is '${auth.type}'.`
|
|
15467
|
+
});
|
|
15468
|
+
}
|
|
15469
|
+
}
|
|
15470
|
+
if (auth.type === "jwt") {
|
|
15471
|
+
for (const field of ["api_url", "api_token", "api_secret"]) {
|
|
15472
|
+
if (!auth[field]) {
|
|
15473
|
+
issue2.addIssue({
|
|
15474
|
+
code: "custom",
|
|
15475
|
+
path: [field],
|
|
15476
|
+
message: `auth.${field} is required when auth.type is 'jwt'.`
|
|
15477
|
+
});
|
|
15478
|
+
}
|
|
15479
|
+
}
|
|
15480
|
+
}
|
|
15481
|
+
}).describe(
|
|
15482
|
+
"Auth config. Common OAuth path: { type: 'oauth' } plus url; leave OAuth URLs/client fields blank first so metadata discovery/DCR can do the work."
|
|
15483
|
+
);
|
|
15484
|
+
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' }.");
|
|
15485
|
+
var mcpServerCreateSchema = external_exports.strictObject({
|
|
15486
|
+
name: mcpNameSchema,
|
|
15487
|
+
displayName: mcpOptionalNonEmptyString(
|
|
15488
|
+
"displayName",
|
|
15489
|
+
'Human-friendly display name, e.g. "Context7 MCP".'
|
|
15490
|
+
),
|
|
15491
|
+
description: mcpOptionalString("description", "Optional description."),
|
|
15492
|
+
transport: external_exports.enum(["stdio", "http", "sse"]).optional().describe(
|
|
15493
|
+
"Transport. Defaults to 'http' when url is provided, otherwise 'stdio'. Most remote OAuth MCP servers use 'http'."
|
|
15494
|
+
),
|
|
15495
|
+
url: mcpOptionalString(
|
|
15496
|
+
"url",
|
|
15497
|
+
"Remote MCP server URL for http/sse transports. Supports templates like {{ user.env.MCP_URL }}."
|
|
15498
|
+
),
|
|
15499
|
+
command: mcpOptionalString("command", 'Local command for stdio transport, e.g. "npx".'),
|
|
15500
|
+
args: external_exports.array(external_exports.string()).optional().describe(
|
|
15501
|
+
'Arguments for stdio command, e.g. ["-y", "@modelcontextprotocol/server-filesystem"].'
|
|
15502
|
+
),
|
|
15503
|
+
headers: stringMapSchema.optional().describe(
|
|
15504
|
+
"Custom HTTP headers for http/sse transports. Do not include Authorization; use auth instead. Prefer templates for secret values."
|
|
15505
|
+
),
|
|
15506
|
+
env: stringMapSchema.optional().describe(
|
|
15507
|
+
"Environment variables for the MCP process/config. Prefer {{ user.env.VAR }} templates for secrets."
|
|
15508
|
+
),
|
|
15509
|
+
auth: mcpAuthInputSchema.optional(),
|
|
15510
|
+
scope: external_exports.enum(["global", "session"]).optional().describe(
|
|
15511
|
+
"Scope. Defaults to 'global' so it appears in agor_mcp_servers_list. 'session' is only for explicit session attachment workflows."
|
|
15512
|
+
),
|
|
15513
|
+
enabled: external_exports.boolean().optional().describe("Whether the server is enabled. Defaults to true."),
|
|
15514
|
+
attachToCurrentSession: external_exports.boolean().optional().describe(
|
|
15515
|
+
`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.`
|
|
15516
|
+
),
|
|
15517
|
+
attachToSessionId: mcpOptionalId(
|
|
15518
|
+
"attachToSessionId",
|
|
15519
|
+
"Session",
|
|
15520
|
+
"Optional session ID (UUIDv7 or short ID) to attach after creating. Overrides attachToCurrentSession."
|
|
15521
|
+
)
|
|
15522
|
+
}).superRefine((value, issue2) => validateMcpServerConfig(value, issue2, false));
|
|
15523
|
+
var mcpServerUpdateSchema = external_exports.strictObject({
|
|
15524
|
+
mcpServerId: mcpRequiredId(
|
|
15525
|
+
"mcpServerId",
|
|
15526
|
+
"MCP server",
|
|
15527
|
+
"MCP server ID to update (UUIDv7 or short ID)"
|
|
15528
|
+
),
|
|
15529
|
+
displayName: mcpOptionalNonEmptyString("displayName", "New human-friendly display name."),
|
|
15530
|
+
description: mcpOptionalString(
|
|
15531
|
+
"description",
|
|
15532
|
+
"New description. Pass an empty string to clear."
|
|
15533
|
+
),
|
|
15534
|
+
transport: external_exports.enum(["stdio", "http", "sse"]).optional().describe("Transport to set."),
|
|
15535
|
+
url: mcpOptionalString("url", "Remote MCP URL for http/sse transports."),
|
|
15536
|
+
command: mcpOptionalString("command", "Local command for stdio transport."),
|
|
15537
|
+
args: external_exports.array(external_exports.string()).optional().describe("Arguments for stdio command."),
|
|
15538
|
+
headers: stringMapSchema.optional().describe(
|
|
15539
|
+
"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."
|
|
15540
|
+
),
|
|
15541
|
+
env: stringMapSchema.optional().describe("Replace environment variables."),
|
|
15542
|
+
auth: mcpAuthInputSchema.optional().describe(
|
|
15543
|
+
"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."
|
|
15544
|
+
),
|
|
15545
|
+
scope: external_exports.enum(["global", "session"]).optional().describe("Scope to set."),
|
|
15546
|
+
enabled: external_exports.boolean().optional().describe("Enabled flag."),
|
|
15547
|
+
toolPermissions: toolPermissionsSchema.optional()
|
|
15548
|
+
}).superRefine((value, issue2) => validateMcpServerConfig(value, issue2, true));
|
|
15549
|
+
function validateHeaders(headers, issue2) {
|
|
15550
|
+
if (!headers) return;
|
|
15551
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
15552
|
+
const name = key.trim();
|
|
15553
|
+
if (!name) {
|
|
15554
|
+
issue2.addIssue({
|
|
15555
|
+
code: "custom",
|
|
15556
|
+
path: ["headers", key],
|
|
15557
|
+
message: "Header names cannot be empty."
|
|
15558
|
+
});
|
|
15559
|
+
} else if (!isValidMCPHeaderName(name)) {
|
|
15560
|
+
issue2.addIssue({
|
|
15561
|
+
code: "custom",
|
|
15562
|
+
path: ["headers", key],
|
|
15563
|
+
message: `Invalid HTTP header name: ${key}`
|
|
15564
|
+
});
|
|
15565
|
+
} else if (isReservedMCPCustomHeaderName(name)) {
|
|
15566
|
+
issue2.addIssue({
|
|
15567
|
+
code: "custom",
|
|
15568
|
+
path: ["headers", key],
|
|
15569
|
+
message: `Header ${name} is reserved; configure Authorization through auth instead.`
|
|
15570
|
+
});
|
|
15571
|
+
}
|
|
15572
|
+
if (typeof value !== "string") {
|
|
15573
|
+
issue2.addIssue({
|
|
15574
|
+
code: "custom",
|
|
15575
|
+
path: ["headers", key],
|
|
15576
|
+
message: "Header values must be strings."
|
|
15577
|
+
});
|
|
15578
|
+
}
|
|
15579
|
+
}
|
|
15580
|
+
}
|
|
15581
|
+
function validateMcpServerConfig(value, issue2, partial2) {
|
|
15582
|
+
const transport = value.transport ?? (value.url ? "http" : "stdio");
|
|
15583
|
+
validateHeaders(value.headers, issue2);
|
|
15584
|
+
if (!partial2 || value.transport !== void 0 || value.url !== void 0 || value.command !== void 0) {
|
|
15585
|
+
if (transport === "stdio") {
|
|
15586
|
+
if (!partial2 && !value.command) {
|
|
15587
|
+
issue2.addIssue({
|
|
15588
|
+
code: "custom",
|
|
15589
|
+
path: ["command"],
|
|
15590
|
+
message: "command is required for stdio transport."
|
|
15591
|
+
});
|
|
15592
|
+
}
|
|
15593
|
+
if (value.url) {
|
|
15594
|
+
issue2.addIssue({
|
|
15595
|
+
code: "custom",
|
|
15596
|
+
path: ["url"],
|
|
15597
|
+
message: "url only applies to http/sse transports, not stdio."
|
|
15598
|
+
});
|
|
15599
|
+
}
|
|
15600
|
+
if (value.headers) {
|
|
15601
|
+
issue2.addIssue({
|
|
15602
|
+
code: "custom",
|
|
15603
|
+
path: ["headers"],
|
|
15604
|
+
message: "headers only apply to http/sse transports, not stdio."
|
|
15605
|
+
});
|
|
15606
|
+
}
|
|
15607
|
+
if (value.auth && value.auth.type !== "none") {
|
|
15608
|
+
issue2.addIssue({
|
|
15609
|
+
code: "custom",
|
|
15610
|
+
path: ["auth", "type"],
|
|
15611
|
+
message: "Authentication config only applies to http/sse transports."
|
|
15612
|
+
});
|
|
15613
|
+
}
|
|
15614
|
+
} else if (!partial2 && !value.url) {
|
|
15615
|
+
issue2.addIssue({
|
|
15616
|
+
code: "custom",
|
|
15617
|
+
path: ["url"],
|
|
15618
|
+
message: `url is required for ${transport} transport.`
|
|
15619
|
+
});
|
|
15620
|
+
} else {
|
|
15621
|
+
if (value.command) {
|
|
15622
|
+
issue2.addIssue({
|
|
15623
|
+
code: "custom",
|
|
15624
|
+
path: ["command"],
|
|
15625
|
+
message: "command only applies to stdio transport, not http/sse."
|
|
15626
|
+
});
|
|
15627
|
+
}
|
|
15628
|
+
if (value.args && value.args.length > 0) {
|
|
15629
|
+
issue2.addIssue({
|
|
15630
|
+
code: "custom",
|
|
15631
|
+
path: ["args"],
|
|
15632
|
+
message: "args only apply to stdio transport, not http/sse."
|
|
15633
|
+
});
|
|
15634
|
+
}
|
|
15635
|
+
}
|
|
15636
|
+
}
|
|
15637
|
+
}
|
|
15638
|
+
function assertUpdateCompatibleWithCurrent(current, args) {
|
|
15639
|
+
const transport = args.transport ?? current.transport;
|
|
15640
|
+
const url2 = args.url ?? current.url;
|
|
15641
|
+
const command = args.command ?? current.command;
|
|
15642
|
+
const errors = [];
|
|
15643
|
+
if (transport === "stdio") {
|
|
15644
|
+
if (!command) errors.push("command is required for stdio transport.");
|
|
15645
|
+
if (args.url) errors.push("url only applies to http/sse transports, not stdio.");
|
|
15646
|
+
if (args.headers && Object.keys(args.headers).length > 0) {
|
|
15647
|
+
errors.push("headers only apply to http/sse transports, not stdio.");
|
|
15648
|
+
}
|
|
15649
|
+
if (args.auth && args.auth.type !== "none") {
|
|
15650
|
+
errors.push("auth only applies to http/sse transports, not stdio.");
|
|
15651
|
+
}
|
|
15652
|
+
} else {
|
|
15653
|
+
if (!url2) errors.push(`url is required for ${transport} transport.`);
|
|
15654
|
+
if (args.command) errors.push("command only applies to stdio transport, not http/sse.");
|
|
15655
|
+
if (args.args && args.args.length > 0) {
|
|
15656
|
+
errors.push("args only apply to stdio transport, not http/sse.");
|
|
15657
|
+
}
|
|
15658
|
+
}
|
|
15659
|
+
if (errors.length > 0) {
|
|
15660
|
+
throw new Error(`Invalid MCP server update: ${errors.join(" ")}`);
|
|
15661
|
+
}
|
|
15662
|
+
}
|
|
15663
|
+
function createOrUpdateNextSteps(server, attach) {
|
|
15664
|
+
const authType = server.auth?.type || "none";
|
|
15665
|
+
const steps = [];
|
|
15666
|
+
if (authType === "oauth") {
|
|
15667
|
+
steps.push(
|
|
15668
|
+
`OAuth configured. If oauth_authenticated is false, authenticate in Settings > MCP Servers > ${server.display_name || server.name} > Test Authentication > Start OAuth Flow.`
|
|
15669
|
+
);
|
|
15670
|
+
}
|
|
15671
|
+
if (attach?.ok) {
|
|
15672
|
+
steps.push(
|
|
15673
|
+
`Attached to session ${attach.sessionId}. Restart or re-prompt the agent if its MCP client does not hot-reload tools.`
|
|
15674
|
+
);
|
|
15675
|
+
} else if (attach?.error) {
|
|
15676
|
+
steps.push(`Attach to session ${attach.sessionId} failed: ${attach.error}`);
|
|
15677
|
+
} else if (server.scope === "global") {
|
|
15678
|
+
steps.push(
|
|
15679
|
+
"This enabled global MCP server is in every session\u2019s effective MCP set. Restart or re-prompt an existing agent if its MCP client does not hot-reload tools."
|
|
15680
|
+
);
|
|
15681
|
+
} else {
|
|
15682
|
+
steps.push(
|
|
15683
|
+
"This session-scoped MCP server must be linked to a session with agor_sessions_add_mcp_server (or set on session creation) before that session can use it."
|
|
15684
|
+
);
|
|
15685
|
+
}
|
|
15686
|
+
return steps;
|
|
15687
|
+
}
|
|
15688
|
+
async function attachMcpServerToSession(ctx, sessionId, mcpServerId) {
|
|
15689
|
+
return ctx.app.service("/sessions/:id/mcp-servers").create(
|
|
15690
|
+
{ mcpServerId },
|
|
15691
|
+
{
|
|
15692
|
+
...ctx.baseServiceParams,
|
|
15693
|
+
route: { id: sessionId }
|
|
15694
|
+
}
|
|
15695
|
+
);
|
|
15696
|
+
}
|
|
15697
|
+
async function removeMcpServerFromSession(ctx, sessionId, mcpServerId) {
|
|
15698
|
+
return ctx.app.service("/sessions/:id/mcp-servers").remove(mcpServerId, {
|
|
15699
|
+
...ctx.baseServiceParams,
|
|
15700
|
+
route: { id: sessionId }
|
|
15701
|
+
});
|
|
15702
|
+
}
|
|
15703
|
+
async function resolveTargetSessionId(ctx, sessionId) {
|
|
15704
|
+
const targetSessionId = sessionId ? await resolveSessionId(ctx, sessionId) : ctx.sessionId;
|
|
15705
|
+
if (!targetSessionId) {
|
|
15706
|
+
return {
|
|
15707
|
+
error: "No current session context. Pass sessionId explicitly, or reconnect with X-Agor-Session-Id / a session-scoped MCP token."
|
|
15708
|
+
};
|
|
15709
|
+
}
|
|
15710
|
+
return { sessionId: targetSessionId };
|
|
15711
|
+
}
|
|
15130
15712
|
function registerMcpServerTools(server, ctx) {
|
|
15131
15713
|
server.registerTool(
|
|
15132
15714
|
"agor_mcp_servers_list",
|
|
@@ -15193,6 +15775,249 @@ function registerMcpServerTools(server, ctx) {
|
|
|
15193
15775
|
});
|
|
15194
15776
|
}
|
|
15195
15777
|
);
|
|
15778
|
+
server.registerTool(
|
|
15779
|
+
"agor_mcp_servers_create",
|
|
15780
|
+
{
|
|
15781
|
+
description: 'Register a new MCP server definition. Permissions are service-enforced: only admins can create MCP configs. Scope matters: enabled `global` servers are automatically in each session\'s effective MCP set; `session` scoped servers must be linked with `agor_sessions_add_mcp_server` (or `attachToCurrentSession` / `attachToSessionId`). Start simple for remote OAuth: `name` + `url` + `auth:{type:"oauth"}`; add endpoint/client fields only if discovery/DCR fails. For stdio use `transport:"stdio"` + `command` (+ `args`). Use `auth`, not Authorization headers. Prefer `{{ user.env.SECRET_NAME }}` templates; raw secrets are visible in the MCP transcript though never returned.',
|
|
15782
|
+
annotations: { destructiveHint: false, idempotentHint: false },
|
|
15783
|
+
inputSchema: mcpServerCreateSchema
|
|
15784
|
+
},
|
|
15785
|
+
async (args) => {
|
|
15786
|
+
const transport = args.transport ?? (args.url ? "http" : "stdio");
|
|
15787
|
+
const wantsAttach = args.attachToSessionId !== void 0 || args.attachToCurrentSession;
|
|
15788
|
+
const attachTargetResult = wantsAttach ? await resolveTargetSessionId(ctx, args.attachToSessionId) : void 0;
|
|
15789
|
+
if (attachTargetResult && "error" in attachTargetResult) {
|
|
15790
|
+
return { ...textResult({ error: attachTargetResult.error }), isError: true };
|
|
15791
|
+
}
|
|
15792
|
+
const attachTarget = attachTargetResult?.sessionId;
|
|
15793
|
+
const createData = {
|
|
15794
|
+
name: args.name,
|
|
15795
|
+
display_name: args.displayName,
|
|
15796
|
+
description: args.description,
|
|
15797
|
+
transport,
|
|
15798
|
+
command: transport === "stdio" ? args.command : void 0,
|
|
15799
|
+
args: transport === "stdio" ? args.args : void 0,
|
|
15800
|
+
url: transport === "stdio" ? void 0 : args.url,
|
|
15801
|
+
headers: transport === "stdio" ? void 0 : args.headers,
|
|
15802
|
+
env: args.env,
|
|
15803
|
+
auth: transport === "stdio" || !args.auth || args.auth.type === "none" ? void 0 : args.auth,
|
|
15804
|
+
scope: args.scope ?? "global",
|
|
15805
|
+
source: "user",
|
|
15806
|
+
enabled: args.enabled ?? true
|
|
15807
|
+
};
|
|
15808
|
+
const created = await ctx.app.service("mcp-servers").create(createData, ctx.baseServiceParams);
|
|
15809
|
+
let attachResult;
|
|
15810
|
+
if (attachTarget) {
|
|
15811
|
+
try {
|
|
15812
|
+
await attachMcpServerToSession(ctx, attachTarget, created.mcp_server_id);
|
|
15813
|
+
attachResult = { sessionId: attachTarget, ok: true };
|
|
15814
|
+
} catch (error51) {
|
|
15815
|
+
attachResult = {
|
|
15816
|
+
sessionId: attachTarget,
|
|
15817
|
+
ok: false,
|
|
15818
|
+
error: error51 instanceof Error ? error51.message : String(error51)
|
|
15819
|
+
};
|
|
15820
|
+
}
|
|
15821
|
+
}
|
|
15822
|
+
const summary = await summarizeMcpServer(ctx, created);
|
|
15823
|
+
return textResult({
|
|
15824
|
+
mcp_server: summary,
|
|
15825
|
+
attached: attachResult?.ok ? { session_id: attachResult.sessionId, mcp_server_id: created.mcp_server_id } : void 0,
|
|
15826
|
+
attach_error: attachResult && !attachResult.ok ? attachResult.error : void 0,
|
|
15827
|
+
next_steps: createOrUpdateNextSteps(created, attachResult)
|
|
15828
|
+
});
|
|
15829
|
+
}
|
|
15830
|
+
);
|
|
15831
|
+
server.registerTool(
|
|
15832
|
+
"agor_mcp_servers_update",
|
|
15833
|
+
{
|
|
15834
|
+
description: 'Update an existing MCP server definition. Permissions are service-enforced: only admins can update MCP configs. Updating config does not create a session-specific link: enabled `global` servers are already effective for all sessions, while `session` scoped servers need `agor_sessions_add_mcp_server`. Provide only fields to change. Validation rejects incompatible combinations (e.g. stdio+url/auth/headers, remote+command/args, wrong auth fields). OAuth tip: keep only `auth:{type:"oauth"}` unless discovery fails or a provider requires endpoint/client overrides. Use `auth:{type:"none"}` to clear auth.',
|
|
15835
|
+
annotations: { destructiveHint: false, idempotentHint: false },
|
|
15836
|
+
inputSchema: mcpServerUpdateSchema
|
|
15837
|
+
},
|
|
15838
|
+
async (args) => {
|
|
15839
|
+
const mcpServerId = await resolveMcpServerId(ctx, args.mcpServerId);
|
|
15840
|
+
const current = await ctx.app.service("mcp-servers").get(mcpServerId, ctx.baseServiceParams);
|
|
15841
|
+
assertUpdateCompatibleWithCurrent(current, args);
|
|
15842
|
+
const updates = {};
|
|
15843
|
+
if (args.displayName !== void 0) updates.display_name = args.displayName;
|
|
15844
|
+
if (args.description !== void 0) updates.description = args.description;
|
|
15845
|
+
if (args.transport !== void 0) updates.transport = args.transport;
|
|
15846
|
+
if (args.command !== void 0) updates.command = args.command;
|
|
15847
|
+
if (args.args !== void 0) updates.args = args.args;
|
|
15848
|
+
if (args.url !== void 0) updates.url = args.url;
|
|
15849
|
+
if (args.headers !== void 0) updates.headers = args.headers;
|
|
15850
|
+
if (args.env !== void 0) updates.env = args.env;
|
|
15851
|
+
if (args.auth !== void 0) {
|
|
15852
|
+
updates.auth = args.auth.type === "none" ? { type: "none" } : args.auth;
|
|
15853
|
+
}
|
|
15854
|
+
if (args.scope !== void 0) updates.scope = args.scope;
|
|
15855
|
+
if (args.enabled !== void 0) updates.enabled = args.enabled;
|
|
15856
|
+
if (args.toolPermissions !== void 0) updates.tool_permissions = args.toolPermissions;
|
|
15857
|
+
if (args.transport === "stdio") {
|
|
15858
|
+
updates.url = void 0;
|
|
15859
|
+
updates.headers = void 0;
|
|
15860
|
+
updates.auth = void 0;
|
|
15861
|
+
} else if (args.transport === "http" || args.transport === "sse") {
|
|
15862
|
+
updates.command = void 0;
|
|
15863
|
+
updates.args = void 0;
|
|
15864
|
+
}
|
|
15865
|
+
const updated = await ctx.app.service("mcp-servers").patch(mcpServerId, updates, ctx.baseServiceParams);
|
|
15866
|
+
return textResult({
|
|
15867
|
+
mcp_server: await summarizeMcpServer(ctx, updated),
|
|
15868
|
+
next_steps: createOrUpdateNextSteps(updated)
|
|
15869
|
+
});
|
|
15870
|
+
}
|
|
15871
|
+
);
|
|
15872
|
+
server.registerTool(
|
|
15873
|
+
"agor_sessions_add_mcp_server",
|
|
15874
|
+
{
|
|
15875
|
+
description: "Attach a registered MCP server to a session. Defaults to current session when `sessionId` is omitted. Permissions are service-enforced via the same session-scoped route as the UI: caller must be allowed to edit that session config. Verify with `agor_sessions_get_current`/`agor_sessions_get`; the agent may need a restart/re-prompt before its MCP client sees new tools.",
|
|
15876
|
+
annotations: { destructiveHint: false, idempotentHint: true },
|
|
15877
|
+
inputSchema: external_exports.strictObject({
|
|
15878
|
+
mcpServerId: mcpRequiredId(
|
|
15879
|
+
"mcpServerId",
|
|
15880
|
+
"MCP server",
|
|
15881
|
+
"MCP server ID to attach (UUIDv7 or short ID)"
|
|
15882
|
+
),
|
|
15883
|
+
sessionId: mcpOptionalId(
|
|
15884
|
+
"sessionId",
|
|
15885
|
+
"Session",
|
|
15886
|
+
"Target session ID (UUIDv7 or short ID). Omit to attach to the current session."
|
|
15887
|
+
)
|
|
15888
|
+
})
|
|
15889
|
+
},
|
|
15890
|
+
async (args) => {
|
|
15891
|
+
const target = await resolveTargetSessionId(ctx, args.sessionId);
|
|
15892
|
+
if ("error" in target) {
|
|
15893
|
+
return {
|
|
15894
|
+
...textResult({
|
|
15895
|
+
error: target.error
|
|
15896
|
+
}),
|
|
15897
|
+
isError: true
|
|
15898
|
+
};
|
|
15899
|
+
}
|
|
15900
|
+
const sessionId = target.sessionId;
|
|
15901
|
+
const mcpServerId = await resolveMcpServerId(ctx, args.mcpServerId);
|
|
15902
|
+
const relationship = await attachMcpServerToSession(ctx, sessionId, mcpServerId);
|
|
15903
|
+
const mcpServer = await ctx.app.service("mcp-servers").get(mcpServerId, ctx.baseServiceParams);
|
|
15904
|
+
return textResult({
|
|
15905
|
+
relationship,
|
|
15906
|
+
mcp_server: await summarizeMcpServer(ctx, mcpServer),
|
|
15907
|
+
next_steps: createOrUpdateNextSteps(mcpServer, { sessionId, ok: true })
|
|
15908
|
+
});
|
|
15909
|
+
}
|
|
15910
|
+
);
|
|
15911
|
+
server.registerTool(
|
|
15912
|
+
"agor_sessions_remove_mcp_server",
|
|
15913
|
+
{
|
|
15914
|
+
description: "Remove a session-specific MCP server link from a session. Defaults to current session when `sessionId` is omitted. Permissions are service-enforced by the same session-scoped route as the UI. This only removes the session link; it does not delete the registered MCP server. Note: enabled global MCP servers remain effective for all sessions and cannot be removed from just one session with this link-removal tool.",
|
|
15915
|
+
annotations: { destructiveHint: true, idempotentHint: true },
|
|
15916
|
+
inputSchema: external_exports.strictObject({
|
|
15917
|
+
mcpServerId: mcpRequiredId(
|
|
15918
|
+
"mcpServerId",
|
|
15919
|
+
"MCP server",
|
|
15920
|
+
"MCP server ID to remove from the session (UUIDv7 or short ID)"
|
|
15921
|
+
),
|
|
15922
|
+
sessionId: mcpOptionalId(
|
|
15923
|
+
"sessionId",
|
|
15924
|
+
"Session",
|
|
15925
|
+
"Target session ID (UUIDv7 or short ID). Omit to use the current session."
|
|
15926
|
+
)
|
|
15927
|
+
})
|
|
15928
|
+
},
|
|
15929
|
+
async (args) => {
|
|
15930
|
+
const target = await resolveTargetSessionId(ctx, args.sessionId);
|
|
15931
|
+
if ("error" in target) {
|
|
15932
|
+
return { ...textResult({ error: target.error }), isError: true };
|
|
15933
|
+
}
|
|
15934
|
+
const mcpServerId = await resolveMcpServerId(ctx, args.mcpServerId);
|
|
15935
|
+
const relationship = await removeMcpServerFromSession(ctx, target.sessionId, mcpServerId);
|
|
15936
|
+
return textResult({
|
|
15937
|
+
relationship,
|
|
15938
|
+
removed: { session_id: target.sessionId, mcp_server_id: mcpServerId },
|
|
15939
|
+
next_steps: [
|
|
15940
|
+
"Verify with agor_sessions_get_current/agor_sessions_get. Restart or re-prompt an existing agent if its MCP client does not hot-reload tool removals."
|
|
15941
|
+
]
|
|
15942
|
+
});
|
|
15943
|
+
}
|
|
15944
|
+
);
|
|
15945
|
+
server.registerTool(
|
|
15946
|
+
"agor_sessions_set_mcp_servers",
|
|
15947
|
+
{
|
|
15948
|
+
description: "Replace the session-specific MCP links for a session by diffing through the same add/remove route the UI uses. Defaults to current session when `sessionId` is omitted. Permissions are service-enforced per add/remove. This manages session links only; enabled global MCP servers are still effective for every session even if omitted here.",
|
|
15949
|
+
annotations: { destructiveHint: true, idempotentHint: true },
|
|
15950
|
+
inputSchema: external_exports.strictObject({
|
|
15951
|
+
mcpServerIds: external_exports.array(mcpRequiredId("mcpServerIds[]", "MCP server", "MCP server ID")).describe(
|
|
15952
|
+
"Exact desired set of session-specific MCP server IDs. Pass [] to remove all session-specific links."
|
|
15953
|
+
),
|
|
15954
|
+
sessionId: mcpOptionalId(
|
|
15955
|
+
"sessionId",
|
|
15956
|
+
"Session",
|
|
15957
|
+
"Target session ID (UUIDv7 or short ID). Omit to use the current session."
|
|
15958
|
+
)
|
|
15959
|
+
})
|
|
15960
|
+
},
|
|
15961
|
+
async (args) => {
|
|
15962
|
+
const target = await resolveTargetSessionId(ctx, args.sessionId);
|
|
15963
|
+
if ("error" in target) {
|
|
15964
|
+
return { ...textResult({ error: target.error }), isError: true };
|
|
15965
|
+
}
|
|
15966
|
+
const desired = [
|
|
15967
|
+
...new Set(await Promise.all(args.mcpServerIds.map((id) => resolveMcpServerId(ctx, id))))
|
|
15968
|
+
];
|
|
15969
|
+
const currentResult = await ctx.app.service("/sessions/:id/mcp-servers").find({
|
|
15970
|
+
...ctx.baseServiceParams,
|
|
15971
|
+
route: { id: target.sessionId }
|
|
15972
|
+
});
|
|
15973
|
+
const currentServers = Array.isArray(currentResult) ? currentResult : currentResult.data;
|
|
15974
|
+
const current = currentServers.map((s) => s.mcp_server_id);
|
|
15975
|
+
const currentSet = new Set(current);
|
|
15976
|
+
const desiredSet = new Set(desired);
|
|
15977
|
+
const toAdd = desired.filter((id) => !currentSet.has(id));
|
|
15978
|
+
const toRemove = current.filter((id) => !desiredSet.has(id));
|
|
15979
|
+
const failures = [];
|
|
15980
|
+
for (const mcpServerId of toRemove) {
|
|
15981
|
+
try {
|
|
15982
|
+
await removeMcpServerFromSession(ctx, target.sessionId, mcpServerId);
|
|
15983
|
+
} catch (error51) {
|
|
15984
|
+
failures.push({
|
|
15985
|
+
mcp_server_id: mcpServerId,
|
|
15986
|
+
action: "remove",
|
|
15987
|
+
reason: error51 instanceof Error ? error51.message : String(error51)
|
|
15988
|
+
});
|
|
15989
|
+
}
|
|
15990
|
+
}
|
|
15991
|
+
for (const mcpServerId of toAdd) {
|
|
15992
|
+
try {
|
|
15993
|
+
await attachMcpServerToSession(ctx, target.sessionId, mcpServerId);
|
|
15994
|
+
} catch (error51) {
|
|
15995
|
+
failures.push({
|
|
15996
|
+
mcp_server_id: mcpServerId,
|
|
15997
|
+
action: "add",
|
|
15998
|
+
reason: error51 instanceof Error ? error51.message : String(error51)
|
|
15999
|
+
});
|
|
16000
|
+
}
|
|
16001
|
+
}
|
|
16002
|
+
const payload = {
|
|
16003
|
+
session_id: target.sessionId,
|
|
16004
|
+
desired_mcp_server_ids: desired,
|
|
16005
|
+
added_mcp_server_ids: toAdd.filter(
|
|
16006
|
+
(id) => !failures.some((f) => f.action === "add" && f.mcp_server_id === id)
|
|
16007
|
+
),
|
|
16008
|
+
removed_mcp_server_ids: toRemove.filter(
|
|
16009
|
+
(id) => !failures.some((f) => f.action === "remove" && f.mcp_server_id === id)
|
|
16010
|
+
),
|
|
16011
|
+
unchanged_mcp_server_ids: desired.filter((id) => currentSet.has(id)),
|
|
16012
|
+
failures: failures.length > 0 ? failures : void 0,
|
|
16013
|
+
next_steps: [
|
|
16014
|
+
"Verify with agor_sessions_get_current/agor_sessions_get. Enabled global MCP servers remain effective even if not listed here.",
|
|
16015
|
+
"Restart or re-prompt an existing agent if its MCP client does not hot-reload MCP link changes."
|
|
16016
|
+
]
|
|
16017
|
+
};
|
|
16018
|
+
return failures.length > 0 ? { ...textResult(payload), isError: true } : textResult(payload);
|
|
16019
|
+
}
|
|
16020
|
+
);
|
|
15196
16021
|
}
|
|
15197
16022
|
export {
|
|
15198
16023
|
listAttachedMcpServers,
|