@superblocksteam/vite-plugin-file-sync 2.0.76 → 2.0.77-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 +14 -0
- package/dist/ai-service/agent/middleware.d.ts.map +1 -1
- package/dist/ai-service/agent/middleware.js +45 -0
- 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 +66 -5
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/subagents/apis/static-analysis.d.ts.map +1 -1
- package/dist/ai-service/agent/subagents/apis/static-analysis.js +11 -5
- package/dist/ai-service/agent/subagents/apis/static-analysis.js.map +1 -1
- package/dist/ai-service/agent/subagents/testing/prompt-builder.d.ts.map +1 -1
- package/dist/ai-service/agent/subagents/testing/prompt-builder.js +15 -0
- package/dist/ai-service/agent/subagents/testing/prompt-builder.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 +3 -0
- package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api-artifact.js +12 -3
- package/dist/ai-service/agent/tools/apis/build-api-artifact.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api.js +6 -0
- package/dist/ai-service/agent/tools/apis/build-api.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/get-api-docs.js +99 -3
- package/dist/ai-service/agent/tools/apis/get-api-docs.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/integration-types.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/integration-types.js +85 -23
- package/dist/ai-service/agent/tools/apis/integration-types.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.d.ts +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 +26 -45
- package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/write-api.d.ts +2 -2
- package/dist/ai-service/agent/tools/apis/write-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/write-api.js +8 -2
- package/dist/ai-service/agent/tools/apis/write-api.js.map +1 -1
- package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-capture-screenshot.js +3 -0
- package/dist/ai-service/agent/tools/build-capture-screenshot.js.map +1 -1
- package/dist/ai-service/agent/tools/build-debug.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-debug.js +58 -6
- package/dist/ai-service/agent/tools/build-debug.js.map +1 -1
- package/dist/ai-service/agent/tools/build-delete-file.d.ts +1 -1
- package/dist/ai-service/agent/tools/build-delete-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-delete-file.js +27 -196
- package/dist/ai-service/agent/tools/build-delete-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-edit-file.d.ts +1 -1
- package/dist/ai-service/agent/tools/build-edit-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-edit-file.js +12 -22
- package/dist/ai-service/agent/tools/build-edit-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-finalize.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-finalize.js +3 -0
- package/dist/ai-service/agent/tools/build-finalize.js.map +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 +15 -0
- package/dist/ai-service/agent/tools/build-install-packages.js.map +1 -1
- package/dist/ai-service/agent/tools/build-list-files.d.ts +1 -1
- package/dist/ai-service/agent/tools/build-list-files.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-list-files.js +6 -14
- package/dist/ai-service/agent/tools/build-list-files.js.map +1 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.js +9 -0
- package/dist/ai-service/agent/tools/build-manage-checklist.js.map +1 -1
- package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts +2 -2
- package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-multi-edit-file.js +8 -25
- package/dist/ai-service/agent/tools/build-multi-edit-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-read-file.d.ts +10 -4
- package/dist/ai-service/agent/tools/build-read-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-read-file.js +75 -77
- package/dist/ai-service/agent/tools/build-read-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-reload-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-reload-file.js +5 -0
- package/dist/ai-service/agent/tools/build-reload-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-rename-file.d.ts +1 -1
- package/dist/ai-service/agent/tools/build-rename-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-rename-file.js +3 -50
- package/dist/ai-service/agent/tools/build-rename-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-validate-icons.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-validate-icons.js +8 -0
- package/dist/ai-service/agent/tools/build-validate-icons.js.map +1 -1
- package/dist/ai-service/agent/tools/build-write-file.d.ts +2 -2
- package/dist/ai-service/agent/tools/build-write-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-write-file.js +7 -17
- package/dist/ai-service/agent/tools/build-write-file.js.map +1 -1
- package/dist/ai-service/agent/tools/clear-error-cache.d.ts +10 -0
- package/dist/ai-service/agent/tools/clear-error-cache.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/clear-error-cache.js +38 -0
- package/dist/ai-service/agent/tools/clear-error-cache.js.map +1 -0
- package/dist/ai-service/agent/tools/get-console-logs.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/get-console-logs.js +6 -0
- package/dist/ai-service/agent/tools/get-console-logs.js.map +1 -1
- package/dist/ai-service/agent/tools/get-runtime-errors.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/get-runtime-errors.js +4 -0
- package/dist/ai-service/agent/tools/get-runtime-errors.js.map +1 -1
- package/dist/ai-service/agent/tools/index.d.ts +1 -0
- package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/index.js +1 -0
- package/dist/ai-service/agent/tools/index.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.js +56 -9
- package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/metadata.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/metadata.js +10 -1
- package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/run-code.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/run-code.js +9 -0
- package/dist/ai-service/agent/tools/integrations/run-code.js.map +1 -1
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +29 -6
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/registry.d.ts +15 -0
- package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/registry.js +30 -0
- 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 +11 -1
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/edit.d.ts +4 -1
- package/dist/ai-service/agent/tools2/tools/edit.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/edit.js +10 -8
- package/dist/ai-service/agent/tools2/tools/edit.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/end-test-run.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/end-test-run.js +5 -0
- package/dist/ai-service/agent/tools2/tools/end-test-run.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts +2 -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 +24 -0
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/glob.d.ts +4 -1
- package/dist/ai-service/agent/tools2/tools/glob.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/glob.js +25 -85
- package/dist/ai-service/agent/tools2/tools/glob.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep-metadata.js +9 -0
- package/dist/ai-service/agent/tools2/tools/grep-metadata.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep.d.ts +1 -1
- package/dist/ai-service/agent/tools2/tools/grep.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep.js +22 -5
- package/dist/ai-service/agent/tools2/tools/grep.js.map +1 -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 +4 -0
- package/dist/ai-service/agent/tools2/tools/list-attachments.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/ls.d.ts +8 -1
- package/dist/ai-service/agent/tools2/tools/ls.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/ls.js +102 -83
- package/dist/ai-service/agent/tools2/tools/ls.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/read.d.ts +5 -2
- package/dist/ai-service/agent/tools2/tools/read.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/read.js +24 -12
- package/dist/ai-service/agent/tools2/tools/read.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 +13 -0
- package/dist/ai-service/agent/tools2/tools/start-test-run.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/update-test-case-status.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/update-test-case-status.js +6 -0
- package/dist/ai-service/agent/tools2/tools/update-test-case-status.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/write.d.ts +4 -1
- package/dist/ai-service/agent/tools2/tools/write.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/write.js +9 -4
- package/dist/ai-service/agent/tools2/tools/write.js.map +1 -1
- package/dist/ai-service/agent/tools2/types.d.ts +25 -0
- 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/app-interface/constants.d.ts +77 -0
- package/dist/ai-service/app-interface/constants.d.ts.map +1 -0
- package/dist/ai-service/app-interface/constants.js +128 -0
- package/dist/ai-service/app-interface/constants.js.map +1 -0
- package/dist/ai-service/app-interface/filesystem/draft-manager.d.ts +87 -0
- package/dist/ai-service/app-interface/filesystem/draft-manager.d.ts.map +1 -0
- package/dist/ai-service/app-interface/filesystem/draft-manager.js +91 -0
- package/dist/ai-service/app-interface/filesystem/draft-manager.js.map +1 -0
- package/dist/ai-service/app-interface/filesystem/handlers/api-handler.d.ts +35 -0
- package/dist/ai-service/app-interface/filesystem/handlers/api-handler.d.ts.map +1 -0
- package/dist/ai-service/app-interface/filesystem/handlers/api-handler.js +236 -0
- package/dist/ai-service/app-interface/filesystem/handlers/api-handler.js.map +1 -0
- package/dist/ai-service/app-interface/filesystem/handlers/index.d.ts +5 -0
- package/dist/ai-service/app-interface/filesystem/handlers/index.d.ts.map +1 -0
- package/dist/ai-service/app-interface/filesystem/handlers/index.js +5 -0
- package/dist/ai-service/app-interface/filesystem/handlers/index.js.map +1 -0
- package/dist/ai-service/app-interface/filesystem/index.d.ts +12 -0
- package/dist/ai-service/app-interface/filesystem/index.d.ts.map +1 -0
- package/dist/ai-service/app-interface/filesystem/index.js +11 -0
- package/dist/ai-service/app-interface/filesystem/index.js.map +1 -0
- package/dist/ai-service/app-interface/filesystem/validation.d.ts +71 -0
- package/dist/ai-service/app-interface/filesystem/validation.d.ts.map +1 -0
- package/dist/ai-service/app-interface/filesystem/validation.js +170 -0
- package/dist/ai-service/app-interface/filesystem/validation.js.map +1 -0
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.d.ts +108 -0
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.d.ts.map +1 -0
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.js +157 -0
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.js.map +1 -0
- package/dist/ai-service/app-interface/filesystem/virtual-fs-types.d.ts +126 -0
- package/dist/ai-service/app-interface/filesystem/virtual-fs-types.d.ts.map +1 -0
- package/dist/ai-service/app-interface/filesystem/virtual-fs-types.js +9 -0
- package/dist/ai-service/app-interface/filesystem/virtual-fs-types.js.map +1 -0
- package/dist/ai-service/app-interface/linter.d.ts +4 -1
- package/dist/ai-service/app-interface/linter.d.ts.map +1 -1
- package/dist/ai-service/app-interface/linter.js +10 -6
- package/dist/ai-service/app-interface/linter.js.map +1 -1
- package/dist/ai-service/app-interface/shell.d.ts +205 -1
- package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
- package/dist/ai-service/app-interface/shell.js +474 -14
- package/dist/ai-service/app-interface/shell.js.map +1 -1
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +9 -0
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/const.d.ts +0 -3
- package/dist/ai-service/const.d.ts.map +1 -1
- package/dist/ai-service/const.js +1 -52
- package/dist/ai-service/const.js.map +1 -1
- package/dist/ai-service/features.d.ts +12 -0
- package/dist/ai-service/features.d.ts.map +1 -1
- package/dist/ai-service/features.js +13 -0
- package/dist/ai-service/features.js.map +1 -1
- package/dist/ai-service/index.d.ts +1 -1
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +27 -24
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/integrations/store.d.ts +0 -2
- package/dist/ai-service/integrations/store.d.ts.map +1 -1
- package/dist/ai-service/integrations/store.js +4 -15
- package/dist/ai-service/integrations/store.js.map +1 -1
- package/dist/ai-service/judge/judge-executor.d.ts.map +1 -1
- package/dist/ai-service/judge/judge-executor.js +4 -0
- package/dist/ai-service/judge/judge-executor.js.map +1 -1
- package/dist/ai-service/llm/client.d.ts +21 -4
- package/dist/ai-service/llm/client.d.ts.map +1 -1
- package/dist/ai-service/llm/client.js +132 -12
- package/dist/ai-service/llm/client.js.map +1 -1
- package/dist/ai-service/llm/context/context.d.ts +4 -1
- package/dist/ai-service/llm/context/context.d.ts.map +1 -1
- package/dist/ai-service/llm/context/context.js +27 -5
- package/dist/ai-service/llm/context/context.js.map +1 -1
- package/dist/ai-service/llm/context/internal-types.d.ts +5 -0
- package/dist/ai-service/llm/context/internal-types.d.ts.map +1 -1
- package/dist/ai-service/llm/context/internal-types.js +5 -0
- package/dist/ai-service/llm/context/internal-types.js.map +1 -1
- package/dist/ai-service/llm/context/levels/l1.d.ts +4 -3
- package/dist/ai-service/llm/context/levels/l1.d.ts.map +1 -1
- package/dist/ai-service/llm/context/levels/l1.js +9 -8
- package/dist/ai-service/llm/context/levels/l1.js.map +1 -1
- package/dist/ai-service/llm/context/serialization.d.ts +8 -0
- package/dist/ai-service/llm/context/serialization.d.ts.map +1 -1
- package/dist/ai-service/llm/context/utils/content-compaction.d.ts +7 -5
- package/dist/ai-service/llm/context/utils/content-compaction.d.ts.map +1 -1
- package/dist/ai-service/llm/context/utils/content-compaction.js +27 -6
- package/dist/ai-service/llm/context/utils/content-compaction.js.map +1 -1
- package/dist/ai-service/llm/error.d.ts +1 -0
- package/dist/ai-service/llm/error.d.ts.map +1 -1
- package/dist/ai-service/llm/error.js +29 -3
- package/dist/ai-service/llm/error.js.map +1 -1
- package/dist/ai-service/llm/stream/config.d.ts +18 -6
- package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/config.js +18 -5
- package/dist/ai-service/llm/stream/config.js.map +1 -1
- package/dist/ai-service/llm/stream/errors.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/errors.js +7 -4
- package/dist/ai-service/llm/stream/errors.js.map +1 -1
- package/dist/ai-service/llm/stream/index.d.ts +5 -3
- package/dist/ai-service/llm/stream/index.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/index.js +4 -2
- package/dist/ai-service/llm/stream/index.js.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.d.ts +1 -1
- package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.js +5 -11
- package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.d.ts +18 -5
- package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.js +75 -21
- package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
- package/dist/ai-service/mcp/adapter/mcp-tool-adapter.d.ts +8 -0
- package/dist/ai-service/mcp/adapter/mcp-tool-adapter.d.ts.map +1 -1
- package/dist/ai-service/mcp/adapter/mcp-tool-adapter.js +108 -0
- package/dist/ai-service/mcp/adapter/mcp-tool-adapter.js.map +1 -1
- package/dist/ai-service/mcp/embedded-playwright-mcp-server.d.ts.map +1 -1
- package/dist/ai-service/mcp/embedded-playwright-mcp-server.js +360 -133
- package/dist/ai-service/mcp/embedded-playwright-mcp-server.js.map +1 -1
- package/dist/ai-service/security/index.d.ts +8 -0
- package/dist/ai-service/security/index.d.ts.map +1 -0
- package/dist/ai-service/security/index.js +8 -0
- package/dist/ai-service/security/index.js.map +1 -0
- package/dist/ai-service/security/safety-classifier.d.ts +103 -0
- package/dist/ai-service/security/safety-classifier.d.ts.map +1 -0
- package/dist/ai-service/security/safety-classifier.js +178 -0
- package/dist/ai-service/security/safety-classifier.js.map +1 -0
- package/dist/ai-service/security/secret-scanner.d.ts +145 -0
- package/dist/ai-service/security/secret-scanner.d.ts.map +1 -0
- package/dist/ai-service/security/secret-scanner.js +344 -0
- package/dist/ai-service/security/secret-scanner.js.map +1 -0
- package/dist/ai-service/state-machine/clark-fsm.d.ts +2 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +32 -9
- 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 +17 -6
- 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 +29 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/template-renderer.d.ts.map +1 -1
- package/dist/ai-service/template-renderer.js +4 -1
- package/dist/ai-service/template-renderer.js.map +1 -1
- package/dist/ai-service/transform/api-builder/shared.js +2 -2
- package/dist/ai-service/transform/api-builder/shared.js.map +1 -1
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts +1 -0
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts.map +1 -1
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +1 -2
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -1
- package/dist/ai-service/types.d.ts +6 -5
- package/dist/ai-service/types.d.ts.map +1 -1
- package/dist/ai-service/types.js.map +1 -1
- package/dist/components-manager.d.ts.map +1 -1
- package/dist/components-manager.js +17 -12
- package/dist/components-manager.js.map +1 -1
- package/dist/ensure-app-provider.d.ts +2 -0
- package/dist/ensure-app-provider.d.ts.map +1 -0
- package/dist/ensure-app-provider.js +209 -0
- package/dist/ensure-app-provider.js.map +1 -0
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +22 -12
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/file-system-manager.d.ts +0 -6
- package/dist/file-system-manager.d.ts.map +1 -1
- package/dist/file-system-manager.js +119 -144
- package/dist/file-system-manager.js.map +1 -1
- package/dist/parsing/util.d.ts.map +1 -1
- package/dist/parsing/util.js +5 -1
- package/dist/parsing/util.js.map +1 -1
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +5 -0
- package/dist/socket-manager.js.map +1 -1
- package/dist/source-tracker.d.ts +4 -0
- package/dist/source-tracker.d.ts.map +1 -1
- package/dist/source-tracker.js +15 -8
- package/dist/source-tracker.js.map +1 -1
- package/dist/sync-service/index.d.ts.map +1 -1
- package/dist/sync-service/index.js +13 -8
- package/dist/sync-service/index.js.map +1 -1
- package/dist/util/logger.d.ts.map +1 -1
- package/dist/util/logger.js +16 -0
- package/dist/util/logger.js.map +1 -1
- package/dist/util.d.ts +1 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +4 -2
- package/dist/util.js.map +1 -1
- package/package.json +10 -16
- package/dist/ai-service/agent/tools/apis/api-source.d.ts +0 -24
- package/dist/ai-service/agent/tools/apis/api-source.d.ts.map +0 -1
- package/dist/ai-service/agent/tools/apis/api-source.js +0 -108
- package/dist/ai-service/agent/tools/apis/api-source.js.map +0 -1
- package/dist/ai-service/state-machine/helpers/file-read-tracker.d.ts +0 -7
- package/dist/ai-service/state-machine/helpers/file-read-tracker.d.ts.map +0 -1
- package/dist/ai-service/state-machine/helpers/file-read-tracker.js +0 -26
- package/dist/ai-service/state-machine/helpers/file-read-tracker.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-handler.js","sourceRoot":"","sources":["../../../../../src/ai-service/app-interface/filesystem/handlers/api-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/app-interface/filesystem/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ai-service/app-interface/filesystem/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filesystem abstraction layer for AppShell.
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all filesystem-related utilities including validation,
|
|
5
|
+
* virtual filesystem operations, and draft management.
|
|
6
|
+
*/
|
|
7
|
+
export * from "./validation.js";
|
|
8
|
+
export { DraftManager, type DraftChanges } from "./draft-manager.js";
|
|
9
|
+
export type { FileMetadata, VirtualFileHandler, VirtualPathInfo, VirtualReadOptions, VirtualWriteOptions, VirtualDeleteOptions, } from "./virtual-fs-types.js";
|
|
10
|
+
export { VirtualFileSystem, createDefaultVirtualFileSystem, } from "./virtual-file-system.js";
|
|
11
|
+
export { ApiFileHandler } from "./handlers/index.js";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGrE,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filesystem abstraction layer for AppShell.
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all filesystem-related utilities including validation,
|
|
5
|
+
* virtual filesystem operations, and draft management.
|
|
6
|
+
*/
|
|
7
|
+
export * from "./validation.js";
|
|
8
|
+
export { DraftManager } from "./draft-manager.js";
|
|
9
|
+
export { VirtualFileSystem, createDefaultVirtualFileSystem, } from "./virtual-file-system.js";
|
|
10
|
+
export { ApiFileHandler } from "./handlers/index.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AAWrE,OAAO,EACL,iBAAiB,EACjB,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File operation validation utilities.
|
|
3
|
+
*
|
|
4
|
+
* Provides centralized validation logic for all filesystem operations,
|
|
5
|
+
* including blacklist checking, path restrictions, and operation-specific rules.
|
|
6
|
+
*/
|
|
7
|
+
import { type FileOperation, type FileOperationValidationOptions } from "../constants.js";
|
|
8
|
+
/**
|
|
9
|
+
* Error thrown when a file operation fails validation.
|
|
10
|
+
*/
|
|
11
|
+
export declare class FileValidationError extends Error {
|
|
12
|
+
readonly code: "BLACKLISTED" | "API_FILE" | "SCOPE_FILE" | "PACKAGE_JSON" | "DIRECT_PAGE" | "ROOT_DIR" | "READ_REQUIRED";
|
|
13
|
+
constructor(message: string, code: "BLACKLISTED" | "API_FILE" | "SCOPE_FILE" | "PACKAGE_JSON" | "DIRECT_PAGE" | "ROOT_DIR" | "READ_REQUIRED");
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Checks if a path is an API file path (starts with "apis/").
|
|
17
|
+
*
|
|
18
|
+
* @param filePath - Relative file path to check
|
|
19
|
+
* @returns true if the path is an API file path
|
|
20
|
+
*/
|
|
21
|
+
export declare function isApiFilePath(filePath: string): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Checks if a path is a direct page path (pages/xyz.tsx rather than pages/xyz/index.tsx).
|
|
24
|
+
*
|
|
25
|
+
* @param filePath - Relative file path to check
|
|
26
|
+
* @returns true if the path is a direct page file
|
|
27
|
+
*/
|
|
28
|
+
export declare function isDirectPagePath(filePath: string): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Checks if a path is a scope file.
|
|
31
|
+
*
|
|
32
|
+
* @param filePath - Relative file path to check
|
|
33
|
+
* @returns true if the path is a scope file
|
|
34
|
+
*/
|
|
35
|
+
export declare function isScopeFile(filePath: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Checks if a path is the package.json file.
|
|
38
|
+
*
|
|
39
|
+
* @param filePath - Relative file path to check
|
|
40
|
+
* @returns true if the path is package.json
|
|
41
|
+
*/
|
|
42
|
+
export declare function isPackageJson(filePath: string): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Checks if a path is in the blacklist.
|
|
45
|
+
*
|
|
46
|
+
* @param relativePath - Relative path to check
|
|
47
|
+
* @param appRootDirPath - Application root directory for relative path calculation
|
|
48
|
+
* @returns Error message if blacklisted, null otherwise
|
|
49
|
+
*/
|
|
50
|
+
export declare function checkBlacklist(relativePath: string, _appRootDirPath: string): string | null;
|
|
51
|
+
/**
|
|
52
|
+
* Validates a file operation against all applicable rules.
|
|
53
|
+
*
|
|
54
|
+
* @param operation - The type of file operation
|
|
55
|
+
* @param relativePath - Relative path of the file
|
|
56
|
+
* @param appRootDirPath - Application root directory
|
|
57
|
+
* @param options - Optional validation options to override defaults
|
|
58
|
+
* @throws FileValidationError if validation fails
|
|
59
|
+
*/
|
|
60
|
+
export declare function validateFileOperation(operation: FileOperation, relativePath: string, appRootDirPath: string, options?: Partial<FileOperationValidationOptions>): void;
|
|
61
|
+
/**
|
|
62
|
+
* Recursively checks if a directory contains any blacklisted content.
|
|
63
|
+
*
|
|
64
|
+
* @param entries - Directory entries to scan
|
|
65
|
+
* @returns Error message if blacklisted content found, null otherwise
|
|
66
|
+
*/
|
|
67
|
+
export declare function checkDirectoryContentBlacklist(entries: Array<{
|
|
68
|
+
name: string;
|
|
69
|
+
isDirectory: boolean;
|
|
70
|
+
}>): string | null;
|
|
71
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/validation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,8BAA8B,EACpC,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;aAG1B,IAAI,EAChB,aAAa,GACb,UAAU,GACV,YAAY,GACZ,cAAc,GACd,aAAa,GACb,UAAU,GACV,eAAe;gBARnB,OAAO,EAAE,MAAM,EACC,IAAI,EAChB,aAAa,GACb,UAAU,GACV,YAAY,GACZ,cAAc,GACd,aAAa,GACb,UAAU,GACV,eAAe;CAKtB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAcD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,GACtB,MAAM,GAAG,IAAI,CAoDf;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,aAAa,EACxB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,GAChD,IAAI,CA6CN;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC,GACrD,MAAM,GAAG,IAAI,CA8Bf"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File operation validation utilities.
|
|
3
|
+
*
|
|
4
|
+
* Provides centralized validation logic for all filesystem operations,
|
|
5
|
+
* including blacklist checking, path restrictions, and operation-specific rules.
|
|
6
|
+
*/
|
|
7
|
+
import path from "node:path";
|
|
8
|
+
import { FILE_OPERATION_BLACKLIST, DEFAULT_VALIDATION_OPTIONS, } from "../constants.js";
|
|
9
|
+
/**
|
|
10
|
+
* Error thrown when a file operation fails validation.
|
|
11
|
+
*/
|
|
12
|
+
export class FileValidationError extends Error {
|
|
13
|
+
code;
|
|
14
|
+
constructor(message, code) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.code = code;
|
|
17
|
+
this.name = "FileValidationError";
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Checks if a path is an API file path (starts with "apis/").
|
|
22
|
+
*
|
|
23
|
+
* @param filePath - Relative file path to check
|
|
24
|
+
* @returns true if the path is an API file path
|
|
25
|
+
*/
|
|
26
|
+
export function isApiFilePath(filePath) {
|
|
27
|
+
return filePath.startsWith("apis/");
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Checks if a path is a direct page path (pages/xyz.tsx rather than pages/xyz/index.tsx).
|
|
31
|
+
*
|
|
32
|
+
* @param filePath - Relative file path to check
|
|
33
|
+
* @returns true if the path is a direct page file
|
|
34
|
+
*/
|
|
35
|
+
export function isDirectPagePath(filePath) {
|
|
36
|
+
return /^pages\/[^/]+\.tsx$/.test(filePath);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Checks if a path is a scope file.
|
|
40
|
+
*
|
|
41
|
+
* @param filePath - Relative file path to check
|
|
42
|
+
* @returns true if the path is a scope file
|
|
43
|
+
*/
|
|
44
|
+
export function isScopeFile(filePath) {
|
|
45
|
+
return filePath === "scope.ts" || filePath.endsWith("/scope.ts");
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Checks if a path is the package.json file.
|
|
49
|
+
*
|
|
50
|
+
* @param filePath - Relative file path to check
|
|
51
|
+
* @returns true if the path is package.json
|
|
52
|
+
*/
|
|
53
|
+
export function isPackageJson(filePath) {
|
|
54
|
+
return filePath === "package.json" || filePath.endsWith("/package.json");
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Checks if a file name matches any of the protected patterns.
|
|
58
|
+
*
|
|
59
|
+
* @param fileName - The file name (not full path) to check
|
|
60
|
+
* @returns true if the file name is protected
|
|
61
|
+
*/
|
|
62
|
+
function matchesProtectedPattern(fileName) {
|
|
63
|
+
return FILE_OPERATION_BLACKLIST.patterns.some((pattern) => pattern.test(fileName));
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Checks if a path is in the blacklist.
|
|
67
|
+
*
|
|
68
|
+
* @param relativePath - Relative path to check
|
|
69
|
+
* @param appRootDirPath - Application root directory for relative path calculation
|
|
70
|
+
* @returns Error message if blacklisted, null otherwise
|
|
71
|
+
*/
|
|
72
|
+
export function checkBlacklist(relativePath, _appRootDirPath) {
|
|
73
|
+
const fileName = path.basename(relativePath);
|
|
74
|
+
// Check if it's the app root
|
|
75
|
+
if (relativePath === "" || relativePath === ".") {
|
|
76
|
+
return "Cannot operate on the application root directory";
|
|
77
|
+
}
|
|
78
|
+
// Check exact paths
|
|
79
|
+
if (FILE_OPERATION_BLACKLIST.exactPaths.includes(fileName)) {
|
|
80
|
+
return `Cannot operate on protected file: ${fileName}`;
|
|
81
|
+
}
|
|
82
|
+
// Check protected directories
|
|
83
|
+
if (FILE_OPERATION_BLACKLIST.directories.includes(fileName)) {
|
|
84
|
+
return `Cannot operate on protected directory: ${fileName}`;
|
|
85
|
+
}
|
|
86
|
+
// Check if path starts with a protected directory
|
|
87
|
+
const firstDir = relativePath.split("/")[0];
|
|
88
|
+
if (firstDir &&
|
|
89
|
+
FILE_OPERATION_BLACKLIST.directories.includes(firstDir)) {
|
|
90
|
+
// Special case: apis directory is allowed for virtual file operations
|
|
91
|
+
if (firstDir === "apis") {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
// Special case: pages directory - allow files in subdirectories
|
|
95
|
+
// Direct page paths like pages/Foo.tsx will be caught by isDirectPagePath check
|
|
96
|
+
if (firstDir === "pages") {
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
return `Cannot operate on files in protected directory: ${firstDir}`;
|
|
100
|
+
}
|
|
101
|
+
// Check patterns
|
|
102
|
+
if (matchesProtectedPattern(fileName)) {
|
|
103
|
+
return `Cannot operate on protected file matching pattern: ${fileName}`;
|
|
104
|
+
}
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Validates a file operation against all applicable rules.
|
|
109
|
+
*
|
|
110
|
+
* @param operation - The type of file operation
|
|
111
|
+
* @param relativePath - Relative path of the file
|
|
112
|
+
* @param appRootDirPath - Application root directory
|
|
113
|
+
* @param options - Optional validation options to override defaults
|
|
114
|
+
* @throws FileValidationError if validation fails
|
|
115
|
+
*/
|
|
116
|
+
export function validateFileOperation(operation, relativePath, appRootDirPath, options) {
|
|
117
|
+
const opts = {
|
|
118
|
+
...DEFAULT_VALIDATION_OPTIONS[operation],
|
|
119
|
+
...options,
|
|
120
|
+
};
|
|
121
|
+
// Check blacklist
|
|
122
|
+
if (opts.checkBlacklist) {
|
|
123
|
+
const blacklistError = checkBlacklist(relativePath, appRootDirPath);
|
|
124
|
+
if (blacklistError) {
|
|
125
|
+
throw new FileValidationError(blacklistError, "BLACKLISTED");
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// Check API files
|
|
129
|
+
if (!opts.allowApiFiles && isApiFilePath(relativePath)) {
|
|
130
|
+
throw new FileValidationError(`Directly ${operation === "write" ? "writing to" : operation === "delete" ? "deleting" : "operating on"} API files is not allowed. Use the API interface instead.`, "API_FILE");
|
|
131
|
+
}
|
|
132
|
+
// Check scope files
|
|
133
|
+
if (!opts.allowScopeFiles && isScopeFile(relativePath)) {
|
|
134
|
+
throw new FileValidationError("Directly operating on scope files is not allowed. Use the appropriate tool.", "SCOPE_FILE");
|
|
135
|
+
}
|
|
136
|
+
// Check package.json
|
|
137
|
+
if (!opts.allowPackageJson && isPackageJson(relativePath)) {
|
|
138
|
+
throw new FileValidationError("Directly editing package.json is not allowed. Use the build_installPackages tool instead.", "PACKAGE_JSON");
|
|
139
|
+
}
|
|
140
|
+
// Check direct page paths
|
|
141
|
+
if (!opts.allowDirectPagePath && isDirectPagePath(relativePath)) {
|
|
142
|
+
throw new FileValidationError("Direct file creation in the pages directory is not allowed. Please create files within subdirectories (e.g., pages/yourFeature/index.tsx)", "DIRECT_PAGE");
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Recursively checks if a directory contains any blacklisted content.
|
|
147
|
+
*
|
|
148
|
+
* @param entries - Directory entries to scan
|
|
149
|
+
* @returns Error message if blacklisted content found, null otherwise
|
|
150
|
+
*/
|
|
151
|
+
export function checkDirectoryContentBlacklist(entries) {
|
|
152
|
+
for (const entry of entries) {
|
|
153
|
+
const fileName = entry.name;
|
|
154
|
+
// Check exact paths
|
|
155
|
+
if (FILE_OPERATION_BLACKLIST.exactPaths.includes(fileName)) {
|
|
156
|
+
return `Cannot remove protected file: ${fileName}`;
|
|
157
|
+
}
|
|
158
|
+
// Check protected directories
|
|
159
|
+
if (entry.isDirectory &&
|
|
160
|
+
FILE_OPERATION_BLACKLIST.directories.includes(fileName)) {
|
|
161
|
+
return `Cannot remove protected directory: ${fileName}`;
|
|
162
|
+
}
|
|
163
|
+
// Check patterns
|
|
164
|
+
if (matchesProtectedPattern(fileName)) {
|
|
165
|
+
return `Cannot remove protected file matching pattern: ${fileName}`;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Virtual filesystem manager.
|
|
3
|
+
*
|
|
4
|
+
* Coordinates multiple virtual file handlers to provide a unified
|
|
5
|
+
* interface for reading, writing, and listing files that may have
|
|
6
|
+
* different physical representations.
|
|
7
|
+
*/
|
|
8
|
+
import type { VirtualFileHandler, VirtualPathInfo, VirtualReadOptions, VirtualWriteOptions, VirtualDeleteOptions } from "./virtual-fs-types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Manages virtual file handlers and routes operations to the appropriate handler.
|
|
11
|
+
*
|
|
12
|
+
* Usage:
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const vfs = new VirtualFileSystem();
|
|
15
|
+
* vfs.registerHandler(new ApiFileHandler());
|
|
16
|
+
*
|
|
17
|
+
* // Check if a path is virtual
|
|
18
|
+
* if (vfs.isVirtualPath("apis/MyAPI.ts")) {
|
|
19
|
+
* const content = await vfs.read("apis/MyAPI.ts", options);
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare class VirtualFileSystem {
|
|
24
|
+
private handlers;
|
|
25
|
+
/**
|
|
26
|
+
* Register a handler for a type of virtual file.
|
|
27
|
+
*
|
|
28
|
+
* @param handler - The handler to register
|
|
29
|
+
*/
|
|
30
|
+
registerHandler(handler: VirtualFileHandler): void;
|
|
31
|
+
/**
|
|
32
|
+
* Get all registered handlers.
|
|
33
|
+
*/
|
|
34
|
+
getHandlers(): readonly VirtualFileHandler[];
|
|
35
|
+
/**
|
|
36
|
+
* Find the handler for a virtual path.
|
|
37
|
+
*
|
|
38
|
+
* @param virtualPath - The virtual path to look up
|
|
39
|
+
* @returns The matching handler, or undefined if none match
|
|
40
|
+
*/
|
|
41
|
+
getHandler(virtualPath: string): VirtualFileHandler | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Find the handler for a physical path.
|
|
44
|
+
*
|
|
45
|
+
* @param physicalPath - The physical path to look up
|
|
46
|
+
* @returns The matching handler, or undefined if none match
|
|
47
|
+
*/
|
|
48
|
+
getHandlerForPhysical(physicalPath: string): VirtualFileHandler | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Check if a path is a virtual path managed by any handler.
|
|
51
|
+
*
|
|
52
|
+
* @param path - The path to check
|
|
53
|
+
* @returns true if any handler manages this path
|
|
54
|
+
*/
|
|
55
|
+
isVirtualPath(path: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Parse a virtual path to extract metadata.
|
|
58
|
+
*
|
|
59
|
+
* @param virtualPath - The virtual path to parse
|
|
60
|
+
* @returns Parsed info or undefined if not a virtual path
|
|
61
|
+
*/
|
|
62
|
+
parse(virtualPath: string): VirtualPathInfo | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Convert a physical path to its virtual representation.
|
|
65
|
+
*
|
|
66
|
+
* @param physicalPath - The physical path to convert
|
|
67
|
+
* @returns The virtual path, or the original path if not managed by any handler
|
|
68
|
+
*/
|
|
69
|
+
toVirtualPath(physicalPath: string): string;
|
|
70
|
+
/**
|
|
71
|
+
* Convert a list of physical paths to virtual paths, deduplicating as needed.
|
|
72
|
+
*
|
|
73
|
+
* @param physicalPaths - The physical paths to convert
|
|
74
|
+
* @returns Array of virtual paths (deduplicated)
|
|
75
|
+
*/
|
|
76
|
+
toVirtualPaths(physicalPaths: string[]): string[];
|
|
77
|
+
/**
|
|
78
|
+
* Read content from a virtual file.
|
|
79
|
+
*
|
|
80
|
+
* @param virtualPath - The virtual path to read
|
|
81
|
+
* @param options - Read options
|
|
82
|
+
* @returns The file content, or undefined if not found or not a virtual path
|
|
83
|
+
*/
|
|
84
|
+
read(virtualPath: string, options: VirtualReadOptions): Promise<string | undefined>;
|
|
85
|
+
/**
|
|
86
|
+
* Write content to a virtual file.
|
|
87
|
+
*
|
|
88
|
+
* @param virtualPath - The virtual path to write
|
|
89
|
+
* @param content - The content to write
|
|
90
|
+
* @param options - Write options
|
|
91
|
+
* @throws Error if path is not managed by any handler
|
|
92
|
+
*/
|
|
93
|
+
write(virtualPath: string, content: string, options: VirtualWriteOptions): Promise<void>;
|
|
94
|
+
/**
|
|
95
|
+
* Delete a virtual file.
|
|
96
|
+
*
|
|
97
|
+
* @param virtualPath - The virtual path to delete
|
|
98
|
+
* @param options - Delete options
|
|
99
|
+
* @returns List of physical paths that were deleted
|
|
100
|
+
* @throws Error if path is not managed by any handler
|
|
101
|
+
*/
|
|
102
|
+
delete(virtualPath: string, options: VirtualDeleteOptions): Promise<string[]>;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Create a VirtualFileSystem with the default handlers registered.
|
|
106
|
+
*/
|
|
107
|
+
export declare function createDefaultVirtualFileSystem(): VirtualFileSystem;
|
|
108
|
+
//# sourceMappingURL=virtual-file-system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"virtual-file-system.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/virtual-file-system.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;;;;;GAaG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAA4B;IAE5C;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAIlD;;OAEG;IACH,WAAW,IAAI,SAAS,kBAAkB,EAAE;IAI5C;;;;;OAKG;IACH,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAI/D;;;;;OAKG;IACH,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAI3E;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIpC;;;;;OAKG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAKvD;;;;;OAKG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAU3C;;;;;OAKG;IACH,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAUjD;;;;;;OAMG;IACG,IAAI,CACR,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAQ9B;;;;;;;OAOG;IACG,KAAK,CACT,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC;IAQhB;;;;;;;OAOG;IACG,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;CAOrB;AAED;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,iBAAiB,CAIlE"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Virtual filesystem manager.
|
|
3
|
+
*
|
|
4
|
+
* Coordinates multiple virtual file handlers to provide a unified
|
|
5
|
+
* interface for reading, writing, and listing files that may have
|
|
6
|
+
* different physical representations.
|
|
7
|
+
*/
|
|
8
|
+
import { ApiFileHandler } from "./handlers/api-handler.js";
|
|
9
|
+
/**
|
|
10
|
+
* Manages virtual file handlers and routes operations to the appropriate handler.
|
|
11
|
+
*
|
|
12
|
+
* Usage:
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const vfs = new VirtualFileSystem();
|
|
15
|
+
* vfs.registerHandler(new ApiFileHandler());
|
|
16
|
+
*
|
|
17
|
+
* // Check if a path is virtual
|
|
18
|
+
* if (vfs.isVirtualPath("apis/MyAPI.ts")) {
|
|
19
|
+
* const content = await vfs.read("apis/MyAPI.ts", options);
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export class VirtualFileSystem {
|
|
24
|
+
handlers = [];
|
|
25
|
+
/**
|
|
26
|
+
* Register a handler for a type of virtual file.
|
|
27
|
+
*
|
|
28
|
+
* @param handler - The handler to register
|
|
29
|
+
*/
|
|
30
|
+
registerHandler(handler) {
|
|
31
|
+
this.handlers.push(handler);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get all registered handlers.
|
|
35
|
+
*/
|
|
36
|
+
getHandlers() {
|
|
37
|
+
return this.handlers;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Find the handler for a virtual path.
|
|
41
|
+
*
|
|
42
|
+
* @param virtualPath - The virtual path to look up
|
|
43
|
+
* @returns The matching handler, or undefined if none match
|
|
44
|
+
*/
|
|
45
|
+
getHandler(virtualPath) {
|
|
46
|
+
return this.handlers.find((h) => h.matches(virtualPath));
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Find the handler for a physical path.
|
|
50
|
+
*
|
|
51
|
+
* @param physicalPath - The physical path to look up
|
|
52
|
+
* @returns The matching handler, or undefined if none match
|
|
53
|
+
*/
|
|
54
|
+
getHandlerForPhysical(physicalPath) {
|
|
55
|
+
return this.handlers.find((h) => h.matchesPhysical(physicalPath));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Check if a path is a virtual path managed by any handler.
|
|
59
|
+
*
|
|
60
|
+
* @param path - The path to check
|
|
61
|
+
* @returns true if any handler manages this path
|
|
62
|
+
*/
|
|
63
|
+
isVirtualPath(path) {
|
|
64
|
+
return this.handlers.some((h) => h.matches(path));
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Parse a virtual path to extract metadata.
|
|
68
|
+
*
|
|
69
|
+
* @param virtualPath - The virtual path to parse
|
|
70
|
+
* @returns Parsed info or undefined if not a virtual path
|
|
71
|
+
*/
|
|
72
|
+
parse(virtualPath) {
|
|
73
|
+
const handler = this.getHandler(virtualPath);
|
|
74
|
+
return handler?.parse(virtualPath);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Convert a physical path to its virtual representation.
|
|
78
|
+
*
|
|
79
|
+
* @param physicalPath - The physical path to convert
|
|
80
|
+
* @returns The virtual path, or the original path if not managed by any handler
|
|
81
|
+
*/
|
|
82
|
+
toVirtualPath(physicalPath) {
|
|
83
|
+
for (const handler of this.handlers) {
|
|
84
|
+
const virtualPath = handler.toVirtualPath(physicalPath);
|
|
85
|
+
if (virtualPath) {
|
|
86
|
+
return virtualPath;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return physicalPath;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Convert a list of physical paths to virtual paths, deduplicating as needed.
|
|
93
|
+
*
|
|
94
|
+
* @param physicalPaths - The physical paths to convert
|
|
95
|
+
* @returns Array of virtual paths (deduplicated)
|
|
96
|
+
*/
|
|
97
|
+
toVirtualPaths(physicalPaths) {
|
|
98
|
+
const virtualPaths = new Set();
|
|
99
|
+
for (const physPath of physicalPaths) {
|
|
100
|
+
virtualPaths.add(this.toVirtualPath(physPath));
|
|
101
|
+
}
|
|
102
|
+
return Array.from(virtualPaths);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Read content from a virtual file.
|
|
106
|
+
*
|
|
107
|
+
* @param virtualPath - The virtual path to read
|
|
108
|
+
* @param options - Read options
|
|
109
|
+
* @returns The file content, or undefined if not found or not a virtual path
|
|
110
|
+
*/
|
|
111
|
+
async read(virtualPath, options) {
|
|
112
|
+
const handler = this.getHandler(virtualPath);
|
|
113
|
+
if (!handler) {
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
return await handler.read(virtualPath, options);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Write content to a virtual file.
|
|
120
|
+
*
|
|
121
|
+
* @param virtualPath - The virtual path to write
|
|
122
|
+
* @param content - The content to write
|
|
123
|
+
* @param options - Write options
|
|
124
|
+
* @throws Error if path is not managed by any handler
|
|
125
|
+
*/
|
|
126
|
+
async write(virtualPath, content, options) {
|
|
127
|
+
const handler = this.getHandler(virtualPath);
|
|
128
|
+
if (!handler) {
|
|
129
|
+
throw new Error(`No handler found for virtual path: ${virtualPath}`);
|
|
130
|
+
}
|
|
131
|
+
await handler.write(virtualPath, content, options);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Delete a virtual file.
|
|
135
|
+
*
|
|
136
|
+
* @param virtualPath - The virtual path to delete
|
|
137
|
+
* @param options - Delete options
|
|
138
|
+
* @returns List of physical paths that were deleted
|
|
139
|
+
* @throws Error if path is not managed by any handler
|
|
140
|
+
*/
|
|
141
|
+
async delete(virtualPath, options) {
|
|
142
|
+
const handler = this.getHandler(virtualPath);
|
|
143
|
+
if (!handler) {
|
|
144
|
+
throw new Error(`No handler found for virtual path: ${virtualPath}`);
|
|
145
|
+
}
|
|
146
|
+
return await handler.delete(virtualPath, options);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Create a VirtualFileSystem with the default handlers registered.
|
|
151
|
+
*/
|
|
152
|
+
export function createDefaultVirtualFileSystem() {
|
|
153
|
+
const vfs = new VirtualFileSystem();
|
|
154
|
+
vfs.registerHandler(new ApiFileHandler());
|
|
155
|
+
return vfs;
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=virtual-file-system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"virtual-file-system.js","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/virtual-file-system.ts"],"names":[],"mappings":"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"}
|