@superblocksteam/vite-plugin-file-sync 2.0.162-next.2 → 2.0.163-next.0
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 +18 -7
- package/dist/ai-service/agent/middleware.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 +43 -29
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/prompts/build-security-scan-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/build-security-scan-prompt.js +25 -0
- package/dist/ai-service/agent/prompts/build-security-scan-prompt.js.map +1 -1
- package/dist/ai-service/agent/subagents/coding/run-coding-subagent.d.ts.map +1 -1
- package/dist/ai-service/agent/subagents/coding/run-coding-subagent.js +15 -0
- package/dist/ai-service/agent/subagents/coding/run-coding-subagent.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.js +4 -2
- package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
- package/dist/ai-service/agent/tools/app-environment/switch-selected-environment.d.ts +18 -0
- package/dist/ai-service/agent/tools/app-environment/switch-selected-environment.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/app-environment/switch-selected-environment.js +61 -0
- package/dist/ai-service/agent/tools/app-environment/switch-selected-environment.js.map +1 -0
- package/dist/ai-service/agent/tools/build-capture-screenshot.js +1 -1
- package/dist/ai-service/agent/tools/build-install-packages.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-install-packages.js +21 -8
- package/dist/ai-service/agent/tools/build-install-packages.js.map +1 -1
- package/dist/ai-service/agent/tools/build-read-file.d.ts +87 -1
- package/dist/ai-service/agent/tools/build-read-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-read-file.js +453 -82
- package/dist/ai-service/agent/tools/build-read-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-write-file.d.ts +1 -0
- package/dist/ai-service/agent/tools/build-write-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-write-file.js +18 -2
- package/dist/ai-service/agent/tools/build-write-file.js.map +1 -1
- package/dist/ai-service/agent/tools/debug-cache.d.ts +11 -0
- package/dist/ai-service/agent/tools/debug-cache.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/debug-cache.js +62 -14
- package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
- package/dist/ai-service/agent/tools/index.d.ts +2 -1
- package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/index.js +2 -1
- package/dist/ai-service/agent/tools/index.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/metadata.d.ts +1 -0
- package/dist/ai-service/agent/tools/integrations/metadata.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/metadata.js +7 -2
- package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -1
- package/dist/ai-service/agent/tools/read-file-metrics.d.ts +30 -0
- package/dist/ai-service/agent/tools/read-file-metrics.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/read-file-metrics.js +158 -0
- package/dist/ai-service/agent/tools/read-file-metrics.js.map +1 -0
- package/dist/ai-service/agent/tools/subagent-isolation.d.ts +27 -0
- package/dist/ai-service/agent/tools/subagent-isolation.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/subagent-isolation.js +57 -0
- package/dist/ai-service/agent/tools/subagent-isolation.js.map +1 -0
- package/dist/ai-service/agent/tools.d.ts +4 -1
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +51 -5
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/download-attachments.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/download-attachments.js +1 -0
- package/dist/ai-service/agent/tools2/tools/download-attachments.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/start-test-run.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/start-test-run.js +14 -0
- package/dist/ai-service/agent/tools2/tools/start-test-run.js.map +1 -1
- package/dist/ai-service/agent/utils.d.ts.map +1 -1
- package/dist/ai-service/agent/utils.js +2 -2
- package/dist/ai-service/agent/utils.js.map +1 -1
- package/dist/ai-service/app-interface/filesystem/draft-manager.d.ts +2 -1
- package/dist/ai-service/app-interface/filesystem/draft-manager.d.ts.map +1 -1
- package/dist/ai-service/app-interface/filesystem/draft-manager.js +3 -0
- package/dist/ai-service/app-interface/filesystem/draft-manager.js.map +1 -1
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.d.ts +2 -1
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.d.ts.map +1 -1
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js +13 -11
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js.map +1 -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 +1 -1
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.js.map +1 -1
- package/dist/ai-service/app-interface/shell.d.ts +18 -9
- package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
- package/dist/ai-service/app-interface/shell.js +92 -112
- package/dist/ai-service/app-interface/shell.js.map +1 -1
- package/dist/ai-service/app-interface/typecheck-output-parser.d.ts +9 -0
- package/dist/ai-service/app-interface/typecheck-output-parser.d.ts.map +1 -0
- package/dist/ai-service/app-interface/typecheck-output-parser.js +21 -0
- package/dist/ai-service/app-interface/typecheck-output-parser.js.map +1 -0
- package/dist/ai-service/app-interface/vulnerability-gate.d.ts +5 -0
- package/dist/ai-service/app-interface/vulnerability-gate.d.ts.map +1 -1
- package/dist/ai-service/app-interface/vulnerability-gate.js +9 -2
- package/dist/ai-service/app-interface/vulnerability-gate.js.map +1 -1
- package/dist/ai-service/app-layout.d.ts +13 -0
- package/dist/ai-service/app-layout.d.ts.map +1 -0
- package/dist/ai-service/app-layout.js +25 -0
- package/dist/ai-service/app-layout.js.map +1 -0
- package/dist/ai-service/app-skills/manager.d.ts +2 -0
- package/dist/ai-service/app-skills/manager.d.ts.map +1 -1
- package/dist/ai-service/app-skills/manager.js +13 -6
- package/dist/ai-service/app-skills/manager.js.map +1 -1
- package/dist/ai-service/attachment-label-metrics.d.ts +5 -0
- package/dist/ai-service/attachment-label-metrics.d.ts.map +1 -0
- package/dist/ai-service/attachment-label-metrics.js +26 -0
- package/dist/ai-service/attachment-label-metrics.js.map +1 -0
- package/dist/ai-service/attachment-upload.d.ts.map +1 -1
- package/dist/ai-service/attachment-upload.js +6 -1
- package/dist/ai-service/attachment-upload.js.map +1 -1
- package/dist/ai-service/attachments/validate-prompt-attachments.d.ts +7 -0
- package/dist/ai-service/attachments/validate-prompt-attachments.d.ts.map +1 -0
- package/dist/ai-service/attachments/validate-prompt-attachments.js +96 -0
- package/dist/ai-service/attachments/validate-prompt-attachments.js.map +1 -0
- package/dist/ai-service/chat/chat-push-metrics.d.ts +17 -0
- package/dist/ai-service/chat/chat-push-metrics.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-push-metrics.js +45 -0
- package/dist/ai-service/chat/chat-push-metrics.js.map +1 -1
- package/dist/ai-service/chat/chat-session-store.d.ts +51 -0
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +181 -4
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/features.d.ts +32 -0
- package/dist/ai-service/features.d.ts.map +1 -1
- package/dist/ai-service/features.js +32 -0
- package/dist/ai-service/features.js.map +1 -1
- package/dist/ai-service/helper-system-ai-attributes.d.ts +1 -1
- package/dist/ai-service/helper-system-ai-attributes.d.ts.map +1 -1
- package/dist/ai-service/helper-system-ai-attributes.js.map +1 -1
- package/dist/ai-service/index.d.ts +19 -4
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +176 -23
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/llm/client.d.ts +9 -0
- package/dist/ai-service/llm/client.d.ts.map +1 -1
- package/dist/ai-service/llm/client.js +13 -43
- package/dist/ai-service/llm/client.js.map +1 -1
- package/dist/ai-service/llm/context-v2/adapter.d.ts +2 -0
- package/dist/ai-service/llm/context-v2/adapter.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/adapter.js +6 -0
- package/dist/ai-service/llm/context-v2/adapter.js.map +1 -1
- package/dist/ai-service/llm/context-v2/compaction/server-side.d.ts +8 -0
- package/dist/ai-service/llm/context-v2/compaction/server-side.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/compaction/server-side.js +8 -0
- package/dist/ai-service/llm/context-v2/compaction/server-side.js.map +1 -1
- package/dist/ai-service/llm/context-v2/context-component-partition.d.ts +24 -0
- package/dist/ai-service/llm/context-v2/context-component-partition.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/context-component-partition.js +222 -0
- package/dist/ai-service/llm/context-v2/context-component-partition.js.map +1 -0
- package/dist/ai-service/llm/context-v2/context-metrics.d.ts +9 -0
- package/dist/ai-service/llm/context-v2/context-metrics.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/context-metrics.js +40 -2
- package/dist/ai-service/llm/context-v2/context-metrics.js.map +1 -1
- package/dist/ai-service/llm/context-v2/context.d.ts +116 -4
- package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/context.js +276 -64
- package/dist/ai-service/llm/context-v2/context.js.map +1 -1
- package/dist/ai-service/llm/context-v2/conversation-context.d.ts +18 -0
- package/dist/ai-service/llm/context-v2/conversation-context.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/file-read-ledger.d.ts +218 -0
- package/dist/ai-service/llm/context-v2/file-read-ledger.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/file-read-ledger.js +275 -0
- package/dist/ai-service/llm/context-v2/file-read-ledger.js.map +1 -0
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js +5 -2
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js.map +1 -1
- package/dist/ai-service/llm/context-v2/token-tracker.d.ts +2 -0
- package/dist/ai-service/llm/context-v2/token-tracker.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/token-tracker.js +4 -0
- package/dist/ai-service/llm/context-v2/token-tracker.js.map +1 -1
- package/dist/ai-service/llm/context-v2/tool-schema-tokens.d.ts +22 -0
- package/dist/ai-service/llm/context-v2/tool-schema-tokens.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/tool-schema-tokens.js +36 -0
- package/dist/ai-service/llm/context-v2/tool-schema-tokens.js.map +1 -0
- package/dist/ai-service/llm/context-v2/types.d.ts +8 -0
- package/dist/ai-service/llm/context-v2/types.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/types.js +48 -0
- package/dist/ai-service/llm/context-v2/types.js.map +1 -1
- package/dist/ai-service/llm/error.d.ts +2 -0
- package/dist/ai-service/llm/error.d.ts.map +1 -1
- package/dist/ai-service/llm/error.js +1 -0
- package/dist/ai-service/llm/error.js.map +1 -1
- package/dist/ai-service/llm/retry-exhaustion-reason.d.ts +2 -0
- package/dist/ai-service/llm/retry-exhaustion-reason.d.ts.map +1 -0
- package/dist/ai-service/llm/retry-exhaustion-reason.js +2 -0
- package/dist/ai-service/llm/retry-exhaustion-reason.js.map +1 -0
- package/dist/ai-service/llm/stream/errors.d.ts +6 -7
- package/dist/ai-service/llm/stream/errors.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/errors.js +7 -1
- package/dist/ai-service/llm/stream/errors.js.map +1 -1
- package/dist/ai-service/llm/stream/event-bus.d.ts +9 -1
- package/dist/ai-service/llm/stream/event-bus.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/event-bus.js.map +1 -1
- package/dist/ai-service/llm/stream/idle-monitor.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/idle-monitor.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/context.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/context.js +13 -0
- package/dist/ai-service/llm/stream/observers/context.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/llmobs.d.ts +14 -1
- package/dist/ai-service/llm/stream/observers/llmobs.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/llmobs.js +91 -7
- package/dist/ai-service/llm/stream/observers/llmobs.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/logging.d.ts +3 -1
- package/dist/ai-service/llm/stream/observers/logging.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/logging.js +73 -52
- package/dist/ai-service/llm/stream/observers/logging.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 +16 -9
- package/dist/ai-service/llm/stream/observers/retry-notification.js.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.d.ts +5 -1
- package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.js +103 -12
- package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.d.ts +3 -1
- package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.js +9 -0
- package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
- package/dist/ai-service/llm/stream/session.d.ts +8 -1
- package/dist/ai-service/llm/stream/session.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/session.js +19 -0
- package/dist/ai-service/llm/stream/session.js.map +1 -1
- package/dist/ai-service/llm/stream/types.d.ts +13 -0
- package/dist/ai-service/llm/stream/types.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/wait-state-tracker.d.ts +5 -14
- package/dist/ai-service/llm/stream/wait-state-tracker.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/wait-state-tracker.js +25 -0
- package/dist/ai-service/llm/stream/wait-state-tracker.js.map +1 -1
- package/dist/ai-service/mcp/embedded-playwright-mcp-server.js +8 -8
- package/dist/ai-service/mcp/embedded-playwright-mcp-server.js.map +1 -1
- package/dist/ai-service/policy-gate-remediation-usage.d.ts +2 -0
- package/dist/ai-service/policy-gate-remediation-usage.d.ts.map +1 -0
- package/dist/ai-service/policy-gate-remediation-usage.js +56 -0
- package/dist/ai-service/policy-gate-remediation-usage.js.map +1 -0
- package/dist/ai-service/prompts/summarize-destructive-migration.d.ts +12 -0
- package/dist/ai-service/prompts/summarize-destructive-migration.d.ts.map +1 -0
- package/dist/ai-service/prompts/summarize-destructive-migration.js +37 -0
- package/dist/ai-service/prompts/summarize-destructive-migration.js.map +1 -0
- package/dist/ai-service/recording/storage/session-recording-storage.js +2 -2
- package/dist/ai-service/recording/storage/session-recording-storage.js.map +1 -1
- package/dist/ai-service/security/secret-scanner-service.d.ts.map +1 -1
- package/dist/ai-service/security/secret-scanner-service.js +88 -23
- package/dist/ai-service/security/secret-scanner-service.js.map +1 -1
- package/dist/ai-service/skills/index.d.ts +0 -7
- package/dist/ai-service/skills/index.d.ts.map +1 -1
- package/dist/ai-service/skills/index.js +0 -9
- package/dist/ai-service/skills/index.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 +4 -0
- package/dist/ai-service/skills/system/_registry.generated.js.map +1 -1
- package/dist/ai-service/skills/system/resolve.d.ts +2 -0
- package/dist/ai-service/skills/system/resolve.d.ts.map +1 -0
- package/dist/ai-service/skills/system/resolve.js +32 -0
- package/dist/ai-service/skills/system/resolve.js.map +1 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-legacy.generated.d.ts +2 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-legacy.generated.d.ts.map +1 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-legacy.generated.js +9 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-legacy.generated.js.map +1 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-sdk.generated.d.ts +2 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-sdk.generated.d.ts.map +1 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-sdk.generated.js +11 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-sdk.generated.js.map +1 -0
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js +16 -24
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
- package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/third-party-migration/skill.generated.js +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +11 -0
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +7 -1
- 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 +21 -0
- package/dist/ai-service/state-machine/handlers/agent-planning.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 +32 -9
- package/dist/ai-service/state-machine/handlers/llm-generating.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 +21 -2
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/stable-peer.d.ts +11 -2
- package/dist/ai-service/state-machine/helpers/stable-peer.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/stable-peer.js +105 -18
- package/dist/ai-service/state-machine/helpers/stable-peer.js.map +1 -1
- package/dist/ai-service/state-machine/mocks.d.ts +3 -1
- package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
- package/dist/ai-service/state-machine/mocks.js +52 -13
- package/dist/ai-service/state-machine/mocks.js.map +1 -1
- package/dist/ai-service/tasks/peer-push.d.ts +3 -0
- package/dist/ai-service/tasks/peer-push.d.ts.map +1 -1
- package/dist/ai-service/tasks/peer-push.js +33 -0
- package/dist/ai-service/tasks/peer-push.js.map +1 -1
- package/dist/ai-service/util/call-peer.d.ts +2 -0
- package/dist/ai-service/util/call-peer.d.ts.map +1 -1
- package/dist/ai-service/util/call-peer.js +17 -4
- package/dist/ai-service/util/call-peer.js.map +1 -1
- package/dist/ai-service/util/line-ranges.d.ts +21 -0
- package/dist/ai-service/util/line-ranges.d.ts.map +1 -0
- package/dist/ai-service/util/line-ranges.js +36 -0
- package/dist/ai-service/util/line-ranges.js.map +1 -0
- package/dist/ai-service/util/peer-liveness.d.ts +1 -0
- package/dist/ai-service/util/peer-liveness.d.ts.map +1 -1
- package/dist/ai-service/util/peer-liveness.js +2 -0
- package/dist/ai-service/util/peer-liveness.js.map +1 -1
- package/dist/dev-server-ws-smoke-client.d.ts.map +1 -1
- package/dist/dev-server-ws-smoke-client.js +7 -0
- package/dist/dev-server-ws-smoke-client.js.map +1 -1
- package/dist/draft-interface.d.ts +8 -0
- package/dist/draft-interface.d.ts.map +1 -1
- package/dist/early-error-relay.d.ts +2 -0
- package/dist/early-error-relay.d.ts.map +1 -1
- package/dist/early-error-relay.js +7 -3
- package/dist/early-error-relay.js.map +1 -1
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +43 -15
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/file-system-helpers.d.ts +2 -2
- package/dist/file-system-helpers.d.ts.map +1 -1
- package/dist/file-system-helpers.js +3 -3
- package/dist/file-system-helpers.js.map +1 -1
- package/dist/git-service/errors.d.ts +9 -0
- package/dist/git-service/errors.d.ts.map +1 -1
- package/dist/git-service/errors.js +15 -0
- package/dist/git-service/errors.js.map +1 -1
- package/dist/git-service/index.d.ts +2 -2
- package/dist/git-service/index.d.ts.map +1 -1
- package/dist/git-service/index.js +2 -2
- package/dist/git-service/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lock-service/activity-tracker.d.ts +5 -0
- package/dist/lock-service/activity-tracker.d.ts.map +1 -1
- package/dist/lock-service/activity-tracker.js +10 -0
- package/dist/lock-service/activity-tracker.js.map +1 -1
- package/dist/lock-service/index.d.ts +69 -4
- package/dist/lock-service/index.d.ts.map +1 -1
- package/dist/lock-service/index.js +139 -29
- package/dist/lock-service/index.js.map +1 -1
- package/dist/migration-templates/app-fullstack/client/components/ui/accordion.tsx +9 -65
- package/dist/migration-templates/app-fullstack/client/components/ui/area-chart.tsx +36 -156
- package/dist/migration-templates/app-fullstack/client/components/ui/aspect-ratio.tsx +1 -5
- package/dist/migration-templates/app-fullstack/client/components/ui/avatar.tsx +4 -18
- package/dist/migration-templates/app-fullstack/client/components/ui/badge.tsx +6 -29
- package/dist/migration-templates/app-fullstack/client/components/ui/bar-chart.tsx +41 -167
- package/dist/migration-templates/app-fullstack/client/components/ui/breadcrumb.tsx +1 -4
- package/dist/migration-templates/app-fullstack/client/components/ui/button.tsx +5 -64
- package/dist/migration-templates/app-fullstack/client/components/ui/calendar.tsx +6 -42
- package/dist/migration-templates/app-fullstack/client/components/ui/card.tsx +1 -4
- package/dist/migration-templates/app-fullstack/client/components/ui/checkbox.tsx +4 -29
- package/dist/migration-templates/app-fullstack/client/components/ui/date-range-picker.tsx +13 -154
- package/dist/migration-templates/app-fullstack/client/components/ui/dialog.tsx +7 -34
- package/dist/migration-templates/app-fullstack/client/components/ui/file-dropzone.tsx +12 -95
- package/dist/migration-templates/app-fullstack/client/components/ui/file-input.tsx +12 -73
- package/dist/migration-templates/app-fullstack/client/components/ui/hover-card.tsx +10 -66
- package/dist/migration-templates/app-fullstack/client/components/ui/icon.tsx +3 -16
- package/dist/migration-templates/app-fullstack/client/components/ui/image.tsx +4 -16
- package/dist/migration-templates/app-fullstack/client/components/ui/input.tsx +18 -159
- package/dist/migration-templates/app-fullstack/client/components/ui/label.tsx +1 -4
- package/dist/migration-templates/app-fullstack/client/components/ui/line-chart.tsx +32 -148
- package/dist/migration-templates/app-fullstack/client/components/ui/link.tsx +4 -24
- package/dist/migration-templates/app-fullstack/client/components/ui/navigation-menu.tsx +3 -24
- package/dist/migration-templates/app-fullstack/client/components/ui/pagination.tsx +4 -24
- package/dist/migration-templates/app-fullstack/client/components/ui/pie-chart.tsx +28 -142
- package/dist/migration-templates/app-fullstack/client/components/ui/popover.tsx +9 -61
- package/dist/migration-templates/app-fullstack/client/components/ui/progress.tsx +2 -11
- package/dist/migration-templates/app-fullstack/client/components/ui/radar-chart.tsx +37 -171
- package/dist/migration-templates/app-fullstack/client/components/ui/radial-chart.tsx +50 -202
- package/dist/migration-templates/app-fullstack/client/components/ui/select.tsx +5 -35
- package/dist/migration-templates/app-fullstack/client/components/ui/separator.tsx +1 -8
- package/dist/migration-templates/app-fullstack/client/components/ui/sheet.tsx +7 -40
- package/dist/migration-templates/app-fullstack/client/components/ui/sidebar.tsx +3 -35
- package/dist/migration-templates/app-fullstack/client/components/ui/slider.tsx +11 -95
- package/dist/migration-templates/app-fullstack/client/components/ui/switch.tsx +5 -32
- package/dist/migration-templates/app-fullstack/client/components/ui/textarea.tsx +13 -90
- package/dist/migration-templates/app-fullstack/client/components/ui/toggle-group.tsx +11 -75
- package/dist/migration-templates/app-fullstack/client/components/ui/toggle.tsx +8 -70
- package/dist/migration-templates/app-fullstack/client/components/ui/tooltip.tsx +9 -62
- package/dist/parsing/imports.d.ts +22 -0
- package/dist/parsing/imports.d.ts.map +1 -1
- package/dist/parsing/imports.js +71 -0
- package/dist/parsing/imports.js.map +1 -1
- package/dist/reconnect-guard-plugin.d.ts +53 -0
- package/dist/reconnect-guard-plugin.d.ts.map +1 -0
- package/dist/reconnect-guard-plugin.js +203 -0
- package/dist/reconnect-guard-plugin.js.map +1 -0
- package/dist/resolver.d.ts +2 -1
- package/dist/resolver.d.ts.map +1 -1
- package/dist/resolver.js +4 -6
- package/dist/resolver.js.map +1 -1
- package/dist/router-parser-metrics.d.ts +2 -1
- package/dist/router-parser-metrics.d.ts.map +1 -1
- package/dist/router-parser-metrics.js.map +1 -1
- package/dist/router-parser.d.ts +10 -1
- package/dist/router-parser.d.ts.map +1 -1
- package/dist/router-parser.js +306 -69
- package/dist/router-parser.js.map +1 -1
- package/dist/scan-scope-merge-metrics.d.ts +2 -0
- package/dist/scan-scope-merge-metrics.d.ts.map +1 -0
- package/dist/scan-scope-merge-metrics.js +18 -0
- package/dist/scan-scope-merge-metrics.js.map +1 -0
- package/dist/scan-scope-merge.d.ts +2 -2
- package/dist/scan-scope-merge.d.ts.map +1 -1
- package/dist/scan-scope-merge.js +64 -14
- package/dist/scan-scope-merge.js.map +1 -1
- package/dist/server-rpc/index.d.ts.map +1 -1
- package/dist/server-rpc/index.js +12 -2
- package/dist/server-rpc/index.js.map +1 -1
- package/dist/socket-manager.d.ts +1 -1
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +276 -15
- package/dist/socket-manager.js.map +1 -1
- package/dist/sync-service/download.js +2 -2
- package/dist/sync-service/download.js.map +1 -1
- package/dist/sync-service/index.d.ts +95 -22
- package/dist/sync-service/index.d.ts.map +1 -1
- package/dist/sync-service/index.js +402 -56
- package/dist/sync-service/index.js.map +1 -1
- package/dist/sync-service/page-reference-guard.d.ts +17 -0
- package/dist/sync-service/page-reference-guard.d.ts.map +1 -0
- package/dist/sync-service/page-reference-guard.js +170 -0
- package/dist/sync-service/page-reference-guard.js.map +1 -0
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +16 -2
- package/dist/util.js.map +1 -1
- package/package.json +15 -14
|
@@ -32,6 +32,7 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
|
|
|
32
32
|
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
33
33
|
done = true;
|
|
34
34
|
};
|
|
35
|
+
import { isUtf8 } from "node:buffer";
|
|
35
36
|
import { exec, execFile } from "node:child_process";
|
|
36
37
|
import { readFile as fsReadFile, mkdir, writeFile, access, rm, stat, readdir, } from "node:fs/promises";
|
|
37
38
|
import * as path from "node:path";
|
|
@@ -58,6 +59,7 @@ import { DraftManager, validateFileOperation, } from "./filesystem/index.js";
|
|
|
58
59
|
import { Linter } from "./linter.js";
|
|
59
60
|
import { parseNpmJsonDiagnostic, parseNpmJsonError, parseNpmJsonSuccess, } from "./npm-error-parser.js";
|
|
60
61
|
import { prepareForPrivateRegistry, shouldIgnoreInstallScripts, } from "./npm-registry.js";
|
|
62
|
+
import { parseTypecheckOutputByPath } from "./typecheck-output-parser.js";
|
|
61
63
|
import { applyPackageSubstitutions, runVulnerabilityGate, } from "./vulnerability-gate.js";
|
|
62
64
|
const execPromise = promisify(exec);
|
|
63
65
|
const execFilePromise = promisify(execFile);
|
|
@@ -345,7 +347,7 @@ let AppShell = (() => {
|
|
|
345
347
|
appShellQueueExecuteMs: executeMs,
|
|
346
348
|
appShellQueueOperation: operationName,
|
|
347
349
|
appShellQueueWaitMs: queueWaitMs,
|
|
348
|
-
...
|
|
350
|
+
...metadata,
|
|
349
351
|
},
|
|
350
352
|
});
|
|
351
353
|
}
|
|
@@ -377,19 +379,7 @@ let AppShell = (() => {
|
|
|
377
379
|
});
|
|
378
380
|
}
|
|
379
381
|
async runTypecheck(abortSignal) {
|
|
380
|
-
|
|
381
|
-
if (!output) {
|
|
382
|
-
return null;
|
|
383
|
-
}
|
|
384
|
-
const parsed = output.split("\n").reduce((acc, line) => {
|
|
385
|
-
const [filePath, _rest] = line.split("(");
|
|
386
|
-
if (filePath && filePath.trim() !== "") {
|
|
387
|
-
acc[filePath] = [...(acc[filePath] || []), line];
|
|
388
|
-
return acc;
|
|
389
|
-
}
|
|
390
|
-
return acc;
|
|
391
|
-
}, {});
|
|
392
|
-
return Object.keys(parsed).length > 0 ? parsed : null;
|
|
382
|
+
return parseTypecheckOutputByPath(await this.runTypecheckRawOutput(abortSignal));
|
|
393
383
|
}
|
|
394
384
|
async runTypecheckRawOutput(abortSignal) {
|
|
395
385
|
const command = process.env.SUPERBLOCKS_SERVER_ENV === "local"
|
|
@@ -787,7 +777,7 @@ let AppShell = (() => {
|
|
|
787
777
|
// Audit reporting is best-effort and must not affect the install.
|
|
788
778
|
}
|
|
789
779
|
}
|
|
790
|
-
maybeReportBlockedInstall(err, runner) {
|
|
780
|
+
maybeReportBlockedInstall(err, runner, triageVerdicts) {
|
|
791
781
|
if (!(err instanceof NpmInstallBlocked))
|
|
792
782
|
return;
|
|
793
783
|
// Audit only real CVE/malware findings — index/probe failures are fail-closed
|
|
@@ -817,17 +807,12 @@ let AppShell = (() => {
|
|
|
817
807
|
npmErrorCode: err.npmErrorCode,
|
|
818
808
|
runner,
|
|
819
809
|
occurredAt: Date.now(),
|
|
810
|
+
...(triageVerdicts?.length ? { triageVerdicts } : {}),
|
|
820
811
|
...(vulnerabilities?.length ? { vulnerabilities } : {}),
|
|
821
812
|
});
|
|
822
813
|
}
|
|
823
|
-
|
|
824
|
-
this.
|
|
825
|
-
occurredAt: Date.now(),
|
|
826
|
-
packages: [verdict.package],
|
|
827
|
-
reason: "vulnerability_triaged",
|
|
828
|
-
runner: "install_specific",
|
|
829
|
-
triage: verdict,
|
|
830
|
-
});
|
|
814
|
+
reportNpmBlockedInstall(error, triageVerdicts) {
|
|
815
|
+
this.maybeReportBlockedInstall(error, "install_specific", triageVerdicts);
|
|
831
816
|
}
|
|
832
817
|
reportNpmUserOverride(args) {
|
|
833
818
|
this.safeAudit({
|
|
@@ -836,6 +821,7 @@ let AppShell = (() => {
|
|
|
836
821
|
reason: "vulnerability_user_override",
|
|
837
822
|
runner: "install_specific",
|
|
838
823
|
userOverride: {
|
|
824
|
+
...(args.advisories?.length ? { advisories: args.advisories } : {}),
|
|
839
825
|
packages: args.packages,
|
|
840
826
|
reason: args.reason,
|
|
841
827
|
},
|
|
@@ -1742,6 +1728,7 @@ let AppShell = (() => {
|
|
|
1742
1728
|
if (options?.cveUserOverride &&
|
|
1743
1729
|
remediation.userOverridePackages?.length) {
|
|
1744
1730
|
this.reportNpmUserOverride({
|
|
1731
|
+
advisories: remediation.userOverrideAdvisories,
|
|
1745
1732
|
packages: remediation.userOverridePackages,
|
|
1746
1733
|
reason: options.cveUserOverride.reason,
|
|
1747
1734
|
});
|
|
@@ -1751,7 +1738,9 @@ let AppShell = (() => {
|
|
|
1751
1738
|
}
|
|
1752
1739
|
catch (err) {
|
|
1753
1740
|
outcome = outcomeFromInstallError(err);
|
|
1754
|
-
|
|
1741
|
+
if (!options?.deferBlockedAudit) {
|
|
1742
|
+
this.maybeReportBlockedInstall(err, "install_specific");
|
|
1743
|
+
}
|
|
1755
1744
|
throw err;
|
|
1756
1745
|
}
|
|
1757
1746
|
finally {
|
|
@@ -1931,9 +1920,6 @@ let AppShell = (() => {
|
|
|
1931
1920
|
}
|
|
1932
1921
|
});
|
|
1933
1922
|
}
|
|
1934
|
-
// ============================================================================
|
|
1935
|
-
// Filesystem Operations
|
|
1936
|
-
// ============================================================================
|
|
1937
1923
|
/**
|
|
1938
1924
|
* Reads a single file's content from the application.
|
|
1939
1925
|
*
|
|
@@ -2041,6 +2027,40 @@ let AppShell = (() => {
|
|
|
2041
2027
|
* Called directly by writeFile (no queue wrapper needed since draftInterface queues).
|
|
2042
2028
|
*/
|
|
2043
2029
|
async writeFileInternal(relativePath, rawContent) {
|
|
2030
|
+
const content = this.prepareFileContent(relativePath, rawContent);
|
|
2031
|
+
if (this.virtualFs.isVirtualPath(relativePath)) {
|
|
2032
|
+
if (typeof content !== "string") {
|
|
2033
|
+
throw new Error(`Cannot write binary content to virtual file: ${relativePath}`);
|
|
2034
|
+
}
|
|
2035
|
+
await this.virtualFs.write(relativePath, content, {
|
|
2036
|
+
appRootDirPath: this.appRootDirPath,
|
|
2037
|
+
});
|
|
2038
|
+
await this.draftManager.createDraftMarker(relativePath);
|
|
2039
|
+
return;
|
|
2040
|
+
}
|
|
2041
|
+
const change = this.preparePhysicalWrite(relativePath, content);
|
|
2042
|
+
await this.draftManager.applyDraftChanges([change]);
|
|
2043
|
+
}
|
|
2044
|
+
/**
|
|
2045
|
+
* Reject a write of TypeScript that does not parse, before it reaches disk.
|
|
2046
|
+
* A file that does not parse blanks the preview, and nothing downstream can
|
|
2047
|
+
* read what it imports.
|
|
2048
|
+
*/
|
|
2049
|
+
rejectUnparseableTypeScript(relativePath, content) {
|
|
2050
|
+
if (!relativePath.endsWith(".ts") && !relativePath.endsWith(".tsx")) {
|
|
2051
|
+
return;
|
|
2052
|
+
}
|
|
2053
|
+
try {
|
|
2054
|
+
parseTsxModule(typeof content === "string" ? content : content.toString("utf8"), relativePath);
|
|
2055
|
+
}
|
|
2056
|
+
catch (error) {
|
|
2057
|
+
getLogger().warn(`TSX parse validation rejected write: ${relativePath}`, getErrorMeta(error));
|
|
2058
|
+
emitWriteTsxParseRejectedMetric(relativePath.endsWith(".tsx") ? "tsx" : "ts");
|
|
2059
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
2060
|
+
throw new ToolExecutionError(`${relativePath}: ${message}`);
|
|
2061
|
+
}
|
|
2062
|
+
}
|
|
2063
|
+
prepareFileContent(relativePath, rawContent) {
|
|
2044
2064
|
// Deterministic safety net: rewrite value imports of `lucide-react/dynamic`
|
|
2045
2065
|
// type-only exports (e.g. `IconName`) into type imports. A stray value
|
|
2046
2066
|
// import compiles but crashes the app at runtime and blanks the preview,
|
|
@@ -2061,34 +2081,12 @@ let AppShell = (() => {
|
|
|
2061
2081
|
}
|
|
2062
2082
|
}
|
|
2063
2083
|
}
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
if (relativePath.endsWith(".ts") || relativePath.endsWith(".tsx")) {
|
|
2071
|
-
try {
|
|
2072
|
-
parseTsxModule(typeof content === "string" ? content : content.toString("utf8"), relativePath);
|
|
2073
|
-
}
|
|
2074
|
-
catch (error) {
|
|
2075
|
-
getLogger().warn(`TSX parse validation rejected write: ${relativePath}`, getErrorMeta(error));
|
|
2076
|
-
emitWriteTsxParseRejectedMetric(relativePath.endsWith(".tsx") ? "tsx" : "ts");
|
|
2077
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
2078
|
-
throw new ToolExecutionError(`${relativePath}: ${message}`);
|
|
2079
|
-
}
|
|
2080
|
-
}
|
|
2081
|
-
}
|
|
2082
|
-
if (isVirtual) {
|
|
2083
|
-
await this.virtualFs.write(relativePath, content, {
|
|
2084
|
-
appRootDirPath: this.appRootDirPath,
|
|
2085
|
-
});
|
|
2086
|
-
await this.draftManager.createDraftMarker(relativePath);
|
|
2087
|
-
return;
|
|
2088
|
-
}
|
|
2089
|
-
const absolutePath = path.join(this.appRootDirPath, relativePath);
|
|
2090
|
-
await mkdir(path.dirname(absolutePath), { recursive: true });
|
|
2091
|
-
await this.draftManager.createDraft(relativePath, content);
|
|
2084
|
+
return content;
|
|
2085
|
+
}
|
|
2086
|
+
preparePhysicalWrite(relativePath, content) {
|
|
2087
|
+
validateFileOperation("write", relativePath, this.appRootDirPath, undefined, this.pathValidator, this.getFileOperationBlacklistOptions());
|
|
2088
|
+
this.rejectUnparseableTypeScript(relativePath, content);
|
|
2089
|
+
return { filePath: relativePath, content };
|
|
2092
2090
|
}
|
|
2093
2091
|
resolveAppRelativePath(relativePath, direction) {
|
|
2094
2092
|
if (path.isAbsolute(relativePath)) {
|
|
@@ -2239,26 +2237,34 @@ let AppShell = (() => {
|
|
|
2239
2237
|
result,
|
|
2240
2238
|
sourceDir: options.sourceDir,
|
|
2241
2239
|
});
|
|
2240
|
+
const hasVirtualDestination = entries.some((entry) => this.virtualFs.isVirtualPath(entry.destinationPath));
|
|
2241
|
+
const hasPhysicalDestination = entries.some((entry) => !this.virtualFs.isVirtualPath(entry.destinationPath));
|
|
2242
|
+
if (hasVirtualDestination && hasPhysicalDestination) {
|
|
2243
|
+
throw new Error("Cannot copy a directory to mixed physical and virtual files. Copy the physical and virtual files separately.");
|
|
2244
|
+
}
|
|
2242
2245
|
if ((options.conflictStrategy ?? "fail") === "fail") {
|
|
2243
2246
|
for (const entry of entries) {
|
|
2244
2247
|
await this.preflightCopyFile(entry);
|
|
2245
2248
|
}
|
|
2246
2249
|
}
|
|
2250
|
+
const physicalChanges = [];
|
|
2247
2251
|
for (const entry of entries) {
|
|
2248
|
-
await this.
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
destinationPath
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2252
|
+
const destinationExists = await this.pathExists(entry.destinationPath);
|
|
2253
|
+
if (destinationExists && options.conflictStrategy === "skip") {
|
|
2254
|
+
this.recordSkipped(result, entry.destinationPath, "destination_exists");
|
|
2255
|
+
continue;
|
|
2256
|
+
}
|
|
2257
|
+
const content = await fsReadFile(this.resolveAppRelativePath(entry.sourcePath, "from"));
|
|
2258
|
+
if (this.virtualFs.isVirtualPath(entry.destinationPath)) {
|
|
2259
|
+
await this.writeFileInternal(entry.destinationPath, isUtf8(content) ? content.toString("utf-8") : content);
|
|
2260
|
+
}
|
|
2261
|
+
else {
|
|
2262
|
+
physicalChanges.push(this.preparePhysicalWrite(entry.destinationPath, this.prepareFileContent(entry.destinationPath, content)));
|
|
2263
|
+
}
|
|
2264
|
+
this.recordCopied(result, entry.destinationPath);
|
|
2265
|
+
}
|
|
2266
|
+
if (physicalChanges.length > 0) {
|
|
2267
|
+
await this.draftManager.applyDraftChanges(physicalChanges);
|
|
2262
2268
|
}
|
|
2263
2269
|
llmobs.annotate({
|
|
2264
2270
|
metadata: {
|
|
@@ -2302,23 +2308,13 @@ let AppShell = (() => {
|
|
|
2302
2308
|
validateFileOperation("delete", relativePath, this.appRootDirPath, undefined, this.pathValidator, this.getFileOperationBlacklistOptions());
|
|
2303
2309
|
const absolutePath = path.join(this.appRootDirPath, relativePath);
|
|
2304
2310
|
// Check if path exists and what type it is
|
|
2305
|
-
let stats;
|
|
2306
2311
|
try {
|
|
2307
|
-
|
|
2312
|
+
await stat(absolutePath);
|
|
2308
2313
|
}
|
|
2309
2314
|
catch {
|
|
2310
2315
|
throw new Error(`File or directory ${relativePath} not found`);
|
|
2311
2316
|
}
|
|
2312
|
-
|
|
2313
|
-
// Recursively delete directory contents
|
|
2314
|
-
await this.deleteDirectoryRecursive(absolutePath);
|
|
2315
|
-
// Remove the directory itself
|
|
2316
|
-
await rm(absolutePath, { recursive: true, force: true });
|
|
2317
|
-
}
|
|
2318
|
-
else {
|
|
2319
|
-
// Single file deletion
|
|
2320
|
-
await this.draftManager.createDraftDelete(relativePath);
|
|
2321
|
-
}
|
|
2317
|
+
await this.draftManager.createDraftDelete(relativePath);
|
|
2322
2318
|
}
|
|
2323
2319
|
/**
|
|
2324
2320
|
* Implementation of listFiles supporting both signatures.
|
|
@@ -2490,14 +2486,23 @@ let AppShell = (() => {
|
|
|
2490
2486
|
if (this.isReadRequired(oldPath)) {
|
|
2491
2487
|
throw new Error(`Cannot rename ${oldPath} without reading it first. Please read the file before attempting to rename it.`);
|
|
2492
2488
|
}
|
|
2493
|
-
|
|
2489
|
+
const oldIsVirtual = this.virtualFs.isVirtualPath(oldPath);
|
|
2490
|
+
const newIsVirtual = this.virtualFs.isVirtualPath(newPath);
|
|
2491
|
+
if (oldIsVirtual !== newIsVirtual) {
|
|
2492
|
+
throw new Error("Cannot rename between physical and virtual files. Copy the file and delete the source separately.");
|
|
2493
|
+
}
|
|
2494
2494
|
const content = await this.readFileInternal(oldPath);
|
|
2495
|
-
|
|
2496
|
-
|
|
2495
|
+
if (!oldIsVirtual && !newIsVirtual) {
|
|
2496
|
+
await this.draftManager.applyDraftChanges([
|
|
2497
|
+
this.preparePhysicalWrite(newPath, this.prepareFileContent(newPath, content)),
|
|
2498
|
+
{ filePath: oldPath },
|
|
2499
|
+
]);
|
|
2500
|
+
}
|
|
2501
|
+
else {
|
|
2502
|
+
await this.writeFileInternal(newPath, content);
|
|
2503
|
+
await this.deleteFileInternal(oldPath);
|
|
2504
|
+
}
|
|
2497
2505
|
}
|
|
2498
|
-
// ============================================================================
|
|
2499
|
-
// Draft Management
|
|
2500
|
-
// ============================================================================
|
|
2501
2506
|
/**
|
|
2502
2507
|
* Checks if there are any pending draft changes.
|
|
2503
2508
|
*
|
|
@@ -2544,9 +2549,6 @@ let AppShell = (() => {
|
|
|
2544
2549
|
getDraftInterface() {
|
|
2545
2550
|
return this.draftManager?.getInterface();
|
|
2546
2551
|
}
|
|
2547
|
-
// ============================================================================
|
|
2548
|
-
// Read Tracking (Read-Before-Write Enforcement)
|
|
2549
|
-
// ============================================================================
|
|
2550
2552
|
/**
|
|
2551
2553
|
* Check if a file must be read before it can be written.
|
|
2552
2554
|
*
|
|
@@ -2579,28 +2581,6 @@ let AppShell = (() => {
|
|
|
2579
2581
|
useLessProtectedPatterns: this.enableDeletingLockfiles,
|
|
2580
2582
|
};
|
|
2581
2583
|
}
|
|
2582
|
-
// ============================================================================
|
|
2583
|
-
// Private Helpers
|
|
2584
|
-
// ============================================================================
|
|
2585
|
-
/**
|
|
2586
|
-
* Recursively deletes directory contents by creating draft deletes.
|
|
2587
|
-
*/
|
|
2588
|
-
async deleteDirectoryRecursive(dirPath) {
|
|
2589
|
-
if (!this.draftManager) {
|
|
2590
|
-
throw new Error("DraftInterface is required for directory deletion");
|
|
2591
|
-
}
|
|
2592
|
-
const entries = await readdir(dirPath, { withFileTypes: true });
|
|
2593
|
-
for (const entry of entries) {
|
|
2594
|
-
const fullPath = path.join(dirPath, entry.name);
|
|
2595
|
-
const relativePath = path.relative(this.appRootDirPath, fullPath);
|
|
2596
|
-
if (entry.isDirectory()) {
|
|
2597
|
-
await this.deleteDirectoryRecursive(fullPath);
|
|
2598
|
-
}
|
|
2599
|
-
else {
|
|
2600
|
-
await this.draftManager.createDraftDelete(relativePath);
|
|
2601
|
-
}
|
|
2602
|
-
}
|
|
2603
|
-
}
|
|
2604
2584
|
};
|
|
2605
2585
|
})();
|
|
2606
2586
|
export { AppShell };
|