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
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/EmbeddedTerminal-NNoyPA81.js","assets/rolldown-runtime--c01j_DQ.js","assets/antd-BCqimh1J.js","assets/editor-Cr0W5BQI.js","assets/xterm-BkujP7YO.js","assets/xterm-BrP-ENHg.css","assets/TerminalModal-ExOgsuOP.js","assets/constants-CYzQKfD1.js","assets/src-DEbsv3pp.js","assets/sandpack-059Z4UWP.js","assets/__vite-browser-external-BBPYNvOp.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{$ as t,An as n,At as r,Bn as i,Bt as a,Ct as o,D as s,Dn as c,E as l,Fn as u,Ft as d,G as f,Gn as p,H as m,Hn as h,I as g,It as _,Jn as v,Jt as y,K as b,Kn as x,Ln as S,Lt as C,M as w,Mn as T,Mt as E,N as D,Nn as O,Nt as k,O as A,On as j,P as M,Q as N,Qn as P,R as F,Rn as I,Rt as L,St as ee,Tn as te,U as ne,Un as R,Vn as re,Vt as ie,W as ae,Xn as oe,Xt as se,Yn as z,Zn as ce,Zt as le,_n as B,a as ue,an as de,ar as V,at as fe,b as H,bn as pe,bt as me,cn as he,d as U,er as ge,fn as W,gn as _e,gt as ve,in as ye,ir as be,jn as xe,jt as Se,k as Ce,kt as we,l as Te,m as Ee,mn as De,n as Oe,nn as ke,nr as Ae,nt as je,o as Me,on as Ne,pn as Pe,pt as Fe,q as Ie,qn as Le,r as G,sn as Re,st as ze,tn as Be,u as Ve,ur as K,vt as He,wt as Ue,x as We,xn as Ge,yt as Ke,zn as qe,zt as Je}from"./antd-BCqimh1J.js";import{$ as Ye,D as Xe,L as Ze,M as Qe,O as $e,S as et,j as tt,k as nt,nt as rt,q as it,rt as at,x as ot}from"./src-DEbsv3pp.js";import{c as q}from"./sandpack-059Z4UWP.js";import{N as st}from"./editor-Cr0W5BQI.js";import{c as ct,l as lt,n as ut,s as dt}from"./chunk-4ZMWKKQ3-3oKtfWXp.js";import{$ as ft,$n as pt,$t as mt,A as ht,An as gt,B as _t,Bn as vt,Bt as yt,C as bt,Cn as xt,Ct as St,D as Ct,Dn as wt,Dt as Tt,E as Et,En as Dt,Et as J,Fn as Y,Ft as Ot,G as kt,Gn as At,H as jt,Ht as Mt,I as Nt,In as X,Jn as Pt,K as Ft,Kn as It,Kt as Lt,Ln as Rt,Lt as zt,Mn as Bt,Mt as Vt,Nn as Ht,O as Ut,On as Wt,Ot as Gt,P as Kt,Pn as qt,Q as Jt,Qn as Yt,Qt as Xt,Rn as Zt,S as Qt,Sn as $t,St as en,T as tn,Tt as nn,U as rn,Vn as an,W as on,Wn as sn,X as cn,Xt as ln,Y as un,Yn as dn,Yt as fn,Z as pn,Zt as mn,_n as hn,_t as gn,a as _n,an as vn,at as yn,b as bn,bn as xn,cn as Sn,d as Z,dn as Cn,dt as wn,en as Tn,er as En,f as Dn,fn as On,ft as kn,g as An,gn as jn,gt as Mn,h as Nn,hn as Pn,i as Fn,in as In,it as Ln,j as Rn,jn as zn,jt as Bn,kn as Vn,kt as Hn,l as Un,lt as Wn,m as Gn,mn as Kn,mt as qn,n as Jn,nn as Yn,nt as Xn,o as Zn,on as Qn,p as $n,pn as er,pt as tr,qt as nr,r as rr,sn as ir,st as ar,t as or,tn as sr,u as cr,un as lr,v as ur,vn as dr,vt as fr,w as pr,wn as mr,wt as hr,x as gr,xn as _r,xt as vr,yn as yr,yt as br,zn as xr}from"./index-B-qHc0o5.js";import{i as Sr,n as Cr,r as wr,t as Tr}from"./useUserLocalStorage-GidNiOPC.js";import{_ as Er,a as Dr,c as Or,d as kr,f as Ar,g as jr,h as Mr,i as Nr,l as Pr,m as Fr,n as Ir,o as Lr,p as Rr,r as zr,s as Br,t as Vr,u as Hr,v as Ur}from"./SessionCanvas-xVfDoEtz.js";import{o as Wr}from"./BoardObjectNodes-BakeGpIX.js";import{i as Gr,s as Kr,t as qr}from"./AutocompleteTextarea-DUpsoEGr.js";import{n as Jr,t as Yr}from"./ConversationView-mWaA-B1f.js";import{t as Xr}from"./constants-CYzQKfD1.js";var Q=e(K(),1),Zr=At();function Qr(e){(0,Q.useEffect)(()=>(e?.icon&&e?.name?document.title=`${e.icon} ${e.name}`:e?.name?document.title=e.name:document.title=Zr,()=>{document.title=Zr}),[e?.icon,e?.name])}function $r(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 ei(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 ti(e){let[t]=(0,Q.useState)(sn()),{token:n}=a.useToken(),{hasRunning:r,hasReady:i}=Rt(Y,(0,Q.useMemo)(()=>Cn(e),[e]),Zt);(0,Q.useEffect)(()=>{let e=!1;return ei(t,r,i,n.colorSuccessText).then(t=>{if(e)return;let n=document.querySelector(`link[rel~='icon']`);n&&(n.href=t)}),()=>{e=!0}},[r,i,t,n.colorSuccessText])}function ni(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===$e.RUNNING){a.add(e.task_id);return}a.delete(e.task_id)&&nt(e.status)&&_n(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:$e.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 ri(e,t){let n=t.repoById.get(e.repoId),r=e.branchName||`private-${Qn(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 ir({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 ii(e){return!!(e.sessionShortId||e.branchShortId||e.artifactShortId)}var $=st(),ai=[{key:`assistant`,label:`Assistant`,icon:(0,$.jsx)(l,{})},{key:`all-sessions`,label:`Sessions`,icon:(0,$.jsx)(Me,{})},{key:`comments`,label:`Comments`,icon:(0,$.jsx)(He,{})}],oi=(0,Q.memo)(({onSelectTab:e,unreadCommentsCount:t=0,hasUserMentions:n=!1})=>{let{token:r}=a.useToken();return(0,$.jsx)(`div`,{style:{height:`100%`,width:`100%`,display:`flex`,flexDirection:`column`,alignItems:`center`,gap:4,paddingTop:12,background:r.colorBgContainer,borderRight:`1px solid ${r.colorBorderSecondary}`},children:ai.map(i=>{let a=(0,$.jsxs)(`button`,{type:`button`,"aria-label":i.label,onClick:()=>e(i.key),style:{display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:2,width:48,padding:`8px 2px`,border:0,borderRadius:r.borderRadius,background:`transparent`,color:r.colorText,cursor:`pointer`},onMouseEnter:e=>{e.currentTarget.style.background=r.colorFillTertiary},onMouseLeave:e=>{e.currentTarget.style.background=`transparent`},children:[(0,$.jsx)(`span`,{style:{fontSize:18,lineHeight:1},children:i.icon}),(0,$.jsx)(`span`,{style:{fontSize:10,lineHeight:1.2},children:i.label})]},i.key);return i.key===`comments`?(0,$.jsx)(qe,{count:t,offset:[-10,10],style:{backgroundColor:n?r.colorError:r.colorPrimaryBgHover},children:a},i.key):a})})}),si=22,ci={height:si,width:si,minWidth:si,padding:0};function li({repo:e,branch:t,sessionCount:n,onOpenBranch:r,onStartEnvironment:i,onStopEnvironment:o,onNukeEnvironment:s,onViewLogs:c,canControlEnvironment:l,connectionDisabled:d=!1,showEnvButtons:f=!0,showNukeEnvironment:p=!0,identityLink:m,compact:h=!1}){let{token:g}=a.useToken(),_=Ot(),v=Un(e),b=v.hasConfig,x=t.environment_instance,S=jt(x),C=t.app_url,T=l??!0,E=T?void 0:`Requires branch 'all' permission or admin access`,D=x?.status||`stopped`,O=D===`running`,k=D===`starting`,A=D===`stopping`,j=D===`running`||D===`starting`,M=d||!T||!b||!i||k||A||O,P=d||!T||!b||!o||A||!j,F=e=>n=>{n.stopPropagation(),r?.(t.branch_id,e)},I=()=>{r?.(t.branch_id)},te=(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Ue,{style:{fontSize:12}}),!h&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{style:{fontFamily:g.fontFamilyCode,fontSize:g.fontSizeSM},children:e.slug}),(0,$.jsx)(Se,{style:{fontSize:10,opacity:.6}})]}),(0,$.jsx)(`span`,{style:{fontFamily:g.fontFamilyCode,fontSize:g.fontSizeSM,maxWidth:h?220:180,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:t.name})]}),ne=()=>{switch(S){case`stopped`:return(0,$.jsx)(Ee,{style:{color:g.colorTextDisabled,fontSize:11}});case`starting`:case`stopping`:return(0,$.jsx)(Ne,{size:`small`,style:{fontSize:11}});case`healthy`:return(0,$.jsx)(ee,{style:{color:g.colorSuccess,fontSize:11}});case`unhealthy`:return(0,$.jsx)(Oe,{style:{color:g.colorWarning,fontSize:11}});case`running`:return(0,$.jsx)(ee,{style:{color:g.colorInfo,fontSize:11}});case`error`:return(0,$.jsx)(me,{style:{color:g.colorError,fontSize:11}});default:return(0,$.jsx)(Ee,{style:{color:g.colorTextDisabled,fontSize:11}})}},re=()=>{if(!b)return`Click to configure environment`;let e=x?.last_health_check,t=e?.message?` - ${e.message}`:``;switch(S){case`healthy`:return C?`Healthy - ${C}${t}`:`Healthy${t}`;case`unhealthy`:return C?`Unhealthy - ${C}${t}`:`Unhealthy${t}`;case`running`:return C?`Running - ${C}`:`Running (no health check)`;case`starting`:return`Starting...`;case`stopping`:return`Stopping...`;case`error`:return`Failed to start`;default:return`Stopped`}},ie=m?`${e.slug} / ${t.name} · Open session`:h?`${e.slug} / ${t.name} · Open branch settings`:`Open branch settings`,ae={display:`inline-flex`,alignItems:`center`,gap:4,padding:h?`0 6px`:`0 8px`,cursor:`pointer`,height:si,color:`inherit`,textDecoration:`none`},oe=m?.startsWith(`/`);return(0,$.jsxs)(En,{color:Xn.branch,style:{userSelect:`none`,padding:0,overflow:`hidden`,lineHeight:`${si}px`,display:`inline-flex`,alignItems:`stretch`,cursor:`default`},children:[(0,$.jsx)(R,{title:ie,children:m&&oe?(0,$.jsx)(ut,{to:m,onClick:e=>e.stopPropagation(),style:ae,children:te}):m?(0,$.jsx)(`a`,{href:m,onClick:e=>e.stopPropagation(),style:ae,children:te}):(0,$.jsx)(`button`,{type:`button`,onClick:I,style:{display:`inline-flex`,alignItems:`center`,gap:4,padding:h?`0 6px`:`0 8px`,cursor:`pointer`,height:si,background:`none`,border:`none`,color:`inherit`,font:`inherit`},children:te})}),f&&(0,$.jsx)(`div`,{style:{display:`inline-flex`,alignItems:`center`,gap:2,padding:`0 4px`,height:si,borderLeft:`1px solid ${g.colorBorderSecondary}`},children:b?(0,$.jsxs)($.Fragment,{children:[O&&C?(0,$.jsx)(R,{title:`Open ${C}`,children:(0,$.jsxs)(`a`,{href:C,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:[ne(),(0,$.jsx)(`span`,{style:{fontFamily:g.fontFamilyCode,fontSize:11},children:`env`})]})}):(0,$.jsx)(R,{title:re(),children:(0,$.jsxs)(`button`,{type:`button`,onClick:F(`environment`),style:{display:`inline-flex`,alignItems:`center`,gap:3,cursor:`pointer`,padding:`0 2px`,background:`none`,border:`none`,color:`inherit`,font:`inherit`},children:[ne(),(0,$.jsx)(`span`,{style:{fontFamily:g.fontFamilyCode,fontSize:11},children:`env`})]})}),i&&(0,$.jsx)(R,{title:E??(O?`Environment running`:`Start environment`),children:(0,$.jsx)(u,{type:`text`,size:`small`,"aria-label":`Start environment`,icon:(0,$.jsx)(w,{}),onClick:e=>{e.stopPropagation(),M||i(t.branch_id)},disabled:M,style:ci})}),o&&(0,$.jsx)(R,{title:E??(O?`Stop environment`:k?`Cancel startup`:A?`Stopping...`:`Not running`),children:(0,$.jsx)(u,{type:`text`,size:`small`,"aria-label":`Stop environment`,icon:(0,$.jsx)(Ee,{}),onClick:e=>{e.stopPropagation(),P||o(t.branch_id)},disabled:P,style:ci})}),c&&v.logs&&(0,$.jsx)(R,{title:E??`View logs`,children:(0,$.jsx)(u,{type:`text`,size:`small`,"aria-label":`View environment logs`,icon:(0,$.jsx)(De,{}),onClick:e=>{e.stopPropagation(),T&&c(t.branch_id)},disabled:!T,style:ci})}),p&&!h&&s&&t.nuke_command&&(0,$.jsx)(R,{title:E??`Nuke environment (destructive)`,children:(0,$.jsx)(u,{type:`text`,size:`small`,danger:!0,"aria-label":`Nuke environment`,icon:(0,$.jsx)(fe,{}),onClick:e=>{e.stopPropagation(),T&&!d&&_(()=>s(t.branch_id))},disabled:d||!T,style:ci})})]}):(0,$.jsx)(R,{title:`Configure environment`,children:(0,$.jsxs)(`button`,{type:`button`,onClick:F(`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)(N,{style:{fontSize:11}}),(0,$.jsx)(`span`,{style:{fontFamily:g.fontFamilyCode,fontSize:11},children:`env`})]})})}),(0,$.jsxs)(`div`,{style:{display:`inline-flex`,alignItems:`center`,gap:1,padding:`0 3px`,height:si,borderLeft:`1px solid ${g.colorBorderSecondary}`},children:[(0,$.jsx)(R,{title:`Sessions${n==null?``:` (${n})`}`,children:(0,$.jsx)(u,{type:`text`,size:`small`,"aria-label":`Sessions`,icon:(0,$.jsx)(U,{}),onClick:F(`sessions`),style:ci})}),(0,$.jsx)(R,{title:`Files`,children:(0,$.jsx)(u,{type:`text`,size:`small`,"aria-label":`Files`,icon:(0,$.jsx)(y,{}),onClick:F(`files`),style:ci})}),(0,$.jsx)(R,{title:`Schedule`,children:(0,$.jsx)(u,{type:`text`,size:`small`,"aria-label":`Schedule`,icon:(0,$.jsx)(Ge,{}),onClick:F(`schedule`),style:ci})}),(0,$.jsx)(R,{title:`Edit branch`,children:(0,$.jsx)(u,{type:`text`,size:`small`,"aria-label":`Edit branch`,icon:(0,$.jsx)(L,{}),onClick:e=>{e.stopPropagation(),I()},style:ci})})]})]})}var ui=({branch:e,size:t=12})=>{let n=Lt(),r=e?.board_id;return!e||!r?null:(0,$.jsx)(R,{title:`Go to card on board`,children:(0,$.jsx)(E,{style:{fontSize:t,cursor:`pointer`,flexShrink:0,opacity:.5},onClick:t=>{t.stopPropagation(),n(e.branch_id,{boardId:r})}})})},di=e=>{let t=bn(e);return t===`success`||t==="default"?null:t},fi=({board:e,currentBoardId:t,branchById:n,repoById:r,sessionsByBranch:i,onSessionClick:o,onAfterSessionClick:s})=>{let{token:c}=a.useToken(),[l,u]=(0,Q.useState)(``),[d,f]=Vt(Pr,`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=>i.get(e)||[])},[i,n,t]),m=l.trim(),h=kr(m),g=(0,Q.useMemo)(()=>h?Ar(p,m).map(({session:e})=>e):Fr(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)(Dr,{value:l,onChange:u,sort:d,onSortChange:f,searching:h})}),(0,$.jsx)(`div`,{style:{padding:`8px 0`},children:g.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)(x,{style:{fontSize:16,color:c.colorTextTertiary}})}),(0,$.jsx)(_.Text,{strong:!0,style:{fontSize:13},children:`No results`}),(0,$.jsxs)(_.Text,{type:`secondary`,style:{fontSize:12,textAlign:`center`,lineHeight:1.5,maxWidth:200},children:[`Nothing matched `,(0,$.jsx)(_.Text,{code:!0,children:m})]})]}):(0,$.jsx)(_.Text,{type:`secondary`,style:{display:`block`,textAlign:`center`,padding:`24px 0`,fontSize:12},children:`No sessions in this board`}):g.map(e=>{let t=e.branch_id?n.get(e.branch_id):void 0,i=t?r.get(t.repo_id):void 0,a=un(e,{includeAgentFallback:!0}),l=h&&e.title&&e.description?Hr(e.description,m):null,u=h&&Rr(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=di(e.status),n=(0,$.jsx)(pt,{tool:e.agentic_tool,size:18});return t?(0,$.jsx)(qe,{dot:!0,status:t,offset:[-3,3],children:n}):n})()}),(0,$.jsx)(_.Text,{ellipsis:{tooltip:a},style:{flex:1,minWidth:0},children:(0,$.jsx)(en,{text:a,query:m})}),(0,$.jsx)(Lr,{session:e}),(0,$.jsx)(ui,{branch:t})]}),u&&(0,$.jsxs)(_.Text,{type:`secondary`,style:{display:`block`,fontSize:11,marginTop:3,marginLeft:26},children:[`Agent: `,(0,$.jsx)(en,{text:e.agentic_tool,query:m})]}),l&&l!==a&&(0,$.jsx)(_.Text,{type:`secondary`,style:{fontSize:11,display:`block`,marginTop:3,marginLeft:26,lineHeight:1.4,fontStyle:`italic`},children:(0,$.jsx)(en,{text:l,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)(ft,{branch:t.name,compact:!0,title:i?`${i.slug} / ${t.name}`:t.name}):(0,$.jsx)(_.Text,{type:`secondary`,style:{fontSize:12},children:`No branch`})}),(0,$.jsx)(R,{title:vr(e.last_updated),children:(0,$.jsx)(_.Text,{type:`secondary`,style:{fontSize:11,whiteSpace:`nowrap`,flexShrink:0},children:br(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)(_.Text,{type:`secondary`,style:{fontSize:12},children:h?(0,$.jsxs)($.Fragment,{children:[g.length,` of `,p.length,` · `,(0,$.jsx)(Nr,{}),e.description&&` • ${e.description}`]}):`${p.length} session${p.length===1?``:`s`}${e.description?` • ${e.description}`:``}`})})]})},pi=(0,Q.memo)(({board:e,activeTab:t,onTabChange:n,primaryAssistantBranch:r,primaryAssistantRepo:i,primaryAssistantInaccessible:o,currentUserId:s,selectedSessionId:c,onSessionClick:d,onCreateSession:f,onForkSession:m,onSpawnSession:h,onOpenSettings:g,onOpenSessionSettings:v,onSendComment:y,onReplyComment:b,onResolveComment:x,onToggleReaction:S,onDeleteComment:C,hoveredCommentId:w,selectedCommentId:E,onCollapse:D,deferSessionDetails:O=!1,onDeferredDetailsHydrated:k,client:A})=>{let{token:j}=a.useToken(),{message:M}=oe.useApp(),N=X(Bt),P=X(mr),F=X(Vn),L=X(qt),ee=X(Dt),te=e?.objects,ne=o?`all-sessions`:`assistant`,[re,ie]=(0,Q.useState)(ne),ae=t!==void 0,se=t??re,[le,ue]=(0,Q.useState)(()=>!O);(0,Q.useEffect)(()=>{ue(!O)},[O]);let de=(0,Q.useCallback)(()=>{le||(ue(!0),k?.())},[k,le]);(0,Q.useEffect)(()=>{if(!O||le)return;let e,t,n=()=>de();return`requestIdleCallback`in window?t=window.requestIdleCallback(n,{timeout:2500}):e=globalThis.setTimeout(n,2e3),()=>{t!==void 0&&window.cancelIdleCallback?.(t),e!==void 0&&window.clearTimeout(e)}},[O,de,le]);let V=e=>{de(),ie(e),n?.(e)},fe=(0,Q.useMemo)(()=>se===`comments`?hr(ee).filter(t=>t.board_id===e?.board_id):[],[se,ee,e?.board_id]);(0,Q.useEffect)(()=>{ie(ne),ae||n?.(ne)},[ne,e?.board_id,ae,n]);let H=(0,Q.useMemo)(()=>r||o?[]:Array.from(P.values()).filter(e=>at(e)&&!e.archived).sort((e,t)=>{let n=rt(e),r=rt(t);return(n?.displayName??e.name).localeCompare(r?.displayName??t.name)}).map(e=>{let t=rt(e),n=F.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}}),[P,r,o,F]),[pe,me]=(0,Q.useState)(),[he,U]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{pe&&H.some(e=>e.value===pe)||me(H[0]?.value)},[H,pe]);let ge=async()=>{if(!e||!A||!pe)return;let t=P.get(pe);if(t){U(!0);try{t.board_id!==e.board_id&&await A.service(`branches`).patch(pe,{board_id:e.board_id}),await A.service(`boards`).setPrimaryAssistant({boardId:e.board_id,branchId:pe}),M.success(`Assistant assigned`)}catch(e){M.error(`Failed to assign assistant: ${e instanceof Error?e.message:String(e)}`)}finally{U(!1)}}},W=(0,Q.useMemo)(()=>r&&N.get(r.branch_id)||[],[r,N]),_e=(()=>{if(r&&i){let e=rt(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 ${j.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)(Ne,{}):e?.emoji?(0,$.jsx)(`span`,{style:{fontSize:30},children:e.emoji}):(0,$.jsx)(l,{style:{fontSize:30,color:j.colorInfo}})}),(0,$.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,minWidth:0},children:[(0,$.jsx)(_.Title,{level:4,style:{margin:0,fontWeight:600},ellipsis:{tooltip:e?.displayName??r.name},children:e?.displayName??r.name}),(0,$.jsx)(_.Text,{type:`secondary`,style:{fontSize:12},children:`Primary assistant`})]})]}),(0,$.jsxs)(B,{size:4,wrap:!0,children:[(0,$.jsx)(li,{repo:i,branch:r,sessionCount:W.length,onOpenBranch:g,showEnvButtons:!1,compact:!0}),r.created_by&&(0,$.jsx)(Ft,{createdBy:r.created_by,currentUserId:s,userById:L,prefix:`Created by`}),r.issue_url&&(0,$.jsx)(Ln,{issueUrl:r.issue_url,currentRepo:i}),r.pull_request_url&&(0,$.jsx)(ar,{prUrl:r.pull_request_url,currentRepo:i})]}),t&&(0,$.jsx)(`div`,{className:`markdown-compact`,style:{color:j.colorTextSecondary},children:(0,$.jsx)(Kt,{content:t,compact:!0,showControls:!1})})]}),le?(0,$.jsx)(zr,{branch:r,sessions:W,userById:L,currentUserId:s,selectedSessionId:c,onSessionClick:d,onCreateSession:f,onForkSession:m,onSpawnSession:h,onOpenSessionSettings:v,defaultExpanded:!1,mode:`panel`,client:A}):(0,$.jsx)(`div`,{style:{paddingTop:8},children:(0,$.jsxs)(B,{direction:`vertical`,size:8,style:{width:`100%`},children:[(0,$.jsx)(_.Text,{type:`secondary`,style:{fontSize:12},children:`Loading sessions…`}),(0,$.jsx)(ce,{active:!0,paragraph:{rows:3},title:!1}),(0,$.jsx)(u,{size:`small`,type:`link`,onClick:de,style:{padding:0},children:`Show now`})]})})]})}return o?(0,$.jsx)(`div`,{style:{padding:16},children:(0,$.jsx)(be,{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)(z,{image:z.PRESENTED_IMAGE_SIMPLE,description:(0,$.jsx)(_.Text,{type:`secondary`,children:`This board does not have a primary assistant yet.`}),style:{padding:`24px 0 16px`}}),(0,$.jsxs)(B,{orientation:`vertical`,size:12,style:{width:`100%`},children:[(0,$.jsx)(_.Text,{strong:!0,children:`Assign an existing assistant`}),(0,$.jsx)(p,{showSearch:!0,placeholder:`Select an assistant`,value:pe,onChange:me,options:H,optionFilterProp:`searchText`,disabled:he||H.length===0,style:{width:`100%`}}),H.length===0&&(0,$.jsx)(_.Text,{type:`secondary`,style:{fontSize:12},children:`No existing assistants are available to assign.`}),(0,$.jsx)(u,{type:`primary`,onClick:ge,loading:he,disabled:!pe||!e||!A,children:`Assign`})]})]})})();return(0,$.jsx)(`div`,{style:{height:`100%`,background:j.colorBgContainer,borderRight:`1px solid ${j.colorBorderSecondary}`,overflow:`hidden`},children:(0,$.jsx)(T,{activeKey:se,onChange:e=>V(e),items:[{key:`assistant`,label:`Assistant`,children:(0,$.jsx)(`div`,{style:{height:`calc(100vh - 112px)`,overflow:`auto`},children:_e})},{key:`all-sessions`,label:`All sessions`,children:e?(0,$.jsx)(`div`,{style:{height:`calc(100vh - 112px)`,overflow:`auto`},children:le?(0,$.jsx)(fi,{board:e,currentBoardId:e.board_id,branchById:P,repoById:F,sessionsByBranch:N,onSessionClick:d}):(0,$.jsx)(`div`,{style:{padding:16},children:(0,$.jsx)(ce,{active:!0,paragraph:{rows:4},title:!1})})}):(0,$.jsx)(z,{image:z.PRESENTED_IMAGE_SIMPLE,description:`No board selected`})},{key:`comments`,label:`Comments`,children:e?(0,$.jsx)(`div`,{style:{height:`calc(100vh - 112px)`},children:(0,$.jsx)(Jr,{client:A,boardId:e.board_id,comments:fe,userById:L,currentUserId:s||`unknown`,boardObjects:te,branchById:P,onSendComment:e=>y?.(e),onReplyComment:b,onResolveComment:x,onToggleReaction:S,onDeleteComment:C,hoveredCommentId:w,selectedCommentId:E})}):(0,$.jsx)(z,{image:z.PRESENTED_IMAGE_SIMPLE,description:`No board selected`})}],style:{height:`100%`},tabBarStyle:{margin:0,padding:`0 12px`},tabBarExtraContent:{right:D?(0,$.jsx)(R,{title:`Collapse panel`,placement:`bottom`,children:(0,$.jsx)(u,{type:`text`,size:`small`,icon:(0,$.jsx)(I,{style:{fontSize:11}}),onClick:D,style:{marginRight:4}})}):void 0}})})});function mi(e){let[t]=W.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-${Qn(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 hi=12e4;function gi(e,t,{enabled:n=!0}={}){let r=an(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:vt,slug:xr,default_branch:`main`})).catch(()=>{});let e=setTimeout(()=>{a(!1),o.current=!1},hi);return()=>clearTimeout(e)},[r,t,n]),(0,Q.useEffect)(()=>{!n&&!r&&(o.current=!1)},[n,r]),{frameworkRepo:r,isCloning:i&&!r}}var _i=({form:e,repos:t,frameworkRepo:n,isCloning:r,onDisplayNameChange:i,customRepoSelected:a,onCustomRepoChange:o,extraBeforeAdvanced:s})=>{let c=n?`${n.name||n.slug} (default)`:r?`Setting up framework repository...`:`No framework repository found`;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(W.Item,{label:`Name`,required:!0,tooltip:`Human-friendly name and icon for this assistant`,children:(0,$.jsxs)(B.Compact,{style:{display:`flex`},children:[(0,$.jsx)(In,{form:e,fieldName:`emoji`,defaultEmoji:`🤖`}),(0,$.jsx)(W.Item,{name:`displayName`,noStyle:!0,rules:[{required:!0,message:`Please enter a name`}],children:(0,$.jsx)(he,{placeholder:`e.g. PR Reviewer, Command Center`,autoFocus:!0,onChange:i,style:{flex:1}})})]})}),(0,$.jsx)(W.Item,{name:`description`,label:`Description`,tooltip:`What does this assistant do? Visible to other agents via MCP.`,children:(0,$.jsx)(he.TextArea,{placeholder:`e.g. Reviews PRs and provides feedback, Monitors CI/CD pipelines`,rows:2})}),(0,$.jsx)(be,{type:`info`,showIcon:!1,style:{marginBottom:16},title:(0,$.jsx)(_.Text,{type:`secondary`,style:{fontSize:12},children:`Each assistant gets a fresh board and becomes that board's primary assistant.`})}),s,r&&!n&&(0,$.jsx)(be,{type:`info`,showIcon:!0,icon:(0,$.jsx)(Ae,{}),style:{marginBottom:16},title:`Setting up framework repository`,description:(0,$.jsx)(_.Text,{type:`secondary`,style:{fontSize:12},children:`Cloning preset-io/agor-assistant. This usually takes 10-30 seconds.`})}),(0,$.jsx)(P,{ghost:!0,size:`small`,destroyOnHidden:!1,expandIcon:({isActive:e})=>(0,$.jsx)(Le,{rotate:e?180:0}),items:[{key:`advanced`,label:(0,$.jsxs)(B,{size:6,children:[(0,$.jsx)(_.Text,{type:`secondary`,children:`Advanced Assistant Settings`}),(0,$.jsx)(R,{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)(f,{style:{color:`var(--ant-color-text-tertiary)`}})})]}),children:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(W.Item,{name:`repoId`,label:`Framework Repository`,children:(0,$.jsx)(p,{placeholder:c,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=>{o(!!e&&e!==n?.repo_id)},onClear:()=>o(!1)})}),a&&(0,$.jsx)(be,{type:`warning`,showIcon:!0,icon:(0,$.jsx)(f,{}),style:{marginBottom:16},title:`Custom repository selected`,description:(0,$.jsx)(_.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)(W.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)(he,{placeholder:`private-my-assistant`})}),(0,$.jsx)(W.Item,{name:`sourceBranch`,label:`Source Branch`,children:(0,$.jsx)(he,{placeholder:`main`})})]})}]})]})},vi=({repoById:e,onValidityChange:t,formRef:n,onCreateRepo:r,availableAgents:i,mcpServerById:a=new Map,currentUser:o,client:s})=>{let c=Array.from(e.values()),{frameworkRepo:l,isCloning:u}=gi(c,r),[d,f]=(0,Q.useState)(`claude-code`),{form:p,isFormValid:m,customRepoSelected:h,setCustomRepoSelected:g,validateForm:v,handleDisplayNameChange:y}=mi(l);return(0,Q.useEffect)(()=>{!i.some(e=>e.id===d)&&i[0]?.id&&f(i[0].id)},[i,d]),(0,Q.useEffect)(()=>{let e=o?.default_agentic_config?.[d];p.setFieldsValue({...gr(d,e),...d!==`codex`&&{codexSandboxMode:void 0,codexApprovalPolicy:void 0,codexNetworkAccess:void 0}})},[d,o,p]),(0,Q.useEffect)(()=>{t(m)},[m,t]),n.current=async()=>{try{let e=await p.validateFields(),t=o?.default_agentic_config?.[d],n=e.permissionMode??t?.permissionMode??Qe(d),r={displayName:e.displayName.trim(),description:e.description||void 0,emoji:e.emoji||void 0,repoId:e.repoId||l?.repo_id,branchName:e.name||`private-${Qn(e.displayName)}`,sourceBranch:e.sourceBranch||`main`,agent:d,modelConfig:e.modelConfig??t?.modelConfig,effort:e.effort??t?.modelConfig?.effort,mcpServerIds:e.mcpServerIds??t?.mcpServerIds,permissionMode:n};if(d===`codex`){let i=et(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)(W,{form:p,layout:`vertical`,onFieldsChange:v,initialValues:{sourceBranch:`main`},children:(0,$.jsx)(_i,{form:p,repos:c,frameworkRepo:l,isCloning:u,onDisplayNameChange:y,customRepoSelected:h,onCustomRepoChange:g,extraBeforeAdvanced:(0,$.jsx)(P,{ghost:!0,size:`small`,defaultActiveKey:[`first-session`],destroyOnHidden:!1,expandIcon:({isActive:e})=>(0,$.jsx)(Le,{rotate:e?180:0}),items:[{key:`first-session`,label:(0,$.jsx)(_.Text,{strong:!0,children:`First Session Configuration`}),children:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(W.Item,{label:`Agentic Tool`,required:!0,children:(0,$.jsx)(Yt,{agents:i,selectedAgentId:d,onSelect:e=>f(e),variant:`select`,showComparisonLink:!0})}),(0,$.jsx)(P,{ghost:!0,size:`small`,destroyOnHidden:!1,expandIcon:({isActive:e})=>(0,$.jsx)(Le,{rotate:e?180:0}),items:[{key:`session-config`,label:(0,$.jsx)(_.Text,{type:`secondary`,children:`Session Configuration`}),children:(0,$.jsx)(Qt,{agenticTool:d,mcpServerById:a,showHelpText:!1,client:s})}]})]})}],style:{marginBottom:8}})})})},yi=({onValidityChange:e,formRef:t})=>{let[n]=W.useForm(),r=(0,Q.useCallback)(()=>{setTimeout(()=>{e(!!n.getFieldsValue().name?.trim())},0)},[n,e]);return t.current=async()=>{try{return await n.validateFields(),Nn(n)}catch{return null}},(0,$.jsx)(W,{form:n,layout:`vertical`,preserve:!0,onValuesChange:r,children:(0,$.jsx)(Gn,{form:n,autoFocus:!0})})},bi=({repoById:e,boardById:t=new Map,currentBoardId:n,defaultPosition:r,onValidityChange:i,formRef:a,branchStorageConfig:o})=>{let[s]=W.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=hr(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=Z(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)(W,{form:s,layout:`vertical`,onValuesChange:d,children:(0,$.jsx)(cr,{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})})},xi=({onValidityChange:e,formRef:t})=>{let[n]=W.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)(W,{form:n,layout:`vertical`,onValuesChange:a,initialValues:{default_branch:`main`},children:(0,$.jsx)(Zn,{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)}})})},Si={branch:!1,assistant:!1,board:!1,repository:!1},Ci={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.`},wi={branch:`Create Branch`,assistant:`Create Assistant`,board:`Create Board`,repository:`Add Repository`};function Ti(e){Promise.resolve(e).catch(()=>{})}var Ei=({open:e,onClose:t,currentBoardId:n,defaultPosition:r,availableAgents:i,currentUser:a,client:o,defaultTab:s=`assistant`,onCreateBranch:c,onCreateBoard:d,onCreateRepo:f,onCreateLocalRepo:p,onCreateAssistant:m,branchStorageConfig:h})=>{let g=X(Vn),_=X($t),v=X(Wt),[b,x]=(0,Q.useState)(s),[S,C]=(0,Q.useState)(Si),w=S[b],[E,D]=(0,Q.useState)(!1),[O,k]=(0,Q.useState)(null),[A,j]=(0,Q.useState)(null),M=(0,Q.useRef)(null),N=(0,Q.useRef)(null),P=(0,Q.useRef)(null),F=(0,Q.useRef)(null);(0,Q.useEffect)(()=>{e?x(s):(C(Si),D(!1),k(null),j(null))},[e,s]);let I=(0,Q.useCallback)((e,t)=>{C(n=>n[e]===t?n:{...n,[e]:t})},[]),L=(0,Q.useCallback)(e=>I(`branch`,e),[I]),ee=(0,Q.useCallback)(e=>I(`assistant`,e),[I]),te=(0,Q.useCallback)(e=>I(`board`,e),[I]),ne=(0,Q.useCallback)(e=>I(`repository`,e),[I]),R=e=>{x(e),j(null),k(null)},re=async()=>{D(!0),j(null),k(null);try{switch(b){case`branch`:{let e=await M.current?.();e&&(Ti(c(e)),t());break}case`board`:{let e=await N.current?.();e&&(Ti(d(e)),t());break}case`repository`:{let e=await P.current?.();e&&(e.mode===`local`&&e.local?Ti(p(e.local)):e.remote&&Ti(f(e.remote)),t());break}case`assistant`:{let e=await F.current?.();e&&(k(`Creating assistant…`),await m(e,{onStatusChange:k}),t());break}}}catch(e){j(e instanceof Error?e.message:String(e))}finally{D(!1)}},ie=()=>{E||t()},ae=[{key:`assistant`,label:(0,$.jsxs)(`span`,{children:[(0,$.jsx)(l,{style:{marginRight:8}}),`Assistant`]}),children:(0,$.jsxs)(`div`,{children:[(0,$.jsx)(be,{type:`info`,showIcon:!0,description:Ci.assistant,style:{marginBottom:16}}),(0,$.jsx)(vi,{repoById:g,onValidityChange:ee,formRef:F,onCreateRepo:f,availableAgents:i,mcpServerById:v,currentUser:a,client:o})]})},{key:`branch`,label:(0,$.jsxs)(`span`,{children:[(0,$.jsx)(Ue,{style:{marginRight:8}}),`Branch`]}),children:(0,$.jsxs)(`div`,{children:[(0,$.jsx)(be,{type:`info`,showIcon:!0,description:Ci.branch,style:{marginBottom:16}}),(0,$.jsx)(bi,{repoById:g,boardById:_,currentBoardId:n,defaultPosition:r,onValidityChange:L,formRef:M,branchStorageConfig:h})]})},{key:`board`,label:(0,$.jsxs)(`span`,{children:[(0,$.jsx)(we,{style:{marginRight:8}}),`Board`]}),children:(0,$.jsxs)(`div`,{children:[(0,$.jsx)(be,{type:`info`,showIcon:!0,description:Ci.board,style:{marginBottom:16}}),(0,$.jsx)(yi,{onValidityChange:te,formRef:N})]})},{key:`repository`,label:(0,$.jsxs)(`span`,{children:[(0,$.jsx)(y,{style:{marginRight:8}}),`Repository`]}),children:(0,$.jsxs)(`div`,{children:[(0,$.jsx)(be,{type:`info`,showIcon:!0,description:Ci.repository,style:{marginBottom:16}}),(0,$.jsx)(xi,{onValidityChange:ne,formRef:P})]})}];return(0,$.jsxs)(ye,{title:`Create New...`,open:e,onCancel:ie,destroyOnHidden:!0,width:720,closable:!E,maskClosable:!1,keyboard:!E,footer:[(0,$.jsx)(u,{onClick:ie,disabled:E,children:`Cancel`},`cancel`),(0,$.jsx)(u,{type:`primary`,onClick:re,disabled:!w,loading:E,children:E&&O?O:wi[b]},`create`)],styles:{body:{padding:`8px 0 0`}},children:[(0,$.jsx)(T,{activeKey:b,onChange:R,items:ae,style:{minHeight:360}}),A&&(0,$.jsx)(be,{type:`error`,showIcon:!0,message:`Couldn't finish creating this item`,description:A,style:{marginTop:16}})]})},{Text:Di}=_,Oi=Q.memo(({event:e,branchById:t,sessionById:n,sessionsByBranch:i,repos:o,userById:s,currentUserId:c,selectedSessionId:l,branchActions:d,client:p})=>{let{token:m}=a.useToken(),g=()=>{switch(e.type){case`cursor`:return(0,$.jsx)(E,{style:{color:m.colorInfo}});case`message`:return(0,$.jsx)(F,{style:{color:m.colorSuccess}});case`tool`:return(0,$.jsx)(Te,{style:{color:m.colorPrimary}});case`crud`:return(0,$.jsx)(Ve,{style:{color:m.colorWarning}});case`connection`:return(0,$.jsx)(r,{style:{color:m.colorError}});default:return(0,$.jsx)(Te,{style:{color:m.colorTextSecondary}})}},_=()=>{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`}},v=e=>e.toLocaleTimeString(`en-US`,{hour12:!1,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,fractionalSecondDigits:3}),b=e=>{if(e==null)return``;try{return JSON.stringify(e,null,2)}catch{return String(e)}},x=e=>{let t=[`created`,`patched`,`updated`,`removed`].find(t=>e.includes(t));return t?{entity:e.replace(t,``).trim(),action:t}:{entity:e}},S=e.data&&typeof e.data==`object`&&`session_id`in e.data?e.data.session_id:void 0,C=e.data&&typeof e.data==`object`&&`branch_id`in e.data?e.data.branch_id:void 0,w=e.data&&typeof e.data==`object`&&`created_by`in e.data?e.data.created_by:void 0,T=S?n.get(S):void 0,D=C||T?.branch_id,O=D?t.get(D):void 0,k=O?o.find(e=>e.repo_id===O.repo_id):void 0,A=O&&i.get(O.branch_id)||[],j=w?s.get(w):void 0,{entity:M,action:N}=x(e.eventName),P=e.data?(0,$.jsx)(`div`,{style:{maxWidth:400,maxHeight:400,overflow:`auto`},children:(0,$.jsx)(`pre`,{style:{margin:0,padding:12,background:m.colorBgLayout,borderRadius:m.borderRadiusSM,fontSize:11,wordBreak:`break-all`,whiteSpace:`pre-wrap`},children:b(e.data)})}):(0,$.jsx)(Di,{type:`secondary`,children:`No data`});return(0,$.jsxs)(`div`,{style:{padding:`6px 12px`,borderLeft:`3px solid ${m.colorPrimary}`,borderBottom:`1px solid ${m.colorBorderSecondary}`,background:m.colorBgContainer,display:`flex`,flexWrap:`wrap`,alignItems:`center`,gap:4,fontSize:12},children:[g(),(0,$.jsx)(Di,{code:!0,style:{fontSize:11,color:m.colorTextSecondary,minWidth:85},children:v(e.timestamp)}),(0,$.jsx)(En,{color:_(),style:{margin:0,fontSize:11,minWidth:70,textAlign:`center`},children:e.type}),M&&(0,$.jsx)(En,{style:{margin:0,fontSize:11,backgroundColor:m.colorBgContainer,borderColor:m.colorBorder,color:m.colorText},children:M}),N&&(0,$.jsx)(En,{color:N===`created`?`green`:N===`removed`?`red`:N===`patched`||N===`updated`?`orange`:`default`,style:{margin:0,fontSize:11},children:N}),!M&&!N&&(0,$.jsx)(Di,{strong:!0,style:{fontSize:12,flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.eventName}),(0,$.jsx)(`div`,{style:{flex:1}}),S&&(0,$.jsx)(fr,{id:S,icon:Ke,color:Xn.session,copyLabel:`Session ID`,metadataCard:T?(0,$.jsx)(kt,{session:T,branch:O,repo:k,userById:s,currentUserId:c,compact:!0}):void 0}),D&&O&&k&&(0,$.jsx)(fr,{id:D,label:O.name,icon:y,color:Xn.branch,copyLabel:`Branch ID`,metadataCard:(0,$.jsx)(Ir,{branch:O,repo:k,sessions:A,userById:s,currentUserId:c,selectedSessionId:l,inPopover:!0,client:p,...d})}),j&&(0,$.jsx)(wn,{user:j,compact:!0,style:{margin:0,fontSize:11}}),e.data?(0,$.jsx)(h,{content:P,title:`Event Data`,trigger:`click`,placement:`left`,children:(0,$.jsx)(u,{type:`text`,size:`small`,icon:(0,$.jsx)(f,{}),style:{padding:`0 4px`}})}):null]})}),{Text:ki,Title:Ai}=_,ji=({collapsed:e,onToggleCollapse:t,events:i,onClear:o,width:s=700,currentUserId:c,selectedSessionId:l,branchActions:d,currentBoard:f,client:m})=>{let{token:h}=a.useToken(),g=X(mr),_=X(gt),v=X(Bt),y=X(Vn),b=X(qt),x=(0,Q.useMemo)(()=>Array.from(y.values()),[y]),{onFork:S,onSubsession:C,onOpenTerminal:T,onStartEnvironment:E,onStopEnvironment:D,onViewLogs:O}=Ur(),k=(0,Q.useMemo)(()=>({...d,onForkSession:S,onSpawnSession:C,onOpenTerminal:T,onStartEnvironment:E,onStopEnvironment:D,onViewLogs:O}),[d,S,C,T,E,D,O]),[A,j]=(0,Q.useState)(!1),[N,P]=(0,Q.useState)(!1),[F,I]=(0,Q.useState)(!1),[L,ee]=(0,Q.useState)(!1),[te,ne]=(0,Q.useState)(new Set),[R,re]=(0,Q.useState)(new Set),[ie,ae]=(0,Q.useState)([]),oe=()=>{L||ae(i),ee(!L)},se=L?ie:i,ce=(0,Q.useMemo)(()=>se.filter(e=>{if(!A&&e.type===`cursor`||!N&&e.type===`message`||!F&&e.eventName.includes(`terminals`)||te.size>0&&!te.has(e.type))return!1;if(R.size>0&&e.type===`crud`){let t=[`created`,`patched`,`updated`,`removed`].find(t=>e.eventName.includes(t));if(!t||!R.has(t))return!1}return!0}),[se,A,N,F,te,R]),le=se.length,ue=ce.length,de=L?i.length-ie.length:0;return e?null:(0,$.jsxs)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:h.colorBgContainer,borderLeft:`1px solid ${h.colorBorder}`,display:`flex`,flexDirection:`column`},children:[(0,$.jsxs)(`div`,{style:{padding:12,borderBottom:`1px solid ${h.colorBorder}`,display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,$.jsxs)(B,{children:[(0,$.jsx)(r,{}),(0,$.jsx)(Ai,{level:5,style:{margin:0},children:`Live Event Stream`}),(0,$.jsx)(En,{color:`blue`,style:{fontSize:10,marginLeft:4},children:`BETA`}),f&&(0,$.jsx)(En,{icon:f.icon?(0,$.jsx)(`span`,{children:f.icon}):void 0,style:{fontSize:11,marginLeft:4},children:f.name})]}),t&&(0,$.jsx)(u,{type:`text`,size:`small`,icon:(0,$.jsx)(V,{}),onClick:t,danger:!0})]}),(0,$.jsx)(`div`,{style:{padding:`12px 12px 8px`,borderBottom:`1px solid ${h.colorBorder}`,backgroundColor:h.colorBgContainer},children:(0,$.jsxs)(B,{size:`small`,children:[(0,$.jsx)(u,{icon:L?(0,$.jsx)(w,{}):(0,$.jsx)(M,{}),onClick:oe,type:L?`primary`:`default`,size:`small`,children:L?`Resume`:`Pause`}),(0,$.jsx)(u,{icon:(0,$.jsx)(Je,{}),onClick:o,disabled:le===0,type:`text`,size:`small`,danger:!0,children:`Clear`})]})}),(0,$.jsxs)(`div`,{style:{padding:12,borderBottom:`1px solid ${h.colorBorder}`,backgroundColor:h.colorBgContainer},children:[(0,$.jsxs)(`div`,{style:{marginBottom:12,display:`flex`,alignItems:`center`,gap:4},children:[(0,$.jsx)(ki,{type:`secondary`,style:{fontSize:12},children:`Showing`}),(0,$.jsx)(qe,{count:ue,showZero:!0,style:{backgroundColor:h.colorPrimaryBgHover,color:h.colorText}}),(0,$.jsx)(ki,{type:`secondary`,style:{fontSize:12},children:`out of`}),(0,$.jsx)(qe,{count:le,showZero:!0,style:{backgroundColor:h.colorPrimaryBgHover,color:h.colorText}}),(0,$.jsx)(ki,{type:`secondary`,style:{fontSize:12},children:`events`}),L&&de>0&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ki,{type:`secondary`,style:{fontSize:12,marginLeft:8},children:`•`}),(0,$.jsx)(qe,{count:de,style:{backgroundColor:h.colorWarningBg,color:h.colorWarning}}),(0,$.jsx)(ki,{type:`warning`,style:{fontSize:11},children:`new while paused`})]})]}),(0,$.jsx)(ki,{type:`secondary`,style:{display:`block`,marginBottom:8,fontSize:12},children:`Quick Filters:`}),(0,$.jsxs)(B,{wrap:!0,size:`middle`,style:{width:`100%`},children:[(0,$.jsx)(n,{checked:A,onChange:e=>j(e.target.checked),children:(0,$.jsx)(ki,{style:{fontSize:12},children:`Cursor movement`})}),(0,$.jsx)(n,{checked:N,onChange:e=>P(e.target.checked),children:(0,$.jsx)(ki,{style:{fontSize:12},children:`Message streams`})}),(0,$.jsx)(n,{checked:F,onChange:e=>I(e.target.checked),children:(0,$.jsx)(ki,{style:{fontSize:12},children:`Terminal data`})})]}),(0,$.jsxs)(B,{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)(ki,{type:`secondary`,style:{marginBottom:4,fontSize:11},children:`Event Types:`}),(0,$.jsx)(p,{mode:`multiple`,placeholder:`Filter by type`,value:Array.from(te),onChange:e=>ne(new Set(e)),style:{width:`100%`},size:`small`,allowClear:!0,maxTagCount:`responsive`,children:[`cursor`,`message`,`tool`,`crud`,`connection`,`other`].map(e=>(0,$.jsx)(p.Option,{value:e,children:e},e))})]}),(0,$.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,flex:1,minWidth:200},children:[(0,$.jsx)(ki,{type:`secondary`,style:{marginBottom:4,fontSize:11},children:`CRUD Operations:`}),(0,$.jsx)(p,{mode:`multiple`,placeholder:`Filter by operation`,value:Array.from(R),onChange:e=>re(new Set(e)),style:{width:`100%`},size:`small`,allowClear:!0,maxTagCount:`responsive`,children:[`created`,`patched`,`updated`,`removed`].map(e=>(0,$.jsx)(p.Option,{value:e,children:e},e))})]})]})]}),(0,$.jsx)(`div`,{style:{flex:1,overflow:`auto`},children:ce.length===0?(0,$.jsx)(z,{description:le===0?`No events captured yet`:`No events match current filters`,style:{marginTop:60}}):(0,$.jsx)(`div`,{style:{border:`1px solid ${h.colorBorderSecondary}`,borderRadius:h.borderRadius,overflow:`hidden`,margin:12},children:ce.map(e=>(0,$.jsx)(Oi,{event:e,branchById:g,sessionById:_,sessionsByBranch:v,repos:x,userById:b,currentUserId:c,selectedSessionId:l,branchActions:k,client:m},e.id))})})]})},Mi=(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[r,i,a]=n[1].split(`,`).map(e=>e.trim()).slice(0,3);return r==null||i==null||a==null?e:`rgba(${r}, ${i}, ${a}, ${t})`}return e},Ni=(e,t=.3)=>({...Pi(e,t),boxShadow:`inset 0 1px 0 rgba(255, 255, 255, 0.12)`}),Pi=(e,t=.3)=>({background:Mi(e.colorBgContainer,t),backdropFilter:`blur(20px) saturate(180%)`,WebkitBackdropFilter:`blur(20px) saturate(180%)`}),{Text:Fi}=_,Ii=100,Li={cursor:`pointer`,marginInlineEnd:0},Ri={...Li,display:`inline-flex`,alignItems:`center`,paddingInline:6},zi=e=>e===`sessions`?(0,$.jsx)(Me,{}):e===`assistants`?(0,$.jsx)(l,{}):(0,$.jsx)(Ue,{}),Bi=(0,Q.memo)(function({type:e,dttm:t,session:n,branch:r,board:i,actor:o,onBoardClick:s,onBranchClick:c,onSessionClick:l}){let{token:u}=a.useToken(),d=null;if(e===`sessions`){if(!n)return null;let e=un(n,{includeAgentFallback:!0,includeIdFallback:!0}),t=Math.abs(Mr(n,`last_updated`)-Mr(n,`created_at`))<1e3?`started`:`updated`;d=(0,$.jsxs)(B,{size:4,wrap:!0,children:[o?(0,$.jsx)(wn,{user:o,compact:!0}):(0,$.jsx)(Fi,{strong:!0,children:`Someone`}),(0,$.jsx)(Fi,{type:`secondary`,children:t}),(0,$.jsx)(h,{trigger:`hover`,title:(0,$.jsx)(Fi,{style:{maxWidth:320,display:`block`},children:e}),content:(0,$.jsxs)(Fi,{type:`secondary`,style:{fontSize:12},children:[n.agentic_tool,` · `,n.status.replaceAll(`_`,` `)]}),children:(0,$.jsx)(Wn,{ariaLabel:e,title:e,onClick:()=>l(n.session_id),style:Ri})}),r&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Fi,{type:`secondary`,children:`in`}),(0,$.jsx)(ft,{branch:r.name,compact:!0,onClick:()=>c(r.branch_id)})]}),i&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Fi,{type:`secondary`,children:`on`}),(0,$.jsx)(Jt,{board:i,compact:!0,onClick:()=>s(i.board_id),style:Li})]})]})}else{if(!r)return null;let t=e===`assistants`,n=rt(r),a=n?.displayName??r.name;d=(0,$.jsxs)(B,{size:4,wrap:!0,children:[o?(0,$.jsx)(wn,{user:o,compact:!0}):(0,$.jsx)(Fi,{strong:!0,children:`Someone`}),(0,$.jsx)(Fi,{type:`secondary`,children:`created`}),t?(0,$.jsx)(pn,{name:a,emoji:n?.emoji,compact:!0,title:r.name,onClick:()=>c(r.branch_id),style:Li}):(0,$.jsx)(ft,{branch:a,compact:!0,title:r.name,onClick:()=>c(r.branch_id)}),i&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Fi,{type:`secondary`,children:`on`}),(0,$.jsx)(Jt,{board:i,compact:!0,onClick:()=>s(i.board_id),style:Li})]})]})}return(0,$.jsx)(de.Item,{style:{padding:`10px 0`},children:(0,$.jsxs)(B,{align:`start`,children:[(0,$.jsx)(re,{size:`small`,style:{background:u.colorFillSecondary,color:u.colorText},children:zi(e)}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`div`,{children:d}),t&&(0,$.jsx)(Fi,{type:`secondary`,style:{fontSize:12},children:br(t)})]})]})})}),Vi=({onBoardClick:e,onBranchClick:t,onSessionClick:n})=>{let r=X(mr),i=X($t),o=X(gt),s=X(qt),{token:u}=a.useToken(),d=Ni(u),[f,p]=(0,Q.useState)(`all`),m=(0,Q.useMemo)(()=>{let e=[];for(let t of r.values()){if(t.archived)continue;let n=at(t);e.push({id:`branch:${t.branch_id}`,type:n?`assistants`:`branches`,dttm:t.created_at,t:Mr(t,`created_at`),entityId:t.branch_id})}for(let t of o.values())t.archived||e.push({id:`session:${t.session_id}`,type:`sessions`,dttm:t.last_updated,t:Mr(t,`last_updated`),entityId:t.session_id});return e.filter(e=>f===`all`||e.type===f).sort((e,t)=>t.t-e.t).slice(0,Ii)},[r,o,f]);return(0,$.jsxs)(`section`,{"aria-label":`Team activity`,style:{flex:1,minHeight:0,display:`flex`,flexDirection:`column`},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,flexWrap:`wrap`,marginBottom:8,gap:6},children:[(0,$.jsxs)(B,{size:6,children:[(0,$.jsx)(U,{style:{color:u.colorTextSecondary,fontSize:13}}),(0,$.jsx)(Fi,{strong:!0,style:{fontSize:14},children:`Team activity`})]}),(0,$.jsx)(c,{size:`small`,value:f,onChange:p,options:[{label:(0,$.jsx)(R,{title:`All activity`,children:`All`}),value:`all`},{label:(0,$.jsx)(R,{title:`Branches`,children:(0,$.jsx)(Ue,{"aria-label":`Branches`})}),value:`branches`},{label:(0,$.jsx)(R,{title:`Sessions`,children:(0,$.jsx)(Me,{"aria-label":`Sessions`})}),value:`sessions`},{label:(0,$.jsx)(R,{title:`Assistants`,children:(0,$.jsx)(l,{"aria-label":`Assistants`})}),value:`assistants`}]})]}),(0,$.jsx)(xe,{style:{flex:1,minHeight:0,border:`1px solid ${u.colorBorderSecondary}`,borderRadius:u.borderRadiusLG,...d},styles:{body:{padding:0,height:`100%`,overflow:`auto`,background:`transparent`}},children:m.length===0?(0,$.jsx)(z,{image:z.PRESENTED_IMAGE_SIMPLE,description:`No recent activity`,style:{padding:`24px 0`}}):(0,$.jsx)(de,{rowKey:`id`,dataSource:m,renderItem:a=>{if(a.type===`sessions`){let c=o.get(a.entityId),l=c?r.get(c.branch_id):void 0,u=l?.board_id?i.get(l.board_id):void 0,d=c?s.get(c.created_by):void 0;return(0,$.jsx)(Bi,{type:`sessions`,dttm:a.dttm,session:c,branch:l,board:u,actor:d,onBoardClick:e,onBranchClick:t,onSessionClick:n})}let c=r.get(a.entityId),l=c?.board_id?i.get(c.board_id):void 0,u=c?s.get(c.created_by):void 0;return(0,$.jsx)(Bi,{type:a.type,dttm:a.dttm,branch:c,board:l,actor:u,onBoardClick:e,onBranchClick:t,onSessionClick:n})},style:{padding:`0 12px`}})})]})},{Text:Hi}=_,Ui=50,Wi=4,Gi=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},Ki=new WeakMap,qi=e=>{let t=Ki.get(e);if(t)return t;let n=e.filter(e=>!e.archived);return Ki.set(e,n),n},Ji=e=>{let t=new Map;for(let[n,r]of e){let e=qi(r);e.length>0&&t.set(n,e)}return t},Yi=e=>e.filter(e=>e.status===`running`||e.status===`awaiting_permission`||e.status===`awaiting_input`),Xi=(0,Q.memo)(function({board:e,branchCount:t,activeCount:n,latestSessionAt:r,onBoardClick:i}){let{token:o}=a.useToken(),[s,c]=(0,Q.useState)(!1),[l,u]=(0,Q.useState)(!1);return(0,$.jsxs)(`div`,{style:{position:`relative`,width:`100%`,height:`100%`},children:[(0,$.jsx)(`span`,{"aria-hidden":!0,style:{position:`absolute`,inset:0,borderRadius:o.borderRadiusLG,...Pi(o,.3),pointerEvents:`none`}}),(0,$.jsx)(`button`,{type:`button`,onClick:()=>i(e.board_id),onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),onFocus:()=>u(!0),onBlur:()=>u(!1),style:{position:`relative`,display:`block`,width:`100%`,height:`100%`,textAlign:`left`,border:`1px solid ${s?o.colorPrimary:o.colorBorderSecondary}`,borderRadius:o.borderRadiusLG,padding:`12px 14px`,cursor:`pointer`,background:`transparent`,boxShadow:s?`${o.boxShadowSecondary}, inset 0 1px 0 rgba(255, 255, 255, 0.12)`:void 0,outline:l?`2px solid ${o.colorPrimary}`:void 0,outlineOffset:l?2:void 0,transition:`border-color 0.2s, box-shadow 0.2s`,fontFamily:`inherit`},children:(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-start`,gap:10},children:[(0,$.jsx)(`div`,{style:{width:36,height:36,borderRadius:8,background:o.colorFillTertiary,display:`flex`,alignItems:`center`,justifyContent:`center`,fontSize:20,flexShrink:0},children:e.icon||`📋`}),(0,$.jsxs)(`div`,{style:{flex:1,minWidth:0,display:`flex`,flexDirection:`column`,gap:4},children:[(0,$.jsx)(R,{title:e.name,children:(0,$.jsx)(Hi,{strong:!0,style:{fontSize:14,display:`block`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.name})}),(0,$.jsxs)(`div`,{style:{display:`flex`,gap:10},children:[(0,$.jsxs)(Hi,{type:`secondary`,style:{fontSize:12},children:[t,` branch`,t===1?``:`es`]}),n>0&&(0,$.jsxs)(Hi,{type:`secondary`,style:{fontSize:12},children:[(0,$.jsx)(Ve,{style:{marginRight:2}}),n,` active`]})]}),(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[(0,$.jsx)(pe,{style:{fontSize:11,color:o.colorTextSecondary}}),(0,$.jsx)(Hi,{type:`secondary`,style:{fontSize:12},children:r?`Last session ${br(r)}`:`No sessions yet`})]})]})]})})]})}),Zi=({recentBoardIds:e=[],onBoardClick:t,onOpenCreateDialog:n})=>{let r=X($t),i=X(mr),a=X(Bt),[o,s]=(0,Q.useState)(0),c=(0,Q.useMemo)(()=>{let t=new Map((e??[]).map((e,t)=>[e,t])),n=Gi(i),o=Ji(a);return Array.from(r.values()).filter(e=>!e.archived).map(e=>{let r=n.get(e.board_id)??[],i=r.flatMap(e=>o.get(e.branch_id)??[]),a=null,s=-1/0;for(let e of i){let t=Mr(e,`last_updated`);t>s&&(s=t,a=e.last_updated)}let c=Math.max(Mr(e,`last_updated`),...r.map(e=>Mr(e,e.updated_at?`updated_at`:`created_at`)),s);return{board:e,branchCount:r.length,activeCount:Yi(i).length,latestSessionAt:a,latest:Number.isFinite(c)?c:0,visitRank:t.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,Ui)},[r,e,i,a]),l=Math.max(1,Math.ceil(c.length/Wi)),d=Math.min(o,l-1),f=d*Wi,p=c.slice(f,f+Wi),m=c.length>Wi;return(0,$.jsxs)(`section`,{"aria-label":`Boards`,style:{marginBottom:24},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,marginBottom:12},children:[(0,$.jsx)(Hi,{strong:!0,style:{fontSize:14},children:`Boards`}),(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[m&&(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[(0,$.jsx)(u,{type:`text`,size:`small`,icon:(0,$.jsx)(I,{}),"aria-label":`Previous boards`,disabled:d===0,onClick:()=>s(Math.max(0,d-1))}),(0,$.jsxs)(Hi,{type:`secondary`,style:{fontSize:12},children:[d+1,` / `,l]}),(0,$.jsx)(u,{type:`text`,size:`small`,icon:(0,$.jsx)(ge,{}),"aria-label":`Next boards`,disabled:d>=l-1,onClick:()=>s(Math.min(l-1,d+1))})]}),(0,$.jsx)(u,{type:`link`,size:`small`,icon:(0,$.jsx)(O,{}),style:{padding:0},onClick:()=>n(`board`),children:`New board`})]})]}),c.length===0?(0,$.jsx)(z,{image:z.PRESENTED_IMAGE_SIMPLE,description:`No boards yet`,style:{padding:`24px 0`},children:(0,$.jsx)(u,{type:`primary`,onClick:()=>n(`board`),children:`Create your first board`})}):(0,$.jsx)(`div`,{style:{display:`grid`,gridTemplateColumns:`repeat(4, minmax(0, 1fr))`,gap:12},children:p.map(({board:e,branchCount:n,activeCount:r,latestSessionAt:i})=>(0,$.jsx)(Xi,{board:e,branchCount:n,activeCount:r,latestSessionAt:i,onBoardClick:t},e.board_id))})]})},{Text:Qi}=_,$i=50,ea=e=>Array.isArray(e)?e:e.data??[],ta=({doc:e})=>{let{token:t}=a.useToken(),n=ct(),r=Kr(e.uri),i=Gr(`/knowledge`,r,e.path);return(0,$.jsx)(de.Item,{onClick:()=>n(i),style:{cursor:`pointer`,padding:`10px 0`},children:(0,$.jsx)(de.Item.Meta,{avatar:e.icon_emoji?(0,$.jsx)(`span`,{style:{fontSize:18,lineHeight:`22px`},children:e.icon_emoji}):(0,$.jsx)(se,{style:{color:t.colorTextTertiary}}),title:(0,$.jsxs)(B,{size:6,style:{maxWidth:`100%`},children:[(0,$.jsx)(Qi,{ellipsis:{tooltip:e.title||e.path},style:{minWidth:0},children:e.title||e.path}),(0,$.jsx)(yn,{namespace:r||`Knowledge`,style:{marginInlineEnd:0}})]}),description:(0,$.jsxs)(B,{size:6,wrap:!0,children:[(0,$.jsx)(Qi,{type:`secondary`,style:{fontSize:12},children:e.path}),e.updated_at&&(0,$.jsxs)(Qi,{type:`secondary`,style:{fontSize:12},children:[`· `,br(e.updated_at)]})]})})})},na=({client:e,connected:t})=>{let{token:n}=a.useToken(),r=Ni(n),[i,s]=(0,Q.useState)([]),[c,l]=(0,Q.useState)(!1),[u,d]=(0,Q.useState)(null),[f,p]=(0,Q.useState)(``),m=(0,Q.useMemo)(()=>{let e=f.trim().toLowerCase();return e?i.filter(t=>(t.title||t.path).toLowerCase().includes(e)||t.path.toLowerCase().includes(e)):i},[i,f]);return(0,Q.useEffect)(()=>{let n=!1;if(!e||!t){l(!1);return}return l(!0),d(null),e.service(`kb/documents`).find({query:{archived:!1,$limit:$i,$sort:{updated_at:-1}}}).then(e=>{n||s(ea(e))}).catch(()=>{n||d(`Failed to load knowledge docs`)}).finally(()=>{n||l(!1)}),()=>{n=!0}},[e,t]),(0,$.jsxs)(`section`,{"aria-label":`Knowledge base`,style:{flex:1,minHeight:0,display:`flex`,flexDirection:`column`},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,marginBottom:8,gap:6},children:[(0,$.jsx)(o,{style:{color:n.colorTextSecondary,fontSize:13}}),(0,$.jsx)(Qi,{strong:!0,style:{fontSize:14,flex:1},children:`Knowledge`}),(0,$.jsx)(he,{size:`small`,placeholder:`Search...`,prefix:(0,$.jsx)(x,{style:{color:n.colorTextQuaternary,fontSize:11}}),value:f,onChange:e=>p(e.target.value),allowClear:!0,style:{flex:`0 1 120px`,minWidth:80,fontSize:12}})]}),(0,$.jsx)(xe,{loading:c,style:{flex:1,minHeight:0,border:`1px solid ${n.colorBorderSecondary}`,borderRadius:n.borderRadiusLG,...r},styles:{body:{padding:0,height:`100%`,overflow:`auto`,background:`transparent`}},children:u?(0,$.jsx)(z,{image:z.PRESENTED_IMAGE_SIMPLE,description:u,style:{padding:`24px 0`}}):i.length===0&&!t?(0,$.jsx)(z,{image:z.PRESENTED_IMAGE_SIMPLE,description:`Reconnect to refresh Knowledge`,style:{padding:`24px 0`}}):i.length===0?(0,$.jsx)(z,{image:z.PRESENTED_IMAGE_SIMPLE,description:`No Knowledge docs yet`,style:{padding:`24px 0`}}):m.length===0?(0,$.jsx)(z,{image:z.PRESENTED_IMAGE_SIMPLE,description:`No matching docs`,style:{padding:`24px 0`}}):(0,$.jsx)(de,{rowKey:`document_id`,dataSource:m,renderItem:e=>(0,$.jsx)(ta,{doc:e}),style:{padding:`0 12px`}})})]})},ra={running:`Running`,awaiting_permission:`Awaiting permission`,awaiting_input:`Awaiting input`,stopping:`Stopping`,timed_out:`Timed out`,failed:`Failed`,idle:`Idle`,completed:`Completed`},ia={running:`status-dot-run`,awaiting_permission:`status-dot-wait`,awaiting_input:`status-dot-wait`,stopping:`status-dot-wait`},aa=({status:e,size:t=7})=>{let{token:n}=a.useToken(),r=(()=>{switch(e){case`running`:return n.colorSuccess;case`awaiting_permission`:case`awaiting_input`:case`stopping`:return n.colorWarning;case`timed_out`:case`failed`:return n.colorError;default:return n.colorTextQuaternary}})(),i=ia[e]??``,o=ra[e]??e.replaceAll(`_`,` `);return(0,$.jsx)(R,{title:o,children:(0,$.jsx)(`span`,{role:`img`,"aria-label":`Status: ${o}`,className:i,style:{display:`inline-block`,width:t,height:t,borderRadius:`50%`,background:r,flexShrink:0}})})},{Text:oa}=_,sa=100,ca=(0,Q.memo)(function({session:e,branch:t,board:n,onSessionClick:r}){let{token:i}=a.useToken(),o=un(e,{includeAgentFallback:!0}),s=!!(e.genealogy.parent_session_id||e.genealogy.forked_from_session_id),c=!!(n||t);return(0,$.jsxs)(de.Item,{onClick:()=>r(e.session_id),style:{cursor:`pointer`,padding:`8px 14px`,borderBlockEnd:`1px solid ${i.colorBorderSecondary}`,display:`flex`,flexDirection:`column`,alignItems:`stretch`,gap:4},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6},children:[(0,$.jsx)(aa,{status:e.status}),s&&(0,$.jsx)(je,{style:{fontSize:11,color:i.colorTextTertiary,flexShrink:0}}),(0,$.jsx)(R,{title:o,children:(0,$.jsx)(oa,{ellipsis:!0,style:{fontSize:13,fontWeight:500,flex:1,minWidth:0},children:o})}),(0,$.jsx)(oa,{type:`secondary`,style:{fontSize:12,flexShrink:0,whiteSpace:`nowrap`},children:br(e.last_updated)})]}),c&&(0,$.jsxs)(B,{size:4,style:{paddingLeft:13},children:[n&&(0,$.jsx)(Jt,{board:n,compact:!0}),t&&(0,$.jsx)(ft,{branch:t.name,compact:!0})]})]})}),la=({currentUserId:e,onSessionClick:t})=>{let{token:n}=a.useToken(),r=X(gt),i=X(mr),o=X($t),[s,c]=(0,Q.useState)(``),[l,u]=Vt(Pr,`recent`),d=(0,Q.useMemo)(()=>Array.from(r.values()).filter(t=>!t.archived&&(!e||t.created_by===e)),[e,r]),f=s.trim(),p=kr(f),m=(0,Q.useMemo)(()=>(p?Ar(d,f).map(({session:e})=>e):Fr(d,l)).slice(0,sa),[d,p,f,l]);return(0,$.jsxs)(`section`,{"aria-label":e?`My sessions`:`Sessions`,style:{flex:1,display:`flex`,flexDirection:`column`,minHeight:240},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,marginBottom:12,gap:8},children:[(0,$.jsx)(oa,{strong:!0,style:{fontSize:14},children:e?`My Sessions`:`Sessions`}),(0,$.jsx)(`div`,{style:{display:`flex`,gap:8,alignItems:`center`},children:(0,$.jsx)(Dr,{value:s,onChange:c,sort:l,onSortChange:u,searching:p,placeholder:`Filter sessions...`})})]}),(0,$.jsx)(xe,{styles:{body:{padding:0,flex:1,minHeight:0,overflowY:`auto`}},style:{flex:1,minHeight:0,display:`flex`,flexDirection:`column`,border:`1px solid ${n.colorBorderSecondary}`,borderRadius:n.borderRadiusLG,...Ni(n,.3)},children:m.length===0?(0,$.jsx)(z,{image:z.PRESENTED_IMAGE_SIMPLE,description:p?`No matching sessions`:`No sessions yet`,style:{padding:`28px 0`}}):(0,$.jsx)(de,{rowKey:`session_id`,dataSource:m,renderItem:e=>{let n=i.get(e.branch_id);return(0,$.jsx)(ca,{session:e,branch:n,board:n?.board_id?o.get(n.board_id):void 0,onSessionClick:t})}})})]})},{Text:ua}=_,da=({icon:e,value:t,valueTooltip:n,label:r,iconBg:i,iconColor:o})=>{let{token:s}=a.useToken();return(0,$.jsxs)(`div`,{style:{flex:1,position:`relative`,padding:`14px 16px`,...Ni(s,.3),border:`1px solid ${s.colorBorderSecondary}`,borderRadius:s.borderRadiusLG,minWidth:0,overflow:`hidden`},children:[(0,$.jsx)(`div`,{style:{position:`absolute`,top:12,right:12,width:30,height:30,borderRadius:s.borderRadiusSM,background:i,display:`flex`,alignItems:`center`,justifyContent:`center`,color:o,fontSize:14},children:e}),(0,$.jsx)(R,{title:n,children:(0,$.jsx)(`div`,{style:{fontSize:28,fontWeight:700,lineHeight:1,color:s.colorText,marginBottom:4,paddingRight:46,cursor:n?`default`:void 0},children:t})}),(0,$.jsx)(ua,{type:`secondary`,style:{fontSize:12,display:`block`},children:r})]})},fa=({currentUserId:e})=>{let{token:t}=a.useToken(),[n,r]=(0,Q.useState)(()=>Date.now());(0,Q.useEffect)(()=>{let e=setInterval(()=>r(Date.now()),6e4);return()=>clearInterval(e)},[]);let i=X(e=>e.userById.size),{activeTeammates:o,myThisWeek:c,runningNow:l,activeThisWeek:u}=Rt(Y,t=>{let r=n-10080*60*1e3,i=new Set,a=0,o=0,s=0;for(let n of t.sessionById.values()){if(n.archived)continue;let t=Mr(n,`last_updated`),c=Number.isNaN(t)?Mr(n,`created_at`):t;n.status===`running`&&o++,!Number.isNaN(c)&&c>r&&(s++,n.created_by&&i.add(n.created_by),n.created_by===e&&a++)}return{activeTeammates:i.size,myThisWeek:a,runningNow:o,activeThisWeek:s}},Zt),d=i>1,f=d&&e&&u>0?`${c}/${u}`:u,p=d&&e&&u>0?`${c} by you, ${u} by the team`:void 0;return(0,$.jsxs)(`div`,{style:{display:`flex`,gap:12,marginBottom:24},children:[(0,$.jsx)(da,{icon:(0,$.jsx)(U,{}),value:o,label:`Teammates active this week`,iconBg:t.colorWarningBg,iconColor:t.colorWarning}),(0,$.jsx)(da,{icon:(0,$.jsx)(Ve,{}),value:l,label:`Sessions running now`,iconBg:t.colorPrimaryBg,iconColor:t.colorPrimary}),(0,$.jsx)(da,{icon:(0,$.jsx)(s,{}),value:f,valueTooltip:p,label:`Sessions active this week`,iconBg:t.colorSuccessBg,iconColor:t.colorSuccess})]})},{Text:pa}=_,ma=5,ha=new Set([`awaiting_permission`,`awaiting_input`]),ga=({session:e,onSessionClick:t})=>{let{token:n}=a.useToken(),[r,i]=(0,Q.useState)(!1),o=un(e,{includeAgentFallback:!0});return(0,$.jsxs)(`button`,{type:`button`,onFocus:()=>i(!0),onBlur:()=>i(!1),style:{display:`flex`,width:`100%`,alignItems:`center`,gap:10,padding:`8px 12px`,cursor:`pointer`,background:`none`,border:`none`,borderBottom:`1px solid ${n.colorBorderSecondary}`,fontFamily:`inherit`,textAlign:`left`,outline:r?`2px solid ${n.colorPrimary}`:void 0,outlineOffset:r?-2:void 0},onClick:()=>t(e.session_id),children:[(0,$.jsx)(aa,{status:e.status}),(0,$.jsx)(R,{title:e.description||o,children:(0,$.jsx)(pa,{ellipsis:!0,style:{flex:1,fontSize:14,fontWeight:500,minWidth:0},children:o})}),(0,$.jsx)(pa,{type:`secondary`,style:{fontSize:12,flexShrink:0,whiteSpace:`nowrap`},children:br(e.last_updated)})]})},_a=({currentUserId:e,onSessionClick:t})=>{let{token:n}=a.useToken(),r=Rt(Y,t=>{let n=[];for(let r of t.sessionById.values())!r.archived&&ha.has(r.status)&&(!e||r.created_by===e)&&n.push(r);return n},Zt),i=r.slice(0,ma),o=r.length-i.length;return r.length===0?null:(0,$.jsxs)(`div`,{style:{marginBottom:24},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6,marginBottom:8},children:[(0,$.jsx)(Ve,{style:{color:n.colorWarning}}),(0,$.jsxs)(pa,{strong:!0,style:{fontSize:14},children:[`Jump back in — `,r.length,` session`,r.length===1?``:`s`,` waiting for your reply`]})]}),(0,$.jsxs)(`div`,{style:{border:`1px solid ${n.colorBorderSecondary}`,borderRadius:n.borderRadiusLG,overflow:`hidden`,...Ni(n,.3)},children:[i.map(e=>(0,$.jsx)(ga,{session:e,onSessionClick:t},e.session_id)),o>0&&(0,$.jsx)(`div`,{style:{padding:`8px 12px`,textAlign:`center`},children:(0,$.jsxs)(pa,{type:`secondary`,style:{fontSize:12},children:[`and `,o,` more`]})})]})]})},{Text:va}=_,ya=({steps:e,onDismiss:t})=>{let{token:n}=a.useToken(),r=e.filter(e=>e.done).length,i=e.length===0?0:Math.round(r/e.length*100);return(0,$.jsxs)(`div`,{style:{border:`1px solid ${n.colorBorderSecondary}`,borderRadius:n.borderRadiusLG,padding:`16px 20px`,marginBottom:24,...Ni(n,.3)},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:12,marginBottom:12},children:[(0,$.jsx)(va,{strong:!0,style:{fontSize:14,flex:1},children:`Get started with Agor`}),(0,$.jsxs)(va,{type:`secondary`,style:{fontSize:12,flexShrink:0},children:[r,`/`,e.length]}),(0,$.jsx)(ke,{percent:i,showInfo:!1,style:{width:60,margin:0,flexShrink:0},size:`small`,strokeColor:n.colorPrimary})]}),(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:8},children:e.map(e=>(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:10},children:[(0,$.jsx)(`span`,{style:{width:16,height:16,borderRadius:`50%`,flexShrink:0,display:`flex`,alignItems:`center`,justifyContent:`center`,background:e.done?n.colorPrimary:`transparent`,border:e.done?`none`:`1.5px solid ${n.colorBorderSecondary}`},children:e.done&&(0,$.jsx)(v,{style:{fontSize:9,color:n.colorTextLightSolid}})}),(0,$.jsx)(va,{style:{fontSize:14,flex:1,color:e.done?n.colorTextTertiary:n.colorText,textDecoration:e.done?`line-through`:`none`},children:e.label}),!e.done&&(0,$.jsx)(u,{type:`link`,size:`small`,href:e.onClick?void 0:e.href,onClick:e.onClick,style:{padding:0,fontSize:12,height:`auto`},children:e.cta})]},e.id))}),(0,$.jsx)(`div`,{style:{marginTop:12},children:(0,$.jsx)(u,{type:`text`,size:`small`,onClick:t,style:{padding:0,fontSize:12,color:n.colorTextQuaternary,height:`auto`},children:`Don't show again`})})]})},{Content:ba}=Re,{Text:xa,Title:Sa}=_,Ca=`agor:onboarding-card-hidden`,wa=`agor:homepage-sidebar-width`,Ta=340,Ea=240,Da=.5;function Oa(e,t){for(let n of e.values())if(!n.archived&&(!t||n.created_by===t))return!0;return!1}var ka=[{key:`assistant`,label:`New assistant`,icon:(0,$.jsx)(l,{})},{key:`branch`,label:`New branch`,icon:(0,$.jsx)(Ue,{})},{key:`board`,label:`New board`,icon:(0,$.jsx)(we,{})}],Aa=({currentUserId:e,onNewSession:t,onOpenCreateDialog:n,onOpenSettings:r,onDismiss:i})=>{let{hasBoards:a,hasRepos:o,hasMcp:s,hasTeammates:c,hasSessions:l}=Rt(Y,t=>({hasBoards:t.boardById.size>0,hasRepos:t.repoById.size>0,hasMcp:t.mcpServerById.size>0,hasTeammates:t.userById.size>1,hasSessions:Oa(t.sessionById,e)}),Zt),u=(0,Q.useMemo)(()=>[{id:`repo`,label:`Connect a repository`,done:o,cta:`Connect →`,onClick:()=>r(`repos`)},{id:`board`,label:`Create your first board`,done:a,cta:`Create →`,onClick:()=>n(`board`)},{id:`session`,label:`Launch an AI session`,done:l,cta:`Start →`,onClick:t},{id:`mcp`,label:`Configure MCP tools`,done:s,cta:`Set up →`,onClick:()=>r(`mcp`)},{id:`invite`,label:`Invite a teammate`,done:c,cta:`Invite →`,onClick:()=>r(`users`)}],[a,o,s,c,l,n,r,t]);return u.every(e=>e.done)?null:(0,$.jsx)(ya,{steps:u,onDismiss:i})},ja=(0,Q.memo)(function(e){let{token:t}=a.useToken(),n=Wr[Nt(t)?`dark`:`light`],r=X($t),[i,o]=(0,Q.useState)(()=>localStorage.getItem(Ca)===`true`),s=X(t=>e.currentUserId?t.userById.get(e.currentUserId)?.name:void 0)||`there`,[d,f]=(0,Q.useState)(()=>{try{let e=Number(localStorage.getItem(wa));if(!Number.isFinite(e)||e<=0)return Ta;let t=typeof window<`u`?window.innerWidth*Da:1/0;return Math.min(Math.max(Ea,e),Math.max(Ea,t))}catch{return Ta}}),[m,h]=(0,Q.useState)(()=>typeof window<`u`&&window.innerWidth>=992),[g,v]=(0,Q.useState)(!1),y=(0,Q.useRef)(!1),b=(0,Q.useRef)(0),x=(0,Q.useRef)(0),S=(0,Q.useRef)(null),C=(0,Q.useRef)(d);C.current=d,(0,Q.useEffect)(()=>{let e=()=>h(window.innerWidth>=992);return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let w=(0,Q.useCallback)(e=>{e.preventDefault(),y.current=!0,b.current=e.clientX,x.current=C.current;let t=e=>{if(!y.current)return;let t=window.innerWidth*Da;f(Math.max(Ea,Math.min(t,x.current-(e.clientX-b.current))))};function n(){y.current=!1,document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,r),document.body.style.cursor=``,document.body.style.userSelect=``,S.current=null}function r(){f(e=>{try{localStorage.setItem(wa,String(Math.round(e)))}catch{}return e}),n()}S.current=n,document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`,document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,r)},[]);(0,Q.useEffect)(()=>()=>S.current?.(),[]);let T=(0,Q.useMemo)(()=>{let t=(e.recentBoardIds??[]).find(e=>r.get(e)?.archived===!1);if(t)return t;for(let e of r.values())if(!e.archived)return e.board_id},[r,e.recentBoardIds]),E=(0,Q.useMemo)(()=>Array.from(r.values()).filter(e=>!e.archived).map(e=>({value:e.board_id,label:`${e.icon||`📋`} ${e.name}`})),[r]),[D,k]=(0,Q.useState)(!1),[A,j]=(0,Q.useState)(),[M,N]=(0,Q.useState)(`assistant`),P=(0,Q.useCallback)((e=`assistant`)=>{N(e),j(T),k(!0)},[T]),F=(0,Q.useCallback)(()=>{k(!1),e.onOpenCreateDialog(M,A)},[e.onOpenCreateDialog,M,A]);return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{style:{height:`100%`,overflow:`hidden`,background:n},children:(0,$.jsxs)(Re,{hasSider:!0,style:{height:`100%`,background:`transparent`},children:[(0,$.jsx)(ba,{style:{overflowY:`auto`,display:`flex`,flexDirection:`column`,padding:`clamp(16px, 3vw, 28px) clamp(16px, 3vw, 32px) 80px`},children:(0,$.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,height:`100%`,minHeight:0},children:[(0,$.jsxs)(`header`,{style:{display:`flex`,alignItems:`flex-start`,justifyContent:`space-between`,gap:16,marginBottom:24},children:[(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(Sa,{level:5,style:{margin:0,fontWeight:700},children:[`Hi, `,s,`! 👋`]}),(0,$.jsx)(xa,{type:`secondary`,style:{fontSize:14},children:`Here's an overview of your workspace.`})]}),(0,$.jsx)(_e,{menu:{items:ka,onClick:({key:t})=>{t===`assistant`||t===`branch`?P(t):e.onOpenCreateDialog(t)}},trigger:[`click`],children:(0,$.jsx)(u,{type:`primary`,icon:(0,$.jsx)(O,{}),children:`New`})})]}),!i&&(0,$.jsx)(Aa,{currentUserId:e.currentUserId,onNewSession:P,onOpenCreateDialog:e.onOpenCreateDialog,onOpenSettings:e.onOpenSettings,onDismiss:()=>{localStorage.setItem(Ca,`true`),o(!0)}}),(0,$.jsx)(_a,{currentUserId:e.currentUserId,onSessionClick:e.onSessionClick}),(0,$.jsx)(fa,{currentUserId:e.currentUserId}),(0,$.jsx)(la,{currentUserId:e.currentUserId,onSessionClick:e.onSessionClick}),(0,$.jsx)(`div`,{style:{marginTop:24},children:(0,$.jsx)(Zi,{recentBoardIds:e.recentBoardIds,onBoardClick:e.onBoardClick,onOpenCreateDialog:e.onOpenCreateDialog})})]})}),m&&(0,$.jsxs)(`aside`,{style:{width:d,flexShrink:0,position:`relative`,borderLeft:`1px solid ${t.colorBorderSecondary}`,...Ni(t,.5),overflow:`hidden`,display:`flex`,flexDirection:`column`},children:[(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize sidebar`,"aria-valuenow":Math.round(d),"aria-valuemin":Ea,"aria-valuemax":Math.round(typeof window<`u`?window.innerWidth*Da:Ta),tabIndex:0,onMouseDown:w,onMouseEnter:()=>v(!0),onMouseLeave:()=>v(!1),onKeyDown:e=>{let t=e.key===`ArrowLeft`?8:e.key===`ArrowRight`?-8:0;t&&(e.preventDefault(),f(e=>{let n=typeof window<`u`?window.innerWidth*Da:Ta,r=Math.max(Ea,Math.min(n,e+t));try{localStorage.setItem(wa,String(Math.round(r)))}catch{}return r}))},title:`Drag or use arrow keys to resize`,style:{position:`absolute`,left:0,top:0,bottom:0,width:4,cursor:`col-resize`,zIndex:10,background:g?t.colorPrimary:`transparent`,transition:`background 0.15s`}}),(0,$.jsxs)(`div`,{style:{flex:1,minHeight:0,display:`flex`,flexDirection:`column`,overflow:`hidden`,padding:`16px 12px 16px 16px`,gap:32},children:[(0,$.jsx)(Vi,{onBoardClick:e.onBoardClick,onBranchClick:e.onBranchClick,onSessionClick:e.onSessionClick}),(0,$.jsx)(na,{client:e.client,connected:e.connected})]})]})]})}),(0,$.jsx)(ye,{title:M===`branch`?`New branch`:`New assistant`,open:D,onCancel:()=>k(!1),width:420,footer:E.length===0?[(0,$.jsx)(u,{onClick:()=>k(!1),children:`Cancel`},`cancel`),(0,$.jsx)(u,{type:`primary`,onClick:()=>{k(!1),e.onOpenCreateDialog(`board`)},children:`Create a board first`},`create`)]:[(0,$.jsx)(u,{onClick:()=>k(!1),children:`Cancel`},`cancel`),(0,$.jsx)(u,{type:`primary`,disabled:!A,onClick:F,children:M===`assistant`?`Start assistant`:`Create branch`},`start`)],children:E.length===0?(0,$.jsx)(`div`,{style:{padding:`8px 0 4px`},children:(0,$.jsx)(_.Text,{type:`secondary`,style:{display:`block`,fontSize:13},children:`You don't have any boards yet. Create one first to organise your work.`})}):(0,$.jsxs)(`div`,{style:{padding:`8px 0 4px`,display:`flex`,flexDirection:`column`,gap:14},children:[(0,$.jsx)(c,{value:M,onChange:e=>N(e),block:!0,options:[{value:`assistant`,label:`AI assistant`,icon:(0,$.jsx)(l,{})},{value:`branch`,label:`Branch / Worktree`,icon:(0,$.jsx)(Ue,{})}]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(_.Text,{style:{display:`block`,marginBottom:8,fontSize:13},children:`Which board?`}),(0,$.jsx)(p,{value:A,onChange:j,options:E,placeholder:`Select a board`,style:{width:`100%`}})]})]})})]})}),Ma=({onClick:e})=>{let t=Mt();return(0,$.jsx)(R,{title:t?`Disconnected from daemon`:`Create new...`,placement:`left`,children:(0,$.jsx)(u,{type:`primary`,shape:`circle`,size:`large`,icon:(0,$.jsx)(O,{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}})})};function Na(e){let t=e.type.toLowerCase(),n=e.name.toLowerCase();return t===`application/pdf`||n.endsWith(`.pdf`)?ze:t.startsWith(`text/`)||n.endsWith(`.md`)||n.endsWith(`.markdown`)?De:se}var Pa=({attachments:e,disabled:t=!1,onRemove:n})=>{let{token:r}=a.useToken(),[i,o]=Q.useState(null);if(e.length===0)return null;let s=e.filter(e=>e.status===`failed`).length,c=e.find(e=>e.id===i)??null;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(B,{orientation:`vertical`,style:{width:`100%`},size:6,children:[t&&(0,$.jsx)(_.Text,{type:`secondary`,style:{fontSize:r.fontSizeSM},children:`Files are uploading. Attachment changes are locked until upload finishes.`}),(0,$.jsx)(`div`,{style:{display:`flex`,alignItems:`flex-start`,gap:r.paddingSM},children:(0,$.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:r.paddingSM,flex:1},children:e.map(e=>{let i=e.status===`uploading`,a=e.status===`failed`,s=!!e.previewUrl,c=Na(e.file);return(0,$.jsxs)(`div`,{style:{position:`relative`,width:96,height:72,borderRadius:r.borderRadiusLG,overflow:`visible`,border:`1px solid ${a?r.colorError:r.colorBorderSecondary}`,background:r.colorBgLayout},children:[(0,$.jsxs)(`button`,{type:`button`,"aria-label":`Preview ${e.file.name}`,onClick:()=>o(e.id),style:{width:`100%`,height:`100%`,padding:0,border:0,borderRadius:r.borderRadiusLG,background:`transparent`,cursor:`zoom-in`,display:`block`},children:[s?(0,$.jsx)(`img`,{src:e.previewUrl,alt:e.file.name,style:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`,borderRadius:r.borderRadiusLG,opacity:i||a?.42:1}}):(0,$.jsxs)(`div`,{role:`img`,"aria-label":e.file.name,style:{width:`100%`,height:`100%`,borderRadius:r.borderRadiusLG,display:`flex`,alignItems:`center`,justifyContent:`center`,flexDirection:`column`,gap:4,color:r.colorTextSecondary,opacity:i||a?.42:1,padding:r.paddingXS},children:[(0,$.jsx)(c,{style:{fontSize:26}}),(0,$.jsx)(_.Text,{ellipsis:!0,style:{maxWidth:78,fontSize:r.fontSizeSM},children:e.file.name})]}),(i||a)&&(0,$.jsxs)(`div`,{style:{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,flexDirection:`column`,gap:2,color:a?r.colorError:r.colorPrimary,fontSize:r.fontSizeSM,fontWeight:600,pointerEvents:`none`},children:[i?(0,$.jsx)(Ae,{style:{fontSize:24}}):(0,$.jsx)(Fe,{}),(0,$.jsx)(`span`,{children:i?`Uploading`:`Failed`})]})]}),(0,$.jsx)(R,{title:t?`Files are uploading…`:`Remove file`,children:(0,$.jsx)(u,{"aria-label":`Remove ${e.file.name}`,icon:(0,$.jsx)(V,{}),shape:`circle`,size:`small`,onClick:()=>n(e.id),disabled:t,style:{position:`absolute`,top:-8,left:-8,zIndex:2,background:r.colorBgElevated}})})]},e.id)})})}),s>0&&(0,$.jsx)(be,{type:`error`,showIcon:!0,message:`${s} file${s===1?``:`s`} failed or cannot be uploaded. Remove failed files before sending.`,style:{paddingBlock:r.paddingXXS}})]}),c&&(0,$.jsx)(ye,{open:!0,title:`Preview ${c.file.name}`,footer:null,centered:!0,width:720,onCancel:()=>o(null),children:c.previewUrl?(0,$.jsx)(`img`,{src:c.previewUrl,alt:`Preview of ${c.file.name}`,style:{display:`block`,maxWidth:`100%`,maxHeight:`70vh`,margin:`0 auto`,objectFit:`contain`}}):(0,$.jsxs)(B,{direction:`vertical`,align:`center`,style:{width:`100%`,padding:24},children:[Q.createElement(Na(c.file),{style:{fontSize:48}}),(0,$.jsx)(_.Text,{strong:!0,children:c.file.name}),(0,$.jsx)(_.Text,{type:`secondary`,children:c.file.type||`Unknown file type`})]})})]})};function Fa({sessionId:e,showError:t}){let[n,r]=Q.useState([]),[i,a]=Q.useState(null),[o,s]=Q.useState(!1),c=Q.useRef(e),l=Q.useRef([]),u=Q.useRef(!1);l.current=n,u.current=o;let d=Q.useCallback(e=>{e.previewUrl?.startsWith(`blob:`)&&URL.revokeObjectURL(e.previewUrl)},[]),f=Q.useCallback(()=>{l.current.forEach(d),r([])},[d]);Q.useEffect(()=>()=>{l.current.forEach(d)},[d]),Q.useEffect(()=>{c.current!==e&&(f(),a(null),c.current=e)},[e,f]);let p=Q.useCallback(e=>{if(u.current||e.length===0)return;let{acceptedFiles:n,rejections:i}=Yn(e,l.current);if(i.length>0){let e=sr(i);a(e),t(e)}else a(null);n.length!==0&&r(e=>[...e,...n.map(e=>{let t=Tn(e);return{id:typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${e.name}`,file:e,previewUrl:t?URL.createObjectURL(e):void 0,destination:`branch`,status:`pending`}})])},[t]),m=Q.useCallback(e=>{u.current||(a(null),r(t=>{let n=t.find(t=>t.id===e);return n&&d(n),t.filter(t=>t.id!==e)}))},[d]),h=Q.useCallback(async(t=l.current,n=e)=>{if(!n)throw Error(`Cannot upload attachments without an active session.`);let i=t;if(i.length===0)return[];let a=i.find(mt);if(a)throw Error(`${a.file.name} failed or cannot be uploaded. Remove failed files before sending.`);let o=i.flatMap(e=>e.uploadedFile?[e.uploadedFile]:[]),c=i.filter(e=>e.status!==`uploaded`);if(c.length===0)return o;s(!0),u.current=!0,r(e=>e.map(e=>c.some(t=>t.id===e.id)?{...e,status:`uploading`,error:void 0}:e));let d=new Map;try{let e=await It({sessionId:n,daemonUrl:fn(),files:c.map(e=>e.file),notifyAgent:!1});if(e.files.length!==c.length)throw Error(`Upload response did not include every selected file`);c.forEach((t,n)=>{let r=e.files[n];r&&d.set(t.id,r)}),r(e=>e.map(e=>{let t=d.get(e.id);return t?{...e,status:`uploaded`,uploadedFile:t,error:void 0}:e}));let t=new Map;return i.forEach(e=>{e.uploadedFile&&t.set(e.id,e.uploadedFile)}),d.forEach((e,n)=>{t.set(n,e)}),i.flatMap(e=>{let n=t.get(e.id);return n?[n]:[]})}catch(e){let t=e instanceof Error?e.message:`Failed to upload files`;throw r(e=>e.map(e=>c.some(t=>t.id===e.id)?{...e,status:`failed`,error:t}:e)),e}finally{u.current=!1,s(!1)}},[e]);return{attachments:n,attachmentsRef:l,clearAttachments:f,hasAttachments:n.length>0,hasBlockingAttachments:n.some(mt),addAttachments:p,removeAttachment:m,uploadAttachments:h,uploading:o,uploadingRef:u,validationError:i,setValidationError:a}}var Ia=typeof navigator<`u`&&/Mac|iPhone|iPad|iPod/.test(navigator.platform||navigator.userAgent||``)?`⌘V`:`Ctrl+V`,La=({open:e,onClose:t,onCreate:n,availableAgents:r,branchId:i,branch:a,currentUser:o,client:s})=>{let c=X(Wt),l=X(qt),[u]=W.useForm(),{showError:d}=zt(),[f,p]=(0,Q.useState)(`claude-code`),[m,h]=(0,Q.useState)(!1),[g,v]=(0,Q.useState)([]),{attachments:y,addAttachments:b,removeAttachment:x,clearAttachments:S}=Fa({sessionId:null,showError:d}),C=!!f;return(0,Q.useEffect)(()=>{if(!e)return;p(`claude-code`),h(!1),v([]),S();let t=o?.default_agentic_config?.[`claude-code`],n=gr(`claude-code`,t),r=a?.mcp_server_ids;u.setFieldsValue({title:``,initialPrompt:``,...n,mcpServerIds:r&&r.length>0?r:n.mcpServerIds})},[e,u]),(0,Q.useEffect)(()=>{if(f){let e=f,t=o?.default_agentic_config?.[e],n=gr(e,t);u.setFieldsValue({...n,mcpServerIds:a?.mcp_server_ids&&a.mcp_server_ids.length>0?a.mcp_server_ids:n.mcpServerIds,...e!==`codex`&&{codexSandboxMode:void 0,codexApprovalPolicy:void 0,codexNetworkAccess:void 0}})}},[f,u,o,a?.mcp_server_ids]),(0,$.jsx)(ye,{title:`Create New Session`,open:e,onOk:()=>{u.validateFields().then(()=>{let e=u.getFieldsValue(!0);h(!0);let t=o?.default_agentic_config?.[f],r=a?.mcp_server_ids,s=r&&r.length>0?r:t?.mcpServerIds,c=e.permissionMode??t?.permissionMode??Qe(f),l={branch_id:i,agent:f,title:e.title,initialPrompt:e.initialPrompt,modelConfig:e.modelConfig??t?.modelConfig,effort:e.effort??t?.modelConfig?.effort,mcpServerIds:e.mcpServerIds??s,permissionMode:c,envVarNames:g.length>0?g:void 0,attachmentFiles:y.length>0?y.map(e=>e.file):void 0};if(f===`codex`){let n=et(c);l.codexSandboxMode=e.codexSandboxMode??t?.codexSandboxMode??n.sandboxMode,l.codexApprovalPolicy=e.codexApprovalPolicy??t?.codexApprovalPolicy??n.approvalPolicy,l.codexNetworkAccess=e.codexNetworkAccess??t?.codexNetworkAccess??n.networkAccess}n(l)})},onCancel:()=>{u.resetFields(),S(),t()},okText:`Create Session`,cancelText:`Cancel`,width:700,maskClosable:!1,okButtonProps:{disabled:!C||m,loading:m},children:(0,$.jsxs)(W,{form:u,layout:`vertical`,style:{marginTop:16},preserve:!1,children:[a&&(0,$.jsx)(be,{title:(0,$.jsxs)($.Fragment,{children:[`Creating session in branch: `,(0,$.jsx)(`strong`,{children:a.name}),` (`,a.ref,`)`]}),type:`info`,showIcon:!0,style:{marginBottom:16}}),(0,$.jsx)(W.Item,{label:`Select Coding Agent`,required:!0,children:(0,$.jsx)(Yt,{agents:r,selectedAgentId:f,onSelect:p,columns:2,showHelperText:!0,showComparisonLink:!0})}),(0,$.jsx)(W.Item,{name:`title`,label:`Title (optional)`,children:(0,$.jsx)(he,{placeholder:`e.g., Add authentication system`})}),(0,$.jsx)(W.Item,{name:`initialPrompt`,label:`Initial Prompt (optional)`,help:`First message to send to the agent when session starts`,children:(0,$.jsx)(qr,{value:u.getFieldValue(`initialPrompt`)||``,onChange:e=>u.setFieldValue(`initialPrompt`,e),placeholder:`e.g., Build a JWT authentication system with secure password storage... (type @ for autocomplete, or ${Ia} to paste a screenshot)`,autoSize:{minRows:4,maxRows:8},client:s,sessionId:null,userById:l,enableKnowledgeMentions:!0,kbLinkTarget:`absolute-route`,onFilesDrop:b,filesDropDisabled:m})}),y.length>0&&(0,$.jsx)(`div`,{style:{padding:`8px 0`},children:(0,$.jsx)(Pa,{attachments:y,onRemove:x,disabled:m})}),(0,$.jsx)(ht,{mcpServerById:c}),(0,$.jsx)(P,{ghost:!0,destroyOnHidden:!1,expandIcon:({isActive:e})=>(0,$.jsx)(Le,{rotate:e?180:0}),items:[{key:`agentic-tool-config`,label:(0,$.jsx)(_.Text,{strong:!0,children:`Agentic Tool Configuration`}),children:(0,$.jsx)(Qt,{agenticTool:f||`claude-code`,mcpServerById:c,showHelpText:!0,hideMcpServers:!0,client:s})},...o&&s?[{key:`env-vars`,label:(0,$.jsx)(_.Text,{strong:!0,children:`Environment Variables`}),children:(0,$.jsx)(Or,{ownerUserId:o.user_id,client:s,value:g,onChange:v})}]:[]],style:{marginTop:16}})]})})},Ra=`agor-search`,za=`agor-search-current`;function Ba(){if(typeof window>`u`)return null;let e=window;return typeof e.Highlight!=`function`||!e.CSS?.highlights?null:{create:e.Highlight,registry:e.CSS.highlights}}function Va(e,t){if(!e||!t.trim())return[];let n=new RegExp(St(t),`gi`),r=[],i=n.exec(e);for(;i!==null;)r.push([i.index,i.index+i[0].length]),i.index===n.lastIndex&&(n.lastIndex+=1),i=n.exec(e);return r}function Ha(e,t){if(!t.trim())return[];let n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode(e){let t=e.parentElement;if(!t)return NodeFilter.FILTER_REJECT;let n=t.tagName;return n===`SCRIPT`||n===`STYLE`?NodeFilter.FILTER_REJECT:e.nodeValue?.trim()?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),r=[],i=n.nextNode();for(;i;){let e=i.nodeValue??``;for(let[n,a]of Va(e,t)){let e=document.createRange();e.setStart(i,n),e.setEnd(i,a),r.push(e)}i=n.nextNode()}return r}var Ua=`[data-task-block], [data-conversation-block]`,Wa=`data-conversation-block`;function Ga(e){for(let t of e){if(t.type===`attributes`){if(t.attributeName===Wa)return!0;continue}if(t.type===`childList`)for(let e of[t.addedNodes,t.removedNodes])for(let t of e){if(t.nodeType!==Node.ELEMENT_NODE)continue;let e=t;if(e.matches(Ua)||e.querySelector(Ua))return!0}}return!1}function Ka(e){let t=e.startContainer;(t.nodeType===Node.ELEMENT_NODE?t:t.parentElement)?.scrollIntoView({block:`center`,behavior:`smooth`})}function qa(e,t){let n=t??{highlight:`#faad14`,current:`#faad14`,currentText:`rgba(0,0,0,0.88)`},[r,i]=(0,Q.useState)(!1),[a,o]=(0,Q.useState)(``),[s,c]=(0,Q.useState)(0),[l,u]=(0,Q.useState)(0),[d,f]=(0,Q.useState)(!1),p=(0,Q.useRef)(null),m=(0,Q.useRef)(null),h=(0,Q.useRef)([]),g=(0,Q.useRef)(0),_=(0,Q.useRef)(a);_.current=a;let v=(0,Q.useRef)(null),y=(0,Q.useCallback)((e,t)=>{let n=p.current;if(!n)return;if(e.length===0){n.registry.delete(Ra),n.registry.delete(za);return}n.registry.set(Ra,new n.create(...e));let r=e[t];if(r){let e=new n.create(r);e.priority=1,n.registry.set(za,e)}else n.registry.delete(za)},[]),b=(0,Q.useCallback)(()=>{let e=p.current;e&&(e.registry.delete(Ra),e.registry.delete(za)),h.current=[]},[]),x=(0,Q.useCallback)(t=>{let n=e.current;if(!n||!p.current){c(0),f(!1);return}let r=Ha(n,_.current);h.current=r;let i=r.length===0?0:Math.min(g.current,r.length-1);g.current=i,y(r,i),c(r.length),u(i),f(!1),t&&r[i]&&Ka(r[i])},[e,y]),S=(0,Q.useCallback)(e=>{let t=h.current;t.length&&(g.current=e,y(t,e),u(e),t[e]&&Ka(t[e]))},[y]),C=(0,Q.useCallback)(()=>{g.current=0,i(!0),o(``),c(0),u(0)},[]),w=(0,Q.useCallback)(()=>{v.current&&clearTimeout(v.current),b(),g.current=0,i(!1),o(``),c(0),u(0),f(!1)},[b]);return(0,Q.useEffect)(()=>{let e=Ba();if(p.current=e,!e)return;let t=document.createElement(`style`);return m.current=t,document.head.appendChild(t),()=>{t.remove(),m.current=null,e.registry.delete(Ra),e.registry.delete(za)}},[]),(0,Q.useEffect)(()=>{let e=m.current;e&&(e.textContent=`::highlight(${Ra}){background-color:color-mix(in srgb, ${n.highlight} 40%, transparent);}::highlight(${za}){background-color:${n.current};color:${n.currentText};}`)},[n.highlight,n.current,n.currentText]),(0,Q.useEffect)(()=>{if(!r)return;let t=e.current;if(!t||!p.current)return;g.current=0;let n=e=>{v.current&&clearTimeout(v.current),f(!0),v.current=setTimeout(()=>x(e),160)};n(!0);let i=new MutationObserver(e=>{Ga(e)&&n(!1)});return i.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[Wa]}),()=>{i.disconnect(),v.current&&clearTimeout(v.current)}},[a,r,e,x]),{searchOpen:r,query:a,setQuery:o,totalMatches:s,currentMatch:l,searchPending:d,openSearch:C,closeSearch:w,goNext:(0,Q.useCallback)(()=>{let e=h.current.length;e&&S((g.current+1)%e)},[S]),goPrev:(0,Q.useCallback)(()=>{let e=h.current.length;e&&S((g.current-1+e)%e)},[S])}}function Ja(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:Ya}=he,{Text:Xa}=_,Za=`Note: the user uploaded file(s): {filepath}
|
|
3
|
+
|
|
4
|
+
Please review and use them as context for this task.`,Qa=({sessionId:e,daemonUrl:t,open:r,onClose:i,onUploadComplete:a,onInsertMention:o,initialFiles:s})=>{let{showSuccess:c,showWarning:l,showError:d}=zt(),[f,p]=(0,Q.useState)([]),[m,h]=(0,Q.useState)(!0),[g,_]=(0,Q.useState)(Za),[v,y]=(0,Q.useState)(!1),b=(0,Q.useRef)([]);b.current=f;let x=(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}},[]),S=(0,Q.useCallback)(e=>{e.thumbUrl?.startsWith(`blob:`)&&URL.revokeObjectURL(e.thumbUrl)},[]),C=(0,Q.useCallback)(()=>{b.current.forEach(S),p([])},[S]);return(0,Q.useEffect)(()=>()=>b.current.forEach(S),[S]),(0,Q.useEffect)(()=>{s&&s.length>0&&r&&(b.current.forEach(S),p(s.map(x)))},[s,r,x,S]),(0,$.jsx)(ye,{title:`Upload File(s)`,open:r,onCancel:()=>{C(),h(!0),_(Za),i()},onOk:async()=>{if(f.length===0){l(`Please select at least one file`);return}y(!0);try{let n=await It({sessionId:e,daemonUrl:t,files:f.flatMap(e=>e.originFileObj?[e.originFileObj]:(console.warn(`[FileUpload] File missing originFileObj:`,e.name),[])),notifyAgent:m,message:g});if(n.files.length===1?c(`Uploaded as: ${n.files[0].filename}`):c(`Uploaded ${n.files.length} files successfully`),a&&a(n.files),!m&&o&&n.files.length>0){let e=n.files[0];o(e.path.includes(` `)?`"${e.path}"`:e.path)}C(),h(!0),_(Za),i()}catch(e){console.error(`Upload error:`,e),d(e instanceof Error?e.message:`Failed to upload files`)}finally{y(!1)}},confirmLoading:v,okText:`Upload`,cancelText:`Cancel`,width:600,children:(0,$.jsxs)(B,{orientation:`vertical`,style:{width:`100%`},size:`large`,children:[(0,$.jsx)(k,{multiple:!0,listType:`picture`,fileList:f,beforeUpload:e=>(p(t=>[...t,x(e)]),!1),onRemove:e=>{S(e),p(t=>t.filter(t=>t.uid!==e.uid))},children:(0,$.jsx)(u,{icon:(0,$.jsx)(ue,{}),children:`Select Files`})}),(0,$.jsxs)(Xa,{type:`secondary`,style:{fontSize:`12px`},children:[`Files are uploaded to `,(0,$.jsx)(Xa,{code:!0,children:`~/.agor/uploads/`}),`. When notified, the agent receives the full file path and can copy or move it into the branch if needed.`]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(n,{checked:m,onChange:e=>h(e.target.checked),children:`Notify the agent about this file`}),m&&(0,$.jsxs)(`div`,{style:{marginTop:8},children:[(0,$.jsx)(Ya,{value:g,onChange:e=>_(e.target.value),placeholder:`Message to agent (use {filepath} for file path)`,autoSize:{minRows:2,maxRows:4}}),(0,$.jsxs)(Xa,{type:`secondary`,style:{fontSize:`12px`,marginTop:4},children:[`Use `,`{filepath}`,` to reference the uploaded file path`]})]})]})]})})};(0,Q.forwardRef)(({onClick:e,disabled:t,size:n=`middle`,title:r=`Upload files`},i)=>(0,$.jsx)(u,{ref:i,icon:(0,$.jsx)(d,{}),onClick:e,disabled:t,size:n,title:r}));function $a(e){try{let{hostname:n}=new URL(e);if(n===`github.com`||n.endsWith(`.github.com`))return(0,$.jsx)(t,{})}catch{}return(0,$.jsx)(N,{})}var eo=({items:e})=>{let{token:t}=a.useToken();return e.length===0?null:(0,$.jsx)(_e,{menu:{items:e.map(e=>({key:e.key,icon:$a(e.url),label:(0,$.jsx)(R,{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)(R,{title:`Links`,children:(0,$.jsx)(qe,{count:e.length,color:t.colorPrimary,size:`small`,offset:[-4,4],children:(0,$.jsx)(u,{type:`text`,icon:(0,$.jsx)(ne,{style:{color:t.colorPrimary}})})})})})};function to(e){return Array.from(e.types).includes(`Files`)}var no=({children:e,disabled:t=!1,onDragActiveChange:n,onFilesDrop:r})=>{let{token:i}=a.useToken(),[o,s]=(0,Q.useState)(!1),c=(0,Q.useCallback)(e=>{to(e.dataTransfer)&&(e.preventDefault(),s(!t))},[t]),l=(0,Q.useCallback)(e=>{to(e.dataTransfer)&&(e.preventDefault(),s(!t))},[t]),u=(0,Q.useCallback)(e=>{let t=e.relatedTarget;t instanceof Node&&e.currentTarget.contains(t)||s(!1)},[]),d=(0,Q.useCallback)(()=>{s(!1)},[]),f=(0,Q.useCallback)(e=>{if(s(!1),e.defaultPrevented)return;let n=Array.from(e.dataTransfer.files);n.length!==0&&(e.preventDefault(),e.stopPropagation(),!t&&r(n))},[t,r]);return(0,Q.useEffect)(()=>{if(!o)return;let e=()=>s(!1);return window.addEventListener(`drop`,e),window.addEventListener(`dragend`,e),window.addEventListener(`blur`,e),()=>{window.removeEventListener(`drop`,e),window.removeEventListener(`dragend`,e),window.removeEventListener(`blur`,e)}},[o]),(0,Q.useEffect)(()=>{n?.(o)},[o,n]),(0,$.jsxs)(`section`,{"aria-label":`Composer attachments and input drop zone`,"aria-disabled":t,onDragEnter:c,onDragOver:l,onDragLeave:u,onDropCapture:d,onDrop:f,style:{position:`relative`,display:`flex`,flexDirection:`column`,gap:i.sizeUnit*2,borderRadius:i.borderRadiusLG},children:[e,o&&(0,$.jsx)(`div`,{style:{position:`absolute`,inset:0,backgroundColor:`${i.colorBgContainer}CC`,border:`1px solid ${i.colorPrimary}`,borderRadius:i.borderRadius,boxShadow:`0 0 0 ${i.controlOutlineWidth}px ${i.controlOutline}`,display:`flex`,alignItems:`center`,justifyContent:`center`,zIndex:10,pointerEvents:`none`},children:(0,$.jsx)(_.Text,{strong:!0,style:{color:i.colorPrimary},children:`Drop files here to attach`})})]})},ro={showToolsChip:!0,showStatsChip:!0,showForkInBar:!0,showUploadInBar:!0,pinnedItems:[`fork`,`upload`],pinnedChips:[`timer`,`tools`,`model`,`tokens`,`context`]},io=`agor-footer-prefs`;function ao(){let[e,t]=Q.useState(()=>{try{let e=JSON.parse(localStorage.getItem(io)??`null`);if(e&&typeof e==`object`)return{...ro,...e,pinnedItems:Array.isArray(e.pinnedItems)?e.pinnedItems:ro.pinnedItems,pinnedChips:Array.isArray(e.pinnedChips)?e.pinnedChips:ro.pinnedChips}}catch{}return ro});return[e,Q.useCallback(e=>{t(t=>{let n={...t,...e};try{localStorage.setItem(io,JSON.stringify(n))}catch{}return n})},[])]}function oo(e,t,n){let r=0,i=0;for(let a of e){let e=t.get(a);if(!e){r+=1;continue}Ja(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 so=({client:e,sessionId:t,sessionMcpServerIds:n,mcpServerById:i,userAuthenticatedMcpServerIds:o,onOpenSessionSettings:s})=>{let{token:c}=a.useToken(),{showSuccess:l,showError:d}=zt(),[f,p]=Q.useState(!1),[m,g]=Q.useState(!1),v=Q.useMemo(()=>oo(n,i,o),[n,i,o]),y=Q.useMemo(()=>n.map(e=>i.get(e)).filter(e=>!!e),[n,i]);return(0,$.jsx)(h,{open:f,onOpenChange:p,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)(B,{direction:`vertical`,size:10,style:{width:`100%`},children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(_.Text,{strong:!0,children:`Session MCP servers`}),(0,$.jsx)(_.Paragraph,{type:`secondary`,style:{margin:`${c.sizeUnit}px 0 0`},children:`Attach tools/connectors that the agent can use in this conversation.`})]}),y.length>0&&(0,$.jsx)(B,{size:6,wrap:!0,children:y.map(t=>(0,$.jsx)(rn,{server:t,needsAuth:Ja(t,o),client:e},t.mcp_server_id))}),(0,$.jsx)(Rn,{mcpServers:Array.from(i.values()),placeholder:`Attach MCP servers…`,value:n,onChange:async r=>{if(e){g(!0);try{await or(e,t,n,r),l(`Session MCP servers updated`)}catch(e){d(`Failed to update MCP servers: ${e instanceof Error?e.message:String(e)}`)}finally{g(!1)}}},loading:m,disabled:!e,style:{width:`100%`}}),(0,$.jsx)(j,{style:{margin:`${c.sizeUnit}px 0`}}),(0,$.jsx)(u,{block:!0,icon:(0,$.jsx)(H,{}),onClick:()=>{p(!1),s?.(t)},children:`Open session settings`})]})}),children:(0,$.jsxs)(En,{icon:(0,$.jsx)(r,{}),color:`default`,title:`${v.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)(ie,{color:v.tone===`error`?`error`:v.tone===`warning`?`warning`:void 0,style:{marginInlineStart:c.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:v.attachedCount})]})})},co=Q.memo(({session:e,footerTimerTask:t,tokenBreakdown:n,latestContextWindow:r,footerGradient:i,sessionMcpServerIds:o,unauthedMcpServers:s,mcpServerById:c,userAuthenticatedMcpServerIds:f,isRunning:p,isStopping:v,stopRequestInFlight:y,hasInput:b,composerAttachmentsPresent:x=!1,composerAttachmentUploading:C=!1,connectionDisabled:w,toolCaps:T,queuedTasks:E,effortLevel:O,permissionMode:k,codexSandboxMode:M,codexApprovalPolicy:N,client:P,modelLabel:F,modelConfig:I,onModelConfigChange:L,onOpenSessionSettings:ee,onSendPrompt:te,onStop:ne,onFork:re,onBtwSend:ie,onSpawnOpen:ae,onAttachFiles:oe,onUploadOpen:se,onEffortChange:z,onPermissionModeChange:ce,onCodexPermissionChange:le,promptInputSlot:de})=>{let{token:V}=a.useToken(),[fe,H]=Q.useState(!1),[me,he]=ao(),U=me.pinnedItems,ge=e=>{he({pinnedItems:U.includes(e)?U.filter(t=>t!==e):[...U,e]})},W=me.pinnedChips,_e=e=>{he({pinnedChips:W.includes(e)?W.filter(t=>t!==e):[...W,e]})},ve=e.model_config?.model?tr(e.model_config.provider?`${e.model_config.provider}/${e.model_config.model}`:e.model_config.model):null,ye=n.total>=1e3?`${Math.round(n.total/1e3)}k`:n.total>0?String(n.total):null,be=Q.useMemo(()=>{if(!r)return 0;let e=r.taskMetadata?.normalized_sdk_response?.contextUsageSnapshot;return gn(r.used,r.limit,e)/100},[r]),xe=be>.8,Se=`Attachments are only supported for normal Send for now`,we=`Uploading files...`,De=w||C,Oe=De,ke=w||x,Ae=w||!b||x,Me=w||p||x,Fe=w||C||!b,Le={padding:`6px 12px 3px`,fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.4px`,color:V.colorTextTertiary,userSelect:`none`},G={display:`flex`,alignItems:`center`,gap:8,padding:`0 6px 0 12px`,height:32},Re=(0,$.jsxs)(`div`,{style:{width:260,paddingTop:6,paddingBottom:6},children:[(0,$.jsx)(`div`,{style:Le,children:`Settings`}),(0,$.jsxs)(`div`,{style:{...G,height:`auto`,paddingTop:6,paddingBottom:6,alignItems:`flex-start`,cursor:`default`},children:[(0,$.jsx)(l,{style:{fontSize:14,color:V.colorTextSecondary,flexShrink:0,marginTop:7}}),(0,$.jsx)(_.Text,{style:{fontSize:12,color:V.colorTextSecondary,flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0,marginTop:7},children:`Model`}),(0,$.jsx)(`div`,{style:{maxWidth:160,flexShrink:0},children:(0,$.jsx)(Et,{value:I,onChange:L,agentic_tool:e.agentic_tool,client:P,compact:!0})})]}),e.agentic_tool===`claude-code`&&(0,$.jsxs)(`div`,{style:{...G,cursor:`default`},children:[(0,$.jsx)(D,{style:{fontSize:14,color:V.colorTextSecondary,flexShrink:0}}),(0,$.jsx)(_.Text,{style:{fontSize:12,flex:1,color:V.colorTextSecondary,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0},children:`Effort`}),(0,$.jsx)(Ct,{value:O,onChange:z,size:`small`,compact:!0,plain:!0})]}),(0,$.jsxs)(`div`,{style:{...G,cursor:`default`},children:[(0,$.jsx)(m,{style:{fontSize:14,color:V.colorTextSecondary,flexShrink:0}}),(0,$.jsx)(_.Text,{style:{fontSize:12,flex:1,color:V.colorTextSecondary,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0},children:`Permissions`}),(0,$.jsx)(tn,{value:k,onChange:ce,agentic_tool:e.agentic_tool,codexSandboxMode:M,codexApprovalPolicy:N,onCodexChange:le,compact:!0,iconOnly:!1,plain:!0,size:`small`})]}),(0,$.jsx)(j,{style:{margin:`4px 0`}}),(0,$.jsx)(`div`,{style:Le,children:`Actions`}),(0,$.jsxs)(`div`,{role:`button`,tabIndex:De?-1:0,style:{...G,opacity:De?.4:1,cursor:De?`not-allowed`:`pointer`},onClick:De?void 0:()=>{H(!1),oe()},onKeyDown:De?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),H(!1),oe())},children:[(0,$.jsx)(R,{title:C?we:w?`Disconnected from daemon`:`Attach files to prompt`,placement:`left`,children:(0,$.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:8,flex:1,minWidth:0,overflow:`hidden`},children:[(0,$.jsx)(d,{style:{fontSize:14,color:V.colorTextSecondary,flexShrink:0}}),(0,$.jsx)(_.Text,{style:{fontSize:13,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:`Attach files`})]})}),(0,$.jsx)(R,{title:U.includes(`upload`)?`Unpin from bar`:`Pin to bar`,placement:`right`,children:(0,$.jsx)(`button`,{type:`button`,"aria-label":U.includes(`upload`)?`Unpin Upload`:`Pin Upload`,style:{background:`none`,border:`none`,cursor:`pointer`,color:U.includes(`upload`)?V.colorPrimary:V.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:V.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:e=>{e.stopPropagation(),ge(`upload`)},children:U.includes(`upload`)?(0,$.jsx)(Ce,{style:{fontSize:12}}):(0,$.jsx)(A,{style:{fontSize:12}})})})]}),(0,$.jsxs)(`div`,{role:`button`,tabIndex:Oe?-1:0,style:{...G,opacity:Oe?.4:1,cursor:Oe?`not-allowed`:`pointer`},onClick:Oe?void 0:()=>{H(!1),se()},onKeyDown:Oe?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),H(!1),se())},children:[(0,$.jsx)(R,{title:C?we:w?`Disconnected from daemon`:`Upload files with options`,placement:`left`,children:(0,$.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:8,flex:1,minWidth:0,overflow:`hidden`},children:[(0,$.jsx)(ue,{style:{fontSize:14,color:V.colorTextSecondary,flexShrink:0}}),(0,$.jsx)(_.Text,{style:{fontSize:13,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:`Advanced upload`})]})}),(0,$.jsx)(R,{title:U.includes(`advanced-upload`)?`Unpin from bar`:`Pin to bar`,placement:`right`,children:(0,$.jsx)(`button`,{type:`button`,"aria-label":U.includes(`advanced-upload`)?`Unpin Advanced upload`:`Pin Advanced upload`,style:{background:`none`,border:`none`,cursor:`pointer`,color:U.includes(`advanced-upload`)?V.colorPrimary:V.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:V.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:e=>{e.stopPropagation(),ge(`advanced-upload`)},children:U.includes(`advanced-upload`)?(0,$.jsx)(Ce,{style:{fontSize:12}}):(0,$.jsx)(A,{style:{fontSize:12}})})})]}),T?.supportsSessionFork!==!1&&(0,$.jsxs)(`div`,{role:`button`,"aria-disabled":ke,"aria-label":`Fork session`,tabIndex:ke?-1:0,style:{...G,opacity:ke?.4:1,cursor:ke?`not-allowed`:`pointer`},onClick:ke?void 0:()=>{H(!1),re()},onKeyDown:ke?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),H(!1),re())},children:[(0,$.jsx)(R,{title:w?`Disconnected from daemon`:x?Se:`Fork this session`,placement:`left`,children:(0,$.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:8,flex:1,minWidth:0,overflow:`hidden`},children:[(0,$.jsx)(je,{style:{fontSize:14,color:V.colorTextSecondary,flexShrink:0}}),(0,$.jsx)(_.Text,{style:{fontSize:13,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:`Fork session`})]})}),(0,$.jsx)(R,{title:U.includes(`fork`)?`Unpin from bar`:`Pin to bar`,placement:`right`,children:(0,$.jsx)(`button`,{type:`button`,"aria-label":U.includes(`fork`)?`Unpin Fork`:`Pin Fork`,style:{background:`none`,border:`none`,cursor:`pointer`,color:U.includes(`fork`)?V.colorPrimary:V.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:V.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:e=>{e.stopPropagation(),ge(`fork`)},children:U.includes(`fork`)?(0,$.jsx)(Ce,{style:{fontSize:12}}):(0,$.jsx)(A,{style:{fontSize:12}})})})]}),T?.supportsSessionFork!==!1&&(0,$.jsxs)(`div`,{role:`button`,"aria-disabled":Ae,"aria-label":`Ask side question via BTW fork`,tabIndex:Ae?-1:0,style:{...G,opacity:Ae?.4:1,cursor:Ae?`not-allowed`:`pointer`},onClick:Ae?void 0:()=>{H(!1),ie()},onKeyDown:Ae?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),H(!1),ie())},children:[(0,$.jsx)(R,{title:x?Se:w||!b?`Needs input and a live connection`:`Ask a side question via an ephemeral fork`,placement:`left`,children:(0,$.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:8,flex:1,minWidth:0,overflow:`hidden`},children:[(0,$.jsx)(Pe,{style:{fontSize:14,color:V.colorTextSecondary,flexShrink:0}}),(0,$.jsx)(_.Text,{style:{fontSize:13,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:`BTW fork`})]})}),(0,$.jsx)(R,{title:U.includes(`btw-fork`)?`Unpin from bar`:`Pin to bar`,placement:`right`,children:(0,$.jsx)(`button`,{type:`button`,"aria-label":U.includes(`btw-fork`)?`Unpin BTW fork`:`Pin BTW fork`,style:{background:`none`,border:`none`,cursor:`pointer`,color:U.includes(`btw-fork`)?V.colorPrimary:V.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:V.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:e=>{e.stopPropagation(),ge(`btw-fork`)},children:U.includes(`btw-fork`)?(0,$.jsx)(Ce,{style:{fontSize:12}}):(0,$.jsx)(A,{style:{fontSize:12}})})})]}),T?.supportsChildSpawn!==!1&&(0,$.jsxs)(`div`,{role:`button`,"aria-disabled":Me,"aria-label":`Spawn subsession`,tabIndex:Me?-1:0,style:{...G,opacity:Me?.4:1,cursor:Me?`not-allowed`:`pointer`},onClick:Me?void 0:()=>{H(!1),ae()},onKeyDown:Me?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),H(!1),ae())},children:[(0,$.jsx)(R,{title:w?`Disconnected`:x?Se:p?`Session is running`:`Spawn a child subsession`,placement:`left`,children:(0,$.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:8,flex:1,minWidth:0,overflow:`hidden`},children:[(0,$.jsx)(Ue,{style:{fontSize:14,color:V.colorTextSecondary,flexShrink:0}}),(0,$.jsx)(_.Text,{style:{fontSize:13,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:`Spawn subsession`})]})}),(0,$.jsx)(R,{title:U.includes(`spawn`)?`Unpin from bar`:`Pin to bar`,placement:`right`,children:(0,$.jsx)(`button`,{type:`button`,"aria-label":U.includes(`spawn`)?`Unpin Spawn`:`Pin Spawn`,style:{background:`none`,border:`none`,cursor:`pointer`,color:U.includes(`spawn`)?V.colorPrimary:V.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:V.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:e=>{e.stopPropagation(),ge(`spawn`)},children:U.includes(`spawn`)?(0,$.jsx)(Ce,{style:{fontSize:12}}):(0,$.jsx)(A,{style:{fontSize:12}})})})]}),(0,$.jsx)(j,{style:{margin:`4px 0`}}),(0,$.jsx)(`div`,{style:Le,children:`Info bar`}),t&&(0,$.jsxs)(`div`,{style:{...G,cursor:`default`},children:[(0,$.jsx)(pe,{style:{fontSize:14,color:V.colorTextSecondary,flexShrink:0}}),(0,$.jsx)(_.Text,{style:{fontSize:13,flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0},children:`Timer`}),(0,$.jsx)(R,{title:W.includes(`timer`)?`Hide from info bar`:`Show in info bar`,placement:`right`,children:(0,$.jsx)(`button`,{type:`button`,"aria-label":W.includes(`timer`)?`Hide timer`:`Show timer`,style:{background:`none`,border:`none`,cursor:`pointer`,color:W.includes(`timer`)?V.colorPrimary:V.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:V.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:()=>_e(`timer`),children:W.includes(`timer`)?(0,$.jsx)(Ce,{style:{fontSize:12}}):(0,$.jsx)(A,{style:{fontSize:12}})})})]}),(0,$.jsxs)(`div`,{style:{...G,cursor:`default`},children:[(0,$.jsx)(Te,{style:{fontSize:14,color:V.colorTextSecondary,flexShrink:0}}),(0,$.jsx)(_.Text,{style:{fontSize:13,flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0},children:`Tools`}),(0,$.jsx)(R,{title:W.includes(`tools`)?`Hide from info bar`:`Show in info bar`,placement:`right`,children:(0,$.jsx)(`button`,{type:`button`,"aria-label":W.includes(`tools`)?`Hide tools`:`Show tools`,style:{background:`none`,border:`none`,cursor:`pointer`,color:W.includes(`tools`)?V.colorPrimary:V.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:V.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:()=>_e(`tools`),children:W.includes(`tools`)?(0,$.jsx)(Ce,{style:{fontSize:12}}):(0,$.jsx)(A,{style:{fontSize:12}})})})]}),ve&&(0,$.jsxs)(`div`,{style:{...G,cursor:`default`},children:[(0,$.jsx)(l,{style:{fontSize:14,color:V.colorTextSecondary,flexShrink:0}}),(0,$.jsx)(_.Text,{style:{fontSize:13,flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0},children:`Model`}),(0,$.jsx)(R,{title:W.includes(`model`)?`Hide from info bar`:`Show in info bar`,placement:`right`,children:(0,$.jsx)(`button`,{type:`button`,"aria-label":W.includes(`model`)?`Hide model`:`Show model`,style:{background:`none`,border:`none`,cursor:`pointer`,color:W.includes(`model`)?V.colorPrimary:V.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:V.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:()=>_e(`model`),children:W.includes(`model`)?(0,$.jsx)(Ce,{style:{fontSize:12}}):(0,$.jsx)(A,{style:{fontSize:12}})})})]}),ye!==null&&(0,$.jsxs)(`div`,{style:{...G,cursor:`default`},children:[(0,$.jsx)(g,{style:{fontSize:14,color:V.colorTextSecondary,flexShrink:0}}),(0,$.jsx)(_.Text,{style:{fontSize:13,flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0},children:`Tokens`}),(0,$.jsx)(R,{title:W.includes(`tokens`)?`Hide from info bar`:`Show in info bar`,placement:`right`,children:(0,$.jsx)(`button`,{type:`button`,"aria-label":W.includes(`tokens`)?`Hide tokens`:`Show tokens`,style:{background:`none`,border:`none`,cursor:`pointer`,color:W.includes(`tokens`)?V.colorPrimary:V.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:V.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:()=>_e(`tokens`),children:W.includes(`tokens`)?(0,$.jsx)(Ce,{style:{fontSize:12}}):(0,$.jsx)(A,{style:{fontSize:12}})})})]}),r&&r.limit>0&&(0,$.jsxs)(`div`,{style:{...G,cursor:`default`},children:[(0,$.jsx)(D,{style:{fontSize:14,color:V.colorTextSecondary,flexShrink:0}}),(0,$.jsx)(_.Text,{style:{fontSize:13,flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0},children:`Context %`}),(0,$.jsx)(R,{title:W.includes(`context`)?`Hide from info bar`:`Show in info bar`,placement:`right`,children:(0,$.jsx)(`button`,{type:`button`,"aria-label":W.includes(`context`)?`Hide context`:`Show context`,style:{background:`none`,border:`none`,cursor:`pointer`,color:W.includes(`context`)?V.colorPrimary:V.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:V.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:()=>_e(`context`),children:W.includes(`context`)?(0,$.jsx)(Ce,{style:{fontSize:12}}):(0,$.jsx)(A,{style:{fontSize:12}})})})]}),(0,$.jsx)(j,{style:{margin:`4px 0`}}),(0,$.jsx)(h,{trigger:`click`,placement:`topLeft`,title:(0,$.jsxs)(`span`,{children:[(0,$.jsx)(Ie,{style:{marginRight:8}}),`Session IDs`]}),content:(0,$.jsx)(`div`,{style:{width:400,maxWidth:`90vw`},children:(0,$.jsx)(qn,{session:e})}),children:(0,$.jsxs)(`div`,{role:`button`,tabIndex:0,style:{...G,cursor:`pointer`},onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),e.currentTarget.click())},children:[(0,$.jsx)(Ie,{style:{fontSize:14,color:V.colorTextSecondary,flexShrink:0}}),(0,$.jsx)(_.Text,{style:{fontSize:13,flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0},children:`Session IDs`}),(0,$.jsx)(R,{title:W.includes(`session-ids`)?`Hide from info bar`:`Show in info bar`,placement:`right`,children:(0,$.jsx)(`button`,{type:`button`,"aria-label":W.includes(`session-ids`)?`Unpin Session IDs`:`Pin Session IDs`,style:{background:`none`,border:`none`,cursor:`pointer`,color:W.includes(`session-ids`)?V.colorPrimary:V.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:V.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:e=>{e.stopPropagation(),_e(`session-ids`)},children:W.includes(`session-ids`)?(0,$.jsx)(Ce,{style:{fontSize:12}}):(0,$.jsx)(A,{style:{fontSize:12}})})})]})})]}),ze=y?`Sending stop request...`:v?`Stopping... (Click again to retry if stuck)`:`Stop Execution`,Be=p||y,Ve=p&&b?`Queue`:`Send`,K=w?`Disconnected from daemon`:C?we:p?`Queue Message`:`Send Prompt`;return(0,$.jsxs)(`div`,{style:{position:`relative`,flexShrink:0,background:V.colorBgContainer,borderTop:`1px solid ${V.colorBorder}`,padding:`${V.sizeUnit*2}px ${V.sizeUnit*6}px ${V.sizeUnit*3}px`,marginLeft:-V.sizeUnit*6,marginRight:-V.sizeUnit*6},children:[i&&(0,$.jsx)(`div`,{style:{position:`absolute`,top:0,left:0,right:0,bottom:0,background:i,pointerEvents:`none`,zIndex:0}}),(0,$.jsxs)(`div`,{style:{position:`relative`,zIndex:1},children:[(W.includes(`tools`)||t&&W.includes(`timer`)||ve&&W.includes(`model`)||ye!==null&&W.includes(`tokens`)||r&&r.limit>0&&W.includes(`context`)||W.includes(`session-ids`))&&(0,$.jsxs)(`div`,{style:{display:`flex`,gap:V.sizeUnit,alignItems:`center`,marginBottom:V.sizeUnit*2,flexWrap:`wrap`},children:[t&&W.includes(`timer`)&&(0,$.jsx)(`div`,{style:{display:`inline-flex`,alignItems:`center`,height:22},"data-testid":`timer-chip`,children:(0,$.jsx)(on,{status:t.status,startedAt:t.message_range?.start_timestamp||t.created_at,endedAt:t.message_range?.end_timestamp||t.completed_at,durationMs:t.duration_ms,lastExecutorHeartbeatAt:t.last_executor_heartbeat_at})}),W.includes(`tools`)&&(0,$.jsx)(so,{client:P,sessionId:e.session_id,sessionMcpServerIds:o,mcpServerById:c,userAuthenticatedMcpServerIds:f,onOpenSessionSettings:ee}),ve&&W.includes(`model`)&&(0,$.jsx)(h,{trigger:`click`,placement:`topLeft`,title:`Model`,overlayStyle:{maxWidth:`none`},overlayInnerStyle:{padding:8},content:(0,$.jsx)(`div`,{style:{width:420},children:(0,$.jsx)(Et,{value:I,onChange:L,agentic_tool:e.agentic_tool,client:P})}),children:(0,$.jsx)(En,{icon:(0,$.jsx)(l,{}),color:`default`,style:{cursor:`pointer`,height:22,display:`inline-flex`,alignItems:`center`,maxWidth:180},"data-testid":`model-chip`,children:(0,$.jsx)(`span`,{style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:ve})})}),ye!==null&&W.includes(`tokens`)&&(0,$.jsx)(R,{title:n.total>0?(0,$.jsxs)(`div`,{style:{fontSize:12},children:[(0,$.jsxs)(`div`,{children:[`Total: `,n.total.toLocaleString()]}),n.input>0&&(0,$.jsxs)(`div`,{children:[`Input: `,n.input.toLocaleString()]}),n.output>0&&(0,$.jsxs)(`div`,{children:[`Output: `,n.output.toLocaleString()]}),n.cacheRead>0&&(0,$.jsxs)(`div`,{children:[`Cache read: `,n.cacheRead.toLocaleString()]}),n.cost>0&&(0,$.jsxs)(`div`,{children:[`Est. cost: $`,n.cost.toFixed(4)]})]}):void 0,placement:`top`,children:(0,$.jsxs)(En,{color:`default`,style:{cursor:`default`,height:22,display:`inline-flex`,alignItems:`center`},"data-testid":`tokens-chip`,children:[ye,` tokens`]})}),r&&r.limit>0&&W.includes(`context`)&&(0,$.jsxs)(En,{icon:(0,$.jsx)(D,{style:{color:xe?V.colorWarning:void 0}}),color:xe?`warning`:`default`,style:{cursor:`default`,height:22,display:`inline-flex`,alignItems:`center`},"data-testid":`context-chip`,"data-warning":xe?`true`:void 0,children:[Math.round(be*100),`%`]}),W.includes(`session-ids`)&&(0,$.jsx)(h,{trigger:`click`,placement:`topLeft`,title:(0,$.jsxs)(`span`,{children:[(0,$.jsx)(Ie,{style:{marginRight:8}}),`Session IDs`]}),content:(0,$.jsx)(`div`,{style:{width:400,maxWidth:`90vw`},children:(0,$.jsx)(qn,{session:e})}),children:(0,$.jsx)(En,{icon:(0,$.jsx)(Ie,{}),color:`default`,style:{cursor:`pointer`,height:22,display:`inline-flex`,alignItems:`center`},"data-testid":`session-ids-chip`,children:`IDs`})})]}),de,(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:V.sizeUnit,marginTop:V.sizeUnit*2},children:[(0,$.jsxs)(B,{size:4,children:[U.includes(`upload`)&&(0,$.jsx)(R,{title:C?we:w?`Disconnected from daemon`:`Attach Files`,children:(0,$.jsx)(u,{size:`small`,type:`text`,"aria-label":`Attach files`,title:`Attach files`,icon:(0,$.jsx)(d,{}),onClick:oe,disabled:De,"data-testid":`upload-bar-btn`})}),U.includes(`advanced-upload`)&&(0,$.jsx)(R,{title:C?we:w?`Disconnected from daemon`:`Advanced upload`,children:(0,$.jsx)(u,{size:`small`,type:`text`,"aria-label":`Advanced upload`,title:`Advanced upload`,icon:(0,$.jsx)(ue,{}),onClick:se,disabled:Oe})}),U.includes(`fork`)&&T?.supportsSessionFork!==!1&&(0,$.jsx)(R,{title:w?`Disconnected from daemon`:`Fork Session`,children:(0,$.jsx)(u,{size:`small`,type:`text`,"aria-label":`Fork session`,icon:(0,$.jsx)(je,{}),onClick:re,disabled:ke,"data-testid":`fork-bar-btn`})}),U.includes(`btw-fork`)&&T?.supportsSessionFork!==!1&&(0,$.jsx)(R,{title:`BTW fork`,children:(0,$.jsx)(u,{size:`small`,type:`text`,"aria-label":`Ask side question via BTW fork`,icon:(0,$.jsx)(Pe,{}),onClick:ie,disabled:Ae,"data-testid":`btw-fork-bar-btn`})}),U.includes(`spawn`)&&T?.supportsChildSpawn!==!1&&(0,$.jsx)(R,{title:`Spawn subsession`,children:(0,$.jsx)(u,{size:`small`,type:`text`,"aria-label":`Spawn subsession`,icon:(0,$.jsx)(Ue,{}),onClick:ae,disabled:Me})}),(0,$.jsx)(h,{open:fe,onOpenChange:H,trigger:`click`,placement:`topLeft`,content:Re,title:null,children:(0,$.jsx)(R,{title:`More options`,children:(0,$.jsx)(u,{size:`small`,type:`text`,icon:(0,$.jsx)(S,{})})})})]}),(0,$.jsx)(`div`,{style:{flex:1}}),(0,$.jsxs)(B,{size:4,children:[Be&&(0,$.jsx)(R,{title:ze,children:(0,$.jsx)(u,{danger:!0,size:`small`,icon:v&&!y?(0,$.jsx)(Ne,{size:`small`}):(0,$.jsx)(Ee,{}),onClick:ne,disabled:!p||y,children:`Stop`})}),(0,$.jsx)(R,{title:K,children:(0,$.jsx)(qe,{count:E.length>0?E.length:0,size:`small`,offset:[-2,2],style:{boxShadow:`none`,backgroundColor:V.colorTextTertiary,fontSize:10},children:(0,$.jsx)(u,{type:`primary`,size:`small`,icon:(0,$.jsx)(We,{}),onClick:te,disabled:Fe,children:Ve})})})]})]})]})]})});co.displayName=`SessionFooter`;var lo=(0,Q.lazy)(()=>q(()=>import(`./EmbeddedTerminal-NNoyPA81.js`).then(e=>({default:e.EmbeddedTerminal})),__vite__mapDeps([0,1,2,3,4,5]))),uo=e=>(0,$.jsx)(Q.Suspense,{fallback:null,children:(0,$.jsx)(lo,{...e})}),fo=Q.memo(({client:e,session:t,branch:n=null,currentUserId:r,scrollToBottom:o,scrollToTop:s,setScrollToBottom:c,setScrollToTop:l,queuedTasks:d,setQueuedTasks:f,spawnModalOpen:p,setSpawnModalOpen:m,onSpawnModalConfirm:h,inputValueRef:g,isOpen:v,cliViewMode:y=`terminal`,setCliViewMode:b,forceExpandAll:x=!1})=>{let{token:S}=a.useToken(),{showSuccess:w,showError:E}=zt(),[D,O]=Q.useState(!1),k=d.length>0&&t.status===`failed`,A=Q.useCallback(async()=>{if(!(!e||D)){O(!0);try{await e.service(`sessions`).patch(t.session_id,{ready_for_prompt:!0}),w(`Resuming queued prompts`)}catch(e){E(`Failed to resume queue: ${e instanceof Error?e.message:String(e)}`)}finally{O(!1)}}},[e,D,t.session_id,E,w]),M=X(qt),N=X(Vn),P=X(Wt),{onOpenBranch:F,onStartEnvironment:I,onStopEnvironment:L,onNukeEnvironment:ee,onViewLogs:te,onPermissionDecision:ne}=Ur(),re=n&&N.get(n.repo_id)||null,ie=Q.useCallback((e,t)=>{c(()=>e),l(()=>t)},[c,l]);return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{style:{marginBottom:S.sizeUnit,display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:S.sizeUnit*2},children:[n&&(0,$.jsxs)(B,{size:8,wrap:!0,style:{flex:1},children:[n&&re&&(0,$.jsx)(li,{repo:re,branch:n,onOpenBranch:F,onStartEnvironment:I,onStopEnvironment:L,onNukeEnvironment:ee,onViewLogs:te,identityLink:ot(t.session_id)}),n?.issue_url&&(0,$.jsx)(Ln,{issueUrl:n.issue_url,currentRepo:re??void 0}),n?.pull_request_url&&(0,$.jsx)(ar,{prUrl:n.pull_request_url,currentRepo:re??void 0})]}),!n&&(0,$.jsx)(`div`,{style:{flex:1}}),(0,$.jsxs)(B,{size:4,children:[(0,$.jsx)(R,{title:`Scroll to top of conversation`,children:(0,$.jsx)(u,{type:`text`,size:`small`,icon:(0,$.jsx)(i,{}),onClick:()=>s?.(),disabled:!s})}),(0,$.jsx)(R,{title:`Scroll to bottom of conversation`,children:(0,$.jsx)(u,{type:`text`,size:`small`,icon:(0,$.jsx)(G,{}),onClick:()=>o?.(),disabled:!o})})]})]}),t.agentic_tool===`claude-code-cli`&&b?(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-end`,justifyContent:`space-between`,gap:S.sizeUnit*2,marginTop:S.sizeUnit*2},children:[(0,$.jsx)(T,{activeKey:y,onChange:e=>b(e),size:`small`,style:{flex:1,marginBottom:-1},items:[{key:`terminal`,label:(0,$.jsxs)(`span`,{children:[(0,$.jsx)(Ke,{style:{marginRight:6}}),`CLI terminal`]})},{key:`conversation`,label:(0,$.jsxs)(`span`,{children:[(0,$.jsx)(He,{style:{marginRight:6}}),`Agor conversation`]})}]}),y===`terminal`&&e&&(0,$.jsx)(R,{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)(Be,{}),onClick:async()=>{try{await e.service(`sessions/${t.session_id}/restart-cli`).create({}),w(`Restarting claude…`)}catch(e){E(`Failed to restart: ${e instanceof Error?e.message:String(e)}`)}},style:{marginBottom:S.sizeUnit},children:`Restart`})})]}):(0,$.jsx)(j,{style:{margin:`${S.sizeUnit*2}px 0`}}),t.agentic_tool===`claude-code-cli`&&(0,$.jsx)(`div`,{style:{display:y===`terminal`?`flex`:`none`,flex:1,minHeight:0,flexDirection:`column`},children:(0,$.jsx)(uo,{client:e,userId:r,branchId:t.branch_id,focusTabName:`cli-${it(t.session_id)}`,ensureCliSessionId:t.session_id,fill:!0,visible:y===`terminal`})}),(0,$.jsx)(`div`,{style:{display:t.agentic_tool===`claude-code-cli`&&y===`terminal`?`none`:`contents`},children:(0,$.jsx)(Yr,{client:e,sessionId:t.session_id,agentic_tool:t.agentic_tool,sessionModel:t.model_config?.model,userById:M,currentUserId:r,onScrollRef:ie,onPermissionDecision:ne,branchName:n?.name,scheduledFromBranch:t.scheduled_from_branch,scheduledRunAt:t.scheduled_run_at,isActive:v,genealogy:t.genealogy,assistantEmoji:n&&at(n)?rt(n)?.emoji:void 0,forceExpandAll:x})}),d.length>0&&(0,$.jsxs)(`div`,{style:{flexShrink:0,background:S.colorBgElevated,borderTop:`1px solid ${S.colorBorderSecondary}`,borderTopLeftRadius:S.borderRadiusLG,borderTopRightRadius:S.borderRadiusLG,padding:`${S.sizeUnit*3}px ${S.sizeUnit*6}px`,marginLeft:-S.sizeUnit*6+S.sizeUnit*2,marginRight:-S.sizeUnit*6+S.sizeUnit*2,marginTop:S.sizeUnit*2,boxShadow:`0 -2px 8px ${S.colorBgMask}`},children:[(0,$.jsxs)(_.Text,{type:`secondary`,style:{fontSize:S.fontSizeSM,display:`block`,marginBottom:S.sizeUnit*2,fontWeight:500,textTransform:`uppercase`,letterSpacing:`0.5px`},children:[`Queued Tasks (`,d.length,`)`]}),k&&(0,$.jsx)(be,{type:`warning`,showIcon:!0,style:{marginBottom:S.sizeUnit*2},message:`Queue paused by failed session`,description:`Queued prompts are preserved. Resume the queue to run the next prompt without copy/paste.`,action:(0,$.jsx)(u,{size:`small`,type:`primary`,loading:D,disabled:!e,onClick:A,children:`Resume queue`})}),(0,$.jsx)(B,{orientation:`vertical`,size:8,style:{width:`100%`},children:d.map((n,r)=>(0,$.jsxs)(`div`,{style:{background:S.colorBgContainer,padding:`${S.sizeUnit*2}px ${S.sizeUnit*3}px`,borderRadius:S.borderRadius,border:`1px solid ${S.colorBorder}`,display:`flex`,justifyContent:`space-between`,alignItems:`center`,gap:S.sizeUnit*2},children:[(0,$.jsxs)(_.Text,{ellipsis:!0,style:{flex:1},children:[(0,$.jsxs)(`span`,{style:{color:S.colorTextSecondary,marginRight:S.sizeUnit},children:[r+1,`.`]}),n.full_prompt]}),(0,$.jsxs)(B,{size:4,children:[k&&r===0&&(0,$.jsx)(u,{size:`small`,type:`link`,loading:D,disabled:!e,onClick:A,children:`Run next`}),(0,$.jsx)(u,{type:`text`,size:`small`,icon:(0,$.jsx)(C,{}),onClick:async()=>{await dn(n.full_prompt),w(`Message copied to clipboard`)}}),(0,$.jsx)(u,{type:`text`,size:`small`,danger:!0,icon:(0,$.jsx)(Je,{}),onClick:async()=>{if(e)try{f(e=>e.filter(e=>e.task_id!==n.task_id)),await e.service(`tasks`).remove(n.task_id)}catch(n){E(`Failed to remove queued task: ${n instanceof Error?n.message:String(n)}`),f((await e.service(`sessions/${t.session_id}/tasks/queue`).find()).data||[])}}})]})]},n.task_id))})]}),(0,$.jsx)(Br,{open:p,action:`spawn`,session:t,currentUser:r&&M.get(r)||null,mcpServerById:P,initialPrompt:g.current??``,onConfirm:h,onCancel:()=>m(!1),client:e,userById:M})]})}),po=typeof navigator<`u`&&/Mac|iPhone|iPad/i.test(navigator.platform??``)?`Cmd+F`:`Ctrl+F`,mo=Q.forwardRef(({sessionId:e,getDraft:t,saveDraft:n,deleteDraft:r,onHasInputChange:i,inputValueRef:a,onSubmit:o,hasExternalInput:s=!1,placeholder:c,autoSize:l,client:u,userById:d,onFilesDrop:f,filesDropDisabled:p=!1,showFilesDropOverlay:m=!0,suppressEmptyHighlight:h=!1,slashCommands:g,skills:_},v)=>{let[y,b]=Q.useState(()=>t(e)),x=Q.useRef(y),S=Q.useRef(null);x.current=y,a.current=y;let C=Q.useCallback(e=>{x.current=e,a.current=e,b(e)},[a]),w=Q.useRef(!!y.trim());Q.useEffect(()=>{let e=!!y.trim();e!==w.current&&(w.current=e,i(e))},[y,i]),Q.useImperativeHandle(v,()=>({getValue:()=>S.current?.value??x.current,clear:()=>{x.current=``,a.current=``,S.current&&(S.current.value=``),b(``),r(e)},insertText:e=>{b(t=>{let n=t.trim(),r=`${n}${n?` `:``}${e}`;return x.current=r,a.current=r,r})}}),[e,r,a]);let T=Q.useRef(e);Q.useEffect(()=>{T.current!==e&&(n(T.current,x.current),b(t(e)),T.current=e)},[e,n,t]),Q.useEffect(()=>{let t=setTimeout(()=>n(e,y),300);return()=>clearTimeout(t)},[y,e,n]);let E=Q.useRef(n);E.current=n;let D=Q.useRef(e);return D.current=e,Q.useEffect(()=>()=>E.current(D.current,x.current),[]),(0,$.jsx)(qr,{ref:S,value:y,onChange:C,placeholder:c,autoSize:l,onKeyPress:Q.useCallback(e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),(x.current.trim()||s)&&o())},[s,o]),client:u,sessionId:e,userById:d,onFilesDrop:f,filesDropDisabled:p,showFilesDropOverlay:m,suppressEmptyHighlight:h,slashCommands:g,skills:_,enableKnowledgeMentions:!0,kbLinkTarget:`absolute-route`,highlightWhenEmpty:!0})});mo.displayName=`PromptInput`;var ho=[],go=Q.memo(({client:e,session:t,branch:n=null,currentUserId:r,sessionMcpServerIds:i=[],open:o,onClose:s})=>{let{token:c}=a.useToken(),{modal:l}=oe.useApp(),{showSuccess:d,showInfo:f,showError:p}=zt(),m=Mt(),h=Lt(),g=X(qt),v=X(Wt),y=X(Ht),{onSendPrompt:C,onFork:w,onBtwFork:T,onOpenSettings:D,onUpdateSession:O,onOpenTerminal:k}=Ur(),{archiveSession:A}=Hn(e),j=t?.agentic_tool?Ye[t.agentic_tool]:void 0,M=Q.useMemo(()=>i.map(e=>v.get(e)).filter(e=>Ja(e,y)).map(e=>e),[i,v,y]),N=`agor-draft-`,P=Q.useCallback(e=>{try{return localStorage.getItem(`${N}${e}`)||``}catch{return``}},[]),F=Q.useCallback((e,t)=>{try{t.trim()?localStorage.setItem(`${N}${e}`,t):localStorage.removeItem(`${N}${e}`)}catch{}},[]),I=Q.useCallback(e=>{try{localStorage.removeItem(`${N}${e}`)}catch{}},[]),L=Q.useRef(null),ee=Q.useRef(t?P(t.session_id):``),[ne,re]=Q.useState(()=>!!ee.current.trim()),ie=Q.useCallback(e=>re(e),[]),ae=t?.permission_config?.mode??(t?.agentic_tool?Qe(t.agentic_tool):Qe(`claude-code`)),se=et(ae),[z,ce]=Q.useState(ae),[le,ue]=Q.useState(t?.permission_config?.codex?.sandboxMode??se.sandboxMode),[de,fe]=Q.useState(t?.permission_config?.codex?.approvalPolicy??se.approvalPolicy),[pe,me]=Q.useState(t?.model_config?.effort||`high`),[U,ge]=Q.useState(`terminal`),[W,ve]=Q.useState(null),[ye,xe]=Q.useState(null),[Se,Ce]=Q.useState([]),[we,Te]=Q.useState(!1),[Ee,De]=Q.useState(!1),[Oe,ke]=Q.useState(!1),[Ae,je]=Q.useState([]),[Me,Ne]=Q.useState(!1),[Pe,Fe]=Q.useState(!1),{state:Ie}=Tt(e,t?.session_id??null,{enabled:o,reactiveOptions:{taskHydration:`none`}}),G=Ie?.tasks||ho,Re=Q.useRef(null),ze=Q.useRef(null),Be=Q.useRef(null),Ve=Q.useRef(null),{searchOpen:K,query:He,setQuery:Ue,totalMatches:We,currentMatch:Ge,searchPending:Je,openSearch:Xe,closeSearch:Ze,goNext:nt,goPrev:rt}=qa(Be,{highlight:c.colorWarning,current:c.colorWarning,currentText:`rgba(0,0,0,0.88)`}),it=Q.useRef({sessionId:t?.session_id??null,generation:0}),at=t?.session_id??null;it.current.sessionId!==at&&(it.current={sessionId:at,generation:it.current.generation+1});let{attachments:ot,attachmentsRef:q,clearAttachments:st,hasAttachments:ct,addAttachments:lt,removeAttachment:ut,uploadAttachments:dt,uploading:ft,uploadingRef:ht,validationError:gt,setValidationError:_t}=Fa({sessionId:t?.session_id??null,showError:p}),vt=Q.useRef(!1);Q.useEffect(()=>{if(!e||!t)return;(async()=>{try{Ce((await e.service(`/sessions/${t.session_id}/tasks/queue`).find()).data||[])}catch(e){console.error(`[SessionPanel] Failed to fetch queue:`,e)}})();let n=e.service(`tasks`),r=e=>{e.session_id===t.session_id&&Ce(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===t.session_id&&e.status!==$e.QUEUED&&Ce(t=>t.filter(t=>t.task_id!==e.task_id))},a=e=>{e.session_id===t.session_id&&Ce(t=>t.filter(t=>t.task_id!==e.task_id))};return n.on(`queued`,r),n.on(`patched`,i),n.on(`updated`,i),n.on(`removed`,a),()=>{n.off(`queued`,r),n.off(`patched`,i),n.off(`updated`,i),n.off(`removed`,a)}},[e,t]);let yt=Q.useMemo(()=>t?.agentic_tool?G.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},[G,t?.agentic_tool]),bt=Q.useMemo(()=>{if(!t?.agentic_tool)return null;for(let e=G.length-1;e>=0;e--){let n=G[e];if(n.computed_context_window!==void 0&&n.normalized_sdk_response){let{contextWindowLimit:e}=n.normalized_sdk_response;if(n.computed_context_window>0)return{used:n.computed_context_window,limit:e||0,taskMetadata:{model:n.model,duration_ms:n.duration_ms,agentic_tool:t.agentic_tool,raw_sdk_response:n.raw_sdk_response,normalized_sdk_response:n.normalized_sdk_response}}}}return null},[G,t?.agentic_tool]),xt=Q.useMemo(()=>{let e=[];return n?.issue_url&&e.push({key:`issue`,name:`Issue: ${kn(n.issue_url)}`,url:n.issue_url}),n?.pull_request_url&&e.push({key:`pr`,name:`PR: ${kn(n.pull_request_url)}`,url:n.pull_request_url}),e},[n?.issue_url,n?.pull_request_url]),St=Q.useMemo(()=>{if(bt)return Mn(bt.used,bt.limit,bt.taskMetadata.normalized_sdk_response?.contextUsageSnapshot)},[bt]),Ct=Q.useMemo(()=>{if(G.length===0)return null;for(let e=G.length-1;e>=0;--e){let t=G[e];if(t.status===$e.RUNNING||t.status===$e.STOPPING||t.status===$e.AWAITING_PERMISSION||t.status===$e.AWAITING_INPUT)return t}return G[G.length-1]},[G]);Q.useEffect(()=>{t?.permission_config?.mode?ce(t.permission_config.mode):t?.agentic_tool&&ce(Qe(t.agentic_tool)),t?.agentic_tool===`codex`&&t?.permission_config?.codex&&(ue(t.permission_config.codex.sandboxMode),fe(t.permission_config.codex.approvalPolicy))},[t?.permission_config?.mode,t?.permission_config?.codex,t?.agentic_tool]),Q.useEffect(()=>{me(t?.model_config?.effort||`high`)},[t?.model_config?.effort]),Q.useEffect(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&e.key===`f`&&o&&(e.preventDefault(),K?Ve.current?.focus():Xe()),e.key===`Escape`&&K&&Ze()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[K,o,Xe,Ze]);let wt=Q.useRef(t?.session_id??null);Q.useEffect(()=>{let e=t?.session_id??null;wt.current!==e&&(wt.current=e,Ze())},[t?.session_id,Ze]),Q.useEffect(()=>{K&&setTimeout(()=>Ve.current?.focus(),30)},[K]);let Et=t?.status===tt.RUNNING||t?.status===tt.STOPPING,Dt=t?.status===tt.STOPPING,J=Q.useRef(null),Y=Q.useMemo(()=>({onModelConfigChange:e=>J.current?.onModelConfigChange(e),onSendPrompt:()=>J.current?.onSendPrompt(),onStop:()=>J.current?.onStop(),onFork:()=>J.current?.onFork(),onBtwSend:()=>J.current?.onBtwSend(),onSpawnOpen:()=>J.current?.onSpawnOpen(),onAttachFiles:()=>J.current?.onAttachFiles(),onUploadOpen:()=>J.current?.onUploadOpen(),onEffortChange:e=>J.current?.onEffortChange(e),onPermissionModeChange:e=>J.current?.onPermissionModeChange(e),onCodexPermissionChange:(e,t)=>J.current?.onCodexPermissionChange(e,t)}),[]),Ot=t?.model_config?.model&&t.agentic_tool===`opencode`&&t.model_config.provider?`${t.model_config.provider}/${t.model_config.model}`:t?.model_config?.model,kt=Q.useMemo(()=>t?.model_config?.model?{mode:t.model_config.mode||`alias`,model:t.model_config.model,provider:t.model_config.provider,advisorModel:t.model_config.advisorModel}:void 0,[t?.model_config?.mode,t?.model_config?.model,t?.model_config?.provider,t?.model_config?.advisorModel]),At=t?.custom_context,jt=Q.useMemo(()=>t?(0,$.jsxs)(no,{disabled:ft,onDragActiveChange:Ne,onFilesDrop:lt,children:[gt&&(0,$.jsx)(be,{type:`error`,showIcon:!0,message:gt,style:{marginBottom:0,borderRadius:c.borderRadius}}),(0,$.jsx)(Pa,{attachments:ot,disabled:ft,onRemove:ut}),(0,$.jsx)(mo,{ref:L,sessionId:t.session_id,getDraft:P,saveDraft:F,deleteDraft:I,onHasInputChange:ie,inputValueRef:ee,onSubmit:Y.onSendPrompt,hasExternalInput:ct,placeholder:Et?`Queue here… @ for mentions, : for emoji`:`Prompt here… @ for mentions, : for emoji`,autoSize:{minRows:1,maxRows:10},client:e,userById:g,onFilesDrop:lt,filesDropDisabled:ft,showFilesDropOverlay:!1,suppressEmptyHighlight:Me,slashCommands:Array.isArray(At?.slash_commands)?At.slash_commands:void 0,skills:Array.isArray(At?.skills)?At.skills:void 0}),(0,$.jsx)(`input`,{ref:Re,type:`file`,accept:mn(),multiple:!0,disabled:ft,style:{display:`none`},onChange:e=>{lt(Array.from(e.target.files??[])),e.target.value=``}})]}):null,[t,At,ft,gt,ot,Me,ct,Et,e,g,lt,ut,P,F,I,ie,Y,c.borderRadius]);if(!t)return null;let Nt=()=>{if(!e||m){p(`Cannot archive while disconnected from the daemon.`);return}l.confirm({title:`Archive session?`,content:`Are you sure you want to archive this session?`,okText:`Archive`,cancelText:`Cancel`,onOk:async()=>{await A(t.session_id)?(d(`Session archived`),s()):p(`Failed to archive session`)}})},Pt=!!n,It=[...n?[{key:`center-map`,icon:(0,$.jsx)(E,{}),label:`Center map on branch`,onClick:()=>h(n.branch_id,{boardId:n.board_id??void 0})}]:[],...k&&n?[{key:`terminal`,icon:(0,$.jsx)(Ke,{}),label:`Open terminal`,onClick:()=>k([],n.branch_id)}]:[],...Pt?[{type:`divider`}]:[],...D?[{key:`settings`,icon:(0,$.jsx)(H,{}),label:`Session Settings`,onClick:()=>D(t.session_id)}]:[],{key:`archive`,icon:(0,$.jsx)(b,{}),label:m?`Archive (disconnected)`:`Archive session`,disabled:m||!e,onClick:Nt}],Rt=(e=[])=>{ht.current||(je(e),ke(!0))},Bt=async()=>{if(!(vt.current||ht.current||m)){vt.current=!0;try{let e=t.session_id,n=it.current,r=L.current?.getValue()??``,i=q.current,a=i.length>0;if(!r.trim()&&!a)return;let o=i.find(mt);if(o){p(`${o.file.name} failed or cannot be uploaded. Remove failed files before sending.`);return}if(!C){p(`Cannot send prompt from this view.`);return}let s=(await dt(i,e)).map(e=>e.path),c=it.current.sessionId===e&&it.current.generation===n.generation,l=ln(c?Xt({promptHandle:L.current,inputValueRefValue:ee.current,sendStartValue:r}):r,s);if(!l.trim()||await C?.(e,l,z)===!1)return;c?(L.current?.clear(),st(),_t(null)):I(e),c&&W?.()}catch(e){console.error(`Composer send failed — keeping prompt and files in composer:`,e),p(e instanceof Error?e.message:`Failed to send prompt`)}finally{vt.current=!1}}},Vt=async()=>{if(!(!t||!e||Pe)){Dt&&f(`Retrying stop request...`),Fe(!0);try{await e.service(`sessions/${t.session_id}/stop`).create({})}catch(e){console.error(`Failed to stop execution:`,e),p(`Failed to stop execution. You can try again.`)}finally{Fe(!1)}}},Ut=async()=>{if(!t)return;if(q.current.length>0){p(`Attachments are only supported for normal Send for now. Remove attachments to fork.`);return}let e=(L.current?.getValue()??``).trim();if(!e){Te(!0);return}try{await w?.(t.session_id,e),L.current?.clear()}catch(e){console.error(`Fork failed — keeping prompt in compose box:`,e)}},Gt=async e=>{if(!t)return;let n=typeof e==`string`?e:e.prompt??``;n&&await w?.(t.session_id,n)},Kt=async()=>{if(q.current.length>0){p(`Attachments are only supported for normal Send for now. Remove attachments to send BTW.`);return}let e=L.current?.getValue()??``;if(!e.trim()||m)return;let n=e.trim();try{await T?.(t.session_id,n),L.current?.clear()}catch(e){console.error(`BTW fork failed — keeping prompt in compose box:`,e)}},Jt=()=>{if(q.current.length>0){p(`Attachments are only supported for normal Send for now. Remove attachments to spawn.`);return}De(!0)},Yt=async n=>{if(!t||!e)return;let r=typeof n==`string`?{userPrompt:n}:{userPrompt:n.prompt||``,agenticTool:n.agent,permissionMode:n.permissionMode,modelConfig:n.modelConfig,codexSandboxMode:n.codexSandboxMode,codexApprovalPolicy:n.codexApprovalPolicy,codexNetworkAccess:n.codexNetworkAccess,mcpServerIds:n.mcpServerIds,callbackConfig:{enableCallback:n.enableCallback,includeLastMessage:n.includeLastMessage,includeOriginalPrompt:n.includeOriginalPrompt},extraInstructions:n.extraInstructions};await e.service(`sessions/${t.session_id}/spawn-prompt`).create({...r,parentPermissionMode:z}),De(!1),L.current?.clear()},Zt=e=>{ce(e),t&&O&&O(t.session_id,{permission_config:{...t.permission_config,mode:e}})},Qt=(e,n)=>{ue(e),fe(n),t&&O&&O(t.session_id,{permission_config:{...t.permission_config,codex:{...t.permission_config?.codex,sandboxMode:e,approvalPolicy:n}}})},$t=e=>{me(e),t&&O&&t.model_config&&O(t.session_id,{model_config:{...t.model_config,effort:e}})},en=e=>{if(t&&O){let n={...t.model_config,mode:e.mode,model:e.model,...e.provider?{provider:e.provider}:{},updated_at:new Date().toISOString()};e.advisorModel?n.advisorModel=e.advisorModel:delete n.advisorModel,O(t.session_id,{model_config:n})}},tn=()=>{switch(t.status){case`running`:return`processing`;case`completed`:return`success`;case`failed`:return`error`;case`timed_out`:return`warning`;default:return`default`}};J.current={onModelConfigChange:en,onSendPrompt:Bt,onStop:Vt,onFork:Ut,onBtwSend:Kt,onSpawnOpen:Jt,onAttachFiles:()=>Re.current?.click(),onUploadOpen:()=>Rt(),onEffortChange:$t,onPermissionModeChange:Zt,onCodexPermissionChange:Qt};let nn=(0,$.jsx)(co,{session:t,footerTimerTask:Ct,tokenBreakdown:yt,latestContextWindow:bt,footerGradient:St,sessionMcpServerIds:i,unauthedMcpServers:M,mcpServerById:v,userAuthenticatedMcpServerIds:y,isRunning:Et,isStopping:Dt,stopRequestInFlight:Pe,hasInput:ne||ct,composerAttachmentsPresent:ct,composerAttachmentUploading:ft,connectionDisabled:m,toolCaps:j,effortLevel:pe,permissionMode:z,codexSandboxMode:le,codexApprovalPolicy:de,queuedTasks:Se,client:e,modelLabel:Ot,modelConfig:kt,onModelConfigChange:Y.onModelConfigChange,onOpenSessionSettings:D,onSendPrompt:Y.onSendPrompt,onStop:Y.onStop,onFork:Y.onFork,onBtwSend:Y.onBtwSend,onSpawnOpen:Y.onSpawnOpen,onAttachFiles:Y.onAttachFiles,onUploadOpen:Y.onUploadOpen,onEffortChange:Y.onEffortChange,onPermissionModeChange:Y.onPermissionModeChange,onCodexPermissionChange:Y.onCodexPermissionChange,promptInputSlot:jt});return(0,$.jsxs)(`div`,{style:{width:`100%`,height:`100%`,display:o?`flex`:`none`,flexDirection:`column`,background:c.colorBgElevated,borderLeft:`1px solid ${c.colorBorder}`},children:[(0,$.jsxs)(`div`,{style:{flexShrink:0,padding:`${c.sizeUnit*3}px ${c.sizeUnit*6}px`,borderBottom:`1px solid ${c.colorBorder}`,background:c.colorBgContainer},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,gap:12,alignItems:`center`,flex:1,minWidth:0},children:[(0,$.jsx)(`div`,{style:{flexShrink:0},children:(0,$.jsx)(pt,{tool:t.agentic_tool,size:40})}),(0,$.jsxs)(`div`,{style:{flex:1,minWidth:0},children:[(0,$.jsx)(_.Text,{strong:!0,style:{fontSize:18,...cn(2)},children:un(t,{includeAgentFallback:!0})}),(0,$.jsx)(qe,{status:tn(),text:t.status.toUpperCase()}),t.created_by&&(0,$.jsx)(`div`,{style:{marginTop:c.sizeUnit},children:(0,$.jsx)(Ft,{createdBy:t.created_by,currentUserId:r,userById:g,prefix:`Created by`})})]})]}),(0,$.jsxs)(B,{size:4,children:[(0,$.jsx)(eo,{items:xt}),(0,$.jsx)(_e,{menu:{items:It},trigger:[`click`],placement:`bottomRight`,children:(0,$.jsx)(R,{title:`More actions`,children:(0,$.jsx)(u,{type:`text`,icon:(0,$.jsx)(S,{})})})}),(0,$.jsx)(R,{title:`Search session (${po})`,children:(0,$.jsx)(u,{type:`text`,icon:(0,$.jsx)(x,{}),onClick:Xe})}),(0,$.jsx)(R,{title:`Close Panel`,children:(0,$.jsx)(u,{type:`text`,icon:(0,$.jsx)(V,{}),onClick:s,style:{marginLeft:c.sizeUnit}})})]})]}),(0,$.jsx)(`div`,{style:{overflow:`hidden`,maxHeight:K?`36px`:`0px`,opacity:+!!K,marginTop:K?`4px`:`0px`,transition:`max-height 0.15s ease, opacity 0.12s ease, margin-top 0.15s ease`},children:(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6},children:[(0,$.jsx)(x,{style:{color:c.colorPrimary,fontSize:14,flexShrink:0}}),(0,$.jsx)(he,{ref:e=>{Ve.current=e?.input??null},value:He,onChange:e=>{Ue(e.target.value)},onKeyDown:e=>{e.key===`Enter`&&(e.shiftKey?rt():nt()),e.key===`Escape`&&Ze()},placeholder:`Search session...`,variant:`borderless`,style:{flex:1,padding:0},size:`small`}),He&&(0,$.jsx)(_.Text,{type:`secondary`,style:{fontSize:12,whiteSpace:`nowrap`,minWidth:44,textAlign:`right`,fontVariantNumeric:`tabular-nums`},children:We>0?`${Ge+1} / ${We}`:``}),!He&&(0,$.jsx)(_.Text,{type:`secondary`,style:{fontSize:11},children:`Esc to close`}),We>1&&(0,$.jsxs)(B,{size:2,children:[(0,$.jsx)(R,{title:`Previous (Shift+Enter)`,children:(0,$.jsx)(u,{type:`text`,size:`small`,icon:(0,$.jsx)(te,{}),onClick:rt})}),(0,$.jsx)(R,{title:`Next (Enter)`,children:(0,$.jsx)(u,{type:`text`,size:`small`,icon:(0,$.jsx)(Le,{}),onClick:nt})})]}),(0,$.jsx)(R,{title:`Close search (Esc)`,children:(0,$.jsx)(u,{type:`text`,size:`small`,icon:(0,$.jsx)(V,{}),onClick:Ze})})]})})]}),(0,$.jsxs)(`div`,{ref:ze,style:{flex:1,overflow:`hidden`,display:`flex`,flexDirection:`column`,padding:`${c.sizeUnit*3}px ${c.sizeUnit*6}px 0`,position:`relative`},children:[K&&He.trim()&&We===0&&!Je&&(0,$.jsx)(`div`,{style:{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,zIndex:10,pointerEvents:`none`,background:`${c.colorBgContainer}cc`},children:(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)(x,{style:{fontSize:16,color:c.colorTextTertiary}})}),(0,$.jsx)(_.Text,{strong:!0,style:{fontSize:13},children:`No results`}),(0,$.jsxs)(_.Text,{type:`secondary`,style:{fontSize:12,textAlign:`center`,lineHeight:1.5,maxWidth:200},children:[`Nothing matched `,(0,$.jsx)(_.Text,{code:!0,children:He})]})]})}),(0,$.jsx)(`div`,{ref:Be,style:{flex:1,minHeight:0,display:`flex`,flexDirection:`column`,overflow:`hidden`},children:(0,$.jsx)(fo,{client:e,session:t,branch:n,currentUserId:r,sessionMcpServerIds:i,scrollToBottom:W,scrollToTop:ye,setScrollToBottom:ve,setScrollToTop:xe,queuedTasks:Se,setQueuedTasks:Ce,spawnModalOpen:Ee,setSpawnModalOpen:De,onSpawnModalConfirm:Yt,inputValueRef:ee,isOpen:o,cliViewMode:U,setCliViewMode:ge,forceExpandAll:K&&He.trim().length>0})}),!(t.agentic_tool===`claude-code-cli`&&U===`terminal`)&&nn,(0,$.jsx)(Qa,{sessionId:t.session_id,daemonUrl:fn(),open:Oe,onClose:()=>{ke(!1),je([])},initialFiles:Ae,onUploadComplete:e=>{d(`Uploaded ${e.length} file(s)`)},onInsertMention:e=>{L.current?.insertText(`@${e}`)}}),(0,$.jsx)(Br,{open:we,action:`fork`,session:t,currentUser:r?g.get(r)??null:null,onConfirm:Gt,onCancel:()=>Te(!1),client:e,userById:g})]})]})}),_o=({showHelpText:e=!0})=>(0,$.jsx)(W.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:$n}],children:(0,$.jsx)(Dn,{placeholder:`{"teamName": "Backend", "sprintNumber": 42}`,rows:4})}),{Text:vo,Paragraph:yo}=_,{TextArea:bo}=he,xo=({showHelpText:e=!1})=>(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(W.Item,{name:[`callbackConfig`,`enabled`],label:`Enable Child Completion Callbacks`,valuePropName:`checked`,children:(0,$.jsx)(le,{})}),e&&(0,$.jsx)(yo,{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)(W.Item,{name:[`callbackConfig`,`includeLastMessage`],label:`Include Child's Final Answer`,valuePropName:`checked`,children:(0,$.jsx)(le,{defaultChecked:!0})}),e&&(0,$.jsx)(yo,{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)(W.Item,{name:[`callbackConfig`,`template`],label:(0,$.jsxs)($.Fragment,{children:[`Custom Template `,(0,$.jsx)(vo,{type:`secondary`,children:`(Optional)`})]}),children:(0,$.jsx)(bo,{placeholder:`Leave empty to use default template...`,autoSize:{minRows:4,maxRows:12},style:{fontFamily:`monospace`,fontSize:12}})}),e&&(0,$.jsxs)(yo,{type:`secondary`,style:{fontSize:12,marginTop:-16},children:[`Advanced: Customize the callback message template using Handlebars syntax. Available variables: `,(0,$.jsx)(vo,{code:!0,children:`childSessionId`}),`, `,(0,$.jsx)(vo,{code:!0,children:`spawnPrompt`}),`,`,` `,(0,$.jsx)(vo,{code:!0,children:`status`}),`, `,(0,$.jsx)(vo,{code:!0,children:`messageCount`}),`, `,(0,$.jsx)(vo,{code:!0,children:`toolUseCount`}),`,`,` `,(0,$.jsx)(vo,{code:!0,children:`lastAssistantMessage`})]})]});function So(e){switch(e){case`running`:return`processing`;case`completed`:return`success`;case`failed`:return`error`;case`timed_out`:return`warning`;default:return`default`}}var Co=({session:e,onNavigate:t})=>{let{token:n}=a.useToken(),{onSessionClick:r}=Ur(),i=e.remote_relationships?.as_target?.find(e=>e.relationship_type===`remote_create`),o=i?.source_session_id,s=e.callback_config?.callback_session_id??i?.callback_session_id??o??e.genealogy?.parent_session_id,c=X((0,Q.useMemo)(()=>dr(s),[s]));if(!s)return null;let l=e.callback_config?.enabled??i?.callback_enabled??!0,u=c?.archived===!0,d=c?un(c,{includeAgentFallback:!0,includeIdFallback:!0}):`${it(s)} (not loaded)`,f=r?(0,$.jsxs)(_.Link,{onClick:e=>{e.preventDefault(),r&&(r(s),t?.())},children:[(0,$.jsx)(ne,{style:{marginRight:4}}),(0,$.jsx)(`strong`,{children:d})]}):(0,$.jsx)(`strong`,{children:d}),p=u?`archived`:c?.status,m=l?n.colorPrimaryBorder:n.colorBorder,h=l?n.colorPrimaryBg:n.colorFillTertiary,g=l?n.colorPrimary:n.colorTextSecondary;return(0,$.jsx)(`div`,{style:{marginBottom:12,padding:`${n.sizeUnit*2}px ${n.sizeUnit*3}px`,border:`1px solid ${m}`,background:h,borderRadius:n.borderRadius},children:(0,$.jsxs)(B,{size:6,wrap:!0,children:[l?(0,$.jsx)(ne,{style:{color:g}}):(0,$.jsx)(ve,{style:{color:g}}),(0,$.jsxs)(_.Text,{strong:!0,style:{color:g},children:[`Callbacks `,l?`ON`:`OFF`]}),(0,$.jsxs)(_.Text,{type:`secondary`,children:[` — `,l?`notifying`:`would notify`]}),f,c&&(0,$.jsxs)(B,{size:4,children:[(0,$.jsx)(qe,{status:So(c.status)}),(0,$.jsx)(_.Text,{type:`secondary`,style:{fontSize:12},children:p})]})]})})},wo=({showHelpText:e=!0})=>(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(W.Item,{name:`codexSandboxMode`,label:`Sandbox Mode`,help:e?`Controls where Codex can write files (workspace vs. full access)`:void 0,children:(0,$.jsx)(p,{placeholder:`Select sandbox mode`,options:pr.map(({value:e,label:t,description:n})=>({value:e,label:`${t} · ${n}`}))})}),(0,$.jsx)(W.Item,{name:`codexApprovalPolicy`,label:`Approval Policy`,help:e?`Controls whether Codex must ask before executing commands`:void 0,children:(0,$.jsx)(p,{placeholder:`Select approval policy`,options:bt.map(({value:e,label:t,description:n})=>({value:e,label:`${t} · ${n}`}))})}),(0,$.jsx)(W.Item,{name:`codexNetworkAccess`,label:`Network Access`,help:e?`Allow outbound HTTP/HTTPS requests (workspace-write sandbox only)`:void 0,valuePropName:`checked`,children:(0,$.jsx)(Ut,{showWarning:e})})]}),To=({showHelpText:e=!0,titleRequired:t=!1,titleLabel:n=`Session Title`})=>(0,$.jsx)(W.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)(he,{placeholder:`e.g., Auth System Implementation`})}),Eo=[];function Do(e,t){let n=e.permission_config?.mode??Qe(e.agentic_tool),r=et(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 Oo(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 ko=({open:e,onClose:t,session:n,onUpdate:r,onUpdateSessionMcpServers:i,onUpdateSessionEnvSelections:a,client:o,currentUser:s})=>{let c=X(Wt),l=X(zn).get(n.session_id)??Eo,[u]=W.useForm(),[d,f]=Q.useState(()=>Do(n,l)),[p,m]=Q.useState([]),[h,g]=Q.useState([]),v=Q.useRef(!1),y=Q.useRef(n.session_id),b=Q.useMemo(()=>{if(!s)return!1;if(s.user_id===n.created_by)return!0;let e=s.role;return e===`admin`||e===`superadmin`},[s,n.created_by]);Q.useEffect(()=>{let t=v.current,r=n.session_id!==y.current;if(v.current=e,y.current=n.session_id,e&&!t||e&&r){let e=Do(n,l);f(e),u.setFieldsValue(e)}},[e,n,l,u]),Q.useEffect(()=>{if(!e||!o||!b)return;let t=!1;return(async()=>{try{let e=await o.service(`sessions/${n.session_id}/env-selections`).find();t||(m(e),g(e))}catch{t||(m([]),g([]))}})(),()=>{t=!0}},[e,o,b,n.session_id]);let x=()=>{u.validateFields().then(()=>{let e=u.getFieldsValue(!0),o=Oo(e,n);Object.keys(o).length>0&&r&&r(n.session_id,o),i&&i(n.session_id,e.mcpServerIds||[]),b&&a&&(p.length!==h.length||p.some(e=>!h.includes(e)))&&a(n.session_id,p),t()})},S=()=>{u.resetFields(),t()},C=n.agentic_tool===`codex`,w=[];return C&&w.push({key:`codex-settings`,label:(0,$.jsxs)(_.Text,{strong:!0,children:[(0,$.jsx)(H,{style:{marginRight:8}}),`Codex Sandbox & Policies`]}),children:(0,$.jsx)(wo,{showHelpText:!0})}),b&&o&&w.push({key:`env-selections`,label:(0,$.jsxs)(_.Text,{strong:!0,children:[(0,$.jsx)(ae,{style:{marginRight:8}}),`Environment Variables`]}),children:(0,$.jsx)(Or,{ownerUserId:n.created_by,client:o,value:p,onChange:m})}),w.push({key:`callback-config`,label:(0,$.jsxs)(_.Text,{strong:!0,children:[(0,$.jsx)(Ve,{style:{marginRight:8}}),`Callbacks`]}),children:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Co,{session:n,onNavigate:t}),(0,$.jsx)(xo,{showHelpText:!0})]})}),w.push({key:`advanced`,label:(0,$.jsxs)(_.Text,{strong:!0,children:[(0,$.jsx)(H,{style:{marginRight:8}}),`Advanced`]}),children:(0,$.jsx)(Pt,{fallbackTitle:`Failed to load Advanced settings.`,resetKey:n.session_id,children:(0,$.jsx)(_o,{showHelpText:!0})})}),(0,$.jsx)(ye,{title:`Session Settings`,open:e,onOk:x,onCancel:S,okText:`Save`,cancelText:`Cancel`,width:600,children:(0,$.jsxs)(W,{form:u,layout:`vertical`,initialValues:d,children:[(0,$.jsx)(To,{showHelpText:!1,titleRequired:!1,titleLabel:`Title`}),(0,$.jsx)(W.Item,{label:`Session IDs`,children:(0,$.jsx)(qn,{session:n})}),(0,$.jsx)(Qt,{agenticTool:n.agentic_tool,mcpServerById:c,showHelpText:!1,compact:!0,client:o}),(0,$.jsx)(j,{dashed:!0,style:{margin:`8px 0 16px`}}),(0,$.jsx)(P,{ghost:!0,destroyOnHidden:!1,expandIcon:({isActive:e})=>(0,$.jsx)(Le,{rotate:e?180:0}),items:w})]})})},Ao=(0,Q.lazy)(()=>q(()=>import(`./TerminalModal-ExOgsuOP.js`).then(e=>({default:e.TerminalModal})),__vite__mapDeps([6,1,7,8,9,2,3,10,4,5]))),jo=e=>{let[t,n]=(0,Q.useState)(e.open);return(0,Q.useEffect)(()=>{e.open&&n(!0)},[e.open]),t?(0,$.jsx)(Q.Suspense,{fallback:null,children:(0,$.jsx)(Ao,{...e})}):null},{Text:Mo,Link:No}=_,Po=({open:e,onClose:t})=>{let{customTheme:n,setCustomTheme:r,setThemeMode:i}=yt(),[a]=W.useForm();(0,Q.useEffect)(()=>{if(e){let e=n?JSON.stringify(n,null,2):Fo();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:Fo()})},c=()=>{a.resetFields(),t()};return(0,$.jsxs)(ye,{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)(be,{title:`Edit your custom theme configuration`,description:(0,$.jsxs)(Mo,{children:[`Modify the JSON below to customize your Ant Design theme. See the`,` `,(0,$.jsx)(No,{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)(W,{form:a,layout:`vertical`,children:(0,$.jsx)(W.Item,{name:`themeConfig`,rules:[{required:!0,message:`Please enter theme configuration`},{validator:$n}],children:(0,$.jsx)(Dn,{placeholder:`Enter your custom theme JSON configuration...`,rows:16})})})]})};function Fo(){return JSON.stringify({token:{colorPrimary:`#2e9a92`,colorSuccess:`#52c41a`,colorWarning:`#faad14`,colorError:`#ff4d4f`,colorInfo:`#2e9a92`,colorLink:`#2e9a92`,borderRadius:8}},null,2)}var Io=e=>({...e,collapsed:!1,activeTab:`comments`}),Lo=e=>e.collapsed?{collapsed:!1,activeTab:`assistant`}:{...e,collapsed:!0},Ro=e=>({collapsed:!1,activeTab:e}),zo=(e,t,n)=>Math.min(n,Math.max(t,e)),Bo=(e,t,n)=>100-(e?t:n),Vo=(e,t)=>t>0?zo(e/t*100,0,100):0,Ho=(e,t)=>zo(e*t/100,0,100),Uo=(e,t)=>Math.min(e,100-t),{Content:Wo}=Re,Go=({setCurrentBoardId:e})=>(nr(e),null),Ko=({currentBoardId:e,currentSessionId:t,onBoardChange:n,onSessionChange:r,onActiveUrlTargetChange:i})=>(nn({currentBoardId:e,currentSessionId:t,boardById:X($t),sessionById:X(gt),branchById:X(mr),artifactById:X(_r),onBoardChange:n,onSessionChange:r,onActiveUrlTargetChange:i}),null),qo=Object.freeze([]),Jo=Object.freeze([]),Yo=Object.freeze([]),Xo=320,Zo=45,Qo=360,$o=75,es=15,ts=20,ns=56,rs=e=>Math.min(Zo,Xo/e*100),is=e=>ns/e*100,as=e=>Math.min($o,Math.max(es,Qo/e*100)),os=(e,t,n)=>Math.min(n,Math.max(t,e)),ss=({client:e,user:t,connected:n=!1,connecting:r=!1,availableAgents:i,initialBoardId:a,openSettingsTab:o,onSettingsClose:s,openUserSettings:c,initialUserSettingsTab:l,onUserSettingsClose:u,openNewBranchModal:d,onNewBranchModalClose:f,suppressLeftPanel:p=!1,topBanner:m,onCreateSession:h,onForkSession:g,onBtwForkSession:_,onSpawnSession:v,onSendPrompt:y,onUpdateSession:b,onDeleteSession:x,onCreateBoard:S,onUpdateBoard:C,onDeleteBoard:w,onArchiveBoard:T,onUnarchiveBoard:E,onCreateRepo:D,onCreateLocalRepo:O,onUpdateRepo:A,onDeleteRepo:j,onArchiveOrDeleteBranch:M,onUnarchiveBranch:N,onUpdateBranch:P,onCreateBranch:F,onStartEnvironment:I,onStopEnvironment:L,onNukeEnvironment:ee,onExecuteScheduleNow:te,onCreateUser:ne,onUpdateUser:R,onDeleteUser:re,onCreateMCPServer:ie,onDeleteMCPServer:ae,onCreateGatewayChannel:oe,onUpdateGatewayChannel:se,onDeleteGatewayChannel:z,onUpdateArtifact:ce,onDeleteArtifact:le,onUpdateSessionMcpServers:B,onUpdateSessionEnvSelections:ue,onSendComment:de,onReplyComment:V,onResolveComment:fe,onToggleReaction:H,onDeleteComment:pe,onLogout:me,onRetryConnection:he,onRestartOnboarding:U,instanceLabel:ge,instanceDescription:W,webTerminalEnabled:_e=!1,branchStorageConfig:ve})=>{let{showWarning:ye}=zt(),be=dt(),xe=lt(),Se=be.pathname===`/`,Ce=ii(xe),[we,Te]=(0,Q.useState)(!1),Ee=(0,Q.useRef)(null),[De,Oe]=(0,Q.useState)(null),[ke,Ae]=(0,Q.useState)(!1),[je,Me]=(0,Q.useState)(`assistant`),[Ne,Pe]=(0,Q.useState)(null),[Fe,Ie]=(0,Q.useState)(null),[Le,G]=(0,Q.useState)(null),ze=Le?.kind===`branch`?Le.id:null,Be=Le?.kind===`artifact`?Le.id:null,Ve=X((0,Q.useMemo)(()=>jn(Fe),[Fe])),K=!Se&&!we&&Fe&&Ve?Fe:null,[He,Ue]=(0,Q.useState)(`assistant`),[We,Ge]=(0,Q.useState)(!1),[Ke,qe]=(0,Q.useState)(()=>typeof window>`u`?1440:window.innerWidth);(0,Q.useEffect)(()=>{if(typeof window>`u`)return;let e=null,t=()=>{e!==null&&window.clearTimeout(e),e=window.setTimeout(()=>{e=null,qe(window.innerWidth)},150)};return window.addEventListener(`resize`,t),()=>{e!==null&&window.clearTimeout(e),window.removeEventListener(`resize`,t)}},[]);let Je=(0,Q.useMemo)(()=>rs(Ke),[Ke]),Ye=(0,Q.useMemo)(()=>is(Ke),[Ke]),Qe=(0,Q.useMemo)(()=>as(Ke),[Ke]),{isOpen:$e,section:et,openSettings:tt,closeSettings:nt,setSection:rt}=Gt(),it=$e||!!o,at=o||et,ot=We||!!c,[q,st]=(0,Q.useState)(()=>a||``),[ct,ut]=Vt(`agor:commentsPanelCollapsed`,!1),[ft,pt]=Tr(t?.user_id,`panel:left:size`,24),mt=X((0,Q.useMemo)(()=>lr(q),[q])),ht=(Se||we)&&!Ce,gt=ht?``:q,vt=ht?void 0:mt,yt=(0,Q.useRef)(ht),bt=yt.current&&!ht,[St,Ct]=(0,Q.useState)(!1),[Tt,Et]=(0,Q.useState)(!1);(0,Q.useLayoutEffect)(()=>{bt&&(Ct(!0),Et(!0)),yt.current=ht},[bt,ht]),(0,Q.useEffect)(()=>{if(!St)return;let e=window.setTimeout(()=>{Ct(!1)},1200);return()=>window.clearTimeout(e)},[St]),(0,Q.useEffect)(()=>{if(!Tt)return;let e=window.setTimeout(()=>{Et(!1)},4e3);return()=>window.clearTimeout(e)},[Tt]);let Dt=(0,Q.useCallback)(()=>{Et(!1)},[]);(0,Q.useLayoutEffect)(()=>{!Se||Ce||(q&&st(``),Fe&&Ie(null),Le&&G(null),we&&Te(!1))},[Le,q,Ce,Se,we,Fe]);let Ot=ct||p||ht||bt||St,kt=Ot&&!!mt&&!p,At=kt?Ye:0,jt=(0,Q.useRef)(null),Mt=os(ft,Je,Zo),Nt=Bo(Ot,At,Mt),[Pt,Ft]=Tr(t?.user_id,`panel:right:size`,50),It=Uo(Vo(os(Pt,Qe,$o),Nt),ts),Lt=Uo(Vo($o,Nt),ts),Bt=Math.min(Vo(Qe,Nt),Lt),Ht=(0,Q.useRef)(null),Ut=(0,Q.useRef)(!1),Wt=(0,Q.useRef)(!1),[Kt,qt]=(0,Q.useState)(null),[Jt,Yt]=(0,Q.useState)(null),[Xt,Qt]=(0,Q.useState)(!1),[$t,en]=(0,Q.useState)([]),[tn,nn]=(0,Q.useState)(void 0),[rn,an]=(0,Q.useState)(null),[on,sn]=(0,Q.useState)(null),[cn,ln]=(0,Q.useState)(void 0),[un,dn]=(0,Q.useState)(null),[fn,pn]=(0,Q.useState)(!1),[mn,gn]=Vt(`agor:eventStreamPanelCollapsed`,!0),{recentBoardIds:_n,trackBoardVisit:yn}=Bn(Jo,q);(0,Q.useEffect)(()=>{q&&(localStorage.setItem(`agor:currentBoardId`,q),yn(q))},[q,yn]),(0,Q.useEffect)(()=>{Fn()},[]),ni(e,t?.user_id,t?.preferences?.audio),(0,Q.useEffect)(()=>{jt.current&&(Ot?jt.current.collapse():(jt.current.expand(),jt.current.resize(Mt)))},[Mt,Ot]),(0,Q.useEffect)(()=>{Ht.current&&(K||!mn)&&Ht.current.resize(It)},[K,It,mn]);let bn=(0,Q.useCallback)(e=>{st(e)},[]),Z=An(),Cn=(0,Q.useCallback)(e=>Z.goToBoard(e),[Z]),wn=(0,Q.useCallback)(e=>Z.goToBranch(e),[Z]),Tn=(0,Q.useCallback)((e,t)=>{t&&Z.goToBoard(t),Pe(null),Me(e||`assistant`),Ae(!0)},[Z]),En=(0,Q.useCallback)(e=>{e!==q&&Ie(null),st(e)},[q]),Dn=X(xt),kn=X(wt);(0,Q.useEffect)(()=>{if(Dn===0){if(!n)return;q&&En(``);return}q&&!mt&&En(kn||``)},[Dn,kn,mt,q,En,n]),(0,Q.useEffect)(()=>{if(ke){let e=Ee.current?.getViewportCenter();Pe(e||null)}},[q,ke]),ti(q);let Mn=t?.preferences?.eventStream?.enabled??!0,{events:Nn,clearEvents:In}=$r({client:e,enabled:!mn}),Ln=(0,Q.useCallback)((e=[],t)=>{en(e),nn(t),Qt(!0)},[]),Rn=(0,Q.useCallback)(e=>{Ue(e.activeTab),ut(e.collapsed)},[ut]),zn=(0,Q.useCallback)(()=>{Rn(Lo({collapsed:Ot,activeTab:He}))},[Rn,Ot,He]),Vn=(0,Q.useCallback)(()=>{Rn(Io({collapsed:!0,activeTab:`assistant`}))},[Rn]),Hn=(0,Q.useCallback)(e=>{Rn(Ro(e))},[Rn]),Un=(0,Q.useCallback)(e=>{Yt(t=>t===e?null:e)},[]),Wn=(0,Q.useCallback)(()=>{q&&Z.goToBoard(q)},[Z,q]),Gn=()=>{Qt(!1),en([]),nn(void 0)},qn=async e=>{let t=await h?.(e,q);Oe(null),t&&Z.goToSession(t)},Yn=async e=>{let t=await F?.(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}});Ae(!1),t&&Z.goToBranch(t.branch_id)},Xn=async e=>{if(!S)return;let t=await S(e);t?.board_id&&Z.goToBoard(t.board_id)},Zn=async(n,r)=>{let i=n.repoId;if(!i||!F||!P)throw Error(`Missing repository or branch creation handler for assistant creation.`);r?.onStatusChange?.(`Creating assistant branch…`);let a=await ri({displayName:n.displayName,description:n.description,emoji:n.emoji,repoId:i,branchName:n.branchName,sourceBranch:n.sourceBranch},{client:e,repoById:Y.getState().repoById,onCreateBranch:F,onUpdateBranch:P});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:Sn({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(!h)throw Error(`Missing session creation handler.`);let t=await vn({client:e,branchId:a.branch_id,boardId:a.board_id||q,sessionConfig:o,onCreateSession:h,onStatusChange:r?.onStatusChange});Z.goToSession(t);return}catch(e){console.error(`Assistant session bootstrap failed:`,e),ye(`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)},Qn=(0,Q.useCallback)(t=>{let{sessionById:n,branchById:r}=Y.getState(),i=n.get(t);e&&i?.ready_for_prompt&&e.service(`sessions`).patch(t,{ready_for_prompt:!1}).catch(()=>{});let a=i?.branch_id?r.get(i.branch_id):void 0;e&&a?.needs_attention&&e.service(`branches`).patch(a.branch_id,{needs_attention:!1}).catch(()=>{}),Z.goToSession(t)},[e,Z]),$n=(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!==Ze.ONCE,scope:o,decidedBy:t?.user_id||`unknown`})}catch(e){console.error(`❌ Failed to send permission decision:`,e)}},[e,t?.user_id]),tr=X((0,Q.useMemo)(()=>dr(K),[K]))??null,nr=tr?.branch_id,ir=X((0,Q.useMemo)(()=>On(nr),[nr]))??null,ar=X((0,Q.useMemo)(()=>hn(K),[K]))??qo;(0,Q.useEffect)(()=>{Fe&&!Ve&&(xe.sessionShortId&&q&&Z.goToBoard(q,{replace:!0}),Ie(null))},[q,Z,xe.sessionShortId,Fe,Ve]);let or=X((0,Q.useMemo)(()=>dr(rn),[rn]))??null,sr=mt?.primary_assistant_id??null,cr=X((0,Q.useMemo)(()=>On(sr),[sr])),fr=cr?.repo_id,pr=X((0,Q.useMemo)(()=>Pn(fr),[fr])),mr=!!(sr&&!cr);(0,Q.useEffect)(()=>{Ue(mr?`all-sessions`:`assistant`)},[mt?.board_id,mr]),Qr(mt);let hr=X((0,Q.useMemo)(()=>On(on),[on]))??null,gr=hr?.repo_id,_r=X((0,Q.useMemo)(()=>Pn(gr),[gr]))??null,vr=hr?.branch_id,br=X((0,Q.useMemo)(()=>yr(vr),[vr]))??Yo,xr=X((0,Q.useMemo)(()=>On(De),[De]))??null,Dr=X((0,Q.useMemo)(()=>On(un),[un])),Or=Rt(Y,(0,Q.useMemo)(()=>er(q),[q]),Zt),kr=t?.name||t?.email?.split(`@`)[0]||``,Ar=X((0,Q.useMemo)(()=>xn(q),[q])),Mr=X((0,Q.useMemo)(()=>Kn(q,kr||void 0,t?.email),[q,kr,t?.email])),Nr=_e&&Xe(t?.role,Xr),Pr=J(y),Fr=J(_),Ir=J(b),Lr=J(x),Rr=J(g),zr=J(v),Br=J(B),Hr=J(M),Ur=J(I),Wr=J(L),Gr=J(ee),Kr=(0,Q.useCallback)(e=>dn(e),[]),qr=(0,Q.useCallback)(e=>an(e),[]),Jr=(0,Q.useCallback)((e,t)=>{sn(e),ln(t)},[]),Yr=(0,Q.useMemo)(()=>({onSendPrompt:Pr,onFork:Rr,onBtwFork:Fr,onSubsession:zr,onUpdateSession:Ir,onDeleteSession:Lr,onPermissionDecision:$n,onStartEnvironment:Ur,onStopEnvironment:Wr,onNukeEnvironment:Gr,onViewLogs:Kr,onOpenSettings:qr,onSessionClick:Qn,onOpenBranch:Jr,onOpenTerminal:Nr?Ln:void 0}),[Pr,Rr,Fr,zr,Ir,Lr,$n,Ur,Wr,Gr,Kr,qr,Qn,Jr,Ln,Nr]),Zr=J(te),ei=J(V),ai=J(fe),si=J(H),ci=J(pe),li=J(e=>de?.(q||``,e)),ui=J(()=>ut(!0)),di=(0,Q.useMemo)(()=>({onSessionClick:Qn,onCreateSession:e=>Oe(e),onOpenSettings:e=>sn(e),onNukeEnvironment:Gr}),[Qn,Gr]),fi=J(()=>{Te(!0),Z.goHome()}),mi=J(()=>{K?(q&&Z.goToBoard(q),gn(!1)):gn(!mn)}),hi=J(()=>tt()),gi=J(()=>Ge(!0)),_i=J(()=>pn(!0)),vi=J((e,t,n)=>{t&&Z.goToBoard(t)}),yi=J(me),bi=J(he);return(0,$.jsxs)(Er,{value:Yr,children:[(0,$.jsx)(Go,{setCurrentBoardId:En}),(0,$.jsx)(Ko,{currentBoardId:q,currentSessionId:K,onBoardChange:bn,onSessionChange:Ie,onActiveUrlTargetChange:G}),(0,$.jsxs)(Re,{style:{height:`100vh`},children:[(0,$.jsx)(jr,{user:t,presenceClient:e,currentUserId:t?.user_id,connected:n,connecting:r,onMenuClick:zn,onCommentsClick:Vn,onEventStreamClick:mi,onSettingsClick:hi,onUserSettingsClick:gi,onThemeEditorClick:_i,onLogout:yi,onRetryConnection:bi,currentBoardName:vt?.name,currentBoardIcon:vt?.icon,unreadCommentsCount:Ar,eventStreamEnabled:Mn,hasUserMentions:Mr,currentBoardId:gt,onBoardChange:Z.goToBoard,onHomeClick:fi,onUserClick:vi,instanceLabel:ge,instanceDescription:W}),m,(0,$.jsx)(Wo,{style:{position:`relative`,overflow:`hidden`,display:`flex`},children:(0,$.jsxs)(wr,{id:`main-layout`,direction:`horizontal`,style:{flex:1},onLayout:e=>{!Ot&&Ut.current&&e.length>=2&&pt(os(e[0],Je,Zo))},children:[(0,$.jsx)(Cr,{id:`assistant-panel`,order:1,ref:jt,collapsible:!0,defaultSize:Ot?At:Mt,collapsedSize:At,minSize:Ot?At:Je,maxSize:Zo,style:{minWidth:Ot?kt?ns:0:Xo},children:Ot?kt&&(0,$.jsx)(oi,{onSelectTab:Hn,unreadCommentsCount:Ar,hasUserMentions:Mr}):(0,$.jsx)(pi,{client:e,board:mt||null,activeTab:He,onTabChange:Ue,primaryAssistantBranch:cr,primaryAssistantRepo:pr,primaryAssistantInaccessible:mr,currentUserId:t?.user_id,selectedSessionId:K,onSessionClick:Qn,onCreateSession:Oe,onForkSession:Rr,onSpawnSession:zr,onArchiveOrDelete:Hr,onOpenSettings:Jr,onOpenSessionSettings:an,onOpenTerminal:Nr?Ln:void 0,onStartEnvironment:Ur,onStopEnvironment:Wr,onViewLogs:dn,onNukeEnvironment:Gr,onExecuteScheduleNow:Zr,onSendComment:li,onReplyComment:ei,onResolveComment:ai,onToggleReaction:si,onDeleteComment:ci,hoveredCommentId:Kt,selectedCommentId:Jt,onCollapse:ui,deferSessionDetails:Tt,onDeferredDetailsHydrated:Dt})}),(0,$.jsx)(Sr,{style:{position:`relative`,width:Ot?`0px`:`4px`,background:`var(--ant-color-border-secondary)`,cursor:Ot?`default`:`col-resize`,transition:`background 0.2s`,pointerEvents:Ot?`none`:`auto`,overflow:`visible`,zIndex:10},onDragging:e=>{Ut.current=e},onMouseEnter:e=>{Ot||(e.currentTarget.style.background=`var(--ant-color-primary)`)},onMouseLeave:e=>{Ot||(e.currentTarget.style.background=`var(--ant-color-border-secondary)`)}}),(0,$.jsx)(Cr,{id:`content-panel`,order:2,defaultSize:Nt,minSize:40,children:(0,$.jsxs)(wr,{id:`canvas-session`,direction:`horizontal`,style:{flex:1},onLayout:e=>{K&&Wt.current&&e.length===2&&Ft(os(Ho(e[1],Nt),Qe,$o))},children:[(0,$.jsx)(Cr,{id:`canvas-panel`,order:1,defaultSize:K?100-It:100,minSize:ts,children:(0,$.jsxs)(`div`,{style:{position:`relative`,overflow:`hidden`,height:`100%`},children:[ht?(0,$.jsx)(ja,{client:e,connected:n,recentBoardIds:_n,currentUserId:t?.user_id,onBoardClick:Cn,onBranchClick:wn,onSessionClick:Qn,onOpenCreateDialog:Tn,onOpenSettings:tt}):(0,$.jsx)(Vr,{ref:Ee,board:mt||null,client:e,branches:Or,primaryAssistantId:sr,currentUserId:t?.user_id,selectedSessionId:K,activeUrlTargetBranchId:ze,activeUrlTargetArtifactId:Be,availableAgents:i,onSessionClick:Qn,onSessionUpdate:Ir,onSessionDelete:Lr,onForkSession:Rr,onSpawnSession:zr,onUpdateSessionMcpServers:Br,onOpenSettings:an,onCreateSessionForBranch:Oe,onOpenBranch:sn,onArchiveOrDeleteBranch:Hr,onOpenTerminal:Nr?Ln:void 0,onStartEnvironment:Ur,onStopEnvironment:Wr,onViewLogs:dn,onNukeEnvironment:Gr,onOpenCommentsPanel:Vn,onCommentHover:qt,onCommentSelect:Un}),!ht&&(0,$.jsx)(Ma,{onClick:()=>{let e=Ee.current?.getViewportCenter();Pe(e||null),Me(`assistant`),Ae(!0)}})]})}),(K||!mn)&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Sr,{style:{width:`4px`,background:`var(--ant-color-border-secondary)`,cursor:`col-resize`,transition:`background 0.2s`},onDragging:e=>{Wt.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)(Cr,{id:`session-panel`,order:2,ref:Ht,defaultSize:It,minSize:Bt,maxSize:Lt,children:K?(0,$.jsx)(go,{client:e,session:tr,branch:ir,currentUserId:t?.user_id,sessionMcpServerIds:ar,open:!!K,onClose:Wn}):(0,$.jsx)(ji,{collapsed:!1,onToggleCollapse:()=>gn(!0),events:Nn,onClear:In,currentUserId:t?.user_id,selectedSessionId:K,currentBoard:mt,client:e,branchActions:di})})]})]})})]})}),(0,$.jsx)(k,{style:{display:`none`},openFileDialogOnClick:!1,showUploadList:!1}),De&&(0,$.jsx)(La,{open:!0,onClose:()=>Oe(null),onCreate:qn,availableAgents:i,branchId:De,branch:xr||void 0,currentUser:t,client:e}),(0,$.jsx)(Jn,{open:it,onClose:()=>{$e&&nt(),s?.()},client:e,currentUser:t,activeTab:at,onTabChange:e=>{!$e&&o?(tt(e),s?.()):rt(e)},onCreateBoard:S,onUpdateBoard:C,onDeleteBoard:w,onArchiveBoard:T,onUnarchiveBoard:E,onCreateRepo:D,onCreateLocalRepo:O,onUpdateRepo:A,onDeleteRepo:j,onArchiveOrDeleteBranch:M,onUnarchiveBranch:N,onUpdateBranch:P,onCreateBranch:F,onStartEnvironment:I,onStopEnvironment:L,onCreateUser:ne,onUpdateUser:R,onDeleteUser:re,onCreateMCPServer:ie,onDeleteMCPServer:ae,onCreateGatewayChannel:oe,onUpdateGatewayChannel:se,onDeleteGatewayChannel:z,onUpdateArtifact:ce,onDeleteArtifact:le,onCreateAssistant:()=>{nt(),s?.(),Pe(null),Me(`assistant`),Ae(!0)},branchStorageConfig:ve}),or&&(0,$.jsx)(ko,{open:!!rn,onClose:()=>an(null),session:or,onUpdate:b,onUpdateSessionMcpServers:B,onUpdateSessionEnvSelections:ue,client:e,currentUser:t}),(0,$.jsx)(ur,{open:!!on,onClose:()=>{sn(null),ln(void 0)},defaultTab:cn,branch:hr||null,repo:_r||null,sessions:br,client:e,currentUser:t,onUpdateBranch:P,onUpdateRepo:A,onArchiveOrDelete:M,onOpenSettings:()=>{sn(null),tt()},onSessionClick:Qn,onExecuteScheduleNow:te}),(0,$.jsx)(jo,{open:Xt,onClose:Gn,client:e,user:t,branchId:tn,initialCommands:$t}),(0,$.jsx)(Ei,{open:ke,onClose:()=>{Ae(!1),Me(`assistant`),Pe(null)},defaultTab:je,currentBoardId:q,defaultPosition:Ne||void 0,onCreateBranch:Yn,onCreateBoard:Xn,onCreateRepo:e=>D?.(e),onCreateLocalRepo:e=>O?.(e),onCreateAssistant:Zn,availableAgents:i,currentUser:t,client:e,branchStorageConfig:ve}),un&&(0,$.jsx)(_t,{open:!!un,onClose:()=>dn(null),branch:Dr,client:e}),(0,$.jsx)(Po,{open:fn,onClose:()=>pn(!1)}),(0,$.jsx)(rr,{open:ot,initialTab:l,onClose:()=>{Ge(!1),u?.()},user:t||null,currentUser:t||null,client:e,onUpdate:R,onRestartOnboarding:async()=>{Ge(!1),u?.(),await U?.()}})]})]})};export{ss as App};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{Bt as t,Fn as n,It as r,Un as i,jn as a,ln as o,ur as s,yt as c,zt as l}from"./antd-BCqimh1J.js";import{n as u,t as d}from"./sandpack-059Z4UWP.js";import{N as f}from"./editor-Cr0W5BQI.js";import{t as p}from"./reactflow-D98uPOMq.js";import{t as m}from"./sandpackDefaults-CPMNDsw7.js";var h=e(s(),1),g=f(),_=300,v=200,y=({data:e,selected:s})=>{let{token:f}=t.useToken(),[y,b]=(0,h.useState)(!1),x=(0,h.useRef)(null),S=m({template:e.template,files:e.files,dependencies:e.dependencies,entryFile:e.entryFile}),C=(0,h.useCallback)((t,n)=>{let r={type:`app`,x:n.x,y:n.y,width:Math.max(n.width,_),height:Math.max(n.height,v),title:e.title,description:e.description,template:e.template,files:e.files,dependencies:e.dependencies,entryFile:e.entryFile,showEditor:e.showEditor,showConsole:e.showConsole};e.onUpdate(e.objectId,r)},[e]),w=(0,h.useCallback)(()=>{b(e=>!e)},[]),T=e.height-40-16;return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(p,{isVisible:s,minWidth:_,minHeight:v,onResize:C,lineStyle:{borderColor:f.colorPrimary},handleStyle:{backgroundColor:f.colorPrimary,width:8,height:8}}),(0,g.jsx)(a,{style:{width:e.width,height:e.height,background:f.colorBgContainer,border:`2px solid ${s?f.colorPrimary:f.colorBorder}`,borderRadius:8,boxShadow:f.boxShadowSecondary,overflow:`hidden`,display:`flex`,flexDirection:`column`},styles:{body:{padding:0,flex:1,display:`flex`,flexDirection:`column`,overflow:`hidden`}},size:`small`,title:(0,g.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,g.jsx)(r.Text,{style:{fontSize:12,fontWeight:600,maxWidth:e.width-120},ellipsis:!0,children:e.title}),(0,g.jsxs)(`div`,{style:{display:`flex`,gap:2},children:[(0,g.jsx)(i,{title:y?`Exit interact mode`:`Interact with app`,children:(0,g.jsx)(n,{type:y?`primary`:`text`,size:`small`,icon:y?(0,g.jsx)(o,{}):(0,g.jsx)(c,{}),onClick:e=>{e.stopPropagation(),w()}})}),e.onDelete&&(0,g.jsx)(n,{type:`text`,size:`small`,danger:!0,icon:(0,g.jsx)(l,{}),onClick:t=>{t.stopPropagation(),e.onDelete?.(e.objectId)}})]})]}),children:(0,g.jsx)(`div`,{ref:x,className:y?`nodrag nopan nowheel`:void 0,style:{flex:1,position:`relative`,pointerEvents:y?`auto`:`none`},children:(0,g.jsx)(u,{template:S.template,files:S.files,customSetup:S.customSetup,options:S.options,children:(0,g.jsx)(d,{style:{height:T>0?T:200,border:`none`},showNavigator:!1,showOpenInCodeSandbox:!1,showRefreshButton:y})})})})]})};export{y as AppNode};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{Bt as t,Fn as n,H as r,It as i,Pn as a,T as o,Un as s,Vt as c,_n as l,in as u,ir as d,jn as f,n as p,ur as m,w as h}from"./antd-BCqimh1J.js";import{i as g,r as _}from"./sandpack-059Z4UWP.js";import{N as v}from"./editor-Cr0W5BQI.js";import{L as y,Lt as b,R as x,Rt as S,Yt as C,qn as w,z as T}from"./index-B-qHc0o5.js";var E=e(m(),1);function D(){return typeof window>`u`?null:w()??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(`${C()}/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(`${C()}/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(`${C()}/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({payload:e,onTrustClick:n,className:r,style:i}){let{token:a}=t.useToken(),o=e.trust_state;if(o===`no_secrets_needed`)return null;let c=o===`untrusted`,l=o===`trusted`,u=o===`self`,d=e.trust_scope===`instance`?`instance-wide`:e.trust_scope===`author`?`this author`:e.trust_scope===`session`?`just-once`:`this artifact`,f=c?n?`Click to review and grant trust so secrets are injected`:`Secrets are locked until trust is granted`:l?`Secrets injected — trust granted for ${d}`:u?`You created this artifact; secrets are injected`:`Artifact trust status`,m=c?a.colorWarning:l?a.colorSuccess:a.colorInfo,g=c?a.colorWarningBg:l?a.colorSuccessBg:a.colorInfoBg,_=c?(0,A.jsx)(p,{}):(0,A.jsx)(h,{}),v={width:20,height:20,borderRadius:3,backgroundColor:g,border:`1px solid ${m}`,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,flexShrink:0,padding:0,appearance:`none`,color:m,fontSize:12,lineHeight:1,...i};return(0,A.jsx)(s,{title:f,children:c&&n?(0,A.jsx)(`button`,{type:`button`,className:r,"aria-label":`Review artifact trust`,style:{...v,backgroundClip:`padding-box`,cursor:`pointer`,font:`inherit`},onClick:e=>{e.stopPropagation(),n()},children:_}):(0,A.jsx)(`span`,{className:r,style:v,children:_})})}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:t,name:s,files:m,requiredEnvVars:h,grants:g,hideInstanceScope:_,onClose:v,onGranted:w}){let{featuresConfig:D}=S(),{showSuccess:k,showError:j}=b(),[M,N]=(0,E.useState)(`artifact`),[P,F]=(0,E.useState)(null),[I,L]=(0,E.useState)(!1),R=!!g.agor_token,z=_??D?.multiUser===!0,B=(0,E.useMemo)(()=>Object.entries(m).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})),[m]),V=H(g);return(0,A.jsxs)(u,{title:(0,A.jsxs)(`span`,{children:[(0,A.jsx)(o,{style:{marginRight:8}}),`Trust “`,s,`” to render with secrets`]}),open:e,onCancel:v,width:920,footer:null,destroyOnHidden:!0,children:[(0,A.jsx)(d,{type:`warning`,showIcon:!0,icon:(0,A.jsx)(p,{}),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)(f,{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)(y,{files:B,onFileClick:e=>F(`/${e.path}`),emptyMessage:`No files in this artifact`})})}),(0,A.jsx)(f,{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)(T,{language:x(P),showLineNumbers:!0,customStyle:{margin:0,borderRadius:0,fontSize:12,maxHeight:`none`},children:m[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)(i.Title,{level:5,style:{marginBottom:8},children:`Requested env vars`}),(0,A.jsxs)(l,{size:[4,4],wrap:!0,children:[h.length===0&&(0,A.jsx)(i.Text,{type:`secondary`,children:`(none)`}),h.map(e=>(0,A.jsx)(c,{icon:(0,A.jsx)(r,{}),color:`gold`,children:e},e))]})]}),(0,A.jsxs)(`div`,{style:{marginTop:16},children:[(0,A.jsx)(i.Title,{level:5,style:{marginBottom:8},children:`Daemon capabilities`}),(0,A.jsxs)(l,{size:[4,4],wrap:!0,children:[V.length===0&&(0,A.jsx)(i.Text,{type:`secondary`,children:`(none)`}),V]}),R&&(0,A.jsx)(d,{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)(i.Title,{level:5,style:{marginBottom:8},children:`Trust scope`}),(0,A.jsx)(a.Group,{value:M,onChange:e=>N(e.target.value),children:(0,A.jsxs)(l,{orientation:`vertical`,children:[(0,A.jsx)(a,{value:`session`,children:`Just once (in-memory; cleared when daemon restarts)`}),(0,A.jsx)(a,{value:`artifact`,children:`This artifact only`}),(0,A.jsxs)(a,{value:`author`,disabled:R,children:[`Anything published by this author`,R?` (disabled — agor_token requires artifact scope)`:``]}),!z&&(0,A.jsxs)(a,{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)(n,{onClick:v,children:`Render without secrets`}),(0,A.jsx)(n,{type:`primary`,loading:I,onClick:async()=>{L(!0);try{let e=await fetch(`${C()}/artifacts/${t}/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`),w()}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,r]of Object.entries(e)){if(n===`agor_proxies`){let e=r??[];for(let n of e)t.push((0,A.jsxs)(c,{color:`purple`,children:[`agor_proxies:`,n]},`proxy:${n}`));continue}if(!r)continue;let e=B.has(n);t.push((0,A.jsx)(c,{color:e?`red`:`blue`,icon:e?(0,A.jsx)(p,{}):void 0,children:n},n))}return t}export{I as a,L as i,z as n,R as o,F as r,O as s,V as t};
|
|
Binary file
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{Bt as t,Fn as n,It as r,Ot as i,R as a,Un as o,_n as s,ir as c,n as l,on as u,sn as d,tn as f,un as p,ur as m}from"./antd-BCqimh1J.js";import{x as h}from"./src-DEbsv3pp.js";import{n as g,t as _}from"./sandpack-059Z4UWP.js";import{N as v}from"./editor-Cr0W5BQI.js";import{l as y,u as b}from"./chunk-4ZMWKKQ3-3oKtfWXp.js";import{Hn as x,Yt as S,_ as C}from"./index-B-qHc0o5.js";import{n as w,t as T}from"./ThemeSwitcher-Cgyp5ruu.js";import{n as E}from"./sandpackDefaults-CPMNDsw7.js";import{a as D,i as O,n as k,o as A,r as j,s as M,t as N}from"./ArtifactConsentModal-DjzXcP_L.js";var P=e(m(),1),F=v();k();var{Header:I,Content:L}=d,{Title:R}=r;function z({artifact:e,payload:r,title:c,loading:l,currentUser:u,onReload:d,onTrustClick:m,onHideNavbar:g,onUserSettingsClick:_,onLogout:v}){let{token:y}=t.useToken();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)(s,{size:12,style:{minWidth:0,flex:1,overflow:`hidden`},children:[(0,F.jsx)(n,{type:`text`,icon:(0,F.jsx)(i,{}),href:e?.url??void 0,disabled:!e?.url,children:`Board`}),(0,F.jsx)(x,{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:c}),r&&(0,F.jsx)(A,{payload:r,onTrustClick:m}),(0,F.jsx)(o,{title:`Hide navbar`,children:(0,F.jsx)(n,{type:`text`,size:`small`,"aria-label":`Hide navbar`,icon:(0,F.jsx)(p,{}),onClick:g,style:{display:`inline-flex`,alignItems:`center`,justifyContent:`center`,flexShrink:0}})})]})]}),(0,F.jsxs)(s,{style:{flexShrink:0},children:[(r?.source_session_id||e?.source_session_id)&&(0,F.jsx)(o,{title:`Open session that created this artifact`,children:(0,F.jsx)(n,{icon:(0,F.jsx)(a,{}),href:C(h(r?.source_session_id??e?.source_session_id)),target:`_blank`,rel:`noopener noreferrer`,children:`Session`})}),e?.url&&(0,F.jsx)(n,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,children:`Open board link`}),(0,F.jsx)(n,{icon:(0,F.jsx)(f,{}),onClick:d,loading:l,children:`Reload`}),(0,F.jsx)(T,{}),(0,F.jsx)(w,{user:u,onUserSettingsClick:_,onLogout:v})]})]})}function B({client:e,currentUser:r,onUserSettingsClick:i,onLogout:a}){let{token:o}=t.useToken(),{artifactShortId:s}=y(),[f,p]=b(),m=f.get(`show_navbar`)!==`false`&&f.get(`chrome`)!==`0`&&f.get(`navbar`)!==`0`,[h,v]=(0,P.useState)(null),[x,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=s??``,H=(0,P.useCallback)(async()=>{if(V)try{T(!0),A(null);let t=await fetch(`${S()}/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{v(await e.service(`artifacts`).get(n.artifact_id))}catch{v(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=x?.artifact_id??h?.artifact_id;!t||e.artifact_id!==t||(v(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,x?.artifact_id]);let U=x?.sandpack_config??{},W=U.options??{},G=x?{...U.customSetup??{},...x.dependencies&&!U.customSetup?.dependencies?{dependencies:x.dependencies}:{}}:{},K=U.template??x?.template??`react`,q=x?.name??h?.name??`Artifact ${V}`,J=(0,P.useCallback)(()=>{let e=new URLSearchParams(f);e.set(`show_navbar`,`false`),e.delete(`chrome`),e.delete(`navbar`),p(e,{replace:!0})},[f,p]),Y=(0,P.useCallback)(()=>{let e=new URLSearchParams(f);e.delete(`show_navbar`),e.delete(`chrome`),e.delete(`navbar`),p(e,{replace:!0})},[f,p]),X=w&&!x?(0,F.jsx)(u,{size:`large`,tip:`Loading artifact...`}):k?(0,F.jsx)(c,{type:`error`,showIcon:!0,title:`Failed to load artifact`,description:k,action:(0,F.jsx)(n,{onClick:H,children:`Retry`})}):x?(0,F.jsxs)(`div`,{style:{height:`100%`,width:`100%`,display:`flex`,flexDirection:`column`},children:[x.legacy?.is_legacy&&(0,F.jsx)(c,{type:`warning`,showIcon:!0,icon:(0,F.jsx)(l,{}),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)(g,{template:K,files:E(x.files),customSetup:Object.keys(G).length>0?G:void 0,theme:U.theme,options:{initMode:`user-visible`,...W,...x.entry&&!W.activeFile?{activeFile:x.entry}:{}},children:[(0,F.jsx)(_,{style:{height:`100%`,border:`none`},showNavigator:!1,showOpenInCodeSandbox:!1,showRefreshButton:!0}),(0,F.jsx)(j,{artifactId:x.artifact_id,contentHash:x.runtime_report_hash??x.content_hash}),(0,F.jsx)(D,{artifactId:x.artifact_id,contentHash:x.runtime_report_hash??x.content_hash}),(0,F.jsx)(O,{artifactId:x.artifact_id})]},x.content_hash)})]}):null;return(0,F.jsxs)(d,{style:{minHeight:`100vh`,background:o.colorBgLayout},children:[m?(0,F.jsx)(z,{artifact:h,payload:x,title:q,loading:w,currentUser:r,onReload:H,onTrustClick:()=>R(!0),onHideNavbar:J,onUserSettingsClick:i,onLogout:a}):(0,F.jsx)(n,{size:`small`,onClick:Y,style:{position:`fixed`,top:12,right:12,zIndex:10},children:`Show navbar`}),(0,F.jsx)(L,{style:{height:m?`calc(100vh - 56px)`:`100vh`,display:`flex`,alignItems:w&&!x?`center`:`stretch`,justifyContent:w&&!x?`center`:`stretch`,overflow:`hidden`,background:o.colorBgContainer},children:X}),x&&I&&(0,F.jsx)(N,{open:I,artifactId:x.artifact_id,name:x.name,files:x.files,requiredEnvVars:x.required_env_vars??[],grants:x.agor_grants??{},onClose:()=>R(!1),onGranted:()=>{R(!1),H()}})]})}export{B as ArtifactFullscreenPage};
|
|
Binary file
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{Bt as t,Fn as n,H as r,It as i,Lt as a,R as o,St as s,Un as c,bt as l,et as ee,ir as u,jn as d,ln as te,n as f,nr as p,on as m,rn as h,s as ne,tn as g,ur as _,ut as re,zn as v,zt as y}from"./antd-BCqimh1J.js";import{g as b,q as ie,x as ae}from"./src-DEbsv3pp.js";import{a as x,n as S,r as C,t as w}from"./sandpack-059Z4UWP.js";import{N as T}from"./editor-Cr0W5BQI.js";import{t as oe}from"./reactflow-D98uPOMq.js";import{Lt as E,Yn as D,Yt as se,_ as O}from"./index-B-qHc0o5.js";import{t as ce}from"./sandpackDefaults-CPMNDsw7.js";import{a as k,i as A,n as j,o as M,r as N,s as P,t as F}from"./ArtifactConsentModal-DjzXcP_L.js";var I=e(x(),1),L=e(_(),1),R=T();j();var z=300,B=200,V={},H=new Set([`agor.config.js`,`agor.artifact.json`,`.env`]);function U({artifactId:e}){let{sandpack:t}=C(),{showError:n}=E(),r=(0,L.useRef)(t);return r.current=t,(0,L.useEffect)(()=>{let t=()=>{let e=r.current,t={};for(let[n,r]of Object.entries(e.files)){let e=n.startsWith(`/`)?n.slice(1):n;H.has(e)||(t[e]={content:r.code,isBinary:!1})}let i={files:t};e.environment&&(i.template=e.environment);let a=(0,I.compressToBase64)(JSON.stringify(i)).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``),o=document.createElement(`form`);o.method=`POST`,o.action=`https://codesandbox.io/api/v1/sandboxes/define`,o.target=`_blank`;let s=document.createElement(`input`);if(s.type=`hidden`,s.name=`parameters`,s.value=a,o.appendChild(s),e.environment){let t=document.createElement(`input`);t.type=`hidden`,t.name=`environment`,t.value=e.environment,o.appendChild(t)}document.body.appendChild(o);try{o.submit()}catch(e){n(`Open in CodeSandbox failed: ${e instanceof Error?e.message:String(e)}`)}finally{o.remove()}},i=`agor:export-codesandbox-${e}`;return window.addEventListener(i,t),()=>window.removeEventListener(i,t)},[e,n]),null}var W=({data:e,selected:a})=>{let{token:u}=t.useToken(),[f,_]=(0,L.useState)(!1),[x,C]=(0,L.useState)(null),[T,E]=(0,L.useState)(!0),[D,j]=(0,L.useState)(null),[I,H]=(0,L.useState)(!1),W=(0,L.useRef)(null),K=x?.sandpack_config,le=K?.options,q=ce({template:K?.template??x?.template??`react`,files:x?.files??V,customSetup:K?.customSetup,dependencies:x?.dependencies,entryFile:x?.entry,options:le}),J=(0,L.useCallback)(async()=>{try{E(!0),j(null);let t=await fetch(`${se()}/artifacts/${e.artifactId}/payload`,{headers:P()});if(!t.ok)throw Error(`Failed to load artifact: ${t.statusText}`);let n=await t.json();W.current=n.content_hash,C(n)}catch(e){j(e instanceof Error?e.message:String(e))}finally{E(!1)}},[e.artifactId]);(0,L.useEffect)(()=>{J()},[J]),(0,L.useEffect)(()=>{let t=t=>{let{artifactId:n,contentHash:r}=t.detail;n===e.artifactId&&r!==W.current&&J()};return window.addEventListener(`agor:artifact-patched`,t),()=>window.removeEventListener(`agor:artifact-patched`,t)},[e.artifactId,J]);let ue=(0,L.useCallback)((t,n)=>{let r={type:`artifact`,x:n.x,y:n.y,width:Math.max(n.width,z),height:Math.max(n.height,B),artifact_id:e.artifactId,locked:e.locked};e.onUpdate(e.objectId,r)},[e]),de=(0,L.useCallback)(()=>{let t={type:`artifact`,x:e.x,y:e.y,width:e.width,height:e.height,artifact_id:e.artifactId,locked:!e.locked};e.onUpdate(e.objectId,t)},[e]),fe=(0,L.useCallback)(()=>{window.dispatchEvent(new CustomEvent(`agor:export-codesandbox-${e.artifactId}`))},[e.artifactId]),pe=(0,L.useCallback)(()=>{x?.source_session_id&&window.open(O(ae(x.source_session_id)),`_blank`,`noopener,noreferrer`)},[x?.source_session_id]),me=(0,L.useCallback)(()=>{window.open(O(b(e.artifactId)),`_blank`,`noopener,noreferrer`)},[e.artifactId]),Y=`Artifact ${ie(e.artifactId)}`,he=D?`error`:T?`processing`:`success`,ge=D?`Failed to load`:T?`Reloading...`:`Live`,X=!!x&&!D,Z=(0,R.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6,minWidth:0},children:[(0,R.jsx)(v,{status:he,title:ge}),(0,R.jsx)(i.Text,{style:{fontSize:12,fontWeight:600,maxWidth:e.width-200},ellipsis:!0,children:x?.name??Y}),X&&(0,R.jsx)(M,{payload:x,onTrustClick:()=>H(!0),className:`nodrag nopan`})]}),(0,R.jsxs)(`div`,{className:`nodrag nopan`,style:{display:`flex`,gap:2},children:[(0,R.jsx)(c,{title:e.locked?`Unlock artifact card`:`Lock artifact card`,children:(0,R.jsx)(n,{type:`text`,size:`small`,icon:e.locked?(0,R.jsx)(r,{}):(0,R.jsx)(ne,{}),onClick:e=>{e.stopPropagation(),de()},style:{backgroundColor:e.locked?u.colorWarningBg:void 0,color:e.locked?u.colorWarning:void 0}})}),x?.source_session_id&&(0,R.jsx)(c,{title:`Open session that created this artifact`,children:(0,R.jsx)(n,{type:`text`,size:`small`,icon:(0,R.jsx)(o,{}),onClick:e=>{e.stopPropagation(),pe()}})}),(0,R.jsx)(c,{title:`Open fullscreen`,children:(0,R.jsx)(n,{type:`text`,size:`small`,icon:(0,R.jsx)(ee,{}),onClick:e=>{e.stopPropagation(),me()}})}),X&&(0,R.jsx)(c,{title:`Open in CodeSandbox (eject — daemon-injected env vars/AGOR_TOKEN won't carry over)`,children:(0,R.jsx)(n,{type:`text`,size:`small`,icon:(0,R.jsx)(re,{}),onClick:e=>{e.stopPropagation(),fe()}})}),(0,R.jsx)(c,{title:`Reload`,children:(0,R.jsx)(n,{type:`text`,size:`small`,icon:(0,R.jsx)(g,{spin:T}),onClick:e=>{e.stopPropagation(),J()}})}),X&&(0,R.jsx)(c,{title:f?`Exit interact mode`:`Interact with app`,children:(0,R.jsx)(n,{type:f?`primary`:`text`,size:`small`,icon:f?(0,R.jsx)(s,{}):(0,R.jsx)(te,{}),onClick:e=>{e.stopPropagation(),_(e=>!e)}})}),e.onDeleteArtifact&&(0,R.jsx)(h,{title:`Delete artifact?`,description:`This will delete "${x?.name??Y}" and its files.`,onConfirm:t=>{t?.stopPropagation(),e.onDeleteArtifact?.(e.objectId,e.artifactId)},onCancel:e=>e?.stopPropagation(),okText:`Delete`,cancelText:`Cancel`,okButtonProps:{danger:!0},children:(0,R.jsx)(c,{title:`Delete artifact`,children:(0,R.jsx)(n,{type:`text`,size:`small`,danger:!0,icon:(0,R.jsx)(y,{}),onClick:e=>e.stopPropagation()})})})]})]}),_e=D?u.colorErrorBorder:a?u.colorPrimary:u.colorBorder,Q={width:e.width,height:e.height,background:u.colorBgContainer,border:`2px solid ${_e}`,borderRadius:8,boxShadow:u.boxShadowSecondary,overflow:`hidden`,display:`flex`,flexDirection:`column`,...e.isActiveUrlTarget?{outline:`2px dashed ${u.colorTextBase}`,outlineOffset:-3}:{}},$=(0,R.jsx)(oe,{isVisible:a&&!e.locked,minWidth:z,minHeight:B,onResize:ue,lineStyle:{borderColor:u.colorPrimary},handleStyle:{backgroundColor:u.colorPrimary,width:8,height:8}});if(T&&!x)return(0,R.jsxs)(R.Fragment,{children:[$,(0,R.jsx)(d,{style:Q,styles:{body:{padding:0,flex:1,display:`flex`,alignItems:`center`,justifyContent:`center`}},size:`small`,title:Z,children:(0,R.jsx)(m,{indicator:(0,R.jsx)(p,{}),description:`Loading artifact...`})})]});if(D)return(0,R.jsxs)(R.Fragment,{children:[$,(0,R.jsxs)(d,{style:Q,styles:{body:{padding:0,flex:1,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:8}},size:`small`,title:Z,children:[(0,R.jsx)(l,{style:{fontSize:24,color:u.colorError}}),(0,R.jsx)(i.Text,{type:`danger`,style:{fontSize:12,textAlign:`center`,padding:`0 16px`},children:D}),(0,R.jsx)(n,{className:`nodrag nopan`,size:`small`,icon:(0,R.jsx)(g,{}),onClick:e=>{e.stopPropagation(),J()},children:`Retry`})]})]});if(!x)return null;let ve=x.legacy?.is_legacy?(0,R.jsx)(G,{upgradeInstructions:x.legacy.upgrade_instructions}):null;return(0,R.jsxs)(R.Fragment,{children:[$,(0,R.jsxs)(d,{style:Q,styles:{body:{padding:0,flex:1,display:`flex`,flexDirection:`column`,overflow:`hidden`}},size:`small`,title:Z,children:[(0,R.jsx)(`style`,{children:`
|
|
2
|
+
.artifact-sandpack-wrapper .sp-wrapper,
|
|
3
|
+
.artifact-sandpack-wrapper .sp-layout,
|
|
4
|
+
.artifact-sandpack-wrapper .sp-stack,
|
|
5
|
+
.artifact-sandpack-wrapper .sp-preview,
|
|
6
|
+
.artifact-sandpack-wrapper .sp-preview-container {
|
|
7
|
+
height: 100% !important;
|
|
8
|
+
}
|
|
9
|
+
`}),(0,R.jsxs)(`div`,{className:`artifact-sandpack-wrapper${f?` nodrag nopan nowheel`:``}`,style:{flex:1,position:`relative`,display:`flex`,flexDirection:`column`},children:[ve,!f&&(0,R.jsx)(`div`,{style:{position:`absolute`,inset:0,zIndex:1}}),(0,R.jsxs)(S,{template:q.template,files:q.files,customSetup:q.customSetup,theme:K?.theme,options:q.options,children:[(0,R.jsx)(w,{style:{height:`100%`,border:`none`},showNavigator:!1,showOpenInCodeSandbox:!1,showRefreshButton:f}),(0,R.jsx)(N,{artifactId:e.artifactId,contentHash:x.runtime_report_hash??x.content_hash}),(0,R.jsx)(k,{artifactId:e.artifactId,contentHash:x.runtime_report_hash??x.content_hash}),(0,R.jsx)(A,{artifactId:e.artifactId}),(0,R.jsx)(U,{artifactId:e.artifactId})]},x.content_hash)]})]}),I&&(0,R.jsx)(F,{open:I,artifactId:x.artifact_id,name:x.name,files:x.files,requiredEnvVars:x.required_env_vars??[],grants:x.agor_grants??{},onClose:()=>H(!1),onGranted:()=>{H(!1),J()}})]})};function G({upgradeInstructions:e}){let{token:r}=t.useToken(),{showSuccess:i,showError:o}=E();return(0,R.jsx)(u,{type:`warning`,showIcon:!0,icon:(0,R.jsx)(f,{}),className:`nodrag nopan`,style:{borderRadius:0,fontSize:11,padding:`10px 14px`},title:`Legacy artifact — won't render correctly`,description:(0,R.jsxs)(`details`,{style:{marginTop:4},children:[(0,R.jsx)(`summary`,{style:{cursor:`pointer`,color:r.colorTextSecondary},children:`Show upgrade prompt for an agent`}),(0,R.jsxs)(`div`,{style:{position:`relative`,marginTop:6},children:[(0,R.jsx)(n,{type:`text`,size:`small`,icon:(0,R.jsx)(a,{}),onClick:async()=>{await D(e)?i(`Upgrade prompt copied — paste it to an agent`):o(`Failed to copy — select the text manually and copy with the keyboard`)},style:{position:`absolute`,top:4,right:4,zIndex:1,fontSize:11},children:`Copy`}),(0,R.jsx)(`pre`,{style:{whiteSpace:`pre-wrap`,fontSize:10,margin:0,padding:8,paddingRight:64,background:r.colorFillTertiary,borderRadius:4,maxHeight:180,overflow:`auto`,userSelect:`text`,cursor:`text`},children:e})]})]})})}export{W as ArtifactNode};
|
|
Binary file
|