agor-live 0.22.0 → 0.23.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/admin/add-to-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/add-to-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/add-to-branch-group.js +133 -33
- package/dist/cli/commands/admin/create-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/create-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/create-branch-group.js +132 -38
- package/dist/cli/commands/admin/create-symlink.d.ts +2 -14
- package/dist/cli/commands/admin/create-symlink.d.ts.map +1 -1
- package/dist/cli/commands/admin/create-symlink.js +138 -61
- package/dist/cli/commands/admin/delete-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/delete-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/delete-branch-group.js +132 -28
- package/dist/cli/commands/admin/delete-user.d.ts +2 -13
- package/dist/cli/commands/admin/delete-user.d.ts.map +1 -1
- package/dist/cli/commands/admin/delete-user.js +132 -38
- package/dist/cli/commands/admin/ensure-user.d.ts +2 -14
- package/dist/cli/commands/admin/ensure-user.d.ts.map +1 -1
- package/dist/cli/commands/admin/ensure-user.js +131 -46
- package/dist/cli/commands/admin/remove-from-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/remove-from-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/remove-from-branch-group.js +133 -33
- package/dist/cli/commands/admin/remove-symlink.d.ts +2 -14
- package/dist/cli/commands/admin/remove-symlink.d.ts.map +1 -1
- package/dist/cli/commands/admin/remove-symlink.js +136 -49
- package/dist/cli/commands/admin/scrub-git-remotes.d.ts +2 -2
- package/dist/cli/commands/admin/scrub-git-remotes.d.ts.map +1 -1
- package/dist/cli/commands/admin/scrub-git-remotes.js +128 -86
- package/dist/cli/commands/admin/sync-user-symlinks.d.ts +2 -14
- package/dist/cli/commands/admin/sync-user-symlinks.d.ts.map +1 -1
- package/dist/cli/commands/admin/sync-user-symlinks.js +132 -43
- package/dist/cli/commands/auth/whoami.d.ts.map +1 -1
- package/dist/cli/commands/auth/whoami.js +2 -1
- package/dist/cli/commands/branch/env/request.test.d.ts +2 -0
- package/dist/cli/commands/branch/env/request.test.d.ts.map +1 -0
- package/dist/cli/commands/branch/env/request.test.js +17723 -0
- package/dist/cli/commands/branch/env/restart.d.ts.map +1 -1
- package/dist/cli/commands/branch/env/restart.js +7 -1
- package/dist/cli/commands/branch/env/start.d.ts.map +1 -1
- package/dist/cli/commands/branch/env/start.js +7 -1
- package/dist/cli/commands/branch/env/stop.d.ts.map +1 -1
- package/dist/cli/commands/branch/env/stop.js +7 -1
- package/dist/cli/commands/daemon/status.d.ts.map +1 -1
- package/dist/cli/commands/daemon/status.js +2 -1
- package/dist/cli/commands/init.d.ts +6 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +140 -2
- package/dist/cli/commands/local/add-to-branch-group.d.ts +13 -0
- package/dist/cli/commands/local/add-to-branch-group.d.ts.map +1 -0
- package/dist/cli/commands/local/add-to-branch-group.js +37 -0
- package/dist/cli/commands/local/create-branch-group.d.ts +12 -0
- package/dist/cli/commands/local/create-branch-group.d.ts.map +1 -0
- package/dist/cli/commands/local/create-branch-group.js +35 -0
- package/dist/cli/commands/local/create-symlink.d.ts +14 -0
- package/dist/cli/commands/local/create-symlink.d.ts.map +1 -0
- package/dist/cli/commands/local/create-symlink.js +45 -0
- package/dist/cli/commands/{daemon → local/daemon}/sync.d.ts +1 -1
- package/dist/cli/commands/local/daemon/sync.d.ts.map +1 -0
- package/dist/cli/commands/{daemon → local/daemon}/sync.js +7 -6
- package/dist/cli/commands/local/delete-branch-group.d.ts +12 -0
- package/dist/cli/commands/local/delete-branch-group.d.ts.map +1 -0
- package/dist/cli/commands/local/delete-branch-group.js +35 -0
- package/dist/cli/commands/local/delete-user.d.ts +12 -0
- package/dist/cli/commands/local/delete-user.d.ts.map +1 -0
- package/dist/cli/commands/local/delete-user.js +36 -0
- package/dist/cli/commands/local/ensure-user.d.ts +12 -0
- package/dist/cli/commands/local/ensure-user.d.ts.map +1 -0
- package/dist/cli/commands/local/ensure-user.js +41 -0
- package/dist/cli/commands/local/remove-from-branch-group.d.ts +13 -0
- package/dist/cli/commands/local/remove-from-branch-group.d.ts.map +1 -0
- package/dist/cli/commands/local/remove-from-branch-group.js +37 -0
- package/dist/cli/commands/local/remove-symlink.d.ts +13 -0
- package/dist/cli/commands/local/remove-symlink.d.ts.map +1 -0
- package/dist/cli/commands/local/remove-symlink.js +39 -0
- package/dist/cli/commands/local/scrub-git-remotes.d.ts +9 -0
- package/dist/cli/commands/local/scrub-git-remotes.d.ts.map +1 -0
- package/dist/cli/commands/local/scrub-git-remotes.js +23 -0
- package/dist/cli/commands/{admin → local}/sync-unix.d.ts.map +1 -1
- package/dist/cli/commands/{admin → local}/sync-unix.js +3 -3
- package/dist/cli/commands/local/sync-user-symlinks.d.ts +12 -0
- package/dist/cli/commands/local/sync-user-symlinks.d.ts.map +1 -0
- package/dist/cli/commands/local/sync-user-symlinks.js +37 -0
- package/dist/cli/commands/telemetry/index.d.ts +7 -0
- package/dist/cli/commands/telemetry/index.d.ts.map +1 -0
- package/dist/cli/commands/telemetry/index.js +40 -0
- package/dist/cli/commands/telemetry/off.d.ts +6 -0
- package/dist/cli/commands/telemetry/off.d.ts.map +1 -0
- package/dist/cli/commands/telemetry/off.js +35 -0
- package/dist/cli/commands/telemetry/on.d.ts +6 -0
- package/dist/cli/commands/telemetry/on.d.ts.map +1 -0
- package/dist/cli/commands/telemetry/on.js +37 -0
- package/dist/cli/commands/telemetry/test.d.ts +6 -0
- package/dist/cli/commands/telemetry/test.d.ts.map +1 -0
- package/dist/cli/commands/telemetry/test.js +56 -0
- package/dist/cli/commands/user/create-admin.d.ts.map +1 -1
- package/dist/cli/commands/user/create-admin.js +81 -72
- package/dist/cli/commands/user/list.d.ts.map +1 -1
- package/dist/cli/commands/user/list.js +1 -0
- package/dist/cli/commands/whoami.js +2 -1
- package/dist/cli/lib/branch-environment-action.d.ts +21 -0
- package/dist/cli/lib/branch-environment-action.d.ts.map +1 -0
- package/dist/cli/lib/branch-environment-action.js +8 -0
- package/dist/core/api/index.cjs +7 -2
- package/dist/core/api/index.d.ts +13 -4
- package/dist/core/api/index.d.ts.map +1 -1
- package/dist/core/api/index.js +7 -2
- package/dist/core/claude/index.cjs +482 -77
- package/dist/core/claude/index.js +479 -76
- package/dist/core/claude-cli/index.cjs +11 -0
- package/dist/core/claude-cli/index.js +11 -0
- package/dist/core/claude-cli/pricing.d.ts.map +1 -1
- package/dist/core/client/index.cjs +35 -7
- package/dist/core/client/index.js +32 -7
- package/dist/core/config/browser.cjs +3 -5
- package/dist/core/config/browser.js +3 -5
- package/dist/core/config/config-manager.d.ts +33 -13
- package/dist/core/config/config-manager.d.ts.map +1 -1
- package/dist/core/config/index.cjs +4259 -4527
- package/dist/core/config/index.d.ts +1 -0
- package/dist/core/config/index.d.ts.map +1 -1
- package/dist/core/config/index.js +4295 -4583
- package/dist/core/config/key-resolver.d.ts.map +1 -1
- package/dist/core/config/multitenancy.d.ts +33 -0
- package/dist/core/config/multitenancy.d.ts.map +1 -0
- package/dist/core/config/security-resolver.d.ts +1 -0
- package/dist/core/config/security-resolver.d.ts.map +1 -1
- package/dist/core/config/types.d.ts +67 -4
- package/dist/core/config/types.d.ts.map +1 -1
- package/dist/core/db/client.d.ts +34 -2
- package/dist/core/db/client.d.ts.map +1 -1
- package/dist/core/db/database-wrapper.d.ts.map +1 -1
- package/dist/core/db/first-run-bootstrap.d.ts.map +1 -1
- package/dist/core/db/index.cjs +2422 -1084
- package/dist/core/db/index.d.ts +2 -1
- package/dist/core/db/index.d.ts.map +1 -1
- package/dist/core/db/index.js +2162 -852
- package/dist/core/db/migrate.d.ts.map +1 -1
- package/dist/core/db/repositories/artifacts.d.ts +27 -2
- package/dist/core/db/repositories/artifacts.d.ts.map +1 -1
- package/dist/core/db/repositories/base.d.ts +18 -0
- package/dist/core/db/repositories/base.d.ts.map +1 -1
- package/dist/core/db/repositories/board-comments.d.ts +17 -1
- package/dist/core/db/repositories/board-comments.d.ts.map +1 -1
- package/dist/core/db/repositories/board-objects.d.ts.map +1 -1
- package/dist/core/db/repositories/boards.d.ts +28 -4
- package/dist/core/db/repositories/boards.d.ts.map +1 -1
- package/dist/core/db/repositories/branch-access.d.ts +32 -0
- package/dist/core/db/repositories/branch-access.d.ts.map +1 -1
- package/dist/core/db/repositories/branches.d.ts +41 -1
- package/dist/core/db/repositories/branches.d.ts.map +1 -1
- package/dist/core/db/repositories/cards.d.ts +15 -1
- package/dist/core/db/repositories/cards.d.ts.map +1 -1
- package/dist/core/db/repositories/gateway-channels.d.ts.map +1 -1
- package/dist/core/db/repositories/gateway-outbound-messages.d.ts +19 -0
- package/dist/core/db/repositories/gateway-outbound-messages.d.ts.map +1 -0
- package/dist/core/db/repositories/index.d.ts +2 -0
- package/dist/core/db/repositories/index.d.ts.map +1 -1
- package/dist/core/db/repositories/messages.d.ts +9 -2
- package/dist/core/db/repositories/messages.d.ts.map +1 -1
- package/dist/core/db/repositories/repos.d.ts.map +1 -1
- package/dist/core/db/repositories/schedules.d.ts +12 -1
- package/dist/core/db/repositories/schedules.d.ts.map +1 -1
- package/dist/core/db/repositories/sessions.d.ts +49 -5
- package/dist/core/db/repositories/sessions.d.ts.map +1 -1
- package/dist/core/db/repositories/tasks.d.ts +7 -2
- package/dist/core/db/repositories/tasks.d.ts.map +1 -1
- package/dist/core/db/repositories/user-api-keys.d.ts +10 -1
- package/dist/core/db/repositories/user-api-keys.d.ts.map +1 -1
- package/dist/core/db/repositories/users.d.ts +8 -8
- package/dist/core/db/repositories/users.d.ts.map +1 -1
- package/dist/core/db/schema.d.ts +1460 -38
- package/dist/core/db/schema.d.ts.map +1 -1
- package/dist/core/db/schema.postgres.d.ts +1082 -37
- package/dist/core/db/schema.postgres.d.ts.map +1 -1
- package/dist/core/db/schema.sqlite.d.ts +397 -1
- package/dist/core/db/schema.sqlite.d.ts.map +1 -1
- package/dist/core/db/tenant-context.d.ts +26 -0
- package/dist/core/db/tenant-context.d.ts.map +1 -0
- package/dist/core/db/tenant-scope.d.ts +31 -0
- package/dist/core/db/tenant-scope.d.ts.map +1 -0
- package/dist/core/db/user-utils.d.ts +2 -2
- package/dist/core/db/user-utils.d.ts.map +1 -1
- package/dist/core/drizzle/postgres/0052_gateway_outbound_messages.sql +45 -0
- package/dist/core/drizzle/postgres/0053_user_token_invalidation.sql +1 -0
- package/dist/core/drizzle/postgres/0054_app_level_multitenancy.sql +219 -0
- package/dist/core/drizzle/postgres/0055_app_level_multitenancy_rls.sql +411 -0
- package/dist/core/drizzle/postgres/0056_composite_indexes.sql +15 -0
- package/dist/core/drizzle/postgres/0057_message_timestamp_indexes.sql +3 -0
- package/dist/core/drizzle/postgres/meta/_journal.json +42 -0
- package/dist/core/drizzle/sqlite/0061_gateway_outbound_messages.sql +38 -0
- package/dist/core/drizzle/sqlite/0062_user_token_invalidation.sql +1 -0
- package/dist/core/drizzle/sqlite/0063_composite_indexes.sql +10 -0
- package/dist/core/drizzle/sqlite/0064_message_timestamp_indexes.sql +2 -0
- package/dist/core/drizzle/sqlite/meta/_journal.json +28 -0
- package/dist/core/environment/render-snapshot.cjs +1 -4
- package/dist/core/environment/render-snapshot.js +1 -4
- package/dist/core/environment/webhook.cjs +1 -4
- package/dist/core/environment/webhook.js +1 -4
- package/dist/core/gateway/connector.d.ts +10 -1
- package/dist/core/gateway/connector.d.ts.map +1 -1
- package/dist/core/gateway/connectors/slack-manifest.cjs +108 -0
- package/dist/core/gateway/connectors/slack-manifest.d.ts +85 -0
- package/dist/core/gateway/connectors/slack-manifest.d.ts.map +1 -0
- package/dist/core/gateway/connectors/slack-manifest.js +81 -0
- package/dist/core/gateway/connectors/slack.d.ts +101 -4
- package/dist/core/gateway/connectors/slack.d.ts.map +1 -1
- package/dist/core/gateway/index.cjs +495 -29
- package/dist/core/gateway/index.d.ts +4 -1
- package/dist/core/gateway/index.d.ts.map +1 -1
- package/dist/core/gateway/index.js +490 -28
- package/dist/core/gateway/system-message.d.ts.map +1 -1
- package/dist/core/git/exec.cjs +24 -0
- package/dist/core/git/exec.d.ts +6 -4
- package/dist/core/git/exec.d.ts.map +1 -1
- package/dist/core/git/exec.js +2 -0
- package/dist/core/git/index.cjs +3 -1363
- package/dist/core/git/index.d.ts +4 -614
- package/dist/core/git/index.d.ts.map +1 -1
- package/dist/core/git/index.js +1 -1304
- package/dist/core/git/pure.cjs +24 -0
- package/dist/core/git/pure.d.ts +2 -27
- package/dist/core/git/pure.d.ts.map +1 -1
- package/dist/core/git/pure.js +2 -0
- package/dist/core/index.cjs +11137 -10604
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +11673 -10630
- package/dist/core/lib/feathers-validation.cjs +6 -1
- package/dist/core/lib/feathers-validation.d.ts +1 -0
- package/dist/core/lib/feathers-validation.d.ts.map +1 -1
- package/dist/core/lib/feathers-validation.js +6 -1
- package/dist/core/local-actions/git-remotes.d.ts +7 -0
- package/dist/core/local-actions/git-remotes.d.ts.map +1 -0
- package/dist/core/local-actions/index.cjs +7941 -0
- package/dist/core/local-actions/index.d.ts +6 -0
- package/dist/core/local-actions/index.d.ts.map +1 -0
- package/dist/core/local-actions/index.js +7943 -0
- package/dist/core/local-actions/symlinks.d.ts +20 -0
- package/dist/core/local-actions/symlinks.d.ts.map +1 -0
- package/dist/core/local-actions/types.d.ts +14 -0
- package/dist/core/local-actions/types.d.ts.map +1 -0
- package/dist/core/local-actions/unix-groups.d.ts +16 -0
- package/dist/core/local-actions/unix-groups.d.ts.map +1 -0
- package/dist/core/local-actions/unix-users.d.ts +12 -0
- package/dist/core/local-actions/unix-users.d.ts.map +1 -0
- package/dist/core/mcp/index.cjs +352 -25
- package/dist/core/mcp/index.js +351 -24
- package/dist/core/models/browser.cjs +148 -25
- package/dist/core/models/browser.js +144 -25
- package/dist/core/models/claude.d.ts +2 -2
- package/dist/core/models/claude.d.ts.map +1 -1
- package/dist/core/models/codex.d.ts +205 -21
- package/dist/core/models/codex.d.ts.map +1 -1
- package/dist/core/models/index.cjs +148 -25
- package/dist/core/models/index.js +144 -25
- package/dist/core/package.json +24 -0
- package/dist/core/seed/demo-fixtures.d.ts +87 -0
- package/dist/core/seed/demo-fixtures.d.ts.map +1 -0
- package/dist/core/seed/dev-fixtures.d.ts.map +1 -1
- package/dist/core/seed/index.cjs +8410 -5504
- package/dist/core/seed/index.d.ts +1 -0
- package/dist/core/seed/index.d.ts.map +1 -1
- package/dist/core/seed/index.js +8434 -5533
- package/dist/core/sessions/index.cjs +110 -24
- package/dist/core/sessions/index.js +110 -24
- package/dist/core/telemetry/index.cjs +361 -0
- package/dist/core/telemetry/index.d.ts +5 -0
- package/dist/core/telemetry/index.d.ts.map +1 -0
- package/dist/core/telemetry/index.js +315 -0
- package/dist/core/telemetry/logger.d.ts +44 -0
- package/dist/core/telemetry/logger.d.ts.map +1 -0
- package/dist/core/telemetry/model-normalization.d.ts +3 -0
- package/dist/core/telemetry/model-normalization.d.ts.map +1 -0
- package/dist/core/telemetry/types.d.ts +47 -0
- package/dist/core/telemetry/types.d.ts.map +1 -0
- package/dist/core/telemetry/version.d.ts +9 -0
- package/dist/core/telemetry/version.d.ts.map +1 -0
- package/dist/core/templates/agor-system-prompt.md +1 -0
- package/dist/core/tools/mcp/oauth-refresh.cjs +532 -102
- package/dist/core/tools/mcp/oauth-refresh.js +530 -103
- package/dist/core/types/board.d.ts +2 -0
- package/dist/core/types/board.d.ts.map +1 -1
- package/dist/core/types/branch.d.ts +13 -0
- package/dist/core/types/branch.d.ts.map +1 -1
- package/dist/core/types/config-services.d.ts.map +1 -1
- package/dist/core/types/feathers.d.ts +6 -0
- package/dist/core/types/feathers.d.ts.map +1 -1
- package/dist/core/types/gateway.d.ts +76 -1
- package/dist/core/types/gateway.d.ts.map +1 -1
- package/dist/core/types/index.cjs +25 -0
- package/dist/core/types/index.d.ts +1 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js +22 -0
- package/dist/core/types/schedule.d.ts +4 -3
- package/dist/core/types/schedule.d.ts.map +1 -1
- package/dist/core/types/session.d.ts +7 -1
- package/dist/core/types/session.d.ts.map +1 -1
- package/dist/core/types/tenant.d.ts +15 -0
- package/dist/core/types/tenant.d.ts.map +1 -0
- package/dist/core/types/user.d.ts +61 -0
- package/dist/core/types/user.d.ts.map +1 -1
- package/dist/core/unix/index.cjs +1056 -674
- package/dist/core/unix/index.js +1003 -623
- package/dist/core/utils/emoji-shortcodes.d.ts +13 -0
- package/dist/core/utils/emoji-shortcodes.d.ts.map +1 -0
- package/dist/core/yaml/index.cjs +8 -8
- package/dist/core/yaml/index.d.ts +1 -1
- package/dist/core/yaml/index.d.ts.map +1 -1
- package/dist/core/yaml/index.js +7 -7
- package/dist/daemon/adapters/drizzle.d.ts +26 -4
- package/dist/daemon/adapters/drizzle.d.ts.map +1 -1
- package/dist/daemon/adapters/drizzle.js +68 -7
- package/dist/daemon/auth/api-key-strategy.js +1 -1
- package/dist/daemon/auth/executor-runtime-scope.d.ts.map +1 -1
- package/dist/daemon/auth/executor-runtime-scope.js +19 -5
- package/dist/daemon/auth/launch-auth.d.ts +5 -4
- package/dist/daemon/auth/launch-auth.d.ts.map +1 -1
- package/dist/daemon/auth/launch-auth.js +123 -39
- package/dist/daemon/auth/refresh-token-service.d.ts +22 -0
- package/dist/daemon/auth/refresh-token-service.d.ts.map +1 -0
- package/dist/daemon/auth/refresh-token-service.js +133 -0
- package/dist/daemon/auth/runtime-tokens.d.ts +3 -1
- package/dist/daemon/auth/runtime-tokens.d.ts.map +1 -1
- package/dist/daemon/auth/runtime-tokens.js +17 -4
- package/dist/daemon/auth/service-jwt-strategy.d.ts +2 -1
- package/dist/daemon/auth/service-jwt-strategy.d.ts.map +1 -1
- package/dist/daemon/auth/service-jwt-strategy.js +127 -1
- package/dist/daemon/auth/token-invalidation.d.ts +11 -0
- package/dist/daemon/auth/token-invalidation.d.ts.map +1 -0
- package/dist/daemon/auth/token-invalidation.js +38 -0
- package/dist/daemon/auth/user-redaction.d.ts +12 -0
- package/dist/daemon/auth/user-redaction.d.ts.map +1 -0
- package/dist/daemon/auth/user-redaction.js +13 -0
- package/dist/daemon/declarations.d.ts +4 -4
- package/dist/daemon/declarations.d.ts.map +1 -1
- package/dist/daemon/hooks/gateway-route.d.ts.map +1 -1
- package/dist/daemon/hooks/gateway-route.js +23 -13
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +7234 -2866
- package/dist/daemon/knowledge/pgvector.d.ts +3 -3
- package/dist/daemon/knowledge/pgvector.d.ts.map +1 -1
- package/dist/daemon/knowledge/pgvector.js +24 -0
- package/dist/daemon/knowledge/units.d.ts +2 -2
- package/dist/daemon/knowledge/units.d.ts.map +1 -1
- package/dist/daemon/main.js +7234 -2866
- package/dist/daemon/mcp/server.d.ts +3 -3
- package/dist/daemon/mcp/server.d.ts.map +1 -1
- package/dist/daemon/mcp/server.js +1467 -71
- package/dist/daemon/mcp/tokens.d.ts +2 -2
- package/dist/daemon/mcp/tokens.d.ts.map +1 -1
- package/dist/daemon/mcp/tokens.js +5 -1
- package/dist/daemon/mcp/tool-registry.d.ts.map +1 -1
- package/dist/daemon/mcp/tool-registry.js +1 -0
- package/dist/daemon/mcp/tools/analytics.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/analytics.js +548 -23
- package/dist/daemon/mcp/tools/artifacts.js +510 -19
- package/dist/daemon/mcp/tools/boards.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/boards.js +517 -20
- package/dist/daemon/mcp/tools/branches.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/branches.js +574 -49
- package/dist/daemon/mcp/tools/card-types.js +508 -17
- package/dist/daemon/mcp/tools/cards.js +508 -17
- package/dist/daemon/mcp/tools/environment.js +516 -17
- package/dist/daemon/mcp/tools/gateway-channels.d.ts +4 -0
- package/dist/daemon/mcp/tools/gateway-channels.d.ts.map +1 -0
- package/dist/daemon/mcp/tools/gateway-channels.js +16035 -0
- package/dist/daemon/mcp/tools/knowledge.js +508 -17
- package/dist/daemon/mcp/tools/mcp-servers.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/mcp-servers.js +843 -17
- package/dist/daemon/mcp/tools/messages.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/messages.js +568 -31
- package/dist/daemon/mcp/tools/proxies.js +518 -19
- package/dist/daemon/mcp/tools/repos.js +508 -17
- package/dist/daemon/mcp/tools/schedules.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/schedules.js +511 -18
- package/dist/daemon/mcp/tools/search.js +508 -17
- package/dist/daemon/mcp/tools/sessions.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/sessions.js +521 -23
- package/dist/daemon/mcp/tools/tasks.js +508 -17
- package/dist/daemon/mcp/tools/users.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/users.js +527 -22
- package/dist/daemon/mcp/tools/widgets.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/widgets.js +536 -18
- package/dist/daemon/register-hooks.d.ts +3 -2
- package/dist/daemon/register-hooks.d.ts.map +1 -1
- package/dist/daemon/register-hooks.js +894 -582
- package/dist/daemon/register-routes.d.ts +3 -2
- package/dist/daemon/register-routes.d.ts.map +1 -1
- package/dist/daemon/register-routes.js +2715 -816
- package/dist/daemon/register-services.d.ts +2 -2
- package/dist/daemon/register-services.d.ts.map +1 -1
- package/dist/daemon/register-services.js +2445 -633
- package/dist/daemon/services/artifacts.d.ts +34 -6
- package/dist/daemon/services/artifacts.d.ts.map +1 -1
- package/dist/daemon/services/artifacts.js +109 -8
- package/dist/daemon/services/assistant-knowledge.d.ts +2 -2
- package/dist/daemon/services/assistant-knowledge.d.ts.map +1 -1
- package/dist/daemon/services/board-comments.d.ts +8 -5
- package/dist/daemon/services/board-comments.d.ts.map +1 -1
- package/dist/daemon/services/board-comments.js +78 -13
- package/dist/daemon/services/board-objects.d.ts +8 -5
- package/dist/daemon/services/board-objects.d.ts.map +1 -1
- package/dist/daemon/services/board-objects.js +14 -4
- package/dist/daemon/services/boards.d.ts +34 -5
- package/dist/daemon/services/boards.d.ts.map +1 -1
- package/dist/daemon/services/boards.js +116 -8
- package/dist/daemon/services/branch-owners.d.ts +3 -1
- package/dist/daemon/services/branch-owners.d.ts.map +1 -1
- package/dist/daemon/services/branch-owners.js +31 -4
- package/dist/daemon/services/branches.d.ts +31 -8
- package/dist/daemon/services/branches.d.ts.map +1 -1
- package/dist/daemon/services/branches.js +242 -35
- package/dist/daemon/services/card-types.d.ts +3 -3
- package/dist/daemon/services/card-types.d.ts.map +1 -1
- package/dist/daemon/services/card-types.js +68 -7
- package/dist/daemon/services/cards.d.ts +19 -4
- package/dist/daemon/services/cards.d.ts.map +1 -1
- package/dist/daemon/services/cards.js +92 -8
- package/dist/daemon/services/check-auth.d.ts +2 -2
- package/dist/daemon/services/check-auth.d.ts.map +1 -1
- package/dist/daemon/services/claude-cli-integration.d.ts +4 -1
- package/dist/daemon/services/claude-cli-integration.d.ts.map +1 -1
- package/dist/daemon/services/claude-cli-integration.js +117 -65
- package/dist/daemon/services/claude-models.d.ts +3 -3
- package/dist/daemon/services/claude-models.d.ts.map +1 -1
- package/dist/daemon/services/claude-models.js +383 -272
- package/dist/daemon/services/config.d.ts +12 -4
- package/dist/daemon/services/config.d.ts.map +1 -1
- package/dist/daemon/services/config.js +39 -3
- package/dist/daemon/services/copilot-models.d.ts +3 -3
- package/dist/daemon/services/copilot-models.d.ts.map +1 -1
- package/dist/daemon/services/cursor-models.d.ts +3 -3
- package/dist/daemon/services/cursor-models.d.ts.map +1 -1
- package/dist/daemon/services/files.d.ts +3 -3
- package/dist/daemon/services/files.d.ts.map +1 -1
- package/dist/daemon/services/files.js +24 -5
- package/dist/daemon/services/gateway-channels-test.d.ts +24 -0
- package/dist/daemon/services/gateway-channels-test.d.ts.map +1 -0
- package/dist/daemon/services/gateway-channels-test.js +66 -0
- package/dist/daemon/services/gateway-channels.d.ts +3 -3
- package/dist/daemon/services/gateway-channels.d.ts.map +1 -1
- package/dist/daemon/services/gateway-channels.js +68 -7
- package/dist/daemon/services/gateway.d.ts +48 -3
- package/dist/daemon/services/gateway.d.ts.map +1 -1
- package/dist/daemon/services/gateway.js +606 -60
- package/dist/daemon/services/github-app-setup.d.ts +3 -3
- package/dist/daemon/services/github-app-setup.d.ts.map +1 -1
- package/dist/daemon/services/groups.d.ts +5 -5
- package/dist/daemon/services/groups.d.ts.map +1 -1
- package/dist/daemon/services/health-monitor.d.ts +34 -2
- package/dist/daemon/services/health-monitor.d.ts.map +1 -1
- package/dist/daemon/services/health-monitor.js +145 -23
- package/dist/daemon/services/knowledge-document-edits.d.ts +3 -3
- package/dist/daemon/services/knowledge-document-edits.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-documents.d.ts +3 -3
- package/dist/daemon/services/knowledge-documents.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-documents.js +92 -7
- package/dist/daemon/services/knowledge-embedding-indexer.d.ts +7 -2
- package/dist/daemon/services/knowledge-embedding-indexer.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-embedding-indexer.js +37 -3
- package/dist/daemon/services/knowledge-graph.d.ts +3 -3
- package/dist/daemon/services/knowledge-graph.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-indexing.d.ts +3 -3
- package/dist/daemon/services/knowledge-indexing.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-namespaces.d.ts +3 -3
- package/dist/daemon/services/knowledge-namespaces.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-namespaces.js +72 -8
- package/dist/daemon/services/knowledge-reindex.d.ts +3 -3
- package/dist/daemon/services/knowledge-reindex.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-reindex.js +28 -1
- package/dist/daemon/services/knowledge-search.d.ts +3 -3
- package/dist/daemon/services/knowledge-search.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-settings.d.ts +3 -3
- package/dist/daemon/services/knowledge-settings.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-settings.js +24 -0
- package/dist/daemon/services/knowledge-versions.d.ts +3 -3
- package/dist/daemon/services/knowledge-versions.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-versions.js +68 -7
- package/dist/daemon/services/leaderboard.d.ts +14 -6
- package/dist/daemon/services/leaderboard.d.ts.map +1 -1
- package/dist/daemon/services/leaderboard.js +74 -15
- package/dist/daemon/services/local-actions.d.ts +13 -0
- package/dist/daemon/services/local-actions.d.ts.map +1 -0
- package/dist/daemon/services/local-actions.js +120 -0
- package/dist/daemon/services/mcp-servers.d.ts +3 -3
- package/dist/daemon/services/mcp-servers.d.ts.map +1 -1
- package/dist/daemon/services/mcp-servers.js +68 -7
- package/dist/daemon/services/messages.d.ts +10 -6
- package/dist/daemon/services/messages.d.ts.map +1 -1
- package/dist/daemon/services/messages.js +87 -7
- package/dist/daemon/services/repos.d.ts +6 -6
- package/dist/daemon/services/repos.d.ts.map +1 -1
- package/dist/daemon/services/repos.js +131 -32
- package/dist/daemon/services/scheduler.d.ts +23 -27
- package/dist/daemon/services/scheduler.d.ts.map +1 -1
- package/dist/daemon/services/scheduler.js +55 -28
- package/dist/daemon/services/schedules.d.ts +3 -3
- package/dist/daemon/services/schedules.d.ts.map +1 -1
- package/dist/daemon/services/schedules.js +68 -7
- package/dist/daemon/services/session-env-selections.d.ts +3 -3
- package/dist/daemon/services/session-env-selections.d.ts.map +1 -1
- package/dist/daemon/services/session-mcp-servers.d.ts +3 -3
- package/dist/daemon/services/session-mcp-servers.d.ts.map +1 -1
- package/dist/daemon/services/session-token-service.d.ts.map +1 -1
- package/dist/daemon/services/session-token-service.js +3 -0
- package/dist/daemon/services/sessions.d.ts +9 -5
- package/dist/daemon/services/sessions.d.ts.map +1 -1
- package/dist/daemon/services/sessions.js +143 -10
- package/dist/daemon/services/tasks.d.ts +11 -5
- package/dist/daemon/services/tasks.d.ts.map +1 -1
- package/dist/daemon/services/tasks.js +199 -39
- package/dist/daemon/services/terminals.d.ts +21 -3
- package/dist/daemon/services/terminals.d.ts.map +1 -1
- package/dist/daemon/services/terminals.js +81 -25
- package/dist/daemon/services/thread-session-map.d.ts +3 -3
- package/dist/daemon/services/thread-session-map.d.ts.map +1 -1
- package/dist/daemon/services/thread-session-map.js +68 -7
- package/dist/daemon/services/user-avatar-sync.d.ts +21 -0
- package/dist/daemon/services/user-avatar-sync.d.ts.map +1 -0
- package/dist/daemon/services/user-avatar-sync.js +267 -0
- package/dist/daemon/services/users.d.ts +29 -9
- package/dist/daemon/services/users.d.ts.map +1 -1
- package/dist/daemon/services/users.js +383 -30
- package/dist/daemon/services/zone-trigger.d.ts.map +1 -1
- package/dist/daemon/services/zone-trigger.js +17 -4
- package/dist/daemon/setup/build-info.d.ts +1 -1
- package/dist/daemon/setup/build-info.d.ts.map +1 -1
- package/dist/daemon/setup/build-info.js +5 -1
- package/dist/daemon/setup/database.d.ts +8 -3
- package/dist/daemon/setup/database.d.ts.map +1 -1
- package/dist/daemon/setup/database.js +26 -6
- package/dist/daemon/setup/first-run-admin.d.ts +2 -2
- package/dist/daemon/setup/first-run-admin.d.ts.map +1 -1
- package/dist/daemon/setup/index.js +97 -17
- package/dist/daemon/setup/socketio.d.ts +10 -1
- package/dist/daemon/setup/socketio.d.ts.map +1 -1
- package/dist/daemon/setup/socketio.js +68 -10
- package/dist/daemon/startup.d.ts +13 -2
- package/dist/daemon/startup.d.ts.map +1 -1
- package/dist/daemon/startup.js +348 -86
- package/dist/daemon/utils/append-system-message.d.ts +2 -2
- package/dist/daemon/utils/append-system-message.d.ts.map +1 -1
- package/dist/daemon/utils/apply-session-config-defaults.d.ts.map +1 -1
- package/dist/daemon/utils/apply-session-config-defaults.js +12 -1
- package/dist/daemon/utils/authorization.d.ts +3 -1
- package/dist/daemon/utils/authorization.d.ts.map +1 -1
- package/dist/daemon/utils/authorization.js +21 -6
- package/dist/daemon/utils/branch-authorization.d.ts +30 -0
- package/dist/daemon/utils/branch-authorization.d.ts.map +1 -1
- package/dist/daemon/utils/branch-authorization.js +63 -5
- package/dist/daemon/utils/branch-inspect.d.ts +1 -0
- package/dist/daemon/utils/branch-inspect.d.ts.map +1 -1
- package/dist/daemon/utils/branch-inspect.js +11 -3
- package/dist/daemon/utils/executor-read-impersonation.d.ts +2 -2
- package/dist/daemon/utils/executor-read-impersonation.d.ts.map +1 -1
- package/dist/daemon/utils/git-impersonation.d.ts +10 -10
- package/dist/daemon/utils/git-impersonation.d.ts.map +1 -1
- package/dist/daemon/utils/git-remote-credential-scan.d.ts +3 -3
- package/dist/daemon/utils/git-remote-credential-scan.d.ts.map +1 -1
- package/dist/daemon/utils/git-remote-credential-scan.js +6 -2
- package/dist/daemon/utils/mcp-token-authorization.d.ts +18 -13
- package/dist/daemon/utils/mcp-token-authorization.d.ts.map +1 -1
- package/dist/daemon/utils/mcp-token-authorization.js +11 -5
- package/dist/daemon/utils/open-source-telemetry-config.d.ts +6 -0
- package/dist/daemon/utils/open-source-telemetry-config.d.ts.map +1 -0
- package/dist/daemon/utils/open-source-telemetry-config.js +21 -0
- package/dist/daemon/utils/open-source-telemetry-heartbeat.d.ts +7 -0
- package/dist/daemon/utils/open-source-telemetry-heartbeat.d.ts.map +1 -0
- package/dist/daemon/utils/open-source-telemetry-heartbeat.js +15 -0
- package/dist/daemon/utils/open-source-telemetry-usage.d.ts +9 -0
- package/dist/daemon/utils/open-source-telemetry-usage.d.ts.map +1 -0
- package/dist/daemon/utils/open-source-telemetry-usage.js +121 -0
- package/dist/daemon/utils/realign-repo-origin.d.ts +3 -3
- package/dist/daemon/utils/realign-repo-origin.d.ts.map +1 -1
- package/dist/daemon/utils/realign-repo-origin.js +47 -16
- package/dist/daemon/utils/realtime-publish.d.ts +2 -0
- package/dist/daemon/utils/realtime-publish.d.ts.map +1 -1
- package/dist/daemon/utils/realtime-publish.js +51 -10
- package/dist/daemon/utils/session-state-hooks.d.ts +3 -3
- package/dist/daemon/utils/session-state-hooks.d.ts.map +1 -1
- package/dist/daemon/utils/session-turn-lock.d.ts +8 -1
- package/dist/daemon/utils/session-turn-lock.d.ts.map +1 -1
- package/dist/daemon/utils/session-turn-lock.js +25 -2
- package/dist/daemon/utils/spawn-executor.d.ts +23 -1
- package/dist/daemon/utils/spawn-executor.d.ts.map +1 -1
- package/dist/daemon/utils/spawn-executor.js +34 -4
- package/dist/daemon/utils/tenant-db-scope.d.ts +20 -0
- package/dist/daemon/utils/tenant-db-scope.d.ts.map +1 -0
- package/dist/daemon/utils/tenant-db-scope.js +114 -0
- package/dist/daemon/utils/unix-group-init.d.ts +3 -3
- package/dist/daemon/utils/unix-group-init.d.ts.map +1 -1
- package/dist/daemon/utils/upload.d.ts +6 -9
- package/dist/daemon/utils/upload.d.ts.map +1 -1
- package/dist/daemon/utils/upload.js +30 -37
- package/dist/daemon/widgets/env-vars/index.d.ts +26 -1
- package/dist/daemon/widgets/env-vars/index.d.ts.map +1 -1
- package/dist/daemon/widgets/env-vars/index.js +145 -21
- package/dist/daemon/widgets/index.js +137 -21
- package/dist/executor/commands/environment.d.ts.map +1 -1
- package/dist/executor/commands/environment.js +9 -5
- package/dist/executor/commands/git.js +1 -1
- package/dist/executor/git/index.d.ts +8 -0
- package/dist/executor/git/index.d.ts.map +1 -0
- package/dist/executor/git/index.js +7 -0
- package/dist/executor/handlers/sdk/base-executor.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/base-executor.js +4 -1
- package/dist/executor/handlers/sdk/git-safe-directory.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/git-safe-directory.js +1 -1
- package/dist/executor/sdk-handlers/base/diff-enrichment.js +1 -1
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +6 -10
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/codex-tool.js +12 -15
- package/dist/executor/sdk-handlers/codex/normalizer.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/normalizer.js +11 -1
- package/dist/executor/sdk-handlers/codex/pricing/litellm-openai-model-prices.json +3663 -0
- package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.d.ts +31 -0
- package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.d.ts.map +1 -0
- package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.js +46 -0
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/prompt-service.js +61 -6
- package/dist/executor/sdk-handlers/codex/usage.d.ts +14 -23
- package/dist/executor/sdk-handlers/codex/usage.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/usage.js +18 -33
- package/dist/executor/services/feathers-client.js +5 -5
- package/dist/git/index.cjs +1101 -0
- package/dist/git/index.d.ts +533 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +1022 -0
- package/dist/git/package.json +21 -0
- package/dist/git/pure.cjs +185 -0
- package/dist/git/pure.d.ts +39 -0
- package/dist/git/pure.d.ts.map +1 -0
- package/dist/git/pure.js +139 -0
- package/dist/ui/assets/AgorEmojiPickerInner-DQjr8M3_.js +1 -0
- package/dist/ui/assets/App-hJtcOxHv.js +5 -0
- package/dist/ui/assets/App-hJtcOxHv.js.gz +0 -0
- package/dist/ui/assets/AppNode-BhuMpn8O.js +1 -0
- package/dist/ui/assets/AppNode-BhuMpn8O.js.gz +0 -0
- package/dist/ui/assets/ArtifactConsentModal-oMMzRn8L.js +1 -0
- package/dist/ui/assets/ArtifactConsentModal-oMMzRn8L.js.gz +0 -0
- package/dist/ui/assets/ArtifactFullscreenPage-B3wT8t8f.js +9 -0
- package/dist/ui/assets/ArtifactFullscreenPage-B3wT8t8f.js.gz +0 -0
- package/dist/ui/assets/ArtifactNode-BzQcrwFS.js +9 -0
- package/dist/ui/assets/ArtifactNode-BzQcrwFS.js.gz +0 -0
- package/dist/ui/assets/AutocompleteTextarea-Dau-V_30.js +19 -0
- package/dist/ui/assets/AutocompleteTextarea-Dau-V_30.js.gz +0 -0
- package/dist/ui/assets/BoardObjectNodes-DdKWv_ZT.js +34 -0
- package/dist/ui/assets/BoardObjectNodes-DdKWv_ZT.js.gz +0 -0
- package/dist/ui/assets/CodeEditor.inner-Cuj6RuLL.js +7 -0
- package/dist/ui/assets/CodeEditor.inner-Cuj6RuLL.js.gz +0 -0
- package/dist/ui/assets/ConversationView-9-3ma1u-.js +1 -0
- package/dist/ui/assets/ConversationView-9-3ma1u-.js.gz +0 -0
- package/dist/ui/assets/EmbeddedTerminal-Lx5I9EOJ.js +2 -0
- package/dist/ui/assets/EmbeddedTerminal-Lx5I9EOJ.js.gz +0 -0
- package/dist/ui/assets/KnowledgePage-Dz8YAMYC.js +24 -0
- package/dist/ui/assets/KnowledgePage-Dz8YAMYC.js.gz +0 -0
- package/dist/ui/assets/{MarketingScreenshotPage-zv5RUCuV.js → MarketingScreenshotPage-CmDPBHOl.js} +2 -2
- package/dist/ui/assets/MarketingScreenshotPage-CmDPBHOl.js.gz +0 -0
- package/dist/ui/assets/MobileApp-BpgSG_gz.js +1 -0
- package/dist/ui/assets/MobileApp-BpgSG_gz.js.gz +0 -0
- package/dist/ui/assets/SessionCanvas-B6_mtlxK.js +13 -0
- package/dist/ui/assets/SessionCanvas-B6_mtlxK.js.gz +0 -0
- package/dist/ui/assets/{SessionCanvas-mEmYGZhC.css → SessionCanvas-Bh7Yg5dZ.css} +1 -1
- package/dist/ui/assets/SessionCanvas-Bh7Yg5dZ.css.gz +0 -0
- package/dist/ui/assets/{StreamdownDemoPage-wzWaqWwr.js → StreamdownDemoPage-okKKR2QH.js} +2 -2
- package/dist/ui/assets/StreamdownDemoPage-okKKR2QH.js.gz +0 -0
- package/dist/ui/assets/TerminalModal-D9jMGZXv.js +2 -0
- package/dist/ui/assets/TerminalModal-D9jMGZXv.js.gz +0 -0
- package/dist/ui/assets/ThemeSwitcher-D9HgT37l.js +1 -0
- package/dist/ui/assets/ThemeSwitcher-D9HgT37l.js.gz +0 -0
- package/dist/ui/assets/ThemedSyntaxHighlighter.inner-C1FdIHn0.js +1 -0
- package/dist/ui/assets/{antd-CfbbHJOz.js → antd-DT5ackd0.js} +5 -5
- package/dist/ui/assets/{antd-CfbbHJOz.js.gz → antd-DT5ackd0.js.gz} +0 -0
- package/dist/ui/assets/architecture-U656AL7Q-DMnxkQRZ.js +1 -0
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-DwTJGGoj.js +36 -0
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-DwTJGGoj.js.gz +0 -0
- package/dist/ui/assets/{blockDiagram-VD42YOAC-BhZaEN19.js → blockDiagram-VD42YOAC-Dh1_TVW2.js} +4 -4
- package/dist/ui/assets/blockDiagram-VD42YOAC-Dh1_TVW2.js.gz +0 -0
- package/dist/ui/assets/{c4Diagram-YG6GDRKO-Dk_UH-sY.js → c4Diagram-YG6GDRKO-B1e96AcB.js} +2 -2
- package/dist/ui/assets/c4Diagram-YG6GDRKO-B1e96AcB.js.gz +0 -0
- package/dist/ui/assets/channel-Jv4dT4S5.js +1 -0
- package/dist/ui/assets/{chunk-4BX2VUAB-XprbG2TG.js → chunk-4BX2VUAB-BODpCjJx.js} +1 -1
- package/dist/ui/assets/chunk-55IACEB6-lJXvUquf.js +1 -0
- package/dist/ui/assets/{chunk-ABZYJK2D-BJcrryHK.js → chunk-ABZYJK2D-DCTXWSzV.js} +3 -3
- package/dist/ui/assets/chunk-ABZYJK2D-DCTXWSzV.js.gz +0 -0
- package/dist/ui/assets/{chunk-AGHRB4JF-DvxmfbM0.js → chunk-AGHRB4JF-CbNphBjE.js} +1 -1
- package/dist/ui/assets/chunk-AGHRB4JF-CbNphBjE.js.gz +0 -0
- package/dist/ui/assets/{chunk-ATLVNIR6-DbeJ0OrR.js → chunk-ATLVNIR6-rWg3qxof.js} +1 -1
- package/dist/ui/assets/chunk-ATLVNIR6-rWg3qxof.js.gz +0 -0
- package/dist/ui/assets/{chunk-B4BG7PRW-C53q2ggf.js → chunk-B4BG7PRW-CgtLCbpE.js} +3 -3
- package/dist/ui/assets/chunk-B4BG7PRW-CgtLCbpE.js.gz +0 -0
- package/dist/ui/assets/{chunk-CVBHYZKI-B3EBSlb3.js → chunk-CVBHYZKI-DTL6Zgr0.js} +1 -1
- package/dist/ui/assets/{chunk-DI55MBZ5-vIyNEQN-.js → chunk-DI55MBZ5-Dwvx2Kva.js} +1 -1
- package/dist/ui/assets/chunk-DI55MBZ5-Dwvx2Kva.js.gz +0 -0
- package/dist/ui/assets/chunk-EXTU4WIE-DHyaqTsP.js +1 -0
- package/dist/ui/assets/{chunk-FMBD7UC4-rddmfK-Z.js → chunk-FMBD7UC4-BogA_9CV.js} +1 -1
- package/dist/ui/assets/{chunk-HN2XXSSU-Dttqcg3b.js → chunk-HN2XXSSU-2blQO3Gb.js} +1 -1
- package/dist/ui/assets/chunk-HN2XXSSU-2blQO3Gb.js.gz +0 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-Cr1rmOui.js +11 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-Cr1rmOui.js.gz +0 -0
- package/dist/ui/assets/{chunk-JZLCHNYA-EUmx2y4H.js → chunk-JZLCHNYA-BsgZ79Fa.js} +5 -5
- package/dist/ui/assets/chunk-JZLCHNYA-BsgZ79Fa.js.gz +0 -0
- package/dist/ui/assets/{chunk-MI3HLSF2-65n9Mkyc.js → chunk-MI3HLSF2-dwYeUy5S.js} +1 -1
- package/dist/ui/assets/chunk-MI3HLSF2-dwYeUy5S.js.gz +0 -0
- package/dist/ui/assets/chunk-N4CR4FBY-DEMgSRVe.js +2 -0
- package/dist/ui/assets/chunk-N4CR4FBY-DEMgSRVe.js.gz +0 -0
- package/dist/ui/assets/{chunk-QN33PNHL-DsRKK6NR.js → chunk-QN33PNHL-DxdIDCAa.js} +1 -1
- package/dist/ui/assets/{chunk-QXUST7PY-BCYnMiS3.js → chunk-QXUST7PY-BCK2V0i-.js} +2 -2
- package/dist/ui/assets/chunk-QXUST7PY-BCK2V0i-.js.gz +0 -0
- package/dist/ui/assets/chunk-QZHKN3VN-CALjGrEE.js +1 -0
- package/dist/ui/assets/chunk-S3R3BYOJ-GP3zIxrB.js +2 -0
- package/dist/ui/assets/chunk-S3R3BYOJ-GP3zIxrB.js.gz +0 -0
- package/dist/ui/assets/{chunk-TZMSLE5B-BuQUQcTr.js → chunk-TZMSLE5B-dX5RaM6g.js} +1 -1
- package/dist/ui/assets/chunk-TZMSLE5B-dX5RaM6g.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-C3_RVP70.js +1 -0
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-C3_RVP70.js +1 -0
- package/dist/ui/assets/constants-GjIDNVyt.js +1 -0
- package/dist/ui/assets/{cose-bilkent-S5V4N54A-CnPB3ARO.js → cose-bilkent-S5V4N54A-Dx0BJVDl.js} +1 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-Dx0BJVDl.js.gz +0 -0
- package/dist/ui/assets/{dagre-6UL2VRFP-DhS-k_Se.js → dagre-6UL2VRFP-DiQSUxqN.js} +1 -1
- package/dist/ui/assets/dagre-6UL2VRFP-DiQSUxqN.js.gz +0 -0
- package/dist/ui/assets/{dagre-KgLoHEuy.js → dagre-Bekd9Vdj.js} +1 -1
- package/dist/ui/assets/dagre-Bekd9Vdj.js.gz +0 -0
- package/dist/ui/assets/diagram-PSM6KHXK-DtJnDQjc.js +24 -0
- package/dist/ui/assets/diagram-PSM6KHXK-DtJnDQjc.js.gz +0 -0
- package/dist/ui/assets/{diagram-QEK2KX5R-BPCitvbo.js → diagram-QEK2KX5R-CobkCRdj.js} +1 -1
- package/dist/ui/assets/diagram-QEK2KX5R-CobkCRdj.js.gz +0 -0
- package/dist/ui/assets/{diagram-S2PKOQOG-NW4uK6sx.js → diagram-S2PKOQOG-DHEZYivc.js} +1 -1
- package/dist/ui/assets/diagram-S2PKOQOG-DHEZYivc.js.gz +0 -0
- package/dist/ui/assets/editor-DQIG-JYZ.js +43 -0
- package/dist/ui/assets/editor-DQIG-JYZ.js.gz +0 -0
- package/dist/ui/assets/emoji-B0hLmSLZ.js +3 -0
- package/dist/ui/assets/emoji-B0hLmSLZ.js.gz +0 -0
- package/dist/ui/assets/{erDiagram-Q2GNP2WA-me1fboaf.js → erDiagram-Q2GNP2WA-BVNeTZPQ.js} +2 -2
- package/dist/ui/assets/erDiagram-Q2GNP2WA-BVNeTZPQ.js.gz +0 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-C73VFdyk.js +162 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-C73VFdyk.js.gz +0 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-B_RosuD1.js +267 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-B_RosuD1.js.gz +0 -0
- package/dist/ui/assets/{gitGraph-F6HP7TQM-CfFE_uAC.js → gitGraph-F6HP7TQM-DMFIqn4h.js} +1 -1
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-hxbgwNA1.js +65 -0
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-hxbgwNA1.js.gz +0 -0
- package/dist/ui/assets/index-DTz1Dif6.js +64 -0
- package/dist/ui/assets/index-DTz1Dif6.js.gz +0 -0
- package/dist/ui/assets/{index-DxuPq13l.css → index-qkT7Qqm2.css} +1 -1
- package/dist/ui/assets/index-qkT7Qqm2.css.gz +0 -0
- package/dist/ui/assets/{info-NVLQJR56-i_xHYg3f.js → info-NVLQJR56-DZ3K-w48.js} +1 -1
- package/dist/ui/assets/{infoDiagram-ER5ION4S-2NL93b78.js → infoDiagram-ER5ION4S-CxnBJQu6.js} +1 -1
- package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-CZF-2DHU.js → journeyDiagram-XKPGCS4Q-CHYNj-f8.js} +3 -3
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CHYNj-f8.js.gz +0 -0
- package/dist/ui/assets/{kanban-definition-3W4ZIXB7-CfvJIOny.js → kanban-definition-3W4ZIXB7-DQPCCsj2.js} +1 -1
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-DQPCCsj2.js.gz +0 -0
- package/dist/ui/assets/{line-DDv8kOJk.js → line-DBRjKmfa.js} +1 -1
- package/dist/ui/assets/{linear-Daef-l29.js → linear-DFao5Wyp.js} +1 -1
- package/dist/ui/assets/linear-DFao5Wyp.js.gz +0 -0
- package/dist/ui/assets/{mermaid-parser.core-CdK9QgYV.js → mermaid-parser.core-DYCfacHj.js} +2 -2
- package/dist/ui/assets/mermaid-parser.core-DYCfacHj.js.gz +0 -0
- package/dist/ui/assets/mermaid.core-C6xGFSdE.js +11 -0
- package/dist/ui/assets/mermaid.core-C6xGFSdE.js.gz +0 -0
- package/dist/ui/assets/{mindmap-definition-VGOIOE7T-Cb3QMflX.js → mindmap-definition-VGOIOE7T-L3Pw-YM7.js} +1 -1
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-L3Pw-YM7.js.gz +0 -0
- package/dist/ui/assets/{packet-BFZMPI3H-Bm2uwz4i.js → packet-BFZMPI3H-CpL6iNoa.js} +1 -1
- package/dist/ui/assets/{particles-DsJFOarW.js → particles-CT8hcJOA.js} +1 -1
- package/dist/ui/assets/particles-CT8hcJOA.js.gz +0 -0
- package/dist/ui/assets/{pie-7BOR55EZ-5i17tVnF.js → pie-7BOR55EZ-hTqChbTo.js} +1 -1
- package/dist/ui/assets/{pieDiagram-ADFJNKIX-BxIwQWvw.js → pieDiagram-ADFJNKIX-Bf4Nou75.js} +1 -1
- package/dist/ui/assets/pieDiagram-ADFJNKIX-Bf4Nou75.js.gz +0 -0
- package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-B5HPe4ga.js → quadrantDiagram-AYHSOK5B-DpjUTLB1.js} +3 -3
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-DpjUTLB1.js.gz +0 -0
- package/dist/ui/assets/{radar-NHE76QYJ-BTn-tq0k.js → radar-NHE76QYJ-myy7OENC.js} +1 -1
- package/dist/ui/assets/reactflow-Cubtnk8i.js +2 -0
- package/dist/ui/assets/reactflow-Cubtnk8i.js.gz +0 -0
- package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-YfI6llkX.js → requirementDiagram-UZGBJVZJ-Bfrfh-0-.js} +1 -1
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-Bfrfh-0-.js.gz +0 -0
- package/dist/ui/assets/{sandpack-D7koO5op.js → sandpack-C58bwfIS.js} +38 -38
- package/dist/ui/assets/sandpack-C58bwfIS.js.gz +0 -0
- package/dist/ui/assets/sandpackDefaults-Bkga8XAE.js +1 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-ClZAZ6va.js +10 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-ClZAZ6va.js.gz +0 -0
- package/dist/ui/assets/{sequenceDiagram-WL72ISMW-DAe4Um17.js → sequenceDiagram-WL72ISMW-CNgly63p.js} +6 -6
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-CNgly63p.js.gz +0 -0
- package/dist/ui/assets/src-DAeyG22O.js +34 -0
- package/dist/ui/assets/src-DAeyG22O.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BrEAoDpE.js +1 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BrEAoDpE.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-BNL52_oN.js +1 -0
- package/dist/ui/assets/streamdown-BdAVfkeF.js +521 -0
- package/dist/ui/assets/streamdown-BdAVfkeF.js.gz +0 -0
- package/dist/ui/assets/syntax-BOfTnQiy.js +9 -0
- package/dist/ui/assets/syntax-BOfTnQiy.js.gz +0 -0
- package/dist/ui/assets/{timeline-definition-IT6M3QCI-D6P5txjT.js → timeline-definition-IT6M3QCI-CaRH3k4l.js} +16 -16
- package/dist/ui/assets/timeline-definition-IT6M3QCI-CaRH3k4l.js.gz +0 -0
- package/dist/ui/assets/{treemap-KMMF4GRG-Bitm3gy4.js → treemap-KMMF4GRG-CUaLOV_B.js} +1 -1
- package/dist/ui/assets/{useUserLocalStorage-Ckb8HsIw.js → useUserLocalStorage-C8sgXgXR.js} +1 -1
- package/dist/ui/assets/useUserLocalStorage-C8sgXgXR.js.gz +0 -0
- package/dist/ui/assets/{xychartDiagram-PRI3JC2R-CsybjUbd.js → xychartDiagram-PRI3JC2R-BlhkI9T_.js} +1 -1
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-BlhkI9T_.js.gz +0 -0
- package/dist/ui/index.html +10 -11
- package/dist/ui/index.html.gz +0 -0
- package/package.json +6 -5
- package/scripts/postinstall.js +27 -19
- package/dist/cli/commands/daemon/sync.d.ts.map +0 -1
- package/dist/ui/assets/App-DcEY8Ota.js +0 -3
- package/dist/ui/assets/App-DcEY8Ota.js.gz +0 -0
- package/dist/ui/assets/ArtifactConsentModal-CiCbK9iv.js +0 -1
- package/dist/ui/assets/ArtifactConsentModal-CiCbK9iv.js.gz +0 -0
- package/dist/ui/assets/ArtifactFullscreenPage-CfsTEGKd.js +0 -9
- package/dist/ui/assets/ArtifactFullscreenPage-CfsTEGKd.js.gz +0 -0
- package/dist/ui/assets/AutocompleteTextarea-BAFFH_5e.js +0 -18
- package/dist/ui/assets/AutocompleteTextarea-BAFFH_5e.js.gz +0 -0
- package/dist/ui/assets/BoardObjectNodes-D-O6bZIG.js +0 -34
- package/dist/ui/assets/BoardObjectNodes-D-O6bZIG.js.gz +0 -0
- package/dist/ui/assets/CodeEditor.inner-DBgsP4tn.js +0 -8
- package/dist/ui/assets/CodeEditor.inner-DBgsP4tn.js.gz +0 -0
- package/dist/ui/assets/ConversationView-CUWR0gR6.js +0 -1
- package/dist/ui/assets/ConversationView-CUWR0gR6.js.gz +0 -0
- package/dist/ui/assets/KnowledgePage-B2bzlXfn.js +0 -24
- package/dist/ui/assets/KnowledgePage-B2bzlXfn.js.gz +0 -0
- package/dist/ui/assets/MarketingScreenshotPage-zv5RUCuV.js.gz +0 -0
- package/dist/ui/assets/MobileApp-VgVnsnsN.js +0 -1
- package/dist/ui/assets/MobileApp-VgVnsnsN.js.gz +0 -0
- package/dist/ui/assets/SessionCanvas-f1-1Gbcw.js +0 -20
- package/dist/ui/assets/SessionCanvas-f1-1Gbcw.js.gz +0 -0
- package/dist/ui/assets/SessionCanvas-mEmYGZhC.css.gz +0 -0
- package/dist/ui/assets/StreamdownDemoPage-wzWaqWwr.js.gz +0 -0
- package/dist/ui/assets/ThemeSwitcher-Dly2y9pi.js +0 -1
- package/dist/ui/assets/ThemeSwitcher-Dly2y9pi.js.gz +0 -0
- package/dist/ui/assets/architecture-U656AL7Q-CykGFbQU.js +0 -1
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-C8HXAenz.js +0 -36
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-C8HXAenz.js.gz +0 -0
- package/dist/ui/assets/blockDiagram-VD42YOAC-BhZaEN19.js.gz +0 -0
- package/dist/ui/assets/c4Diagram-YG6GDRKO-Dk_UH-sY.js.gz +0 -0
- package/dist/ui/assets/channel-D6_nUWlW.js +0 -1
- package/dist/ui/assets/chunk-55IACEB6-ByzqIgSb.js +0 -1
- package/dist/ui/assets/chunk-ABZYJK2D-BJcrryHK.js.gz +0 -0
- package/dist/ui/assets/chunk-AGHRB4JF-DvxmfbM0.js.gz +0 -0
- package/dist/ui/assets/chunk-ATLVNIR6-DbeJ0OrR.js.gz +0 -0
- package/dist/ui/assets/chunk-B4BG7PRW-C53q2ggf.js.gz +0 -0
- package/dist/ui/assets/chunk-DI55MBZ5-vIyNEQN-.js.gz +0 -0
- package/dist/ui/assets/chunk-EXTU4WIE-B3ObkuOm.js +0 -1
- package/dist/ui/assets/chunk-HN2XXSSU-Dttqcg3b.js.gz +0 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-DbNDev3D.js +0 -11
- package/dist/ui/assets/chunk-JA3XYJ7Z-DbNDev3D.js.gz +0 -0
- package/dist/ui/assets/chunk-JZLCHNYA-EUmx2y4H.js.gz +0 -0
- package/dist/ui/assets/chunk-MI3HLSF2-65n9Mkyc.js.gz +0 -0
- package/dist/ui/assets/chunk-N4CR4FBY-mv5koXqW.js +0 -2
- package/dist/ui/assets/chunk-N4CR4FBY-mv5koXqW.js.gz +0 -0
- package/dist/ui/assets/chunk-QXUST7PY-BCYnMiS3.js.gz +0 -0
- package/dist/ui/assets/chunk-QZHKN3VN-HucAw4xW.js +0 -1
- package/dist/ui/assets/chunk-S3R3BYOJ-CWMEa9Dc.js +0 -2
- package/dist/ui/assets/chunk-S3R3BYOJ-CWMEa9Dc.js.gz +0 -0
- package/dist/ui/assets/chunk-TZMSLE5B-BuQUQcTr.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-CUT3rPTB.js +0 -1
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-CUT3rPTB.js +0 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-CnPB3ARO.js.gz +0 -0
- package/dist/ui/assets/dagre-6UL2VRFP-DhS-k_Se.js.gz +0 -0
- package/dist/ui/assets/dagre-KgLoHEuy.js.gz +0 -0
- package/dist/ui/assets/diagram-PSM6KHXK-BZg3MJmb.js +0 -24
- package/dist/ui/assets/diagram-PSM6KHXK-BZg3MJmb.js.gz +0 -0
- package/dist/ui/assets/diagram-QEK2KX5R-BPCitvbo.js.gz +0 -0
- package/dist/ui/assets/diagram-S2PKOQOG-NW4uK6sx.js.gz +0 -0
- package/dist/ui/assets/editor-CzFWIUw2.js +0 -39
- package/dist/ui/assets/editor-CzFWIUw2.js.gz +0 -0
- package/dist/ui/assets/emoji-Dkz4Zzv_.js +0 -3
- package/dist/ui/assets/emoji-Dkz4Zzv_.js.gz +0 -0
- package/dist/ui/assets/erDiagram-Q2GNP2WA-me1fboaf.js.gz +0 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-DzE8dGsh.js +0 -162
- package/dist/ui/assets/flowDiagram-NV44I4VS-DzE8dGsh.js.gz +0 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-CFQD09Mi.js +0 -267
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-CFQD09Mi.js.gz +0 -0
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CaVoxU4C.js +0 -65
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CaVoxU4C.js.gz +0 -0
- package/dist/ui/assets/index-BN5_Qq7R.js +0 -324
- package/dist/ui/assets/index-BN5_Qq7R.js.gz +0 -0
- package/dist/ui/assets/index-DxuPq13l.css.gz +0 -0
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CZF-2DHU.js.gz +0 -0
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-CfvJIOny.js.gz +0 -0
- package/dist/ui/assets/katex-CamJ39w1.js +0 -257
- package/dist/ui/assets/katex-CamJ39w1.js.gz +0 -0
- package/dist/ui/assets/linear-Daef-l29.js.gz +0 -0
- package/dist/ui/assets/mermaid-parser.core-CdK9QgYV.js.gz +0 -0
- package/dist/ui/assets/mermaid.core-D6GS9mU-.js +0 -11
- package/dist/ui/assets/mermaid.core-D6GS9mU-.js.gz +0 -0
- package/dist/ui/assets/message-SqLqNYcv.js +0 -36
- package/dist/ui/assets/message-SqLqNYcv.js.gz +0 -0
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-Cb3QMflX.js.gz +0 -0
- package/dist/ui/assets/particles-DsJFOarW.js.gz +0 -0
- package/dist/ui/assets/pieDiagram-ADFJNKIX-BxIwQWvw.js.gz +0 -0
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-B5HPe4ga.js.gz +0 -0
- package/dist/ui/assets/reactflow-Bf74ngoo.js +0 -2
- package/dist/ui/assets/reactflow-Bf74ngoo.js.gz +0 -0
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-YfI6llkX.js.gz +0 -0
- package/dist/ui/assets/sandpack-D7koO5op.js.gz +0 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DOk_B10B.js +0 -10
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DOk_B10B.js.gz +0 -0
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-DAe4Um17.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-CCesDu_C.js +0 -1
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-CCesDu_C.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-CMlIrsoO.js +0 -1
- package/dist/ui/assets/syntax-C-M-8jOU.js +0 -10
- package/dist/ui/assets/syntax-C-M-8jOU.js.gz +0 -0
- package/dist/ui/assets/theme-BQZdiqwv.js +0 -1
- package/dist/ui/assets/timeline-definition-IT6M3QCI-D6P5txjT.js.gz +0 -0
- package/dist/ui/assets/useUserLocalStorage-Ckb8HsIw.js.gz +0 -0
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-CsybjUbd.js.gz +0 -0
- /package/dist/cli/commands/{admin → local}/sync-unix.d.ts +0 -0
|
@@ -33,6 +33,7 @@ __export(gateway_exports, {
|
|
|
33
33
|
GitHubConnector: () => GitHubConnector,
|
|
34
34
|
SlackConnector: () => SlackConnector,
|
|
35
35
|
TeamsConnector: () => TeamsConnector,
|
|
36
|
+
buildSlackManifest: () => buildSlackManifest,
|
|
36
37
|
extractQuotedReplyText: () => extractQuotedReplyText,
|
|
37
38
|
formatGatewayContext: () => formatGatewayContext,
|
|
38
39
|
formatGatewayFollowUpRoutingMessage: () => formatGatewayFollowUpRoutingMessage,
|
|
@@ -42,11 +43,14 @@ __export(gateway_exports, {
|
|
|
42
43
|
formatGatewaySystemPayload: () => formatGatewaySystemPayload,
|
|
43
44
|
getConnector: () => getConnector,
|
|
44
45
|
hasConnector: () => hasConnector,
|
|
46
|
+
isChannelAllowedByWhitelist: () => isChannelAllowedByWhitelist,
|
|
45
47
|
markdownToMrkdwn: () => markdownToMrkdwn,
|
|
46
48
|
normalizeOutbound: () => normalizeOutbound,
|
|
47
49
|
parseGitHubThreadId: () => parseThreadId,
|
|
48
50
|
parseTeamsThreadId: () => parseThreadId3,
|
|
49
|
-
registerConnector: () => registerConnector
|
|
51
|
+
registerConnector: () => registerConnector,
|
|
52
|
+
requiredBotEvents: () => requiredBotEvents,
|
|
53
|
+
requiredBotScopes: () => requiredBotScopes
|
|
50
54
|
});
|
|
51
55
|
module.exports = __toCommonJS(gateway_exports);
|
|
52
56
|
|
|
@@ -429,6 +433,11 @@ function hasActiveMention2(text, mentionPattern) {
|
|
|
429
433
|
mentionPattern.lastIndex = 0;
|
|
430
434
|
return mentionPattern.test(stripped);
|
|
431
435
|
}
|
|
436
|
+
function slackTsToIso(ts) {
|
|
437
|
+
const seconds = Number(ts.split(".")[0]);
|
|
438
|
+
if (!Number.isFinite(seconds)) return (/* @__PURE__ */ new Date()).toISOString();
|
|
439
|
+
return new Date(seconds * 1e3).toISOString();
|
|
440
|
+
}
|
|
432
441
|
function segmentMarkdown(md) {
|
|
433
442
|
const lines = md.split(/\r?\n/);
|
|
434
443
|
const segments = [];
|
|
@@ -633,6 +642,64 @@ function extractSlackErrorCode(resultOrError) {
|
|
|
633
642
|
const candidate = resultOrError;
|
|
634
643
|
return candidate.data?.error ?? candidate.error;
|
|
635
644
|
}
|
|
645
|
+
function extractSlackErrorDetail(resultOrError) {
|
|
646
|
+
if (typeof resultOrError !== "object" || resultOrError === null) return {};
|
|
647
|
+
const candidate = resultOrError;
|
|
648
|
+
return {
|
|
649
|
+
code: candidate.data?.error ?? candidate.error ?? candidate.code,
|
|
650
|
+
needed: candidate.data?.needed ?? candidate.needed,
|
|
651
|
+
provided: candidate.data?.provided ?? candidate.provided,
|
|
652
|
+
retryAfter: candidate.retryAfter
|
|
653
|
+
};
|
|
654
|
+
}
|
|
655
|
+
var BOT_TOKEN_ERROR_REASONS = {
|
|
656
|
+
invalid_auth: "The bot token is invalid.",
|
|
657
|
+
account_inactive: "The bot token belongs to a deleted or deactivated account or workspace.",
|
|
658
|
+
token_revoked: "The bot token has been revoked.",
|
|
659
|
+
token_expired: "The bot token has expired.",
|
|
660
|
+
not_authed: "No bot token was provided.",
|
|
661
|
+
no_permission: "The bot token lacks permission to call auth.test."
|
|
662
|
+
};
|
|
663
|
+
var CHANNEL_ACCESS_ERROR_REASONS = {
|
|
664
|
+
not_in_channel: "The bot is not a member of this channel; invite it so it can read messages.",
|
|
665
|
+
channel_not_found: "The channel ID was not found, or the bot cannot see it.",
|
|
666
|
+
is_archived: "The channel is archived."
|
|
667
|
+
};
|
|
668
|
+
function buildTestFailure(capability, detail, reasons) {
|
|
669
|
+
const { code, needed, provided, retryAfter } = detail;
|
|
670
|
+
let reason;
|
|
671
|
+
if (code === "missing_scope") {
|
|
672
|
+
reason = needed ? `Slack reports a missing OAuth scope; add "${needed}".` : "Slack reports a missing OAuth scope.";
|
|
673
|
+
} else if (code === "ratelimited" || retryAfter != null) {
|
|
674
|
+
reason = retryAfter != null ? `Slack rate-limited the probe; retry after ${retryAfter}s. The probe did not retry.` : "Slack rate-limited the probe. The probe did not retry.";
|
|
675
|
+
} else if (code && reasons[code]) {
|
|
676
|
+
reason = reasons[code];
|
|
677
|
+
} else if (code) {
|
|
678
|
+
reason = `Slack returned error "${code}".`;
|
|
679
|
+
} else {
|
|
680
|
+
reason = "A network or unexpected error occurred while contacting Slack.";
|
|
681
|
+
}
|
|
682
|
+
const failure = { capability, reason };
|
|
683
|
+
if (code) failure.slackError = code;
|
|
684
|
+
if (needed) failure.needed = needed;
|
|
685
|
+
if (provided) failure.provided = provided;
|
|
686
|
+
return failure;
|
|
687
|
+
}
|
|
688
|
+
function normalizeAllowedChannelIds(raw) {
|
|
689
|
+
if (Array.isArray(raw)) return raw.filter((id) => typeof id === "string");
|
|
690
|
+
if (typeof raw === "string" && raw) return [raw];
|
|
691
|
+
return [];
|
|
692
|
+
}
|
|
693
|
+
var SLACK_NOT_VERIFIABLE = [
|
|
694
|
+
"Whether the bot token and app-level token belong to the same Slack app.",
|
|
695
|
+
"Whether the required Slack event subscriptions are installed and delivering events.",
|
|
696
|
+
"Whether the full set of required OAuth scopes is granted \u2014 only scopes exercised by the probed API calls are checked."
|
|
697
|
+
];
|
|
698
|
+
function isChannelAllowedByWhitelist(channelType, channelId, allowedChannelIds) {
|
|
699
|
+
if (channelType === "im") return true;
|
|
700
|
+
if (!allowedChannelIds || allowedChannelIds.length === 0) return true;
|
|
701
|
+
return !!channelId && allowedChannelIds.includes(channelId);
|
|
702
|
+
}
|
|
636
703
|
var SlackConnector = class _SlackConnector {
|
|
637
704
|
channelType = "slack";
|
|
638
705
|
web;
|
|
@@ -672,6 +739,122 @@ var SlackConnector = class _SlackConnector {
|
|
|
672
739
|
}
|
|
673
740
|
this.web = new import_web_api.WebClient(this.config.bot_token);
|
|
674
741
|
}
|
|
742
|
+
/**
|
|
743
|
+
* Build a Slack WebClient for an arbitrary token. Isolated so connection
|
|
744
|
+
* probes can construct a client for the app-level (`xapp-`) token, and so
|
|
745
|
+
* tests can stub the app-token client independently of `this.web`.
|
|
746
|
+
*/
|
|
747
|
+
createWebClient(token) {
|
|
748
|
+
return new import_web_api.WebClient(token);
|
|
749
|
+
}
|
|
750
|
+
/**
|
|
751
|
+
* Best-effort probe of the configured Slack credentials and reachability.
|
|
752
|
+
*
|
|
753
|
+
* Probes capabilities directly rather than diffing scope-header strings:
|
|
754
|
+
* - `auth.test()` with the bot token → team + bot identity.
|
|
755
|
+
* - `apps.connections.open()` with the app-level token → Socket Mode /
|
|
756
|
+
* `connections:write` validity.
|
|
757
|
+
* - `conversations.info` on the first whitelisted channel (when any) →
|
|
758
|
+
* channel reachability.
|
|
759
|
+
*
|
|
760
|
+
* Slack's `missing_scope` needed/provided detail and rate-limit `Retry-After`
|
|
761
|
+
* are surfaced verbatim. Never logs or returns token values.
|
|
762
|
+
*/
|
|
763
|
+
async testConnection() {
|
|
764
|
+
const failures = [];
|
|
765
|
+
const notVerifiable = [...SLACK_NOT_VERIFIABLE];
|
|
766
|
+
let team;
|
|
767
|
+
let bot;
|
|
768
|
+
let botTokenValid = false;
|
|
769
|
+
try {
|
|
770
|
+
const authTest = await this.web.auth.test();
|
|
771
|
+
if (authTest.ok) {
|
|
772
|
+
botTokenValid = true;
|
|
773
|
+
team = { id: authTest.team_id ?? "", name: authTest.team ?? "" };
|
|
774
|
+
bot = { userId: authTest.user_id ?? "", name: authTest.user ?? "" };
|
|
775
|
+
} else {
|
|
776
|
+
failures.push(
|
|
777
|
+
buildTestFailure("bot_token", extractSlackErrorDetail(authTest), BOT_TOKEN_ERROR_REASONS)
|
|
778
|
+
);
|
|
779
|
+
}
|
|
780
|
+
} catch (error) {
|
|
781
|
+
failures.push(
|
|
782
|
+
buildTestFailure("bot_token", extractSlackErrorDetail(error), BOT_TOKEN_ERROR_REASONS)
|
|
783
|
+
);
|
|
784
|
+
}
|
|
785
|
+
let appTokenValid;
|
|
786
|
+
const appToken = this.config.app_token;
|
|
787
|
+
if (!appToken) {
|
|
788
|
+
appTokenValid = false;
|
|
789
|
+
failures.push({
|
|
790
|
+
capability: "app_token",
|
|
791
|
+
reason: "No app-level token is configured; Socket Mode cannot connect to receive messages."
|
|
792
|
+
});
|
|
793
|
+
} else {
|
|
794
|
+
try {
|
|
795
|
+
const appClient = this.createWebClient(appToken);
|
|
796
|
+
const res = await appClient.apps.connections.open();
|
|
797
|
+
if (res.ok) {
|
|
798
|
+
appTokenValid = true;
|
|
799
|
+
} else {
|
|
800
|
+
appTokenValid = false;
|
|
801
|
+
failures.push(buildTestFailure("app_token", extractSlackErrorDetail(res), {}));
|
|
802
|
+
}
|
|
803
|
+
} catch (error) {
|
|
804
|
+
appTokenValid = false;
|
|
805
|
+
failures.push(buildTestFailure("app_token", extractSlackErrorDetail(error), {}));
|
|
806
|
+
}
|
|
807
|
+
}
|
|
808
|
+
let channelAccess;
|
|
809
|
+
const allowedChannelIds = normalizeAllowedChannelIds(this.config.allowed_channel_ids);
|
|
810
|
+
if (allowedChannelIds.length > 0) {
|
|
811
|
+
const channelId = allowedChannelIds[0];
|
|
812
|
+
let channelOk = false;
|
|
813
|
+
try {
|
|
814
|
+
const info = await this.web.conversations.info({ channel: channelId });
|
|
815
|
+
if (info.ok) {
|
|
816
|
+
channelOk = true;
|
|
817
|
+
} else {
|
|
818
|
+
failures.push(
|
|
819
|
+
buildTestFailure(
|
|
820
|
+
"channel_access",
|
|
821
|
+
extractSlackErrorDetail(info),
|
|
822
|
+
CHANNEL_ACCESS_ERROR_REASONS
|
|
823
|
+
)
|
|
824
|
+
);
|
|
825
|
+
}
|
|
826
|
+
} catch (error) {
|
|
827
|
+
failures.push(
|
|
828
|
+
buildTestFailure(
|
|
829
|
+
"channel_access",
|
|
830
|
+
extractSlackErrorDetail(error),
|
|
831
|
+
CHANNEL_ACCESS_ERROR_REASONS
|
|
832
|
+
)
|
|
833
|
+
);
|
|
834
|
+
}
|
|
835
|
+
channelAccess = [{ channelId, ok: channelOk }];
|
|
836
|
+
if (allowedChannelIds.length > 1) {
|
|
837
|
+
notVerifiable.push(
|
|
838
|
+
`Only the first of ${allowedChannelIds.length} configured channels was probed; the rest were not checked.`
|
|
839
|
+
);
|
|
840
|
+
}
|
|
841
|
+
} else {
|
|
842
|
+
notVerifiable.push(
|
|
843
|
+
"No channel whitelist is configured, so no specific channel reachability was verified."
|
|
844
|
+
);
|
|
845
|
+
}
|
|
846
|
+
const channelsOk = !channelAccess || channelAccess.some((c) => c.ok);
|
|
847
|
+
const ok = botTokenValid && appTokenValid && channelsOk && failures.length === 0;
|
|
848
|
+
return {
|
|
849
|
+
ok,
|
|
850
|
+
...team ? { team } : {},
|
|
851
|
+
...bot ? { bot } : {},
|
|
852
|
+
appTokenValid,
|
|
853
|
+
...channelAccess ? { channelAccess } : {},
|
|
854
|
+
failures,
|
|
855
|
+
notVerifiable
|
|
856
|
+
};
|
|
857
|
+
}
|
|
675
858
|
/**
|
|
676
859
|
* Look up a Slack user's email address by their user ID.
|
|
677
860
|
*
|
|
@@ -724,6 +907,33 @@ var SlackConnector = class _SlackConnector {
|
|
|
724
907
|
return { email: null, displayName: null };
|
|
725
908
|
}
|
|
726
909
|
}
|
|
910
|
+
/**
|
|
911
|
+
* Look up a Slack user by email and return display metadata including a
|
|
912
|
+
* high-resolution avatar URL. Used by Agor's admin-triggered user avatar
|
|
913
|
+
* sync. Prefer image_512 for crisp large/retina rendering, falling back to
|
|
914
|
+
* smaller Slack-provided variants.
|
|
915
|
+
*/
|
|
916
|
+
async lookupUserAvatarByEmail(email) {
|
|
917
|
+
const normalized = email.trim().toLowerCase();
|
|
918
|
+
if (!normalized) throw new Error("Slack user email is required");
|
|
919
|
+
const result = await this.web.users.lookupByEmail({ email: normalized }).catch((error) => {
|
|
920
|
+
if (extractSlackErrorCode(error) === "users_not_found") {
|
|
921
|
+
return null;
|
|
922
|
+
}
|
|
923
|
+
throw error;
|
|
924
|
+
});
|
|
925
|
+
if (!result?.ok || !result.user?.id) {
|
|
926
|
+
return null;
|
|
927
|
+
}
|
|
928
|
+
const profile = result.user.profile;
|
|
929
|
+
const avatarUrl = profile?.image_512 || profile?.image_original || profile?.image_1024 || profile?.image_192 || profile?.image_72 || profile?.image_48 || null;
|
|
930
|
+
return {
|
|
931
|
+
slackUserId: result.user.id,
|
|
932
|
+
email: profile?.email ?? normalized,
|
|
933
|
+
displayName: profile?.display_name || profile?.real_name || result.user.real_name || result.user.name || null,
|
|
934
|
+
avatarUrl
|
|
935
|
+
};
|
|
936
|
+
}
|
|
727
937
|
/**
|
|
728
938
|
* Look up a Slack channel's name by its ID.
|
|
729
939
|
*
|
|
@@ -935,6 +1145,170 @@ var SlackConnector = class _SlackConnector {
|
|
|
935
1145
|
}
|
|
936
1146
|
return result.ts;
|
|
937
1147
|
}
|
|
1148
|
+
/**
|
|
1149
|
+
* Send directly to a Slack channel or thread. Used for proactive outbound
|
|
1150
|
+
* emits where no gateway thread_session_map exists yet.
|
|
1151
|
+
*/
|
|
1152
|
+
async sendSlackMessage(req) {
|
|
1153
|
+
const blocks = req.blocks && req.blocks.length > 0 ? req.blocks : void 0;
|
|
1154
|
+
const send = (withBlocks) => this.web.chat.postMessage({
|
|
1155
|
+
channel: req.channel,
|
|
1156
|
+
text: req.text,
|
|
1157
|
+
...withBlocks && blocks ? { blocks } : {},
|
|
1158
|
+
...req.thread_ts ? { thread_ts: req.thread_ts } : {},
|
|
1159
|
+
unfurl_links: false,
|
|
1160
|
+
unfurl_media: false
|
|
1161
|
+
});
|
|
1162
|
+
let result;
|
|
1163
|
+
try {
|
|
1164
|
+
result = await send(true);
|
|
1165
|
+
} catch (err) {
|
|
1166
|
+
const code = extractSlackErrorCode(err);
|
|
1167
|
+
if (blocks && code && BLOCK_PAYLOAD_ERRORS.has(code)) {
|
|
1168
|
+
console.warn(`[slack] Block payload rejected (${code}); retrying direct send as text-only`);
|
|
1169
|
+
result = await send(false);
|
|
1170
|
+
} else {
|
|
1171
|
+
throw err;
|
|
1172
|
+
}
|
|
1173
|
+
}
|
|
1174
|
+
if (!result.ok || !result.ts) {
|
|
1175
|
+
const code = extractSlackErrorCode(result);
|
|
1176
|
+
if (blocks && code && BLOCK_PAYLOAD_ERRORS.has(code)) {
|
|
1177
|
+
const retry = await send(false);
|
|
1178
|
+
if (!retry.ok || !retry.ts) {
|
|
1179
|
+
throw new Error(`Slack API error: ${retry.error ?? "unknown error"}`);
|
|
1180
|
+
}
|
|
1181
|
+
result = retry;
|
|
1182
|
+
} else {
|
|
1183
|
+
throw new Error(`Slack API error: ${result.error ?? "unknown error"}`);
|
|
1184
|
+
}
|
|
1185
|
+
}
|
|
1186
|
+
const sentTs = result.ts;
|
|
1187
|
+
if (!sentTs) {
|
|
1188
|
+
throw new Error("Slack API error: missing message timestamp");
|
|
1189
|
+
}
|
|
1190
|
+
let permalink = null;
|
|
1191
|
+
try {
|
|
1192
|
+
const link = await this.web.chat.getPermalink({ channel: req.channel, message_ts: sentTs });
|
|
1193
|
+
permalink = link.ok ? link.permalink ?? null : null;
|
|
1194
|
+
} catch {
|
|
1195
|
+
permalink = null;
|
|
1196
|
+
}
|
|
1197
|
+
return {
|
|
1198
|
+
ts: sentTs,
|
|
1199
|
+
channel: req.channel,
|
|
1200
|
+
thread_ts: req.thread_ts ?? sentTs,
|
|
1201
|
+
permalink
|
|
1202
|
+
};
|
|
1203
|
+
}
|
|
1204
|
+
/** Resolve a Slack channel by its human name (with or without #). */
|
|
1205
|
+
async resolveChannelByName(name) {
|
|
1206
|
+
const normalized = name.replace(/^#/, "").trim().toLowerCase();
|
|
1207
|
+
if (!normalized) throw new Error("Slack channel name is required");
|
|
1208
|
+
let cursor;
|
|
1209
|
+
do {
|
|
1210
|
+
const result = await this.web.conversations.list({
|
|
1211
|
+
types: "public_channel,private_channel",
|
|
1212
|
+
limit: 1e3,
|
|
1213
|
+
...cursor ? { cursor } : {}
|
|
1214
|
+
});
|
|
1215
|
+
if (!result.ok) {
|
|
1216
|
+
throw new Error(`Slack API error: ${result.error ?? "unknown error"}`);
|
|
1217
|
+
}
|
|
1218
|
+
const channels = result.channels ?? [];
|
|
1219
|
+
const match = channels.find((channel) => {
|
|
1220
|
+
if (channel.is_archived) return false;
|
|
1221
|
+
return (channel.name_normalized ?? channel.name ?? "").toLowerCase() === normalized;
|
|
1222
|
+
});
|
|
1223
|
+
if (match?.id) {
|
|
1224
|
+
return { channel: match.id, name: match.name ?? normalized };
|
|
1225
|
+
}
|
|
1226
|
+
cursor = result.response_metadata?.next_cursor || void 0;
|
|
1227
|
+
} while (cursor);
|
|
1228
|
+
throw new Error(`Slack channel not found: #${normalized}`);
|
|
1229
|
+
}
|
|
1230
|
+
/** Resolve a Slack user email to a DM channel with that user. */
|
|
1231
|
+
async openDmByEmail(email) {
|
|
1232
|
+
const normalized = email.trim().toLowerCase();
|
|
1233
|
+
if (!normalized) throw new Error("Slack user email is required");
|
|
1234
|
+
const userResult = await this.web.users.lookupByEmail({ email: normalized });
|
|
1235
|
+
if (!userResult.ok || !userResult.user?.id) {
|
|
1236
|
+
throw new Error(`Slack user lookup failed: ${userResult.error ?? "user_not_found"}`);
|
|
1237
|
+
}
|
|
1238
|
+
const dmResult = await this.web.conversations.open({ users: userResult.user.id });
|
|
1239
|
+
if (!dmResult.ok || !dmResult.channel?.id) {
|
|
1240
|
+
throw new Error(`Slack DM open failed: ${dmResult.error ?? "unknown error"}`);
|
|
1241
|
+
}
|
|
1242
|
+
return { channel: dmResult.channel.id, user_id: userResult.user.id };
|
|
1243
|
+
}
|
|
1244
|
+
async fetchThreadHistory(req) {
|
|
1245
|
+
const { channel, thread_ts } = parseThreadId2(req.threadId);
|
|
1246
|
+
const requestedLimit = Math.min(Math.max(req.limit ?? 50, 1), 200);
|
|
1247
|
+
const messages = [];
|
|
1248
|
+
let cursor;
|
|
1249
|
+
let hasMore = false;
|
|
1250
|
+
do {
|
|
1251
|
+
const rawLimit = req.includeBotMessages ? requestedLimit : Math.min(Math.max(requestedLimit * 4, requestedLimit), 200);
|
|
1252
|
+
const result = await this.web.conversations.replies({
|
|
1253
|
+
channel,
|
|
1254
|
+
ts: thread_ts,
|
|
1255
|
+
limit: rawLimit,
|
|
1256
|
+
...cursor ? { cursor } : {},
|
|
1257
|
+
...req.oldestTs ? { oldest: req.oldestTs } : {},
|
|
1258
|
+
...req.latestTs ? { latest: req.latestTs } : {},
|
|
1259
|
+
...req.inclusive !== void 0 ? { inclusive: req.inclusive } : {}
|
|
1260
|
+
});
|
|
1261
|
+
if (!result.ok) {
|
|
1262
|
+
throw new Error(`Slack thread history error: ${result.error ?? "unknown error"}`);
|
|
1263
|
+
}
|
|
1264
|
+
const rawMessages = result.messages ?? [];
|
|
1265
|
+
let stoppedAtRequestedLimitWithMoreRaw = false;
|
|
1266
|
+
for (let i = 0; i < rawMessages.length; i++) {
|
|
1267
|
+
const raw = rawMessages[i];
|
|
1268
|
+
if (!raw) continue;
|
|
1269
|
+
const ts = typeof raw.ts === "string" ? raw.ts : void 0;
|
|
1270
|
+
if (!ts) continue;
|
|
1271
|
+
const botId = typeof raw.bot_id === "string" ? raw.bot_id : void 0;
|
|
1272
|
+
const subtype = typeof raw.subtype === "string" ? raw.subtype : void 0;
|
|
1273
|
+
const isBot = !!botId || subtype === "bot_message";
|
|
1274
|
+
if (isBot && !req.includeBotMessages) continue;
|
|
1275
|
+
const userId = typeof raw.user === "string" ? raw.user : void 0;
|
|
1276
|
+
let userName;
|
|
1277
|
+
if (userId) {
|
|
1278
|
+
const profile = await this.lookupUserProfile(userId);
|
|
1279
|
+
userName = profile.displayName ?? void 0;
|
|
1280
|
+
}
|
|
1281
|
+
const botProfile = raw.bot_profile;
|
|
1282
|
+
const botName = typeof botProfile?.name === "string" ? botProfile.name : typeof raw.username === "string" ? raw.username : void 0;
|
|
1283
|
+
const actorLabel = userName ?? botName ?? userId ?? botId ?? "unknown";
|
|
1284
|
+
const text = typeof raw.text === "string" ? raw.text : "";
|
|
1285
|
+
messages.push({
|
|
1286
|
+
ts,
|
|
1287
|
+
iso_time: slackTsToIso(ts),
|
|
1288
|
+
...userId ? { user_id: userId } : {},
|
|
1289
|
+
...userName ? { user_name: userName } : {},
|
|
1290
|
+
actor_label: actorLabel,
|
|
1291
|
+
text,
|
|
1292
|
+
is_bot: isBot,
|
|
1293
|
+
is_trigger: req.triggerTs === ts,
|
|
1294
|
+
is_mention: this.botUserId ? text.includes(`<@${this.botUserId}>`) : false
|
|
1295
|
+
});
|
|
1296
|
+
if (messages.length >= requestedLimit) {
|
|
1297
|
+
stoppedAtRequestedLimitWithMoreRaw = i < rawMessages.length - 1;
|
|
1298
|
+
break;
|
|
1299
|
+
}
|
|
1300
|
+
}
|
|
1301
|
+
cursor = result.response_metadata?.next_cursor || void 0;
|
|
1302
|
+
hasMore = result.has_more === true || !!cursor || stoppedAtRequestedLimitWithMoreRaw;
|
|
1303
|
+
} while (!req.includeBotMessages && messages.length < requestedLimit && cursor);
|
|
1304
|
+
return {
|
|
1305
|
+
threadId: req.threadId,
|
|
1306
|
+
channel,
|
|
1307
|
+
thread_ts,
|
|
1308
|
+
messages: messages.slice(0, requestedLimit),
|
|
1309
|
+
has_more: hasMore
|
|
1310
|
+
};
|
|
1311
|
+
}
|
|
938
1312
|
async startStream(req) {
|
|
939
1313
|
const { channel, thread_ts } = parseThreadId2(req.threadId);
|
|
940
1314
|
const chat = this.web.chat;
|
|
@@ -1007,7 +1381,7 @@ var SlackConnector = class _SlackConnector {
|
|
|
1007
1381
|
* - Public channels (if enable_channels = true)
|
|
1008
1382
|
* - Private channels (if enable_groups = true)
|
|
1009
1383
|
* - Group DMs (if enable_mpim = true)
|
|
1010
|
-
* -
|
|
1384
|
+
* - Explicit mention requirement for channel-like conversations
|
|
1011
1385
|
* - Channel whitelist (if allowed_channel_ids is set)
|
|
1012
1386
|
*/
|
|
1013
1387
|
async startListening(callback) {
|
|
@@ -1033,8 +1407,7 @@ var SlackConnector = class _SlackConnector {
|
|
|
1033
1407
|
const enableChannels = this.config.enable_channels ?? false;
|
|
1034
1408
|
const enableGroups = this.config.enable_groups ?? false;
|
|
1035
1409
|
const enableMpim = this.config.enable_mpim ?? false;
|
|
1036
|
-
const requireMention =
|
|
1037
|
-
const allowThreadRepliesWithoutMention = this.config.allow_thread_replies_without_mention ?? true;
|
|
1410
|
+
const requireMention = true;
|
|
1038
1411
|
let allowedChannelIds;
|
|
1039
1412
|
if (this.config.allowed_channel_ids) {
|
|
1040
1413
|
if (Array.isArray(this.config.allowed_channel_ids)) {
|
|
@@ -1101,22 +1474,29 @@ var SlackConnector = class _SlackConnector {
|
|
|
1101
1474
|
}
|
|
1102
1475
|
const channelType = event.channel ? await this.resolveChannelType(event.channel, event.channel_type) : void 0;
|
|
1103
1476
|
const isThreadReply = !!event.thread_ts;
|
|
1104
|
-
const
|
|
1105
|
-
if (
|
|
1477
|
+
const isChannelLikeMessage = channelType === "channel" || channelType === "group" || channelType === "mpim";
|
|
1478
|
+
if (isChannelLikeMessage && eventType !== "app_mention") {
|
|
1479
|
+
console.debug(
|
|
1480
|
+
`[slack] Skipping non-app_mention event in channel-like conversation type=${eventType} channel=${event.channel} ts=${event.ts}`
|
|
1481
|
+
);
|
|
1482
|
+
return;
|
|
1483
|
+
}
|
|
1484
|
+
if (isChannelLikeMessage && !botMentionPattern) {
|
|
1106
1485
|
if (eventType === "message" && requireMention) {
|
|
1107
1486
|
return;
|
|
1108
1487
|
}
|
|
1109
|
-
if (eventType === "app_mention" && !requireMention) {
|
|
1110
|
-
return;
|
|
1111
|
-
}
|
|
1112
1488
|
}
|
|
1113
|
-
if (
|
|
1489
|
+
if (isChannelLikeMessage && botMentionPattern) {
|
|
1114
1490
|
const mentionOutsideCodeBlock = hasActiveMention2(event.text ?? "", botMentionPattern);
|
|
1115
1491
|
if (eventType === "app_mention" && !mentionOutsideCodeBlock) {
|
|
1116
1492
|
return;
|
|
1117
1493
|
}
|
|
1118
1494
|
}
|
|
1119
|
-
if (!channelType
|
|
1495
|
+
if (!channelType) {
|
|
1496
|
+
console.warn(`[slack] Cannot determine channel_type for channel=${event.channel}`);
|
|
1497
|
+
return;
|
|
1498
|
+
}
|
|
1499
|
+
if (channelType === "im") {
|
|
1120
1500
|
} else if (channelType === "channel" && !enableChannels) {
|
|
1121
1501
|
return;
|
|
1122
1502
|
} else if (channelType === "group" && !enableGroups) {
|
|
@@ -1127,15 +1507,14 @@ var SlackConnector = class _SlackConnector {
|
|
|
1127
1507
|
console.warn(`[slack] Unknown channel_type="${channelType}"`);
|
|
1128
1508
|
return;
|
|
1129
1509
|
}
|
|
1130
|
-
if (
|
|
1131
|
-
|
|
1132
|
-
return;
|
|
1133
|
-
}
|
|
1510
|
+
if (!isChannelAllowedByWhitelist(channelType, event.channel, allowedChannelIds)) {
|
|
1511
|
+
return;
|
|
1134
1512
|
}
|
|
1135
1513
|
let messageText = event.text ?? "";
|
|
1136
1514
|
let hasMention = false;
|
|
1137
|
-
|
|
1138
|
-
|
|
1515
|
+
const allowedViaThreadReplyException = false;
|
|
1516
|
+
const requiresExplicitMention = channelType !== "im";
|
|
1517
|
+
if (requireMention && requiresExplicitMention) {
|
|
1139
1518
|
if (!botMentionPattern || !botMentionReplacePattern) {
|
|
1140
1519
|
if (eventType === "app_mention") {
|
|
1141
1520
|
hasMention = true;
|
|
@@ -1148,15 +1527,14 @@ var SlackConnector = class _SlackConnector {
|
|
|
1148
1527
|
} else {
|
|
1149
1528
|
hasMention = hasActiveMention2(messageText, botMentionPattern);
|
|
1150
1529
|
if (!hasMention) {
|
|
1151
|
-
|
|
1152
|
-
allowedViaThreadReplyException = true;
|
|
1153
|
-
} else {
|
|
1154
|
-
return;
|
|
1155
|
-
}
|
|
1156
|
-
}
|
|
1157
|
-
if (hasMention) {
|
|
1158
|
-
messageText = messageText.replace(botMentionReplacePattern, "").trim();
|
|
1530
|
+
return;
|
|
1159
1531
|
}
|
|
1532
|
+
messageText = messageText.replace(botMentionReplacePattern, "").trim();
|
|
1533
|
+
}
|
|
1534
|
+
} else if (botMentionPattern && botMentionReplacePattern) {
|
|
1535
|
+
hasMention = hasActiveMention2(messageText, botMentionPattern);
|
|
1536
|
+
if (hasMention) {
|
|
1537
|
+
messageText = messageText.replace(botMentionReplacePattern, "").trim();
|
|
1160
1538
|
}
|
|
1161
1539
|
}
|
|
1162
1540
|
if (!this.shouldProcessInboundEventOnce(event.channel, event.ts)) {
|
|
@@ -1191,6 +1569,12 @@ var SlackConnector = class _SlackConnector {
|
|
|
1191
1569
|
...event.user ? { slack_user_id: event.user } : {},
|
|
1192
1570
|
...slackTeamId ? { slack_team_id: slackTeamId } : {},
|
|
1193
1571
|
requires_mapping_verification: allowedViaThreadReplyException,
|
|
1572
|
+
...this.botUserId ? { slack_bot_user_id: this.botUserId } : {},
|
|
1573
|
+
...typeof event.ts === "string" ? { slack_message_ts: event.ts } : {},
|
|
1574
|
+
...typeof event.thread_ts === "string" ? { slack_thread_ts: event.thread_ts } : typeof event.ts === "string" ? { slack_thread_ts: event.ts } : {},
|
|
1575
|
+
slack_is_thread_reply: isThreadReply,
|
|
1576
|
+
slack_has_mention: hasMention,
|
|
1577
|
+
slack_event_type: eventType,
|
|
1194
1578
|
...slackUserEmail ? { slack_user_email: slackUserEmail } : {},
|
|
1195
1579
|
...slackUserDisplayName ? { slack_user_name: slackUserDisplayName } : {},
|
|
1196
1580
|
...slackChannelName ? { slack_channel_name: slackChannelName } : {},
|
|
@@ -1535,6 +1919,83 @@ function hasConnector(channelType) {
|
|
|
1535
1919
|
return connectors.has(channelType);
|
|
1536
1920
|
}
|
|
1537
1921
|
|
|
1922
|
+
// src/gateway/connectors/slack-manifest.ts
|
|
1923
|
+
function hasChannelLikeSurface(opts) {
|
|
1924
|
+
return opts.publicChannels || opts.privateChannels || opts.groupDms;
|
|
1925
|
+
}
|
|
1926
|
+
function sortedUnique(values) {
|
|
1927
|
+
return [...new Set(values)].sort();
|
|
1928
|
+
}
|
|
1929
|
+
function requiredBotScopes(opts) {
|
|
1930
|
+
const scopes = ["chat:write", "im:history", "im:read", "users:read"];
|
|
1931
|
+
if (hasChannelLikeSurface(opts)) {
|
|
1932
|
+
scopes.push("app_mentions:read");
|
|
1933
|
+
}
|
|
1934
|
+
if (opts.publicChannels) {
|
|
1935
|
+
scopes.push("channels:history", "channels:read");
|
|
1936
|
+
}
|
|
1937
|
+
if (opts.privateChannels) {
|
|
1938
|
+
scopes.push("groups:history", "groups:read");
|
|
1939
|
+
}
|
|
1940
|
+
if (opts.groupDms) {
|
|
1941
|
+
scopes.push("mpim:history", "mpim:read");
|
|
1942
|
+
}
|
|
1943
|
+
if (opts.alignUsers) {
|
|
1944
|
+
scopes.push("users:read.email");
|
|
1945
|
+
}
|
|
1946
|
+
if (opts.outbound) {
|
|
1947
|
+
scopes.push(
|
|
1948
|
+
"chat:write.public",
|
|
1949
|
+
"channels:read",
|
|
1950
|
+
"groups:read",
|
|
1951
|
+
"im:write",
|
|
1952
|
+
"users:read.email"
|
|
1953
|
+
);
|
|
1954
|
+
}
|
|
1955
|
+
return sortedUnique(scopes);
|
|
1956
|
+
}
|
|
1957
|
+
function requiredBotEvents(opts) {
|
|
1958
|
+
const events = ["message.im"];
|
|
1959
|
+
if (hasChannelLikeSurface(opts)) {
|
|
1960
|
+
events.push("app_mention");
|
|
1961
|
+
}
|
|
1962
|
+
return sortedUnique(events);
|
|
1963
|
+
}
|
|
1964
|
+
function buildSlackManifest(opts) {
|
|
1965
|
+
return {
|
|
1966
|
+
display_information: {
|
|
1967
|
+
name: opts.appName
|
|
1968
|
+
},
|
|
1969
|
+
features: {
|
|
1970
|
+
bot_user: {
|
|
1971
|
+
display_name: opts.botDisplayName ?? opts.appName,
|
|
1972
|
+
always_online: true
|
|
1973
|
+
},
|
|
1974
|
+
app_home: {
|
|
1975
|
+
messages_tab_enabled: true,
|
|
1976
|
+
messages_tab_read_only_enabled: false,
|
|
1977
|
+
home_tab_enabled: false
|
|
1978
|
+
}
|
|
1979
|
+
},
|
|
1980
|
+
oauth_config: {
|
|
1981
|
+
scopes: {
|
|
1982
|
+
bot: requiredBotScopes(opts)
|
|
1983
|
+
}
|
|
1984
|
+
},
|
|
1985
|
+
settings: {
|
|
1986
|
+
event_subscriptions: {
|
|
1987
|
+
bot_events: requiredBotEvents(opts)
|
|
1988
|
+
},
|
|
1989
|
+
interactivity: {
|
|
1990
|
+
is_enabled: false
|
|
1991
|
+
},
|
|
1992
|
+
org_deploy_enabled: false,
|
|
1993
|
+
socket_mode_enabled: true,
|
|
1994
|
+
token_rotation_enabled: false
|
|
1995
|
+
}
|
|
1996
|
+
};
|
|
1997
|
+
}
|
|
1998
|
+
|
|
1538
1999
|
// src/gateway/context.ts
|
|
1539
2000
|
var PLATFORM_LABELS = {
|
|
1540
2001
|
slack: "Slack",
|
|
@@ -1594,15 +2055,16 @@ function formatGatewayMarkdownSessionReference(sessionId, sessionUrl) {
|
|
|
1594
2055
|
return sessionUrl ? `[session](${sessionUrl})` : `session ${shortId(sessionId)}`;
|
|
1595
2056
|
}
|
|
1596
2057
|
function formatGatewaySessionCreatedMessage(sessionId, sessionUrl) {
|
|
1597
|
-
return sessionUrl ? `Session created: ${sessionUrl}` : `Session ${shortId(sessionId)} created, sending prompt to agent
|
|
2058
|
+
return sessionUrl ? `Session created: ${sessionUrl}` : `Session ${shortId(sessionId)} created, sending prompt to agent.`;
|
|
1598
2059
|
}
|
|
1599
2060
|
function formatGatewayFollowUpRoutingMessage(sessionId, sessionUrl) {
|
|
1600
|
-
return `
|
|
2061
|
+
return `Mention received \u2014 routing to ${formatGatewayMarkdownSessionReference(sessionId, sessionUrl)}.`;
|
|
1601
2062
|
}
|
|
1602
2063
|
function formatGatewaySystemMessage(channelType, text) {
|
|
1603
2064
|
const sessionCreatedMatch = text.match(/^Session created: (https?:\/\/\S+)$/);
|
|
2065
|
+
const slackMentionGuidance = "Mention me again to follow up.";
|
|
1604
2066
|
if (channelType === "slack") {
|
|
1605
|
-
const markdown = sessionCreatedMatch ? `${GATEWAY_SYSTEM_PREFIX} Session created: [View session](${sessionCreatedMatch[1]})` : `${GATEWAY_SYSTEM_PREFIX} ${text}`;
|
|
2067
|
+
const markdown = sessionCreatedMatch ? `${GATEWAY_SYSTEM_PREFIX} Session created: [View session](${sessionCreatedMatch[1]}). ${slackMentionGuidance}` : text.startsWith("Session ") && text.includes(" created, sending prompt to agent.") ? `${GATEWAY_SYSTEM_PREFIX} ${text} ${slackMentionGuidance}` : text.startsWith("Mention received") ? `${GATEWAY_SYSTEM_PREFIX} ${text} ${slackMentionGuidance}` : `${GATEWAY_SYSTEM_PREFIX} ${text}`;
|
|
1606
2068
|
return markdownToMrkdwn(markdown);
|
|
1607
2069
|
}
|
|
1608
2070
|
return `${GATEWAY_SYSTEM_PREFIX} ${text}`;
|
|
@@ -1632,6 +2094,7 @@ function formatGatewaySystemPayload(channelType, text) {
|
|
|
1632
2094
|
GitHubConnector,
|
|
1633
2095
|
SlackConnector,
|
|
1634
2096
|
TeamsConnector,
|
|
2097
|
+
buildSlackManifest,
|
|
1635
2098
|
extractQuotedReplyText,
|
|
1636
2099
|
formatGatewayContext,
|
|
1637
2100
|
formatGatewayFollowUpRoutingMessage,
|
|
@@ -1641,9 +2104,12 @@ function formatGatewaySystemPayload(channelType, text) {
|
|
|
1641
2104
|
formatGatewaySystemPayload,
|
|
1642
2105
|
getConnector,
|
|
1643
2106
|
hasConnector,
|
|
2107
|
+
isChannelAllowedByWhitelist,
|
|
1644
2108
|
markdownToMrkdwn,
|
|
1645
2109
|
normalizeOutbound,
|
|
1646
2110
|
parseGitHubThreadId,
|
|
1647
2111
|
parseTeamsThreadId,
|
|
1648
|
-
registerConnector
|
|
2112
|
+
registerConnector,
|
|
2113
|
+
requiredBotEvents,
|
|
2114
|
+
requiredBotScopes
|
|
1649
2115
|
});
|
|
@@ -8,7 +8,10 @@ export type { GatewayConnector, InboundMessage, OutboundPayload } from './connec
|
|
|
8
8
|
export { normalizeOutbound } from './connector';
|
|
9
9
|
export { getConnector, hasConnector, registerConnector } from './connector-registry';
|
|
10
10
|
export { GitHubConnector, parseThreadId as parseGitHubThreadId } from './connectors/github';
|
|
11
|
-
export {
|
|
11
|
+
export type { SlackThreadHistoryMessage, SlackThreadHistoryRequest, SlackThreadHistoryResult, } from './connectors/slack';
|
|
12
|
+
export { isChannelAllowedByWhitelist, markdownToMrkdwn, SlackConnector, } from './connectors/slack';
|
|
13
|
+
export type { SlackAppManifest, SlackBotEventSubscriptions, SlackWizardOptions, } from './connectors/slack-manifest';
|
|
14
|
+
export { buildSlackManifest, requiredBotEvents, requiredBotScopes, } from './connectors/slack-manifest';
|
|
12
15
|
export { extractQuotedReplyText, parseThreadId as parseTeamsThreadId, TeamsConnector, } from './connectors/teams';
|
|
13
16
|
export type { GatewayContext } from './context';
|
|
14
17
|
export { formatGatewayContext } from './context';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gateway/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gateway/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC5F,YAAY,EACV,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,EAChB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,gBAAgB,EAChB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,aAAa,IAAI,kBAAkB,EACnC,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACL,mCAAmC,EACnC,qCAAqC,EACrC,kCAAkC,EAClC,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC"}
|