@superblocksteam/vite-plugin-file-sync 2.0.114 → 2.0.115-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-service/agent/middleware.d.ts.map +1 -1
- package/dist/ai-service/agent/middleware.js +19 -0
- package/dist/ai-service/agent/middleware.js.map +1 -1
- package/dist/ai-service/agent/prompts/api-prompts.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/api-prompts.js +13 -17
- package/dist/ai-service/agent/prompts/api-prompts.js.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js +22 -3
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/subagents/coding/prompt-builder.d.ts +16 -0
- package/dist/ai-service/agent/subagents/coding/prompt-builder.d.ts.map +1 -0
- package/dist/ai-service/agent/subagents/coding/prompt-builder.js +30 -0
- package/dist/ai-service/agent/subagents/coding/prompt-builder.js.map +1 -0
- package/dist/ai-service/agent/subagents/coding/run-coding-subagent.d.ts +29 -0
- package/dist/ai-service/agent/subagents/coding/run-coding-subagent.d.ts.map +1 -0
- package/dist/ai-service/agent/subagents/coding/run-coding-subagent.js +108 -0
- package/dist/ai-service/agent/subagents/coding/run-coding-subagent.js.map +1 -0
- package/dist/ai-service/agent/subagents/types.d.ts +9 -1
- package/dist/ai-service/agent/subagents/types.d.ts.map +1 -1
- package/dist/ai-service/agent/subagents/types.js +8 -0
- package/dist/ai-service/agent/subagents/types.js.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.js +5 -0
- package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.js +2 -1
- package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.d.ts +6 -0
- package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.js +138 -0
- package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.js.map +1 -0
- package/dist/ai-service/agent/tools/build-finalize.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-finalize.js +39 -15
- package/dist/ai-service/agent/tools/build-finalize.js.map +1 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +6 -3
- package/dist/ai-service/agent/tools/build-manage-checklist.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.js +116 -49
- package/dist/ai-service/agent/tools/build-manage-checklist.js.map +1 -1
- package/dist/ai-service/agent/tools/index.d.ts +2 -0
- package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/index.js +2 -0
- package/dist/ai-service/agent/tools/index.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +3 -0
- package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.js +330 -204
- package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +40 -2
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/access-control.d.ts +1 -1
- package/dist/ai-service/agent/tools2/access-control.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/access-control.js +15 -4
- package/dist/ai-service/agent/tools2/access-control.js.map +1 -1
- package/dist/ai-service/agent/tools2/registry.d.ts +3 -0
- package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/registry.js +50 -8
- package/dist/ai-service/agent/tools2/registry.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js +3 -2
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/ask-searchable-dropdown.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/ask-searchable-dropdown.js +2 -1
- package/dist/ai-service/agent/tools2/tools/ask-searchable-dropdown.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/deploy-service.d.ts +16 -0
- package/dist/ai-service/agent/tools2/tools/deploy-service.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/deploy-service.js +135 -0
- package/dist/ai-service/agent/tools2/tools/deploy-service.js.map +1 -0
- package/dist/ai-service/agent/tools2/tools/download-attachments.d.ts +33 -0
- package/dist/ai-service/agent/tools2/tools/download-attachments.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/download-attachments.js +308 -0
- package/dist/ai-service/agent/tools2/tools/download-attachments.js.map +1 -0
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +8 -4
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/git.d.ts +57 -1
- package/dist/ai-service/agent/tools2/tools/git.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/git.js +275 -8
- package/dist/ai-service/agent/tools2/tools/git.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/index.d.ts +2 -1
- package/dist/ai-service/agent/tools2/tools/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/index.js +2 -1
- package/dist/ai-service/agent/tools2/tools/index.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/list-attachments.d.ts +4 -1
- package/dist/ai-service/agent/tools2/tools/list-attachments.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/list-attachments.js +20 -4
- package/dist/ai-service/agent/tools2/tools/list-attachments.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/spawn-coding-subagents.d.ts +28 -0
- package/dist/ai-service/agent/tools2/tools/spawn-coding-subagents.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/spawn-coding-subagents.js +152 -0
- package/dist/ai-service/agent/tools2/tools/spawn-coding-subagents.js.map +1 -0
- package/dist/ai-service/agent/tools2/types.d.ts +1 -18
- package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/types.js.map +1 -1
- package/dist/ai-service/agent/utils.d.ts.map +1 -1
- package/dist/ai-service/agent/utils.js +22 -5
- package/dist/ai-service/agent/utils.js.map +1 -1
- package/dist/ai-service/app-interface/file-system-interface.d.ts +0 -4
- package/dist/ai-service/app-interface/file-system-interface.d.ts.map +1 -1
- package/dist/ai-service/app-interface/file-system-interface.js +0 -21
- package/dist/ai-service/app-interface/file-system-interface.js.map +1 -1
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.d.ts +11 -1
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.d.ts.map +1 -1
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.js +29 -7
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.js.map +1 -1
- package/dist/ai-service/app-interface/shell.d.ts +6 -0
- package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
- package/dist/ai-service/app-interface/shell.js +8 -0
- package/dist/ai-service/app-interface/shell.js.map +1 -1
- package/dist/ai-service/app-skills/helpers.d.ts.map +1 -1
- package/dist/ai-service/app-skills/helpers.js +4 -2
- package/dist/ai-service/app-skills/helpers.js.map +1 -1
- package/dist/ai-service/attachments/store.d.ts +18 -2
- package/dist/ai-service/attachments/store.d.ts.map +1 -1
- package/dist/ai-service/attachments/store.js +102 -9
- package/dist/ai-service/attachments/store.js.map +1 -1
- package/dist/ai-service/attachments/uploaded-content-part.d.ts +5 -2
- package/dist/ai-service/attachments/uploaded-content-part.d.ts.map +1 -1
- package/dist/ai-service/attachments/uploaded-content-part.js +32 -0
- package/dist/ai-service/attachments/uploaded-content-part.js.map +1 -1
- package/dist/ai-service/chat/chat-session-store.d.ts +2 -2
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +45 -243
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/chat/utils.d.ts +6 -0
- package/dist/ai-service/chat/utils.d.ts.map +1 -1
- package/dist/ai-service/chat/utils.js +47 -0
- package/dist/ai-service/chat/utils.js.map +1 -1
- package/dist/ai-service/features.d.ts +4 -0
- package/dist/ai-service/features.d.ts.map +1 -1
- package/dist/ai-service/features.js +4 -0
- package/dist/ai-service/features.js.map +1 -1
- package/dist/ai-service/index.d.ts +36 -11
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +228 -68
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/judge/tools/playwright-action.d.ts +1 -1
- package/dist/ai-service/llm/client.d.ts.map +1 -1
- package/dist/ai-service/llm/client.js +4 -2
- package/dist/ai-service/llm/client.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/retry-notification.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/retry-notification.js +4 -2
- package/dist/ai-service/llm/stream/observers/retry-notification.js.map +1 -1
- package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.d.ts.map +1 -1
- package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.js +1 -16
- package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.js.map +1 -1
- package/dist/ai-service/prompt-builder-service/types.d.ts +2 -13
- package/dist/ai-service/prompt-builder-service/types.d.ts.map +1 -1
- package/dist/ai-service/prompt-builder-service/types.js.map +1 -1
- package/dist/ai-service/skills/system/_registry.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/_registry.generated.js +6 -0
- package/dist/ai-service/skills/system/_registry.generated.js.map +1 -1
- package/dist/ai-service/skills/system/superblocks-migration/references/focused-debug.generated.d.ts +2 -0
- package/dist/ai-service/skills/system/superblocks-migration/references/focused-debug.generated.d.ts.map +1 -0
- package/dist/ai-service/skills/system/superblocks-migration/references/focused-debug.generated.js +58 -0
- package/dist/ai-service/skills/system/superblocks-migration/references/focused-debug.generated.js.map +1 -0
- package/dist/ai-service/skills/system/superblocks-migration/references/yaml-block-mapping.generated.d.ts +2 -0
- package/dist/ai-service/skills/system/superblocks-migration/references/yaml-block-mapping.generated.d.ts.map +1 -0
- package/dist/ai-service/skills/system/superblocks-migration/references/yaml-block-mapping.generated.js +107 -0
- package/dist/ai-service/skills/system/superblocks-migration/references/yaml-block-mapping.generated.js.map +1 -0
- package/dist/ai-service/skills/system/superblocks-migration/skill.generated.d.ts +2 -0
- package/dist/ai-service/skills/system/superblocks-migration/skill.generated.d.ts.map +1 -0
- package/dist/ai-service/skills/system/superblocks-migration/skill.generated.js +137 -0
- package/dist/ai-service/skills/system/superblocks-migration/skill.generated.js.map +1 -0
- package/dist/ai-service/state-machine/clark-fsm.d.ts +26 -13
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +12 -7
- package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.js +51 -27
- package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.js +15 -6
- package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/idle.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/idle.js +4 -2
- package/dist/ai-service/state-machine/handlers/idle.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.js +48 -15
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/post-processing.d.ts +1 -1
- package/dist/ai-service/state-machine/handlers/post-processing.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/post-processing.js +23 -151
- package/dist/ai-service/state-machine/handlers/post-processing.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.js +16 -8
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/change-info.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/change-info.js +2 -15
- package/dist/ai-service/state-machine/helpers/change-info.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/peer.d.ts +3 -3
- package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/peer.js +9 -23
- package/dist/ai-service/state-machine/helpers/peer.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/stable-peer.d.ts +52 -0
- package/dist/ai-service/state-machine/helpers/stable-peer.d.ts.map +1 -0
- package/dist/ai-service/state-machine/helpers/stable-peer.js +141 -0
- package/dist/ai-service/state-machine/helpers/stable-peer.js.map +1 -0
- package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
- package/dist/ai-service/state-machine/mocks.js +0 -17
- package/dist/ai-service/state-machine/mocks.js.map +1 -1
- package/dist/ai-service/types.d.ts +2 -21
- package/dist/ai-service/types.d.ts.map +1 -1
- package/dist/ai-service/types.js.map +1 -1
- package/dist/ai-service/util/archive-extractors.d.ts +52 -0
- package/dist/ai-service/util/archive-extractors.d.ts.map +1 -0
- package/dist/ai-service/util/archive-extractors.js +278 -0
- package/dist/ai-service/util/archive-extractors.js.map +1 -0
- package/dist/codegen.d.ts +1 -22
- package/dist/codegen.d.ts.map +1 -1
- package/dist/codegen.js +1 -117
- package/dist/codegen.js.map +1 -1
- package/dist/components-manager.d.ts +0 -6
- package/dist/components-manager.d.ts.map +1 -1
- package/dist/components-manager.js +0 -27
- package/dist/components-manager.js.map +1 -1
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +47 -94
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/file-system-manager.d.ts +2 -15
- package/dist/file-system-manager.d.ts.map +1 -1
- package/dist/file-system-manager.js +16 -128
- package/dist/file-system-manager.js.map +1 -1
- package/dist/git-service/live-branch.d.ts.map +1 -1
- package/dist/git-service/live-branch.js +15 -1
- package/dist/git-service/live-branch.js.map +1 -1
- package/dist/lock-service/index.d.ts.map +1 -1
- package/dist/lock-service/index.js +8 -5
- package/dist/lock-service/index.js.map +1 -1
- package/dist/migration/get-fullstack-template-dir.d.ts +37 -0
- package/dist/migration/get-fullstack-template-dir.d.ts.map +1 -0
- package/dist/migration/get-fullstack-template-dir.js +99 -0
- package/dist/migration/get-fullstack-template-dir.js.map +1 -0
- package/dist/migration/migration-checklist.d.ts +60 -0
- package/dist/migration/migration-checklist.d.ts.map +1 -0
- package/dist/migration/migration-checklist.js +230 -0
- package/dist/migration/migration-checklist.js.map +1 -0
- package/dist/migration/migration-routes.d.ts +23 -0
- package/dist/migration/migration-routes.d.ts.map +1 -0
- package/dist/migration/migration-routes.js +533 -0
- package/dist/migration/migration-routes.js.map +1 -0
- package/dist/migration/restructure.d.ts +76 -0
- package/dist/migration/restructure.d.ts.map +1 -0
- package/dist/migration/restructure.js +446 -0
- package/dist/migration/restructure.js.map +1 -0
- package/dist/migration/translation-prompt.d.ts +22 -0
- package/dist/migration/translation-prompt.d.ts.map +1 -0
- package/dist/migration/translation-prompt.js +27 -0
- package/dist/migration/translation-prompt.js.map +1 -0
- package/dist/migration-templates/app-fullstack/client/App.tsx +17 -0
- package/dist/migration-templates/app-fullstack/client/components/common/sonner.tsx +20 -0
- package/dist/migration-templates/app-fullstack/client/components/hooks/use-active-page.ts +73 -0
- package/dist/migration-templates/app-fullstack/client/components/hooks/use-mobile.ts +21 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/accordion.tsx +197 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/area-chart.tsx +432 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/aspect-ratio.tsx +45 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/avatar.tsx +117 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/badge.tsx +143 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/bar-chart.tsx +390 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/breadcrumb.tsx +259 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/button.tsx +182 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/calendar.tsx +300 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/card.tsx +129 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/chart.tsx +403 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/chat.tsx +2303 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/checkbox.tsx +97 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/code-block-content.tsx +66 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/date-range-picker.tsx +396 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/dialog.tsx +223 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/dropdown-menu.tsx +284 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/file-dropzone.tsx +395 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/file-input.tsx +166 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/hover-card.tsx +162 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/icon.tsx +133 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/image.tsx +68 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/input.tsx +219 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/label.tsx +55 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/line-chart.tsx +380 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/link.tsx +139 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/navigation-menu.tsx +345 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/pagination.tsx +192 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/pie-chart.tsx +295 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/popover.tsx +162 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/progress.tsx +69 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/radar-chart.tsx +386 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/radial-chart.tsx +402 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/scroll-area.tsx +86 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/select.tsx +229 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/separator.tsx +62 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/sheet.tsx +234 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/sidebar.tsx +974 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/skeleton.tsx +13 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/slider.tsx +198 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/switch.tsx +95 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/table.tsx +145 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/tabs.tsx +87 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/textarea.tsx +148 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/toggle-group.tsx +225 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/toggle.tsx +150 -0
- package/dist/migration-templates/app-fullstack/client/components/ui/tooltip.tsx +175 -0
- package/dist/migration-templates/app-fullstack/client/hooks/useApi.ts +25 -0
- package/dist/migration-templates/app-fullstack/client/hooks/useApiData.ts +10 -0
- package/dist/migration-templates/app-fullstack/client/index.css +131 -0
- package/dist/migration-templates/app-fullstack/client/lib/executeApi.ts +9 -0
- package/dist/migration-templates/app-fullstack/client/lib/utils.ts +6 -0
- package/dist/migration-templates/app-fullstack/client/pages/Page1/index.tsx +3 -0
- package/dist/migration-templates/app-fullstack/client/root.tsx +17 -0
- package/dist/migration-templates/app-fullstack/client/router.tsx +48 -0
- package/dist/migration-templates/app-fullstack/client/types/node.d.ts +9 -0
- package/dist/migration-templates/app-fullstack/components.json +21 -0
- package/dist/migration-templates/app-fullstack/eslint.config.js +108 -0
- package/dist/migration-templates/app-fullstack/package.json +89 -0
- package/dist/migration-templates/app-fullstack/server/.gitkeep +0 -0
- package/dist/migration-templates/app-fullstack/server/apis/index.ts +22 -0
- package/dist/migration-templates/app-fullstack/server/index.ts +2 -0
- package/dist/migration-templates/app-fullstack/tsconfig.client.json +27 -0
- package/dist/migration-templates/app-fullstack/tsconfig.eslint.json +8 -0
- package/dist/migration-templates/app-fullstack/tsconfig.json +25 -0
- package/dist/migration-templates/app-fullstack/tsconfig.server.json +13 -0
- package/dist/migration-templates/app-fullstack/vite.config.ts +17 -0
- package/dist/parsing/imports.d.ts +0 -16
- package/dist/parsing/imports.d.ts.map +1 -1
- package/dist/parsing/imports.js +0 -68
- package/dist/parsing/imports.js.map +1 -1
- package/dist/parsing/jsx.d.ts +0 -2
- package/dist/parsing/jsx.d.ts.map +1 -1
- package/dist/parsing/jsx.js +0 -62
- package/dist/parsing/jsx.js.map +1 -1
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +109 -32
- package/dist/socket-manager.js.map +1 -1
- package/dist/source-tracker.d.ts +7 -85
- package/dist/source-tracker.d.ts.map +1 -1
- package/dist/source-tracker.js +19 -695
- package/dist/source-tracker.js.map +1 -1
- package/dist/sync-service/index.d.ts +79 -2
- package/dist/sync-service/index.d.ts.map +1 -1
- package/dist/sync-service/index.js +139 -10
- package/dist/sync-service/index.js.map +1 -1
- package/package.json +11 -9
- package/dist/ai-service/artifacts/bolt.d.ts +0 -8
- package/dist/ai-service/artifacts/bolt.d.ts.map +0 -1
- package/dist/ai-service/artifacts/bolt.js +0 -92
- package/dist/ai-service/artifacts/bolt.js.map +0 -1
- package/dist/ai-service/result-buffer/bolt.d.ts +0 -18
- package/dist/ai-service/result-buffer/bolt.d.ts.map +0 -1
- package/dist/ai-service/result-buffer/bolt.js +0 -100
- package/dist/ai-service/result-buffer/bolt.js.map +0 -1
- package/dist/ai-service/result-buffer/shared.d.ts +0 -17
- package/dist/ai-service/result-buffer/shared.d.ts.map +0 -1
- package/dist/ai-service/result-buffer/shared.js +0 -7
- package/dist/ai-service/result-buffer/shared.js.map +0 -1
- package/dist/inject-no-select.d.ts +0 -15
- package/dist/inject-no-select.d.ts.map +0 -1
- package/dist/inject-no-select.js +0 -175
- package/dist/inject-no-select.js.map +0 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Absolute path to the bundled `app-fullstack` template tree that the
|
|
3
|
+
* v2 -> v3 migration lays down locally before asking the server to flip
|
|
4
|
+
* `application_v2.template_name`.
|
|
5
|
+
*
|
|
6
|
+
* Resolution walks up from the compiled module's directory and at each
|
|
7
|
+
* level checks two candidates:
|
|
8
|
+
* 1. `migration-templates/app-fullstack` -- the bundled location
|
|
9
|
+
* populated by
|
|
10
|
+
* `packages/vite-plugin-file-sync/scripts/copy-migration-templates.mjs`
|
|
11
|
+
* and by the CLI's own post-esbuild copy step. This is what the
|
|
12
|
+
* published packages rely on.
|
|
13
|
+
* 2. `packages/demo-apps/app-fullstack` -- the monorepo dev fallback
|
|
14
|
+
* used when tests run from source (tsx/vitest) before a bundled
|
|
15
|
+
* copy exists.
|
|
16
|
+
*
|
|
17
|
+
* The walk handles several layouts without special-casing:
|
|
18
|
+
* - `<pkg>/dist/migration/get-fullstack-template-dir.js` (plugin's
|
|
19
|
+
* own compiled output) finds the bundled tree one level up.
|
|
20
|
+
* - `<cli>/dist/chunk-XYZ.js` (esbuild-bundled into the CLI) finds
|
|
21
|
+
* the bundled tree in the same dir, because the CLI build copies
|
|
22
|
+
* it into `<cli>/dist/migration-templates/app-fullstack`.
|
|
23
|
+
* - `<repo>/packages/.../src/migration/get-fullstack-template-dir.ts`
|
|
24
|
+
* (tsx dev run) walks up to `<repo>` and finds the workspace copy.
|
|
25
|
+
*
|
|
26
|
+
* Throws if no candidate exists -- the restructure module cannot
|
|
27
|
+
* proceed without a template and it is better to fail here with a clear
|
|
28
|
+
* error than to half-migrate an app.
|
|
29
|
+
*/
|
|
30
|
+
export declare function getFullstackTemplateDir(): string;
|
|
31
|
+
/**
|
|
32
|
+
* Pure lookup: walk up from `startDir` and return the first existing
|
|
33
|
+
* candidate. Exported for tests so we can drive the walk against a
|
|
34
|
+
* synthetic filesystem without mocking `import.meta.url`.
|
|
35
|
+
*/
|
|
36
|
+
export declare function findFullstackTemplate(startDir: string): string | null;
|
|
37
|
+
//# sourceMappingURL=get-fullstack-template-dir.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-fullstack-template-dir.d.ts","sourceRoot":"","sources":["../../src/migration/get-fullstack-template-dir.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAahD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYrE"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { existsSync, statSync } from "node:fs";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
// Subdirectories to look for at each walk level. Order matters: a bundled
|
|
5
|
+
// `migration-templates/app-fullstack` beats the monorepo workspace copy
|
|
6
|
+
// so a published CLI/plugin does not silently fall back to a sibling
|
|
7
|
+
// checkout if both happen to exist (e.g. when running tests from source
|
|
8
|
+
// after `pnpm build`).
|
|
9
|
+
const CANDIDATE_SUBPATHS = [
|
|
10
|
+
"migration-templates/app-fullstack",
|
|
11
|
+
"packages/demo-apps/app-fullstack",
|
|
12
|
+
];
|
|
13
|
+
// How far up the filesystem to walk. 12 comfortably covers the deepest
|
|
14
|
+
// real layout we have today (bundled CLI dist nested inside
|
|
15
|
+
// `/.npm-global/lib/node_modules/@superblocksteam/cli/dist/...`) while
|
|
16
|
+
// still failing fast on a malformed FS.
|
|
17
|
+
const MAX_WALK_HOPS = 12;
|
|
18
|
+
/**
|
|
19
|
+
* Absolute path to the bundled `app-fullstack` template tree that the
|
|
20
|
+
* v2 -> v3 migration lays down locally before asking the server to flip
|
|
21
|
+
* `application_v2.template_name`.
|
|
22
|
+
*
|
|
23
|
+
* Resolution walks up from the compiled module's directory and at each
|
|
24
|
+
* level checks two candidates:
|
|
25
|
+
* 1. `migration-templates/app-fullstack` -- the bundled location
|
|
26
|
+
* populated by
|
|
27
|
+
* `packages/vite-plugin-file-sync/scripts/copy-migration-templates.mjs`
|
|
28
|
+
* and by the CLI's own post-esbuild copy step. This is what the
|
|
29
|
+
* published packages rely on.
|
|
30
|
+
* 2. `packages/demo-apps/app-fullstack` -- the monorepo dev fallback
|
|
31
|
+
* used when tests run from source (tsx/vitest) before a bundled
|
|
32
|
+
* copy exists.
|
|
33
|
+
*
|
|
34
|
+
* The walk handles several layouts without special-casing:
|
|
35
|
+
* - `<pkg>/dist/migration/get-fullstack-template-dir.js` (plugin's
|
|
36
|
+
* own compiled output) finds the bundled tree one level up.
|
|
37
|
+
* - `<cli>/dist/chunk-XYZ.js` (esbuild-bundled into the CLI) finds
|
|
38
|
+
* the bundled tree in the same dir, because the CLI build copies
|
|
39
|
+
* it into `<cli>/dist/migration-templates/app-fullstack`.
|
|
40
|
+
* - `<repo>/packages/.../src/migration/get-fullstack-template-dir.ts`
|
|
41
|
+
* (tsx dev run) walks up to `<repo>` and finds the workspace copy.
|
|
42
|
+
*
|
|
43
|
+
* Throws if no candidate exists -- the restructure module cannot
|
|
44
|
+
* proceed without a template and it is better to fail here with a clear
|
|
45
|
+
* error than to half-migrate an app.
|
|
46
|
+
*/
|
|
47
|
+
export function getFullstackTemplateDir() {
|
|
48
|
+
const hereDir = dirname(fileURLToPath(import.meta.url));
|
|
49
|
+
const resolved = findFullstackTemplate(hereDir);
|
|
50
|
+
if (resolved)
|
|
51
|
+
return resolved;
|
|
52
|
+
const searched = enumerateSearchedPaths(hereDir);
|
|
53
|
+
throw new Error(`Could not locate the app-fullstack migration template. Searched (in order):\n${searched
|
|
54
|
+
.map((p) => ` - ${p}`)
|
|
55
|
+
.join("\n")}\nRun 'pnpm --filter @superblocksteam/vite-plugin-file-sync build' and, for the published CLI, 'pnpm --filter @superblocksteam/cli build' to populate a bundled copy, or make sure packages/demo-apps/app-fullstack is checked out.`);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Pure lookup: walk up from `startDir` and return the first existing
|
|
59
|
+
* candidate. Exported for tests so we can drive the walk against a
|
|
60
|
+
* synthetic filesystem without mocking `import.meta.url`.
|
|
61
|
+
*/
|
|
62
|
+
export function findFullstackTemplate(startDir) {
|
|
63
|
+
let current = startDir;
|
|
64
|
+
for (let hops = 0; hops < MAX_WALK_HOPS; hops++) {
|
|
65
|
+
for (const sub of CANDIDATE_SUBPATHS) {
|
|
66
|
+
const candidate = join(current, sub);
|
|
67
|
+
if (isUsableDir(candidate))
|
|
68
|
+
return candidate;
|
|
69
|
+
}
|
|
70
|
+
const parent = dirname(current);
|
|
71
|
+
if (parent === current)
|
|
72
|
+
break;
|
|
73
|
+
current = parent;
|
|
74
|
+
}
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
function enumerateSearchedPaths(startDir) {
|
|
78
|
+
const paths = [];
|
|
79
|
+
let current = startDir;
|
|
80
|
+
for (let hops = 0; hops < MAX_WALK_HOPS; hops++) {
|
|
81
|
+
for (const sub of CANDIDATE_SUBPATHS) {
|
|
82
|
+
paths.push(join(current, sub));
|
|
83
|
+
}
|
|
84
|
+
const parent = dirname(current);
|
|
85
|
+
if (parent === current)
|
|
86
|
+
break;
|
|
87
|
+
current = parent;
|
|
88
|
+
}
|
|
89
|
+
return paths;
|
|
90
|
+
}
|
|
91
|
+
function isUsableDir(dirPath) {
|
|
92
|
+
try {
|
|
93
|
+
return existsSync(dirPath) && statSync(dirPath).isDirectory();
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=get-fullstack-template-dir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-fullstack-template-dir.js","sourceRoot":"","sources":["../../src/migration/get-fullstack-template-dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,0EAA0E;AAC1E,wEAAwE;AACxE,qEAAqE;AACrE,wEAAwE;AACxE,uBAAuB;AACvB,MAAM,kBAAkB,GAAsB;IAC5C,mCAAmC;IACnC,kCAAkC;CACnC,CAAC;AAEF,uEAAuE;AACvE,4DAA4D;AAC5D,uEAAuE;AACvE,wCAAwC;AACxC,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,IAAI,KAAK,CACb,gFAAgF,QAAQ;SACrF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;SACtB,IAAI,CACH,IAAI,CACL,qOAAqO,CACzO,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;QAChD,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACrC,IAAI,WAAW,CAAC,SAAS,CAAC;gBAAE,OAAO,SAAS,CAAC;QAC/C,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,OAAO;YAAE,MAAM;QAC9B,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgB;IAC9C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;QAChD,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,OAAO;YAAE,MAAM;QAC9B,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { MigrationChecklistItem, MigrationChecklistOverallStatus, MigrationChecklistStatus } from "@superblocksteam/library-shared/types";
|
|
2
|
+
export declare const MIGRATION_CHECKLIST_FILE = "migration-checklist.json";
|
|
3
|
+
export declare const MIGRATION_CHECKLIST_VERSION = 1;
|
|
4
|
+
export type { MigrationChecklistItem };
|
|
5
|
+
export type ChecklistStatus = MigrationChecklistStatus;
|
|
6
|
+
export interface MigrationChecklistState {
|
|
7
|
+
version: typeof MIGRATION_CHECKLIST_VERSION;
|
|
8
|
+
overallStatus: MigrationChecklistOverallStatus;
|
|
9
|
+
items: MigrationChecklistItem[];
|
|
10
|
+
lastUpdated: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function isMigrationChecklistActive(appRootDirPath: string): Promise<boolean>;
|
|
13
|
+
export declare function readMigrationChecklist(appRootDirPath: string): Promise<MigrationChecklistState | null>;
|
|
14
|
+
export declare function seedMigrationChecklist(args: {
|
|
15
|
+
appRootDirPath: string;
|
|
16
|
+
apiChecklist: Array<{
|
|
17
|
+
name: string;
|
|
18
|
+
stubPath: string;
|
|
19
|
+
}>;
|
|
20
|
+
}): Promise<MigrationChecklistState>;
|
|
21
|
+
export declare function addMigrationChecklistItem(args: {
|
|
22
|
+
appRootDirPath: string;
|
|
23
|
+
content: string;
|
|
24
|
+
status?: ChecklistStatus;
|
|
25
|
+
origin?: MigrationChecklistItem["origin"];
|
|
26
|
+
}): Promise<{
|
|
27
|
+
state: MigrationChecklistState;
|
|
28
|
+
item: MigrationChecklistItem;
|
|
29
|
+
}>;
|
|
30
|
+
export declare function updateMigrationChecklistItem(args: {
|
|
31
|
+
appRootDirPath: string;
|
|
32
|
+
itemId: string;
|
|
33
|
+
content?: string;
|
|
34
|
+
status?: ChecklistStatus;
|
|
35
|
+
failureReason?: string;
|
|
36
|
+
}): Promise<{
|
|
37
|
+
state: MigrationChecklistState;
|
|
38
|
+
item: MigrationChecklistItem;
|
|
39
|
+
}>;
|
|
40
|
+
/**
|
|
41
|
+
* Flip every `seed_api` item currently in `failed` state back to
|
|
42
|
+
* `pending`, bump its `attemptCount`, and preserve the prior
|
|
43
|
+
* `failureReason` as `lastFailureReason` so the retry prompt can carry
|
|
44
|
+
* it. Used by `/sb-migration-retry-unresolved` to let the user trigger
|
|
45
|
+
* another pass once the auto-retry budget has been spent.
|
|
46
|
+
*
|
|
47
|
+
* Unlike `updateMigrationChecklistItem` this writes directly without
|
|
48
|
+
* going through the auto-retry transform — the user has already
|
|
49
|
+
* consented to an additional attempt, so budget enforcement doesn't
|
|
50
|
+
* apply.
|
|
51
|
+
*/
|
|
52
|
+
export declare function retryFailedSeedApiItems(appRootDirPath: string): Promise<{
|
|
53
|
+
state: MigrationChecklistState;
|
|
54
|
+
retriedCount: number;
|
|
55
|
+
}>;
|
|
56
|
+
export declare function getMigrationChecklistPath(appRootDirPath: string): string;
|
|
57
|
+
export declare function markMigrationChecklistCompleted(args: {
|
|
58
|
+
appRootDirPath: string;
|
|
59
|
+
}): Promise<MigrationChecklistState>;
|
|
60
|
+
//# sourceMappingURL=migration-checklist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration-checklist.d.ts","sourceRoot":"","sources":["../../src/migration/migration-checklist.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,sBAAsB,EACtB,+BAA+B,EAC/B,wBAAwB,EACzB,MAAM,uCAAuC,CAAC;AAI/C,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AACnE,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAsB7C,YAAY,EAAE,sBAAsB,EAAE,CAAC;AACvC,MAAM,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAEvD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,2BAA2B,CAAC;IAC5C,aAAa,EAAE,+BAA+B,CAAC;IAC/C,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,0BAA0B,CAC9C,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,sBAAsB,CAC1C,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CA0BzC;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzD,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAkBnC;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,MAAM,CAAC,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;CAC3C,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,uBAAuB,CAAC;IAAC,IAAI,EAAE,sBAAsB,CAAA;CAAE,CAAC,CA2B5E;AAED,wBAAsB,4BAA4B,CAAC,IAAI,EAAE;IACvD,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,uBAAuB,CAAC;IAAC,IAAI,EAAE,sBAAsB,CAAA;CAAE,CAAC,CA4C5E;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7E,KAAK,EAAE,uBAAuB,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CA8BD;AAED,wBAAgB,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAsB,+BAA+B,CAAC,IAAI,EAAE;IAC1D,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAYnC"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { access, readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { OperationQueue } from "../util/operation-queue.js";
|
|
4
|
+
export const MIGRATION_CHECKLIST_FILE = "migration-checklist.json";
|
|
5
|
+
export const MIGRATION_CHECKLIST_VERSION = 1;
|
|
6
|
+
const SCRATCH_DIR_NAME = "scratch";
|
|
7
|
+
/**
|
|
8
|
+
* Per-app serialization of read-modify-write mutations on the shared
|
|
9
|
+
* migration checklist JSON. Parallel sub-agents (see
|
|
10
|
+
* `spawnCodingSubagents`) can otherwise race: two concurrent
|
|
11
|
+
* `build_manageChecklist` calls would both read the same snapshot,
|
|
12
|
+
* compute new state independently, and both write — losing one update.
|
|
13
|
+
*
|
|
14
|
+
* Reads (`readMigrationChecklist`) do not go through the queue.
|
|
15
|
+
*/
|
|
16
|
+
const mutationQueues = new Map();
|
|
17
|
+
function getMutationQueue(appRootDirPath) {
|
|
18
|
+
let queue = mutationQueues.get(appRootDirPath);
|
|
19
|
+
if (!queue) {
|
|
20
|
+
queue = new OperationQueue();
|
|
21
|
+
mutationQueues.set(appRootDirPath, queue);
|
|
22
|
+
}
|
|
23
|
+
return queue;
|
|
24
|
+
}
|
|
25
|
+
export async function isMigrationChecklistActive(appRootDirPath) {
|
|
26
|
+
return (await readMigrationChecklist(appRootDirPath)) !== null;
|
|
27
|
+
}
|
|
28
|
+
export async function readMigrationChecklist(appRootDirPath) {
|
|
29
|
+
for (const checklistPath of getChecklistPathCandidates(appRootDirPath)) {
|
|
30
|
+
try {
|
|
31
|
+
const raw = await readFile(checklistPath, "utf-8");
|
|
32
|
+
const parsed = JSON.parse(raw);
|
|
33
|
+
if (parsed &&
|
|
34
|
+
parsed.version === MIGRATION_CHECKLIST_VERSION &&
|
|
35
|
+
Array.isArray(parsed.items)) {
|
|
36
|
+
return {
|
|
37
|
+
version: MIGRATION_CHECKLIST_VERSION,
|
|
38
|
+
overallStatus: parsed.overallStatus === "completed" ? "completed" : "active",
|
|
39
|
+
items: parsed.items,
|
|
40
|
+
lastUpdated: typeof parsed.lastUpdated === "string"
|
|
41
|
+
? parsed.lastUpdated
|
|
42
|
+
: new Date().toISOString(),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// Try next candidate.
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
export async function seedMigrationChecklist(args) {
|
|
53
|
+
const now = new Date().toISOString();
|
|
54
|
+
const state = {
|
|
55
|
+
version: MIGRATION_CHECKLIST_VERSION,
|
|
56
|
+
overallStatus: "active",
|
|
57
|
+
lastUpdated: now,
|
|
58
|
+
items: args.apiChecklist.map((entry) => ({
|
|
59
|
+
id: `api_${entry.name}`,
|
|
60
|
+
content: `Port API: ${entry.name}`,
|
|
61
|
+
status: "pending",
|
|
62
|
+
createdAt: now,
|
|
63
|
+
origin: "seed_api",
|
|
64
|
+
apiName: entry.name,
|
|
65
|
+
stubPath: entry.stubPath,
|
|
66
|
+
})),
|
|
67
|
+
};
|
|
68
|
+
await writeMigrationChecklist(args.appRootDirPath, state);
|
|
69
|
+
return state;
|
|
70
|
+
}
|
|
71
|
+
export async function addMigrationChecklistItem(args) {
|
|
72
|
+
return getMutationQueue(args.appRootDirPath).enqueue(async () => {
|
|
73
|
+
const checklist = (await readMigrationChecklist(args.appRootDirPath)) ??
|
|
74
|
+
{
|
|
75
|
+
version: MIGRATION_CHECKLIST_VERSION,
|
|
76
|
+
items: [],
|
|
77
|
+
overallStatus: "active",
|
|
78
|
+
lastUpdated: new Date().toISOString(),
|
|
79
|
+
};
|
|
80
|
+
const item = {
|
|
81
|
+
id: `item_${Date.now()}_${Math.random().toString(36).slice(2, 10)}`,
|
|
82
|
+
content: args.content,
|
|
83
|
+
status: args.status ?? "pending",
|
|
84
|
+
createdAt: new Date().toISOString(),
|
|
85
|
+
origin: args.origin ?? "clark",
|
|
86
|
+
};
|
|
87
|
+
const state = {
|
|
88
|
+
...checklist,
|
|
89
|
+
items: [...checklist.items, item],
|
|
90
|
+
lastUpdated: new Date().toISOString(),
|
|
91
|
+
};
|
|
92
|
+
await writeMigrationChecklist(args.appRootDirPath, state);
|
|
93
|
+
return { state, item };
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
export async function updateMigrationChecklistItem(args) {
|
|
97
|
+
return getMutationQueue(args.appRootDirPath).enqueue(async () => {
|
|
98
|
+
const checklist = await readMigrationChecklist(args.appRootDirPath);
|
|
99
|
+
if (!checklist) {
|
|
100
|
+
throw new Error("Migration checklist is not active");
|
|
101
|
+
}
|
|
102
|
+
const itemIndex = checklist.items.findIndex((item) => item.id === args.itemId);
|
|
103
|
+
if (itemIndex === -1) {
|
|
104
|
+
throw new Error(`Checklist item with ID "${args.itemId}" not found`);
|
|
105
|
+
}
|
|
106
|
+
const existingItem = checklist.items[itemIndex];
|
|
107
|
+
if (!existingItem) {
|
|
108
|
+
throw new Error(`Checklist item at index ${itemIndex} is undefined`);
|
|
109
|
+
}
|
|
110
|
+
const nextStatus = args.status ?? existingItem.status;
|
|
111
|
+
const nextFailureReason = args.failureReason ?? existingItem.failureReason;
|
|
112
|
+
// No automatic retry: a write that says `failed` is terminal.
|
|
113
|
+
// Recovery happens through the UI's "Fix with Clark" action, which
|
|
114
|
+
// calls `retryFailedSeedApiItems` to flip rows back to `pending`
|
|
115
|
+
// with a bumped `attemptCount` and the prior reason stashed as
|
|
116
|
+
// `lastFailureReason` for the retry prompt.
|
|
117
|
+
const item = {
|
|
118
|
+
...existingItem,
|
|
119
|
+
content: args.content ?? existingItem.content,
|
|
120
|
+
status: nextStatus,
|
|
121
|
+
// Only keep failureReason when status is "failed"; clear it on any
|
|
122
|
+
// other transition so a retried item doesn't ship a stale reason.
|
|
123
|
+
failureReason: nextStatus === "failed" ? nextFailureReason : undefined,
|
|
124
|
+
updatedAt: new Date().toISOString(),
|
|
125
|
+
};
|
|
126
|
+
const items = [...checklist.items];
|
|
127
|
+
items[itemIndex] = item;
|
|
128
|
+
const state = {
|
|
129
|
+
...checklist,
|
|
130
|
+
items,
|
|
131
|
+
lastUpdated: new Date().toISOString(),
|
|
132
|
+
};
|
|
133
|
+
await writeMigrationChecklist(args.appRootDirPath, state);
|
|
134
|
+
return { state, item };
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Flip every `seed_api` item currently in `failed` state back to
|
|
139
|
+
* `pending`, bump its `attemptCount`, and preserve the prior
|
|
140
|
+
* `failureReason` as `lastFailureReason` so the retry prompt can carry
|
|
141
|
+
* it. Used by `/sb-migration-retry-unresolved` to let the user trigger
|
|
142
|
+
* another pass once the auto-retry budget has been spent.
|
|
143
|
+
*
|
|
144
|
+
* Unlike `updateMigrationChecklistItem` this writes directly without
|
|
145
|
+
* going through the auto-retry transform — the user has already
|
|
146
|
+
* consented to an additional attempt, so budget enforcement doesn't
|
|
147
|
+
* apply.
|
|
148
|
+
*/
|
|
149
|
+
export async function retryFailedSeedApiItems(appRootDirPath) {
|
|
150
|
+
return getMutationQueue(appRootDirPath).enqueue(async () => {
|
|
151
|
+
const checklist = await readMigrationChecklist(appRootDirPath);
|
|
152
|
+
if (!checklist) {
|
|
153
|
+
throw new Error("Migration checklist is not active");
|
|
154
|
+
}
|
|
155
|
+
let retriedCount = 0;
|
|
156
|
+
const now = new Date().toISOString();
|
|
157
|
+
const items = checklist.items.map((item) => {
|
|
158
|
+
if (item.origin !== "seed_api" || item.status !== "failed") {
|
|
159
|
+
return item;
|
|
160
|
+
}
|
|
161
|
+
retriedCount += 1;
|
|
162
|
+
return {
|
|
163
|
+
...item,
|
|
164
|
+
status: "pending",
|
|
165
|
+
failureReason: undefined,
|
|
166
|
+
lastFailureReason: item.failureReason ?? item.lastFailureReason,
|
|
167
|
+
attemptCount: (item.attemptCount ?? 0) + 1,
|
|
168
|
+
updatedAt: now,
|
|
169
|
+
};
|
|
170
|
+
});
|
|
171
|
+
const state = {
|
|
172
|
+
...checklist,
|
|
173
|
+
items,
|
|
174
|
+
lastUpdated: now,
|
|
175
|
+
};
|
|
176
|
+
await writeMigrationChecklist(appRootDirPath, state);
|
|
177
|
+
return { state, retriedCount };
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
export function getMigrationChecklistPath(appRootDirPath) {
|
|
181
|
+
return join(appRootDirPath, SCRATCH_DIR_NAME, MIGRATION_CHECKLIST_FILE);
|
|
182
|
+
}
|
|
183
|
+
export async function markMigrationChecklistCompleted(args) {
|
|
184
|
+
const checklist = await readMigrationChecklist(args.appRootDirPath);
|
|
185
|
+
if (!checklist) {
|
|
186
|
+
throw new Error("Migration checklist is not active");
|
|
187
|
+
}
|
|
188
|
+
const state = {
|
|
189
|
+
...checklist,
|
|
190
|
+
overallStatus: "completed",
|
|
191
|
+
lastUpdated: new Date().toISOString(),
|
|
192
|
+
};
|
|
193
|
+
await writeMigrationChecklist(args.appRootDirPath, state);
|
|
194
|
+
return state;
|
|
195
|
+
}
|
|
196
|
+
async function writeMigrationChecklist(appRootDirPath, state) {
|
|
197
|
+
const checklistPath = await resolveChecklistPathForWrite(appRootDirPath);
|
|
198
|
+
await writeFile(checklistPath, JSON.stringify(state, null, 2) + "\n", "utf-8");
|
|
199
|
+
}
|
|
200
|
+
function getChecklistPathCandidates(appRootDirPath) {
|
|
201
|
+
const primary = getMigrationChecklistPath(appRootDirPath);
|
|
202
|
+
const parentCandidate = getMigrationChecklistPath(dirname(appRootDirPath));
|
|
203
|
+
if (primary === parentCandidate) {
|
|
204
|
+
return [primary];
|
|
205
|
+
}
|
|
206
|
+
return [primary, parentCandidate];
|
|
207
|
+
}
|
|
208
|
+
async function resolveChecklistPathForWrite(appRootDirPath) {
|
|
209
|
+
const candidates = getChecklistPathCandidates(appRootDirPath);
|
|
210
|
+
for (const candidate of candidates) {
|
|
211
|
+
try {
|
|
212
|
+
await access(candidate);
|
|
213
|
+
return candidate;
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
// Keep checking.
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
for (const candidate of candidates) {
|
|
220
|
+
try {
|
|
221
|
+
await access(dirname(candidate));
|
|
222
|
+
return candidate;
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
// Keep checking.
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return candidates[0] ?? getMigrationChecklistPath(appRootDirPath);
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=migration-checklist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration-checklist.js","sourceRoot":"","sources":["../../src/migration/migration-checklist.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ViteDevServer } from "vite";
|
|
2
|
+
import type { SyncService } from "../sync-service/index.js";
|
|
3
|
+
import { type Logger } from "../util/logger.js";
|
|
4
|
+
export interface MigrationRoutesOptions {
|
|
5
|
+
/**
|
|
6
|
+
* The Vite `config.root` (== the user's app root). The migration
|
|
7
|
+
* restructures this tree in place, so it MUST be the real on-disk
|
|
8
|
+
* root, not a logical alias.
|
|
9
|
+
*/
|
|
10
|
+
appRootDir: string;
|
|
11
|
+
getIsInitialized: () => boolean;
|
|
12
|
+
syncService: SyncService | undefined;
|
|
13
|
+
logger: Logger;
|
|
14
|
+
/**
|
|
15
|
+
* The Vite config root (usually `appRootDir` or `appRootDir/client`).
|
|
16
|
+
* Used to unwatch/re-watch the file tree around the restructure step
|
|
17
|
+
* so Vite's chokidar watcher doesn't process thousands of interim
|
|
18
|
+
* file-change events that crash the dev server.
|
|
19
|
+
*/
|
|
20
|
+
viteRoot: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function registerMigrationRoutes(server: ViteDevServer, options: MigrationRoutesOptions): void;
|
|
23
|
+
//# sourceMappingURL=migration-routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration-routes.d.ts","sourceRoot":"","sources":["../../src/migration/migration-routes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAO1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAmB9D,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,OAAO,CAAC;IAChC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AA0OD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,sBAAsB,GAC9B,IAAI,CA+cN"}
|