agor-live 0.22.0 → 0.23.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/admin/add-to-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/add-to-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/add-to-branch-group.js +133 -33
- package/dist/cli/commands/admin/create-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/create-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/create-branch-group.js +132 -38
- package/dist/cli/commands/admin/create-symlink.d.ts +2 -14
- package/dist/cli/commands/admin/create-symlink.d.ts.map +1 -1
- package/dist/cli/commands/admin/create-symlink.js +138 -61
- package/dist/cli/commands/admin/delete-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/delete-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/delete-branch-group.js +132 -28
- package/dist/cli/commands/admin/delete-user.d.ts +2 -13
- package/dist/cli/commands/admin/delete-user.d.ts.map +1 -1
- package/dist/cli/commands/admin/delete-user.js +132 -38
- package/dist/cli/commands/admin/ensure-user.d.ts +2 -14
- package/dist/cli/commands/admin/ensure-user.d.ts.map +1 -1
- package/dist/cli/commands/admin/ensure-user.js +131 -46
- package/dist/cli/commands/admin/remove-from-branch-group.d.ts +2 -13
- package/dist/cli/commands/admin/remove-from-branch-group.d.ts.map +1 -1
- package/dist/cli/commands/admin/remove-from-branch-group.js +133 -33
- package/dist/cli/commands/admin/remove-symlink.d.ts +2 -14
- package/dist/cli/commands/admin/remove-symlink.d.ts.map +1 -1
- package/dist/cli/commands/admin/remove-symlink.js +136 -49
- package/dist/cli/commands/admin/scrub-git-remotes.d.ts +2 -2
- package/dist/cli/commands/admin/scrub-git-remotes.d.ts.map +1 -1
- package/dist/cli/commands/admin/scrub-git-remotes.js +128 -86
- package/dist/cli/commands/admin/sync-user-symlinks.d.ts +2 -14
- package/dist/cli/commands/admin/sync-user-symlinks.d.ts.map +1 -1
- package/dist/cli/commands/admin/sync-user-symlinks.js +132 -43
- package/dist/cli/commands/auth/whoami.d.ts.map +1 -1
- package/dist/cli/commands/auth/whoami.js +2 -1
- package/dist/cli/commands/branch/env/request.test.d.ts +2 -0
- package/dist/cli/commands/branch/env/request.test.d.ts.map +1 -0
- package/dist/cli/commands/branch/env/request.test.js +17723 -0
- package/dist/cli/commands/branch/env/restart.d.ts.map +1 -1
- package/dist/cli/commands/branch/env/restart.js +7 -1
- package/dist/cli/commands/branch/env/start.d.ts.map +1 -1
- package/dist/cli/commands/branch/env/start.js +7 -1
- package/dist/cli/commands/branch/env/stop.d.ts.map +1 -1
- package/dist/cli/commands/branch/env/stop.js +7 -1
- package/dist/cli/commands/daemon/status.d.ts.map +1 -1
- package/dist/cli/commands/daemon/status.js +2 -1
- package/dist/cli/commands/init.d.ts +6 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +140 -2
- package/dist/cli/commands/local/add-to-branch-group.d.ts +13 -0
- package/dist/cli/commands/local/add-to-branch-group.d.ts.map +1 -0
- package/dist/cli/commands/local/add-to-branch-group.js +37 -0
- package/dist/cli/commands/local/create-branch-group.d.ts +12 -0
- package/dist/cli/commands/local/create-branch-group.d.ts.map +1 -0
- package/dist/cli/commands/local/create-branch-group.js +35 -0
- package/dist/cli/commands/local/create-symlink.d.ts +14 -0
- package/dist/cli/commands/local/create-symlink.d.ts.map +1 -0
- package/dist/cli/commands/local/create-symlink.js +45 -0
- package/dist/cli/commands/{daemon → local/daemon}/sync.d.ts +1 -1
- package/dist/cli/commands/local/daemon/sync.d.ts.map +1 -0
- package/dist/cli/commands/{daemon → local/daemon}/sync.js +7 -6
- package/dist/cli/commands/local/delete-branch-group.d.ts +12 -0
- package/dist/cli/commands/local/delete-branch-group.d.ts.map +1 -0
- package/dist/cli/commands/local/delete-branch-group.js +35 -0
- package/dist/cli/commands/local/delete-user.d.ts +12 -0
- package/dist/cli/commands/local/delete-user.d.ts.map +1 -0
- package/dist/cli/commands/local/delete-user.js +36 -0
- package/dist/cli/commands/local/ensure-user.d.ts +12 -0
- package/dist/cli/commands/local/ensure-user.d.ts.map +1 -0
- package/dist/cli/commands/local/ensure-user.js +41 -0
- package/dist/cli/commands/local/remove-from-branch-group.d.ts +13 -0
- package/dist/cli/commands/local/remove-from-branch-group.d.ts.map +1 -0
- package/dist/cli/commands/local/remove-from-branch-group.js +37 -0
- package/dist/cli/commands/local/remove-symlink.d.ts +13 -0
- package/dist/cli/commands/local/remove-symlink.d.ts.map +1 -0
- package/dist/cli/commands/local/remove-symlink.js +39 -0
- package/dist/cli/commands/local/scrub-git-remotes.d.ts +9 -0
- package/dist/cli/commands/local/scrub-git-remotes.d.ts.map +1 -0
- package/dist/cli/commands/local/scrub-git-remotes.js +23 -0
- package/dist/cli/commands/{admin → local}/sync-unix.d.ts.map +1 -1
- package/dist/cli/commands/{admin → local}/sync-unix.js +3 -3
- package/dist/cli/commands/local/sync-user-symlinks.d.ts +12 -0
- package/dist/cli/commands/local/sync-user-symlinks.d.ts.map +1 -0
- package/dist/cli/commands/local/sync-user-symlinks.js +37 -0
- package/dist/cli/commands/telemetry/index.d.ts +7 -0
- package/dist/cli/commands/telemetry/index.d.ts.map +1 -0
- package/dist/cli/commands/telemetry/index.js +40 -0
- package/dist/cli/commands/telemetry/off.d.ts +6 -0
- package/dist/cli/commands/telemetry/off.d.ts.map +1 -0
- package/dist/cli/commands/telemetry/off.js +35 -0
- package/dist/cli/commands/telemetry/on.d.ts +6 -0
- package/dist/cli/commands/telemetry/on.d.ts.map +1 -0
- package/dist/cli/commands/telemetry/on.js +37 -0
- package/dist/cli/commands/telemetry/test.d.ts +6 -0
- package/dist/cli/commands/telemetry/test.d.ts.map +1 -0
- package/dist/cli/commands/telemetry/test.js +56 -0
- package/dist/cli/commands/user/create-admin.d.ts.map +1 -1
- package/dist/cli/commands/user/create-admin.js +81 -72
- package/dist/cli/commands/user/list.d.ts.map +1 -1
- package/dist/cli/commands/user/list.js +1 -0
- package/dist/cli/commands/whoami.js +2 -1
- package/dist/cli/lib/branch-environment-action.d.ts +21 -0
- package/dist/cli/lib/branch-environment-action.d.ts.map +1 -0
- package/dist/cli/lib/branch-environment-action.js +8 -0
- package/dist/core/api/index.cjs +7 -2
- package/dist/core/api/index.d.ts +13 -4
- package/dist/core/api/index.d.ts.map +1 -1
- package/dist/core/api/index.js +7 -2
- package/dist/core/claude/index.cjs +518 -89
- package/dist/core/claude/index.js +515 -88
- package/dist/core/claude-cli/index.cjs +24 -0
- package/dist/core/claude-cli/index.js +24 -0
- package/dist/core/claude-cli/pricing.d.ts.map +1 -1
- package/dist/core/client/index.cjs +52 -7
- package/dist/core/client/index.js +48 -7
- package/dist/core/config/browser.cjs +3 -5
- package/dist/core/config/browser.js +3 -5
- package/dist/core/config/config-manager.d.ts +33 -13
- package/dist/core/config/config-manager.d.ts.map +1 -1
- package/dist/core/config/index.cjs +4259 -4527
- package/dist/core/config/index.d.ts +1 -0
- package/dist/core/config/index.d.ts.map +1 -1
- package/dist/core/config/index.js +4295 -4583
- package/dist/core/config/key-resolver.d.ts.map +1 -1
- package/dist/core/config/multitenancy.d.ts +33 -0
- package/dist/core/config/multitenancy.d.ts.map +1 -0
- package/dist/core/config/security-resolver.d.ts +1 -0
- package/dist/core/config/security-resolver.d.ts.map +1 -1
- package/dist/core/config/types.d.ts +67 -4
- package/dist/core/config/types.d.ts.map +1 -1
- package/dist/core/db/client.d.ts +34 -2
- package/dist/core/db/client.d.ts.map +1 -1
- package/dist/core/db/database-wrapper.d.ts.map +1 -1
- package/dist/core/db/first-run-bootstrap.d.ts.map +1 -1
- package/dist/core/db/index.cjs +2767 -1232
- package/dist/core/db/index.d.ts +2 -1
- package/dist/core/db/index.d.ts.map +1 -1
- package/dist/core/db/index.js +2601 -1094
- package/dist/core/db/migrate.d.ts.map +1 -1
- package/dist/core/db/repositories/artifacts.d.ts +27 -2
- package/dist/core/db/repositories/artifacts.d.ts.map +1 -1
- package/dist/core/db/repositories/base.d.ts +18 -0
- package/dist/core/db/repositories/base.d.ts.map +1 -1
- package/dist/core/db/repositories/board-comments.d.ts +17 -1
- package/dist/core/db/repositories/board-comments.d.ts.map +1 -1
- package/dist/core/db/repositories/board-objects.d.ts.map +1 -1
- package/dist/core/db/repositories/boards.d.ts +54 -3
- package/dist/core/db/repositories/boards.d.ts.map +1 -1
- package/dist/core/db/repositories/branch-access.d.ts +32 -0
- package/dist/core/db/repositories/branch-access.d.ts.map +1 -1
- package/dist/core/db/repositories/branches.d.ts +52 -2
- package/dist/core/db/repositories/branches.d.ts.map +1 -1
- package/dist/core/db/repositories/cards.d.ts +15 -1
- package/dist/core/db/repositories/cards.d.ts.map +1 -1
- package/dist/core/db/repositories/gateway-channels.d.ts +9 -0
- package/dist/core/db/repositories/gateway-channels.d.ts.map +1 -1
- package/dist/core/db/repositories/gateway-outbound-messages.d.ts +19 -0
- package/dist/core/db/repositories/gateway-outbound-messages.d.ts.map +1 -0
- package/dist/core/db/repositories/index.d.ts +2 -0
- package/dist/core/db/repositories/index.d.ts.map +1 -1
- package/dist/core/db/repositories/messages.d.ts +9 -2
- package/dist/core/db/repositories/messages.d.ts.map +1 -1
- package/dist/core/db/repositories/repos.d.ts.map +1 -1
- package/dist/core/db/repositories/schedules.d.ts +12 -1
- package/dist/core/db/repositories/schedules.d.ts.map +1 -1
- package/dist/core/db/repositories/sessions.d.ts +56 -5
- package/dist/core/db/repositories/sessions.d.ts.map +1 -1
- package/dist/core/db/repositories/tasks.d.ts +7 -2
- package/dist/core/db/repositories/tasks.d.ts.map +1 -1
- package/dist/core/db/repositories/user-api-keys.d.ts +10 -1
- package/dist/core/db/repositories/user-api-keys.d.ts.map +1 -1
- package/dist/core/db/repositories/users.d.ts +8 -8
- package/dist/core/db/repositories/users.d.ts.map +1 -1
- package/dist/core/db/schema.d.ts +1460 -38
- package/dist/core/db/schema.d.ts.map +1 -1
- package/dist/core/db/schema.postgres.d.ts +1082 -37
- package/dist/core/db/schema.postgres.d.ts.map +1 -1
- package/dist/core/db/schema.sqlite.d.ts +397 -1
- package/dist/core/db/schema.sqlite.d.ts.map +1 -1
- package/dist/core/db/tenant-context.d.ts +26 -0
- package/dist/core/db/tenant-context.d.ts.map +1 -0
- package/dist/core/db/tenant-scope.d.ts +31 -0
- package/dist/core/db/tenant-scope.d.ts.map +1 -0
- package/dist/core/db/user-utils.d.ts +2 -2
- package/dist/core/db/user-utils.d.ts.map +1 -1
- package/dist/core/drizzle/postgres/0052_gateway_outbound_messages.sql +45 -0
- package/dist/core/drizzle/postgres/0053_user_token_invalidation.sql +1 -0
- package/dist/core/drizzle/postgres/0054_app_level_multitenancy.sql +219 -0
- package/dist/core/drizzle/postgres/0055_app_level_multitenancy_rls.sql +411 -0
- package/dist/core/drizzle/postgres/0056_composite_indexes.sql +15 -0
- package/dist/core/drizzle/postgres/0057_message_timestamp_indexes.sql +3 -0
- package/dist/core/drizzle/postgres/meta/_journal.json +42 -0
- package/dist/core/drizzle/sqlite/0061_gateway_outbound_messages.sql +38 -0
- package/dist/core/drizzle/sqlite/0062_user_token_invalidation.sql +1 -0
- package/dist/core/drizzle/sqlite/0063_composite_indexes.sql +10 -0
- package/dist/core/drizzle/sqlite/0064_message_timestamp_indexes.sql +2 -0
- package/dist/core/drizzle/sqlite/meta/_journal.json +28 -0
- package/dist/core/environment/render-snapshot.cjs +7 -6
- package/dist/core/environment/render-snapshot.d.ts +2 -0
- package/dist/core/environment/render-snapshot.d.ts.map +1 -1
- package/dist/core/environment/render-snapshot.js +7 -6
- package/dist/core/environment/variable-resolver.cjs +3 -1
- package/dist/core/environment/variable-resolver.js +3 -1
- package/dist/core/environment/webhook.cjs +1 -4
- package/dist/core/environment/webhook.js +1 -4
- package/dist/core/gateway/connector.d.ts +10 -1
- package/dist/core/gateway/connector.d.ts.map +1 -1
- package/dist/core/gateway/connectors/slack-manifest.cjs +108 -0
- package/dist/core/gateway/connectors/slack-manifest.d.ts +85 -0
- package/dist/core/gateway/connectors/slack-manifest.d.ts.map +1 -0
- package/dist/core/gateway/connectors/slack-manifest.js +81 -0
- package/dist/core/gateway/connectors/slack.d.ts +101 -4
- package/dist/core/gateway/connectors/slack.d.ts.map +1 -1
- package/dist/core/gateway/index.cjs +495 -29
- package/dist/core/gateway/index.d.ts +4 -1
- package/dist/core/gateway/index.d.ts.map +1 -1
- package/dist/core/gateway/index.js +490 -28
- package/dist/core/gateway/system-message.d.ts.map +1 -1
- package/dist/core/git/exec.cjs +24 -0
- package/dist/core/git/exec.d.ts +6 -4
- package/dist/core/git/exec.d.ts.map +1 -1
- package/dist/core/git/exec.js +2 -0
- package/dist/core/git/index.cjs +3 -1363
- package/dist/core/git/index.d.ts +4 -614
- package/dist/core/git/index.d.ts.map +1 -1
- package/dist/core/git/index.js +1 -1304
- package/dist/core/git/pure.cjs +24 -0
- package/dist/core/git/pure.d.ts +2 -27
- package/dist/core/git/pure.d.ts.map +1 -1
- package/dist/core/git/pure.js +2 -0
- package/dist/core/index.cjs +11563 -10832
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +12203 -10962
- package/dist/core/lib/feathers-validation.cjs +9 -1
- package/dist/core/lib/feathers-validation.d.ts +2 -0
- package/dist/core/lib/feathers-validation.d.ts.map +1 -1
- package/dist/core/lib/feathers-validation.js +9 -1
- package/dist/core/local-actions/git-remotes.d.ts +7 -0
- package/dist/core/local-actions/git-remotes.d.ts.map +1 -0
- package/dist/core/local-actions/index.cjs +8008 -0
- package/dist/core/local-actions/index.d.ts +6 -0
- package/dist/core/local-actions/index.d.ts.map +1 -0
- package/dist/core/local-actions/index.js +8010 -0
- package/dist/core/local-actions/symlinks.d.ts +20 -0
- package/dist/core/local-actions/symlinks.d.ts.map +1 -0
- package/dist/core/local-actions/types.d.ts +14 -0
- package/dist/core/local-actions/types.d.ts.map +1 -0
- package/dist/core/local-actions/unix-groups.d.ts +16 -0
- package/dist/core/local-actions/unix-groups.d.ts.map +1 -0
- package/dist/core/local-actions/unix-users.d.ts +12 -0
- package/dist/core/local-actions/unix-users.d.ts.map +1 -0
- package/dist/core/mcp/index.cjs +373 -28
- package/dist/core/mcp/index.d.ts +1 -1
- package/dist/core/mcp/index.d.ts.map +1 -1
- package/dist/core/mcp/index.js +369 -27
- package/dist/core/mcp/template-patterns.d.ts +15 -0
- package/dist/core/mcp/template-patterns.d.ts.map +1 -0
- package/dist/core/mcp/template-resolver.d.ts +13 -0
- package/dist/core/mcp/template-resolver.d.ts.map +1 -1
- package/dist/core/models/browser.cjs +154 -25
- package/dist/core/models/browser.js +150 -25
- package/dist/core/models/claude.d.ts +2 -2
- package/dist/core/models/claude.d.ts.map +1 -1
- package/dist/core/models/codex.d.ts +205 -21
- package/dist/core/models/codex.d.ts.map +1 -1
- package/dist/core/models/index.cjs +154 -25
- package/dist/core/models/index.js +150 -25
- package/dist/core/package.json +24 -0
- package/dist/core/seed/demo-fixtures.d.ts +87 -0
- package/dist/core/seed/demo-fixtures.d.ts.map +1 -0
- package/dist/core/seed/dev-fixtures.d.ts.map +1 -1
- package/dist/core/seed/index.cjs +8569 -5519
- package/dist/core/seed/index.d.ts +1 -0
- package/dist/core/seed/index.d.ts.map +1 -1
- package/dist/core/seed/index.js +8580 -5535
- package/dist/core/sessions/index.cjs +110 -24
- package/dist/core/sessions/index.js +110 -24
- package/dist/core/telemetry/index.cjs +361 -0
- package/dist/core/telemetry/index.d.ts +5 -0
- package/dist/core/telemetry/index.d.ts.map +1 -0
- package/dist/core/telemetry/index.js +315 -0
- package/dist/core/telemetry/logger.d.ts +44 -0
- package/dist/core/telemetry/logger.d.ts.map +1 -0
- package/dist/core/telemetry/model-normalization.d.ts +3 -0
- package/dist/core/telemetry/model-normalization.d.ts.map +1 -0
- package/dist/core/telemetry/types.d.ts +47 -0
- package/dist/core/telemetry/types.d.ts.map +1 -0
- package/dist/core/telemetry/version.d.ts +9 -0
- package/dist/core/telemetry/version.d.ts.map +1 -0
- package/dist/core/templates/agor-system-prompt.md +1 -0
- package/dist/core/templates/handlebars-helpers.cjs +3 -1
- package/dist/core/templates/handlebars-helpers.d.ts +5 -0
- package/dist/core/templates/handlebars-helpers.d.ts.map +1 -1
- package/dist/core/templates/handlebars-helpers.js +3 -1
- package/dist/core/tools/mcp/auth-secrets.cjs +3460 -3
- package/dist/core/tools/mcp/auth-secrets.d.ts.map +1 -1
- package/dist/core/tools/mcp/auth-secrets.js +3477 -3
- package/dist/core/tools/mcp/http-headers.cjs +17 -1
- package/dist/core/tools/mcp/http-headers.d.ts.map +1 -1
- package/dist/core/tools/mcp/http-headers.js +15 -1
- package/dist/core/tools/mcp/oauth-refresh.cjs +568 -114
- package/dist/core/tools/mcp/oauth-refresh.js +566 -115
- package/dist/core/types/board.d.ts +14 -0
- package/dist/core/types/board.d.ts.map +1 -1
- package/dist/core/types/branch.d.ts +13 -0
- package/dist/core/types/branch.d.ts.map +1 -1
- package/dist/core/types/config-services.d.ts.map +1 -1
- package/dist/core/types/feathers.d.ts +6 -0
- package/dist/core/types/feathers.d.ts.map +1 -1
- package/dist/core/types/gateway.d.ts +90 -1
- package/dist/core/types/gateway.d.ts.map +1 -1
- package/dist/core/types/index.cjs +42 -0
- package/dist/core/types/index.d.ts +1 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js +38 -0
- package/dist/core/types/schedule.d.ts +4 -3
- package/dist/core/types/schedule.d.ts.map +1 -1
- package/dist/core/types/session.d.ts +7 -1
- package/dist/core/types/session.d.ts.map +1 -1
- package/dist/core/types/tenant.d.ts +15 -0
- package/dist/core/types/tenant.d.ts.map +1 -0
- package/dist/core/types/user.d.ts +61 -0
- package/dist/core/types/user.d.ts.map +1 -1
- package/dist/core/unix/index.cjs +1123 -674
- package/dist/core/unix/index.js +1071 -624
- package/dist/core/utils/emoji-shortcodes.d.ts +13 -0
- package/dist/core/utils/emoji-shortcodes.d.ts.map +1 -0
- package/dist/core/yaml/index.cjs +8 -8
- package/dist/core/yaml/index.d.ts +1 -1
- package/dist/core/yaml/index.d.ts.map +1 -1
- package/dist/core/yaml/index.js +7 -7
- package/dist/daemon/adapters/drizzle.d.ts +26 -4
- package/dist/daemon/adapters/drizzle.d.ts.map +1 -1
- package/dist/daemon/adapters/drizzle.js +68 -7
- package/dist/daemon/auth/api-key-strategy.js +1 -1
- package/dist/daemon/auth/executor-runtime-scope.d.ts.map +1 -1
- package/dist/daemon/auth/executor-runtime-scope.js +34 -6
- package/dist/daemon/auth/executor-session-token.d.ts +15 -0
- package/dist/daemon/auth/executor-session-token.d.ts.map +1 -0
- package/dist/daemon/auth/executor-session-token.js +17 -0
- package/dist/daemon/auth/issue-browser-tokens-hook.d.ts +24 -0
- package/dist/daemon/auth/issue-browser-tokens-hook.d.ts.map +1 -0
- package/dist/daemon/auth/issue-browser-tokens-hook.js +95 -0
- package/dist/daemon/auth/launch-auth.d.ts +5 -4
- package/dist/daemon/auth/launch-auth.d.ts.map +1 -1
- package/dist/daemon/auth/launch-auth.js +123 -39
- package/dist/daemon/auth/refresh-token-service.d.ts +22 -0
- package/dist/daemon/auth/refresh-token-service.d.ts.map +1 -0
- package/dist/daemon/auth/refresh-token-service.js +133 -0
- package/dist/daemon/auth/runtime-tokens.d.ts +3 -1
- package/dist/daemon/auth/runtime-tokens.d.ts.map +1 -1
- package/dist/daemon/auth/runtime-tokens.js +17 -4
- package/dist/daemon/auth/service-jwt-strategy.d.ts +2 -1
- package/dist/daemon/auth/service-jwt-strategy.d.ts.map +1 -1
- package/dist/daemon/auth/service-jwt-strategy.js +141 -3
- package/dist/daemon/auth/token-invalidation.d.ts +11 -0
- package/dist/daemon/auth/token-invalidation.d.ts.map +1 -0
- package/dist/daemon/auth/token-invalidation.js +38 -0
- package/dist/daemon/auth/user-redaction.d.ts +12 -0
- package/dist/daemon/auth/user-redaction.d.ts.map +1 -0
- package/dist/daemon/auth/user-redaction.js +13 -0
- package/dist/daemon/declarations.d.ts +5 -4
- package/dist/daemon/declarations.d.ts.map +1 -1
- package/dist/daemon/hooks/gateway-route.d.ts.map +1 -1
- package/dist/daemon/hooks/gateway-route.js +23 -13
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +8271 -2956
- package/dist/daemon/knowledge/pgvector.d.ts +3 -3
- package/dist/daemon/knowledge/pgvector.d.ts.map +1 -1
- package/dist/daemon/knowledge/pgvector.js +24 -0
- package/dist/daemon/knowledge/units.d.ts +2 -2
- package/dist/daemon/knowledge/units.d.ts.map +1 -1
- package/dist/daemon/main.js +8271 -2956
- package/dist/daemon/mcp/server.d.ts +3 -3
- package/dist/daemon/mcp/server.d.ts.map +1 -1
- package/dist/daemon/mcp/server.js +1740 -81
- package/dist/daemon/mcp/tokens.d.ts +2 -2
- package/dist/daemon/mcp/tokens.d.ts.map +1 -1
- package/dist/daemon/mcp/tokens.js +5 -1
- package/dist/daemon/mcp/tool-registry.d.ts.map +1 -1
- package/dist/daemon/mcp/tool-registry.js +1 -0
- package/dist/daemon/mcp/tools/analytics.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/analytics.js +598 -24
- package/dist/daemon/mcp/tools/artifacts.js +560 -20
- package/dist/daemon/mcp/tools/boards.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/boards.js +567 -21
- package/dist/daemon/mcp/tools/branches.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/branches.js +624 -50
- package/dist/daemon/mcp/tools/card-types.js +558 -18
- package/dist/daemon/mcp/tools/cards.js +558 -18
- package/dist/daemon/mcp/tools/environment.js +566 -18
- package/dist/daemon/mcp/tools/gateway-channels.d.ts +4 -0
- package/dist/daemon/mcp/tools/gateway-channels.d.ts.map +1 -0
- package/dist/daemon/mcp/tools/gateway-channels.js +16187 -0
- package/dist/daemon/mcp/tools/knowledge.js +558 -18
- package/dist/daemon/mcp/tools/mcp-servers.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/mcp-servers.js +893 -18
- package/dist/daemon/mcp/tools/messages.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/messages.js +618 -32
- package/dist/daemon/mcp/tools/proxies.js +568 -20
- package/dist/daemon/mcp/tools/repos.js +558 -18
- package/dist/daemon/mcp/tools/schedules.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/schedules.js +561 -19
- package/dist/daemon/mcp/tools/search.js +558 -18
- package/dist/daemon/mcp/tools/sessions.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/sessions.js +571 -24
- package/dist/daemon/mcp/tools/tasks.js +558 -18
- package/dist/daemon/mcp/tools/users.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/users.js +577 -23
- package/dist/daemon/mcp/tools/widgets.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/widgets.js +759 -83
- package/dist/daemon/oauth-auth-helpers.d.ts +35 -0
- package/dist/daemon/oauth-auth-helpers.d.ts.map +1 -0
- package/dist/daemon/oauth-auth-helpers.js +14 -0
- package/dist/daemon/register-hooks.d.ts +4 -2
- package/dist/daemon/register-hooks.d.ts.map +1 -1
- package/dist/daemon/register-hooks.js +1158 -595
- package/dist/daemon/register-routes.d.ts +3 -2
- package/dist/daemon/register-routes.d.ts.map +1 -1
- package/dist/daemon/register-routes.js +3161 -812
- package/dist/daemon/register-services.d.ts +2 -2
- package/dist/daemon/register-services.d.ts.map +1 -1
- package/dist/daemon/register-services.js +2782 -739
- package/dist/daemon/services/artifacts.d.ts +34 -6
- package/dist/daemon/services/artifacts.d.ts.map +1 -1
- package/dist/daemon/services/artifacts.js +109 -8
- package/dist/daemon/services/assistant-knowledge.d.ts +2 -2
- package/dist/daemon/services/assistant-knowledge.d.ts.map +1 -1
- package/dist/daemon/services/board-comments.d.ts +8 -5
- package/dist/daemon/services/board-comments.d.ts.map +1 -1
- package/dist/daemon/services/board-comments.js +78 -13
- package/dist/daemon/services/board-objects.d.ts +8 -5
- package/dist/daemon/services/board-objects.d.ts.map +1 -1
- package/dist/daemon/services/board-objects.js +14 -4
- package/dist/daemon/services/boards.d.ts +39 -5
- package/dist/daemon/services/boards.d.ts.map +1 -1
- package/dist/daemon/services/boards.js +123 -8
- package/dist/daemon/services/branch-owners.d.ts +3 -1
- package/dist/daemon/services/branch-owners.d.ts.map +1 -1
- package/dist/daemon/services/branch-owners.js +31 -4
- package/dist/daemon/services/branches.d.ts +31 -8
- package/dist/daemon/services/branches.d.ts.map +1 -1
- package/dist/daemon/services/branches.js +272 -36
- package/dist/daemon/services/card-types.d.ts +3 -3
- package/dist/daemon/services/card-types.d.ts.map +1 -1
- package/dist/daemon/services/card-types.js +68 -7
- package/dist/daemon/services/cards.d.ts +19 -4
- package/dist/daemon/services/cards.d.ts.map +1 -1
- package/dist/daemon/services/cards.js +92 -8
- package/dist/daemon/services/check-auth.d.ts +2 -2
- package/dist/daemon/services/check-auth.d.ts.map +1 -1
- package/dist/daemon/services/claude-cli-integration.d.ts +4 -1
- package/dist/daemon/services/claude-cli-integration.d.ts.map +1 -1
- package/dist/daemon/services/claude-cli-integration.js +117 -65
- package/dist/daemon/services/claude-models.d.ts +3 -3
- package/dist/daemon/services/claude-models.d.ts.map +1 -1
- package/dist/daemon/services/claude-models.js +387 -273
- package/dist/daemon/services/config.d.ts +12 -4
- package/dist/daemon/services/config.d.ts.map +1 -1
- package/dist/daemon/services/config.js +39 -3
- package/dist/daemon/services/copilot-models.d.ts +3 -3
- package/dist/daemon/services/copilot-models.d.ts.map +1 -1
- package/dist/daemon/services/cursor-models.d.ts +3 -3
- package/dist/daemon/services/cursor-models.d.ts.map +1 -1
- package/dist/daemon/services/files.d.ts +3 -3
- package/dist/daemon/services/files.d.ts.map +1 -1
- package/dist/daemon/services/files.js +24 -5
- package/dist/daemon/services/gateway-channels-test.d.ts +24 -0
- package/dist/daemon/services/gateway-channels-test.d.ts.map +1 -0
- package/dist/daemon/services/gateway-channels-test.js +66 -0
- package/dist/daemon/services/gateway-channels.d.ts +3 -3
- package/dist/daemon/services/gateway-channels.d.ts.map +1 -1
- package/dist/daemon/services/gateway-channels.js +68 -7
- package/dist/daemon/services/gateway.d.ts +63 -3
- package/dist/daemon/services/gateway.d.ts.map +1 -1
- package/dist/daemon/services/gateway.js +640 -60
- package/dist/daemon/services/github-app-setup.d.ts +3 -3
- package/dist/daemon/services/github-app-setup.d.ts.map +1 -1
- package/dist/daemon/services/groups.d.ts +5 -5
- package/dist/daemon/services/groups.d.ts.map +1 -1
- package/dist/daemon/services/health-monitor.d.ts +34 -2
- package/dist/daemon/services/health-monitor.d.ts.map +1 -1
- package/dist/daemon/services/health-monitor.js +155 -30
- package/dist/daemon/services/knowledge-document-edits.d.ts +3 -3
- package/dist/daemon/services/knowledge-document-edits.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-documents.d.ts +3 -3
- package/dist/daemon/services/knowledge-documents.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-documents.js +92 -7
- package/dist/daemon/services/knowledge-embedding-indexer.d.ts +7 -2
- package/dist/daemon/services/knowledge-embedding-indexer.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-embedding-indexer.js +37 -3
- package/dist/daemon/services/knowledge-graph.d.ts +3 -3
- package/dist/daemon/services/knowledge-graph.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-indexing.d.ts +3 -3
- package/dist/daemon/services/knowledge-indexing.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-namespaces.d.ts +3 -3
- package/dist/daemon/services/knowledge-namespaces.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-namespaces.js +72 -8
- package/dist/daemon/services/knowledge-reindex.d.ts +3 -3
- package/dist/daemon/services/knowledge-reindex.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-reindex.js +28 -1
- package/dist/daemon/services/knowledge-search.d.ts +3 -3
- package/dist/daemon/services/knowledge-search.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-settings.d.ts +3 -3
- package/dist/daemon/services/knowledge-settings.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-settings.js +24 -0
- package/dist/daemon/services/knowledge-versions.d.ts +3 -3
- package/dist/daemon/services/knowledge-versions.d.ts.map +1 -1
- package/dist/daemon/services/knowledge-versions.js +68 -7
- package/dist/daemon/services/leaderboard.d.ts +14 -6
- package/dist/daemon/services/leaderboard.d.ts.map +1 -1
- package/dist/daemon/services/leaderboard.js +74 -15
- package/dist/daemon/services/local-actions.d.ts +13 -0
- package/dist/daemon/services/local-actions.d.ts.map +1 -0
- package/dist/daemon/services/local-actions.js +120 -0
- package/dist/daemon/services/mcp-servers.d.ts +3 -3
- package/dist/daemon/services/mcp-servers.d.ts.map +1 -1
- package/dist/daemon/services/mcp-servers.js +68 -7
- package/dist/daemon/services/messages.d.ts +10 -6
- package/dist/daemon/services/messages.d.ts.map +1 -1
- package/dist/daemon/services/messages.js +87 -7
- package/dist/daemon/services/repos.d.ts +6 -6
- package/dist/daemon/services/repos.d.ts.map +1 -1
- package/dist/daemon/services/repos.js +131 -32
- package/dist/daemon/services/scheduler.d.ts +23 -27
- package/dist/daemon/services/scheduler.d.ts.map +1 -1
- package/dist/daemon/services/scheduler.js +55 -28
- package/dist/daemon/services/schedules.d.ts +3 -3
- package/dist/daemon/services/schedules.d.ts.map +1 -1
- package/dist/daemon/services/schedules.js +68 -7
- package/dist/daemon/services/session-env-selections.d.ts +3 -3
- package/dist/daemon/services/session-env-selections.d.ts.map +1 -1
- package/dist/daemon/services/session-mcp-servers.d.ts +3 -3
- package/dist/daemon/services/session-mcp-servers.d.ts.map +1 -1
- package/dist/daemon/services/session-streams.d.ts +29 -0
- package/dist/daemon/services/session-streams.d.ts.map +1 -0
- package/dist/daemon/services/session-streams.js +84 -0
- package/dist/daemon/services/session-token-service.d.ts.map +1 -1
- package/dist/daemon/services/session-token-service.js +11 -4
- package/dist/daemon/services/sessions.d.ts +9 -5
- package/dist/daemon/services/sessions.d.ts.map +1 -1
- package/dist/daemon/services/sessions.js +143 -10
- package/dist/daemon/services/tasks.d.ts +11 -5
- package/dist/daemon/services/tasks.d.ts.map +1 -1
- package/dist/daemon/services/tasks.js +199 -39
- package/dist/daemon/services/terminals.d.ts +21 -3
- package/dist/daemon/services/terminals.d.ts.map +1 -1
- package/dist/daemon/services/terminals.js +81 -25
- package/dist/daemon/services/thread-session-map.d.ts +3 -3
- package/dist/daemon/services/thread-session-map.d.ts.map +1 -1
- package/dist/daemon/services/thread-session-map.js +68 -7
- package/dist/daemon/services/user-avatar-sync.d.ts +21 -0
- package/dist/daemon/services/user-avatar-sync.d.ts.map +1 -0
- package/dist/daemon/services/user-avatar-sync.js +267 -0
- package/dist/daemon/services/users.d.ts +29 -9
- package/dist/daemon/services/users.d.ts.map +1 -1
- package/dist/daemon/services/users.js +383 -30
- package/dist/daemon/services/zone-trigger.d.ts.map +1 -1
- package/dist/daemon/services/zone-trigger.js +17 -4
- package/dist/daemon/setup/build-info.d.ts +1 -1
- package/dist/daemon/setup/build-info.d.ts.map +1 -1
- package/dist/daemon/setup/build-info.js +5 -1
- package/dist/daemon/setup/database.d.ts +8 -3
- package/dist/daemon/setup/database.d.ts.map +1 -1
- package/dist/daemon/setup/database.js +26 -6
- package/dist/daemon/setup/first-run-admin.d.ts +2 -2
- package/dist/daemon/setup/first-run-admin.d.ts.map +1 -1
- package/dist/daemon/setup/index.js +137 -25
- package/dist/daemon/setup/socketio.d.ts +10 -1
- package/dist/daemon/setup/socketio.d.ts.map +1 -1
- package/dist/daemon/setup/socketio.js +108 -18
- package/dist/daemon/startup.d.ts +13 -2
- package/dist/daemon/startup.d.ts.map +1 -1
- package/dist/daemon/startup.js +377 -94
- package/dist/daemon/utils/append-system-message.d.ts +2 -2
- package/dist/daemon/utils/append-system-message.d.ts.map +1 -1
- package/dist/daemon/utils/apply-session-config-defaults.d.ts.map +1 -1
- package/dist/daemon/utils/apply-session-config-defaults.js +12 -1
- package/dist/daemon/utils/authorization.d.ts +3 -1
- package/dist/daemon/utils/authorization.d.ts.map +1 -1
- package/dist/daemon/utils/authorization.js +36 -7
- package/dist/daemon/utils/branch-authorization.d.ts +30 -0
- package/dist/daemon/utils/branch-authorization.d.ts.map +1 -1
- package/dist/daemon/utils/branch-authorization.js +63 -5
- package/dist/daemon/utils/branch-inspect.d.ts +1 -0
- package/dist/daemon/utils/branch-inspect.d.ts.map +1 -1
- package/dist/daemon/utils/branch-inspect.js +11 -3
- package/dist/daemon/utils/emit-service-event.d.ts +56 -0
- package/dist/daemon/utils/emit-service-event.d.ts.map +1 -0
- package/dist/daemon/utils/emit-service-event.js +23 -0
- package/dist/daemon/utils/executor-read-impersonation.d.ts +2 -2
- package/dist/daemon/utils/executor-read-impersonation.d.ts.map +1 -1
- package/dist/daemon/utils/git-impersonation.d.ts +10 -10
- package/dist/daemon/utils/git-impersonation.d.ts.map +1 -1
- package/dist/daemon/utils/git-remote-credential-scan.d.ts +3 -3
- package/dist/daemon/utils/git-remote-credential-scan.d.ts.map +1 -1
- package/dist/daemon/utils/git-remote-credential-scan.js +6 -2
- package/dist/daemon/utils/mcp-header-secrets.d.ts +3 -5
- package/dist/daemon/utils/mcp-header-secrets.d.ts.map +1 -1
- package/dist/daemon/utils/mcp-header-secrets.js +31 -2
- package/dist/daemon/utils/mcp-token-authorization.d.ts +18 -13
- package/dist/daemon/utils/mcp-token-authorization.d.ts.map +1 -1
- package/dist/daemon/utils/mcp-token-authorization.js +11 -5
- package/dist/daemon/utils/open-source-telemetry-config.d.ts +6 -0
- package/dist/daemon/utils/open-source-telemetry-config.d.ts.map +1 -0
- package/dist/daemon/utils/open-source-telemetry-config.js +21 -0
- package/dist/daemon/utils/open-source-telemetry-heartbeat.d.ts +7 -0
- package/dist/daemon/utils/open-source-telemetry-heartbeat.d.ts.map +1 -0
- package/dist/daemon/utils/open-source-telemetry-heartbeat.js +15 -0
- package/dist/daemon/utils/open-source-telemetry-usage.d.ts +9 -0
- package/dist/daemon/utils/open-source-telemetry-usage.d.ts.map +1 -0
- package/dist/daemon/utils/open-source-telemetry-usage.js +121 -0
- package/dist/daemon/utils/realign-repo-origin.d.ts +3 -3
- package/dist/daemon/utils/realign-repo-origin.d.ts.map +1 -1
- package/dist/daemon/utils/realign-repo-origin.js +47 -16
- package/dist/daemon/utils/realtime-access-cache.d.ts +9 -0
- package/dist/daemon/utils/realtime-access-cache.d.ts.map +1 -1
- package/dist/daemon/utils/realtime-access-cache.js +24 -0
- package/dist/daemon/utils/realtime-publish.d.ts +26 -0
- package/dist/daemon/utils/realtime-publish.d.ts.map +1 -1
- package/dist/daemon/utils/realtime-publish.js +171 -12
- package/dist/daemon/utils/session-queue-tenant-scope.d.ts +24 -0
- package/dist/daemon/utils/session-queue-tenant-scope.d.ts.map +1 -0
- package/dist/daemon/utils/session-queue-tenant-scope.js +133 -0
- package/dist/daemon/utils/session-state-hooks.d.ts +3 -3
- package/dist/daemon/utils/session-state-hooks.d.ts.map +1 -1
- package/dist/daemon/utils/session-turn-lock.d.ts +8 -1
- package/dist/daemon/utils/session-turn-lock.d.ts.map +1 -1
- package/dist/daemon/utils/session-turn-lock.js +25 -2
- package/dist/daemon/utils/spawn-executor.d.ts +23 -1
- package/dist/daemon/utils/spawn-executor.d.ts.map +1 -1
- package/dist/daemon/utils/spawn-executor.js +34 -4
- package/dist/daemon/utils/tenant-db-scope.d.ts +20 -0
- package/dist/daemon/utils/tenant-db-scope.d.ts.map +1 -0
- package/dist/daemon/utils/tenant-db-scope.js +114 -0
- package/dist/daemon/utils/unix-group-init.d.ts +3 -3
- package/dist/daemon/utils/unix-group-init.d.ts.map +1 -1
- package/dist/daemon/utils/upload.d.ts +6 -9
- package/dist/daemon/utils/upload.d.ts.map +1 -1
- package/dist/daemon/utils/upload.js +30 -37
- package/dist/daemon/widgets/env-vars/index.d.ts +26 -1
- package/dist/daemon/widgets/env-vars/index.d.ts.map +1 -1
- package/dist/daemon/widgets/env-vars/index.js +145 -21
- package/dist/daemon/widgets/gateway-token/index.d.ts +114 -0
- package/dist/daemon/widgets/gateway-token/index.d.ts.map +1 -0
- package/dist/daemon/widgets/gateway-token/index.js +14711 -0
- package/dist/daemon/widgets/index.d.ts.map +1 -1
- package/dist/daemon/widgets/index.js +327 -37
- package/dist/daemon/widgets/registry.d.ts +7 -0
- package/dist/daemon/widgets/registry.d.ts.map +1 -1
- package/dist/daemon/widgets/submissions.js +12 -9
- package/dist/executor/commands/environment.d.ts.map +1 -1
- package/dist/executor/commands/environment.js +9 -5
- package/dist/executor/commands/git.d.ts.map +1 -1
- package/dist/executor/commands/git.js +3 -1
- package/dist/executor/db/feathers-repositories.d.ts +19 -1
- package/dist/executor/db/feathers-repositories.d.ts.map +1 -1
- package/dist/executor/db/feathers-repositories.js +31 -1
- package/dist/executor/git/index.d.ts +8 -0
- package/dist/executor/git/index.d.ts.map +1 -0
- package/dist/executor/git/index.js +7 -0
- package/dist/executor/handlers/sdk/base-executor.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/base-executor.js +4 -1
- package/dist/executor/handlers/sdk/claude.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/claude.js +1 -1
- package/dist/executor/handlers/sdk/codex.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/codex.js +1 -1
- package/dist/executor/handlers/sdk/copilot.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/copilot.js +1 -1
- package/dist/executor/handlers/sdk/cursor.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/cursor.js +1 -0
- package/dist/executor/handlers/sdk/gemini.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/gemini.js +1 -1
- package/dist/executor/handlers/sdk/git-safe-directory.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/git-safe-directory.js +1 -1
- package/dist/executor/handlers/sdk/opencode.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/opencode.js +1 -1
- package/dist/executor/payload-types.d.ts +5 -5
- package/dist/executor/sdk-handlers/base/diff-enrichment.js +1 -1
- package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts +8 -1
- package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/base/mcp-scoping.js +58 -6
- package/dist/executor/sdk-handlers/claude/claude-tool.d.ts +2 -2
- package/dist/executor/sdk-handlers/claude/claude-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/claude-tool.js +2 -2
- package/dist/executor/sdk-handlers/claude/prompt-service.d.ts +13 -3
- package/dist/executor/sdk-handlers/claude/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/prompt-service.js +16 -3
- package/dist/executor/sdk-handlers/claude/query-builder.d.ts +2 -1
- package/dist/executor/sdk-handlers/claude/query-builder.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/query-builder.js +2 -1
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +8 -12
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/codex-tool.js +14 -17
- package/dist/executor/sdk-handlers/codex/normalizer.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/normalizer.js +11 -1
- package/dist/executor/sdk-handlers/codex/pricing/litellm-openai-model-prices.json +3663 -0
- package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.d.ts +31 -0
- package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.d.ts.map +1 -0
- package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.js +46 -0
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts +3 -2
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/prompt-service.js +131 -12
- package/dist/executor/sdk-handlers/codex/usage.d.ts +14 -23
- package/dist/executor/sdk-handlers/codex/usage.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/usage.js +18 -33
- package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts +2 -2
- package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/copilot/copilot-tool.js +2 -2
- package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts +3 -2
- package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/copilot/prompt-service.js +4 -1
- package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts +2 -2
- package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/gemini/gemini-tool.js +2 -2
- package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts +3 -2
- package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/gemini/prompt-service.js +4 -1
- package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts +3 -2
- package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/opencode/opencode-tool.js +4 -1
- package/dist/executor/services/feathers-client.d.ts.map +1 -1
- package/dist/executor/services/feathers-client.js +124 -25
- package/dist/git/index.cjs +1101 -0
- package/dist/git/index.d.ts +533 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +1022 -0
- package/dist/git/package.json +21 -0
- package/dist/git/pure.cjs +185 -0
- package/dist/git/pure.d.ts +39 -0
- package/dist/git/pure.d.ts.map +1 -0
- package/dist/git/pure.js +139 -0
- package/dist/ui/assets/AgorEmojiPickerInner-leeNywMc.js +1 -0
- package/dist/ui/assets/App-Dpl4Cc0U.js +4 -0
- package/dist/ui/assets/App-Dpl4Cc0U.js.gz +0 -0
- package/dist/ui/assets/AppNode-wN3UZlFK.js +1 -0
- package/dist/ui/assets/AppNode-wN3UZlFK.js.gz +0 -0
- package/dist/ui/assets/ArtifactConsentModal-DjzXcP_L.js +1 -0
- package/dist/ui/assets/ArtifactConsentModal-DjzXcP_L.js.gz +0 -0
- package/dist/ui/assets/ArtifactFullscreenPage-B3b_EZ0F.js +9 -0
- package/dist/ui/assets/ArtifactFullscreenPage-B3b_EZ0F.js.gz +0 -0
- package/dist/ui/assets/ArtifactNode-DISy2T-6.js +9 -0
- package/dist/ui/assets/ArtifactNode-DISy2T-6.js.gz +0 -0
- package/dist/ui/assets/AutocompleteTextarea-DUpsoEGr.js +19 -0
- package/dist/ui/assets/AutocompleteTextarea-DUpsoEGr.js.gz +0 -0
- package/dist/ui/assets/BoardObjectNodes-BakeGpIX.js +34 -0
- package/dist/ui/assets/BoardObjectNodes-BakeGpIX.js.gz +0 -0
- package/dist/ui/assets/CodeEditor.inner-HmSdTLW5.js +7 -0
- package/dist/ui/assets/CodeEditor.inner-HmSdTLW5.js.gz +0 -0
- package/dist/ui/assets/ConversationView-mWaA-B1f.js +1 -0
- package/dist/ui/assets/ConversationView-mWaA-B1f.js.gz +0 -0
- package/dist/ui/assets/EmbeddedTerminal-NNoyPA81.js +2 -0
- package/dist/ui/assets/EmbeddedTerminal-NNoyPA81.js.gz +0 -0
- package/dist/ui/assets/KnowledgePage-CkxVnRvz.js +24 -0
- package/dist/ui/assets/KnowledgePage-CkxVnRvz.js.gz +0 -0
- package/dist/ui/assets/{MarketingScreenshotPage-zv5RUCuV.js → MarketingScreenshotPage-B86Gs8jx.js} +2 -2
- package/dist/ui/assets/MarketingScreenshotPage-B86Gs8jx.js.gz +0 -0
- package/dist/ui/assets/MobileApp-BPs-SXvz.js +1 -0
- package/dist/ui/assets/MobileApp-BPs-SXvz.js.gz +0 -0
- package/dist/ui/assets/{SessionCanvas-mEmYGZhC.css → SessionCanvas-Bh7Yg5dZ.css} +1 -1
- package/dist/ui/assets/SessionCanvas-Bh7Yg5dZ.css.gz +0 -0
- package/dist/ui/assets/SessionCanvas-xVfDoEtz.js +13 -0
- package/dist/ui/assets/SessionCanvas-xVfDoEtz.js.gz +0 -0
- package/dist/ui/assets/{StreamdownDemoPage-wzWaqWwr.js → StreamdownDemoPage-CvWLzVsv.js} +2 -2
- package/dist/ui/assets/StreamdownDemoPage-CvWLzVsv.js.gz +0 -0
- package/dist/ui/assets/TerminalModal-ExOgsuOP.js +2 -0
- package/dist/ui/assets/TerminalModal-ExOgsuOP.js.gz +0 -0
- package/dist/ui/assets/ThemeSwitcher-Cgyp5ruu.js +1 -0
- package/dist/ui/assets/ThemeSwitcher-Cgyp5ruu.js.gz +0 -0
- package/dist/ui/assets/ThemedSyntaxHighlighter.inner-rpCN9S6K.js +1 -0
- package/dist/ui/assets/{antd-CfbbHJOz.js → antd-BCqimh1J.js} +5 -5
- package/dist/ui/assets/{antd-CfbbHJOz.js.gz → antd-BCqimh1J.js.gz} +0 -0
- package/dist/ui/assets/architecture-U656AL7Q-BxSQIjrE.js +1 -0
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-pDpGHSqT.js +36 -0
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-pDpGHSqT.js.gz +0 -0
- package/dist/ui/assets/{blockDiagram-VD42YOAC-BhZaEN19.js → blockDiagram-VD42YOAC-uP8JTJpK.js} +4 -4
- package/dist/ui/assets/blockDiagram-VD42YOAC-uP8JTJpK.js.gz +0 -0
- package/dist/ui/assets/{c4Diagram-YG6GDRKO-Dk_UH-sY.js → c4Diagram-YG6GDRKO-qQe72Mm7.js} +2 -2
- package/dist/ui/assets/c4Diagram-YG6GDRKO-qQe72Mm7.js.gz +0 -0
- package/dist/ui/assets/channel-CoUBs6Zn.js +1 -0
- package/dist/ui/assets/{chunk-4BX2VUAB-XprbG2TG.js → chunk-4BX2VUAB-sz-YE8Nt.js} +1 -1
- package/dist/ui/assets/chunk-4ZMWKKQ3-3oKtfWXp.js +3 -0
- package/dist/ui/assets/chunk-4ZMWKKQ3-3oKtfWXp.js.gz +0 -0
- package/dist/ui/assets/chunk-55IACEB6-BS04dgKF.js +1 -0
- package/dist/ui/assets/{chunk-ABZYJK2D-BJcrryHK.js → chunk-ABZYJK2D-t3Gkphds.js} +3 -3
- package/dist/ui/assets/chunk-ABZYJK2D-t3Gkphds.js.gz +0 -0
- package/dist/ui/assets/{chunk-AGHRB4JF-DvxmfbM0.js → chunk-AGHRB4JF-D_QmWxbY.js} +1 -1
- package/dist/ui/assets/chunk-AGHRB4JF-D_QmWxbY.js.gz +0 -0
- package/dist/ui/assets/{chunk-ATLVNIR6-DbeJ0OrR.js → chunk-ATLVNIR6-Bmg7-Ufz.js} +1 -1
- package/dist/ui/assets/chunk-ATLVNIR6-Bmg7-Ufz.js.gz +0 -0
- package/dist/ui/assets/{chunk-B4BG7PRW-C53q2ggf.js → chunk-B4BG7PRW-dnSEE1u-.js} +3 -3
- package/dist/ui/assets/chunk-B4BG7PRW-dnSEE1u-.js.gz +0 -0
- package/dist/ui/assets/{chunk-CVBHYZKI-B3EBSlb3.js → chunk-CVBHYZKI-BStaYnF0.js} +1 -1
- package/dist/ui/assets/{chunk-DI55MBZ5-vIyNEQN-.js → chunk-DI55MBZ5-28dvx6o3.js} +1 -1
- package/dist/ui/assets/chunk-DI55MBZ5-28dvx6o3.js.gz +0 -0
- package/dist/ui/assets/chunk-EXTU4WIE-X-FURkEh.js +1 -0
- package/dist/ui/assets/{chunk-FMBD7UC4-rddmfK-Z.js → chunk-FMBD7UC4-C_63gC9S.js} +1 -1
- package/dist/ui/assets/{chunk-HN2XXSSU-Dttqcg3b.js → chunk-HN2XXSSU-UFD374KI.js} +1 -1
- package/dist/ui/assets/chunk-HN2XXSSU-UFD374KI.js.gz +0 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-B60hLNeR.js +11 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-B60hLNeR.js.gz +0 -0
- package/dist/ui/assets/{chunk-JZLCHNYA-EUmx2y4H.js → chunk-JZLCHNYA-ButC6pwN.js} +5 -5
- package/dist/ui/assets/chunk-JZLCHNYA-ButC6pwN.js.gz +0 -0
- package/dist/ui/assets/{chunk-MI3HLSF2-65n9Mkyc.js → chunk-MI3HLSF2-BivYzoSV.js} +1 -1
- package/dist/ui/assets/chunk-MI3HLSF2-BivYzoSV.js.gz +0 -0
- package/dist/ui/assets/chunk-N4CR4FBY-mVWzo5wJ.js +2 -0
- package/dist/ui/assets/chunk-N4CR4FBY-mVWzo5wJ.js.gz +0 -0
- package/dist/ui/assets/{chunk-QN33PNHL-DsRKK6NR.js → chunk-QN33PNHL-tXtHZpaG.js} +1 -1
- package/dist/ui/assets/{chunk-QXUST7PY-BCYnMiS3.js → chunk-QXUST7PY-DATib_Vv.js} +2 -2
- package/dist/ui/assets/chunk-QXUST7PY-DATib_Vv.js.gz +0 -0
- package/dist/ui/assets/chunk-QZHKN3VN-y6l249e5.js +1 -0
- package/dist/ui/assets/chunk-S3R3BYOJ-BEtfmflI.js +2 -0
- package/dist/ui/assets/chunk-S3R3BYOJ-BEtfmflI.js.gz +0 -0
- package/dist/ui/assets/{chunk-TZMSLE5B-BuQUQcTr.js → chunk-TZMSLE5B-BY1ZtogK.js} +1 -1
- package/dist/ui/assets/chunk-TZMSLE5B-BY1ZtogK.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-BYvq-uPY.js +1 -0
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-BYvq-uPY.js +1 -0
- package/dist/ui/assets/constants-CYzQKfD1.js +1 -0
- package/dist/ui/assets/{cose-bilkent-S5V4N54A-CnPB3ARO.js → cose-bilkent-S5V4N54A-DPvYrqGG.js} +1 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-DPvYrqGG.js.gz +0 -0
- package/dist/ui/assets/{dagre-6UL2VRFP-DhS-k_Se.js → dagre-6UL2VRFP-D800J6qb.js} +1 -1
- package/dist/ui/assets/dagre-6UL2VRFP-D800J6qb.js.gz +0 -0
- package/dist/ui/assets/{dagre-KgLoHEuy.js → dagre-TNc4wezg.js} +1 -1
- package/dist/ui/assets/dagre-TNc4wezg.js.gz +0 -0
- package/dist/ui/assets/diagram-PSM6KHXK-CGdP9F-X.js +24 -0
- package/dist/ui/assets/diagram-PSM6KHXK-CGdP9F-X.js.gz +0 -0
- package/dist/ui/assets/{diagram-QEK2KX5R-BPCitvbo.js → diagram-QEK2KX5R-BD5lOCe5.js} +1 -1
- package/dist/ui/assets/diagram-QEK2KX5R-BD5lOCe5.js.gz +0 -0
- package/dist/ui/assets/{diagram-S2PKOQOG-NW4uK6sx.js → diagram-S2PKOQOG-cp3l22vN.js} +1 -1
- package/dist/ui/assets/diagram-S2PKOQOG-cp3l22vN.js.gz +0 -0
- package/dist/ui/assets/editor-Cr0W5BQI.js +39 -0
- package/dist/ui/assets/editor-Cr0W5BQI.js.gz +0 -0
- package/dist/ui/assets/emoji-Bv3m24sO.js +3 -0
- package/dist/ui/assets/emoji-Bv3m24sO.js.gz +0 -0
- package/dist/ui/assets/{erDiagram-Q2GNP2WA-me1fboaf.js → erDiagram-Q2GNP2WA-CQSXRgqr.js} +2 -2
- package/dist/ui/assets/erDiagram-Q2GNP2WA-CQSXRgqr.js.gz +0 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-CKcKpkph.js +162 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-CKcKpkph.js.gz +0 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-DlAHzXO5.js +267 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-DlAHzXO5.js.gz +0 -0
- package/dist/ui/assets/{gitGraph-F6HP7TQM-CfFE_uAC.js → gitGraph-F6HP7TQM-DeuXy4B1.js} +1 -1
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-aB-AI4Vq.js +65 -0
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-aB-AI4Vq.js.gz +0 -0
- package/dist/ui/assets/index-B-qHc0o5.js +63 -0
- package/dist/ui/assets/index-B-qHc0o5.js.gz +0 -0
- package/dist/ui/assets/{index-DxuPq13l.css → index-qkT7Qqm2.css} +1 -1
- package/dist/ui/assets/index-qkT7Qqm2.css.gz +0 -0
- package/dist/ui/assets/{info-NVLQJR56-i_xHYg3f.js → info-NVLQJR56-B9PG7xsc.js} +1 -1
- package/dist/ui/assets/{infoDiagram-ER5ION4S-2NL93b78.js → infoDiagram-ER5ION4S-C5Wpoqim.js} +1 -1
- package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-CZF-2DHU.js → journeyDiagram-XKPGCS4Q-CHLziqfS.js} +3 -3
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CHLziqfS.js.gz +0 -0
- package/dist/ui/assets/{kanban-definition-3W4ZIXB7-CfvJIOny.js → kanban-definition-3W4ZIXB7-Dq7GzQE_.js} +1 -1
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-Dq7GzQE_.js.gz +0 -0
- package/dist/ui/assets/{line-DDv8kOJk.js → line-DHKNg83I.js} +1 -1
- package/dist/ui/assets/{linear-Daef-l29.js → linear-BvUfn0I8.js} +1 -1
- package/dist/ui/assets/linear-BvUfn0I8.js.gz +0 -0
- package/dist/ui/assets/{mermaid-parser.core-CdK9QgYV.js → mermaid-parser.core-C6d9tKoo.js} +2 -2
- package/dist/ui/assets/mermaid-parser.core-C6d9tKoo.js.gz +0 -0
- package/dist/ui/assets/mermaid.core-CxE5KezR.js +11 -0
- package/dist/ui/assets/mermaid.core-CxE5KezR.js.gz +0 -0
- package/dist/ui/assets/{mindmap-definition-VGOIOE7T-Cb3QMflX.js → mindmap-definition-VGOIOE7T-DmPoQ48w.js} +1 -1
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-DmPoQ48w.js.gz +0 -0
- package/dist/ui/assets/{packet-BFZMPI3H-Bm2uwz4i.js → packet-BFZMPI3H-JZEkVZxU.js} +1 -1
- package/dist/ui/assets/{particles-DsJFOarW.js → particles-CxMmUw86.js} +1 -1
- package/dist/ui/assets/particles-CxMmUw86.js.gz +0 -0
- package/dist/ui/assets/{pie-7BOR55EZ-5i17tVnF.js → pie-7BOR55EZ-_1II5pYQ.js} +1 -1
- package/dist/ui/assets/{pieDiagram-ADFJNKIX-BxIwQWvw.js → pieDiagram-ADFJNKIX-DrNkH33i.js} +1 -1
- package/dist/ui/assets/pieDiagram-ADFJNKIX-DrNkH33i.js.gz +0 -0
- package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-B5HPe4ga.js → quadrantDiagram-AYHSOK5B-DOpC-HEF.js} +3 -3
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-DOpC-HEF.js.gz +0 -0
- package/dist/ui/assets/{radar-NHE76QYJ-BTn-tq0k.js → radar-NHE76QYJ-DDmqhzEZ.js} +1 -1
- package/dist/ui/assets/reactflow-D98uPOMq.js +2 -0
- package/dist/ui/assets/reactflow-D98uPOMq.js.gz +0 -0
- package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-YfI6llkX.js → requirementDiagram-UZGBJVZJ-Bzx0iEPP.js} +1 -1
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-Bzx0iEPP.js.gz +0 -0
- package/dist/ui/assets/{sandpack-D7koO5op.js → sandpack-059Z4UWP.js} +38 -38
- package/dist/ui/assets/sandpack-059Z4UWP.js.gz +0 -0
- package/dist/ui/assets/sandpackDefaults-CPMNDsw7.js +1 -0
- package/dist/ui/assets/sandpackDefaults-CPMNDsw7.js.gz +0 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-Do9pvfDv.js +10 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-Do9pvfDv.js.gz +0 -0
- package/dist/ui/assets/{sequenceDiagram-WL72ISMW-DAe4Um17.js → sequenceDiagram-WL72ISMW-CN8neUTA.js} +6 -6
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-CN8neUTA.js.gz +0 -0
- package/dist/ui/assets/src-DEbsv3pp.js +34 -0
- package/dist/ui/assets/src-DEbsv3pp.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BluWJi8n.js +1 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BluWJi8n.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-DeyqBMDR.js +1 -0
- package/dist/ui/assets/streamdown-BT1twtFc.js +521 -0
- package/dist/ui/assets/streamdown-BT1twtFc.js.gz +0 -0
- package/dist/ui/assets/syntax-CBu6nLfm.js +9 -0
- package/dist/ui/assets/syntax-CBu6nLfm.js.gz +0 -0
- package/dist/ui/assets/{timeline-definition-IT6M3QCI-D6P5txjT.js → timeline-definition-IT6M3QCI-WdUNkiRj.js} +16 -16
- package/dist/ui/assets/timeline-definition-IT6M3QCI-WdUNkiRj.js.gz +0 -0
- package/dist/ui/assets/{treemap-KMMF4GRG-Bitm3gy4.js → treemap-KMMF4GRG-CoriU4Jl.js} +1 -1
- package/dist/ui/assets/{useUserLocalStorage-Ckb8HsIw.js → useUserLocalStorage-GidNiOPC.js} +1 -1
- package/dist/ui/assets/useUserLocalStorage-GidNiOPC.js.gz +0 -0
- package/dist/ui/assets/{xychartDiagram-PRI3JC2R-CsybjUbd.js → xychartDiagram-PRI3JC2R-CgBAKNt2.js} +1 -1
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-CgBAKNt2.js.gz +0 -0
- package/dist/ui/index.html +11 -11
- package/dist/ui/index.html.gz +0 -0
- package/package.json +6 -5
- package/scripts/postinstall.js +27 -19
- package/dist/cli/commands/daemon/sync.d.ts.map +0 -1
- package/dist/ui/assets/App-DcEY8Ota.js +0 -3
- package/dist/ui/assets/App-DcEY8Ota.js.gz +0 -0
- package/dist/ui/assets/ArtifactConsentModal-CiCbK9iv.js +0 -1
- package/dist/ui/assets/ArtifactConsentModal-CiCbK9iv.js.gz +0 -0
- package/dist/ui/assets/ArtifactFullscreenPage-CfsTEGKd.js +0 -9
- package/dist/ui/assets/ArtifactFullscreenPage-CfsTEGKd.js.gz +0 -0
- package/dist/ui/assets/AutocompleteTextarea-BAFFH_5e.js +0 -18
- package/dist/ui/assets/AutocompleteTextarea-BAFFH_5e.js.gz +0 -0
- package/dist/ui/assets/BoardObjectNodes-D-O6bZIG.js +0 -34
- package/dist/ui/assets/BoardObjectNodes-D-O6bZIG.js.gz +0 -0
- package/dist/ui/assets/CodeEditor.inner-DBgsP4tn.js +0 -8
- package/dist/ui/assets/CodeEditor.inner-DBgsP4tn.js.gz +0 -0
- package/dist/ui/assets/ConversationView-CUWR0gR6.js +0 -1
- package/dist/ui/assets/ConversationView-CUWR0gR6.js.gz +0 -0
- package/dist/ui/assets/KnowledgePage-B2bzlXfn.js +0 -24
- package/dist/ui/assets/KnowledgePage-B2bzlXfn.js.gz +0 -0
- package/dist/ui/assets/MarketingScreenshotPage-zv5RUCuV.js.gz +0 -0
- package/dist/ui/assets/MobileApp-VgVnsnsN.js +0 -1
- package/dist/ui/assets/MobileApp-VgVnsnsN.js.gz +0 -0
- package/dist/ui/assets/SessionCanvas-f1-1Gbcw.js +0 -20
- package/dist/ui/assets/SessionCanvas-f1-1Gbcw.js.gz +0 -0
- package/dist/ui/assets/SessionCanvas-mEmYGZhC.css.gz +0 -0
- package/dist/ui/assets/StreamdownDemoPage-wzWaqWwr.js.gz +0 -0
- package/dist/ui/assets/ThemeSwitcher-Dly2y9pi.js +0 -1
- package/dist/ui/assets/ThemeSwitcher-Dly2y9pi.js.gz +0 -0
- package/dist/ui/assets/architecture-U656AL7Q-CykGFbQU.js +0 -1
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-C8HXAenz.js +0 -36
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-C8HXAenz.js.gz +0 -0
- package/dist/ui/assets/blockDiagram-VD42YOAC-BhZaEN19.js.gz +0 -0
- package/dist/ui/assets/c4Diagram-YG6GDRKO-Dk_UH-sY.js.gz +0 -0
- package/dist/ui/assets/channel-D6_nUWlW.js +0 -1
- package/dist/ui/assets/chunk-55IACEB6-ByzqIgSb.js +0 -1
- package/dist/ui/assets/chunk-ABZYJK2D-BJcrryHK.js.gz +0 -0
- package/dist/ui/assets/chunk-AGHRB4JF-DvxmfbM0.js.gz +0 -0
- package/dist/ui/assets/chunk-ATLVNIR6-DbeJ0OrR.js.gz +0 -0
- package/dist/ui/assets/chunk-B4BG7PRW-C53q2ggf.js.gz +0 -0
- package/dist/ui/assets/chunk-DI55MBZ5-vIyNEQN-.js.gz +0 -0
- package/dist/ui/assets/chunk-EXTU4WIE-B3ObkuOm.js +0 -1
- package/dist/ui/assets/chunk-HN2XXSSU-Dttqcg3b.js.gz +0 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-DbNDev3D.js +0 -11
- package/dist/ui/assets/chunk-JA3XYJ7Z-DbNDev3D.js.gz +0 -0
- package/dist/ui/assets/chunk-JZLCHNYA-EUmx2y4H.js.gz +0 -0
- package/dist/ui/assets/chunk-MI3HLSF2-65n9Mkyc.js.gz +0 -0
- package/dist/ui/assets/chunk-N4CR4FBY-mv5koXqW.js +0 -2
- package/dist/ui/assets/chunk-N4CR4FBY-mv5koXqW.js.gz +0 -0
- package/dist/ui/assets/chunk-QXUST7PY-BCYnMiS3.js.gz +0 -0
- package/dist/ui/assets/chunk-QZHKN3VN-HucAw4xW.js +0 -1
- package/dist/ui/assets/chunk-S3R3BYOJ-CWMEa9Dc.js +0 -2
- package/dist/ui/assets/chunk-S3R3BYOJ-CWMEa9Dc.js.gz +0 -0
- package/dist/ui/assets/chunk-TZMSLE5B-BuQUQcTr.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-CUT3rPTB.js +0 -1
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-CUT3rPTB.js +0 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-CnPB3ARO.js.gz +0 -0
- package/dist/ui/assets/dagre-6UL2VRFP-DhS-k_Se.js.gz +0 -0
- package/dist/ui/assets/dagre-KgLoHEuy.js.gz +0 -0
- package/dist/ui/assets/diagram-PSM6KHXK-BZg3MJmb.js +0 -24
- package/dist/ui/assets/diagram-PSM6KHXK-BZg3MJmb.js.gz +0 -0
- package/dist/ui/assets/diagram-QEK2KX5R-BPCitvbo.js.gz +0 -0
- package/dist/ui/assets/diagram-S2PKOQOG-NW4uK6sx.js.gz +0 -0
- package/dist/ui/assets/editor-CzFWIUw2.js +0 -39
- package/dist/ui/assets/editor-CzFWIUw2.js.gz +0 -0
- package/dist/ui/assets/emoji-Dkz4Zzv_.js +0 -3
- package/dist/ui/assets/emoji-Dkz4Zzv_.js.gz +0 -0
- package/dist/ui/assets/erDiagram-Q2GNP2WA-me1fboaf.js.gz +0 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-DzE8dGsh.js +0 -162
- package/dist/ui/assets/flowDiagram-NV44I4VS-DzE8dGsh.js.gz +0 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-CFQD09Mi.js +0 -267
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-CFQD09Mi.js.gz +0 -0
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CaVoxU4C.js +0 -65
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CaVoxU4C.js.gz +0 -0
- package/dist/ui/assets/index-BN5_Qq7R.js +0 -324
- package/dist/ui/assets/index-BN5_Qq7R.js.gz +0 -0
- package/dist/ui/assets/index-DxuPq13l.css.gz +0 -0
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CZF-2DHU.js.gz +0 -0
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-CfvJIOny.js.gz +0 -0
- package/dist/ui/assets/katex-CamJ39w1.js +0 -257
- package/dist/ui/assets/katex-CamJ39w1.js.gz +0 -0
- package/dist/ui/assets/linear-Daef-l29.js.gz +0 -0
- package/dist/ui/assets/mermaid-parser.core-CdK9QgYV.js.gz +0 -0
- package/dist/ui/assets/mermaid.core-D6GS9mU-.js +0 -11
- package/dist/ui/assets/mermaid.core-D6GS9mU-.js.gz +0 -0
- package/dist/ui/assets/message-SqLqNYcv.js +0 -36
- package/dist/ui/assets/message-SqLqNYcv.js.gz +0 -0
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-Cb3QMflX.js.gz +0 -0
- package/dist/ui/assets/particles-DsJFOarW.js.gz +0 -0
- package/dist/ui/assets/pieDiagram-ADFJNKIX-BxIwQWvw.js.gz +0 -0
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-B5HPe4ga.js.gz +0 -0
- package/dist/ui/assets/reactflow-Bf74ngoo.js +0 -2
- package/dist/ui/assets/reactflow-Bf74ngoo.js.gz +0 -0
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-YfI6llkX.js.gz +0 -0
- package/dist/ui/assets/sandpack-D7koO5op.js.gz +0 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DOk_B10B.js +0 -10
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DOk_B10B.js.gz +0 -0
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-DAe4Um17.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-CCesDu_C.js +0 -1
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-CCesDu_C.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-CMlIrsoO.js +0 -1
- package/dist/ui/assets/syntax-C-M-8jOU.js +0 -10
- package/dist/ui/assets/syntax-C-M-8jOU.js.gz +0 -0
- package/dist/ui/assets/theme-BQZdiqwv.js +0 -1
- package/dist/ui/assets/timeline-definition-IT6M3QCI-D6P5txjT.js.gz +0 -0
- package/dist/ui/assets/useUserLocalStorage-Ckb8HsIw.js.gz +0 -0
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-CsybjUbd.js.gz +0 -0
- /package/dist/cli/commands/{admin → local}/sync-unix.d.ts +0 -0
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{$ as t,A as n,An as r,At as i,B as a,Bn as o,Bt as s,Cn as c,Ct as l,Dn as u,Dt as d,E as f,En as p,Et as m,F as h,Fn as g,Ft as _,Gt as v,H as y,Hn as b,In as x,Jt as S,Kn as C,M as w,Mn as T,Mt as E,Nt as D,On as O,Pn as k,Pt as A,Qn as ee,Rn as j,Rt as te,Sn as M,Tt as N,U as P,V as F,Vt as ne,Wn as I,X as re,Xt as ie,Y as ae,Yt as oe,Zt as L,_n as se,_t as R,a as z,an as ce,b as le,bn as B,d as ue,ft as de,gn as fe,gt as pe,jn as me,jt as he,kn as ge,kt as _e,l as ve,m as ye,mt as be,n as xe,nn as Se,o as Ce,on as V,pt as we,qn as Te,qt as Ee,r as De,rn as Oe,tn as H,tt as ke,u as Ae,un as je,ut as Me,vt as Ne,wn as U,wt as Pe,x as Fe,xn as Ie,yn as Le,zn as Re}from"./antd-CfbbHJOz.js";import{B as W,F as ze,G as Be,H as G,P as K,R as Ve,V as He,W as Ue,X as We,a as Ge,d as Ke,dt as qe,f as Je,ht as Ye,mt as q,n as Xe,ot as Ze,t as Qe,u as $e}from"./message-SqLqNYcv.js";import{N as et}from"./editor-CzFWIUw2.js";import{n as tt}from"./theme-BQZdiqwv.js";import{$ as nt,$t as rt,A as it,At as at,C as ot,Ct as st,D as J,Dt as ct,E as lt,Et as ut,Ft as dt,G as ft,H as pt,Ht as mt,It as ht,J as gt,Jt as _t,K as vt,Kt as yt,Nt as bt,O as xt,P as St,Q as Ct,Qt as wt,Rt as Y,S as Tt,St as Et,T as Dt,U as Ot,Ut as kt,V as At,W as jt,X as Mt,Xt as Nt,Y as Pt,Yt as X,Zt as Ft,a as It,b as Lt,bt as Rt,cn as zt,ct as Bt,d as Vt,dt as Ht,f as Ut,ft as Wt,g as Gt,gt as Kt,h as qt,ht as Jt,i as Yt,in as Xt,it as Zt,j as Qt,l as $t,lt as en,m as tn,mt as nn,n as rn,nn as an,nt as on,o as sn,on as cn,ot as ln,p as un,q as dn,qt as fn,r as pn,rn as mn,sn as hn,st as gn,t as _n,tt as vn,u as yn,ut as bn,v as xn,vt as Z,w as Sn,wt as Cn,x as wn,xt as Tn,yt as En,z as Dn}from"./index-BN5_Qq7R.js";import{i as On,n as kn,r as An,t as jn}from"./useUserLocalStorage-Ckb8HsIw.js";import{_ as Mn,a as Nn,c as Pn,d as Fn,f as In,g as Ln,h as Rn,i as zn,l as Bn,m as Vn,n as Hn,o as Un,p as Wn,r as Gn,s as Kn,t as qn,u as Jn}from"./SessionCanvas-f1-1Gbcw.js";import{a as Yn}from"./BoardObjectNodes-D-O6bZIG.js";import{i as Xn,s as Zn,t as Qn}from"./AutocompleteTextarea-BAFFH_5e.js";import{n as $n,t as er}from"./ConversationView-CUWR0gR6.js";import{n as tr,r as nr,t as rr}from"./xterm-BkujP7YO.js";var Q=e(ee(),1),$=et(),ir=(0,Q.createContext)(void 0),ar=(0,Q.createContext)(void 0),or=(0,Q.createContext)(void 0),sr=(0,Q.createContext)(void 0),cr=({children:e,value:t})=>(0,$.jsx)(ir.Provider,{value:t,children:e}),lr=({children:e,value:t})=>(0,$.jsx)(ar.Provider,{value:t,children:e}),ur=({children:e,value:t})=>(0,$.jsx)(or.Provider,{value:t,children:e}),dr=({children:e,value:t})=>(0,$.jsx)(sr.Provider,{value:t,children:e}),fr=({children:e,value:t})=>(0,$.jsx)(cr,{value:(0,Q.useMemo)(()=>({repoById:t.repoById}),[t.repoById]),children:(0,$.jsx)(lr,{value:(0,Q.useMemo)(()=>({userById:t.userById}),[t.userById]),children:(0,$.jsx)(ur,{value:(0,Q.useMemo)(()=>({mcpServerById:t.mcpServerById,userAuthenticatedMcpServerIds:t.userAuthenticatedMcpServerIds}),[t.mcpServerById,t.userAuthenticatedMcpServerIds]),children:e})})}),pr=()=>{let e=(0,Q.useContext)(ir);if(!e)throw Error(`useAppRepoData must be used within an AppRepoDataProvider`);return e},mr=()=>{let e=(0,Q.useContext)(ar);if(!e)throw Error(`useAppUserData must be used within an AppUserDataProvider`);return e},hr=()=>{let e=(0,Q.useContext)(or);if(!e)throw Error(`useAppMcpData must be used within an AppMcpDataProvider`);return e},gr=()=>{let e=(0,Q.useContext)(sr);if(!e)throw Error(`useAppLiveData must be used within an AppLiveDataProvider`);return e},_r=mn();function vr(e){(0,Q.useEffect)(()=>(e?.icon&&e?.name?document.title=`${e.icon} ${e.name}`:e?.name?document.title=e.name:document.title=_r,()=>{document.title=_r}),[e?.icon,e?.name])}function yr(e){let{client:t,enabled:n,maxEvents:r=500}=e,[i,a]=(0,Q.useState)([]),o=(0,Q.useCallback)(()=>{a([])},[]);return(0,Q.useEffect)(()=>{if(!n||!t?.io){a([]);return}let e=(e,...t)=>{if(e===`created`||e===`patched`||e===`updated`||e===`removed`)return;let n=`other`;if(e===`cursor-move`||e===`cursor-leave`||e===`cursor-moved`||e===`cursor-left`||e===`presence-updated`)n=`cursor`;else if(e.includes(`message`)||e===`thinking:chunk`){n=`message`;let e=t.length===1?t[0]:void 0;if(e&&typeof e==`object`&&`content`in e){let t=e.content;Array.isArray(t)&&t.some(e=>{if(typeof e==`object`&&e&&`type`in e){let t=e.type;return t===`tool_use`||t===`tool_result`}return!1})&&(n=`tool`)}}else e.includes(`created`)||e.includes(`patched`)||e.includes(`updated`)||e.includes(`removed`)?n=`crud`:(e===`connect`||e===`disconnect`||e.includes(`connect`))&&(n=`connection`);let i=t.length===0?void 0:t.length===1?t[0]:t,o={id:`${Date.now()}-${Math.random().toString(36).substr(2,9)}`,timestamp:new Date,type:n,eventName:e,data:i};a(e=>[o,...e].slice(0,r))};return t.io.onAny(e),()=>{t.io.offAny(e)}},[t,n,r]),{events:i,clearEvents:o}}function br(e,t,n,r){return new Promise((i,a)=>{let o=document.createElement(`canvas`);o.width=32,o.height=32;let s=o.getContext(`2d`),c=new Image;c.onload=()=>{s.drawImage(c,0,0,32,32),t&&(s.beginPath(),s.arc(7,25,6,0,2*Math.PI),s.fillStyle=`#000000`,s.fill(),s.beginPath(),s.arc(7,25,10/2,0,2*Math.PI),s.fillStyle=`#ffffff`,s.fill()),n&&(s.beginPath(),s.arc(25,25,6,0,2*Math.PI),s.fillStyle=`#000000`,s.fill(),s.beginPath(),s.arc(25,25,10/2,0,2*Math.PI),s.fillStyle=r,s.fill()),i(o.toDataURL())},c.onerror=e=>{a(e)},c.src=e})}function xr(e,t,n){let[r]=(0,Q.useState)(an()),{token:i}=A.useToken();(0,Q.useEffect)(()=>{let a=!1,o=e=>{if(a)return;let t=document.querySelector(`link[rel~='icon']`);t&&(t.href=e)};if(!e)return br(r,!1,!1,i.colorSuccessText).then(o),()=>{a=!0};let s=new Set(n.filter(e=>e.branch_id).map(e=>e.branch_id)),c=Array.from(s).flatMap(e=>t.get(e)||[]).filter(e=>!e.archived);return br(r,c.some(e=>e.status===Ue.RUNNING),c.some(e=>e.ready_for_prompt),i.colorSuccessText).then(o),()=>{a=!0}},[e,t,n,r,i.colorSuccessText])}function Sr(e,t,n){let r=(0,Q.useRef)(new Set),i=(0,Q.useRef)(n);(0,Q.useEffect)(()=>{i.current=n},[n]),(0,Q.useEffect)(()=>{if(!e||!t)return;let n=e.service(`tasks`),a=r.current,o=!1,s=e=>e?.created_by===t,c=e=>{if(!(!e?.task_id||!s(e))){if(e.status===He.RUNNING){a.add(e.task_id);return}a.delete(e.task_id)&&G(e.status)&&It(e,i.current)}},l=e=>{e?.task_id&&a.delete(e.task_id)};return n.on(`created`,c),n.on(`patched`,c),n.on(`updated`,c),n.on(`removed`,l),n.findAll({query:{status:He.RUNNING,created_by:t}}).then(e=>{if(!o)for(let t of e)t?.task_id&&a.add(t.task_id)}).catch(()=>{}),()=>{o=!0,n.removeListener(`created`,c),n.removeListener(`patched`,c),n.removeListener(`updated`,c),n.removeListener(`removed`,l),a.clear()}},[e,t])}async function Cr(e,t){let n=t.repoById.get(e.repoId),r=e.branchName||`private-${_t(e.displayName)}`,i=e.sourceBranch||n?.default_branch||`main`;if(!t.client)throw Error(`Not connected`);let a=e.displayName.trim()||`My Assistant`,o=(await t.client.service(`boards`).create({name:`${a}'s Board`,icon:e.emoji||`🤖`})).board_id;await X({client:t.client,boardId:o,assistantName:a,assistantEmoji:e.emoji});let s={kind:`assistant`,displayName:e.displayName.trim(),emoji:e.emoji||void 0,frameworkRepo:n?.slug,createdViaOnboarding:!1},c=await t.onCreateBranch(e.repoId,{name:r,ref:r,createBranch:!0,sourceBranch:i,pullLatest:!0,boardId:o,custom_context:{assistant:s},...e.description?.trim()?{notes:e.description.trim()}:{}});return c&&(o&&!c.board_id&&await t.onUpdateBranch(c.branch_id,{board_id:o}),o&&await t.client?.service(`boards`).setPrimaryAssistant({boardId:o,branchId:c.branch_id})),c}function wr(e){return!!(e.sessionShortId||e.branchShortId||e.artifactShortId)}var Tr=22,Er={height:Tr,width:Tr,minWidth:Tr,padding:0};function Dr({repo:e,branch:t,sessionCount:r,onOpenBranch:i,onStartEnvironment:a,onStopEnvironment:o,onNukeEnvironment:s,onViewLogs:c,canControlEnvironment:l,connectionDisabled:u=!1,showEnvButtons:d=!0,showNukeEnvironment:f=!0,identityLink:p,compact:m=!1}){let{token:h}=A.useToken(),g=at(),_=$t(e),v=_.hasConfig,y=t.environment_instance,b=At(y),x=t.app_url,S=l??!0,C=S?void 0:`Requires branch 'all' permission or admin access`,w=y?.status||`stopped`,D=w===`running`,O=w===`starting`,k=w===`stopping`,ee=w===`running`||w===`starting`,j=u||!S||!v||!a||O||k||D,M=u||!S||!v||!o||k||!ee,P=e=>n=>{n.stopPropagation(),i?.(t.branch_id,e)},F=()=>{i?.(t.branch_id)},ne=(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Ne,{style:{fontSize:12}}),!m&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{style:{fontFamily:h.fontFamilyCode,fontSize:h.fontSizeSM},children:e.slug}),(0,$.jsx)(N,{style:{fontSize:10,opacity:.6}})]}),(0,$.jsx)(`span`,{style:{fontFamily:h.fontFamilyCode,fontSize:h.fontSizeSM,maxWidth:m?220:180,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:t.name})]}),I=()=>{switch(b){case`stopped`:return(0,$.jsx)(ye,{style:{color:h.colorTextDisabled,fontSize:11}});case`starting`:case`stopping`:return(0,$.jsx)(oe,{size:`small`,style:{fontSize:11}});case`healthy`:return(0,$.jsx)(pe,{style:{color:h.colorSuccess,fontSize:11}});case`unhealthy`:return(0,$.jsx)(xe,{style:{color:h.colorWarning,fontSize:11}});case`running`:return(0,$.jsx)(pe,{style:{color:h.colorInfo,fontSize:11}});case`error`:return(0,$.jsx)(be,{style:{color:h.colorError,fontSize:11}});default:return(0,$.jsx)(ye,{style:{color:h.colorTextDisabled,fontSize:11}})}},re=()=>{if(!v)return`Click to configure environment`;let e=y?.last_health_check,t=e?.message?` - ${e.message}`:``;switch(b){case`healthy`:return x?`Healthy - ${x}${t}`:`Healthy${t}`;case`unhealthy`:return x?`Unhealthy - ${x}${t}`:`Unhealthy${t}`;case`running`:return x?`Running - ${x}`:`Running (no health check)`;case`starting`:return`Starting...`;case`stopping`:return`Stopping...`;case`error`:return`Failed to start`;default:return`Stopped`}},ie=p?`${e.slug} / ${t.name} · Open session`:m?`${e.slug} / ${t.name} · Open branch settings`:`Open branch settings`,L={display:`inline-flex`,alignItems:`center`,gap:4,padding:m?`0 6px`:`0 8px`,cursor:`pointer`,height:Tr,color:`inherit`,textDecoration:`none`},se=p?.startsWith(`/`);return(0,$.jsxs)(zt,{color:nt.branch,style:{userSelect:`none`,padding:0,overflow:`hidden`,lineHeight:`${Tr}px`,display:`inline-flex`,alignItems:`stretch`,cursor:`default`},children:[(0,$.jsx)(T,{title:ie,children:p&&se?(0,$.jsx)(Ge,{to:p,onClick:e=>e.stopPropagation(),style:L,children:ne}):p?(0,$.jsx)(`a`,{href:p,onClick:e=>e.stopPropagation(),style:L,children:ne}):(0,$.jsx)(`button`,{type:`button`,onClick:F,style:{display:`inline-flex`,alignItems:`center`,gap:4,padding:m?`0 6px`:`0 8px`,cursor:`pointer`,height:Tr,background:`none`,border:`none`,color:`inherit`,font:`inherit`},children:ne})}),d&&(0,$.jsx)(`div`,{style:{display:`inline-flex`,alignItems:`center`,gap:2,padding:`0 4px`,height:Tr,borderLeft:`1px solid ${h.colorBorderSecondary}`},children:v?(0,$.jsxs)($.Fragment,{children:[D&&x?(0,$.jsx)(T,{title:`Open ${x}`,children:(0,$.jsxs)(`a`,{href:x,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),style:{display:`inline-flex`,alignItems:`center`,gap:3,color:`inherit`,textDecoration:`none`,padding:`0 2px`},children:[I(),(0,$.jsx)(`span`,{style:{fontFamily:h.fontFamilyCode,fontSize:11},children:`env`})]})}):(0,$.jsx)(T,{title:re(),children:(0,$.jsxs)(`button`,{type:`button`,onClick:P(`environment`),style:{display:`inline-flex`,alignItems:`center`,gap:3,cursor:`pointer`,padding:`0 2px`,background:`none`,border:`none`,color:`inherit`,font:`inherit`},children:[I(),(0,$.jsx)(`span`,{style:{fontFamily:h.fontFamilyCode,fontSize:11},children:`env`})]})}),a&&(0,$.jsx)(T,{title:C??(D?`Environment running`:`Start environment`),children:(0,$.jsx)(U,{type:`text`,size:`small`,"aria-label":`Start environment`,icon:(0,$.jsx)(n,{}),onClick:e=>{e.stopPropagation(),j||a(t.branch_id)},disabled:j,style:Er})}),o&&(0,$.jsx)(T,{title:C??(D?`Stop environment`:O?`Cancel startup`:k?`Stopping...`:`Not running`),children:(0,$.jsx)(U,{type:`text`,size:`small`,"aria-label":`Stop environment`,icon:(0,$.jsx)(ye,{}),onClick:e=>{e.stopPropagation(),M||o(t.branch_id)},disabled:M,style:Er})}),c&&_.logs&&(0,$.jsx)(T,{title:C??`View logs`,children:(0,$.jsx)(U,{type:`text`,size:`small`,"aria-label":`View environment logs`,icon:(0,$.jsx)(Oe,{}),onClick:e=>{e.stopPropagation(),S&&c(t.branch_id)},disabled:!S,style:Er})}),f&&!m&&s&&t.nuke_command&&(0,$.jsx)(T,{title:C??`Nuke environment (destructive)`,children:(0,$.jsx)(U,{type:`text`,size:`small`,danger:!0,"aria-label":`Nuke environment`,icon:(0,$.jsx)(ke,{}),onClick:e=>{e.stopPropagation(),S&&!u&&g(()=>s(t.branch_id))},disabled:u||!S,style:Er})})]}):(0,$.jsx)(T,{title:`Configure environment`,children:(0,$.jsxs)(`button`,{type:`button`,onClick:P(`environment`),style:{display:`inline-flex`,alignItems:`center`,gap:3,cursor:`pointer`,opacity:.5,padding:`0 2px`,background:`none`,border:`none`,color:`inherit`,font:`inherit`},children:[(0,$.jsx)(ae,{style:{fontSize:11}}),(0,$.jsx)(`span`,{style:{fontFamily:h.fontFamilyCode,fontSize:11},children:`env`})]})})}),(0,$.jsxs)(`div`,{style:{display:`inline-flex`,alignItems:`center`,gap:1,padding:`0 3px`,height:Tr,borderLeft:`1px solid ${h.colorBorderSecondary}`},children:[(0,$.jsx)(T,{title:`Sessions${r==null?``:` (${r})`}`,children:(0,$.jsx)(U,{type:`text`,size:`small`,"aria-label":`Sessions`,icon:(0,$.jsx)(ue,{}),onClick:P(`sessions`),style:Er})}),(0,$.jsx)(T,{title:`Files`,children:(0,$.jsx)(U,{type:`text`,size:`small`,"aria-label":`Files`,icon:(0,$.jsx)(te,{}),onClick:P(`files`),style:Er})}),(0,$.jsx)(T,{title:`Schedule`,children:(0,$.jsx)(U,{type:`text`,size:`small`,"aria-label":`Schedule`,icon:(0,$.jsx)(je,{}),onClick:P(`schedule`),style:Er})}),(0,$.jsx)(T,{title:`Edit branch`,children:(0,$.jsx)(U,{type:`text`,size:`small`,"aria-label":`Edit branch`,icon:(0,$.jsx)(E,{}),onClick:e=>{e.stopPropagation(),F()},style:Er})})]})]})}var Or=({branch:e,size:t=12})=>{let n=mt(),r=e?.board_id;return!e||!r?null:(0,$.jsx)(T,{title:`Go to card on board`,children:(0,$.jsx)(m,{style:{fontSize:t,cursor:`pointer`,flexShrink:0,opacity:.5},onClick:t=>{t.stopPropagation(),n(e.branch_id,{boardId:r})}})})},kr=e=>{let t=Lt(e);return t===`success`||t==="default"?null:t},Ar=({board:e,currentBoardId:t,branchById:n,repoById:r,sessionsByBranch:a,onSessionClick:o,onAfterSessionClick:s})=>{let{token:c}=A.useToken(),[l,u]=(0,Q.useState)(``),[d,f]=ct(Bn,`recent`),p=(0,Q.useMemo)(()=>{let e=[];for(let r of n.values())r.board_id===t&&e.push(r.branch_id);return e.flatMap(e=>a.get(e)||[])},[a,n,t]),m=l.trim(),h=Fn(m),_=(0,Q.useMemo)(()=>h?In(p,m).map(({session:e})=>e):Vn(p,d),[p,h,m,d]);return(0,$.jsxs)(`div`,{style:{height:`100%`,position:`relative`,overflow:`hidden`},children:[(0,$.jsx)(`div`,{style:{padding:`16px 24px`,borderBottom:`1px solid ${c.colorBorder}`},children:(0,$.jsx)(Nn,{value:l,onChange:u,sort:d,onSortChange:f,searching:h})}),(0,$.jsx)(`div`,{style:{padding:`8px 0`},children:_.length===0?h?(0,$.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,alignItems:`center`,padding:`28px 16px`,gap:6},children:[(0,$.jsx)(`div`,{style:{width:36,height:36,borderRadius:`50%`,background:c.colorFillTertiary,display:`flex`,alignItems:`center`,justifyContent:`center`,marginBottom:2},children:(0,$.jsx)(g,{style:{fontSize:16,color:c.colorTextTertiary}})}),(0,$.jsx)(i.Text,{strong:!0,style:{fontSize:13},children:`No results`}),(0,$.jsxs)(i.Text,{type:`secondary`,style:{fontSize:12,textAlign:`center`,lineHeight:1.5,maxWidth:200},children:[`Nothing matched `,(0,$.jsx)(i.Text,{code:!0,children:m})]})]}):(0,$.jsx)(i.Text,{type:`secondary`,style:{display:`block`,textAlign:`center`,padding:`24px 0`,fontSize:12},children:`No sessions in this board`}):_.map(e=>{let t=e.branch_id?n.get(e.branch_id):void 0,a=t?r.get(t.repo_id):void 0,l=vt(e,{includeAgentFallback:!0}),u=h&&e.title&&e.description?Jn(e.description,m):null,d=h&&Wn(e,m);return(0,$.jsxs)(`div`,{style:{cursor:`pointer`,padding:`10px 24px`,transition:`background 0.2s`},onMouseEnter:e=>{e.currentTarget.style.background=c.colorBgTextHover},onMouseLeave:e=>{e.currentTarget.style.background=`transparent`},onClick:()=>{o(e.session_id),s?.()},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-start`,gap:8,minWidth:0},children:[(0,$.jsx)(`span`,{style:{flexShrink:0,display:`inline-flex`},children:(()=>{let t=kr(e.status),n=(0,$.jsx)(hn,{tool:e.agentic_tool,size:18});return t?(0,$.jsx)(O,{dot:!0,status:t,offset:[-3,3],children:n}):n})()}),(0,$.jsx)(i.Text,{ellipsis:{tooltip:l},style:{flex:1,minWidth:0},children:(0,$.jsx)(En,{text:l,query:m})}),(0,$.jsx)(Un,{session:e}),(0,$.jsx)(Or,{branch:t})]}),d&&(0,$.jsxs)(i.Text,{type:`secondary`,style:{display:`block`,fontSize:11,marginTop:3,marginLeft:26},children:[`Agent: `,(0,$.jsx)(En,{text:e.agentic_tool,query:m})]}),u&&u!==l&&(0,$.jsx)(i.Text,{type:`secondary`,style:{fontSize:11,display:`block`,marginTop:3,marginLeft:26,lineHeight:1.4,fontStyle:`italic`},children:(0,$.jsx)(En,{text:u,query:m})}),(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:8,marginTop:6,marginLeft:26,minWidth:0},children:[(0,$.jsx)(`div`,{style:{minWidth:0,overflow:`hidden`},children:t?(0,$.jsx)(Mt,{branch:t.name,compact:!0,title:a?`${a.slug} / ${t.name}`:t.name}):(0,$.jsx)(i.Text,{type:`secondary`,style:{fontSize:12},children:`No branch`})}),(0,$.jsx)(T,{title:Z(e.last_updated),children:(0,$.jsx)(i.Text,{type:`secondary`,style:{fontSize:11,whiteSpace:`nowrap`,flexShrink:0},children:Kt(e.last_updated)})})]})]},e.session_id)})}),e&&(0,$.jsx)(`div`,{style:{position:`absolute`,bottom:0,left:0,right:0,padding:`16px 24px`,borderTop:`1px solid ${c.colorBorder}`,background:c.colorBgContainer},children:(0,$.jsx)(i.Text,{type:`secondary`,style:{fontSize:12},children:h?(0,$.jsxs)($.Fragment,{children:[_.length,` of `,p.length,` · `,(0,$.jsx)(zn,{}),e.description&&` • ${e.description}`]}):`${p.length} session${p.length===1?``:`s`}${e.description?` • ${e.description}`:``}`})})]})},jr=({board:e,activeTab:t,onTabChange:n,primaryAssistantBranch:r,primaryAssistantRepo:a,primaryAssistantInaccessible:o,sessionsByBranch:s,branchById:c,repoById:l,userById:d,currentUserId:p,selectedSessionId:m,onSessionClick:h,onCreateSession:g,onForkSession:_,onSpawnSession:v,onOpenSettings:y,onOpenSessionSettings:b,comments:x=[],boardObjects:S,onSendComment:w,onReplyComment:E,onResolveComment:D,onToggleReaction:O,onDeleteComment:ee,hoveredCommentId:te,selectedCommentId:M,onCollapse:N,client:P})=>{let{token:F}=A.useToken(),{message:ne}=Re.useApp(),I=o?`all-sessions`:`assistant`,[re,ie]=(0,Q.useState)(I),ae=t!==void 0,L=t??re,se=e=>{ie(e),n?.(e)};(0,Q.useEffect)(()=>{ie(I),ae||n?.(I)},[I,e?.board_id,ae,n]);let R=(0,Q.useMemo)(()=>Array.from(c.values()).filter(e=>Ye(e)&&!e.archived).sort((e,t)=>{let n=q(e),r=q(t);return(n?.displayName??e.name).localeCompare(r?.displayName??t.name)}).map(e=>{let t=q(e),n=l.get(e.repo_id),r=t?.displayName??e.name;return{value:e.branch_id,label:r,searchText:`${r} ${e.name} ${n?.slug??``}`,branch:e,repo:n}}),[c,l]),[z,ce]=(0,Q.useState)(),[le,B]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{z&&R.some(e=>e.value===z)||ce(R[0]?.value)},[R,z]);let ue=async()=>{if(!e||!P||!z)return;let t=c.get(z);if(t){B(!0);try{t.board_id!==e.board_id&&await P.service(`branches`).patch(z,{board_id:e.board_id}),await P.service(`boards`).setPrimaryAssistant({boardId:e.board_id,branchId:z}),ne.success(`Assistant assigned`)}catch(e){ne.error(`Failed to assign assistant: ${e instanceof Error?e.message:String(e)}`)}finally{B(!1)}}},de=(0,Q.useMemo)(()=>r&&s.get(r.branch_id)||[],[r,s]),fe=(()=>{if(r&&a){let e=q(r),t=r.notes?.trim(),n=r.filesystem_status===`creating`;return(0,$.jsxs)(`div`,{style:{padding:16},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:10,paddingBottom:12,marginBottom:4,borderBottom:`1px solid ${F.colorBorderSecondary}`},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:10,minWidth:0},children:[(0,$.jsx)(`div`,{style:{width:36,height:36,display:`flex`,alignItems:`center`,justifyContent:`center`,flexShrink:0},children:n?(0,$.jsx)(oe,{}):e?.emoji?(0,$.jsx)(`span`,{style:{fontSize:30},children:e.emoji}):(0,$.jsx)(f,{style:{fontSize:30,color:F.colorInfo}})}),(0,$.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,minWidth:0},children:[(0,$.jsx)(i.Title,{level:4,style:{margin:0,fontWeight:600},ellipsis:{tooltip:e?.displayName??r.name},children:e?.displayName??r.name}),(0,$.jsx)(i.Text,{type:`secondary`,style:{fontSize:12},children:`Primary assistant`})]})]}),(0,$.jsxs)(V,{size:4,wrap:!0,children:[(0,$.jsx)(Dr,{repo:a,branch:r,sessionCount:de.length,onOpenBranch:y,showEnvButtons:!1,compact:!0}),r.created_by&&(0,$.jsx)(ft,{createdBy:r.created_by,currentUserId:p,userById:d,prefix:`Created by`}),r.issue_url&&(0,$.jsx)(vn,{issueUrl:r.issue_url,currentRepo:a}),r.pull_request_url&&(0,$.jsx)(Zt,{prUrl:r.pull_request_url,currentRepo:a})]}),t&&(0,$.jsx)(`div`,{className:`markdown-compact`,style:{color:F.colorTextSecondary},children:(0,$.jsx)(St,{content:t,compact:!0,showControls:!1})})]}),(0,$.jsx)(Gn,{branch:r,sessions:de,userById:d,currentUserId:p,selectedSessionId:m,onSessionClick:h,onCreateSession:g,onForkSession:_,onSpawnSession:v,onOpenSessionSettings:b,mode:`panel`,client:P})]})}return o?(0,$.jsx)(`div`,{style:{padding:16},children:(0,$.jsx)(C,{type:`info`,showIcon:!0,message:`Assistant unavailable`,description:`This board has a primary assistant, but you do not have access to that assistant branch.`})}):(0,$.jsxs)(`div`,{style:{padding:16},children:[(0,$.jsx)(j,{image:j.PRESENTED_IMAGE_SIMPLE,description:(0,$.jsx)(i.Text,{type:`secondary`,children:`This board does not have a primary assistant yet.`}),style:{padding:`24px 0 16px`}}),(0,$.jsxs)(V,{orientation:`vertical`,size:12,style:{width:`100%`},children:[(0,$.jsx)(i.Text,{strong:!0,children:`Assign an existing assistant`}),(0,$.jsx)(k,{showSearch:!0,placeholder:`Select an assistant`,value:z,onChange:ce,options:R,optionFilterProp:`searchText`,disabled:le||R.length===0,style:{width:`100%`}}),R.length===0&&(0,$.jsx)(i.Text,{type:`secondary`,style:{fontSize:12},children:`No existing assistants are available to assign.`}),(0,$.jsx)(U,{type:`primary`,onClick:ue,loading:le,disabled:!z||!e||!P,children:`Assign`})]})]})})();return(0,$.jsx)(`div`,{style:{height:`100%`,background:F.colorBgContainer,borderRight:`1px solid ${F.colorBorderSecondary}`,overflow:`hidden`},children:(0,$.jsx)(Ie,{activeKey:L,onChange:e=>se(e),items:[{key:`assistant`,label:`Assistant`,children:(0,$.jsx)(`div`,{style:{height:`calc(100vh - 112px)`,overflow:`auto`},children:fe})},{key:`all-sessions`,label:`All sessions`,children:e?(0,$.jsx)(`div`,{style:{height:`calc(100vh - 112px)`,overflow:`auto`},children:(0,$.jsx)(Ar,{board:e,currentBoardId:e.board_id,branchById:c,repoById:l,sessionsByBranch:s,onSessionClick:h})}):(0,$.jsx)(j,{image:j.PRESENTED_IMAGE_SIMPLE,description:`No board selected`})},{key:`comments`,label:`Comments`,children:e?(0,$.jsx)(`div`,{style:{height:`calc(100vh - 112px)`},children:(0,$.jsx)($n,{client:P,boardId:e.board_id,comments:x,userById:d,currentUserId:p||`unknown`,boardObjects:S,branchById:c,onSendComment:e=>w?.(e),onReplyComment:E,onResolveComment:D,onToggleReaction:O,onDeleteComment:ee,hoveredCommentId:te,selectedCommentId:M})}):(0,$.jsx)(j,{image:j.PRESENTED_IMAGE_SIMPLE,description:`No board selected`})}],style:{height:`100%`},tabBarStyle:{margin:0,padding:`0 12px`},tabBarExtraContent:{right:N?(0,$.jsx)(T,{title:`Collapse panel`,placement:`bottom`,children:(0,$.jsx)(U,{type:`text`,size:`small`,icon:(0,$.jsx)(u,{style:{fontSize:11}}),onClick:N,style:{marginRight:4}})}):void 0}})})};function Mr(e){let[t]=H.useForm(),[n,r]=(0,Q.useState)(!1),[i,a]=(0,Q.useState)(!1),o=(0,Q.useRef)(``),s=(0,Q.useCallback)(()=>{let n=t.getFieldsValue(),i=!!n.displayName?.trim(),a=!!(n.repoId||e?.repo_id);r(i&&a)},[t,e]);return(0,Q.useEffect)(()=>{e&&!t.getFieldValue(`repoId`)&&t.setFieldValue(`repoId`,e.repo_id),s()},[e,t,s]),{form:t,isFormValid:n,setIsFormValid:r,customRepoSelected:i,setCustomRepoSelected:a,validateForm:s,handleDisplayNameChange:(0,Q.useCallback)(e=>{let n=e.target.value,r=t.getFieldValue(`name`),i=`private-${_t(n)}`;(!r||r===o.current)&&(t.setFieldValue(`name`,i),o.current=i),s()},[t,s]),resetForm:(0,Q.useCallback)(()=>{t.resetFields(),r(!1),a(!1),o.current=``},[t])}}var Nr=12e4;function Pr(e,t,{enabled:n=!0}={}){let r=rt(e),[i,a]=(0,Q.useState)(!1),o=(0,Q.useRef)(!1);return(0,Q.useEffect)(()=>{if(r){a(!1),o.current=!1;return}if(!n||!t||o.current)return;o.current=!0,a(!0),Promise.resolve(t({url:wt,slug:Ft,default_branch:`main`})).catch(()=>{});let e=setTimeout(()=>{a(!1),o.current=!1},Nr);return()=>clearTimeout(e)},[r,t,n]),(0,Q.useEffect)(()=>{!n&&!r&&(o.current=!1)},[n,r]),{frameworkRepo:r,isCloning:i&&!r}}var Fr=({form:e,repos:t,frameworkRepo:n,isCloning:r,onDisplayNameChange:a,customRepoSelected:s,onCustomRepoChange:c,extraBeforeAdvanced:l})=>{let u=n?`${n.name||n.slug} (default)`:r?`Setting up framework repository...`:`No framework repository found`;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(H.Item,{label:`Name`,required:!0,tooltip:`Human-friendly name and icon for this assistant`,children:(0,$.jsxs)(V.Compact,{style:{display:`flex`},children:[(0,$.jsx)(yt,{form:e,fieldName:`emoji`,defaultEmoji:`🤖`}),(0,$.jsx)(H.Item,{name:`displayName`,noStyle:!0,rules:[{required:!0,message:`Please enter a name`}],children:(0,$.jsx)(L,{placeholder:`e.g. PR Reviewer, Command Center`,autoFocus:!0,onChange:a,style:{flex:1}})})]})}),(0,$.jsx)(H.Item,{name:`description`,label:`Description`,tooltip:`What does this assistant do? Visible to other agents via MCP.`,children:(0,$.jsx)(L.TextArea,{placeholder:`e.g. Reviews PRs and provides feedback, Monitors CI/CD pipelines`,rows:2})}),(0,$.jsx)(C,{type:`info`,showIcon:!1,style:{marginBottom:16},title:(0,$.jsx)(i.Text,{type:`secondary`,style:{fontSize:12},children:`Each assistant gets a fresh board and becomes that board's primary assistant.`})}),l,r&&!n&&(0,$.jsx)(C,{type:`info`,showIcon:!0,icon:(0,$.jsx)(I,{}),style:{marginBottom:16},title:`Setting up framework repository`,description:(0,$.jsx)(i.Text,{type:`secondary`,style:{fontSize:12},children:`Cloning preset-io/agor-assistant. This usually takes 10-30 seconds.`})}),(0,$.jsx)(o,{ghost:!0,size:`small`,destroyOnHidden:!1,expandIcon:({isActive:e})=>(0,$.jsx)(x,{rotate:e?180:0}),items:[{key:`advanced`,label:(0,$.jsxs)(V,{size:6,children:[(0,$.jsx)(i.Text,{type:`secondary`,children:`Advanced Assistant Settings`}),(0,$.jsx)(T,{title:`Assistants live in an Agor branch. These settings control the framework repository, branch name, and source branch used to create that assistant branch.`,children:(0,$.jsx)(y,{style:{color:`var(--ant-color-text-tertiary)`}})})]}),children:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(H.Item,{name:`repoId`,label:`Framework Repository`,children:(0,$.jsx)(k,{placeholder:u,allowClear:!0,showSearch:!0,disabled:r&&!n,filterOption:(e,t)=>String(t?.label??``).toLowerCase().includes(e.toLowerCase()),options:[...t].sort((e,t)=>(e.name||e.slug).localeCompare(t.name||t.slug)).map(e=>({value:e.repo_id,label:`${e.name||e.slug}${e.repo_id===n?.repo_id?` (default)`:``}`})),onChange:e=>{c(!!e&&e!==n?.repo_id)},onClear:()=>c(!1)})}),s&&(0,$.jsx)(C,{type:`warning`,showIcon:!0,icon:(0,$.jsx)(y,{}),style:{marginBottom:16},title:`Custom repository selected`,description:(0,$.jsx)(i.Text,{type:`secondary`,style:{fontSize:12},children:`The repository should be preset-io/agor-assistant or a fork/derivative. It contains an OpenClaw-inspired agent framework adapted for Agor that your assistant needs to operate.`})}),(0,$.jsx)(H.Item,{name:`name`,label:`Branch Name`,rules:[{pattern:/^[a-z0-9-]+$/,message:`Only lowercase letters, numbers, and hyphens allowed`}],tooltip:`Auto-generated from display name. Override if needed.`,children:(0,$.jsx)(L,{placeholder:`private-my-assistant`})}),(0,$.jsx)(H.Item,{name:`sourceBranch`,label:`Source Branch`,children:(0,$.jsx)(L,{placeholder:`main`})})]})}]})]})},Ir=({repoById:e,onValidityChange:t,formRef:n,onCreateRepo:r,availableAgents:a,mcpServerById:s=new Map,currentUser:c,client:l})=>{let u=Array.from(e.values()),{frameworkRepo:d,isCloning:f}=Pr(u,r),[p,m]=(0,Q.useState)(`claude-code`),{form:h,isFormValid:g,customRepoSelected:_,setCustomRepoSelected:v,validateForm:y,handleDisplayNameChange:b}=Mr(d);return(0,Q.useEffect)(()=>{!a.some(e=>e.id===p)&&a[0]?.id&&m(a[0].id)},[a,p]),(0,Q.useEffect)(()=>{let e=c?.default_agentic_config?.[p];h.setFieldsValue({...wn(p,e),...p!==`codex`&&{codexSandboxMode:void 0,codexApprovalPolicy:void 0,codexNetworkAccess:void 0}})},[p,c,h]),(0,Q.useEffect)(()=>{t(g)},[g,t]),n.current=async()=>{try{let e=await h.validateFields(),t=c?.default_agentic_config?.[p],n=e.permissionMode??t?.permissionMode??Be(p),r={displayName:e.displayName.trim(),description:e.description||void 0,emoji:e.emoji||void 0,repoId:e.repoId||d?.repo_id,branchName:e.name||`private-${_t(e.displayName)}`,sourceBranch:e.sourceBranch||`main`,agent:p,modelConfig:e.modelConfig??t?.modelConfig,effort:e.effort??t?.modelConfig?.effort,mcpServerIds:e.mcpServerIds??t?.mcpServerIds,permissionMode:n};if(p===`codex`){let i=ze(n);r.codexSandboxMode=e.codexSandboxMode??t?.codexSandboxMode??i.sandboxMode,r.codexApprovalPolicy=e.codexApprovalPolicy??t?.codexApprovalPolicy??i.approvalPolicy,r.codexNetworkAccess=e.codexNetworkAccess??t?.codexNetworkAccess??i.networkAccess}return r}catch{return null}},(0,$.jsx)(H,{form:h,layout:`vertical`,onFieldsChange:y,initialValues:{sourceBranch:`main`},children:(0,$.jsx)(Fr,{form:h,repos:u,frameworkRepo:d,isCloning:f,onDisplayNameChange:b,customRepoSelected:_,onCustomRepoChange:v,extraBeforeAdvanced:(0,$.jsx)(o,{ghost:!0,size:`small`,defaultActiveKey:[`first-session`],destroyOnHidden:!1,expandIcon:({isActive:e})=>(0,$.jsx)(x,{rotate:e?180:0}),items:[{key:`first-session`,label:(0,$.jsx)(i.Text,{strong:!0,children:`First Session Configuration`}),children:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(H.Item,{label:`Agentic Tool`,required:!0,children:(0,$.jsx)(cn,{agents:a,selectedAgentId:p,onSelect:e=>m(e),variant:`select`,showComparisonLink:!0})}),(0,$.jsx)(o,{ghost:!0,size:`small`,destroyOnHidden:!1,expandIcon:({isActive:e})=>(0,$.jsx)(x,{rotate:e?180:0}),items:[{key:`session-config`,label:(0,$.jsx)(i.Text,{type:`secondary`,children:`Session Configuration`}),children:(0,$.jsx)(Tt,{agenticTool:p,mcpServerById:s,showHelpText:!1,client:l})}]})]})}],style:{marginBottom:8}})})})},Lr=({onValidityChange:e,formRef:t})=>{let[n]=H.useForm(),r=(0,Q.useCallback)(()=>{setTimeout(()=>{e(!!n.getFieldsValue().name?.trim())},0)},[n,e]);return t.current=async()=>{try{return await n.validateFields(),qt(n)}catch{return null}},(0,$.jsx)(H,{form:n,layout:`vertical`,preserve:!0,onValuesChange:r,children:(0,$.jsx)(tn,{form:n,autoFocus:!0})})},Rr=({repoById:e,boardById:t=new Map,currentBoardId:n,defaultPosition:r,onValidityChange:i,formRef:a,branchStorageConfig:o})=>{let[s]=H.useForm(),[c,l]=(0,Q.useState)(null),u=c?e.get(c):void 0,d=(0,Q.useCallback)(()=>{setTimeout(()=>{let e=s.getFieldsValue();i(!!(e.repoId&&e.sourceBranch&&e.name&&e.boardId))},0)},[s,i]),f=(0,Q.useRef)(!1);return(0,Q.useEffect)(()=>{if(f.current||e.size===0)return;let t=localStorage.getItem(`agor-last-repo-id`);if(t&&e.has(t))f.current=!0,s.setFieldsValue({repoId:t,sourceBranch:e.get(t)?.default_branch,...n?{boardId:n}:{}}),l(t),d();else if(e.size>0){f.current=!0;let t=Rt(e)[0];s.setFieldsValue({repoId:t.repo_id,sourceBranch:t.default_branch,...n?{boardId:n}:{}}),l(t.repo_id),d()}},[e,n,s,d]),a.current=async()=>{try{let e=await s.validateFields(),t=e.refType||`branch`,n=Vt(e.storage_mode,o),i=n===`clone`&&typeof e.clone_depth==`number`&&e.clone_depth>0?e.clone_depth:void 0,a={repoId:e.repoId,name:e.name,ref:e.name,refType:t,createBranch:!0,sourceBranch:e.sourceBranch||u?.default_branch||`main`,pullLatest:!0,issue_url:e.issue_url,pull_request_url:e.pull_request_url,board_id:e.boardId,position:r,storage_mode:n,...i===void 0?{}:{clone_depth:i}};return e.repoId&&localStorage.setItem(`agor-last-repo-id`,e.repoId),a}catch{return null}},(0,$.jsx)(H,{form:s,layout:`vertical`,onValuesChange:d,children:(0,$.jsx)(yn,{repoById:e,boardById:t,selectedRepoId:c,onRepoChange:t=>{l(t);let n=e.get(t);n?.default_branch&&s.setFieldValue(`sourceBranch`,n.default_branch)},defaultBranch:u?.default_branch||`main`,showUrlFields:!0,showBoardSelector:!0,requireBoard:!0,onFormChange:d,branchStorageConfig:o})})},zr=({onValidityChange:e,formRef:t})=>{let[n]=H.useForm(),[r,i]=(0,Q.useState)(`remote`),a=(0,Q.useCallback)(()=>{setTimeout(()=>{let t=n.getFieldsValue();e(r===`local`?!!t.path?.trim():!!(t.url?.trim()&&t.slug?.trim()))},0)},[n,e,r]);return t.current=async()=>{try{let e=await n.validateFields();return r===`local`?{mode:`local`,local:{path:e.path,slug:e.slug||void 0}}:{mode:`remote`,remote:{url:e.url,slug:e.slug,default_branch:e.default_branch||`main`}}}catch{return null}},(0,$.jsx)(H,{form:n,layout:`vertical`,onValuesChange:a,initialValues:{default_branch:`main`},children:(0,$.jsx)(sn,{form:n,mode:`create`,repoMode:r,onRepoModeChange:t=>{let r=t.target.value;i(r),n.resetFields(),n.setFieldsValue({default_branch:r===`remote`?`main`:void 0}),e(!1)}})})},Br={branch:!1,assistant:!1,board:!1,repository:!1},Vr={branch:(0,$.jsxs)($.Fragment,{children:[`A branch (built on`,` `,(0,$.jsx)(`a`,{href:`https://git-scm.com/docs/git-branch`,target:`_blank`,rel:`noopener noreferrer`,children:`git branches`}),`) is essentially a place in the filesystem representing an isolated development branch. This is where one or more coding sessions take place. In Agor, they're generally ephemeral and follow the lifecycle of a given feature.`]}),assistant:`Assistants are long-lived agents with an identity, purpose, and goals. Think of them like employees. They have memory, can build their own skills, coordinate multiple coding agents, typically operate on their own Agor board, and can act proactively.`,board:`Boards are spatial canvases for organizing work. They contain branches, zones, cards, and other visual elements. Use boards to create workspaces for teams, projects, or assistants.`,repository:`Repositories connect your code to Agor. They can be cloned from GitHub or registered from a local path. Once connected, you can create branches for coding tasks.`},Hr={branch:`Create Branch`,assistant:`Create Assistant`,board:`Create Board`,repository:`Add Repository`};function Ur(e){Promise.resolve(e).catch(()=>{})}var Wr=({open:e,onClose:t,repoById:n,boardById:r,currentBoardId:i,defaultPosition:a,availableAgents:o,mcpServerById:s,currentUser:c,client:u,defaultTab:d=`assistant`,onCreateBranch:p,onCreateBoard:m,onCreateRepo:h,onCreateLocalRepo:g,onCreateAssistant:_,branchStorageConfig:v})=>{let[y,b]=(0,Q.useState)(d),[x,S]=(0,Q.useState)(Br),w=x[y],[T,E]=(0,Q.useState)(!1),[D,O]=(0,Q.useState)(null),[k,A]=(0,Q.useState)(null),ee=(0,Q.useRef)(null),j=(0,Q.useRef)(null),M=(0,Q.useRef)(null),N=(0,Q.useRef)(null);(0,Q.useEffect)(()=>{e||(S(Br),b(d),E(!1),O(null),A(null))},[e,d]);let P=(0,Q.useCallback)((e,t)=>{S(n=>n[e]===t?n:{...n,[e]:t})},[]),F=(0,Q.useCallback)(e=>P(`branch`,e),[P]),ne=(0,Q.useCallback)(e=>P(`assistant`,e),[P]),I=(0,Q.useCallback)(e=>P(`board`,e),[P]),re=(0,Q.useCallback)(e=>P(`repository`,e),[P]),ie=e=>{b(e),A(null),O(null)},ae=async()=>{E(!0),A(null),O(null);try{switch(y){case`branch`:{let e=await ee.current?.();e&&(Ur(p(e)),t());break}case`board`:{let e=await j.current?.();e&&(Ur(m(e)),t());break}case`repository`:{let e=await M.current?.();e&&(e.mode===`local`&&e.local?Ur(g(e.local)):e.remote&&Ur(h(e.remote)),t());break}case`assistant`:{let e=await N.current?.();e&&(O(`Creating assistant…`),await _(e,{onStatusChange:O}),t());break}}}catch(e){A(e instanceof Error?e.message:String(e))}finally{E(!1)}},oe=()=>{T||t()},L=[{key:`assistant`,label:(0,$.jsxs)(`span`,{children:[(0,$.jsx)(f,{style:{marginRight:8}}),`Assistant`]}),children:(0,$.jsxs)(`div`,{children:[(0,$.jsx)(C,{type:`info`,showIcon:!0,description:Vr.assistant,style:{marginBottom:16}}),(0,$.jsx)(Ir,{repoById:n,onValidityChange:ne,formRef:N,onCreateRepo:h,availableAgents:o,mcpServerById:s,currentUser:c,client:u})]})},{key:`branch`,label:(0,$.jsxs)(`span`,{children:[(0,$.jsx)(Ne,{style:{marginRight:8}}),`Branch`]}),children:(0,$.jsxs)(`div`,{children:[(0,$.jsx)(C,{type:`info`,showIcon:!0,description:Vr.branch,style:{marginBottom:16}}),(0,$.jsx)(Rr,{repoById:n,boardById:r,currentBoardId:i,defaultPosition:a,onValidityChange:F,formRef:ee,branchStorageConfig:v})]})},{key:`board`,label:(0,$.jsxs)(`span`,{children:[(0,$.jsx)(l,{style:{marginRight:8}}),`Board`]}),children:(0,$.jsxs)(`div`,{children:[(0,$.jsx)(C,{type:`info`,showIcon:!0,description:Vr.board,style:{marginBottom:16}}),(0,$.jsx)(Lr,{onValidityChange:I,formRef:j})]})},{key:`repository`,label:(0,$.jsxs)(`span`,{children:[(0,$.jsx)(te,{style:{marginRight:8}}),`Repository`]}),children:(0,$.jsxs)(`div`,{children:[(0,$.jsx)(C,{type:`info`,showIcon:!0,description:Vr.repository,style:{marginBottom:16}}),(0,$.jsx)(zr,{onValidityChange:re,formRef:M})]})}];return(0,$.jsxs)(Ee,{title:`Create New...`,open:e,onCancel:oe,destroyOnHidden:!0,width:720,closable:!T,maskClosable:!T,keyboard:!T,footer:[(0,$.jsx)(U,{onClick:oe,disabled:T,children:`Cancel`},`cancel`),(0,$.jsx)(U,{type:`primary`,onClick:ae,disabled:!w,loading:T,children:T&&D?D:Hr[y]},`create`)],styles:{body:{padding:`8px 0 0`}},children:[(0,$.jsx)(Ie,{activeKey:y,onChange:ie,items:L,style:{minHeight:360}}),k&&(0,$.jsx)(C,{type:`error`,showIcon:!0,message:`Couldn't finish creating this item`,description:k,style:{marginTop:16}})]})},{Text:Gr}=i,Kr=Q.memo(({event:e,branchById:t,sessionById:n,sessionsByBranch:r,repos:i,userById:a,currentUserId:o,selectedSessionId:s,branchActions:c,client:l})=>{let{token:u}=A.useToken(),d=()=>{switch(e.type){case`cursor`:return(0,$.jsx)(m,{style:{color:u.colorInfo}});case`message`:return(0,$.jsx)(h,{style:{color:u.colorSuccess}});case`tool`:return(0,$.jsx)(ve,{style:{color:u.colorPrimary}});case`crud`:return(0,$.jsx)(Ae,{style:{color:u.colorWarning}});case`connection`:return(0,$.jsx)(Pe,{style:{color:u.colorError}});default:return(0,$.jsx)(ve,{style:{color:u.colorTextSecondary}})}},f=()=>{switch(e.type){case`cursor`:return`blue`;case`message`:return`green`;case`tool`:return`purple`;case`crud`:return`orange`;case`connection`:return`red`;default:return`default`}},p=e=>e.toLocaleTimeString(`en-US`,{hour12:!1,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,fractionalSecondDigits:3}),g=e=>{if(e==null)return``;try{return JSON.stringify(e,null,2)}catch{return String(e)}},_=e=>{let t=[`created`,`patched`,`updated`,`removed`].find(t=>e.includes(t));return t?{entity:e.replace(t,``).trim(),action:t}:{entity:e}},v=e.data&&typeof e.data==`object`&&`session_id`in e.data?e.data.session_id:void 0,b=e.data&&typeof e.data==`object`&&`branch_id`in e.data?e.data.branch_id:void 0,x=e.data&&typeof e.data==`object`&&`created_by`in e.data?e.data.created_by:void 0,S=v?n.get(v):void 0,C=b||S?.branch_id,w=C?t.get(C):void 0,T=w?i.find(e=>e.repo_id===w.repo_id):void 0,E=w&&r.get(w.branch_id)||[],D=x?a.get(x):void 0,{entity:O,action:k}=_(e.eventName),ee=e.data?(0,$.jsx)(`div`,{style:{maxWidth:400,maxHeight:400,overflow:`auto`},children:(0,$.jsx)(`pre`,{style:{margin:0,padding:12,background:u.colorBgLayout,borderRadius:u.borderRadiusSM,fontSize:11,wordBreak:`break-all`,whiteSpace:`pre-wrap`},children:g(e.data)})}):(0,$.jsx)(Gr,{type:`secondary`,children:`No data`});return(0,$.jsxs)(`div`,{style:{padding:`6px 12px`,borderLeft:`3px solid ${u.colorPrimary}`,borderBottom:`1px solid ${u.colorBorderSecondary}`,background:u.colorBgContainer,display:`flex`,flexWrap:`wrap`,alignItems:`center`,gap:4,fontSize:12},children:[d(),(0,$.jsx)(Gr,{code:!0,style:{fontSize:11,color:u.colorTextSecondary,minWidth:85},children:p(e.timestamp)}),(0,$.jsx)(zt,{color:f(),style:{margin:0,fontSize:11,minWidth:70,textAlign:`center`},children:e.type}),O&&(0,$.jsx)(zt,{style:{margin:0,fontSize:11,backgroundColor:u.colorBgContainer,borderColor:u.colorBorder,color:u.colorText},children:O}),k&&(0,$.jsx)(zt,{color:k===`created`?`green`:k===`removed`?`red`:k===`patched`||k===`updated`?`orange`:`default`,style:{margin:0,fontSize:11},children:k}),!O&&!k&&(0,$.jsx)(Gr,{strong:!0,style:{fontSize:12,flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.eventName}),(0,$.jsx)(`div`,{style:{flex:1}}),v&&(0,$.jsx)(Jt,{id:v,icon:we,color:nt.session,copyLabel:`Session ID`,metadataCard:S?(0,$.jsx)(jt,{session:S,branch:w,repo:T,userById:a,currentUserId:o,compact:!0}):void 0}),C&&w&&T&&(0,$.jsx)(Jt,{id:C,label:w.name,icon:te,color:nt.branch,copyLabel:`Branch ID`,metadataCard:(0,$.jsx)(Hn,{branch:w,repo:T,sessions:E,userById:a,currentUserId:o,selectedSessionId:s,inPopover:!0,client:l,...c})}),D&&(0,$.jsx)(Bt,{user:D,compact:!0,style:{margin:0,fontSize:11}}),e.data?(0,$.jsx)(me,{content:ee,title:`Event Data`,trigger:`click`,placement:`left`,children:(0,$.jsx)(U,{type:`text`,size:`small`,icon:(0,$.jsx)(y,{}),style:{padding:`0 4px`}})}):null]})}),{Text:qr,Title:Jr}=i,Yr=({collapsed:e,onToggleCollapse:t,events:r,onClear:i,width:a=700,currentUserId:o,selectedSessionId:s,branchActions:c,currentBoard:l,client:u})=>{let{token:d}=A.useToken(),{branchById:f,sessionById:p,sessionsByBranch:m}=gr(),{repoById:h}=pr(),{userById:g}=mr(),_=(0,Q.useMemo)(()=>Array.from(h.values()),[h]),{onFork:v,onSubsession:y,onOpenTerminal:b,onStartEnvironment:x,onStopEnvironment:S,onViewLogs:C}=Mn(),T=(0,Q.useMemo)(()=>({...c,onForkSession:v,onSpawnSession:y,onOpenTerminal:b,onStartEnvironment:x,onStopEnvironment:S,onViewLogs:C}),[c,v,y,b,x,S,C]),[E,ee]=(0,Q.useState)(!1),[te,M]=(0,Q.useState)(!1),[N,P]=(0,Q.useState)(!1),[F,ne]=(0,Q.useState)(!1),[I,re]=(0,Q.useState)(new Set),[ie,ae]=(0,Q.useState)(new Set),[oe,L]=(0,Q.useState)([]),se=()=>{F||L(r),ne(!F)},R=F?oe:r,z=(0,Q.useMemo)(()=>R.filter(e=>{if(!E&&e.type===`cursor`||!te&&e.type===`message`||!N&&e.eventName.includes(`terminals`)||I.size>0&&!I.has(e.type))return!1;if(ie.size>0&&e.type===`crud`){let t=[`created`,`patched`,`updated`,`removed`].find(t=>e.eventName.includes(t));if(!t||!ie.has(t))return!1}return!0}),[R,E,te,N,I,ie]),ce=R.length,le=z.length,B=F?r.length-oe.length:0;return e?null:(0,$.jsxs)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:d.colorBgContainer,borderLeft:`1px solid ${d.colorBorder}`,display:`flex`,flexDirection:`column`},children:[(0,$.jsxs)(`div`,{style:{padding:12,borderBottom:`1px solid ${d.colorBorder}`,display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,$.jsxs)(V,{children:[(0,$.jsx)(Pe,{}),(0,$.jsx)(Jr,{level:5,style:{margin:0},children:`Live Event Stream`}),(0,$.jsx)(zt,{color:`blue`,style:{fontSize:10,marginLeft:4},children:`BETA`}),l&&(0,$.jsx)(zt,{icon:l.icon?(0,$.jsx)(`span`,{children:l.icon}):void 0,style:{fontSize:11,marginLeft:4},children:l.name})]}),t&&(0,$.jsx)(U,{type:`text`,size:`small`,icon:(0,$.jsx)(Te,{}),onClick:t,danger:!0})]}),(0,$.jsx)(`div`,{style:{padding:`12px 12px 8px`,borderBottom:`1px solid ${d.colorBorder}`,backgroundColor:d.colorBgContainer},children:(0,$.jsxs)(V,{size:`small`,children:[(0,$.jsx)(U,{icon:F?(0,$.jsx)(n,{}):(0,$.jsx)(w,{}),onClick:se,type:F?`primary`:`default`,size:`small`,children:F?`Resume`:`Pause`}),(0,$.jsx)(U,{icon:(0,$.jsx)(D,{}),onClick:i,disabled:ce===0,type:`text`,size:`small`,danger:!0,children:`Clear`})]})}),(0,$.jsxs)(`div`,{style:{padding:12,borderBottom:`1px solid ${d.colorBorder}`,backgroundColor:d.colorBgContainer},children:[(0,$.jsxs)(`div`,{style:{marginBottom:12,display:`flex`,alignItems:`center`,gap:4},children:[(0,$.jsx)(qr,{type:`secondary`,style:{fontSize:12},children:`Showing`}),(0,$.jsx)(O,{count:le,showZero:!0,style:{backgroundColor:d.colorPrimaryBgHover,color:d.colorText}}),(0,$.jsx)(qr,{type:`secondary`,style:{fontSize:12},children:`out of`}),(0,$.jsx)(O,{count:ce,showZero:!0,style:{backgroundColor:d.colorPrimaryBgHover,color:d.colorText}}),(0,$.jsx)(qr,{type:`secondary`,style:{fontSize:12},children:`events`}),F&&B>0&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(qr,{type:`secondary`,style:{fontSize:12,marginLeft:8},children:`•`}),(0,$.jsx)(O,{count:B,style:{backgroundColor:d.colorWarningBg,color:d.colorWarning}}),(0,$.jsx)(qr,{type:`warning`,style:{fontSize:11},children:`new while paused`})]})]}),(0,$.jsx)(qr,{type:`secondary`,style:{display:`block`,marginBottom:8,fontSize:12},children:`Quick Filters:`}),(0,$.jsxs)(V,{wrap:!0,size:`middle`,style:{width:`100%`},children:[(0,$.jsx)(Le,{checked:E,onChange:e=>ee(e.target.checked),children:(0,$.jsx)(qr,{style:{fontSize:12},children:`Cursor movement`})}),(0,$.jsx)(Le,{checked:te,onChange:e=>M(e.target.checked),children:(0,$.jsx)(qr,{style:{fontSize:12},children:`Message streams`})}),(0,$.jsx)(Le,{checked:N,onChange:e=>P(e.target.checked),children:(0,$.jsx)(qr,{style:{fontSize:12},children:`Terminal data`})})]}),(0,$.jsxs)(V,{orientation:`horizontal`,size:`small`,style:{width:`100%`,marginTop:12},wrap:!0,children:[(0,$.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,flex:1,minWidth:200},children:[(0,$.jsx)(qr,{type:`secondary`,style:{marginBottom:4,fontSize:11},children:`Event Types:`}),(0,$.jsx)(k,{mode:`multiple`,placeholder:`Filter by type`,value:Array.from(I),onChange:e=>re(new Set(e)),style:{width:`100%`},size:`small`,allowClear:!0,maxTagCount:`responsive`,children:[`cursor`,`message`,`tool`,`crud`,`connection`,`other`].map(e=>(0,$.jsx)(k.Option,{value:e,children:e},e))})]}),(0,$.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,flex:1,minWidth:200},children:[(0,$.jsx)(qr,{type:`secondary`,style:{marginBottom:4,fontSize:11},children:`CRUD Operations:`}),(0,$.jsx)(k,{mode:`multiple`,placeholder:`Filter by operation`,value:Array.from(ie),onChange:e=>ae(new Set(e)),style:{width:`100%`},size:`small`,allowClear:!0,maxTagCount:`responsive`,children:[`created`,`patched`,`updated`,`removed`].map(e=>(0,$.jsx)(k.Option,{value:e,children:e},e))})]})]})]}),(0,$.jsx)(`div`,{style:{flex:1,overflow:`auto`},children:z.length===0?(0,$.jsx)(j,{description:ce===0?`No events captured yet`:`No events match current filters`,style:{marginTop:60}}):(0,$.jsx)(`div`,{style:{border:`1px solid ${d.colorBorderSecondary}`,borderRadius:d.borderRadius,overflow:`hidden`,margin:12},children:z.map(e=>(0,$.jsx)(Kr,{event:e,branchById:f,sessionById:p,sessionsByBranch:m,repos:_,userById:g,currentUserId:o,selectedSessionId:s,branchActions:T,client:u},e.id))})})]})},{Title:Xr}=i,Zr=({title:e,icon:t,info:n,extra:r})=>{let{token:i}=A.useToken();return(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:12,marginBottom:12},children:[(0,$.jsxs)(V,{size:8,children:[t,(0,$.jsx)(Xr,{level:4,style:{margin:0},children:e}),n&&(0,$.jsx)(me,{content:(0,$.jsx)(`div`,{style:{maxWidth:320},children:n}),trigger:`hover`,placement:`rightTop`,children:(0,$.jsx)(y,{style:{color:i.colorTextTertiary,cursor:`help`}})})]}),r]})},Qr=(e,t)=>{if(e.startsWith(`#`)){let n=e.slice(1),r=n.length===3?n.split(``).map(e=>`${e}${e}`).join(``):n;if(r.length===6){let e=Number.parseInt(r,16);return`rgba(${e>>16&255}, ${e>>8&255}, ${e&255}, ${t})`}}let n=e.match(/^rgba?\(([^)]+)\)$/);if(n){let[e,r,i]=n[1].split(`,`).map(e=>e.trim()).slice(0,3);return`rgba(${e}, ${r}, ${i}, ${t})`}return e},$r=(e,t=.5)=>({background:Qr(e.colorBgContainer,t),backgroundColor:Qr(e.colorBgContainer,t),backdropFilter:`blur(12px)`,WebkitBackdropFilter:`blur(12px)`}),{Text:ei}=i,ti=100,ni=({icon:e,message:t,time:n})=>{let{token:i}=A.useToken();return(0,$.jsx)(S.Item,{style:{padding:`10px 0`},children:(0,$.jsxs)(V,{align:`start`,children:[(0,$.jsx)(r,{size:`small`,style:{background:i.colorFillSecondary,color:i.colorText},children:e}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`div`,{children:t}),n&&(0,$.jsx)(ei,{type:`secondary`,style:{fontSize:12},children:Kt(n)})]})]})})},ri=({branchById:e,boardById:t,sessionById:n,userById:r,onBoardClick:i,onBranchClick:a,onSessionClick:o})=>{let{token:s}=A.useToken(),c=$r(s),[l,u]=(0,Q.useState)(`all`),d=(0,Q.useMemo)(()=>({cursor:`pointer`,marginInlineEnd:0}),[]),p=(0,Q.useCallback)((e,n)=>{let o=e.board_id?t.get(e.board_id):void 0,s=r.get(e.created_by),c=q(e),l=c?.displayName??e.name;return(0,$.jsxs)(V,{size:4,wrap:!0,children:[s?(0,$.jsx)(Bt,{user:s,compact:!0}):(0,$.jsx)(ei,{strong:!0,children:`Someone`}),(0,$.jsx)(ei,{type:`secondary`,children:`created`}),n?(0,$.jsx)(gt,{name:l,emoji:c?.emoji,compact:!0,title:e.name,onClick:()=>a(e.branch_id),style:d}):(0,$.jsx)(Mt,{branch:l,compact:!0,title:e.name,onClick:()=>a(e.branch_id)}),o&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ei,{type:`secondary`,children:`on`}),(0,$.jsx)(Pt,{board:o,compact:!0,onClick:()=>i(o.board_id),style:d})]})]})},[t,d,i,a,r]),m=(0,Q.useCallback)(n=>{let s=e.get(n.branch_id),c=s?.board_id?t.get(s.board_id):void 0,l=r.get(n.created_by),u=vt(n,{includeAgentFallback:!0,includeIdFallback:!0}),f=new Date(n.created_at).getTime(),p=new Date(n.last_updated).getTime(),m=Math.abs(p-f)<1e3?`started`:`updated`;return(0,$.jsxs)(V,{size:4,wrap:!0,children:[l?(0,$.jsx)(Bt,{user:l,compact:!0}):(0,$.jsx)(ei,{strong:!0,children:`Someone`}),(0,$.jsx)(ei,{type:`secondary`,children:m}),(0,$.jsx)(me,{trigger:`hover`,title:(0,$.jsx)(ei,{style:{maxWidth:320,display:`block`},children:u}),content:(0,$.jsxs)(ei,{type:`secondary`,style:{fontSize:12},children:[n.agentic_tool,` · `,n.status.replaceAll(`_`,` `)]}),children:(0,$.jsx)(ln,{ariaLabel:u,title:u,onClick:()=>o(n.session_id),style:{...d,display:`inline-flex`,alignItems:`center`,paddingInline:6}})}),s&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ei,{type:`secondary`,children:`in`}),(0,$.jsx)(Mt,{branch:s.name,compact:!0,onClick:()=>a(s.branch_id)})]}),c&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ei,{type:`secondary`,children:`on`}),(0,$.jsx)(Pt,{board:c,compact:!0,onClick:()=>i(c.board_id),style:d})]})]})},[t,e,i,a,o,d,r]),h=(0,Q.useMemo)(()=>[...Array.from(e.values()).filter(e=>!e.archived).map(e=>{let t=Ye(e);return{id:`branch:${e.branch_id}`,type:t?`assistants`:`branches`,dttm:e.created_at,entityId:e.branch_id}}),...Array.from(n.values()).filter(e=>!e.archived).map(e=>({id:`session:${e.session_id}`,type:`sessions`,dttm:e.last_updated,entityId:e.session_id}))].filter(e=>l===`all`||e.type===l).sort((e,t)=>new Date(t.dttm).getTime()-new Date(e.dttm).getTime()).slice(0,ti),[e,n,l]),g=(0,Q.useCallback)(e=>e.type===`sessions`?(0,$.jsx)(Ce,{}):e.type===`assistants`?(0,$.jsx)(f,{}):(0,$.jsx)(Ne,{}),[]),_=(0,Q.useCallback)(t=>{if(t.type===`sessions`){let e=n.get(t.entityId);return e?m(e):null}let r=e.get(t.entityId);return r?p(r,t.type===`assistants`):null},[e,p,n,m]);return(0,$.jsxs)(B,{style:{minHeight:0,flex:1,...c},styles:{body:{height:`100%`,display:`flex`,flexDirection:`column`,background:`transparent`}},children:[(0,$.jsx)(Zr,{title:`Team activity`,icon:(0,$.jsx)(ue,{}),info:`Up to ${ti} recent branch, assistant, and session events derived from local state and sorted together by event time. A persisted activity summary endpoint can replace this later for comments, artifacts, and prompt events.`,extra:(0,$.jsx)(fe,{size:`small`,value:l,onChange:u,options:[{label:(0,$.jsx)(T,{title:`All activity`,children:`All`}),value:`all`},{label:(0,$.jsx)(T,{title:`Branches`,children:(0,$.jsx)(Ne,{})}),value:`branches`},{label:(0,$.jsx)(T,{title:`Sessions`,children:(0,$.jsx)(Ce,{})}),value:`sessions`},{label:(0,$.jsx)(T,{title:`Assistants`,children:(0,$.jsx)(f,{})}),value:`assistants`}]})}),(0,$.jsx)(`div`,{style:{overflow:`auto`,minHeight:0},children:h.length===0?(0,$.jsx)(j,{image:j.PRESENTED_IMAGE_SIMPLE,description:`No recent activity`}):(0,$.jsx)(S,{rowKey:`id`,dataSource:h,renderItem:e=>{let t=_(e);return t?(0,$.jsx)(ni,{icon:g(e),message:t,time:e.dttm}):null}})})]})},{Text:ii}=i,ai=50,oi=new Set([`running`,`stopping`,`awaiting_permission`,`awaiting_input`]),si=e=>{let t=new Map;for(let n of e.values()){if(n.archived||!n.board_id)continue;let e=t.get(n.board_id)??[];e.push(n),t.set(n.board_id,e)}return t},ci=e=>{let t=new Map;for(let[n,r]of e){let e=r.filter(e=>!e.archived);e.length>0&&t.set(n,e)}return t},li=({boardById:e,recentBoardIds:t,branchById:n,sessionsByBranch:r})=>{let i=new Map((t??[]).map((e,t)=>[e,t])),a=si(n),o=ci(r);return Array.from(e.values()).filter(e=>!e.archived).map(e=>{let t=a.get(e.board_id)??[],r=t.flatMap(e=>o.get(e.branch_id)??[]),s=e.primary_assistant_id?n.get(e.primary_assistant_id):void 0,c=Math.max(new Date(e.last_updated).getTime(),...t.map(e=>new Date(e.updated_at||e.created_at).getTime()),...r.map(e=>new Date(e.last_updated).getTime()));return{board:e,branches:t,sessions:r,primaryAssistant:s,latest:Number.isFinite(c)?c:0,visitRank:i.get(e.board_id)??1/0}}).sort((e,t)=>e.visitRank-t.visitRank||t.latest-e.latest||e.board.name.localeCompare(t.board.name)).slice(0,ai)},ui=({board:e,branches:t,sessions:n,primaryAssistant:i,onClick:a})=>{let{token:o}=A.useToken(),s=$r(o),c=i?q(i):null,[l,u]=(0,Q.useState)(!1),d=n.filter(e=>oi.has(e.status)).length,p=[...n].sort((e,t)=>new Date(t.last_updated).getTime()-new Date(e.last_updated).getTime())[0],m=e.description?.trim()??``,h=m.split(/\r?\n/)[0]?.trim()??``;return(0,$.jsx)(B,{hoverable:!0,onClick:a,onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),style:{width:320,flex:`0 0 320px`,borderColor:l?o.colorPrimaryBorderHover:o.colorBorderSecondary,...s,background:l?Qr(o.colorBgElevated,.65):s.background,backgroundColor:l?Qr(o.colorBgElevated,.65):s.backgroundColor,boxShadow:l?o.boxShadowSecondary:void 0,transition:`border-color 0.2s, background 0.2s, box-shadow 0.2s`},styles:{body:{minHeight:136,background:`transparent`}},children:(0,$.jsxs)(V,{direction:`vertical`,size:12,style:{width:`100%`},children:[(0,$.jsx)(V,{align:`start`,style:{width:`100%`,justifyContent:`space-between`},children:(0,$.jsxs)(V,{size:10,style:{minWidth:0},children:[(0,$.jsx)(r,{style:{background:o.colorFillSecondary,color:o.colorText,flexShrink:0},children:e.icon||`📋`}),(0,$.jsxs)(`div`,{style:{minWidth:0},children:[(0,$.jsxs)(V,{size:6,style:{maxWidth:230},children:[(0,$.jsx)(ii,{strong:!0,ellipsis:{tooltip:e.name},style:{display:`block`,maxWidth:i?190:220},children:e.name}),i&&(0,$.jsx)(T,{title:`Primary assistant: ${c?.displayName??i.name}`,children:(0,$.jsx)(f,{"aria-label":`Primary assistant`,style:{color:o.colorPrimary,fontSize:13,flexShrink:0}})})]}),(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6,maxWidth:220,minHeight:20},children:[(0,$.jsx)(ii,{type:`secondary`,ellipsis:m?{tooltip:h}:!1,style:{display:`block`,fontSize:12,flex:1,minWidth:0,whiteSpace:`nowrap`},children:h||`\xA0`}),m&&(0,$.jsx)(me,{content:(0,$.jsx)(`div`,{style:{maxWidth:360,maxHeight:320,overflow:`auto`},children:(0,$.jsx)(St,{content:m,compact:!0,showControls:!1})}),title:`Board description`,trigger:`hover`,placement:`rightTop`,children:(0,$.jsx)(y,{style:{color:o.colorTextTertiary,cursor:`help`,flexShrink:0,fontSize:12}})})]})]})]})}),(0,$.jsxs)(V,{wrap:!0,size:[6,6],children:[(0,$.jsxs)(_,{icon:(0,$.jsx)(Ne,{}),children:[t.length,` branch`,t.length===1?``:`es`]}),(0,$.jsxs)(_,{children:[n.length,` session`,n.length===1?``:`s`]}),d>0&&(0,$.jsxs)(_,{color:`processing`,children:[d,` active`]})]}),(0,$.jsx)(ii,{type:`secondary`,style:{fontSize:12},children:p?(0,$.jsxs)($.Fragment,{children:[`Last session `,Kt(p.last_updated)]}):`No sessions yet`})]})})},di=({boardById:e,recentBoardIds:t=[],branchById:n,sessionsByBranch:r,onBoardClick:i})=>{let{token:a}=A.useToken(),o=(0,Q.useMemo)(()=>li({boardById:e,recentBoardIds:t,branchById:n,sessionsByBranch:r}),[e,t,n,r]);return(0,$.jsxs)(`section`,{children:[(0,$.jsx)(Zr,{title:`Boards`,icon:(0,$.jsx)(N,{}),info:`Up to ${ai} accessible boards, sorted by this browser’s last-visited board order when available, then by recent board, branch, or session activity.`}),o.length===0?(0,$.jsx)(B,{style:$r(a),children:(0,$.jsx)(j,{image:j.PRESENTED_IMAGE_SIMPLE,description:`No boards yet. Use the create button to make your first board, assistant, repo, or branch.`})}):(0,$.jsx)(`div`,{style:{display:`flex`,gap:16,overflowX:`auto`,paddingTop:2,paddingBottom:10,scrollbarColor:`${a.colorFill} transparent`},children:o.map(({board:e,branches:t,sessions:n,primaryAssistant:r})=>(0,$.jsx)(ui,{board:e,branches:t,sessions:n,primaryAssistant:r,onClick:()=>i(e.board_id)},e.board_id))})]})},{Text:fi}=i,pi=50,mi=e=>Array.isArray(e)?e:e.data??[],hi=({doc:e})=>{let{token:t}=A.useToken(),n=Ke(),r=Zn(e.uri),i=Xn(`/knowledge`,r,e.path);return(0,$.jsx)(S.Item,{onClick:()=>n(i),style:{cursor:`pointer`,padding:`10px 0`},children:(0,$.jsx)(S.Item.Meta,{avatar:e.icon_emoji?(0,$.jsx)(`span`,{style:{fontSize:18,lineHeight:`22px`},children:e.icon_emoji}):(0,$.jsx)(s,{style:{color:t.colorTextTertiary}}),title:(0,$.jsxs)(V,{size:6,style:{maxWidth:`100%`},children:[(0,$.jsx)(fi,{ellipsis:{tooltip:e.title||e.path},style:{minWidth:0},children:e.title||e.path}),(0,$.jsx)(on,{namespace:r||`Knowledge`,style:{marginInlineEnd:0}})]}),description:(0,$.jsxs)(V,{size:6,wrap:!0,children:[(0,$.jsx)(fi,{type:`secondary`,style:{fontSize:12},children:e.path}),e.updated_at&&(0,$.jsxs)(fi,{type:`secondary`,style:{fontSize:12},children:[`· `,Kt(e.updated_at)]})]})})})},gi=({client:e,connected:t})=>{let{token:n}=A.useToken(),r=$r(n),[i,a]=(0,Q.useState)([]),[o,s]=(0,Q.useState)(!1);return(0,Q.useEffect)(()=>{let t=!1;if(e)return s(!0),e.service(`kb/documents`).find({query:{archived:!1,$limit:pi,$sort:{updated_at:-1}}}).then(e=>{t||a(mi(e).sort((e,t)=>new Date(t.updated_at||t.created_at||0).getTime()-new Date(e.updated_at||e.created_at||0).getTime()).slice(0,pi))}).catch(e=>{t||console.error(`Failed to load recent Knowledge:`,e)}).finally(()=>{t||s(!1)}),()=>{t=!0}},[e]),(0,$.jsxs)(B,{loading:o,style:{minHeight:0,flex:1,...r},styles:{body:{height:`100%`,display:`flex`,flexDirection:`column`,background:`transparent`}},children:[(0,$.jsx)(Zr,{title:`Recent Knowledge`,icon:(0,$.jsx)(R,{}),info:`Up to ${pi} recently updated readable Knowledge documents from kb/documents. Access checks remain server-side through the existing Knowledge service.`}),(0,$.jsx)(`div`,{style:{overflow:`auto`,minHeight:0},children:t?i.length===0?(0,$.jsx)(j,{image:j.PRESENTED_IMAGE_SIMPLE,description:`No Knowledge docs yet`}):(0,$.jsx)(S,{rowKey:`document_id`,dataSource:i,renderItem:e=>(0,$.jsx)(hi,{doc:e})}):(0,$.jsx)(j,{image:j.PRESENTED_IMAGE_SIMPLE,description:`Reconnect to refresh Knowledge`})})]})},{Text:_i}=i,vi=100,yi=new Set([`awaiting_permission`,`awaiting_input`,`failed`,`timed_out`]),bi=({session:e,branch:t,board:n,repo:r,searchQuery:i,searchActive:a,onClick:o})=>{let{token:s}=A.useToken(),c=vt(e,{includeAgentFallback:!0}),l=Lt(e.status),u=a&&e.title&&e.description?Jn(e.description,i):null,d=a&&Wn(e,i);return(0,$.jsx)(S.Item,{onClick:o,style:{cursor:`pointer`,padding:`10px 16px`,borderBlockEnd:`1px solid ${s.colorBorderSecondary}`},children:(0,$.jsx)(S.Item.Meta,{avatar:(0,$.jsx)(O,{dot:l!==`success`&&l!=="default",status:l===`success`||l==="default"?void 0:l,children:(0,$.jsx)(Ce,{style:{fontSize:20,color:s.colorTextSecondary}})}),title:(0,$.jsxs)(V,{size:8,style:{width:`100%`},children:[(0,$.jsx)(_i,{ellipsis:{tooltip:c},style:{maxWidth:420},children:(0,$.jsx)(En,{text:c,query:i})}),e.ready_for_prompt&&(0,$.jsx)(_,{color:`cyan`,children:`ready`}),yi.has(e.status)&&(0,$.jsx)(_,{color:`warning`,children:e.status.replaceAll(`_`,` `)})]}),description:(0,$.jsxs)(V,{direction:`vertical`,size:4,style:{width:`100%`},children:[d&&(0,$.jsxs)(_i,{type:`secondary`,style:{fontSize:11},children:[`Agent: `,(0,$.jsx)(En,{text:e.agentic_tool,query:i})]}),u&&u!==c&&(0,$.jsx)(_i,{type:`secondary`,italic:!0,style:{fontSize:11,lineHeight:1.4},children:(0,$.jsx)(En,{text:u,query:i})}),(0,$.jsxs)(V,{size:8,wrap:!0,children:[(0,$.jsx)(T,{title:Z(e.last_updated),children:(0,$.jsx)(_i,{type:`secondary`,style:{fontSize:12},children:Kt(e.last_updated)})}),n&&(0,$.jsx)(Pt,{board:n,compact:!0}),t&&(0,$.jsx)(Mt,{branch:t.name,compact:!0,title:r?`${r.slug} / ${t.name}`:t.name})]})]})})})},xi=({sessionById:e,branchById:t,boardById:n,repoById:r,currentUserId:i,onSessionClick:a})=>{let{token:o}=A.useToken(),s=$r(o),[c,l]=(0,Q.useState)(``),[u,d]=ct(Bn,`recent`),f=(0,Q.useMemo)(()=>Array.from(e.values()).filter(e=>!e.archived&&(!i||e.created_by===i)),[i,e]),p=c.trim(),m=Fn(p),h=(0,Q.useMemo)(()=>(m?In(f,p).map(({session:e})=>e):Vn(f,u)).slice(0,vi),[f,m,p,u]);return(0,$.jsxs)(`section`,{style:{minHeight:0,flex:1,display:`flex`,flexDirection:`column`},children:[(0,$.jsx)(Zr,{title:i?`My Sessions`:`Sessions`,icon:(0,$.jsx)(Ce,{}),info:`Up to ${vi} ${i?`of your`:`cross-board`} sessions using the same local session state as the board left panel. Board and branch pills are included because this list is not filtered to one board.`}),(0,$.jsxs)(B,{styles:{body:{padding:0,display:`flex`,flexDirection:`column`,height:`100%`,background:`transparent`}},style:{minHeight:0,flex:1,...s},children:[(0,$.jsx)(`div`,{style:{padding:16},children:(0,$.jsx)(Nn,{value:c,onChange:l,sort:u,onSortChange:d,searching:m,placeholder:`Search sessions...`})}),(0,$.jsx)(`div`,{style:{overflow:`auto`,minHeight:0,flex:1},children:h.length===0?(0,$.jsx)(j,{image:j.PRESENTED_IMAGE_SIMPLE,description:m?`No matching sessions`:`No sessions yet`,style:{padding:`28px 0`}}):(0,$.jsx)(S,{rowKey:`session_id`,dataSource:h,renderItem:e=>{let i=t.get(e.branch_id);return(0,$.jsx)(bi,{session:e,branch:i,board:i?.board_id?n.get(i.board_id):void 0,repo:i?r.get(i.repo_id):void 0,searchQuery:p,searchActive:m,onClick:()=>a(e.session_id)})}})})]})]})},{Text:Si,Title:Ci}=i,wi=e=>{let{token:t}=A.useToken(),n=Yn[tt(t)?`dark`:`light`];return(0,$.jsx)(`div`,{style:{height:`100%`,width:`100%`,overflow:`hidden`,background:n},children:(0,$.jsxs)(`div`,{style:{height:`100%`,minHeight:0,padding:`32px clamp(32px, 5vw, 80px) 28px`,display:`grid`,gridTemplateColumns:`minmax(0, 1fr) minmax(380px, 540px)`,gap:24},children:[(0,$.jsxs)(`main`,{style:{minWidth:0,minHeight:0,display:`flex`,flexDirection:`column`,gap:24},children:[(0,$.jsx)(`div`,{children:(0,$.jsxs)(V,{direction:`vertical`,size:4,children:[(0,$.jsx)(Ci,{level:2,style:{margin:0},children:`Home`}),(0,$.jsx)(Si,{type:`secondary`,children:`Jump into boards, resume your sessions, and see recent team context.`})]})}),(0,$.jsx)(di,{boardById:e.boardById,recentBoardIds:e.recentBoardIds,branchById:e.branchById,sessionsByBranch:e.sessionsByBranch,onBoardClick:e.onBoardClick}),(0,$.jsx)(xi,{sessionById:e.sessionById,branchById:e.branchById,boardById:e.boardById,repoById:e.repoById,currentUserId:e.currentUserId,onSessionClick:e.onSessionClick})]}),(0,$.jsxs)(`aside`,{style:{minHeight:0,display:`flex`,flexDirection:`column`,gap:16},children:[(0,$.jsx)(ri,{branchById:e.branchById,boardById:e.boardById,sessionById:e.sessionById,userById:e.userById,onBoardClick:e.onBoardClick,onBranchClick:e.onBranchClick,onSessionClick:e.onSessionClick}),(0,$.jsx)(gi,{client:e.client,connected:e.connected})]})]})})},Ti=({onClick:e})=>{let t=Y();return(0,$.jsx)(T,{title:t?`Disconnected from daemon`:`Create new...`,placement:`left`,children:(0,$.jsx)(U,{type:`primary`,shape:`circle`,size:`large`,icon:(0,$.jsx)(M,{style:{fontSize:20}}),onClick:e,disabled:t,style:{position:`absolute`,right:24,top:24,width:56,height:56,boxShadow:`0 4px 12px rgba(0, 0, 0, 0.15)`,zIndex:100}})})},Ei=({open:e,onClose:t,onCreate:n,availableAgents:r,branchId:a,branch:s,mcpServerById:c=new Map,currentUser:l,client:u,userById:d})=>{let[f]=H.useForm(),[p,m]=(0,Q.useState)(`claude-code`),[h,g]=(0,Q.useState)(!1),[_,v]=(0,Q.useState)([]),y=!!p;return(0,Q.useEffect)(()=>{if(!e)return;m(`claude-code`),g(!1),v([]);let t=l?.default_agentic_config?.[`claude-code`],n=wn(`claude-code`,t),r=s?.mcp_server_ids;f.setFieldsValue({title:``,initialPrompt:``,...n,mcpServerIds:r&&r.length>0?r:n.mcpServerIds})},[e,f]),(0,Q.useEffect)(()=>{if(p){let e=p,t=l?.default_agentic_config?.[e],n=wn(e,t);f.setFieldsValue({...n,mcpServerIds:s?.mcp_server_ids&&s.mcp_server_ids.length>0?s.mcp_server_ids:n.mcpServerIds,...e!==`codex`&&{codexSandboxMode:void 0,codexApprovalPolicy:void 0,codexNetworkAccess:void 0}})}},[p,f,l,s?.mcp_server_ids]),(0,$.jsx)(Ee,{title:`Create New Session`,open:e,onOk:()=>{f.validateFields().then(()=>{let e=f.getFieldsValue(!0);g(!0);let t=l?.default_agentic_config?.[p],r=s?.mcp_server_ids,i=r&&r.length>0?r:t?.mcpServerIds,o=e.permissionMode??t?.permissionMode??Be(p),c={branch_id:a,agent:p,title:e.title,initialPrompt:e.initialPrompt,modelConfig:e.modelConfig??t?.modelConfig,effort:e.effort??t?.modelConfig?.effort,mcpServerIds:e.mcpServerIds??i,permissionMode:o,envVarNames:_.length>0?_:void 0};if(p===`codex`){let n=ze(o);c.codexSandboxMode=e.codexSandboxMode??t?.codexSandboxMode??n.sandboxMode,c.codexApprovalPolicy=e.codexApprovalPolicy??t?.codexApprovalPolicy??n.approvalPolicy,c.codexNetworkAccess=e.codexNetworkAccess??t?.codexNetworkAccess??n.networkAccess}n(c)})},onCancel:()=>{f.resetFields(),t()},okText:`Create Session`,cancelText:`Cancel`,width:700,okButtonProps:{disabled:!y||h,loading:h},children:(0,$.jsxs)(H,{form:f,layout:`vertical`,style:{marginTop:16},preserve:!1,children:[s&&(0,$.jsx)(C,{title:(0,$.jsxs)($.Fragment,{children:[`Creating session in branch: `,(0,$.jsx)(`strong`,{children:s.name}),` (`,s.ref,`)`]}),type:`info`,showIcon:!0,style:{marginBottom:16}}),(0,$.jsx)(H.Item,{label:`Select Coding Agent`,required:!0,children:(0,$.jsx)(cn,{agents:r,selectedAgentId:p,onSelect:m,columns:2,showHelperText:!0,showComparisonLink:!0})}),(0,$.jsx)(H.Item,{name:`title`,label:`Title (optional)`,children:(0,$.jsx)(L,{placeholder:`e.g., Add authentication system`})}),(0,$.jsx)(H.Item,{name:`initialPrompt`,label:`Initial Prompt (optional)`,help:`First message to send to the agent when session starts`,children:(0,$.jsx)(Qn,{value:f.getFieldValue(`initialPrompt`)||``,onChange:e=>f.setFieldValue(`initialPrompt`,e),placeholder:`e.g., Build a JWT authentication system with secure password storage... (type @ for autocomplete)`,autoSize:{minRows:4,maxRows:8},client:u,sessionId:null,userById:d,enableKnowledgeMentions:!0,kbLinkTarget:`absolute-route`})}),(0,$.jsx)(it,{mcpServerById:c}),(0,$.jsx)(o,{ghost:!0,destroyOnHidden:!1,expandIcon:({isActive:e})=>(0,$.jsx)(x,{rotate:e?180:0}),items:[{key:`agentic-tool-config`,label:(0,$.jsx)(i.Text,{strong:!0,children:`Agentic Tool Configuration`}),children:(0,$.jsx)(Tt,{agenticTool:p||`claude-code`,mcpServerById:c,showHelpText:!0,hideMcpServers:!0,client:u})},...l&&u?[{key:`env-vars`,label:(0,$.jsx)(i.Text,{strong:!0,children:`Environment Variables`}),children:(0,$.jsx)(Pn,{ownerUserId:l.user_id,client:u,value:_,onChange:v})}]:[]],style:{marginTop:16}})]})})};function Di(e,t){if(e?.auth?.type!==`oauth`)return!1;let n=e.auth.oauth_token_expires_at,r=!!(n&&n<=Date.now());return!(e.auth.oauth_access_token&&!r||t.has(e.mcp_server_id)&&!r)}var{TextArea:Oi}=L,{Text:ki}=i,Ai=({sessionId:e,daemonUrl:t,open:n,onClose:r,onUploadComplete:i,onInsertMention:a,initialFiles:o})=>{let{showSuccess:s,showWarning:l,showError:u}=Qe(),[f,p]=(0,Q.useState)([]),[m,h]=(0,Q.useState)(`branch`),[g,_]=(0,Q.useState)(!0),[v,y]=(0,Q.useState)(`Please review this file: {filepath}`),[b,x]=(0,Q.useState)(!1),S=(0,Q.useRef)([]);S.current=f;let C=(0,Q.useCallback)(e=>{let t=e,n=e.type.startsWith(`image/`);return{uid:t.uid||`${Date.now()}-${e.name}`,name:e.name,status:`done`,originFileObj:t,thumbUrl:n?URL.createObjectURL(e):void 0}},[]),w=(0,Q.useCallback)(e=>{e.thumbUrl?.startsWith(`blob:`)&&URL.revokeObjectURL(e.thumbUrl)},[]),T=(0,Q.useCallback)(()=>{S.current.forEach(w),p([])},[w]);return(0,Q.useEffect)(()=>()=>S.current.forEach(w),[w]),(0,Q.useEffect)(()=>{o&&o.length>0&&n&&(S.current.forEach(w),p(o.map(C)))},[o,n,C,w]),(0,$.jsx)(Ee,{title:`Upload File(s)`,open:n,onCancel:()=>{T(),_(!1),y(`Please review this file: {filepath}`),r()},onOk:async()=>{if(f.length===0){l(`Please select at least one file`);return}x(!0);try{let n=new FormData;f.forEach(e=>{e.originFileObj?n.append(`files`,e.originFileObj):console.warn(`[FileUpload] File missing originFileObj:`,e.name)}),n.append(`notifyAgent`,String(g)),n.append(`message`,v);let o=`${t}/sessions/${e}/upload?destination=${encodeURIComponent(m)}`,c=localStorage.getItem(bt),l={};c?l.Authorization=`Bearer ${c}`:console.warn(`[FileUpload] No access token found in localStorage`);let u=await fetch(o,{method:`POST`,headers:l,body:n});if(!u.ok){let e=await u.text(),t={};try{t=JSON.parse(e)}catch{t={error:e||`Upload failed`}}throw Error(t.error||`Upload failed`)}let d=await u.json();if(d.files.length===1?s(`Uploaded as: ${d.files[0].filename}`):s(`Uploaded ${d.files.length} files successfully`),i&&i(d.files),!g&&a&&d.files.length>0){let e=d.files[0];a(e.path.includes(` `)?`"${e.path}"`:e.path)}T(),_(!1),y(`Please review this file: {filepath}`),r()}catch(e){console.error(`Upload error:`,e),u(e instanceof Error?e.message:`Failed to upload files`)}finally{x(!1)}},confirmLoading:b,okText:`Upload`,cancelText:`Cancel`,width:600,children:(0,$.jsxs)(V,{orientation:`vertical`,style:{width:`100%`},size:`large`,children:[(0,$.jsx)(d,{multiple:!0,listType:`picture`,fileList:f,beforeUpload:e=>(p(t=>[...t,C(e)]),!1),onRemove:e=>{w(e),p(t=>t.filter(t=>t.uid!==e.uid))},children:(0,$.jsx)(U,{icon:(0,$.jsx)(z,{}),children:`Select Files`})}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(ki,{strong:!0,children:`Destination:`}),(0,$.jsx)(c.Group,{value:m,onChange:e=>h(e.target.value),style:{marginTop:8,display:`block`},children:(0,$.jsxs)(V,{orientation:`vertical`,children:[(0,$.jsx)(c,{value:`branch`,children:(0,$.jsxs)(V,{orientation:`vertical`,size:0,children:[(0,$.jsx)(ki,{children:`Branch (.agor/uploads/)`}),(0,$.jsx)(ki,{type:`secondary`,style:{fontSize:`12px`},children:`Default - Agent-accessible, can be committed`})]})}),(0,$.jsx)(c,{value:`temp`,children:(0,$.jsxs)(V,{orientation:`vertical`,size:0,children:[(0,$.jsx)(ki,{children:`Temp folder`}),(0,$.jsx)(ki,{type:`secondary`,style:{fontSize:`12px`},children:`Ephemeral, auto-cleanup`})]})}),(0,$.jsx)(c,{value:`global`,children:(0,$.jsxs)(V,{orientation:`vertical`,size:0,children:[(0,$.jsx)(ki,{children:`Global (~/.agor/uploads/)`}),(0,$.jsx)(ki,{type:`secondary`,style:{fontSize:`12px`},children:`Shared across sessions`})]})})]})})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(Le,{checked:g,onChange:e=>_(e.target.checked),children:`Notify the agent about this file`}),g&&(0,$.jsxs)(`div`,{style:{marginTop:8},children:[(0,$.jsx)(Oi,{value:v,onChange:e=>y(e.target.value),placeholder:`Message to agent (use {filepath} for file path)`,autoSize:{minRows:2,maxRows:4}}),(0,$.jsxs)(ki,{type:`secondary`,style:{fontSize:`12px`,marginTop:4},children:[`Use `,`{filepath}`,` to reference the uploaded file path`]})]})]})]})})},ji=(0,Q.forwardRef)(({onClick:e,disabled:t,size:n=`middle`},r)=>(0,$.jsx)(U,{ref:r,icon:(0,$.jsx)(_e,{}),onClick:e,disabled:t,size:n,title:`Upload files`}));function Mi(e){try{let{hostname:t}=new URL(e);if(t===`github.com`||t.endsWith(`.github.com`))return(0,$.jsx)(re,{})}catch{}return(0,$.jsx)(ae,{})}var Ni=({items:e})=>{let{token:t}=A.useToken();return e.length===0?null:(0,$.jsx)(ce,{menu:{items:e.map(e=>({key:e.key,icon:Mi(e.url),label:(0,$.jsx)(T,{title:e.name.length>40?e.name:void 0,placement:`left`,children:(0,$.jsx)(`span`,{style:{display:`inline-block`,maxWidth:200,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.name})}),onClick:()=>window.open(e.url,`_blank`)}))},trigger:[`click`],placement:`bottomRight`,children:(0,$.jsx)(T,{title:`Attachments`,children:(0,$.jsx)(O,{count:e.length,color:t.colorPrimary,size:`small`,offset:[-4,4],children:(0,$.jsx)(U,{type:`text`,icon:(0,$.jsx)(a,{style:{color:t.colorPrimary}})})})})})};function Pi(e,t,n){let r=0,i=0;for(let a of e){let e=t.get(a);if(!e){r+=1;continue}Di(e,n)&&(i+=1)}let a=e.length,o=Math.max(0,a-r-i),s=r+i;return{attachedCount:a,missingCount:r,needsAuthCount:i,healthyCount:o,tone:r>0?`error`:i>0?`warning`:`default`,label:`MCP (${a})`,tooltip:s>0?`${s} MCP server${s===1?``:`s`} need attention`:a>0?`${a} MCP server${a===1?``:`s`} attached`:`No MCP servers attached`}}var Fi=({client:e,sessionId:t,sessionMcpServerIds:n,mcpServerById:r,userAuthenticatedMcpServerIds:a,onOpenSessionSettings:o})=>{let{token:s}=A.useToken(),{showSuccess:c,showError:l}=Qe(),[u,d]=Q.useState(!1),[f,p]=Q.useState(!1),m=Q.useMemo(()=>Pi(n,r,a),[n,r,a]),h=Q.useMemo(()=>n.map(e=>r.get(e)).filter(e=>!!e),[n,r]);return(0,$.jsx)(me,{open:u,onOpenChange:d,trigger:`click`,placement:`top`,getPopupContainer:e=>e.parentElement??document.body,title:null,content:(0,$.jsx)(`div`,{style:{width:340,maxWidth:`min(340px, 80vw)`},children:(0,$.jsxs)(V,{direction:`vertical`,size:10,style:{width:`100%`},children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(i.Text,{strong:!0,children:`Session MCP servers`}),(0,$.jsx)(i.Paragraph,{type:`secondary`,style:{margin:`${s.sizeUnit}px 0 0`},children:`Attach tools/connectors that the agent can use in this conversation.`})]}),h.length>0&&(0,$.jsx)(V,{size:6,wrap:!0,children:h.map(t=>(0,$.jsx)(pt,{server:t,needsAuth:Di(t,a),client:e},t.mcp_server_id))}),(0,$.jsx)(Qt,{mcpServers:Array.from(r.values()),placeholder:`Attach MCP servers…`,value:n,onChange:async r=>{if(e){p(!0);try{await _n(e,t,n,r),c(`Session MCP servers updated`)}catch(e){l(`Failed to update MCP servers: ${e instanceof Error?e.message:String(e)}`)}finally{p(!1)}}},loading:f,disabled:!e,style:{width:`100%`}}),(0,$.jsx)(se,{style:{margin:`${s.sizeUnit}px 0`}}),(0,$.jsx)(U,{block:!0,icon:(0,$.jsx)(le,{}),onClick:()=>{d(!1),o?.(t)},children:`Open session settings`})]})}),children:(0,$.jsxs)(zt,{icon:(0,$.jsx)(Pe,{}),color:`default`,title:`${m.tooltip}. Click to add or change MCP servers.`,style:{cursor:`pointer`,height:22,display:`inline-flex`,alignItems:`center`},children:[(0,$.jsx)(`span`,{children:`MCP`}),(0,$.jsx)(_,{color:m.tone===`error`?`error`:m.tone===`warning`?`warning`:void 0,style:{marginInlineStart:s.sizeUnit,marginInlineEnd:0,minWidth:16,height:14,paddingInline:4,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,lineHeight:`12px`,fontSize:10,textAlign:`center`,fontVariantNumeric:`tabular-nums`,verticalAlign:`middle`},children:m.attachedCount}),(0,$.jsx)(M,{style:{marginLeft:s.sizeUnit*1.5}})]})})},Ii=({client:e,userId:t,branchId:n,focusTabName:r,ensureCliSessionId:i,height:a=480,fill:o=!1,visible:s=!0})=>{let c=(0,Q.useRef)(null),l=(0,Q.useRef)(null),[u,d]=(0,Q.useState)(null),[f,p]=(0,Q.useState)(!1);return(0,Q.useEffect)(()=>{if(!e||!t||!c.current)return;let a=!0,o=null,s=e.io,u=e=>{e.userId===t&&l.current&&l.current.write(e.data)},f=e=>{e.userId===t&&l.current&&(l.current.writeln(`\r\n\r\n[Terminal exited with code ${e.exitCode}]`),p(!1))},m=new rr({allowProposedApi:!0,fontSize:13,fontFamily:`Menlo, Monaco, "Courier New", monospace`,cursorBlink:!0,scrollback:1e3,rows:24,cols:80,theme:{background:`#141414`,foreground:`#ffffff`,cursor:`#2e9a92`,cursorAccent:`#141414`}});m.open(c.current),m.loadAddon(new nr),m.loadAddon(new tr((e,t)=>{window.open(t,`_blank`,`noopener,noreferrer`)})),l.current=m;let h=c.current.querySelector(`.xterm`);h&&(h.style.width=`100%`,h.style.height=`100%`);let g=()=>{if(!l.current||!c.current)return;let e=l.current._core,t=e?._renderService?.dimensions?.css?.cell?.width,n=e?._renderService?.dimensions?.css?.cell?.height;if(!t||!n||t<=0||n<=0)return;let r=c.current.getBoundingClientRect();if(r.width<=0||r.height<=0)return;let i=Math.max(20,Math.floor(r.width/t)),a=Math.max(5,Math.floor(r.height/n));if(i!==l.current.cols||a!==l.current.rows)try{l.current.resize(i,a)}catch{}},_=null;try{_=m.onRender(()=>g())}catch{}requestAnimationFrame(()=>{g(),requestAnimationFrame(g)});let v=setInterval(g,100),y=setTimeout(()=>clearInterval(v),1500);typeof document<`u`&&`fonts`in document&&document.fonts.ready.then(()=>g()).catch(()=>{});let b=new ResizeObserver(()=>g());return b.observe(c.current),(async()=>{try{let c=await e.service(`terminals`).create({rows:m.rows,cols:m.cols,branchId:n,focusTabName:r,ensureCliSessionId:i});if(!a)return;o=c.channel,s.emit(`join`,c.channel),s.on(`terminal:output`,u),s.on(`terminal:exit`,f),m.onData(e=>{s.emit(`terminal:input`,{userId:t,input:e})}),m.onResize(({cols:e,rows:n})=>{s.emit(`terminal:resize`,{userId:t,cols:e,rows:n})}),s.emit(`terminal:resize`,{userId:t,cols:m.cols,rows:m.rows}),p(!0)}catch(e){let t=e instanceof Error?e.message:String(e);d(t),l.current&&(l.current.writeln(`\r
|
|
2
|
-
[Failed to attach to terminal]`),l.current.writeln(`[Error: ${t}]`))}})(),()=>{a=!1,b.disconnect(),clearInterval(v),clearTimeout(y);try{_?.dispose()}catch{}l.current&&=(l.current.dispose(),null),s&&(s.off(`terminal:output`,u),s.off(`terminal:exit`,f),o&&s.emit(`leave`,o)),p(!1)}},[e,t,n,r,i]),(0,Q.useEffect)(()=>{if(!s||!e||!t||!r)return;let a=!1;return(async()=>{try{await e.service(`terminals`).create({rows:l.current?.rows??30,cols:l.current?.cols??140,branchId:n,focusTabName:r,ensureCliSessionId:i})}catch(e){if(a)return;console.warn(`[EmbeddedTerminal] refocus failed`,e)}})(),()=>{a=!0}},[s,e,t,n,r,i]),(0,$.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4,background:`#000`,padding:8,borderRadius:4,...o?{flex:1,minHeight:0,height:`100%`}:{minHeight:a}},children:[(0,$.jsx)(`div`,{ref:c,style:o?{flex:1,minHeight:0}:{flex:1,minHeight:a-24}}),u&&(0,$.jsxs)(`div`,{style:{color:`#ff7875`,fontSize:12,padding:4},children:[`Terminal error: `,u]}),!f&&!u&&(0,$.jsx)(`div`,{style:{color:`#bfbfbf`,fontSize:12,padding:4},children:`Connecting to terminal…`})]})},Li=Q.memo(({client:e,session:t,branch:n=null,currentUserId:r,scrollToBottom:a,scrollToTop:o,setScrollToBottom:s,setScrollToTop:c,queuedTasks:l,setQueuedTasks:u,spawnModalOpen:d,setSpawnModalOpen:f,onSpawnModalConfirm:p,inputValueRef:m,isOpen:h,cliViewMode:g=`terminal`,setCliViewMode:_})=>{let{token:y}=A.useToken(),{showSuccess:b,showError:x}=Qe(),{userById:S}=mr(),{repoById:C}=pr(),{mcpServerById:w}=hr(),{onOpenBranch:E,onStartEnvironment:O,onStopEnvironment:k,onNukeEnvironment:ee,onViewLogs:j,onPermissionDecision:te}=Mn(),M=n&&C.get(n.repo_id)||null,N=Q.useCallback((e,t)=>{s(()=>e),c(()=>t)},[s,c]);return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{style:{marginBottom:y.sizeUnit,display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:y.sizeUnit*2},children:[n&&(0,$.jsxs)(V,{size:8,wrap:!0,style:{flex:1},children:[n&&M&&(0,$.jsx)(Dr,{repo:M,branch:n,onOpenBranch:E,onStartEnvironment:O,onStopEnvironment:k,onNukeEnvironment:ee,onViewLogs:j,identityLink:K(t.session_id)}),n?.issue_url&&(0,$.jsx)(vn,{issueUrl:n.issue_url,currentRepo:M??void 0}),n?.pull_request_url&&(0,$.jsx)(Zt,{prUrl:n.pull_request_url,currentRepo:M??void 0})]}),!n&&(0,$.jsx)(`div`,{style:{flex:1}}),(0,$.jsxs)(V,{size:4,children:[(0,$.jsx)(T,{title:`Scroll to top of conversation`,children:(0,$.jsx)(U,{type:`text`,size:`small`,icon:(0,$.jsx)(ge,{}),onClick:()=>o?.(),disabled:!o})}),(0,$.jsx)(T,{title:`Scroll to bottom of conversation`,children:(0,$.jsx)(U,{type:`text`,size:`small`,icon:(0,$.jsx)(De,{}),onClick:()=>a?.(),disabled:!a})})]})]}),t.agentic_tool===`claude-code-cli`&&_?(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-end`,justifyContent:`space-between`,gap:y.sizeUnit*2,marginTop:y.sizeUnit*2},children:[(0,$.jsx)(Ie,{activeKey:g,onChange:e=>_(e),size:`small`,style:{flex:1,marginBottom:-1},items:[{key:`terminal`,label:(0,$.jsxs)(`span`,{children:[(0,$.jsx)(we,{style:{marginRight:6}}),`CLI terminal`]})},{key:`conversation`,label:(0,$.jsxs)(`span`,{children:[(0,$.jsx)(de,{style:{marginRight:6}}),`Agor conversation`]})}]}),g===`terminal`&&e&&(0,$.jsx)(T,{title:`Restart claude REPL in this tab (closes the Zellij tab and re-spawns claude — JSONL transcript preserved, watcher resumes from offset)`,children:(0,$.jsx)(U,{size:`small`,icon:(0,$.jsx)(v,{}),onClick:async()=>{try{await e.service(`sessions/${t.session_id}/restart-cli`).create({}),b(`Restarting claude…`)}catch(e){x(`Failed to restart: ${e instanceof Error?e.message:String(e)}`)}},style:{marginBottom:y.sizeUnit},children:`Restart`})})]}):(0,$.jsx)(se,{style:{margin:`${y.sizeUnit*2}px 0`}}),t.agentic_tool===`claude-code-cli`&&(0,$.jsx)(`div`,{style:{display:g===`terminal`?`flex`:`none`,flex:1,minHeight:0,flexDirection:`column`},children:(0,$.jsx)(Ii,{client:e,userId:r,branchId:t.branch_id,focusTabName:`cli-${Ze(t.session_id)}`,ensureCliSessionId:t.session_id,fill:!0,visible:g===`terminal`})}),(0,$.jsx)(`div`,{style:{display:t.agentic_tool===`claude-code-cli`&&g===`terminal`?`none`:`contents`},children:(0,$.jsx)(er,{client:e,sessionId:t.session_id,agentic_tool:t.agentic_tool,sessionModel:t.model_config?.model,userById:S,currentUserId:r,onScrollRef:N,onPermissionDecision:te,branchName:n?.name,scheduledFromBranch:t.scheduled_from_branch,scheduledRunAt:t.scheduled_run_at,isActive:h,genealogy:t.genealogy,assistantEmoji:n&&Ye(n)?q(n)?.emoji:void 0})}),l.length>0&&(0,$.jsxs)(`div`,{style:{flexShrink:0,background:y.colorBgElevated,borderTop:`1px solid ${y.colorBorderSecondary}`,borderTopLeftRadius:y.borderRadiusLG,borderTopRightRadius:y.borderRadiusLG,padding:`${y.sizeUnit*3}px ${y.sizeUnit*6}px`,marginLeft:-y.sizeUnit*6+y.sizeUnit*2,marginRight:-y.sizeUnit*6+y.sizeUnit*2,marginTop:y.sizeUnit*2,boxShadow:`0 -2px 8px ${y.colorBgMask}`},children:[(0,$.jsxs)(i.Text,{type:`secondary`,style:{fontSize:y.fontSizeSM,display:`block`,marginBottom:y.sizeUnit*2,fontWeight:500,textTransform:`uppercase`,letterSpacing:`0.5px`},children:[`Queued Tasks (`,l.length,`)`]}),(0,$.jsx)(V,{orientation:`vertical`,size:8,style:{width:`100%`},children:l.map((n,r)=>(0,$.jsxs)(`div`,{style:{background:y.colorBgContainer,padding:`${y.sizeUnit*2}px ${y.sizeUnit*3}px`,borderRadius:y.borderRadius,border:`1px solid ${y.colorBorder}`,display:`flex`,justifyContent:`space-between`,alignItems:`center`,gap:y.sizeUnit*2},children:[(0,$.jsxs)(i.Text,{ellipsis:!0,style:{flex:1},children:[(0,$.jsxs)(`span`,{style:{color:y.colorTextSecondary,marginRight:y.sizeUnit},children:[r+1,`.`]}),n.full_prompt]}),(0,$.jsxs)(V,{size:4,children:[(0,$.jsx)(U,{type:`text`,size:`small`,icon:(0,$.jsx)(he,{}),onClick:async()=>{await Xe(n.full_prompt),b(`Message copied to clipboard`)}}),(0,$.jsx)(U,{type:`text`,size:`small`,danger:!0,icon:(0,$.jsx)(D,{}),onClick:async()=>{if(e)try{u(e=>e.filter(e=>e.task_id!==n.task_id)),await e.service(`tasks`).remove(n.task_id)}catch(n){x(`Failed to remove queued task: ${n instanceof Error?n.message:String(n)}`),u((await e.service(`sessions/${t.session_id}/tasks/queue`).find()).data||[])}}})]})]},n.task_id))})]}),(0,$.jsx)(Kn,{open:d,action:`spawn`,session:t,currentUser:r&&S.get(r)||null,mcpServerById:w,initialPrompt:m.current??``,onConfirm:p,onCancel:()=>f(!1),client:e,userById:S})]})}),Ri=({client:e,session:t,modelLabel:n,modelConfig:r,onModelConfigChange:a,effortLevel:o,onEffortChange:s,permissionMode:c,onPermissionModeChange:l,codexSandboxMode:u,codexApprovalPolicy:d,onCodexPermissionChange:p})=>{let{token:m}=A.useToken();return(0,$.jsx)(me,{trigger:`click`,placement:`top`,getPopupContainer:e=>e.parentElement??document.body,content:(0,$.jsx)(`div`,{style:{width:320,maxWidth:`min(320px, 80vw)`},children:(0,$.jsxs)(V,{direction:`vertical`,size:12,style:{width:`100%`},children:[(0,$.jsx)(`div`,{children:(0,$.jsx)(i.Text,{strong:!0,children:`Quick session settings`})}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(i.Text,{type:`secondary`,style:{fontSize:12},children:`Model`}),(0,$.jsx)(`div`,{style:{marginTop:m.sizeUnit},children:(0,$.jsx)(lt,{value:r,onChange:a,agentic_tool:t.agentic_tool,client:e,compact:!0})})]}),t.agentic_tool===`claude-code`&&(0,$.jsxs)(`div`,{children:[(0,$.jsx)(i.Text,{type:`secondary`,style:{fontSize:12},children:`Reasoning effort`}),(0,$.jsx)(`div`,{style:{marginTop:m.sizeUnit},children:(0,$.jsx)(J,{value:o,onChange:s,size:`small`,compact:!0,plain:!0,fullWidth:!0})})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(i.Text,{type:`secondary`,style:{fontSize:12},children:`Permissions`}),(0,$.jsx)(`div`,{style:{marginTop:m.sizeUnit},children:(0,$.jsx)(Dt,{value:c,onChange:l,agentic_tool:t.agentic_tool,codexSandboxMode:u,codexApprovalPolicy:d,onCodexChange:p,compact:!0,iconOnly:!1,plain:!0,fullWidth:!0,size:`small`})})]})]})}),title:null,children:n?(0,$.jsxs)(zt,{icon:(0,$.jsx)(f,{}),color:`default`,title:`Model and run settings`,style:{cursor:`pointer`,height:22,display:`inline-flex`,alignItems:`center`},children:[(0,$.jsx)(`span`,{children:bn(n)}),(0,$.jsx)(le,{style:{marginLeft:m.sizeUnit*1.5}})]}):(0,$.jsx)(zt,{icon:(0,$.jsx)(le,{}),color:`default`,style:{cursor:`pointer`,height:22,display:`inline-flex`,alignItems:`center`},children:`Run`})})},zi=Q.forwardRef(({sessionId:e,getDraft:t,saveDraft:n,deleteDraft:r,onHasInputChange:i,inputValueRef:a,onSubmit:o,placeholder:s,autoSize:c,client:l,userById:u,onFilesDrop:d,slashCommands:f,skills:p},m)=>{let[h,g]=Q.useState(()=>t(e)),_=Q.useRef(h);_.current=h,a.current=h;let v=Q.useRef(!!h.trim());Q.useEffect(()=>{let e=!!h.trim();e!==v.current&&(v.current=e,i(e))},[h,i]),Q.useImperativeHandle(m,()=>({getValue:()=>_.current,clear:()=>{g(``),r(e)},insertText:e=>{g(t=>{let n=t.trim();return`${n}${n?` `:``}${e}`})}}),[e,r]);let y=Q.useRef(e);Q.useEffect(()=>{y.current!==e&&(n(y.current,_.current),g(t(e)),y.current=e)},[e,n,t]),Q.useEffect(()=>{let t=setTimeout(()=>n(e,h),300);return()=>clearTimeout(t)},[h,e,n]);let b=Q.useRef(n);b.current=n;let x=Q.useRef(e);return x.current=e,Q.useEffect(()=>()=>b.current(x.current,_.current),[]),(0,$.jsx)(Qn,{value:h,onChange:g,placeholder:s,autoSize:c,onKeyPress:Q.useCallback(e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),_.current.trim()&&o())},[o]),client:l,sessionId:e,userById:u,onFilesDrop:d,slashCommands:f,skills:p,enableKnowledgeMentions:!0,kbLinkTarget:`absolute-route`,highlightWhenEmpty:!0})});zi.displayName=`PromptInput`;var Bi=Q.memo(({client:e,session:n,branch:r=null,currentUserId:a,sessionMcpServerIds:o=[],open:s,onClose:c})=>{let{token:l}=A.useToken(),{modal:u}=Re.useApp(),{showSuccess:d,showInfo:f,showError:h}=Qe(),g=Y(),_=mt(),{userById:v}=mr(),{mcpServerById:y,userAuthenticatedMcpServerIds:b}=hr(),{onSendPrompt:x,onFork:S,onBtwFork:w,onOpenSettings:E,onUpdateSession:D,onOpenTerminal:k}=Mn(),{archiveSession:ee}=Cn(e),j=n?.agentic_tool?qe[n.agentic_tool]:void 0,te=Q.useMemo(()=>o.map(e=>y.get(e)).filter(e=>Di(e,b)).map(e=>e),[o,y,b]),M=`agor-draft-`,N=Q.useCallback(e=>{try{return localStorage.getItem(`${M}${e}`)||``}catch{return``}},[]),F=Q.useCallback((e,t)=>{try{t.trim()?localStorage.setItem(`${M}${e}`,t):localStorage.removeItem(`${M}${e}`)}catch{}},[]),ne=Q.useCallback(e=>{try{localStorage.removeItem(`${M}${e}`)}catch{}},[]),I=Q.useRef(null),re=Q.useRef(n?N(n.session_id):``),[ie,ae]=Q.useState(()=>!!re.current.trim()),L=Q.useCallback(e=>ae(e),[]),se=n?.permission_config?.mode??(n?.agentic_tool?Be(n.agentic_tool):Be(`claude-code`)),R=ze(se),[z,B]=Q.useState(se),[ue,de]=Q.useState(n?.permission_config?.codex?.sandboxMode??R.sandboxMode),[fe,pe]=Q.useState(n?.permission_config?.codex?.approvalPolicy??R.approvalPolicy),[me,he]=Q.useState(n?.model_config?.effort||`high`),[ge,_e]=Q.useState(`terminal`),[ve,be]=Q.useState(null),[xe,Ce]=Q.useState(null),[Ee,De]=Q.useState([]),[Oe,H]=Q.useState(!1),[ke,Ae]=Q.useState(!1),[je,Me]=Q.useState([]),[Pe,Ie]=Q.useState(!1),{state:Le}=Et(e,n?.session_id??null,{enabled:s,reactiveOptions:{taskHydration:`none`}}),W=Le?.tasks||[];Q.useEffect(()=>{if(!e||!n)return;(async()=>{try{De((await e.service(`/sessions/${n.session_id}/tasks/queue`).find()).data||[])}catch(e){console.error(`[SessionPanel] Failed to fetch queue:`,e)}})();let t=e.service(`tasks`),r=e=>{e.session_id===n.session_id&&De(t=>t.some(t=>t.task_id===e.task_id)?t:[...t,e].sort((e,t)=>(e.queue_position??0)-(t.queue_position??0)))},i=e=>{e.session_id===n.session_id&&e.status!==He.QUEUED&&De(t=>t.filter(t=>t.task_id!==e.task_id))},a=e=>{e.session_id===n.session_id&&De(t=>t.filter(t=>t.task_id!==e.task_id))};return t.on(`queued`,r),t.on(`patched`,i),t.on(`updated`,i),t.on(`removed`,a),()=>{t.off(`queued`,r),t.off(`patched`,i),t.off(`updated`,i),t.off(`removed`,a)}},[e,n]);let G=Q.useMemo(()=>n?.agentic_tool?W.reduce((e,t)=>{if(!t.normalized_sdk_response)return e;let{tokenUsage:n,costUsd:r}=t.normalized_sdk_response;return{total:e.total+n.totalTokens,input:e.input+n.inputTokens,output:e.output+n.outputTokens,cacheRead:e.cacheRead+(n.cacheReadTokens||0),cacheCreation:e.cacheCreation+(n.cacheCreationTokens||0),cost:e.cost+(r||0)}},{total:0,input:0,output:0,cacheRead:0,cacheCreation:0,cost:0}):{total:0,input:0,output:0,cacheRead:0,cacheCreation:0,cost:0},[W,n?.agentic_tool]),K=Q.useMemo(()=>{if(!n?.agentic_tool)return null;for(let e=W.length-1;e>=0;e--){let t=W[e];if(t.computed_context_window!==void 0&&t.normalized_sdk_response){let{contextWindowLimit:e}=t.normalized_sdk_response;if(t.computed_context_window>0)return{used:t.computed_context_window,limit:e||0,taskMetadata:{model:t.model,duration_ms:t.duration_ms,agentic_tool:n.agentic_tool,raw_sdk_response:t.raw_sdk_response,normalized_sdk_response:t.normalized_sdk_response}}}}return null},[W,n?.agentic_tool]),Ve=Q.useMemo(()=>{let e=[];return r?.issue_url&&e.push({key:`issue`,name:`Issue: ${en(r.issue_url)}`,url:r.issue_url}),r?.pull_request_url&&e.push({key:`pr`,name:`PR: ${en(r.pull_request_url)}`,url:r.pull_request_url}),e},[r?.issue_url,r?.pull_request_url]),We=Q.useMemo(()=>{if(K)return nn(K.used,K.limit,K.taskMetadata.normalized_sdk_response?.contextUsageSnapshot)},[K]),Ge=Q.useMemo(()=>{if(W.length===0)return null;for(let e=W.length-1;e>=0;--e){let t=W[e];if(t.status===He.RUNNING||t.status===He.STOPPING||t.status===He.AWAITING_PERMISSION||t.status===He.AWAITING_INPUT)return t}return W[W.length-1]},[W]);if(Q.useEffect(()=>{n?.permission_config?.mode?B(n.permission_config.mode):n?.agentic_tool&&B(Be(n.agentic_tool)),n?.agentic_tool===`codex`&&n?.permission_config?.codex&&(de(n.permission_config.codex.sandboxMode),pe(n.permission_config.codex.approvalPolicy))},[n?.permission_config?.mode,n?.permission_config?.codex,n?.agentic_tool]),Q.useEffect(()=>{he(n?.model_config?.effort||`high`)},[n?.model_config?.effort]),!n)return null;let Ke=()=>{if(!e||g){h(`Cannot archive while disconnected from the daemon.`);return}u.confirm({title:`Archive session?`,content:`Are you sure you want to archive this session?`,okText:`Archive`,cancelText:`Cancel`,onOk:async()=>{await ee(n.session_id)?(d(`Session archived`),c()):h(`Failed to archive session`)}})},Je=!!r,Ye=[...r?[{key:`center-map`,icon:(0,$.jsx)(m,{}),label:`Center map on branch`,onClick:()=>_(r.branch_id,{boardId:r.board_id??void 0})}]:[],...k&&r?[{key:`terminal`,icon:(0,$.jsx)(we,{}),label:`Open terminal`,onClick:()=>k([`cd ${r.path}`],r.branch_id)}]:[],...Je?[{type:`divider`}]:[],...E?[{key:`settings`,icon:(0,$.jsx)(le,{}),label:`Session Settings`,onClick:()=>E(n.session_id)}]:[],{key:`archive`,icon:(0,$.jsx)(P,{}),label:g?`Archive (disconnected)`:`Archive session`,disabled:g||!e,onClick:Ke}],q=n.status===Ue.RUNNING||n.status===Ue.STOPPING,Xe=n.status===Ue.STOPPING,Ze=async()=>{let e=I.current?.getValue()??``;if(!e.trim()||g)return;let t=e.trim();I.current?.clear(),x?.(n.session_id,t,z)},$e=async()=>{if(!(!n||!e||Pe)){Xe&&f(`Retrying stop request...`),Ie(!0);try{await e.service(`sessions/${n.session_id}/stop`).create({})}catch(e){console.error(`Failed to stop execution:`,e),h(`Failed to stop execution. You can try again.`)}finally{Ie(!1)}}},et=async()=>{if(!n)return;let e=(I.current?.getValue()??``).trim();if(e)try{await S?.(n.session_id,e),I.current?.clear()}catch(e){console.error(`Fork failed — keeping prompt in compose box:`,e)}},tt=async()=>{let e=I.current?.getValue()??``;if(!e.trim()||g)return;let t=e.trim();try{await w?.(n.session_id,t),I.current?.clear()}catch(e){console.error(`BTW fork failed — keeping prompt in compose box:`,e)}},nt=async t=>{if(!n||!e)return;let r=typeof t==`string`?{userPrompt:t}:{userPrompt:t.prompt||``,agenticTool:t.agent,permissionMode:t.permissionMode,modelConfig:t.modelConfig,codexSandboxMode:t.codexSandboxMode,codexApprovalPolicy:t.codexApprovalPolicy,codexNetworkAccess:t.codexNetworkAccess,mcpServerIds:t.mcpServerIds,callbackConfig:{enableCallback:t.enableCallback,includeLastMessage:t.includeLastMessage,includeOriginalPrompt:t.includeOriginalPrompt},extraInstructions:t.extraInstructions};await e.service(`sessions/${n.session_id}/spawn-prompt`).create({...r,parentPermissionMode:z}),H(!1),I.current?.clear()},rt=e=>{B(e),n&&D&&D(n.session_id,{permission_config:{...n.permission_config,mode:e}})},it=(e,t)=>{de(e),pe(t),n&&D&&D(n.session_id,{permission_config:{...n.permission_config,codex:{...n.permission_config?.codex,sandboxMode:e,approvalPolicy:t}}})},at=e=>{he(e),n&&D&&n.model_config&&D(n.session_id,{model_config:{...n.model_config,effort:e}})},ot=e=>{if(n&&D){let t={...n.model_config,mode:e.mode,model:e.model,...e.provider?{provider:e.provider}:{},updated_at:new Date().toISOString()};e.advisorModel?t.advisorModel=e.advisorModel:delete t.advisorModel,D(n.session_id,{model_config:t})}},st=()=>{switch(n.status){case`running`:return`processing`;case`completed`:return`success`;case`failed`:return`error`;case`timed_out`:return`warning`;default:return`default`}},J=n.model_config?.model&&n.agentic_tool===`opencode`&&n.model_config.provider?`${n.model_config.provider}/${n.model_config.model}`:n.model_config?.model,ct=n.model_config?.model?{mode:n.model_config.mode||`alias`,model:n.model_config.model,provider:n.model_config.provider,advisorModel:n.model_config.advisorModel}:void 0,lt=(0,$.jsxs)(`div`,{style:{position:`relative`,flexShrink:0,background:l.colorBgContainer,borderTop:`1px solid ${l.colorBorder}`,padding:`${l.sizeUnit*2}px ${l.sizeUnit*6}px ${l.sizeUnit*3}px`,marginLeft:-l.sizeUnit*6,marginRight:-l.sizeUnit*6},children:[We&&(0,$.jsx)(`div`,{style:{position:`absolute`,top:0,left:0,right:0,bottom:0,background:We,pointerEvents:`none`,zIndex:0}}),(0,$.jsxs)(V,{orientation:`vertical`,style:{width:`100%`,position:`relative`,zIndex:1},size:8,children:[te.length>0&&(0,$.jsx)(C,{type:`warning`,showIcon:!0,title:(0,$.jsxs)(`span`,{children:[te.map(t=>(0,$.jsx)(pt,{server:t,needsAuth:!0,client:e},t.mcp_server_id)),` `,`not authenticated — click to sign in.`]}),style:{marginBottom:0,borderRadius:l.borderRadius},banner:!0}),(0,$.jsx)(zi,{ref:I,sessionId:n.session_id,getDraft:N,saveDraft:F,deleteDraft:ne,onHasInputChange:L,inputValueRef:re,onSubmit:Ze,placeholder:q?`Queue here… @ for mentions, : for emoji`:`Prompt here… @ for mentions, : for emoji`,autoSize:{minRows:1,maxRows:10},client:e,userById:v,onFilesDrop:e=>{Me(e),Ae(!0)},slashCommands:(()=>{let e=n?.custom_context;return Array.isArray(e?.slash_commands)?e.slash_commands:void 0})(),skills:(()=>{let e=n?.custom_context;return Array.isArray(e?.skills)?e.skills:void 0})()}),(0,$.jsxs)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:`${l.sizeUnit}px`,alignItems:`center`,justifyContent:`space-between`},children:[(0,$.jsxs)(V,{size:4,wrap:!0,children:[(0,$.jsx)(Fi,{client:e,sessionId:n.session_id,sessionMcpServerIds:o,mcpServerById:y,userAuthenticatedMcpServerIds:b,onOpenSessionSettings:E}),Ge&&(0,$.jsx)(Ot,{status:Ge.status,startedAt:Ge.message_range?.start_timestamp||Ge.created_at,endedAt:Ge.message_range?.end_timestamp||Ge.completed_at,durationMs:Ge.duration_ms,lastExecutorHeartbeatAt:Ge.last_executor_heartbeat_at}),(0,$.jsx)(Ht,{session:n}),G.total>0&&(0,$.jsx)(gn,{count:G.total,estimatedCost:G.cost,inputTokens:G.input,outputTokens:G.output,cacheReadTokens:G.cacheRead,cacheCreationTokens:G.cacheCreation}),K&&(0,$.jsx)(Ct,{used:K.used,limit:K.limit,taskMetadata:K.taskMetadata})]}),(0,$.jsxs)(V,{size:4,wrap:!0,style:{marginLeft:`auto`},children:[q&&(0,$.jsx)(oe,{size:`small`}),(0,$.jsx)(Ri,{client:e,session:n,modelLabel:J,modelConfig:ct,onModelConfigChange:ot,effortLevel:me,onEffortChange:at,permissionMode:z,onPermissionModeChange:rt,codexSandboxMode:ue,codexApprovalPolicy:fe,onCodexPermissionChange:it}),(0,$.jsxs)(V.Compact,{children:[(0,$.jsx)(T,{title:Pe?`Sending stop request...`:Xe?`Stopping... (Click again to retry if stuck)`:q?`Stop Execution`:`No active execution`,children:(0,$.jsx)(U,{danger:!0,icon:(0,$.jsx)(ye,{}),onClick:$e,disabled:!q||Pe,loading:Xe&&!Pe})}),j?.supportsSessionFork!==!1&&(0,$.jsx)(T,{title:g?`Disconnected from daemon`:`Fork Session`,children:(0,$.jsx)(U,{icon:(0,$.jsx)(t,{}),onClick:et,disabled:g})}),j?.supportsChildSpawn!==!1&&(0,$.jsx)(T,{title:g?`Disconnected from daemon`:q?`Session is running...`:`Spawn Subsession`,children:(0,$.jsx)(U,{icon:(0,$.jsx)(Ne,{}),onClick:()=>H(!0),disabled:g||q})}),j?.supportsSessionFork!==!1&&(0,$.jsx)(T,{title:`Ask a side question via ephemeral fork (btw)`,children:(0,$.jsx)(U,{icon:(0,$.jsx)(Se,{}),onClick:tt,disabled:g})}),(0,$.jsx)(T,{title:g?`Disconnected from daemon`:`Upload Files`,children:(0,$.jsx)(ji,{onClick:()=>Ae(!0),disabled:g})}),(0,$.jsx)(T,{title:g?`Disconnected from daemon`:q?`Queue Message`:`Send Prompt`,children:(0,$.jsx)(U,{type:`primary`,icon:(0,$.jsx)(Fe,{}),onClick:Ze,disabled:g||!ie})})]})]})]})]})]});return(0,$.jsxs)(`div`,{style:{width:`100%`,height:`100%`,display:s?`flex`:`none`,flexDirection:`column`,background:l.colorBgElevated,borderLeft:`1px solid ${l.colorBorder}`},children:[(0,$.jsx)(`div`,{style:{flexShrink:0,padding:`${l.sizeUnit*3}px ${l.sizeUnit*6}px`,borderBottom:`1px solid ${l.colorBorder}`,background:l.colorBgContainer},children:(0,$.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`flex-start`},children:[(0,$.jsxs)(V,{size:12,align:`start`,style:{flex:1},children:[(0,$.jsx)(hn,{tool:n.agentic_tool,size:40}),(0,$.jsxs)(`div`,{style:{flex:1},children:[(0,$.jsxs)(`div`,{style:{marginBottom:4},children:[(0,$.jsx)(i.Text,{strong:!0,style:{fontSize:18,...dn(2)},children:vt(n,{includeAgentFallback:!0})}),(0,$.jsx)(O,{status:st(),text:n.status.toUpperCase(),style:{marginLeft:12}})]}),n.created_by&&(0,$.jsx)(`div`,{children:(0,$.jsx)(ft,{createdBy:n.created_by,currentUserId:a,userById:v,prefix:`Created by`})})]})]}),(0,$.jsxs)(V,{size:4,children:[(0,$.jsx)(Ni,{items:Ve}),(0,$.jsx)(ce,{menu:{items:Ye},trigger:[`click`],placement:`bottomRight`,children:(0,$.jsx)(T,{title:`More actions`,children:(0,$.jsx)(U,{type:`text`,icon:(0,$.jsx)(p,{})})})}),(0,$.jsx)(T,{title:`Close Panel`,children:(0,$.jsx)(U,{type:`text`,icon:(0,$.jsx)(Te,{}),onClick:c,style:{marginLeft:l.sizeUnit}})})]})]})}),(0,$.jsxs)(`div`,{style:{flex:1,overflow:`hidden`,display:`flex`,flexDirection:`column`,padding:`${l.sizeUnit*3}px ${l.sizeUnit*6}px 0`},children:[(0,$.jsx)(Li,{client:e,session:n,branch:r,currentUserId:a,sessionMcpServerIds:o,scrollToBottom:ve,scrollToTop:xe,setScrollToBottom:be,setScrollToTop:Ce,queuedTasks:Ee,setQueuedTasks:De,spawnModalOpen:Oe,setSpawnModalOpen:H,onSpawnModalConfirm:nt,inputValueRef:re,isOpen:s,cliViewMode:ge,setCliViewMode:_e}),!(n.agentic_tool===`claude-code-cli`&&ge===`terminal`)&<,n&&(0,$.jsx)(Ai,{sessionId:n.session_id,daemonUrl:dt(),open:ke,onClose:()=>{Ae(!1),Me([])},initialFiles:je,onUploadComplete:e=>{d(`Uploaded ${e.length} file(s)`)},onInsertMention:e=>{I.current?.insertText(`@${e}`)}})]})]})}),Vi=({showHelpText:e=!0})=>(0,$.jsx)(H.Item,{name:`custom_context`,label:`Custom Context (JSON)`,help:e?`Add custom fields for use in zone trigger templates (e.g., {{ session.context.yourField }})`:void 0,rules:[{validator:un}],children:(0,$.jsx)(Ut,{placeholder:`{"teamName": "Backend", "sprintNumber": 42}`,rows:4})}),{Text:Hi,Paragraph:Ui}=i,{TextArea:Wi}=L,Gi=({showHelpText:e=!1})=>(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(H.Item,{name:[`callbackConfig`,`enabled`],label:`Enable Child Completion Callbacks`,valuePropName:`checked`,children:(0,$.jsx)(ne,{})}),e&&(0,$.jsx)(Ui,{type:`secondary`,style:{fontSize:12,marginTop:-16,marginBottom:16},children:`When enabled, this session will receive notifications when spawned child sessions complete their tasks. The callback message includes the child's final result inline.`}),(0,$.jsx)(H.Item,{name:[`callbackConfig`,`includeLastMessage`],label:`Include Child's Final Answer`,valuePropName:`checked`,children:(0,$.jsx)(ne,{defaultChecked:!0})}),e&&(0,$.jsx)(Ui,{type:`secondary`,style:{fontSize:12,marginTop:-16,marginBottom:16},children:`Include the child session's last assistant message in the callback. Disable if you only want task status and statistics.`}),(0,$.jsx)(H.Item,{name:[`callbackConfig`,`template`],label:(0,$.jsxs)($.Fragment,{children:[`Custom Template `,(0,$.jsx)(Hi,{type:`secondary`,children:`(Optional)`})]}),children:(0,$.jsx)(Wi,{placeholder:`Leave empty to use default template...`,autoSize:{minRows:4,maxRows:12},style:{fontFamily:`monospace`,fontSize:12}})}),e&&(0,$.jsxs)(Ui,{type:`secondary`,style:{fontSize:12,marginTop:-16},children:[`Advanced: Customize the callback message template using Handlebars syntax. Available variables: `,(0,$.jsx)(Hi,{code:!0,children:`childSessionId`}),`, `,(0,$.jsx)(Hi,{code:!0,children:`spawnPrompt`}),`,`,` `,(0,$.jsx)(Hi,{code:!0,children:`status`}),`, `,(0,$.jsx)(Hi,{code:!0,children:`messageCount`}),`, `,(0,$.jsx)(Hi,{code:!0,children:`toolUseCount`}),`,`,` `,(0,$.jsx)(Hi,{code:!0,children:`lastAssistantMessage`})]})]});function Ki(e){switch(e){case`running`:return`processing`;case`completed`:return`success`;case`failed`:return`error`;case`timed_out`:return`warning`;default:return`default`}}var qi=({session:e,onNavigate:t})=>{let{token:n}=A.useToken(),{onSessionClick:r}=Mn(),{sessionById:o}=gr(),s=e.remote_relationships?.as_target?.find(e=>e.relationship_type===`remote_create`),c=s?.source_session_id,l=e.callback_config?.callback_session_id??s?.callback_session_id??c??e.genealogy?.parent_session_id;if(!l)return null;let u=o.get(l),d=e.callback_config?.enabled??s?.callback_enabled??!0,f=u?.archived===!0,p=u?vt(u,{includeAgentFallback:!0,includeIdFallback:!0}):`${Ze(l)} (not loaded)`,m=r?(0,$.jsxs)(i.Link,{onClick:e=>{e.preventDefault(),r&&(r(l),t?.())},children:[(0,$.jsx)(a,{style:{marginRight:4}}),(0,$.jsx)(`strong`,{children:p})]}):(0,$.jsx)(`strong`,{children:p}),h=f?`archived`:u?.status,g=d?n.colorPrimaryBorder:n.colorBorder,_=d?n.colorPrimaryBg:n.colorFillTertiary,v=d?n.colorPrimary:n.colorTextSecondary;return(0,$.jsx)(`div`,{style:{marginBottom:12,padding:`${n.sizeUnit*2}px ${n.sizeUnit*3}px`,border:`1px solid ${g}`,background:_,borderRadius:n.borderRadius},children:(0,$.jsxs)(V,{size:6,wrap:!0,children:[d?(0,$.jsx)(a,{style:{color:v}}):(0,$.jsx)(Me,{style:{color:v}}),(0,$.jsxs)(i.Text,{strong:!0,style:{color:v},children:[`Callbacks `,d?`ON`:`OFF`]}),(0,$.jsxs)(i.Text,{type:`secondary`,children:[` — `,d?`notifying`:`would notify`]}),m,u&&(0,$.jsxs)(V,{size:4,children:[(0,$.jsx)(O,{status:Ki(u.status)}),(0,$.jsx)(i.Text,{type:`secondary`,style:{fontSize:12},children:h})]})]})})},Ji=({showHelpText:e=!0})=>(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(H.Item,{name:`codexSandboxMode`,label:`Sandbox Mode`,help:e?`Controls where Codex can write files (workspace vs. full access)`:void 0,children:(0,$.jsx)(k,{placeholder:`Select sandbox mode`,options:Sn.map(({value:e,label:t,description:n})=>({value:e,label:`${t} · ${n}`}))})}),(0,$.jsx)(H.Item,{name:`codexApprovalPolicy`,label:`Approval Policy`,help:e?`Controls whether Codex must ask before executing commands`:void 0,children:(0,$.jsx)(k,{placeholder:`Select approval policy`,options:ot.map(({value:e,label:t,description:n})=>({value:e,label:`${t} · ${n}`}))})}),(0,$.jsx)(H.Item,{name:`codexNetworkAccess`,label:`Network Access`,help:e?`Allow outbound HTTP/HTTPS requests (workspace-write sandbox only)`:void 0,valuePropName:`checked`,children:(0,$.jsx)(xt,{showWarning:e})})]}),Yi=({showHelpText:e=!0,titleRequired:t=!1,titleLabel:n=`Session Title`})=>(0,$.jsx)(H.Item,{name:`title`,label:n,rules:[{required:t,message:`Please enter a session title`}],help:e&&!t?`A short descriptive name for this session`:void 0,children:(0,$.jsx)(L,{placeholder:`e.g., Auth System Implementation`})});function Xi(e,t){let n=e.permission_config?.mode??Be(e.agentic_tool),r=ze(n);return{title:e.title||``,mcpServerIds:t,modelConfig:e.model_config,permissionMode:n,codexSandboxMode:e.permission_config?.codex?.sandboxMode??r.sandboxMode,codexApprovalPolicy:e.permission_config?.codex?.approvalPolicy??r.approvalPolicy,codexNetworkAccess:e.permission_config?.codex?.networkAccess??r.networkAccess,custom_context:e.custom_context?JSON.stringify(e.custom_context,null,2):``,callbackConfig:{enabled:e.callback_config?.enabled??!0,includeLastMessage:e.callback_config?.include_last_message??!0,template:e.callback_config?.template}}}function Zi(e,t){let n={};if(e.title!==t.title&&(n.title=e.title),e.modelConfig&&(n.model_config={...e.modelConfig,updated_at:new Date().toISOString()}),e.permissionMode&&(n.permission_config={...t.permission_config,mode:e.permissionMode}),t.agentic_tool===`codex`&&(n.permission_config={...t.permission_config,...n.permission_config,codex:{sandboxMode:e.codexSandboxMode||t.permission_config?.codex?.sandboxMode||`workspace-write`,approvalPolicy:e.codexApprovalPolicy||t.permission_config?.codex?.approvalPolicy||`on-request`,networkAccess:e.codexNetworkAccess??t.permission_config?.codex?.networkAccess??!1}}),e.custom_context)try{n.custom_context=JSON.parse(e.custom_context)}catch{}else e.custom_context===``&&(n.custom_context=void 0);return e.callbackConfig&&(n.callback_config={enabled:e.callbackConfig.enabled??!0,include_last_message:e.callbackConfig.includeLastMessage??!0,template:e.callbackConfig.template||void 0}),n}var Qi=({open:e,onClose:t,session:n,mcpServerById:r,sessionMcpServerIds:a,onUpdate:s,onUpdateSessionMcpServers:c,onUpdateSessionEnvSelections:l,client:u,currentUser:d})=>{let[f]=H.useForm(),[p,m]=Q.useState(()=>Xi(n,a)),[h,g]=Q.useState([]),[_,v]=Q.useState([]),y=Q.useRef(!1),b=Q.useRef(n.session_id),S=Q.useMemo(()=>{if(!d)return!1;if(d.user_id===n.created_by)return!0;let e=d.role;return e===`admin`||e===`superadmin`},[d,n.created_by]);Q.useEffect(()=>{let t=y.current,r=n.session_id!==b.current;if(y.current=e,b.current=n.session_id,e&&!t||e&&r){let e=Xi(n,a);m(e),f.setFieldsValue(e)}},[e,n,a,f]),Q.useEffect(()=>{if(!e||!u||!S)return;let t=!1;return(async()=>{try{let e=await u.service(`sessions/${n.session_id}/env-selections`).find();t||(g(e),v(e))}catch{t||(g([]),v([]))}})(),()=>{t=!0}},[e,u,S,n.session_id]);let C=()=>{f.validateFields().then(()=>{let e=f.getFieldsValue(!0),r=Zi(e,n);Object.keys(r).length>0&&s&&s(n.session_id,r),c&&c(n.session_id,e.mcpServerIds||[]),S&&l&&(h.length!==_.length||h.some(e=>!_.includes(e)))&&l(n.session_id,h),t()})},w=()=>{f.resetFields(),t()},T=n.agentic_tool===`codex`,E=[];return T&&E.push({key:`codex-settings`,label:(0,$.jsxs)(i.Text,{strong:!0,children:[(0,$.jsx)(le,{style:{marginRight:8}}),`Codex Sandbox & Policies`]}),children:(0,$.jsx)(Ji,{showHelpText:!0})}),S&&u&&E.push({key:`env-selections`,label:(0,$.jsxs)(i.Text,{strong:!0,children:[(0,$.jsx)(F,{style:{marginRight:8}}),`Environment Variables`]}),children:(0,$.jsx)(Pn,{ownerUserId:n.created_by,client:u,value:h,onChange:g})}),E.push({key:`callback-config`,label:(0,$.jsxs)(i.Text,{strong:!0,children:[(0,$.jsx)(Ae,{style:{marginRight:8}}),`Callbacks`]}),children:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(qi,{session:n,onNavigate:t}),(0,$.jsx)(Gi,{showHelpText:!0})]})}),E.push({key:`advanced`,label:(0,$.jsxs)(i.Text,{strong:!0,children:[(0,$.jsx)(le,{style:{marginRight:8}}),`Advanced`]}),children:(0,$.jsx)(Xt,{fallbackTitle:`Failed to load Advanced settings.`,resetKey:n.session_id,children:(0,$.jsx)(Vi,{showHelpText:!0})})}),(0,$.jsx)(Ee,{title:`Session Settings`,open:e,onOk:C,onCancel:w,okText:`Save`,cancelText:`Cancel`,width:600,children:(0,$.jsxs)(H,{form:f,layout:`vertical`,initialValues:p,children:[(0,$.jsx)(Yi,{showHelpText:!1,titleRequired:!1,titleLabel:`Title`}),(0,$.jsx)(H.Item,{label:`Session IDs`,children:(0,$.jsx)(Wt,{session:n})}),(0,$.jsx)(Tt,{agenticTool:n.agentic_tool,mcpServerById:r,showHelpText:!1,compact:!0,client:u}),(0,$.jsx)(se,{dashed:!0,style:{margin:`8px 0 16px`}}),(0,$.jsx)(o,{ghost:!0,destroyOnHidden:!1,expandIcon:({isActive:e})=>(0,$.jsx)(x,{rotate:e?180:0}),items:E})]})})},$i=Ve.MEMBER,ea=`\x1B]8;`,ta=`\x1B]8;;\x07`,na=`\x07`,ra=e=>{let t=``,n=0;for(;n<e.length;){let r=e.indexOf(ea,n);if(r===-1){t+=e.slice(n);break}t+=e.slice(n,r);let i=r+4,a=e.indexOf(na,i);if(a===-1){t+=e.slice(r);break}let o=e.slice(i,a),s=o.lastIndexOf(`;`),c=(s===-1?o:o.slice(s+1)).trim(),l=a+1,u=e.indexOf(ta,l);if(u===-1){t+=e.slice(l);break}let d=e.slice(l,u);if(!c)t+=d;else if(d.includes(c))t+=d;else{let e=d.trim(),n=e.length>0?e:c;t+=`${n} (${c})`}n=u+6}return t},ia=({open:e,onClose:t,client:n,user:r,branchId:i,initialCommands:a=[]})=>{let{modal:o}=Re.useApp(),s=(0,Q.useRef)(null),c=(0,Q.useRef)(null),[l,u]=(0,Q.useState)(!1),[d,f]=(0,Q.useState)(!1),[p,m]=(0,Q.useState)(!1),[h,g]=(0,Q.useState)({}),_=W(r?.role,$i);return(0,Q.useEffect)(()=>{if(!e||!d||!s.current||!n||!_)return;if(!r?.user_id){console.error(`[Terminal] Terminal requires authenticated user`);return}let t=!0,o=null,l=e=>e,f=n.io,p=()=>{f&&(f.off(`terminal:output`,h),f.off(`terminal:exit`,v),o&&f.emit(`leave`,o))},h=e=>{c.current&&e.userId===r?.user_id&&c.current.write(l(e.data))},v=e=>{c.current&&e.userId===r?.user_id&&(c.current.writeln(`\r\n\r\n[Terminal exited with code ${e.exitCode}]`),c.current.writeln(`[Close and reopen terminal to start a new session]`),u(!1))},y=()=>{let e=new rr({allowProposedApi:!0,fontSize:14,fontFamily:`Menlo, Monaco, "Courier New", monospace`,cursorBlink:!0,scrollback:1e3,rows:40,cols:160,linkHandler:{activate:(e,t)=>{window.open(t,`_blank`,`noopener,noreferrer`)},hover:()=>{}},theme:{background:`#141414`,foreground:`#ffffff`,cursor:`#2e9a92`,cursorAccent:`#141414`,black:`#000000`,red:`#ff4d4f`,green:`#52c41a`,yellow:`#faad14`,blue:`#1890ff`,magenta:`#eb2f96`,cyan:`#2e9a92`,white:`#f0f0f0`,brightBlack:`#8c8c8c`,brightRed:`#ff7875`,brightGreen:`#95de64`,brightYellow:`#ffc53d`,brightBlue:`#40a9ff`,brightMagenta:`#f759ab`,brightCyan:`#3db5ab`,brightWhite:`#ffffff`}});e.open(s.current),c.current=e;let t=new nr;e.loadAddon(t);let n=new tr((e,t)=>{window.open(t,`_blank`,`noopener,noreferrer`)});return e.loadAddon(n),e};return(async()=>{let e=y();try{let s=await n.service(`terminals`).create({rows:40,cols:160,branchId:i});if(!t)return;if(o=s.channel,u(!0),l=ra,g({zellijSession:s.sessionName,zellijReused:!s.isNew,branchName:s.branchName}),s.isNew&&e.clear(),f.emit(`join`,s.channel),f.on(`terminal:output`,h),f.on(`terminal:exit`,v),e.onData(e=>{f.emit(`terminal:input`,{userId:r?.user_id,input:e})}),e.onResize(({cols:e,rows:t})=>{f.emit(`terminal:resize`,{userId:r?.user_id,cols:e,rows:t})}),f.emit(`terminal:resize`,{userId:r?.user_id,cols:e.cols,rows:e.rows}),a.length>0)for(let e of a)f.emit(`terminal:input`,{userId:r?.user_id,input:`${e}\r`})}catch(e){console.error(`[Terminal] Failed to create terminal:`,e);let t=e instanceof Error?e.message:String(e);if(/zellij is not installed/i.test(t)){m(!0),c.current&&=(c.current.dispose(),null);return}c.current&&(c.current.writeln(`\r
|
|
3
|
-
Failed to connect to terminal`),c.current.writeln(`Error: ${t}`))}})(),()=>{t=!1,c.current&&=(c.current.dispose(),null),p(),u(!1),g({}),m(!1)}},[e,d,n,a,_,i,r?.user_id]),(0,$.jsx)(Ee,{title:`Terminal${h.branchName?` - ${h.branchName}`:``}`,open:e,onCancel:()=>{l?o.confirm({title:`Close Terminal?`,content:`The Zellij session will continue running in the background. You can reconnect by reopening the terminal.`,okText:`Close`,okType:`primary`,cancelText:`Cancel`,onOk:()=>{t()}}):t()},afterOpenChange:f,footer:null,width:`auto`,styles:{body:{padding:`16px`,background:`#000`}},centered:!0,children:_?p?(0,$.jsxs)(`div`,{style:{padding:`24px`,color:`#fff`,maxWidth:560},children:[(0,$.jsx)(`p`,{style:{marginTop:0},children:(0,$.jsx)(`strong`,{children:`Zellij isn't installed on the daemon host.`})}),(0,$.jsxs)(`p`,{children:[`The web terminal uses`,` `,(0,$.jsx)(`a`,{href:`https://zellij.dev/`,target:`_blank`,rel:`noopener noreferrer`,style:{color:`#3db5ab`},children:`Zellij`}),` `,`for persistent, multiplexed sessions. Install it to enable terminals — everything else in Agor works without it.`]}),(0,$.jsx)(`p`,{style:{marginBottom:0},children:(0,$.jsx)(`a`,{href:`https://agor.live/guide/extended-install#optional-zellij-for-the-web-terminal`,target:`_blank`,rel:`noopener noreferrer`,style:{color:`#3db5ab`},children:`Extended install guide →`})})]}):(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:12,color:`#fff`},children:(0,$.jsx)(`div`,{ref:s})}):(0,$.jsxs)(`div`,{style:{padding:`24px`,color:`#fff`},children:[(0,$.jsxs)(`p`,{children:[`Terminal access requires at least `,(0,$.jsx)(`strong`,{children:$i}),` role.`]}),(0,$.jsx)(`p`,{style:{marginBottom:0},children:`Contact your Agor administrator to request elevated permissions.`})]})})},{Text:aa,Link:oa}=i,sa=({open:e,onClose:t})=>{let{customTheme:n,setCustomTheme:r,setThemeMode:i}=ht(),[a]=H.useForm();(0,Q.useEffect)(()=>{if(e){let e=n?JSON.stringify(n,null,2):ca();a.setFieldsValue({themeConfig:e})}},[e,n,a]);let o=async()=>{try{let e=await a.validateFields();r(JSON.parse(e.themeConfig)),i(`custom`),t()}catch(e){console.error(`Theme validation failed:`,e)}},s=()=>{a.setFieldsValue({themeConfig:ca()})},c=()=>{a.resetFields(),t()};return(0,$.jsxs)(Ee,{title:`Custom Theme Editor`,open:e,onCancel:c,width:700,footer:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(U,{onClick:s,children:`Reset to Default`}),(0,$.jsx)(U,{onClick:c,children:`Cancel`}),(0,$.jsx)(U,{type:`primary`,onClick:o,children:`Save & Apply`})]}),children:[(0,$.jsx)(C,{title:`Edit your custom theme configuration`,description:(0,$.jsxs)(aa,{children:[`Modify the JSON below to customize your Ant Design theme. See the`,` `,(0,$.jsx)(oa,{href:`https://ant.design/docs/react/customize-theme`,target:`_blank`,rel:`noopener noreferrer`,children:`Ant Design theme documentation`}),` `,`for available options.`]}),type:`info`,showIcon:!0,style:{marginBottom:16}}),(0,$.jsx)(H,{form:a,layout:`vertical`,children:(0,$.jsx)(H.Item,{name:`themeConfig`,rules:[{required:!0,message:`Please enter theme configuration`},{validator:un}],children:(0,$.jsx)(Ut,{placeholder:`Enter your custom theme JSON configuration...`,rows:16})})})]})};function ca(){return JSON.stringify({token:{colorPrimary:`#2e9a92`,colorSuccess:`#52c41a`,colorWarning:`#faad14`,colorError:`#ff4d4f`,colorInfo:`#2e9a92`,colorLink:`#2e9a92`,borderRadius:8}},null,2)}var la=e=>({...e,collapsed:!1,activeTab:`comments`}),ua=e=>e.collapsed?{collapsed:!1,activeTab:`assistant`}:{...e,collapsed:!0},{Content:da}=ie,fa=({setCurrentBoardId:e})=>(kt(e),null),pa=Object.freeze([]),ma=Object.freeze([]),ha=320,ga=45,_a=44,va=30,ya=e=>Math.min(ga,ha/e*100),ba=(e,t,n)=>Math.min(n,Math.max(t,e)),xa=({client:e,user:t,connected:n=!1,connecting:r=!1,sessionById:i,sessionsByBranch:a,availableAgents:o,boardById:s,boardObjectById:c,boardObjectsByBoardId:l,commentById:f,cardById:p,cardTypeById:m,repoById:h,branchById:g,userById:_,mcpServerById:v,sessionMcpServerIds:y,userAuthenticatedMcpServerIds:x,initialBoardId:S,openSettingsTab:C,onSettingsClose:w,openUserSettings:E,onUserSettingsClose:D,openNewBranchModal:O,onNewBranchModalClose:k,suppressLeftPanel:A=!1,onCreateSession:ee,onForkSession:j,onBtwForkSession:te,onSpawnSession:M,onSendPrompt:N,onUpdateSession:P,onDeleteSession:F,onCreateBoard:ne,onUpdateBoard:I,onDeleteBoard:re,onArchiveBoard:ae,onUnarchiveBoard:oe,onCreateRepo:L,onCreateLocalRepo:se,onUpdateRepo:R,onDeleteRepo:z,onArchiveOrDeleteBranch:ce,onUnarchiveBranch:le,onUpdateBranch:B,onCreateBranch:ue,onStartEnvironment:de,onStopEnvironment:fe,onNukeEnvironment:pe,onExecuteScheduleNow:me,onCreateUser:he,onUpdateUser:ge,onDeleteUser:_e,onCreateMCPServer:ve,onDeleteMCPServer:ye,gatewayChannelById:be,onCreateGatewayChannel:xe,onUpdateGatewayChannel:Se,onDeleteGatewayChannel:Ce,artifactById:V,onUpdateArtifact:we,onDeleteArtifact:Te,onUpdateSessionMcpServers:Ee,onUpdateSessionEnvSelections:De,onSendComment:Oe,onReplyComment:H,onResolveComment:ke,onToggleReaction:Ae,onDeleteComment:je,onLogout:Me,onRetryConnection:Ne,onRestartOnboarding:U,instanceLabel:Pe,instanceDescription:Fe,webTerminalEnabled:Ie=!1,branchStorageConfig:Le})=>{let{showWarning:Re}=Qe(),ze=$e(),Be=Je(),G=ze.pathname===`/`,K=wr(Be),[Ve,He]=(0,Q.useState)(!1),Ue=(0,Q.useRef)(null),[Ge,Ke]=(0,Q.useState)(null),[qe,Ye]=(0,Q.useState)(!1),[q,Xe]=(0,Q.useState)(`assistant`),[Ze,et]=(0,Q.useState)(null),[tt,nt]=(0,Q.useState)(null),[rt,it]=(0,Q.useState)(null),at=rt?.kind===`branch`?rt.id:null,ot=rt?.kind===`artifact`?rt.id:null,J=(0,Q.useMemo)(()=>!G&&!Ve&&tt&&i.has(tt)?tt:null,[G,Ve,tt,i]),[lt,dt]=(0,Q.useState)(`assistant`),[ft,pt]=(0,Q.useState)(!1),[mt,ht]=(0,Q.useState)(()=>typeof window>`u`?1440:window.innerWidth);(0,Q.useEffect)(()=>{if(typeof window>`u`)return;let e=()=>ht(window.innerWidth);return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let gt=(0,Q.useMemo)(()=>ya(mt),[mt]),{isOpen:_t,section:vt,openSettings:yt,closeSettings:bt,setSection:xt}=st(),St=_t||!!C,Ct=C||vt,wt=ft||!!E,[Y,Tt]=(0,Q.useState)(()=>S||``),[Et,Dt]=ct(`agor:commentsPanelCollapsed`,!1),[Ot,kt]=jn(t?.user_id,`panel:left:size`,24),At=s.get(Y),jt=(G||Ve)&&!K,Mt=jt?``:Y,Pt=jt?void 0:At;(0,Q.useLayoutEffect)(()=>{!G||K||(Y&&Tt(``),tt&&nt(null),rt&&it(null),Ve&&He(!1))},[rt,Y,K,G,Ve,tt]);let X=Et||A||jt,Ft=(0,Q.useRef)(null),It=ba(Ot,gt,ga),[Lt,zt]=jn(t?.user_id,`panel:right:size`,50),Bt=ba(Lt,15,75),Vt=(0,Q.useRef)(null),Ht=(0,Q.useRef)(!1),Ut=(0,Q.useRef)(!1),[Wt,Kt]=(0,Q.useState)(null),[qt,Jt]=(0,Q.useState)(null),[Xt,Zt]=(0,Q.useState)(!1),[Qt,$t]=(0,Q.useState)([]),[en,tn]=(0,Q.useState)(void 0),[nn,an]=(0,Q.useState)(null),[on,sn]=(0,Q.useState)(null),[cn,ln]=(0,Q.useState)(void 0),[un,dn]=(0,Q.useState)(null),[mn,hn]=(0,Q.useState)(!1),[gn,_n]=ct(`agor:eventStreamPanelCollapsed`,!0),{recentBoards:vn,recentBoardIds:yn,trackBoardVisit:bn}=ut(Rt(s),Y);(0,Q.useEffect)(()=>{Y&&(localStorage.setItem(`agor:currentBoardId`,Y),bn(Y))},[Y,bn]),(0,Q.useEffect)(()=>{Yt()},[]),Sr(e,t?.user_id,t?.preferences?.audio),(0,Q.useEffect)(()=>{Ft.current&&(X?Ft.current.collapse():(Ft.current.expand(),Ft.current.resize(It)))},[It,X]),(0,Q.useEffect)(()=>{Vt.current&&(J||!gn)&&Vt.current.resize(Bt)},[J,Bt,gn]),Tn({currentBoardId:Y,currentSessionId:J,boardById:s,sessionById:i,branchById:g,artifactById:V,onBoardChange:e=>{Tt(e)},onSessionChange:e=>{nt(e)},onActiveUrlTargetChange:it});let Z=Gt({boardById:s,sessionById:i,branchById:g,artifactById:V}),Sn=(0,Q.useCallback)(e=>{e!==Y&&nt(null),Tt(e)},[Y]);(0,Q.useEffect)(()=>{if(s.size===0){if(!n)return;Y&&Sn(``);return}Y&&!s.has(Y)&&Sn(Rt(s)[0]?.board_id||``)},[s,Y,Sn,n]),(0,Q.useEffect)(()=>{if(qe){let e=Ue.current?.getViewportCenter();et(e||null)}},[Y,qe]);let Cn=(0,Q.useMemo)(()=>Y&&l.get(Y)||ma,[l,Y]);xr(Y,a,Cn);let wn=t?.preferences?.eventStream?.enabled??!0,{events:En,clearEvents:Mn}=yr({client:e,enabled:!gn}),Nn=(0,Q.useCallback)((e=[],t)=>{$t(e),tn(t),Zt(!0)},[]),Pn=(0,Q.useCallback)(e=>{dt(e.activeTab),Dt(e.collapsed)},[Dt]),Fn=(0,Q.useCallback)(()=>{Pn(ua({collapsed:X,activeTab:lt}))},[Pn,X,lt]),In=(0,Q.useCallback)(()=>{Pn(la({collapsed:!0,activeTab:`assistant`}))},[Pn]),zn=(0,Q.useCallback)(e=>{Jt(t=>t===e?null:e)},[]),Bn=(0,Q.useCallback)(()=>{Y&&Z.goToBoard(Y)},[Z,Y]),Vn=()=>{Zt(!1),$t([]),tn(void 0)},Hn=async e=>{let t=await ee?.(e,Y);Ke(null),t&&Z.goToSession(t)},Un=async e=>{let t=await ue?.(e.repoId,{name:e.name,ref:e.ref,refType:e.refType,createBranch:e.createBranch,sourceBranch:e.sourceBranch,pullLatest:e.pullLatest,issue_url:e.issue_url,pull_request_url:e.pull_request_url,...e.board_id?{boardId:e.board_id}:{},...e.position?{position:e.position}:{},...e.storage_mode?{storage_mode:e.storage_mode}:{},...e.clone_depth===void 0?{}:{clone_depth:e.clone_depth}});Ye(!1),t&&Z.goToBranch(t.branch_id)},Wn=async e=>{if(!ne)return;let t=await ne(e);t?.board_id&&Z.goToBoard(t.board_id)},Gn=async(n,r)=>{let i=n.repoId;if(!i||!ue||!B)throw Error(`Missing repository or branch creation handler for assistant creation.`);r?.onStatusChange?.(`Creating assistant branch…`);let a=await Cr({displayName:n.displayName,description:n.description,emoji:n.emoji,repoId:i,branchName:n.branchName,sourceBranch:n.sourceBranch},{client:e,repoById:h,onCreateBranch:ue,onUpdateBranch:B});if(!a)throw Error(`Assistant branch could not be created. Please check the branch details and try again.`);let o={branch_id:a.branch_id,agent:n.agent,title:`${n.emoji?`${n.emoji} `:``}${n.displayName} bootstrap`,initialPrompt:Nt({displayName:n.displayName,emoji:n.emoji,description:n.description,userName:t?.name,userEmail:t?.email}),modelConfig:n.modelConfig,effort:n.effort,mcpServerIds:n.mcpServerIds,permissionMode:n.permissionMode,codexSandboxMode:n.codexSandboxMode,codexApprovalPolicy:n.codexApprovalPolicy,codexNetworkAccess:n.codexNetworkAccess};try{if(!ee)throw Error(`Missing session creation handler.`);let t=await fn({client:e,branchId:a.branch_id,boardId:a.board_id||Y,sessionConfig:o,onCreateSession:ee,onStatusChange:r?.onStatusChange});Z.goToSession(t);return}catch(e){console.error(`Assistant session bootstrap failed:`,e),Re(`Assistant branch was created, but the first session could not start: ${e instanceof Error?e.message:String(e)}. Opening the branch instead.`,{key:`assistant-bootstrap-session`,duration:8})}r?.onStatusChange?.(`Opening assistant branch…`),Z.goToBranch(a.branch_id)},Kn=(0,Q.useRef)(i);Kn.current=i;let Jn=(0,Q.useRef)(g);Jn.current=g;let Yn=(0,Q.useCallback)(t=>{let n=Kn.current.get(t);e&&n?.ready_for_prompt&&e.service(`sessions`).patch(t,{ready_for_prompt:!1}).catch(()=>{});let r=n?.branch_id?Jn.current.get(n.branch_id):void 0;e&&r?.needs_attention&&e.service(`branches`).patch(r.branch_id,{needs_attention:!1}).catch(()=>{}),Z.goToSession(t)},[e,Z]),Xn=(0,Q.useCallback)(async(n,r,i,a,o)=>{if(e)try{await e.service(`sessions/${n}/permission-decision`).create({requestId:r,taskId:i,allow:a,reason:a?`Approved by user`:`Denied by user`,remember:o!==We.ONCE,scope:o,decidedBy:t?.user_id||`unknown`})}catch(e){console.error(`❌ Failed to send permission decision:`,e)}},[e,t?.user_id]),Zn=J&&i.get(J)||null,Qn=Zn?g.get(Zn.branch_id):null;(0,Q.useEffect)(()=>{tt&&!i.has(tt)&&(Be.sessionShortId&&Y&&Z.goToBoard(Y,{replace:!0}),nt(null))},[Y,Z,Be.sessionShortId,tt,i]);let $n=nn?i.get(nn):null,er=At?.primary_assistant_id??null,tr=er?g.get(er):void 0,nr=tr?h.get(tr.repo_id):void 0,rr=!!(er&&!tr);(0,Q.useEffect)(()=>{dt(rr?`all-sessions`:`assistant`)},[At?.board_id,rr]),vr(At);let ir=on?g.get(on):null,ar=ir?h.get(ir.repo_id):null,or=ir&&a.get(ir.branch_id)||[],sr=Ge?g.get(Ge):null,cr=(0,Q.useMemo)(()=>Cn.filter(e=>e.branch_id).map(e=>g.get(e.branch_id)).filter(e=>e!==void 0),[Cn,g]),lr=Rt(f).filter(e=>e.board_id===Y&&!e.resolved),ur=t?.name||t?.email?.split(`@`)[0]||``,pr=!!ur&&lr.some(e=>[`@${ur}`,`@"${ur}"`,`@${t?.email}`,`@"${t?.email}"`].some(t=>e.content.includes(t))),mr=(0,Q.useMemo)(()=>({repoById:h,userById:_,mcpServerById:v,userAuthenticatedMcpServerIds:x}),[h,_,v,x]),hr=(0,Q.useMemo)(()=>({sessionById:i,branchById:g,sessionsByBranch:a}),[i,g,a]),gr=Ie&&W(t?.role,$i);return(0,$.jsx)(fr,{value:mr,children:(0,$.jsx)(dr,{value:hr,children:(0,$.jsxs)(Ln,{value:(0,Q.useMemo)(()=>({onSendPrompt:N,onFork:j,onBtwFork:te,onSubsession:M,onUpdateSession:P,onDeleteSession:F,onPermissionDecision:Xn,onStartEnvironment:de,onStopEnvironment:fe,onNukeEnvironment:pe,onViewLogs:e=>dn(e),onOpenSettings:e=>an(e),onSessionClick:Yn,onOpenBranch:(e,t)=>{sn(e),ln(t)},onOpenTerminal:gr?Nn:void 0}),[N,j,te,M,P,F,Xn,de,fe,pe,Yn,Nn,gr]),children:[(0,$.jsx)(fa,{setCurrentBoardId:Sn}),(0,$.jsxs)(ie,{style:{height:`100vh`},children:[(0,$.jsx)(Rn,{user:t,presenceClient:e,presenceUsers:Rt(_),currentUserId:t?.user_id,connected:n,connecting:r,onMenuClick:Fn,onCommentsClick:In,onEventStreamClick:()=>{J?(Y&&Z.goToBoard(Y),_n(!1)):_n(!gn)},onSettingsClick:()=>yt(),onUserSettingsClick:()=>pt(!0),onThemeEditorClick:()=>hn(!0),onLogout:Me,onRetryConnection:Ne,currentBoardName:Pt?.name,currentBoardIcon:Pt?.icon,unreadCommentsCount:lr.filter(e=>!e.parent_comment_id).length,eventStreamEnabled:wn,hasUserMentions:pr,boards:Rt(s),currentBoardId:Mt,onBoardChange:Z.goToBoard,onHomeClick:()=>{He(!0),Z.goHome()},branchById:g,boardById:s,onUserClick:(e,t,n)=>{t&&Z.goToBoard(t)},instanceLabel:Pe,recentBoards:vn,instanceDescription:Fe,sessionById:i,artifactById:V,mcpServerById:v}),(0,$.jsxs)(da,{style:{position:`relative`,overflow:`hidden`,display:`flex`},children:[(0,$.jsxs)(An,{id:`main-layout`,direction:`horizontal`,style:{flex:1},onLayout:e=>{!X&&Ht.current&&e.length>=2&&kt(ba(e[0],gt,ga))},children:[(0,$.jsx)(kn,{id:`assistant-panel`,order:1,ref:Ft,collapsible:!0,defaultSize:X?0:It,collapsedSize:0,minSize:X?0:gt,maxSize:ga,style:{minWidth:X?0:ha},children:!X&&(0,$.jsx)(jr,{client:e,board:At||null,activeTab:lt,onTabChange:dt,primaryAssistantBranch:tr,primaryAssistantRepo:nr,primaryAssistantInaccessible:rr,sessionsByBranch:a,branchById:g,repoById:h,userById:_,currentUserId:t?.user_id,selectedSessionId:J,onSessionClick:Yn,onCreateSession:Ke,onForkSession:j,onSpawnSession:M,onArchiveOrDelete:ce,onOpenSettings:(e,t)=>{sn(e),ln(t)},onOpenSessionSettings:an,onOpenTerminal:gr?Nn:void 0,onStartEnvironment:de,onStopEnvironment:fe,onViewLogs:dn,onNukeEnvironment:pe,onExecuteScheduleNow:me,comments:Rt(f).filter(e=>e.board_id===Y),boardObjects:At?.objects,onSendComment:e=>Oe?.(Y||``,e),onReplyComment:H,onResolveComment:ke,onToggleReaction:Ae,onDeleteComment:je,hoveredCommentId:Wt,selectedCommentId:qt,onCollapse:()=>Dt(!0)})}),(0,$.jsx)(On,{style:{position:`relative`,width:X?`0px`:`4px`,background:`var(--ant-color-border-secondary)`,cursor:X?`default`:`col-resize`,transition:`background 0.2s`,pointerEvents:X?`none`:`auto`,overflow:`visible`,zIndex:10},onDragging:e=>{Ht.current=e},onMouseEnter:e=>{X||(e.currentTarget.style.background=`var(--ant-color-primary)`)},onMouseLeave:e=>{X||(e.currentTarget.style.background=`var(--ant-color-border-secondary)`)}}),(0,$.jsx)(kn,{id:`content-panel`,order:2,defaultSize:X?100:100-It,minSize:40,children:(0,$.jsxs)(An,{id:`canvas-session`,direction:`horizontal`,style:{flex:1},onLayout:e=>{J&&Ut.current&&e.length===2&&zt(ba(e[1],15,75))},children:[(0,$.jsx)(kn,{id:`canvas-panel`,order:1,defaultSize:J?100-Bt:100,minSize:20,children:(0,$.jsxs)(`div`,{style:{position:`relative`,overflow:`hidden`,height:`100%`},children:[jt?(0,$.jsx)(wi,{client:e,connected:n,boardById:s,recentBoardIds:yn,branchById:g,repoById:h,sessionById:i,sessionsByBranch:a,userById:_,currentUserId:t?.user_id,onBoardClick:Z.goToBoard,onBranchClick:Z.goToBranch,onSessionClick:Yn}):(0,$.jsx)(qn,{ref:Ue,board:At||null,client:e,sessionById:i,sessionsByBranch:a,userById:_,repoById:h,branches:cr,primaryAssistantId:er,branchById:g,boardObjectById:c,boardObjectsByBoardId:l,commentById:f,cardById:p,currentUserId:t?.user_id,selectedSessionId:J,activeUrlTargetBranchId:at,activeUrlTargetArtifactId:ot,availableAgents:o,mcpServerById:v,sessionMcpServerIds:y,onSessionClick:Yn,onSessionUpdate:P,onSessionDelete:F,onForkSession:j,onSpawnSession:M,onUpdateSessionMcpServers:Ee,onOpenSettings:an,onCreateSessionForBranch:Ke,onOpenBranch:sn,onArchiveOrDeleteBranch:ce,onOpenTerminal:gr?Nn:void 0,onStartEnvironment:de,onStopEnvironment:fe,onViewLogs:dn,onNukeEnvironment:pe,onOpenCommentsPanel:In,onCommentHover:Kt,onCommentSelect:zn}),(0,$.jsx)(Ti,{onClick:()=>{et((jt?null:Ue.current?.getViewportCenter())||null),Xe(`assistant`),Ye(!0)}})]})}),(J||!gn)&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(On,{style:{width:`4px`,background:`var(--ant-color-border-secondary)`,cursor:`col-resize`,transition:`background 0.2s`},onDragging:e=>{Ut.current=e},onMouseEnter:e=>{e.currentTarget.style.background=`var(--ant-color-primary)`},onMouseLeave:e=>{e.currentTarget.style.background=`var(--ant-color-border-secondary)`}}),(0,$.jsx)(kn,{id:`session-panel`,order:2,ref:Vt,defaultSize:Bt,minSize:15,maxSize:75,children:J?(0,$.jsx)(Bi,{client:e,session:Zn,branch:Qn,currentUserId:t?.user_id,sessionMcpServerIds:y.get(J)??pa,open:!!J,onClose:Bn}):(0,$.jsx)(Yr,{collapsed:!1,onToggleCollapse:()=>_n(!0),events:En,onClear:Mn,currentUserId:t?.user_id,selectedSessionId:J,currentBoard:At,client:e,branchActions:{onSessionClick:Yn,onCreateSession:e=>Ke(e),onOpenSettings:e=>sn(e),onNukeEnvironment:pe}})})]})]})})]}),At&&(0,$.jsx)(T,{title:X?`Open side panel`:`Close side panel`,placement:`right`,getPopupContainer:()=>document.body,children:(0,$.jsx)(`button`,{type:`button`,"aria-label":X?`Open side panel`:`Close side panel`,onClick:()=>Dt(!Et),style:{position:`absolute`,top:`50%`,left:X?0:`calc(${It}% + 2px)`,transform:`translate(-50%, -50%)`,width:_a,height:_a,padding:0,border:0,background:`transparent`,cursor:`pointer`,pointerEvents:`auto`,zIndex:20,display:`flex`,alignItems:`center`,justifyContent:`center`},children:(0,$.jsx)(`span`,{"aria-hidden":`true`,style:{width:va,height:va,borderRadius:`50%`,border:`1px solid var(--ant-color-border)`,background:`var(--ant-color-bg-container)`,boxShadow:`0 1px 4px rgba(0,0,0,0.18)`,color:`var(--ant-color-text)`,cursor:`pointer`,display:`flex`,alignItems:`center`,justifyContent:`center`},children:X?(0,$.jsx)(b,{style:{fontSize:12}}):(0,$.jsx)(u,{style:{fontSize:12}})})})})]}),(0,$.jsx)(d,{style:{display:`none`},openFileDialogOnClick:!1,showUploadList:!1}),Ge&&(0,$.jsx)(Ei,{open:!0,onClose:()=>Ke(null),onCreate:Hn,availableAgents:o,branchId:Ge,branch:sr||void 0,mcpServerById:v,currentUser:t,client:e,userById:_}),(0,$.jsx)(rn,{open:St,onClose:()=>{bt(),w?.()},client:e,currentUser:t,boardById:s,boardObjects:Rt(c),repoById:h,branchById:g,sessionById:i,sessionsByBranch:a,userById:_,mcpServerById:v,cardById:p,cardTypeById:m,activeTab:Ct,onTabChange:e=>{xt(e),C&&w?.()},onCreateBoard:ne,onUpdateBoard:I,onDeleteBoard:re,onArchiveBoard:ae,onUnarchiveBoard:oe,onCreateRepo:L,onCreateLocalRepo:se,onUpdateRepo:R,onDeleteRepo:z,onArchiveOrDeleteBranch:ce,onUnarchiveBranch:le,onUpdateBranch:B,onCreateBranch:ue,onStartEnvironment:de,onStopEnvironment:fe,onCreateUser:he,onUpdateUser:ge,onDeleteUser:_e,onCreateMCPServer:ve,onDeleteMCPServer:ye,gatewayChannelById:be,onCreateGatewayChannel:xe,onUpdateGatewayChannel:Se,onDeleteGatewayChannel:Ce,artifactById:V,onUpdateArtifact:we,onDeleteArtifact:Te,onCreateAssistant:()=>{bt(),w?.(),et(null),Xe(`assistant`),Ye(!0)},branchStorageConfig:Le}),$n&&(0,$.jsx)(Qi,{open:!!nn,onClose:()=>an(null),session:$n,mcpServerById:v,sessionMcpServerIds:nn&&y.get(nn)||[],onUpdate:P,onUpdateSessionMcpServers:Ee,onUpdateSessionEnvSelections:De,client:e,currentUser:t}),(0,$.jsx)(xn,{open:!!on,onClose:()=>{sn(null),ln(void 0)},defaultTab:cn,branch:ir||null,repo:ar||null,sessions:or,boardById:s,mcpServerById:v,client:e,currentUser:t,onUpdateBranch:B,onUpdateRepo:R,onArchiveOrDelete:ce,onOpenSettings:()=>{sn(null),yt()},onSessionClick:Yn,onExecuteScheduleNow:me}),(0,$.jsx)(ia,{open:Xt,onClose:Vn,client:e,user:t,branchId:en,initialCommands:Qt}),(0,$.jsx)(Wr,{open:qe,onClose:()=>{Ye(!1),Xe(`assistant`),et(null)},defaultTab:q,repoById:h,boardById:s,currentBoardId:Y,defaultPosition:Ze||void 0,onCreateBranch:Un,onCreateBoard:Wn,onCreateRepo:e=>L?.(e),onCreateLocalRepo:e=>se?.(e),onCreateAssistant:Gn,availableAgents:o,mcpServerById:v,currentUser:t,client:e,branchStorageConfig:Le}),un&&(0,$.jsx)(Dn,{open:!!un,onClose:()=>dn(null),branch:g.get(un),client:e}),(0,$.jsx)(sa,{open:mn,onClose:()=>hn(!1)}),(0,$.jsx)(pn,{open:wt,onClose:()=>{pt(!1),D?.()},user:t||null,currentUser:t||null,mcpServerById:v,client:e,onUpdate:ge,onRestartOnboarding:async()=>{pt(!1),D?.(),await U?.()}})]})]})})})};export{xa as App};
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{At as t,Cn as n,Ft as r,Kn as i,Mn as a,Qn as o,T as s,bn as c,n as l,on as u,qt as d,w as f,wn as p,z as m}from"./antd-CfbbHJOz.js";import{t as h}from"./message-SqLqNYcv.js";import{i as g,r as _}from"./sandpack-D7koO5op.js";import{N as v}from"./editor-CzFWIUw2.js";import{Ft as y,I as b,L as x,Mt as S,Pt as C,R as w}from"./index-BN5_Qq7R.js";function T(e){let t=`body{margin:0}`,n=`/styles.css`,r=e[n];return r?.includes(t)?e:{...e,[n]:r?`${t}\n${r}`:t}}var E=e(o(),1);function D(){return typeof window>`u`?null:C()??localStorage.getItem(`feathers-jwt`)}function O(){let e=D();return{"Content-Type":`application/json`,...e?{Authorization:`Bearer ${e}`}:{}}}function k(){let e=D();if(!e)return null;try{let t=e.split(`.`);if(t.length<2)return null;let n=t[1].replace(/-/g,`+`).replace(/_/g,`/`);for(;n.length%4!=0;)n+=`=`;let r=JSON.parse(atob(n));return typeof r.sub==`string`?r.sub:null}catch{return null}}var A=v(),j=50,M=2e3,N=1e3,P=6e3;function F({artifactId:e,contentHash:t}){let{logs:n}=g({resetOnPreviewRestart:!1}),r=(0,E.useRef)(0),i=(0,E.useRef)(0),a=(0,E.useRef)(null);return(0,E.useEffect)(()=>{if(n.length<=r.current)return;let o=()=>{let a=n.slice(r.current,r.current+j);r.current=Math.min(n.length,r.current+j),i.current=Date.now();let o=a.map(e=>({timestamp:Date.now(),level:e.method===`warn`?`warn`:e.method===`error`?`error`:e.method===`info`?`info`:`log`,message:e.data?.map(e=>typeof e==`string`?e:JSON.stringify(e)).join(` `)??``}));fetch(`${y()}/artifacts/${e}/console`,{method:`POST`,headers:O(),body:JSON.stringify({entries:o,content_hash:t})}).catch(()=>{})},s=Date.now()-i.current;return s>=M?o():a.current||=setTimeout(()=>{a.current=null,o()},M-s),()=>{a.current&&=(clearTimeout(a.current),null)}},[n,e,t]),null}function I({artifactId:e,contentHash:t}){let{sandpack:n}=_(),r=(0,E.useRef)(null),i=(0,E.useRef)(null),a=(0,E.useRef)(null);return(0,E.useEffect)(()=>{let o=`${n.error?.message??``}\0${n.status}`;if(o===r.current)return;let s=()=>{r.current=o,a.current=null;let i={error:n.error?{message:n.error.message,...n.error.title?{title:n.error.title}:{},...n.error.path?{path:n.error.path}:{},...n.error.line==null?{}:{line:n.error.line},...n.error.column==null?{}:{column:n.error.column}}:null,status:n.status};fetch(`${y()}/artifacts/${e}/sandpack-error`,{method:`POST`,headers:O(),body:JSON.stringify({...i,content_hash:t})}).catch(()=>{})};return i.current&&clearTimeout(i.current),a.current=s,i.current=setTimeout(()=>{i.current=null,s()},N),()=>{i.current&&(clearTimeout(i.current),i.current=null,a.current?.())}},[n.error,n.status,e,t]),null}function L({artifactId:e}){let{sandpack:t}=_(),n=(0,E.useRef)(t);return n.current=t,(0,E.useEffect)(()=>{let t=t=>{let r=t.detail;if(!r||r.artifact_id!==e)return;if(r.requested_by_user_id){let e=k();if(!e||e!==r.requested_by_user_id)return}let i=r.request_id,a=n.current,o=Object.keys(a.clients),s=(o.length>0?a.clients[o[0]]:null)?.iframe?.contentWindow??null;if(!s)return;let c=async t=>{try{await fetch(`${y()}/artifacts/${e}/runtime-response/${i}`,{method:`POST`,headers:O(),body:JSON.stringify(t)})}catch{}},l=()=>{window.removeEventListener(`message`,u),clearTimeout(d)},u=e=>{let t=e.data;!t||typeof t!=`object`||t.type!==`agor:result`||t.requestId!==i||e.source===s&&(l(),c({ok:!!t.ok,result:t.result,error:t.error}))},d=setTimeout(()=>{l(),c({ok:!1,error:`Iframe did not respond before timeout (agor-runtime.js may be missing).`})},P);window.addEventListener(`message`,u),s.postMessage({type:`agor:query`,requestId:i,kind:r.kind,args:r.args},`*`)};return window.addEventListener(`agor:artifact-runtime-query`,t),()=>window.removeEventListener(`agor:artifact-runtime-query`,t)},[e]),null}function R(e,t,n={}){let i={fontSize:10,marginLeft:4,...n.style},o=e.trust_state;return o===`no_secrets_needed`?null:o===`self`?(0,A.jsx)(r,{color:`blue`,icon:(0,A.jsx)(f,{}),style:i,children:`Yours`}):o===`trusted`?(0,A.jsx)(a,{title:`Secrets injected — trust granted for ${e.trust_scope===`instance`?`instance-wide`:e.trust_scope===`author`?`this author`:e.trust_scope===`session`?`just-once`:`this artifact`}`,children:(0,A.jsx)(r,{color:`green`,icon:(0,A.jsx)(f,{}),style:i,children:`Trusted`})}):(0,A.jsx)(a,{title:`Click to review and grant trust so secrets are injected`,children:(0,A.jsx)(r,{color:`orange`,icon:(0,A.jsx)(m,{}),className:t?n.className:void 0,style:{...i,cursor:t?`pointer`:void 0},onClick:t?e=>{e.stopPropagation(),t()}:void 0,children:`Untrusted`})})}function z(){globalThis.crypto===void 0||globalThis.crypto.subtle||(globalThis.crypto.subtle={async digest(e,t){let n=new Uint8Array(t),r=0;for(let e of n)r=r*31+e|0;let i=new ArrayBuffer(4);return new DataView(i).setInt32(0,r),i}})}var B=new Set([`agor_token`]);function V({open:e,artifactId:a,name:o,files:f,requiredEnvVars:g,grants:_,hideInstanceScope:v,onClose:C,onGranted:T}){let{featuresConfig:D}=S(),{showSuccess:k,showError:j}=h(),[M,N]=(0,E.useState)(`artifact`),[P,F]=(0,E.useState)(null),[I,L]=(0,E.useState)(!1),R=!!_.agor_token,z=v??D?.multiUser===!0,B=(0,E.useMemo)(()=>Object.entries(f).map(([e,t])=>({path:e.startsWith(`/`)?e.slice(1):e,title:e.split(`/`).pop()??e,size:t.length,lastModified:new Date(0).toISOString(),isText:!0})),[f]),V=H(_);return(0,A.jsxs)(d,{title:(0,A.jsxs)(`span`,{children:[(0,A.jsx)(s,{style:{marginRight:8}}),`Trust “`,o,`” to render with secrets`]}),open:e,onCancel:C,width:920,footer:null,destroyOnHidden:!0,children:[(0,A.jsx)(i,{type:`warning`,showIcon:!0,icon:(0,A.jsx)(l,{}),style:{marginBottom:16},title:`Read the source before granting trust`,description:`Granting trust injects your env-var values and any requested daemon capabilities into this artifact's runtime. The artifact's JS can read those values. Secrets never enter LLM context — but the artifact iframe can still exfiltrate them via fetch().`}),(0,A.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`minmax(0, 1fr) minmax(0, 2fr)`,gap:16},children:[(0,A.jsx)(c,{size:`small`,title:`Files in this artifact`,styles:{body:{padding:0}},children:(0,A.jsx)(`div`,{style:{maxHeight:360,overflow:`auto`},children:(0,A.jsx)(b,{files:B,onFileClick:e=>F(`/${e.path}`),emptyMessage:`No files in this artifact`})})}),(0,A.jsx)(c,{size:`small`,title:P?`Preview: ${P}`:`Pick a file to preview`,styles:{body:{padding:0,minWidth:0}},children:(0,A.jsx)(`div`,{style:{maxHeight:360,overflow:`auto`},children:P?(0,A.jsx)(w,{language:x(P),showLineNumbers:!0,customStyle:{margin:0,borderRadius:0,fontSize:12,maxHeight:`none`},children:f[P]??`(file is empty)`}):(0,A.jsx)(`div`,{style:{padding:12,fontSize:12,opacity:.6},children:`Click a file on the left to preview it.`})})})]}),(0,A.jsxs)(`div`,{style:{marginTop:16},children:[(0,A.jsx)(t.Title,{level:5,style:{marginBottom:8},children:`Requested env vars`}),(0,A.jsxs)(u,{size:[4,4],wrap:!0,children:[g.length===0&&(0,A.jsx)(t.Text,{type:`secondary`,children:`(none)`}),g.map(e=>(0,A.jsx)(r,{icon:(0,A.jsx)(m,{}),color:`gold`,children:e},e))]})]}),(0,A.jsxs)(`div`,{style:{marginTop:16},children:[(0,A.jsx)(t.Title,{level:5,style:{marginBottom:8},children:`Daemon capabilities`}),(0,A.jsxs)(u,{size:[4,4],wrap:!0,children:[V.length===0&&(0,A.jsx)(t.Text,{type:`secondary`,children:`(none)`}),V]}),R&&(0,A.jsx)(i,{type:`info`,showIcon:!0,style:{marginTop:8},title:`agor_token is artifact-scoped only`,description:`Author and instance grants do NOT cover agor_token — granting it here only affects this artifact, regardless of the scope you pick below.`})]}),(0,A.jsxs)(`div`,{style:{marginTop:16},children:[(0,A.jsx)(t.Title,{level:5,style:{marginBottom:8},children:`Trust scope`}),(0,A.jsx)(n.Group,{value:M,onChange:e=>N(e.target.value),children:(0,A.jsxs)(u,{orientation:`vertical`,children:[(0,A.jsx)(n,{value:`session`,children:`Just once (in-memory; cleared when daemon restarts)`}),(0,A.jsx)(n,{value:`artifact`,children:`This artifact only`}),(0,A.jsxs)(n,{value:`author`,disabled:R,children:[`Anything published by this author`,R?` (disabled — agor_token requires artifact scope)`:``]}),!z&&(0,A.jsxs)(n,{value:`instance`,disabled:R,children:[`Anything on this Agor instance`,R?` (disabled — agor_token requires artifact scope)`:``]})]})})]}),(0,A.jsxs)(`div`,{style:{marginTop:24,display:`flex`,justifyContent:`flex-end`,gap:8},children:[(0,A.jsx)(p,{onClick:C,children:`Render without secrets`}),(0,A.jsx)(p,{type:`primary`,loading:I,onClick:async()=>{L(!0);try{let e=await fetch(`${y()}/artifacts/${a}/trust`,{method:`POST`,headers:O(),body:JSON.stringify({scopeType:M})});if(!e.ok){let t=await e.text().catch(()=>``);j(`Failed to grant trust: ${e.statusText} ${t}`);return}k(`Trust granted`),T()}catch(e){j(`Failed to grant trust: ${e instanceof Error?e.message:String(e)}`)}finally{L(!1)}},children:`Render with secrets`})]})]})}function H(e){let t=[];for(let[n,i]of Object.entries(e)){if(n===`agor_proxies`){let e=i??[];for(let n of e)t.push((0,A.jsxs)(r,{color:`purple`,children:[`agor_proxies:`,n]},`proxy:${n}`));continue}if(!i)continue;let e=B.has(n);t.push((0,A.jsx)(r,{color:e?`red`:`blue`,icon:e?(0,A.jsx)(l,{}):void 0,children:n},n))}return t}export{I as a,T as c,L as i,z as n,R as o,F as r,O as s,V as t};
|
|
Binary file
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{$t as t,At as n,F as r,Gt as i,Kn as a,Mn as o,Pt as s,Qn as c,St as l,Xt as u,Yt as d,n as f,on as p,wn as m}from"./antd-CfbbHJOz.js";import{P as h,f as g,p as _}from"./message-SqLqNYcv.js";import{n as v,t as y}from"./sandpack-D7koO5op.js";import{N as b}from"./editor-CzFWIUw2.js";import{Ft as x,_ as S,en as C}from"./index-BN5_Qq7R.js";import{n as w,t as T}from"./ThemeSwitcher-Dly2y9pi.js";import{a as E,c as D,i as O,n as k,o as A,r as j,s as M,t as N}from"./ArtifactConsentModal-CiCbK9iv.js";var P=e(c(),1),F=b();k();var{Header:I,Content:L}=u,{Title:R}=n;function z({artifact:e,payload:n,title:a,loading:c,currentUser:u,onReload:d,onTrustClick:f,onHideNavbar:g,onUserSettingsClick:_,onLogout:v}){let{token:y}=s.useToken(),b=n?A(n,f):null;return(0,F.jsxs)(I,{style:{height:56,padding:`0 16px`,background:y.colorBgContainer,borderBottom:`1px solid ${y.colorBorderSecondary}`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:16},children:[(0,F.jsxs)(p,{size:12,style:{minWidth:0,flex:1,overflow:`hidden`},children:[(0,F.jsx)(m,{type:`text`,icon:(0,F.jsx)(l,{}),href:e?.url??void 0,disabled:!e?.url,children:`Board`}),(0,F.jsx)(C,{level:5}),(0,F.jsxs)(`div`,{style:{minWidth:0,maxWidth:420,display:`flex`,alignItems:`center`,gap:4},children:[(0,F.jsx)(R,{level:5,style:{margin:0,lineHeight:1.2,minWidth:0,flex:`1 1 auto`},ellipsis:!0,children:a}),(0,F.jsx)(o,{title:`Hide navbar`,children:(0,F.jsx)(m,{type:`text`,size:`small`,"aria-label":`Hide navbar`,icon:(0,F.jsx)(t,{}),onClick:g,style:{display:`inline-flex`,alignItems:`center`,justifyContent:`center`,flexShrink:0}})})]}),b]}),(0,F.jsxs)(p,{style:{flexShrink:0},children:[(n?.source_session_id||e?.source_session_id)&&(0,F.jsx)(o,{title:`Open session that created this artifact`,children:(0,F.jsx)(m,{icon:(0,F.jsx)(r,{}),href:S(h(n?.source_session_id??e?.source_session_id)),target:`_blank`,rel:`noopener noreferrer`,children:`Session`})}),e?.url&&(0,F.jsx)(m,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,children:`Open board link`}),(0,F.jsx)(m,{icon:(0,F.jsx)(i,{}),onClick:d,loading:c,children:`Reload`}),(0,F.jsx)(T,{}),(0,F.jsx)(w,{user:u,onUserSettingsClick:_,onLogout:v})]})]})}function B({client:e,currentUser:t,onUserSettingsClick:n,onLogout:r}){let{token:i}=s.useToken(),{artifactShortId:o}=g(),[c,l]=_(),p=c.get(`show_navbar`)!==`false`&&c.get(`chrome`)!==`0`&&c.get(`navbar`)!==`0`,[h,b]=(0,P.useState)(null),[S,C]=(0,P.useState)(null),[w,T]=(0,P.useState)(!0),[k,A]=(0,P.useState)(null),[I,R]=(0,P.useState)(!1),B=(0,P.useRef)(null),V=o??``,H=(0,P.useCallback)(async()=>{if(V)try{T(!0),A(null);let t=await fetch(`${x()}/artifacts/${V}/payload`,{headers:M()});if(!t.ok)throw Error(`Failed to load artifact: ${t.statusText}`);let n=await t.json();if(C(n),e)try{b(await e.service(`artifacts`).get(n.artifact_id))}catch{b(null)}B.current=n.content_hash}catch(e){A(e instanceof Error?e.message:String(e))}finally{T(!1)}},[V,e]);(0,P.useEffect)(()=>{H()},[H]),(0,P.useEffect)(()=>{if(!e)return;let t=e.service(`artifacts`),n=e=>{window.dispatchEvent(new CustomEvent(`agor:artifact-runtime-query`,{detail:e}))};return t.on(`agor-query`,n),()=>{t.removeListener(`agor-query`,n)}},[e]),(0,P.useEffect)(()=>{if(!e)return;let t=e.service(`artifacts`),n=e=>{let t=S?.artifact_id??h?.artifact_id;!t||e.artifact_id!==t||(b(e),e.content_hash&&e.content_hash!==B.current&&H())};return t.on(`patched`,n),t.on(`updated`,n),()=>{t.removeListener(`patched`,n),t.removeListener(`updated`,n)}},[h?.artifact_id,e,H,S?.artifact_id]);let U=S?.sandpack_config??{},W=U.options??{},G=S?{...U.customSetup??{},...S.dependencies&&!U.customSetup?.dependencies?{dependencies:S.dependencies}:{}}:{},K=U.template??S?.template??`react`,q=S?.name??h?.name??`Artifact ${V}`,J=(0,P.useCallback)(()=>{let e=new URLSearchParams(c);e.set(`show_navbar`,`false`),e.delete(`chrome`),e.delete(`navbar`),l(e,{replace:!0})},[c,l]),Y=(0,P.useCallback)(()=>{let e=new URLSearchParams(c);e.delete(`show_navbar`),e.delete(`chrome`),e.delete(`navbar`),l(e,{replace:!0})},[c,l]),X=w&&!S?(0,F.jsx)(d,{size:`large`,tip:`Loading artifact...`}):k?(0,F.jsx)(a,{type:`error`,showIcon:!0,title:`Failed to load artifact`,description:k,action:(0,F.jsx)(m,{onClick:H,children:`Retry`})}):S?(0,F.jsxs)(`div`,{style:{height:`100%`,width:`100%`,display:`flex`,flexDirection:`column`},children:[S.legacy?.is_legacy&&(0,F.jsx)(a,{type:`warning`,showIcon:!0,icon:(0,F.jsx)(f,{}),message:`Legacy artifact — may not render correctly`,description:`Open the board artifact card for the copyable upgrade prompt.`,style:{borderRadius:0}}),(0,F.jsx)(`style`,{children:`
|
|
2
|
-
.artifact-fullscreen-sandpack .sp-wrapper,
|
|
3
|
-
.artifact-fullscreen-sandpack .sp-layout,
|
|
4
|
-
.artifact-fullscreen-sandpack .sp-stack,
|
|
5
|
-
.artifact-fullscreen-sandpack .sp-preview,
|
|
6
|
-
.artifact-fullscreen-sandpack .sp-preview-container {
|
|
7
|
-
height: 100% !important;
|
|
8
|
-
}
|
|
9
|
-
`}),(0,F.jsx)(`div`,{className:`artifact-fullscreen-sandpack`,style:{flex:1,minHeight:0},children:(0,F.jsxs)(v,{template:K,files:D(S.files),customSetup:Object.keys(G).length>0?G:void 0,theme:U.theme,options:{initMode:`user-visible`,...W,...S.entry&&!W.activeFile?{activeFile:S.entry}:{}},children:[(0,F.jsx)(y,{style:{height:`100%`,border:`none`},showNavigator:!1,showOpenInCodeSandbox:!1,showRefreshButton:!0}),(0,F.jsx)(j,{artifactId:S.artifact_id,contentHash:S.runtime_report_hash??S.content_hash}),(0,F.jsx)(E,{artifactId:S.artifact_id,contentHash:S.runtime_report_hash??S.content_hash}),(0,F.jsx)(O,{artifactId:S.artifact_id})]},S.content_hash)})]}):null;return(0,F.jsxs)(u,{style:{minHeight:`100vh`,background:i.colorBgLayout},children:[p?(0,F.jsx)(z,{artifact:h,payload:S,title:q,loading:w,currentUser:t,onReload:H,onTrustClick:()=>R(!0),onHideNavbar:J,onUserSettingsClick:n,onLogout:r}):(0,F.jsx)(m,{size:`small`,onClick:Y,style:{position:`fixed`,top:12,right:12,zIndex:10},children:`Show navbar`}),(0,F.jsx)(L,{style:{height:p?`calc(100vh - 56px)`:`100vh`,display:`flex`,alignItems:w&&!S?`center`:`stretch`,justifyContent:w&&!S?`center`:`stretch`,overflow:`hidden`,background:i.colorBgContainer},children:X}),S&&I&&(0,F.jsx)(N,{open:I,artifactId:S.artifact_id,name:S.name,files:S.files,requiredEnvVars:S.required_env_vars??[],grants:S.agor_grants??{},onClose:()=>R(!1),onGranted:()=>{R(!1),H()}})]})}export{B as ArtifactFullscreenPage};
|
|
Binary file
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{At as t,Hn as n,In as r,Mn as i,Pt as a,Qn as o,Yt as s,Zt as c,jn as l,jt as u}from"./antd-CfbbHJOz.js";import{$ as d,et as f,n as p,t as m}from"./message-SqLqNYcv.js";import{N as h}from"./editor-CzFWIUw2.js";import{n as g,t as ee}from"./emoji-Dkz4Zzv_.js";import{n as _}from"./theme-BQZdiqwv.js";import{bt as v}from"./index-BN5_Qq7R.js";var y=class{diff(e,t,n={}){let r;typeof n==`function`?(r=n,n={}):`callback`in n&&(r=n.callback);let i=this.castInput(e,n),a=this.castInput(t,n),o=this.removeEmpty(this.tokenize(i,n)),s=this.removeEmpty(this.tokenize(a,n));return this.diffWithOptionsObj(o,s,n,r)}diffWithOptionsObj(e,t,n,r){let i=e=>{if(e=this.postProcess(e,n),r){setTimeout(function(){r(e)},0);return}else return e},a=t.length,o=e.length,s=1,c=a+o;n.maxEditLength!=null&&(c=Math.min(c,n.maxEditLength));let l=n.timeout??1/0,u=Date.now()+l,d=[{oldPos:-1,lastComponent:void 0}],f=this.extractCommon(d[0],t,e,0,n);if(d[0].oldPos+1>=o&&f+1>=a)return i(this.buildValues(d[0].lastComponent,t,e));let p=-1/0,m=1/0,h=()=>{for(let r=Math.max(p,-s);r<=Math.min(m,s);r+=2){let s,c=d[r-1],l=d[r+1];c&&(d[r-1]=void 0);let u=!1;if(l){let e=l.oldPos-r;u=l&&0<=e&&e<a}let h=c&&c.oldPos+1<o;if(!u&&!h){d[r]=void 0;continue}if(s=!h||u&&c.oldPos<l.oldPos?this.addToPath(l,!0,!1,0,n):this.addToPath(c,!1,!0,1,n),f=this.extractCommon(s,t,e,r,n),s.oldPos+1>=o&&f+1>=a)return i(this.buildValues(s.lastComponent,t,e))||!0;d[r]=s,s.oldPos+1>=o&&(m=Math.min(m,r-1)),f+1>=a&&(p=Math.max(p,r+1))}s++};if(r)(function e(){setTimeout(function(){if(s>c||Date.now()>u)return r(void 0);h()||e()},0)})();else for(;s<=c&&Date.now()<=u;){let e=h();if(e)return e}}addToPath(e,t,n,r,i){let a=e.lastComponent;return a&&!i.oneChangePerToken&&a.added===t&&a.removed===n?{oldPos:e.oldPos+r,lastComponent:{count:a.count+1,added:t,removed:n,previousComponent:a.previousComponent}}:{oldPos:e.oldPos+r,lastComponent:{count:1,added:t,removed:n,previousComponent:a}}}extractCommon(e,t,n,r,i){let a=t.length,o=n.length,s=e.oldPos,c=s-r,l=0;for(;c+1<a&&s+1<o&&this.equals(n[s+1],t[c+1],i);)c++,s++,l++,i.oneChangePerToken&&(e.lastComponent={count:1,previousComponent:e.lastComponent,added:!1,removed:!1});return l&&!i.oneChangePerToken&&(e.lastComponent={count:l,previousComponent:e.lastComponent,added:!1,removed:!1}),e.oldPos=s,c}equals(e,t,n){return n.comparator?n.comparator(e,t):e===t||!!n.ignoreCase&&e.toLowerCase()===t.toLowerCase()}removeEmpty(e){let t=[];for(let n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t}castInput(e,t){return e}tokenize(e,t){return Array.from(e)}join(e){return e.join(``)}postProcess(e,t){return e}get useLongestToken(){return!1}buildValues(e,t,n){let r=[],i;for(;e;)r.push(e),i=e.previousComponent,delete e.previousComponent,e=i;r.reverse();let a=r.length,o=0,s=0,c=0;for(;o<a;o++){let e=r[o];if(e.removed)e.value=this.join(n.slice(c,c+e.count)),c+=e.count;else{if(!e.added&&this.useLongestToken){let r=t.slice(s,s+e.count);r=r.map(function(e,t){let r=n[c+t];return r.length>e.length?r:e}),e.value=this.join(r)}else e.value=this.join(t.slice(s,s+e.count));s+=e.count,e.added||(c+=e.count)}}return r}};new class extends y{};function b(e,t){let n;for(n=0;n<e.length&&n<t.length;n++)if(e[n]!=t[n])return e.slice(0,n);return e.slice(0,n)}function x(e,t){let n;if(!e||!t||e[e.length-1]!=t[t.length-1])return``;for(n=0;n<e.length&&n<t.length;n++)if(e[e.length-(n+1)]!=t[t.length-(n+1)])return e.slice(-n);return e.slice(-n)}function S(e,t,n){if(e.slice(0,t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't start with prefix ${JSON.stringify(t)}; this is a bug`);return n+e.slice(t.length)}function C(e,t,n){if(!t)return e+n;if(e.slice(-t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't end with suffix ${JSON.stringify(t)}; this is a bug`);return e.slice(0,-t.length)+n}function w(e,t){return S(e,t,``)}function T(e,t){return C(e,t,``)}function E(e,t){return t.slice(0,te(e,t))}function te(e,t){let n=0;e.length>t.length&&(n=e.length-t.length);let r=t.length;e.length<t.length&&(r=e.length);let i=Array(r),a=0;i[0]=0;for(let e=1;e<r;e++){for(t[e]==t[a]?i[e]=i[a]:i[e]=a;a>0&&t[e]!=t[a];)a=i[a];t[e]==t[a]&&a++}a=0;for(let r=n;r<e.length;r++){for(;a>0&&e[r]!=t[a];)a=i[a];e[r]==t[a]&&a++}return a}function D(e){let t;for(t=e.length-1;t>=0&&e[t].match(/\s/);t--);return e.substring(t+1)}function O(e){let t=e.match(/^\s*/);return t?t[0]:``}var k=`a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}`,A=RegExp(`[${k}]+|\\s+|[^${k}]`,`ug`),j=new class extends y{equals(e,t,n){return n.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()}tokenize(e,t={}){let n;if(t.intlSegmenter){let r=t.intlSegmenter;if(r.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);n=[];for(let t of Array.from(r.segment(e))){let e=t.segment;n.length&&/\s/.test(n[n.length-1])&&/\s/.test(e)?n[n.length-1]+=e:n.push(e)}}else n=e.match(A)||[];let r=[],i=null;return n.forEach(e=>{/\s/.test(e)?i==null?r.push(e):r.push(r.pop()+e):i!=null&&/\s/.test(i)?r[r.length-1]==i?r.push(r.pop()+e):r.push(i+e):r.push(e),i=e}),r}join(e){return e.map((e,t)=>t==0?e:e.replace(/^\s+/,``)).join(``)}postProcess(e,t){if(!e||t.oneChangePerToken)return e;let n=null,r=null,i=null;return e.forEach(e=>{e.added?r=e:e.removed?i=e:((r||i)&&N(n,i,r,e),n=e,r=null,i=null)}),(r||i)&&N(n,i,r,null),e}};function M(e,t,n){return n?.ignoreWhitespace!=null&&!n.ignoreWhitespace?re(e,t,n):j.diff(e,t,n)}function N(e,t,n,r){if(t&&n){let i=O(t.value),a=D(t.value),o=O(n.value),s=D(n.value);if(e){let r=b(i,o);e.value=C(e.value,o,r),t.value=w(t.value,r),n.value=w(n.value,r)}if(r){let e=x(a,s);r.value=S(r.value,s,e),t.value=T(t.value,e),n.value=T(n.value,e)}}else if(n){if(e){let e=O(n.value);n.value=n.value.substring(e.length)}if(r){let e=O(r.value);r.value=r.value.substring(e.length)}}else if(e&&r){let n=O(r.value),i=O(t.value),a=D(t.value),o=b(n,i);t.value=w(t.value,o);let s=x(w(n,o),a);t.value=T(t.value,s),r.value=S(r.value,n,s),e.value=C(e.value,n,n.slice(0,n.length-s.length))}else if(r){let e=O(r.value),n=E(D(t.value),e);t.value=T(t.value,n)}else if(e){let n=E(D(e.value),O(t.value));t.value=w(t.value,n)}}var ne=new class extends y{tokenize(e){let t=RegExp(`(\\r?\\n)|[${k}]+|[^\\S\\n\\r]+|[^${k}]`,`ug`);return e.match(t)||[]}};function re(e,t,n){return ne.diff(e,t,n)}var ie=new class extends y{constructor(){super(...arguments),this.tokenize=P}equals(e,t,n){return n.ignoreWhitespace?((!n.newlineIsToken||!e.includes(`
|
|
2
|
-
`))&&(e=e.trim()),(!n.newlineIsToken||!t.includes(`
|
|
3
|
-
`))&&(t=t.trim())):n.ignoreNewlineAtEof&&!n.newlineIsToken&&(e.endsWith(`
|
|
4
|
-
`)&&(e=e.slice(0,-1)),t.endsWith(`
|
|
5
|
-
`)&&(t=t.slice(0,-1))),super.equals(e,t,n)}};function ae(e,t,n){return ie.diff(e,t,n)}function P(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,`
|
|
6
|
-
`));let n=[],r=e.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(let e=0;e<r.length;e++){let i=r[e];e%2&&!t.newlineIsToken?n[n.length-1]+=i:n.push(i)}return n}function oe(e){return e==`.`||e==`!`||e==`?`}new class extends y{tokenize(e){let t=[],n=0;for(let r=0;r<e.length;r++){if(r==e.length-1){t.push(e.slice(n));break}if(oe(e[r])&&e[r+1].match(/\s/)){for(t.push(e.slice(n,r+1)),r=n=r+1;e[r+1]?.match(/\s/);)r++;t.push(e.slice(n,r+1)),n=r+1}}return t}},new class extends y{tokenize(e){return e.split(/([{}:;,]|\s+)/)}},new class extends y{constructor(){super(...arguments),this.tokenize=P}get useLongestToken(){return!0}castInput(e,t){let{undefinedReplacement:n,stringifyReplacer:r=(e,t)=>t===void 0?n:t}=t;return typeof e==`string`?e:JSON.stringify(F(e,null,null,r),null,` `)}equals(e,t,n){return super.equals(e.replace(/,([\r\n])/g,`$1`),t.replace(/,([\r\n])/g,`$1`),n)}};function F(e,t,n,r,i){t||=[],n||=[],r&&(e=r(i===void 0?``:i,e));let a;for(a=0;a<t.length;a+=1)if(t[a]===e)return n[a];let o;if(Object.prototype.toString.call(e)===`[object Array]`){for(t.push(e),o=Array(e.length),n.push(o),a=0;a<e.length;a+=1)o[a]=F(e[a],t,n,r,String(a));return t.pop(),n.pop(),o}if(e&&e.toJSON&&(e=e.toJSON()),typeof e==`object`&&e){t.push(e),o={},n.push(o);let i=[],s;for(s in e)Object.prototype.hasOwnProperty.call(e,s)&&i.push(s);for(i.sort(),a=0;a<i.length;a+=1)s=i[a],o[s]=F(e[s],t,n,r,s);t.pop(),n.pop()}else o=e;return o}new class extends y{tokenize(e){return e.slice()}join(e){return e}removeEmpty(e){return e}};var se={includeIndex:!0,includeUnderline:!0,includeFileHeaders:!0};function I(e,t,n,r,i,a,o){let s;s=o?typeof o==`function`?{callback:o}:o:{},s.context===void 0&&(s.context=4);let c=s.context;if(s.newlineIsToken)throw Error(`newlineIsToken may not be used with patch-generation functions, only with diffing functions`);if(s.callback){let{callback:e}=s;ae(n,r,Object.assign(Object.assign({},s),{callback:t=>{e(l(t))}}))}else return l(ae(n,r,s));function l(n){if(!n)return;n.push({value:``,lines:[]});function r(e){return e.map(function(e){return` `+e})}let o=[],s=0,l=0,u=[],d=1,f=1;for(let e=0;e<n.length;e++){let t=n[e],i=t.lines||z(t.value);if(t.lines=i,t.added||t.removed){if(!s){let t=n[e-1];s=d,l=f,t&&(u=c>0?r(t.lines.slice(-c)):[],s-=u.length,l-=u.length)}for(let e of i)u.push((t.added?`+`:`-`)+e);t.added?f+=i.length:d+=i.length}else{if(s)if(i.length<=c*2&&e<n.length-2)for(let e of r(i))u.push(e);else{let e=Math.min(i.length,c);for(let t of r(i.slice(0,e)))u.push(t);let t={oldStart:s,oldLines:d-s+e,newStart:l,newLines:f-l+e,lines:u};o.push(t),s=0,l=0,u=[]}d+=i.length,f+=i.length}}for(let e of o)for(let t=0;t<e.lines.length;t++)e.lines[t].endsWith(`
|
|
7
|
-
`)?e.lines[t]=e.lines[t].slice(0,-1):(e.lines.splice(t+1,0,`\`),t++);return{oldFileName:e,newFileName:t,oldHeader:i,newHeader:a,hunks:o}}}function L(e,t){if(t||=se,Array.isArray(e)){if(e.length>1&&!t.includeFileHeaders)throw Error(`Cannot omit file headers on a multi-file patch. (The result would be unparseable; how would a tool trying to apply the patch know which changes are to which file?)`);return e.map(e=>L(e,t)).join(`
|
|
8
|
-
`)}let n=[];t.includeIndex&&e.oldFileName==e.newFileName&&n.push(`Index: `+e.oldFileName),t.includeUnderline&&n.push(`===================================================================`),t.includeFileHeaders&&(n.push(`--- `+e.oldFileName+(e.oldHeader===void 0?``:` `+e.oldHeader)),n.push(`+++ `+e.newFileName+(e.newHeader===void 0?``:` `+e.newHeader)));for(let t=0;t<e.hunks.length;t++){let r=e.hunks[t];r.oldLines===0&&--r.oldStart,r.newLines===0&&--r.newStart,n.push(`@@ -`+r.oldStart+`,`+r.oldLines+` +`+r.newStart+`,`+r.newLines+` @@`);for(let e of r.lines)n.push(e)}return n.join(`
|
|
9
|
-
`)+`
|
|
10
|
-
`}function R(e,t,n,r,i,a,o){if(typeof o==`function`&&(o={callback:o}),o?.callback){let{callback:s}=o;I(e,t,n,r,i,a,Object.assign(Object.assign({},o),{callback:e=>{s(e?L(e,o.headerOptions):void 0)}}))}else{let s=I(e,t,n,r,i,a,o);return s?L(s,o?.headerOptions):void 0}}function ce(e,t,n,r,i,a){return R(e,e,t,n,r,i,a)}function z(e){let t=e.endsWith(`
|
|
11
|
-
`),n=e.split(`
|
|
12
|
-
`).map(e=>e+`
|
|
13
|
-
`);return t?n.pop():n.push(n.pop().slice(0,-1)),n}var B=e(o(),1);function le(e,t,n){return(0,B.useMemo)(()=>n?.length?V(n):e!==void 0&&t!==void 0?ue(e,t):t===void 0?{lines:[],stats:{additions:0,deletions:0},hasLineNumbers:!1,totalLines:0}:H(t),[e,t,n])}function V(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++){let a=e[i];i>0&&t.push({type:`context`,content:`...`});let o=a.oldStart,s=a.newStart;for(let e of a.lines)if(e.startsWith(`+`))t.push({type:`add`,content:e.slice(1),newLineNumber:s}),s++,n++;else if(e.startsWith(`-`))t.push({type:`remove`,content:e.slice(1),oldLineNumber:o}),o++,r++;else{let n=e.startsWith(` `)?e.slice(1):e;t.push({type:`context`,content:n,oldLineNumber:o,newLineNumber:s}),o++,s++}}return U(t),{lines:t,stats:{additions:n,deletions:r},hasLineNumbers:!0,totalLines:t.length}}function ue(e,t){let n=ae(e,t),r=[],i=0,a=0;for(let e of n){let t=e.value.replace(/\n$/,``).split(`
|
|
14
|
-
`);for(let n of t)e.added?(r.push({type:`add`,content:n}),i++):e.removed?(r.push({type:`remove`,content:n}),a++):r.push({type:`context`,content:n})}return U(r),{lines:r,stats:{additions:i,deletions:a},hasLineNumbers:!1,totalLines:r.length}}function H(e){let t=e.split(`
|
|
15
|
-
`),n=t.map((e,t)=>({type:`add`,content:e,newLineNumber:t+1}));return{lines:n,stats:{additions:t.length,deletions:0},hasLineNumbers:!0,totalLines:n.length}}function U(e){let t=0;for(;t<e.length;){if(e[t].type!==`remove`){t++;continue}let n=t;for(;t<e.length&&e[t].type===`remove`;)t++;let r=t,i=t;for(;t<e.length&&e[t].type===`add`;)t++;let a=t;if(i===a)continue;let o=Math.min(r-n,a-i);for(let t=0;t<o;t++){let r=e[n+t],a=e[i+t],o=M(r.content,a.content),s=[],c=[];for(let e of o)e.added?c.push({text:e.value,type:`changed`}):e.removed?s.push({text:e.value,type:`changed`}):(s.push({text:e.value,type:`unchanged`}),c.push({text:e.value,type:`unchanged`}));r.wordSegments=s,a.wordSegments=c}}}var W=h(),G=10,K=50,q=20,J=e=>{for(let t of[`/branches/`,`/home/`,`/Users/`]){let n=e.indexOf(t);if(n!==-1){let r=e.slice(n+t.length),i=r.split(`/`);return i.length>3?i.slice(i.length>5?-4:2).join(`/`):r}}let t=e.split(`/`);return t.length>4?t.slice(-4).join(`/`):e},Y=e=>{switch(e){case`create`:return`Create`;case`delete`:return`Delete`;default:return`Update`}},X=({filePath:e,operationType:o,oldContent:s,newContent:c,structuredPatch:l,isError:d,errorMessage:f,forceExpanded:h})=>{let{token:g}=a.useToken(),{showSuccess:ee}=m(),v=_(g),y=le(s,c,l),[b,x]=(0,B.useState)(h??(y.totalLines<=G&&y.totalLines>0)),[S,C]=(0,B.useState)(!1),w=v?`rgba(46, 160, 67, 0.15)`:`rgba(46, 160, 67, 0.1)`,T=v?`rgba(218, 54, 51, 0.15)`:`rgba(218, 54, 51, 0.1)`,E=v?`#3fb950`:`#1a7f37`,te=v?`#f85149`:`#cf222e`,D=v?`rgba(46, 160, 67, 0.4)`:`rgba(46, 160, 67, 0.3)`,O=v?`rgba(218, 54, 51, 0.4)`:`rgba(218, 54, 51, 0.3)`,k=g.colorTextTertiary,A=g.colorTextQuaternary,j=g.colorBorderSecondary;if(d)return(0,W.jsx)(`div`,{style:{padding:g.sizeUnit,borderRadius:g.borderRadius,background:`rgba(255, 77, 79, 0.05)`,border:`1px solid ${g.colorErrorBorder}`},children:(0,W.jsx)(t.Text,{type:`danger`,style:{fontSize:g.fontSizeSM},children:f||`Edit failed`})});if(y.totalLines===0)return null;let M=async()=>{let t;t=s!==void 0&&c!==void 0?ce(e,s,c):c===void 0?y.lines.map(e=>e.type===`add`?`+${e.content}`:e.type===`remove`?`-${e.content}`:` ${e.content}`).join(`
|
|
16
|
-
`):ce(e,``,c),await p(t),ee(`Diff copied`)},N=y.totalLines>K&&!S,ne=N?y.lines.slice(0,q):y.lines,re=(e,t)=>{let n=[];for(let t of e){let e=t.type===`changed`,r=n[n.length-1];r&&r.changed===e?r.text+=t.text:n.push({text:t.text,changed:e})}return n.map(e=>e.changed?(0,W.jsx)(`span`,{style:{background:t,borderRadius:2},children:e.text},e.text):e.text)};return(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`div`,{onClick:()=>x(!b),style:{display:`flex`,alignItems:`center`,gap:6,minWidth:0,padding:`${g.sizeUnit*.75}px ${g.sizeUnit}px`,cursor:`pointer`,borderRadius:b?`${g.borderRadius}px ${g.borderRadius}px 0 0`:g.borderRadius,background:g.colorBgLayout,border:`1px solid ${g.colorBorderSecondary}`,borderBottom:b?`none`:void 0,fontSize:g.fontSizeSM,userSelect:`none`},children:[b?(0,W.jsx)(r,{style:{fontSize:10,color:g.colorTextSecondary}}):(0,W.jsx)(n,{style:{fontSize:10,color:g.colorTextSecondary}}),(0,W.jsx)(i,{title:Y(o),children:(0,W.jsx)(t.Text,{strong:!0,style:{fontSize:g.fontSizeSM,maxWidth:96,minWidth:0,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,flexShrink:0},children:Y(o)})}),(0,W.jsx)(i,{title:e,children:(0,W.jsx)(t.Text,{code:!0,style:{fontSize:g.fontSizeSM-1,minWidth:0,flex:`1 1 auto`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:J(e)})}),(0,W.jsx)(`span`,{style:{flex:1}}),y.stats.additions>0&&(0,W.jsxs)(`span`,{style:{color:E,fontWeight:600,fontSize:11},children:[`+`,y.stats.additions]}),y.stats.deletions>0&&(0,W.jsxs)(`span`,{style:{color:te,fontWeight:600,fontSize:11},children:[`-`,y.stats.deletions]})]}),b&&(0,W.jsxs)(`div`,{style:{border:`1px solid ${g.colorBorderSecondary}`,borderTop:`none`,borderRadius:`0 0 ${g.borderRadius}px ${g.borderRadius}px`,overflow:`hidden`},children:[(0,W.jsx)(`div`,{style:{overflowX:`auto`},children:ne.map((e,t)=>{if(e.type===`context`&&e.content===`...`)return(0,W.jsx)(`div`,{style:{padding:`2px 8px`,color:j,fontSize:g.fontSizeSM,fontStyle:`italic`,borderTop:`1px dashed ${j}`,borderBottom:`1px dashed ${j}`},children:`...`},t);let n=e.type===`add`?w:e.type===`remove`?T:void 0,r=e.type===`add`?E:e.type===`remove`?te:k,i=e.type===`add`?`+`:e.type===`remove`?`-`:` `,a=e.type===`remove`?e.oldLineNumber:e.newLineNumber;return(0,W.jsxs)(`div`,{style:{display:`flex`,background:n,fontFamily:`Monaco, Menlo, Ubuntu Mono, Consolas, source-code-pro, monospace`,fontSize:g.fontSizeSM,lineHeight:`20px`,minHeight:20},children:[y.hasLineNumbers&&(0,W.jsx)(`span`,{style:{width:48,minWidth:48,textAlign:`right`,paddingRight:8,color:A,userSelect:`none`,flexShrink:0},children:a??``}),(0,W.jsx)(`span`,{style:{width:16,minWidth:16,textAlign:`center`,color:r,userSelect:`none`,flexShrink:0,fontWeight:e.type===`context`?void 0:600},children:i}),(0,W.jsx)(`span`,{style:{color:e.type===`context`?k:r,whiteSpace:`pre-wrap`,wordBreak:`break-all`,flex:1,paddingRight:8},children:e.wordSegments?re(e.wordSegments,e.type===`add`?D:O):e.content||` `})]},t)})}),N&&(0,W.jsxs)(`div`,{onClick:e=>{e.stopPropagation(),C(!0)},style:{padding:`${g.sizeUnit*.75}px ${g.sizeUnit}px`,textAlign:`center`,cursor:`pointer`,color:g.colorPrimary,fontSize:g.fontSizeSM,borderTop:`1px dashed ${j}`,background:g.colorBgLayout},children:[`Show `,y.totalLines-q,` more lines`]}),(0,W.jsx)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,padding:`3px ${g.sizeUnit}px`,borderTop:`1px solid ${g.colorBorderSecondary}`,background:g.colorBgLayout},children:(0,W.jsx)(i,{title:`Copy diff`,children:(0,W.jsx)(u,{onClick:e=>{e.stopPropagation(),M()},style:{fontSize:12,color:g.colorTextTertiary,cursor:`pointer`,padding:4}})})})]})]})},de=()=>{let e=(0,B.useMemo)(()=>{let e=new Map;for(let t of g)t.unicode&&e.set(t.hexcode,{emoji:t.unicode,tags:t.tags||[]});let t=[];for(let[n,r]of Object.entries(ee)){let i=e.get(n);if(!i)continue;let a=Array.isArray(r)?r:[r];for(let e of a)t.push({shortcode:e,emoji:i.emoji,keywords:i.tags})}return t},[]);return{searchEmojis:(0,B.useMemo)(()=>t=>{if(!t)return e.slice(0,20);let n=t.toLowerCase();return e.filter(e=>{let t=e.shortcode.toLowerCase().includes(n),r=e.keywords?.some(e=>e.toLowerCase().includes(n))||!1;return t||r}).sort((e,t)=>{let r=e.shortcode.toLowerCase(),i=t.shortcode.toLowerCase();if(r===n)return-1;if(i===n)return 1;let a=r.startsWith(n),o=i.startsWith(n);if(a&&!o)return-1;if(!a&&o)return 1;let s=r.includes(n),c=i.includes(n);return s&&!c?-1:!s&&c?1:r.localeCompare(i)}).slice(0,20)},[e]),allEmojis:e}},fe=`agor://kb/`,pe=e=>{try{return decodeURIComponent(e)}catch{return e}},me=e=>(e??``).split(`/`).filter(Boolean).map(pe).join(`/`),he=e=>e.split(`/`).filter(Boolean).map(e=>encodeURIComponent(e)).join(`/`),ge=e=>e.startsWith(`/knowledge`)?`/knowledge`:`/kb`,_e=(e,t,n)=>{if(!t||t===`all`)return e;let r=encodeURIComponent(t),i=n?he(n):``;return i?`${e}/${r}/${i}`:`${e}/${r}`},ve=e=>{if(!e?.startsWith(fe))return null;let t=e.slice(10),n=t.indexOf(`/`);return n>0?t.slice(0,n):null},ye=e=>(e.split(`/`).filter(Boolean).pop()??e).replace(/\.(md|markdown)$/i,``).replace(/[-_]+/g,` `).trim()||e;function be(e,t=`/kb`){let n=e.path?.trim();if(!n)return null;let r=ve(e.uri);return r?{title:e.title?.trim()||ye(n),documentId:e.document_id,path:n,uri:e.uri,routePath:_e(t,r,n)}:null}var xe=e=>{let t=new Set,n=[];for(let r of e)t.has(r.documentId)||(t.add(r.documentId),n.push(r));return n};function Se(e,t,n=8){let r=t.trim().toLowerCase();if(!r)return e.slice(0,n);let i=e=>{let t=e.title.toLowerCase(),n=e.path.toLowerCase();return t===r?0:t.startsWith(r)?1:t.includes(r)?2:n.includes(r)?3:4};return e.map(e=>({doc:e,score:i(e)})).filter(({score:e})=>e<4).sort((e,t)=>e.score-t.score||e.doc.title.localeCompare(t.doc.title)).slice(0,n).map(({doc:e})=>e)}function Ce(e,t){return`[${e.replace(/[[\]]/g,`\\$&`).trim()||`Untitled`}](${t})`}function we(e,t){return Ce(e,f(t))}var Te=RegExp(`${d.replace(/[/]/g,`\\$&`)}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})`,`gi`);function Z(e,t){return e&&e.replace(Te,(e,n)=>t(n.toLowerCase())??e)}var{TextArea:Ee}=c,{Text:De}=t,Oe=10,ke=5,Ae=15,je=300,Me=8,Ne=320,Pe=300,Fe=[],Ie=[],Le=2,Q=2,Re=e=>{if(!e)return!1;let t=e.codePointAt(0);return t?t>=128512&&t<=128591||t>=127744&&t<=128511||t>=128640&&t<=128767||t>=9728&&t<=9983||t>=9984&&t<=10175||t>=127456&&t<=127487||t>=129280&&t<=129535||t>=129536&&t<=129647:!1},$=(e,t)=>{if(t<=0)return``;let n=e.charAt(t-1),r=t>=2?e.charAt(t-2):``,i=n.charCodeAt(0);if(i>=56320&&i<=57343&&r){let e=r.charCodeAt(0);if(e>=55296&&e<=56319)return r+n}return n},ze=(e,t,n)=>{let r=e.substring(0,t),i=r.lastIndexOf(n);if(i===-1)return null;let a=$(r,i),o=i===0,s=a===` `||a===`
|
|
17
|
-
`,c=Re(a);if(n===`/`){if(i!==0)return null}else if(n===`@`){if(!o&&!s)return null}else if(n===`:`&&!o&&!s&&!c)return null;let l=r.substring(i+1);return l.includes(` `)||l.includes(`
|
|
18
|
-
`)||n===`:`&&l.length<Q?null:{query:l,triggerIndex:i}},Be=e=>e.includes(` `)?`"${e}"`:e,Ve=e=>Array.isArray(e)?e:e.data??[],He=(e,t)=>{let n=/@(?:"[^"]*"|[^\s]+)/g,r=[],i=0,a=n.exec(e);for(;a!==null;)a.index>i&&r.push(e.substring(i,a.index)),r.push((0,W.jsx)(`span`,{style:{backgroundColor:t,borderRadius:`3px`,padding:`0 2px`,fontWeight:600},children:a[0]},`mention-${a.index}`)),i=a.index+a[0].length,a=n.exec(e);return i<e.length&&r.push(e.substring(i)),r},Ue=[`boxSizing`,`width`,`paddingTop`,`paddingRight`,`paddingBottom`,`paddingLeft`,`borderTopWidth`,`borderRightWidth`,`borderBottomWidth`,`borderLeftWidth`,`fontStyle`,`fontVariant`,`fontWeight`,`fontStretch`,`fontSize`,`fontFamily`,`lineHeight`,`letterSpacing`,`wordSpacing`,`textIndent`,`textTransform`,`tabSize`],We=(e,t,n)=>{let r=window.getComputedStyle(e),i=document.createElement(`div`),a=i.style;a.position=`absolute`,a.visibility=`hidden`,a.whiteSpace=`pre-wrap`,a.wordWrap=`break-word`,a.top=`0`,a.left=`-9999px`;for(let e of Ue)a[e]=r[e];i.textContent=t.slice(0,n);let o=document.createElement(`span`);o.textContent=t.slice(n)||`.`,i.appendChild(o),document.body.appendChild(i);let s=Number.parseFloat(r.lineHeight),c=Number.isNaN(s)?Number.parseFloat(r.fontSize)*1.4:s,l=o.offsetLeft,u=o.offsetTop;return document.body.removeChild(i),{left:l,top:u,lineHeight:c}},Ge=B.forwardRef(({value:e,onChange:t,onKeyPress:n,placeholder:r=`Send a prompt, fork, or create a subsession... (type @ for files/users, : for emojis)`,client:i,sessionId:o,userById:c,autoSize:u,onFilesDrop:d,slashCommands:f=Fe,skills:p=Ie,enableKnowledgeMentions:m=!1,kbDocs:h,kbLinkTarget:g=`stable-uri`,highlightWhenEmpty:ee=!1},_)=>{let{token:y}=a.useToken(),b=(0,B.useRef)({current:null}),x=(0,B.useRef)(null),S=(0,B.useRef)(null),C=(0,B.useRef)(null),w=(0,B.useRef)(null),T=(0,B.useRef)(0),E=(0,B.useRef)(0),[te,D]=(0,B.useState)(!1),{searchEmojis:O}=de(),[k,A]=(0,B.useState)(!1),[j,M]=(0,B.useState)(null),[N,ne]=(0,B.useState)(-1),[re,ie]=(0,B.useState)(``),[ae,P]=(0,B.useState)(!1),[oe,F]=(0,B.useState)(!1),[se,I]=(0,B.useState)(null),[L,R]=(0,B.useState)([]),[ce,z]=(0,B.useState)([]),[le,V]=(0,B.useState)([]),[ue,H]=(0,B.useState)([]),[U,G]=(0,B.useState)(-1),K=h!==void 0,q=m||K,J=q?h??ue:[],Y=ae||oe,[X,fe]=(0,B.useState)(0),pe=(0,B.useRef)(null),[me,he]=(0,B.useState)([0,0]),[ge,_e]=(0,B.useState)(`bottomLeft`);B.useEffect(()=>{let e=b.current?.current;if(!e)return;let t=()=>{fe(e.scrollTop)};return e.addEventListener(`scroll`,t),()=>{e.removeEventListener(`scroll`,t)}},[]),B.useEffect(()=>()=>{w.current&&clearTimeout(w.current),T.current+=1,E.current+=1},[]),B.useLayoutEffect(()=>{if(!k||N<0)return;let t=b.current?.current,n=x.current;if(!t||!n)return;let{left:r,top:i,lineHeight:a}=We(t,e,N),o=t.getBoundingClientRect(),s=n.getBoundingClientRect(),c=o.top-s.top+i-X,l=o.top+i-X,u=l+a,d=l,f=window.innerHeight-u,p=f<308&&d>f;_e(p?`topLeft`:`bottomLeft`),he([o.left-s.left+Math.max(0,r-t.scrollLeft),p?c:c+a])},[k,N,X,e]),B.useEffect(()=>{if(U>=0&&C.current){let e=C.current.children;if(U<e.length){let t=e[U];t&&typeof t.scrollIntoView==`function`&&t.scrollIntoView({behavior:`smooth`,block:`nearest`})}}},[U]);let ve=(0,B.useCallback)(async e=>{let t=T.current+1;if(T.current=t,!i||!o||!e.trim()){R([]),P(!1);return}P(!0);try{let n=await i.service(`files`).findAll({query:{sessionId:o,search:e}});if(T.current!==t)return;R(n.slice(0,Oe))}catch(e){if(T.current!==t)return;console.error(`File search error:`,e),R([])}finally{T.current===t&&P(!1)}},[i,o]),ye=(0,B.useCallback)(async e=>{let t=E.current+1;if(E.current=t,!q||K||!i){H([]),I(null),F(!1);return}let n=e.trim();if(n.length<Le){H([]),I(null),F(!1);return}F(!0),I(null);try{let e=Ve(await i.service(`kb/search`).find({query:{q:n,mode:`text`,limit:8,include_chunks:!1}})).map(e=>be(e.document)).filter(e=>!!e);if(E.current!==t)return;H(xe(e).slice(0,8))}catch(e){if(E.current!==t)return;console.error(`Knowledge mention search error:`,e),H([]),I(e instanceof Error?e.message:`Unable to search Knowledge`)}finally{E.current===t&&F(!1)}},[i,K,q]),Te=(0,B.useCallback)(e=>{let t=v(c);if(!e.trim())return t.slice(0,ke).map(e=>({name:e.name||e.email,email:e.email,type:`user`}));let n=e.toLowerCase();return t.filter(e=>e.name?.toLowerCase().includes(n)||e.email.toLowerCase().includes(n)).slice(0,ke).map(e=>({name:e.name||e.email,email:e.email,type:`user`}))},[c]),Z=(0,B.useMemo)(()=>{let e=[];if(j===`@`){if(L.length>0&&(e.push({heading:`FILES & FOLDERS`}),e.push(...L)),J.length>0){let t=(K?Se(J,re):J).map(e=>({kbTitle:e.title,kbDocumentId:e.documentId,kbUri:e.uri,kbRoutePath:e.routePath,type:`kb_doc`}));t.length>0&&(e.push({heading:`KNOWLEDGE BASE`}),e.push(...t))}let t=Te(re);t.length>0&&(e.push({heading:`USERS`}),e.push(...t))}else j===`:`?ce.length>0&&(e.push({heading:`EMOJIS`}),e.push(...ce)):j===`/`&&le.length>0&&(e.push({heading:`COMMANDS`}),e.push(...le));return e},[j,L,ce,le,J,re,Te,K]),Q=`${ge}:${me[0]}:${me[1]}`;B.useLayoutEffect(()=>{if(!k||Z.length===0)return;S.current?.forceAlign();let e=Q,t=window.setTimeout(()=>{e===Q&&S.current?.forceAlign()},0);return()=>{window.clearTimeout(t)}},[k,Z.length,Q]),B.useLayoutEffect(()=>{if(Z.length>0&&k){let e=Z.findIndex(e=>!(`heading`in e));e>=0&&G(e)}else G(-1)},[Z,k]),B.useEffect(()=>{if(U>=Z.length){let e=-1;for(let t=Z.length-1;t>=0;t--)if(!(`heading`in Z[t])){e=t;break}G(e)}},[Z,U]);let Re=(0,B.useCallback)(e=>{let n=e.target.value;t(n);let r=e.target.selectionStart||0,i=ze(n,r,`/`);if(i){M(`/`),ie(i.query),ne(i.triggerIndex),w.current&&clearTimeout(w.current),T.current+=1,E.current+=1,R([]),z([]),H([]),I(null),P(!1),F(!1);let e=i.query.toLowerCase(),t=new Set,n=[];for(let r of f){let i=r.toLowerCase();i.includes(e)&&!t.has(i)&&(t.add(i),n.push({command:r,source:`built-in`,type:`slash_command`}))}for(let r of p){let i=r.toLowerCase();i.includes(e)&&!t.has(i)&&(t.add(i),n.push({command:r,source:`project`,type:`slash_command`}))}n.sort((e,t)=>e.command.toLowerCase().localeCompare(t.command.toLowerCase())),V(n),A(!0);return}let a=ze(n,r,`@`);if(a){M(`@`),ie(a.query),ne(a.triggerIndex),z([]),V([]),w.current&&clearTimeout(w.current),w.current=setTimeout(()=>{ve(a.query),q&&ye(a.query)},je),A(!0);return}let o=ze(n,r,`:`);if(o){M(`:`),ie(o.query),ne(o.triggerIndex),w.current&&clearTimeout(w.current),T.current+=1,E.current+=1,R([]),H([]),I(null),V([]),P(!1),F(!1),z(O(o.query).slice(0,Ae).map(e=>({emoji:e.emoji,shortcode:e.shortcode,type:`emoji`}))),A(!0);return}w.current&&clearTimeout(w.current),A(!1),M(null),R([]),z([]),V([]),H([]),I(null),P(!1),F(!1),T.current+=1,E.current+=1,G(-1)},[t,ve,ye,O,f,p,q]),$=(0,B.useCallback)(n=>{if(N===-1)return;let r=b.current.current?.selectionStart||0,i=e.substring(0,r).substring(N+1).length,a=``,o=!0;`kbDocumentId`in n?a=g===`absolute-route`?Ce(n.kbTitle,`${window.location.origin}${n.kbRoutePath}`):we(n.kbTitle,n.kbDocumentId):`command`in n?a=`/${n.command}`:`emoji`in n?(a=n.emoji,o=!1):a=`path`in n?`@${Be(n.path)}`:`@${n.name}`,t(e.substring(0,N)+a+(o?` `:``)+e.substring(N+1+i)),A(!1),M(null),R([]),z([]),V([]),H([]),I(null),P(!1),F(!1),T.current+=1,E.current+=1,G(-1),setTimeout(()=>{let e=N+a.length+ +!!o;b.current.current?.setSelectionRange(e,e),b.current.current?.focus()},0)},[N,e,t,g]),Ue=(0,B.useCallback)(e=>{let t=k&&Z.length>0;switch(e.key){case`ArrowDown`:t&&(e.preventDefault(),e.stopPropagation(),G(e=>{let t=e+1;for(;t<Z.length;){if(!(`heading`in Z[t]))return t;t++}return e}));break;case`ArrowUp`:t&&(e.preventDefault(),e.stopPropagation(),G(e=>{let t=e-1;for(;t>=0;){if(!(`heading`in Z[t]))return t;t--}return-1}));break;case`Tab`:if(t){if(e.preventDefault(),e.stopPropagation(),U>=0){let e=Z[U];`heading`in e||$(e)}else if(Z.length>0){let e=Z.find(e=>!(`heading`in e));e&&G(Z.indexOf(e))}}break;case`Enter`:if(t)if(e.preventDefault(),e.stopPropagation(),U>=0){let e=Z[U];`heading`in e||$(e)}else{let e=Z.find(e=>!(`heading`in e));e&&$(e)}else !t&&n&&n(e);break;case`Escape`:t&&(e.preventDefault(),e.stopPropagation(),A(!1));break;default:!t&&n&&n(e)}},[k,Z,U,$,n]),Ge=(0,B.useCallback)(e=>{d&&(e.preventDefault(),e.stopPropagation(),D(!0))},[d]),Ke=(0,B.useCallback)(e=>{d&&(e.preventDefault(),e.stopPropagation(),D(!1))},[d]),qe=(0,B.useCallback)(e=>{if(!d)return;e.preventDefault(),e.stopPropagation(),D(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&d(t)},[d]),Je=(0,B.useCallback)(e=>{if(!d)return;let t=[];for(let n of Array.from(e.clipboardData.items))if(n.kind===`file`&&n.type.startsWith(`image/`)){let e=n.getAsFile();if(e){let r=n.type.split(`/`)[1]||`png`,i=`pasted-screenshot-${new Date().toISOString().replace(/[:.]/g,`-`)}.${r}`;t.push(new File([e],i,{type:e.type}))}}t.length!==0&&(e.preventDefault(),d(t))},[d]),Ye=(0,W.jsxs)(`div`,{ref:C,onMouseDown:e=>{e.preventDefault()},style:{width:`min(${Ne}px, calc(100vw - ${Me*2}px))`,maxWidth:`calc(100vw - ${Me*2}px)`,maxHeight:`min(${Pe}px, calc(100vh - ${Me*2}px))`,overflowY:`auto`,minWidth:`min(250px, calc(100vw - ${Me*2}px))`},children:[Y&&(0,W.jsx)(`div`,{style:{padding:`${y.paddingXS}px ${y.paddingSM}px`,textAlign:`center`},children:(0,W.jsx)(s,{size:`small`})}),!Y&&se&&(0,W.jsx)(`div`,{style:{padding:`${y.paddingXS}px ${y.paddingSM}px`,color:y.colorError,fontSize:y.fontSizeSM},children:`Unable to search Knowledge`}),!Y&&Z.length===0&&(0,W.jsx)(`div`,{style:{padding:`${y.paddingXS}px ${y.paddingSM}px`,color:y.colorTextSecondary,fontSize:y.fontSizeSM},children:`No results`}),!Y&&Z.map((e,t)=>{if(`heading`in e)return(0,W.jsx)(`div`,{style:{position:`sticky`,top:0,padding:`${y.paddingXS}px ${y.paddingSM}px`,fontSize:y.fontSizeSM,fontWeight:600,color:y.colorTextSecondary,backgroundColor:y.colorBgContainer,textTransform:`uppercase`,borderBottom:`1px solid ${y.colorBorder}`,marginTop:t>0?y.paddingXS:0,zIndex:10},children:e.heading},`heading-${e.heading}`);let n=``,r=``,i=!1,a=!1,o=!1;`kbRoutePath`in e?(n=e.kbTitle,r=`kb-${e.kbUri}`,o=!0):`command`in e?(n=`/${e.command}`,r=`cmd-${e.command}`,a=!0):`emoji`in e?(n=`${e.emoji} :${e.shortcode}:`,r=`emoji-${e.shortcode}`):`path`in e?(n=e.path,r=`file-${e.path}`,i=e.type===`folder`):(n=`${e.name} (${e.email})`,r=`user-${e.name}`);let s=U===t;return(0,W.jsxs)(`div`,{onClick:()=>$(e),style:{padding:`${y.paddingXS}px ${y.paddingSM}px`,cursor:`pointer`,transition:`background-color 0.2s`,fontSize:y.fontSize,lineHeight:1.4,backgroundColor:s?y.colorPrimaryBg:`transparent`,color:s?y.colorPrimary:y.colorText,display:`flex`,alignItems:`center`,gap:y.paddingXS},onMouseEnter:e=>{G(t),e.currentTarget.style.backgroundColor=y.colorBgTextHover},onMouseLeave:e=>{G(-1),e.currentTarget.style.backgroundColor=`transparent`},children:[a&&(0,W.jsx)(`span`,{style:{fontFamily:`monospace`,fontSize:y.fontSizeSM,opacity:.6,fontWeight:600},children:`/`}),`emoji`in e&&(0,W.jsx)(`span`,{style:{fontSize:20,lineHeight:1},children:e.emoji}),i&&(0,W.jsx)(`span`,{style:{opacity:.6},children:`📁`}),o&&(0,W.jsx)(`span`,{style:{opacity:.6},children:`📄`}),(0,W.jsx)(De,{ellipsis:!0,style:{flex:1},children:`emoji`in e?`:${e.shortcode}:`:a?`command`in e?e.command:``:n}),a&&`source`in e&&(0,W.jsx)(De,{style:{fontSize:y.fontSizeSM-1,color:y.colorTextDescription,flexShrink:0},children:e.source})]},r)})]}),Xe=y.colorBgTextHover,Ze=e?.includes(`@`)??!1,Qe=ee&&!e.trim();return(0,W.jsxs)(`div`,{ref:x,style:{position:`relative`,width:`100%`},onDragOver:Ge,onDragLeave:Ke,onDrop:qe,onPaste:Je,children:[(0,W.jsx)(l,{ref:S,content:Ye,open:k&&Z.length>0,trigger:[],placement:ge,autoAdjustOverflow:!0,arrow:!1,children:(0,W.jsx)(`span`,{"aria-hidden":`true`,"data-popover-anchor-key":Q,tabIndex:-1,style:{position:`absolute`,left:me[0],top:me[1],width:0,height:0,pointerEvents:`none`}},Q)}),te&&(0,W.jsx)(`div`,{style:{position:`absolute`,top:0,left:0,right:0,bottom:0,backgroundColor:`${y.colorPrimary}10`,border:`2px dashed ${y.colorPrimary}`,borderRadius:y.borderRadius,display:`flex`,alignItems:`center`,justifyContent:`center`,zIndex:10,pointerEvents:`none`},children:(0,W.jsx)(De,{strong:!0,style:{color:y.colorPrimary},children:`Drop files here to upload`})}),Ze&&(0,W.jsx)(`div`,{ref:pe,style:{position:`absolute`,top:0,left:0,right:0,bottom:0,pointerEvents:`none`,whiteSpace:`pre-wrap`,wordWrap:`break-word`,color:`transparent`,overflow:`hidden`,fontFamily:y.fontFamily,fontSize:y.fontSize,lineHeight:y.lineHeight,padding:`4px 11px`,border:`1px solid transparent`,borderRadius:y.borderRadius,zIndex:0},"aria-hidden":`true`,children:(0,W.jsx)(`div`,{style:{transform:`translateY(-${X}px)`},children:He(e,Xe)})}),(0,W.jsx)(Ee,{ref:e=>{let t=null;if(e&&typeof e==`object`&&`resizableTextArea`in e&&e.resizableTextArea&&typeof e.resizableTextArea==`object`&&`textArea`in e.resizableTextArea&&e.resizableTextArea.textArea instanceof HTMLTextAreaElement&&(t=e.resizableTextArea.textArea),t){if(b.current.current=t,typeof _==`function`)_(t);else if(_)try{_.current=t}catch{}}},value:e,onChange:Re,onKeyDown:Ue,placeholder:r,autoSize:u||{minRows:2,maxRows:10},className:`agor-textarea agor-textarea-with-highlights`,style:{borderColor:Qe?y.colorPrimary:y.colorBorder,boxShadow:Qe?`0 0 0 ${y.controlOutlineWidth}px ${y.controlOutline}`:void 0,backgroundColor:Ze?`transparent`:void 0,transition:`border-color 0.2s ease, box-shadow 0.2s ease`,position:`relative`,zIndex:1}})]})});Ge.displayName=`AutocompleteTextarea`;export{me as a,pe as c,_e as i,X as l,Z as n,ge as o,be as r,ve as s,Ge as t};
|
|
Binary file
|