@shepai/cli 1.179.1 → 1.180.0-pr548.764147
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/apis/json-schema/Application.yaml +40 -0
- package/apis/json-schema/ApplicationStatus.yaml +8 -0
- package/apis/json-schema/InteractiveMessage.yaml +3 -0
- package/apis/json-schema/WorkflowStep.yaml +53 -0
- package/apis/json-schema/WorkflowStepStatus.yaml +10 -0
- package/dist/packages/core/src/application/ports/output/repositories/application-repository.interface.d.ts +17 -0
- package/dist/packages/core/src/application/ports/output/repositories/application-repository.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/repositories/application-repository.interface.js +6 -0
- package/dist/packages/core/src/application/ports/output/repositories/index.d.ts +1 -0
- package/dist/packages/core/src/application/ports/output/repositories/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/repositories/interactive-session-repository.interface.d.ts +13 -0
- package/dist/packages/core/src/application/ports/output/repositories/interactive-session-repository.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/repositories/workflow-step-repository.interface.d.ts +52 -0
- package/dist/packages/core/src/application/ports/output/repositories/workflow-step-repository.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/repositories/workflow-step-repository.interface.js +11 -0
- package/dist/packages/core/src/application/ports/output/services/application-brief-store.interface.d.ts +36 -0
- package/dist/packages/core/src/application/ports/output/services/application-brief-store.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/application-brief-store.interface.js +22 -0
- package/dist/packages/core/src/application/ports/output/services/application-creation-prompt-builder.interface.d.ts +116 -0
- package/dist/packages/core/src/application/ports/output/services/application-creation-prompt-builder.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/application-creation-prompt-builder.interface.js +27 -0
- package/dist/packages/core/src/application/ports/output/services/application-file-system-service.interface.d.ts +100 -0
- package/dist/packages/core/src/application/ports/output/services/application-file-system-service.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/application-file-system-service.interface.js +20 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts +4 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/index.js +1 -0
- package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts +111 -5
- package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/terminal-session-service.interface.d.ts +46 -0
- package/dist/packages/core/src/application/ports/output/services/terminal-session-service.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/terminal-session-service.interface.js +9 -0
- package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.d.ts +92 -0
- package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.js +305 -0
- package/dist/packages/core/src/application/use-cases/applications/delete-application.use-case.d.ts +15 -0
- package/dist/packages/core/src/application/use-cases/applications/delete-application.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/delete-application.use-case.js +45 -0
- package/dist/packages/core/src/application/use-cases/applications/get-application.use-case.d.ts +13 -0
- package/dist/packages/core/src/application/use-cases/applications/get-application.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/get-application.use-case.js +33 -0
- package/dist/packages/core/src/application/use-cases/applications/index.d.ts +13 -0
- package/dist/packages/core/src/application/use-cases/applications/index.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/index.js +10 -0
- package/dist/packages/core/src/application/use-cases/applications/list-application-files.use-case.d.ts +18 -0
- package/dist/packages/core/src/application/use-cases/applications/list-application-files.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/list-application-files.use-case.js +41 -0
- package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.d.ts +13 -0
- package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.js +33 -0
- package/dist/packages/core/src/application/use-cases/applications/read-application-file-raw.use-case.d.ts +22 -0
- package/dist/packages/core/src/application/use-cases/applications/read-application-file-raw.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/read-application-file-raw.use-case.js +46 -0
- package/dist/packages/core/src/application/use-cases/applications/read-application-file.use-case.d.ts +19 -0
- package/dist/packages/core/src/application/use-cases/applications/read-application-file.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/read-application-file.use-case.js +43 -0
- package/dist/packages/core/src/application/use-cases/applications/update-application.use-case.d.ts +14 -0
- package/dist/packages/core/src/application/use-cases/applications/update-application.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/update-application.use-case.js +33 -0
- package/dist/packages/core/src/application/use-cases/applications/watch-application-files.use-case.d.ts +21 -0
- package/dist/packages/core/src/application/use-cases/applications/watch-application-files.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/watch-application-files.use-case.js +43 -0
- package/dist/packages/core/src/application/use-cases/applications/write-application-file.use-case.d.ts +22 -0
- package/dist/packages/core/src/application/use-cases/applications/write-application-file.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/applications/write-application-file.use-case.js +44 -0
- package/dist/packages/core/src/application/use-cases/interactive/send-interactive-message.use-case.d.ts +18 -0
- package/dist/packages/core/src/application/use-cases/interactive/send-interactive-message.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/interactive/send-interactive-message.use-case.js +1 -1
- package/dist/packages/core/src/application/use-cases/terminal/create-terminal-session.use-case.d.ts +19 -0
- package/dist/packages/core/src/application/use-cases/terminal/create-terminal-session.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/terminal/create-terminal-session.use-case.js +42 -0
- package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts +77 -0
- package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.js +191 -0
- package/dist/packages/core/src/application/workflows/application-creation.workflow.d.ts +50 -0
- package/dist/packages/core/src/application/workflows/application-creation.workflow.d.ts.map +1 -0
- package/dist/packages/core/src/application/workflows/application-creation.workflow.js +138 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +102 -0
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/domain/generated/output.js +14 -0
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +93 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.d.ts +37 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.js +52 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/interactive-message.mapper.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/interactive-message.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/interactive-message.mapper.js +2 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-step.mapper.d.ts +25 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-step.mapper.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-step.mapper.js +50 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-create-applications-table.d.ts +5 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-create-applications-table.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-create-applications-table.js +34 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/057-workflow-steps.d.ts +31 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/057-workflow-steps.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/057-workflow-steps.js +72 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.d.ts +21 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.js +98 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-message.repository.js +2 -2
- package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.js +16 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-step.repository.d.ts +29 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-step.repository.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-step.repository.js +157 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/application-creation-prompt.builder.d.ts +25 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/application-creation-prompt.builder.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/application-creation-prompt.builder.js +95 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/brand.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/brand.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/brand.js +11 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/dynamic.d.ts +14 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/dynamic.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/dynamic.js +50 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/mission.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/mission.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/mission.js +10 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/output-contract.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/output-contract.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/output-contract.js +20 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/quality.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/quality.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/quality.js +12 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/role.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/role.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/role.js +9 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/tech-stack.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/tech-stack.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/tech-stack.js +23 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/user-interaction.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/user-interaction.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/user-interaction.js +29 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/workflow.d.ts +15 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/workflow.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/workflow.js +40 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.js +14 -8
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +4 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.js +11 -6
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/pr-branding.d.ts +2 -2
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/pr-branding.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/pr-branding.js +2 -2
- package/dist/packages/core/src/infrastructure/services/filesystem/application-brief.store.d.ts +20 -0
- package/dist/packages/core/src/infrastructure/services/filesystem/application-brief.store.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/filesystem/application-brief.store.js +40 -0
- package/dist/packages/core/src/infrastructure/services/filesystem/node-application-file-system.service.d.ts +18 -0
- package/dist/packages/core/src/infrastructure/services/filesystem/node-application-file-system.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/filesystem/node-application-file-system.service.js +292 -0
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +3 -2
- package/dist/packages/core/src/infrastructure/services/git/pr-branding.d.ts +16 -5
- package/dist/packages/core/src/infrastructure/services/git/pr-branding.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/git/pr-branding.js +38 -7
- package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts +49 -10
- package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.js +323 -149
- package/dist/packages/core/src/infrastructure/services/terminal/pty-terminal-session.service.d.ts +22 -0
- package/dist/packages/core/src/infrastructure/services/terminal/pty-terminal-session.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/terminal/pty-terminal-session.service.js +182 -0
- package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -1
- package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +11 -1
- package/dist/src/presentation/web/app/actions/check-all-agents-status.d.ts +7 -0
- package/dist/src/presentation/web/app/actions/check-all-agents-status.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/check-all-agents-status.js +30 -0
- package/dist/src/presentation/web/app/actions/create-application.d.ts +33 -0
- package/dist/src/presentation/web/app/actions/create-application.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/create-application.js +29 -0
- package/dist/src/presentation/web/app/actions/create-project-and-feature.d.ts +20 -0
- package/dist/src/presentation/web/app/actions/create-project-and-feature.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/create-project-and-feature.js +84 -0
- package/dist/src/presentation/web/app/actions/delete-application.d.ts +4 -0
- package/dist/src/presentation/web/app/actions/delete-application.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/delete-application.js +16 -0
- package/dist/src/presentation/web/app/actions/deploy-application.d.ts +20 -0
- package/dist/src/presentation/web/app/actions/deploy-application.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/deploy-application.js +62 -0
- package/dist/src/presentation/web/app/actions/get-application-debug-prompt.d.ts +25 -0
- package/dist/src/presentation/web/app/actions/get-application-debug-prompt.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/get-application-debug-prompt.js +37 -0
- package/dist/src/presentation/web/app/actions/get-git-log.js +2 -2
- package/dist/src/presentation/web/app/actions/update-application.d.ts +5 -0
- package/dist/src/presentation/web/app/actions/update-application.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/update-application.js +21 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/content/route.d.ts +17 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/content/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/content/route.js +63 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/raw/route.d.ts +17 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/raw/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/raw/route.js +55 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/route.d.ts +16 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/route.js +23 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/watch/route.d.ts +21 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/watch/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/applications/[id]/files/watch/route.js +86 -0
- package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.d.ts +15 -6
- package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.d.ts.map +1 -1
- package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.js +36 -20
- package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/stream/route.d.ts +21 -0
- package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/stream/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/stream/route.js +82 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/input/route.d.ts +15 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/input/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/input/route.js +27 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/resize/route.d.ts +15 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/resize/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/resize/route.js +27 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/route.d.ts +15 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/route.js +20 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/stream/route.d.ts +17 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/stream/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/terminal/[sessionId]/stream/route.js +76 -0
- package/dist/src/presentation/web/app/api/terminal/route.d.ts +12 -0
- package/dist/src/presentation/web/app/api/terminal/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/terminal/route.js +34 -0
- package/dist/src/presentation/web/app/application/[id]/page.d.ts +8 -0
- package/dist/src/presentation/web/app/application/[id]/page.d.ts.map +1 -0
- package/dist/src/presentation/web/app/application/[id]/page.js +65 -0
- package/dist/src/presentation/web/app/build-graph-nodes.d.ts +3 -1
- package/dist/src/presentation/web/app/build-graph-nodes.d.ts.map +1 -1
- package/dist/src/presentation/web/app/build-graph-nodes.js +19 -0
- package/dist/src/presentation/web/components/assistant-ui/thread.d.ts +5 -1
- package/dist/src/presentation/web/components/assistant-ui/thread.d.ts.map +1 -1
- package/dist/src/presentation/web/components/assistant-ui/thread.js +19 -5
- package/dist/src/presentation/web/components/common/application-node/application-node-config.d.ts +24 -0
- package/dist/src/presentation/web/components/common/application-node/application-node-config.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/application-node/application-node-config.js +1 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.d.ts +7 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.js +156 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.stories.d.ts +12 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.stories.js +100 -0
- package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.js +1 -1
- package/dist/src/presentation/web/components/features/application-page/application-page.d.ts +31 -0
- package/dist/src/presentation/web/components/features/application-page/application-page.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/application-page.js +330 -0
- package/dist/src/presentation/web/components/features/application-page/application-page.stories.d.ts +9 -0
- package/dist/src/presentation/web/components/features/application-page/application-page.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/application-page.stories.js +51 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/api.d.ts +11 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/api.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/api.js +35 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/editor-pane.d.ts +27 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/editor-pane.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/editor-pane.js +147 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/file-tree-panel.d.ts +19 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/file-tree-panel.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/file-tree-panel.js +85 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/ide-tab.d.ts +16 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/ide-tab.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/ide-tab.js +53 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/ide-tab.stories.d.ts +9 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/ide-tab.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/ide-tab.stories.js +111 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/image-viewer.d.ts +27 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/image-viewer.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/image-viewer.js +162 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/index.d.ts +3 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/index.js +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/types.d.ts +56 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/types.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/types.js +35 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/use-ide-state.d.ts +39 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/use-ide-state.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/use-ide-state.js +238 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/use-resolved-theme.d.ts +14 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/use-resolved-theme.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/ide-tab/use-resolved-theme.js +37 -0
- package/dist/src/presentation/web/components/features/application-page/run-dev-button.d.ts +19 -0
- package/dist/src/presentation/web/components/features/application-page/run-dev-button.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/run-dev-button.js +80 -0
- package/dist/src/presentation/web/components/features/application-page/terminal-tab.d.ts +9 -0
- package/dist/src/presentation/web/components/features/application-page/terminal-tab.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/terminal-tab.js +224 -0
- package/dist/src/presentation/web/components/features/application-page/web-preview-tab.d.ts +6 -0
- package/dist/src/presentation/web/components/features/application-page/web-preview-tab.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/application-page/web-preview-tab.js +57 -0
- package/dist/src/presentation/web/components/features/chat/ChatSheet.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatSheet.js +4 -2
- package/dist/src/presentation/web/components/features/chat/ChatTab.d.ts +38 -1
- package/dist/src/presentation/web/components/features/chat/ChatTab.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatTab.js +53 -8
- package/dist/src/presentation/web/components/features/chat/StepTracker.d.ts +36 -0
- package/dist/src/presentation/web/components/features/chat/StepTracker.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/StepTracker.js +133 -0
- package/dist/src/presentation/web/components/features/chat/StepTracker.stories.d.ts +11 -0
- package/dist/src/presentation/web/components/features/chat/StepTracker.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/StepTracker.stories.js +121 -0
- package/dist/src/presentation/web/components/features/chat/chat-state-query.d.ts +12 -0
- package/dist/src/presentation/web/components/features/chat/chat-state-query.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/chat-state-query.js +20 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/detect.d.ts +38 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/detect.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/detect.js +91 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/file-card.d.ts +17 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/file-card.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/file-card.js +25 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/generic-bubble.d.ts +11 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/generic-bubble.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/generic-bubble.js +15 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/index.d.ts +21 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/index.js +37 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/tool-chip.d.ts +14 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/tool-chip.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/tool-bubble/tool-chip.js +13 -0
- package/dist/src/presentation/web/components/features/chat/useChatRuntime.d.ts +52 -1
- package/dist/src/presentation/web/components/features/chat/useChatRuntime.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/useChatRuntime.js +360 -28
- package/dist/src/presentation/web/components/features/chat/workflow-placeholder.d.ts +21 -0
- package/dist/src/presentation/web/components/features/chat/workflow-placeholder.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/workflow-placeholder.js +40 -0
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts +3 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +183 -120
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.stories.d.ts +4 -16
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.stories.js +16 -109
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +40 -17
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +4 -0
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +25 -1
- package/dist/src/presentation/web/components/features/control-center/use-fab-actions.d.ts +2 -1
- package/dist/src/presentation/web/components/features/control-center/use-fab-actions.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/use-fab-actions.js +9 -2
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.js +2 -9
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts +2 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +2 -0
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.d.ts +3 -1
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.js +9 -4
- package/dist/src/presentation/web/hooks/deployment-status-provider.d.ts +1 -1
- package/dist/src/presentation/web/hooks/deployment-status-provider.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/deployment-status-provider.js +4 -1
- package/dist/src/presentation/web/hooks/use-graph-state.d.ts +5 -0
- package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-graph-state.js +37 -2
- package/dist/src/presentation/web/hooks/use-turn-statuses.d.ts +13 -3
- package/dist/src/presentation/web/hooks/use-turn-statuses.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-turn-statuses.js +73 -13
- package/dist/src/presentation/web/lib/derive-graph.d.ts +11 -1
- package/dist/src/presentation/web/lib/derive-graph.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/derive-graph.js +35 -1
- package/dist/src/presentation/web/lib/layout-with-dagre.d.ts +8 -1
- package/dist/src/presentation/web/lib/layout-with-dagre.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/layout-with-dagre.js +27 -3
- package/dist/src/presentation/web/next.config.d.ts.map +1 -1
- package/dist/src/presentation/web/next.config.js +1 -0
- package/dist/translations/ar/web.json +2 -1
- package/dist/translations/de/web.json +2 -1
- package/dist/translations/en/web.json +2 -1
- package/dist/translations/es/web.json +2 -1
- package/dist/translations/fr/web.json +2 -1
- package/dist/translations/he/web.json +2 -1
- package/dist/translations/pt/web.json +2 -1
- package/dist/translations/ru/web.json +2 -1
- package/dist/translations/uk/web.json +2 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +5 -3
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/app-path-routes-manifest.json +11 -0
- package/web/.next/build-manifest.json +5 -5
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +4 -3
- package/web/.next/required-server-files.json +4 -3
- package/web/.next/routes-manifest.json +84 -0
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +111 -81
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +6 -5
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +107 -77
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +6 -5
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +113 -83
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js +6 -5
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +129 -99
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +6 -5
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +129 -99
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +6 -5
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +109 -79
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +6 -5
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +109 -79
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +6 -5
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +107 -77
- package/web/.next/server/app/(dashboard)/chat/page.js +6 -5
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +113 -83
- package/web/.next/server/app/(dashboard)/create/page.js +6 -5
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +129 -99
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +6 -5
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +129 -99
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +6 -5
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +107 -77
- package/web/.next/server/app/(dashboard)/page.js +6 -5
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +109 -79
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +6 -5
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +109 -79
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +6 -5
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
- package/web/.next/server/app/_global-error/page.js +1 -1
- package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +27 -12
- package/web/.next/server/app/_not-found/page.js +2 -2
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/applications/[id]/files/content/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/applications/[id]/files/content/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/applications/[id]/files/content/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/applications/[id]/files/content/route.js +6 -0
- package/web/.next/server/app/api/applications/[id]/files/content/route.js.map +5 -0
- package/web/.next/server/app/api/applications/[id]/files/content/route.js.nft.json +1 -0
- package/web/.next/server/app/api/applications/[id]/files/content/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/applications/[id]/files/raw/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/applications/[id]/files/raw/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/applications/[id]/files/raw/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/applications/[id]/files/raw/route.js +7 -0
- package/web/.next/server/app/api/applications/[id]/files/raw/route.js.map +5 -0
- package/web/.next/server/app/api/applications/[id]/files/raw/route.js.nft.json +1 -0
- package/web/.next/server/app/api/applications/[id]/files/raw/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/applications/[id]/files/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/applications/[id]/files/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/applications/[id]/files/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/applications/[id]/files/route.js +6 -0
- package/web/.next/server/app/api/applications/[id]/files/route.js.map +5 -0
- package/web/.next/server/app/api/applications/[id]/files/route.js.nft.json +1 -0
- package/web/.next/server/app/api/applications/[id]/files/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/applications/[id]/files/watch/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/applications/[id]/files/watch/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/applications/[id]/files/watch/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/applications/[id]/files/watch/route.js +6 -0
- package/web/.next/server/app/api/applications/[id]/files/watch/route.js.map +5 -0
- package/web/.next/server/app/api/applications/[id]/files/watch/route.js.nft.json +1 -0
- package/web/.next/server/app/api/applications/[id]/files/watch/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/attachments/preview/route.js +1 -1
- package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/directory/list/route.js +1 -1
- package/web/.next/server/app/api/directory/list/route.js.nft.json +1 -1
- package/web/.next/server/app/api/evidence/route.js +1 -1
- package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
- package/web/.next/server/app/api/feature-logs/route.js +1 -1
- package/web/.next/server/app/api/feature-logs/route.js.nft.json +1 -1
- package/web/.next/server/app/api/graph-data/route.js +1 -1
- package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
- package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js +1 -1
- package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
- package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route.js +6 -0
- package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route.js.map +5 -0
- package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route.js.nft.json +1 -0
- package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/sessions/route.js +1 -1
- package/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/web/.next/server/app/api/sessions-batch/route.js +1 -1
- package/web/.next/server/app/api/sessions-batch/route.js.nft.json +1 -1
- package/web/.next/server/app/api/terminal/[sessionId]/input/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/terminal/[sessionId]/input/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/terminal/[sessionId]/input/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/terminal/[sessionId]/input/route.js +6 -0
- package/web/.next/server/app/api/terminal/[sessionId]/input/route.js.map +5 -0
- package/web/.next/server/app/api/terminal/[sessionId]/input/route.js.nft.json +1 -0
- package/web/.next/server/app/api/terminal/[sessionId]/input/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/terminal/[sessionId]/resize/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/terminal/[sessionId]/resize/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/terminal/[sessionId]/resize/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/terminal/[sessionId]/resize/route.js +6 -0
- package/web/.next/server/app/api/terminal/[sessionId]/resize/route.js.map +5 -0
- package/web/.next/server/app/api/terminal/[sessionId]/resize/route.js.nft.json +1 -0
- package/web/.next/server/app/api/terminal/[sessionId]/resize/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/terminal/[sessionId]/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/terminal/[sessionId]/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/terminal/[sessionId]/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/terminal/[sessionId]/route.js +6 -0
- package/web/.next/server/app/api/terminal/[sessionId]/route.js.map +5 -0
- package/web/.next/server/app/api/terminal/[sessionId]/route.js.nft.json +1 -0
- package/web/.next/server/app/api/terminal/[sessionId]/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/terminal/[sessionId]/stream/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/terminal/[sessionId]/stream/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/terminal/[sessionId]/stream/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/terminal/[sessionId]/stream/route.js +6 -0
- package/web/.next/server/app/api/terminal/[sessionId]/stream/route.js.map +5 -0
- package/web/.next/server/app/api/terminal/[sessionId]/stream/route.js.nft.json +1 -0
- package/web/.next/server/app/api/terminal/[sessionId]/stream/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/terminal/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/terminal/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/terminal/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/terminal/route.js +6 -0
- package/web/.next/server/app/api/terminal/route.js.map +5 -0
- package/web/.next/server/app/api/terminal/route.js.nft.json +1 -0
- package/web/.next/server/app/api/terminal/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/application/[id]/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/application/[id]/page/build-manifest.json +18 -0
- package/web/.next/server/app/application/[id]/page/next-font-manifest.json +6 -0
- package/web/.next/server/app/application/[id]/page/react-loadable-manifest.json +8 -0
- package/web/.next/server/app/application/[id]/page/server-reference-manifest.json +230 -0
- package/web/.next/server/app/application/[id]/page.js +19 -0
- package/web/.next/server/app/application/[id]/page.js.map +5 -0
- package/web/.next/server/app/application/[id]/page.js.nft.json +1 -0
- package/web/.next/server/app/application/[id]/page_client-reference-manifest.js +2 -0
- package/web/.next/server/app/features/page/build-manifest.json +3 -3
- package/web/.next/server/app/features/page/server-reference-manifest.json +27 -12
- package/web/.next/server/app/features/page.js +2 -2
- package/web/.next/server/app/features/page.js.nft.json +1 -1
- package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/build-manifest.json +3 -3
- package/web/.next/server/app/settings/page/server-reference-manifest.json +33 -18
- package/web/.next/server/app/settings/page.js +2 -2
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/build-manifest.json +3 -3
- package/web/.next/server/app/skills/page/server-reference-manifest.json +56 -26
- package/web/.next/server/app/skills/page.js +4 -3
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/build-manifest.json +3 -3
- package/web/.next/server/app/tools/page/server-reference-manifest.json +52 -22
- package/web/.next/server/app/tools/page.js +3 -2
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/build-manifest.json +3 -3
- package/web/.next/server/app/version/page/server-reference-manifest.json +27 -12
- package/web/.next/server/app/version/page.js +3 -3
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app-paths-manifest.json +11 -0
- package/web/.next/server/chunks/0d725_next-internal_server_app_api_applications_[id]_files_raw_route_actions_69e55b18.js +3 -0
- package/web/.next/server/chunks/0d725_next-internal_server_app_api_applications_[id]_files_raw_route_actions_69e55b18.js.map +1 -0
- package/web/.next/server/chunks/0d725_next-internal_server_app_api_terminal_[sessionId]_resize_route_actions_068451e5.js +3 -0
- package/web/.next/server/chunks/0d725_next-internal_server_app_api_terminal_[sessionId]_resize_route_actions_068451e5.js.map +1 -0
- package/web/.next/server/chunks/0d725_next-internal_server_app_api_terminal_[sessionId]_stream_route_actions_475d5f68.js +3 -0
- package/web/.next/server/chunks/0d725_next-internal_server_app_api_terminal_[sessionId]_stream_route_actions_475d5f68.js.map +1 -0
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_terminal_[sessionId]_route_actions_20e0d9a3.js +3 -0
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_terminal_[sessionId]_route_actions_20e0d9a3.js.map +1 -0
- package/web/.next/server/chunks/8ba4b_server_app_api_applications_[id]_files_content_route_actions_b0c05593.js +3 -0
- package/web/.next/server/chunks/8ba4b_server_app_api_applications_[id]_files_content_route_actions_b0c05593.js.map +1 -0
- package/web/.next/server/chunks/8ba4b_server_app_api_applications_[id]_files_watch_route_actions_30d3aeeb.js +3 -0
- package/web/.next/server/chunks/8ba4b_server_app_api_applications_[id]_files_watch_route_actions_30d3aeeb.js.map +1 -0
- package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_turn-statuses_stream_route_actions_52514889.js +3 -0
- package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_turn-statuses_stream_route_actions_52514889.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__038012df._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__038012df._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__0e3323be._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__0e3323be._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__38b9b39e._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__38b9b39e._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__3c22f57d._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__3c22f57d._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__4906ab60._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__4906ab60._.js.map +1 -0
- package/web/.next/server/chunks/{[root-of-the-server]__2f61738a._.js → [root-of-the-server]__4eb2c4e4._.js} +2 -2
- package/web/.next/server/chunks/{[root-of-the-server]__acea6565._.js → [root-of-the-server]__5e3c6f3a._.js} +2 -2
- package/web/.next/server/chunks/[root-of-the-server]__72175657._.js +9 -0
- package/web/.next/server/chunks/[root-of-the-server]__72175657._.js.map +1 -0
- package/web/.next/server/chunks/{[root-of-the-server]__31598852._.js → [root-of-the-server]__86965b92._.js} +2 -2
- package/web/.next/server/chunks/[root-of-the-server]__8a281f8d._.js +19 -13
- package/web/.next/server/chunks/[root-of-the-server]__8a281f8d._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__92409aeb._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__92409aeb._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__a52f55af._.js +6 -0
- package/web/.next/server/chunks/[root-of-the-server]__a52f55af._.js.map +1 -0
- package/web/.next/server/chunks/{[root-of-the-server]__2b1074db._.js → [root-of-the-server]__ac92afe7._.js} +2 -2
- package/web/.next/server/chunks/{[root-of-the-server]__2b1074db._.js.map → [root-of-the-server]__ac92afe7._.js.map} +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__b2a4bfcc._.js +3 -0
- package/web/.next/server/chunks/{[root-of-the-server]__c78383b1._.js.map → [root-of-the-server]__b2a4bfcc._.js.map} +1 -1
- package/web/.next/server/chunks/{[root-of-the-server]__e3692208._.js → [root-of-the-server]__c8f90b29._.js} +2 -2
- package/web/.next/server/chunks/{[root-of-the-server]__2b71641f._.js → [root-of-the-server]__cbf5b20b._.js} +2 -2
- package/web/.next/server/chunks/{[root-of-the-server]__2b71641f._.js.map → [root-of-the-server]__cbf5b20b._.js.map} +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__ccfcaa08._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__ccfcaa08._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__deb67d81._.js +9 -0
- package/web/.next/server/chunks/[root-of-the-server]__deb67d81._.js.map +1 -0
- package/web/.next/server/chunks/{[root-of-the-server]__fc6fd958._.js → [root-of-the-server]__ecd08b79._.js} +2 -2
- package/web/.next/server/chunks/b1a17_presentation_web__next-internal_server_app_api_terminal_route_actions_f93ca3cb.js +3 -0
- package/web/.next/server/chunks/b1a17_presentation_web__next-internal_server_app_api_terminal_route_actions_f93ca3cb.js.map +1 -0
- package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_applications_[id]_files_route_actions_e1af3c3a.js +3 -0
- package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_applications_[id]_files_route_actions_e1af3c3a.js.map +1 -0
- package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_terminal_[sessionId]_input_route_actions_b7785e18.js +3 -0
- package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_terminal_[sessionId]_input_route_actions_b7785e18.js.map +1 -0
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_5da25833._.js +3 -0
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_5da25833._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__013a0318._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__013a0318._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__d1040bd1._.js → [root-of-the-server]__090f24cb._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__d1040bd1._.js.map → [root-of-the-server]__090f24cb._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17dadd08._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17dadd08._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1925bef0._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1925bef0._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1a9687c4._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1a9687c4._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__24756fa9._.js +12 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__24756fa9._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4ee8be85._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4ee8be85._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__70986695._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__70986695._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__efeeaed4._.js → [root-of-the-server]__7aa484f5._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__efeeaed4._.js.map → [root-of-the-server]__7aa484f5._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__86ff0bc5._.js → [root-of-the-server]__87bc4dac._.js} +3 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__87bc4dac._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__e0592c69._.js → [root-of-the-server]__894882ab._.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a3a4ddef._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a3a4ddef._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a4222b95._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a4222b95._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a5ea76a6._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a5ea76a6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a6f2b763._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a6f2b763._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__bb391c45._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__bb391c45._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dd3e834e._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dd3e834e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__357d99f9._.js → [root-of-the-server]__e265da61._.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f3ca7bea._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f3ca7bea._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0277d3b5._.js +21 -0
- package/web/.next/server/chunks/ssr/_0277d3b5._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_1879404a._.js +1 -1
- package/web/.next/server/chunks/ssr/_1879404a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_1e08a336._.js +1 -1
- package/web/.next/server/chunks/ssr/_295fffde._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_2bea8166._.js +4 -0
- package/web/.next/server/chunks/ssr/_2bea8166._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_44531b76._.js +9 -0
- package/web/.next/server/chunks/ssr/_44531b76._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_45496654._.js +1 -1
- package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_5bf2415e._.js +7 -0
- package/web/.next/server/chunks/ssr/_5bf2415e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_82c47cc2._.js +3 -0
- package/web/.next/server/chunks/ssr/{_bb09579b._.js.map → _82c47cc2._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_869a3a15._.js +3 -0
- package/web/.next/server/chunks/ssr/_869a3a15._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_7d50fed0._.js → _946a7fc6._.js} +3 -3
- package/web/.next/server/chunks/ssr/_946a7fc6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_948d3cc6._.js +3 -0
- package/web/.next/server/chunks/ssr/_948d3cc6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_5889596f._.js → _96718a00._.js} +2 -2
- package/web/.next/server/chunks/ssr/_96718a00._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_9df33116._.js +3 -0
- package/web/.next/server/chunks/ssr/_9df33116._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_b227ff50._.js +3 -0
- package/web/.next/server/chunks/ssr/_b227ff50._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_e071ba48._.js +3 -0
- package/web/.next/server/chunks/ssr/_e071ba48._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_ee88b448._.js +3 -0
- package/web/.next/server/chunks/ssr/_ee88b448._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_eff1b518._.js +3 -0
- package/web/.next/server/chunks/ssr/_eff1b518._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_f227429a._.js +3 -0
- package/web/.next/server/chunks/ssr/_f227429a._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_496c9117._.js → _f86fc1bf._.js} +2 -2
- package/web/.next/server/chunks/ssr/_f86fc1bf._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_f8c55130._.js +4 -0
- package/web/.next/server/chunks/ssr/_f8c55130._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_ff6f3257._.js +3 -0
- package/web/.next/server/chunks/ssr/_ff6f3257._.js.map +1 -0
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_1b7dae9a._.js → f7870_sonner_dist_index_mjs_dbf63824._.js} +2 -2
- package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_36f2bc45._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_36f2bc45._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_486908de._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_486908de._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_5c3596bc._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_5c3596bc._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_6159fef8._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_6159fef8._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_6326f81e._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_6326f81e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_6b2fdcd8._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_6b2fdcd8._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_74703c9f._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_74703c9f._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_a8056dac._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_a8056dac._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_ad42cc73._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_ad42cc73._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +32 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_b00bfb08._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_b00bfb08._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_f1edcf5e._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_f1edcf5e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_f9436804._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_f9436804._.js.map +1 -0
- package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
- package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
- package/web/.next/server/middleware-build-manifest.js +3 -3
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +1084 -703
- package/web/.next/static/chunks/{d26d0a7bc1a9b5a4.js → 010215070d22b4e6.js} +2 -2
- package/web/.next/static/chunks/06b9d6dbf635c370.css +1 -0
- package/web/.next/static/chunks/0a67d6e50e27452e.js +1 -0
- package/web/.next/static/chunks/11ef340e4cfbdbe6.js +1 -0
- package/web/.next/static/chunks/1ae0cf5be30ef398.js +1 -0
- package/web/.next/static/chunks/2a64d4b1a285fac5.js +1 -0
- package/web/.next/static/chunks/2ddda685a9100fd8.js +19 -0
- package/web/.next/static/chunks/2fe20598e1b4793a.js +5 -0
- package/web/.next/static/chunks/3ee4449e73eb4917.js +1 -0
- package/web/.next/static/chunks/{eb1ca1b0a34166f5.js → 66261997e6f830f1.js} +1 -1
- package/web/.next/static/chunks/6ecbcce796343f44.js +1 -0
- package/web/.next/static/chunks/7c3fe3c694874dea.js +1 -0
- package/web/.next/static/chunks/8f783e12274578c2.js +1 -0
- package/web/.next/static/chunks/927442d2628f6e22.js +1 -0
- package/web/.next/static/chunks/9370d114ce5b69fb.js +7 -0
- package/web/.next/static/chunks/b17c2d874c373d4e.js +1 -0
- package/web/.next/static/chunks/b2a010b2ba8710f4.js +1 -0
- package/web/.next/static/chunks/b7b85a15f387ab7c.css +1 -0
- package/web/.next/static/chunks/b99506a6f7bc2fa8.js +1 -0
- package/web/.next/static/chunks/{5a2bdbc57ed1368e.js → c1559152cf2ab9c6.js} +1 -1
- package/web/.next/static/chunks/d2182843a406b5a7.js +5 -0
- package/web/.next/static/chunks/edf812d5efffa096.js +7 -0
- package/web/.next/static/chunks/{f5c61237675acc89.js → ee9a716c6424ff25.js} +1 -1
- package/web/.next/static/chunks/f7a55ba1f789c55f.js +1 -0
- package/web/.next/static/chunks/fcf27468f8026dbd.js +1 -0
- package/web/.next/static/chunks/fe8bcc8ff36a61c0.js +1 -0
- package/web/.next/static/chunks/{turbopack-fa58b7ea4a4b26e7.js → turbopack-d16f2f815897af68.js} +1 -1
- package/web/next.config.mjs +1 -1
- package/web/package.json +7 -0
- package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js +0 -3
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_bdff55d6.js +0 -3
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_bdff55d6.js.map +0 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_6aa77d75.js +0 -3
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_6aa77d75.js.map +0 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_24adb073.js +0 -3
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_24adb073.js.map +0 -1
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_281e0ef8._.js +0 -3
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_281e0ef8._.js.map +0 -1
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_a593f310._.js +0 -3
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_a593f310._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__16c1388b._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__16c1388b._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__22d17c66._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__22d17c66._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__75070d2e._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__75070d2e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7c634c0f._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7c634c0f._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__86ff0bc5._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8f02b364._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8f02b364._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9dde817e._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9dde817e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a00db173._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a00db173._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__cf751517._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__cf751517._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e5f31e9a._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e5f31e9a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_15f6bbd4._.js +0 -3
- package/web/.next/server/chunks/ssr/_15f6bbd4._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_1b7dae9a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_396a6887._.js +0 -3
- package/web/.next/server/chunks/ssr/_396a6887._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_43ba79e7._.js +0 -3
- package/web/.next/server/chunks/ssr/_43ba79e7._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_496c9117._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_49b8d085._.js +0 -3
- package/web/.next/server/chunks/ssr/_49b8d085._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_5889596f._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_6abfa39e._.js +0 -3
- package/web/.next/server/chunks/ssr/_6abfa39e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_74a1a173._.js +0 -7
- package/web/.next/server/chunks/ssr/_74a1a173._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_7cb0396e._.js +0 -3
- package/web/.next/server/chunks/ssr/_7cb0396e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_7d50fed0._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_9bbdd461._.js +0 -4
- package/web/.next/server/chunks/ssr/_9bbdd461._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_b7a43c05._.js +0 -3
- package/web/.next/server/chunks/ssr/_b7a43c05._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_bb09579b._.js +0 -3
- package/web/.next/server/chunks/ssr/_bcd239dd._.js +0 -3
- package/web/.next/server/chunks/ssr/_bcd239dd._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_e680c57c._.js +0 -9
- package/web/.next/server/chunks/ssr/_e680c57c._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_63d47a3e._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules__pnpm_63d47a3e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_0338c789._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_0338c789._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_071f1e80._.js +0 -5
- package/web/.next/server/chunks/ssr/src_presentation_web_071f1e80._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_55c1ff7d._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_55c1ff7d._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ad14a90f.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ad14a90f.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_bade80bd._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_bade80bd._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_d5838156._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_d5838156._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_dc28bc60._.js +0 -5
- package/web/.next/server/chunks/ssr/src_presentation_web_dc28bc60._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_dcb020e3._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_dcb020e3._.js.map +0 -1
- package/web/.next/static/chunks/09edd35d194bec06.js +0 -5
- package/web/.next/static/chunks/124b79a5d2a760fb.css +0 -1
- package/web/.next/static/chunks/200e07d995bd9a42.js +0 -1
- package/web/.next/static/chunks/22e3a3738308da2e.js +0 -1
- package/web/.next/static/chunks/25d3c4d18b8aecff.js +0 -7
- package/web/.next/static/chunks/2ceebcc839ee0d4b.js +0 -1
- package/web/.next/static/chunks/34444901ca3a1c3b.js +0 -1
- package/web/.next/static/chunks/3cf86457869c47bc.js +0 -1
- package/web/.next/static/chunks/4052a4971fbbac9c.js +0 -1
- package/web/.next/static/chunks/55060446f5490f20.js +0 -3
- package/web/.next/static/chunks/59bff7b33ebe5f68.js +0 -1
- package/web/.next/static/chunks/8b0a9cb5109fe899.js +0 -1
- package/web/.next/static/chunks/971e52f3f386ccfd.js +0 -1
- package/web/.next/static/chunks/981c6f3f1db99b4e.js +0 -1
- package/web/.next/static/chunks/b63e6727c84f30e2.js +0 -1
- package/web/.next/static/chunks/c10c0d6d458453bc.js +0 -1
- package/web/.next/static/chunks/c94a6a3d54dd4997.js +0 -5
- package/web/.next/static/chunks/d04d868f0971941d.js +0 -1
- package/web/.next/static/chunks/e7502fb670f32235.js +0 -1
- package/web/.next/static/chunks/fb7211d94190d010.js +0 -5
- /package/web/.next/server/chunks/{[root-of-the-server]__2f61738a._.js.map → [root-of-the-server]__4eb2c4e4._.js.map} +0 -0
- /package/web/.next/server/chunks/{[root-of-the-server]__acea6565._.js.map → [root-of-the-server]__5e3c6f3a._.js.map} +0 -0
- /package/web/.next/server/chunks/{[root-of-the-server]__31598852._.js.map → [root-of-the-server]__86965b92._.js.map} +0 -0
- /package/web/.next/server/chunks/{[root-of-the-server]__e3692208._.js.map → [root-of-the-server]__c8f90b29._.js.map} +0 -0
- /package/web/.next/server/chunks/{[root-of-the-server]__fc6fd958._.js.map → [root-of-the-server]__ecd08b79._.js.map} +0 -0
- /package/web/.next/server/chunks/ssr/{[root-of-the-server]__e0592c69._.js.map → [root-of-the-server]__894882ab._.js.map} +0 -0
- /package/web/.next/server/chunks/ssr/{[root-of-the-server]__357d99f9._.js.map → [root-of-the-server]__e265da61._.js.map} +0 -0
- /package/web/.next/static/{mLJ1Qa4FUFmmZm0crRH2U → ex3OTWRXHxfwD9RkifALI}/_buildManifest.js +0 -0
- /package/web/.next/static/{mLJ1Qa4FUFmmZm0crRH2U → ex3OTWRXHxfwD9RkifALI}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{mLJ1Qa4FUFmmZm0crRH2U → ex3OTWRXHxfwD9RkifALI}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { InteractiveMessage, WorkflowStep } from '../../../../../../packages/core/src/domain/generated/output.js';
|
|
1
2
|
/** Shape matching UserInteractionData from the agent executor interface. */
|
|
2
3
|
export interface InteractionData {
|
|
3
4
|
toolCallId: string;
|
|
@@ -12,12 +13,54 @@ export interface InteractionData {
|
|
|
12
13
|
multiSelect: boolean;
|
|
13
14
|
}[];
|
|
14
15
|
}
|
|
16
|
+
/** Chat state returned by the backend — matches ChatState from service interface */
|
|
17
|
+
interface ChatState {
|
|
18
|
+
messages: InteractiveMessage[];
|
|
19
|
+
sessionStatus: string | null;
|
|
20
|
+
streamingText: string | null;
|
|
21
|
+
sessionInfo: SessionInfo | null;
|
|
22
|
+
turnStatus?: string;
|
|
23
|
+
pendingInteraction?: InteractionData | null;
|
|
24
|
+
workflow?: WorkflowView | null;
|
|
25
|
+
}
|
|
26
|
+
/** Workflow view shape — mirrors the core port. */
|
|
27
|
+
export interface WorkflowView {
|
|
28
|
+
workflowId: string;
|
|
29
|
+
steps: WorkflowStep[];
|
|
30
|
+
currentStepId: string | null;
|
|
31
|
+
}
|
|
32
|
+
/** Step view consumed by `StepTracker`. */
|
|
33
|
+
export interface EnhancedStepState {
|
|
34
|
+
definition: {
|
|
35
|
+
id: string;
|
|
36
|
+
stepKey: string;
|
|
37
|
+
title: string;
|
|
38
|
+
description: string;
|
|
39
|
+
};
|
|
40
|
+
status: 'pending' | 'running' | 'done' | 'failed' | 'interrupted';
|
|
41
|
+
metadata: Record<string, unknown> | null;
|
|
42
|
+
toolMessages: InteractiveMessage[];
|
|
43
|
+
}
|
|
44
|
+
/** Enhanced progress consumed by `StepTracker` + `ChatTab`. */
|
|
45
|
+
export interface EnhancedStepProgress {
|
|
46
|
+
hasPlan: boolean;
|
|
47
|
+
steps: EnhancedStepState[];
|
|
48
|
+
activeStepId: string | null;
|
|
49
|
+
allDone: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Short live-status string ("Thinking…", "Reading file X", a chunk
|
|
52
|
+
* of the agent's streaming reply) that the running step card shows
|
|
53
|
+
* inline next to its spinner. NEVER rendered as a flat bubble — the
|
|
54
|
+
* step tracker is the only allowed surface for in-progress activity
|
|
55
|
+
* while a workflow is active.
|
|
56
|
+
*/
|
|
57
|
+
liveStatus: string | null;
|
|
58
|
+
}
|
|
15
59
|
interface SessionInfo {
|
|
16
60
|
pid: number | null;
|
|
17
61
|
sessionId: string | null;
|
|
18
62
|
model: string | null;
|
|
19
63
|
startedAt: string;
|
|
20
|
-
idleTimeoutMinutes: number;
|
|
21
64
|
lastActivityAt: string;
|
|
22
65
|
totalCostUsd: number | null;
|
|
23
66
|
totalInputTokens: number | null;
|
|
@@ -40,6 +83,12 @@ export interface ChatRuntimeOptions {
|
|
|
40
83
|
agentType?: string;
|
|
41
84
|
/** When true, inject debug bubbles showing SSE events, session info, etc. */
|
|
42
85
|
debugMode?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Optional SSR-loaded chat state used as the TanStack Query `initialData`.
|
|
88
|
+
* When provided the hook renders immediately with those messages and the
|
|
89
|
+
* background refetch only confirms / updates them.
|
|
90
|
+
*/
|
|
91
|
+
initialChatState?: ChatState;
|
|
43
92
|
}
|
|
44
93
|
/** A debug event captured from SSE for display in debug mode. */
|
|
45
94
|
export interface DebugEvent {
|
|
@@ -61,6 +110,8 @@ export declare function useChatRuntime(featureId: string, worktreePath?: string,
|
|
|
61
110
|
isChatLoading: boolean;
|
|
62
111
|
pendingInteraction: InteractionData | null;
|
|
63
112
|
respondToInteraction: (answers: Record<string, string>) => Promise<void>;
|
|
113
|
+
stepProgress: EnhancedStepProgress;
|
|
114
|
+
initialRequestMessage: InteractiveMessage | null;
|
|
64
115
|
};
|
|
65
116
|
export {};
|
|
66
117
|
//# sourceMappingURL=useChatRuntime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChatRuntime.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/chat/useChatRuntime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useChatRuntime.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/chat/useChatRuntime.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAG7F,4EAA4E;AAC5E,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QACpE,WAAW,EAAE,OAAO,CAAC;KACtB,EAAE,CAAC;CACL;AAED,oFAAoF;AACpF,UAAU,SAAS;IACjB,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAChC;AAED,mDAAmD;AACnD,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,2CAA2C;AAC3C,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE;QACV,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAC;IAClE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,YAAY,EAAE,kBAAkB,EAAE,CAAC;CACpC;AAED,+DAA+D;AAC/D,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;;OAMG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AA2BD,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAuCD,MAAM,WAAW,UAAU;IACzB,4EAA4E;IAC5E,SAAS,EAAE,OAAO,CAAC;IACnB,qFAAqF;IACrF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAID,MAAM,WAAW,kBAAkB;IACjC,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,SAAS,CAAC;CAC9B;AAED,iEAAiE;AACjE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,kBAAkB;;;;;;;;oCA6pBV,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;EAkEzC"}
|
|
@@ -3,16 +3,36 @@ import { useState, useEffect, useRef, useCallback, useMemo } from 'react';
|
|
|
3
3
|
import { useExternalStoreRuntime } from '@assistant-ui/react';
|
|
4
4
|
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
|
|
5
5
|
import { InteractiveMessageRole } from '../../../../../../packages/core/src/domain/generated/output.js';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
function mapStatus(s) {
|
|
7
|
+
switch (s) {
|
|
8
|
+
case 'pending':
|
|
9
|
+
case 'running':
|
|
10
|
+
case 'done':
|
|
11
|
+
case 'failed':
|
|
12
|
+
case 'interrupted':
|
|
13
|
+
return s;
|
|
14
|
+
default:
|
|
15
|
+
return 'pending';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function parseMetadata(raw) {
|
|
19
|
+
if (!raw)
|
|
20
|
+
return null;
|
|
21
|
+
try {
|
|
22
|
+
const parsed = JSON.parse(raw);
|
|
23
|
+
return parsed && typeof parsed === 'object' && !Array.isArray(parsed)
|
|
24
|
+
? parsed
|
|
25
|
+
: null;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return null;
|
|
13
29
|
}
|
|
14
|
-
return res.json();
|
|
15
30
|
}
|
|
31
|
+
// ── API helpers ─────────────────────────────────────────────────────────────
|
|
32
|
+
// Shared query key + fetcher live in chat-state-query so the top bar
|
|
33
|
+
// can subscribe to the SAME cached entry as this hook. Single source
|
|
34
|
+
// of truth, one SSE stream updates every consumer.
|
|
35
|
+
import { chatQueryKey, fetchChatState } from './chat-state-query.js';
|
|
16
36
|
async function postMessage(featureId, content, worktreePath, model, agentType) {
|
|
17
37
|
const res = await fetch(`/api/interactive/chat/${featureId}/messages`, {
|
|
18
38
|
method: 'POST',
|
|
@@ -33,10 +53,6 @@ function toThreadMessage(msg) {
|
|
|
33
53
|
createdAt: msg.createdAt ? new Date(msg.createdAt) : undefined,
|
|
34
54
|
};
|
|
35
55
|
}
|
|
36
|
-
// ── Query key ───────────────────────────────────────────────────────────────
|
|
37
|
-
function chatQueryKey(featureId) {
|
|
38
|
-
return ['chat-messages', featureId];
|
|
39
|
-
}
|
|
40
56
|
/**
|
|
41
57
|
* `featureId` is a polymorphic scope key: a feature UUID, "repo-<id>", or "global".
|
|
42
58
|
* All API calls and SSE subscriptions are scoped to this key.
|
|
@@ -61,11 +77,27 @@ export function useChatRuntime(featureId, worktreePath, options) {
|
|
|
61
77
|
{ id: `dbg-${Date.now()}-${Math.random()}`, timestamp: new Date(), label, detail },
|
|
62
78
|
]);
|
|
63
79
|
}, []);
|
|
64
|
-
// ── TanStack Query: fetch
|
|
80
|
+
// ── TanStack Query: initial fetch only ─────────────────────────────────
|
|
81
|
+
//
|
|
82
|
+
// NO periodic polling. The chat state is event-driven:
|
|
83
|
+
// - Initial state comes from `initialData` (SSR) or the one-shot
|
|
84
|
+
// queryFn call on mount.
|
|
85
|
+
// - All subsequent updates are pushed via the SSE stream effect
|
|
86
|
+
// below, which mutates the cache directly (message / session_status
|
|
87
|
+
// / turn_status events).
|
|
88
|
+
// - On SSE reconnect, the `open` listener invalidates this query
|
|
89
|
+
// once, forcing a fresh fetch to catch any missed events.
|
|
90
|
+
//
|
|
91
|
+
// This replaces the old 3s `refetchInterval` — no more bandwidth
|
|
92
|
+
// burning and no more stale-UI windows. Robustness comes from
|
|
93
|
+
// reconnect-fetch + idempotent cache merges by message id.
|
|
65
94
|
const { data: chatState, isLoading: isChatLoading } = useQuery({
|
|
66
95
|
queryKey: chatQueryKey(featureId),
|
|
67
96
|
queryFn: () => fetchChatState(featureId),
|
|
68
|
-
|
|
97
|
+
initialData: options?.initialChatState,
|
|
98
|
+
staleTime: Infinity,
|
|
99
|
+
refetchOnWindowFocus: false,
|
|
100
|
+
refetchOnReconnect: false,
|
|
69
101
|
});
|
|
70
102
|
// Auto-mark as read when chat tab is open and turn status is 'unread'
|
|
71
103
|
useEffect(() => {
|
|
@@ -136,6 +168,45 @@ export function useChatRuntime(featureId, worktreePath, options) {
|
|
|
136
168
|
useEffect(() => {
|
|
137
169
|
const es = new EventSource(`/api/interactive/chat/${featureId}/stream`);
|
|
138
170
|
eventSourceRef.current = es;
|
|
171
|
+
/**
|
|
172
|
+
* Idempotent cache mutation helpers — called from SSE handlers.
|
|
173
|
+
* These must never throw on missing state because the cache may be
|
|
174
|
+
* mid-hydration when the first event lands. All updates are
|
|
175
|
+
* position/id-based so duplicate events across reconnects are
|
|
176
|
+
* harmless.
|
|
177
|
+
*/
|
|
178
|
+
const mergeMessage = (msg) => {
|
|
179
|
+
queryClient.setQueryData(chatQueryKey(featureId), (old) => {
|
|
180
|
+
const base = old ?? {
|
|
181
|
+
messages: [],
|
|
182
|
+
sessionStatus: null,
|
|
183
|
+
streamingText: null,
|
|
184
|
+
sessionInfo: null,
|
|
185
|
+
};
|
|
186
|
+
// Skip if we already have this message (dedupe by id). Also drop
|
|
187
|
+
// any optimistic entry with the same content — the server copy
|
|
188
|
+
// replaces it.
|
|
189
|
+
const existing = base.messages.find((m) => m.id === msg.id);
|
|
190
|
+
if (existing)
|
|
191
|
+
return base;
|
|
192
|
+
const withoutOptimistic = base.messages.filter((m) => !(m.id.startsWith('optimistic-') && m.role === msg.role && m.content === msg.content));
|
|
193
|
+
return { ...base, messages: [...withoutOptimistic, msg] };
|
|
194
|
+
});
|
|
195
|
+
};
|
|
196
|
+
const mergeSessionStatus = (status) => {
|
|
197
|
+
queryClient.setQueryData(chatQueryKey(featureId), (old) => {
|
|
198
|
+
if (!old)
|
|
199
|
+
return old;
|
|
200
|
+
return { ...old, sessionStatus: status };
|
|
201
|
+
});
|
|
202
|
+
};
|
|
203
|
+
const mergeTurnStatus = (turnStatus) => {
|
|
204
|
+
queryClient.setQueryData(chatQueryKey(featureId), (old) => {
|
|
205
|
+
if (!old)
|
|
206
|
+
return old;
|
|
207
|
+
return { ...old, turnStatus };
|
|
208
|
+
});
|
|
209
|
+
};
|
|
139
210
|
es.addEventListener('delta', (event) => {
|
|
140
211
|
try {
|
|
141
212
|
const data = JSON.parse(event.data);
|
|
@@ -160,8 +231,9 @@ export function useChatRuntime(featureId, worktreePath, options) {
|
|
|
160
231
|
catch {
|
|
161
232
|
// Ignore
|
|
162
233
|
}
|
|
163
|
-
//
|
|
164
|
-
|
|
234
|
+
// The matching `message` event (emitted by the service alongside
|
|
235
|
+
// the activity when a tool message is persisted) handles the
|
|
236
|
+
// cache update — no refetch needed here.
|
|
165
237
|
});
|
|
166
238
|
es.addEventListener('log', (event) => {
|
|
167
239
|
try {
|
|
@@ -188,19 +260,97 @@ export function useChatRuntime(featureId, worktreePath, options) {
|
|
|
188
260
|
// Ignore
|
|
189
261
|
}
|
|
190
262
|
});
|
|
263
|
+
es.addEventListener('message', (event) => {
|
|
264
|
+
try {
|
|
265
|
+
const data = JSON.parse(event.data);
|
|
266
|
+
if (data.message) {
|
|
267
|
+
mergeMessage(data.message);
|
|
268
|
+
// When an assistant message arrives, the "Thinking…" bubble
|
|
269
|
+
// should fall away.
|
|
270
|
+
if (data.message.role === InteractiveMessageRole.assistant) {
|
|
271
|
+
cancelAwaiting();
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
catch {
|
|
276
|
+
// Ignore
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
es.addEventListener('session_status', (event) => {
|
|
280
|
+
try {
|
|
281
|
+
const data = JSON.parse(event.data);
|
|
282
|
+
if (data.sessionStatus)
|
|
283
|
+
mergeSessionStatus(data.sessionStatus);
|
|
284
|
+
}
|
|
285
|
+
catch {
|
|
286
|
+
// Ignore
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
es.addEventListener('turn_status', (event) => {
|
|
290
|
+
try {
|
|
291
|
+
const data = JSON.parse(event.data);
|
|
292
|
+
if (data.turnStatus)
|
|
293
|
+
mergeTurnStatus(data.turnStatus);
|
|
294
|
+
}
|
|
295
|
+
catch {
|
|
296
|
+
// Ignore
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
es.addEventListener('workflow_step', (event) => {
|
|
300
|
+
try {
|
|
301
|
+
const data = JSON.parse(event.data);
|
|
302
|
+
if (!data.step)
|
|
303
|
+
return;
|
|
304
|
+
queryClient.setQueryData(chatQueryKey(featureId), (old) => {
|
|
305
|
+
if (!old)
|
|
306
|
+
return old;
|
|
307
|
+
const existing = old.workflow;
|
|
308
|
+
const idx = existing?.steps.findIndex((s) => s.id === data.step.id) ?? -1;
|
|
309
|
+
let nextSteps;
|
|
310
|
+
if (!existing || idx === -1) {
|
|
311
|
+
// New step row — append and re-sort by stepIndex.
|
|
312
|
+
nextSteps = [...(existing?.steps ?? []), data.step].sort((a, b) => a.stepIndex - b.stepIndex);
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
nextSteps = existing.steps.slice();
|
|
316
|
+
nextSteps[idx] = data.step;
|
|
317
|
+
}
|
|
318
|
+
const running = nextSteps.find((s) => s.status === 'running');
|
|
319
|
+
return {
|
|
320
|
+
...old,
|
|
321
|
+
workflow: {
|
|
322
|
+
workflowId: data.step.workflowId,
|
|
323
|
+
steps: nextSteps,
|
|
324
|
+
currentStepId: running?.id ?? null,
|
|
325
|
+
},
|
|
326
|
+
};
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
catch {
|
|
330
|
+
// Ignore
|
|
331
|
+
}
|
|
332
|
+
});
|
|
191
333
|
es.addEventListener('done', () => {
|
|
192
334
|
setStatusLog(null);
|
|
193
335
|
cancelAwaiting();
|
|
194
336
|
pushDebug('turn_done');
|
|
195
337
|
// Agent turn completed — clear any lingering interaction state
|
|
196
338
|
setPendingInteraction(null);
|
|
197
|
-
//
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
339
|
+
// Streaming text is superseded by the persisted assistant `message`
|
|
340
|
+
// event that fires alongside `done`. Clear our local buffer.
|
|
341
|
+
setStreamingText('');
|
|
342
|
+
});
|
|
343
|
+
// Robustness: after any successful (re)connect, refetch the chat
|
|
344
|
+
// state ONCE to catch any events that may have been missed while
|
|
345
|
+
// the connection was down. The browser's EventSource auto-reconnects
|
|
346
|
+
// on drops; this handler fires on every successful open including
|
|
347
|
+
// post-error re-opens.
|
|
348
|
+
es.addEventListener('open', () => {
|
|
349
|
+
void queryClient.invalidateQueries({ queryKey: chatQueryKey(featureId) });
|
|
201
350
|
});
|
|
202
351
|
es.onerror = () => {
|
|
203
|
-
//
|
|
352
|
+
// Browser auto-reconnects. The `open` listener above will refetch
|
|
353
|
+
// state on recovery. Nothing to do here.
|
|
204
354
|
};
|
|
205
355
|
return () => {
|
|
206
356
|
es.close();
|
|
@@ -216,8 +366,17 @@ export function useChatRuntime(featureId, worktreePath, options) {
|
|
|
216
366
|
// Cancel in-flight refetches so our optimistic update isn't overwritten
|
|
217
367
|
await queryClient.cancelQueries({ queryKey: chatQueryKey(featureId) });
|
|
218
368
|
const previous = queryClient.getQueryData(chatQueryKey(featureId));
|
|
219
|
-
// Optimistically add user message
|
|
369
|
+
// Optimistically add user message. CRITICAL: spread `old` first
|
|
370
|
+
// and only override `messages` (and clear `streamingText`). The
|
|
371
|
+
// earlier version rebuilt the object field-by-field and silently
|
|
372
|
+
// dropped `workflow` + `turnStatus`, which made `hasPlan` flip
|
|
373
|
+
// to false for one render, briefly expanding the workflow step
|
|
374
|
+
// tracker (it lost its `collapsedSummary` flag when allDone
|
|
375
|
+
// turned undefined) before the next refetch reinstated it. The
|
|
376
|
+
// user saw a flicker of the full step list every time they typed
|
|
377
|
+
// a follow-up message after the workflow finished.
|
|
220
378
|
queryClient.setQueryData(chatQueryKey(featureId), (old) => ({
|
|
379
|
+
...(old ?? { sessionStatus: 'booting', sessionInfo: null }),
|
|
221
380
|
messages: [
|
|
222
381
|
...(old?.messages ?? []),
|
|
223
382
|
{
|
|
@@ -229,9 +388,7 @@ export function useChatRuntime(featureId, worktreePath, options) {
|
|
|
229
388
|
updatedAt: new Date(),
|
|
230
389
|
},
|
|
231
390
|
],
|
|
232
|
-
sessionStatus: old?.sessionStatus ?? 'booting',
|
|
233
391
|
streamingText: null,
|
|
234
|
-
sessionInfo: old?.sessionInfo ?? null,
|
|
235
392
|
}));
|
|
236
393
|
return { previous };
|
|
237
394
|
},
|
|
@@ -249,11 +406,161 @@ export function useChatRuntime(featureId, worktreePath, options) {
|
|
|
249
406
|
// ── Derive running state ────────────────────────────────────────────────
|
|
250
407
|
// Note: sendMutation.isPending is excluded — the 600ms awaitingResponse
|
|
251
408
|
// timer provides a smooth transition without flicker.
|
|
252
|
-
|
|
409
|
+
//
|
|
410
|
+
// `turnStatus === 'processing'` is critical for surfaces that post the
|
|
411
|
+
// first user message server-side (e.g. Application chat, where
|
|
412
|
+
// createApplication sends the kickoff via SendInteractiveMessageUseCase
|
|
413
|
+
// before the user ever lands on the page). In those flows the client
|
|
414
|
+
// never calls sendMutation, so `awaitingResponse` is never set and
|
|
415
|
+
// `sessionStatus` might already be 'ready' by the time the UI hydrates,
|
|
416
|
+
// leaving a dead zone with no indicator while the agent is actively
|
|
417
|
+
// working. Reading turnStatus from the backend closes that gap.
|
|
418
|
+
const backendTurnStatus = chatState?.turnStatus;
|
|
419
|
+
const isRunning = awaitingResponse ||
|
|
420
|
+
!!streamingText ||
|
|
421
|
+
!!statusLog ||
|
|
422
|
+
sessionStatus === 'booting' ||
|
|
423
|
+
backendTurnStatus === 'processing';
|
|
253
424
|
// ── Build thread messages for assistant-ui ─────────────────────────────
|
|
254
425
|
const activeStreamText = streamingText ?? backendStreamingText ?? '';
|
|
426
|
+
// ── Step-tracker state — driven ENTIRELY by server-side workflow
|
|
427
|
+
// rows. No text parsing. On a refresh, `chatState.workflow` is
|
|
428
|
+
// re-read from SQLite by the backend so status is always the
|
|
429
|
+
// truth. Messages are grouped by `stepId` (also server-written).
|
|
430
|
+
const stepProgress = useMemo(() => {
|
|
431
|
+
const workflow = chatState?.workflow ?? null;
|
|
432
|
+
if (!workflow || workflow.steps.length === 0) {
|
|
433
|
+
return {
|
|
434
|
+
hasPlan: false,
|
|
435
|
+
steps: [],
|
|
436
|
+
activeStepId: null,
|
|
437
|
+
allDone: false,
|
|
438
|
+
liveStatus: null,
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
// Group messages by their persisted stepId. Only assistant messages
|
|
442
|
+
// are surfaced in the tracker — the orchestrator persists each step's
|
|
443
|
+
// prompt as a `user`-role row with the step's id (RunWorkflowUseCase
|
|
444
|
+
// step 2+) and that row is an internal orchestration detail, not
|
|
445
|
+
// something the user typed or the agent produced. Including it would
|
|
446
|
+
// inflate every step's badge count by 1 and dump the raw prompt into
|
|
447
|
+
// the expanded body.
|
|
448
|
+
const byStep = new Map();
|
|
449
|
+
for (const m of messages) {
|
|
450
|
+
const sid = m.stepId;
|
|
451
|
+
if (!sid)
|
|
452
|
+
continue;
|
|
453
|
+
if (m.role !== InteractiveMessageRole.assistant)
|
|
454
|
+
continue;
|
|
455
|
+
const list = byStep.get(sid) ?? [];
|
|
456
|
+
list.push(m);
|
|
457
|
+
byStep.set(sid, list);
|
|
458
|
+
}
|
|
459
|
+
const steps = workflow.steps.map((s) => ({
|
|
460
|
+
definition: {
|
|
461
|
+
id: s.id,
|
|
462
|
+
stepKey: s.stepKey,
|
|
463
|
+
title: s.title,
|
|
464
|
+
description: s.description,
|
|
465
|
+
},
|
|
466
|
+
status: mapStatus(s.status),
|
|
467
|
+
metadata: parseMetadata(s.metadata),
|
|
468
|
+
toolMessages: byStep.get(s.id) ?? [],
|
|
469
|
+
}));
|
|
470
|
+
const allDone = steps.length > 0 && steps.every((s) => s.status === 'done');
|
|
471
|
+
// Live status string for the running step card. Order of fallback
|
|
472
|
+
// mirrors the old flat-thread streaming bubble: tool / status log
|
|
473
|
+
// first (most informative — "Reading file X"), then a short prefix
|
|
474
|
+
// of the streaming reply text, then the generic "Thinking…" while
|
|
475
|
+
// we wait for the first chunk. Truncated to one line so it fits
|
|
476
|
+
// inline next to the spinner.
|
|
477
|
+
const trimmedStream = backendStreamingText?.trim() ?? '';
|
|
478
|
+
const trimmedLocal = streamingText?.trim() ?? '';
|
|
479
|
+
const streamPreview = (trimmedLocal || trimmedStream).split('\n')[0]?.slice(0, 80) ?? '';
|
|
480
|
+
let liveStatus = null;
|
|
481
|
+
if (allDone) {
|
|
482
|
+
liveStatus = null;
|
|
483
|
+
}
|
|
484
|
+
else if (statusLog) {
|
|
485
|
+
liveStatus = statusLog;
|
|
486
|
+
}
|
|
487
|
+
else if (streamPreview) {
|
|
488
|
+
liveStatus = streamPreview;
|
|
489
|
+
}
|
|
490
|
+
else if (backendTurnStatus === 'processing' ||
|
|
491
|
+
awaitingResponse ||
|
|
492
|
+
sessionStatus === 'booting') {
|
|
493
|
+
liveStatus = sessionStatus === 'booting' ? 'Waking up…' : 'Thinking…';
|
|
494
|
+
}
|
|
495
|
+
return {
|
|
496
|
+
hasPlan: true,
|
|
497
|
+
steps,
|
|
498
|
+
activeStepId: workflow.currentStepId,
|
|
499
|
+
allDone,
|
|
500
|
+
liveStatus,
|
|
501
|
+
};
|
|
502
|
+
}, [
|
|
503
|
+
chatState?.workflow,
|
|
504
|
+
messages,
|
|
505
|
+
statusLog,
|
|
506
|
+
streamingText,
|
|
507
|
+
backendStreamingText,
|
|
508
|
+
backendTurnStatus,
|
|
509
|
+
awaitingResponse,
|
|
510
|
+
sessionStatus,
|
|
511
|
+
]);
|
|
512
|
+
// ── Initial request — the VERY first stepless user message.
|
|
513
|
+
// The application-creation flow persists it via the
|
|
514
|
+
// orchestrator's first `sendMessage.execute` BEFORE
|
|
515
|
+
// `setActiveStep` is called, so it has no `stepId`. We pull
|
|
516
|
+
// it out of the flat thread and hand it to the host page, so
|
|
517
|
+
// the layout can render it ABOVE the step tracker — matching
|
|
518
|
+
// the mental model "user asked X, Shep built it, then we
|
|
519
|
+
// kept chatting".
|
|
520
|
+
const initialRequestMessage = useMemo(() => {
|
|
521
|
+
if (!stepProgress.hasPlan)
|
|
522
|
+
return null;
|
|
523
|
+
const first = messages.find((m) => m.role === InteractiveMessageRole.user && !m.stepId);
|
|
524
|
+
return first ?? null;
|
|
525
|
+
}, [stepProgress.hasPlan, messages]);
|
|
255
526
|
const threadMessages = useMemo(() => {
|
|
256
|
-
const
|
|
527
|
+
const hasPlan = stepProgress.hasPlan;
|
|
528
|
+
// When a workflow is active and STILL RUNNING: hide stepless
|
|
529
|
+
// assistant messages from the flat thread. These exist because of
|
|
530
|
+
// a small race window in the orchestrator — the agent can start
|
|
531
|
+
// streaming and persist a chunk before `setActiveStep` is called,
|
|
532
|
+
// leaving an assistant row with no stepId that would otherwise
|
|
533
|
+
// render as a stray bubble below the tracker. While the workflow
|
|
534
|
+
// is running, the running step's own card is the only legal
|
|
535
|
+
// surface for in-progress agent output.
|
|
536
|
+
//
|
|
537
|
+
// Once the workflow is DONE (`allDone`), the orchestrator has
|
|
538
|
+
// called its final `clearActiveStep`. From this point on, every
|
|
539
|
+
// new assistant message is a legitimate follow-up reply to a
|
|
540
|
+
// user-typed prompt, and MUST be visible in the flat thread —
|
|
541
|
+
// otherwise the chat appears to ignore the user. The previous
|
|
542
|
+
// version of this filter dropped them too and that's what looked
|
|
543
|
+
// like "agent is ignoring me" after the build completed.
|
|
544
|
+
//
|
|
545
|
+
// The user's very first message (`initialRequestMessage`) is
|
|
546
|
+
// always filtered out — the host page pins it above the tracker
|
|
547
|
+
// via `<InitialRequestBubble>` so leaving it in the flat thread
|
|
548
|
+
// would duplicate it.
|
|
549
|
+
const workflowRunning = hasPlan && !stepProgress.allDone;
|
|
550
|
+
const sourceMessages = hasPlan
|
|
551
|
+
? messages.filter((m) => {
|
|
552
|
+
if (m.id === initialRequestMessage?.id)
|
|
553
|
+
return false;
|
|
554
|
+
if (m.stepId)
|
|
555
|
+
return false; // step-tagged messages live inside their card
|
|
556
|
+
if (workflowRunning && m.role === InteractiveMessageRole.assistant) {
|
|
557
|
+
// Race-window leftover — see comment above.
|
|
558
|
+
return false;
|
|
559
|
+
}
|
|
560
|
+
return true;
|
|
561
|
+
})
|
|
562
|
+
: messages;
|
|
563
|
+
const chatMessages = sourceMessages.map(toThreadMessage);
|
|
257
564
|
// Merge debug bubbles into the timeline by timestamp
|
|
258
565
|
let result;
|
|
259
566
|
if (options?.debugMode && debugEvents.length > 0) {
|
|
@@ -294,7 +601,14 @@ export function useChatRuntime(featureId, worktreePath, options) {
|
|
|
294
601
|
else {
|
|
295
602
|
result = chatMessages;
|
|
296
603
|
}
|
|
297
|
-
//
|
|
604
|
+
// When the step-tracker is active we hide ALL assistant
|
|
605
|
+
// placeholders (streaming text, status log, thinking). The
|
|
606
|
+
// tracker itself conveys progress; stacking bubbles on top of it
|
|
607
|
+
// is noise.
|
|
608
|
+
if (hasPlan) {
|
|
609
|
+
return result;
|
|
610
|
+
}
|
|
611
|
+
// Streaming text as the last message — may include a live activity suffix.
|
|
298
612
|
if (activeStreamText.trim()) {
|
|
299
613
|
const parts = [{ type: 'text', text: activeStreamText }];
|
|
300
614
|
// Append live activity indicator when agent is doing tool work
|
|
@@ -328,12 +642,15 @@ export function useChatRuntime(featureId, worktreePath, options) {
|
|
|
328
642
|
return result;
|
|
329
643
|
}, [
|
|
330
644
|
messages,
|
|
645
|
+
initialRequestMessage?.id,
|
|
331
646
|
activeStreamText,
|
|
332
647
|
awaitingResponse,
|
|
333
648
|
sessionStatus,
|
|
334
649
|
statusLog,
|
|
335
650
|
options?.debugMode,
|
|
336
651
|
debugEvents,
|
|
652
|
+
stepProgress.hasPlan,
|
|
653
|
+
stepProgress.allDone,
|
|
337
654
|
]);
|
|
338
655
|
// ── Status info for typing indicator ──────────────────────────────────
|
|
339
656
|
const status = useMemo(() => {
|
|
@@ -400,10 +717,23 @@ export function useChatRuntime(featureId, worktreePath, options) {
|
|
|
400
717
|
void queryClient.invalidateQueries({ queryKey: chatQueryKey(featureId) });
|
|
401
718
|
}, [featureId, queryClient]);
|
|
402
719
|
// ── Build assistant-ui runtime ──────────────────────────────────────────
|
|
720
|
+
// While a workflow is RUNNING, assistant-ui's `isRunning=true` would
|
|
721
|
+
// auto-inject an empty assistant placeholder bubble at the bottom of
|
|
722
|
+
// the thread (its built-in "thinking" indicator). The step tracker
|
|
723
|
+
// already conveys progress via the running step's spinner + live
|
|
724
|
+
// status, so that placeholder would just float as a hollow bubble.
|
|
725
|
+
// Force `isRunning=false` for the duration of the workflow so
|
|
726
|
+
// assistant-ui keeps its hands off the viewport.
|
|
727
|
+
//
|
|
728
|
+
// Once the workflow is DONE, hand control back to assistant-ui so
|
|
729
|
+
// its thinking indicator works normally for follow-up replies the
|
|
730
|
+
// user types into the composer after the build is finished.
|
|
731
|
+
const workflowInFlight = stepProgress.hasPlan && !stepProgress.allDone;
|
|
732
|
+
const runtimeIsRunning = workflowInFlight ? false : isRunning;
|
|
403
733
|
const runtime = useExternalStoreRuntime({
|
|
404
734
|
messages: threadMessages,
|
|
405
735
|
convertMessage: useCallback((msg) => msg, []),
|
|
406
|
-
isRunning,
|
|
736
|
+
isRunning: runtimeIsRunning,
|
|
407
737
|
onNew,
|
|
408
738
|
onCancel: useCallback(async () => {
|
|
409
739
|
setStreamingText('');
|
|
@@ -420,5 +750,7 @@ export function useChatRuntime(featureId, worktreePath, options) {
|
|
|
420
750
|
isChatLoading,
|
|
421
751
|
pendingInteraction,
|
|
422
752
|
respondToInteraction,
|
|
753
|
+
stepProgress,
|
|
754
|
+
initialRequestMessage,
|
|
423
755
|
};
|
|
424
756
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client-side mirror of the application-creation workflow's
|
|
3
|
+
* user-facing step titles + descriptions. Used to render a
|
|
4
|
+
* placeholder tracker BEFORE the backend orchestrator has written
|
|
5
|
+
* the real `workflow_steps` rows — the user sees all 8 pending
|
|
6
|
+
* cards the instant they land on the application page, instead
|
|
7
|
+
* of a blank area that suddenly pops into existence a few
|
|
8
|
+
* hundred milliseconds later.
|
|
9
|
+
*
|
|
10
|
+
* Keep this in sync with
|
|
11
|
+
* `packages/core/src/application/workflows/application-creation.workflow.ts`.
|
|
12
|
+
* The real steps replace the placeholder as soon as the first
|
|
13
|
+
* `workflow_step` SSE chunk arrives.
|
|
14
|
+
*/
|
|
15
|
+
export interface PlaceholderStep {
|
|
16
|
+
stepKey: string;
|
|
17
|
+
title: string;
|
|
18
|
+
description: string;
|
|
19
|
+
}
|
|
20
|
+
export declare const APPLICATION_CREATION_PLACEHOLDER_STEPS: PlaceholderStep[];
|
|
21
|
+
//# sourceMappingURL=workflow-placeholder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-placeholder.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/chat/workflow-placeholder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,sCAAsC,EAAE,eAAe,EAyBnE,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client-side mirror of the application-creation workflow's
|
|
3
|
+
* user-facing step titles + descriptions. Used to render a
|
|
4
|
+
* placeholder tracker BEFORE the backend orchestrator has written
|
|
5
|
+
* the real `workflow_steps` rows — the user sees all 8 pending
|
|
6
|
+
* cards the instant they land on the application page, instead
|
|
7
|
+
* of a blank area that suddenly pops into existence a few
|
|
8
|
+
* hundred milliseconds later.
|
|
9
|
+
*
|
|
10
|
+
* Keep this in sync with
|
|
11
|
+
* `packages/core/src/application/workflows/application-creation.workflow.ts`.
|
|
12
|
+
* The real steps replace the placeholder as soon as the first
|
|
13
|
+
* `workflow_step` SSE chunk arrives.
|
|
14
|
+
*/
|
|
15
|
+
export const APPLICATION_CREATION_PLACEHOLDER_STEPS = [
|
|
16
|
+
{
|
|
17
|
+
stepKey: 'scaffold',
|
|
18
|
+
title: 'Setting up your project',
|
|
19
|
+
description: 'Creating the foundation files',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
stepKey: 'deps',
|
|
23
|
+
title: 'Installing design tools',
|
|
24
|
+
description: 'Adding Tailwind and essentials',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
stepKey: 'components',
|
|
28
|
+
title: 'Building the pieces',
|
|
29
|
+
description: 'Designing and creating reusable parts',
|
|
30
|
+
},
|
|
31
|
+
{ stepKey: 'wire', title: 'Connecting everything', description: 'Wiring navigation and forms' },
|
|
32
|
+
{
|
|
33
|
+
stepKey: 'style',
|
|
34
|
+
title: 'Polishing the look',
|
|
35
|
+
description: 'Applying colors, spacing, and motion',
|
|
36
|
+
},
|
|
37
|
+
{ stepKey: 'verify', title: 'Double-checking', description: 'Making sure it runs cleanly' },
|
|
38
|
+
{ stepKey: 'commit', title: 'Saving a snapshot', description: 'Committing the initial build' },
|
|
39
|
+
{ stepKey: 'report', title: 'Your app is ready', description: 'Summary of what was built' },
|
|
40
|
+
];
|