@superblocksteam/vite-plugin-file-sync 2.0.74-next.2 → 2.0.75-next.3
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 +40 -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 +11 -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 +69 -17
- 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 +6 -0
- 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 +27 -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 +129 -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 +8 -0
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/features.d.ts +8 -0
- package/dist/ai-service/features.d.ts.map +1 -1
- package/dist/ai-service/features.js +8 -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 +26 -24
- package/dist/ai-service/index.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 +19 -3
- package/dist/ai-service/llm/client.d.ts.map +1 -1
- package/dist/ai-service/llm/client.js +131 -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 +14 -5
- package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/config.js +17 -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 +4 -2
- 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.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.js +3 -3
- 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 +168 -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 +29 -8
- 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 +9 -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/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,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Draft management wrapper.
|
|
3
|
+
*
|
|
4
|
+
* Encapsulates the DraftInterface to provide a clean internal API
|
|
5
|
+
* for managing draft file operations within the AppShell.
|
|
6
|
+
* External consumers (tools) should not interact with this directly.
|
|
7
|
+
*/
|
|
8
|
+
import type { DraftInterface } from "../../../draft-interface.js";
|
|
9
|
+
/**
|
|
10
|
+
* Draft changes categorized by operation type.
|
|
11
|
+
*/
|
|
12
|
+
export interface DraftChanges {
|
|
13
|
+
/** Files that have been edited (content modified) */
|
|
14
|
+
edits: string[];
|
|
15
|
+
/** Files that have been added (new files) */
|
|
16
|
+
additions: string[];
|
|
17
|
+
/** Files that have been deleted */
|
|
18
|
+
deletions: string[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Manages draft file operations.
|
|
22
|
+
*
|
|
23
|
+
* This class wraps the DraftInterface to provide a simplified API
|
|
24
|
+
* for the AppShell filesystem operations. It handles all draft
|
|
25
|
+
* creation, deletion, and query operations internally.
|
|
26
|
+
*/
|
|
27
|
+
export declare class DraftManager {
|
|
28
|
+
private readonly draftInterface;
|
|
29
|
+
constructor(draftInterface: DraftInterface);
|
|
30
|
+
/**
|
|
31
|
+
* Creates a draft file with the given content.
|
|
32
|
+
*
|
|
33
|
+
* This stages a file write that can be committed or discarded.
|
|
34
|
+
* Parent directories are created automatically.
|
|
35
|
+
*
|
|
36
|
+
* @param filePath - Relative path of the file
|
|
37
|
+
* @param content - Content to write
|
|
38
|
+
*/
|
|
39
|
+
createDraft(filePath: string, content: string): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Creates a draft marker without content.
|
|
42
|
+
*
|
|
43
|
+
* Used to mark a file as having a pending draft without
|
|
44
|
+
* specifying the content immediately.
|
|
45
|
+
*
|
|
46
|
+
* @param filePath - Relative path of the file
|
|
47
|
+
*/
|
|
48
|
+
createDraftMarker(filePath: string): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Creates a draft deletion for a file.
|
|
51
|
+
*
|
|
52
|
+
* This stages a file deletion that can be committed or discarded.
|
|
53
|
+
*
|
|
54
|
+
* @param filePath - Relative path of the file to delete
|
|
55
|
+
*/
|
|
56
|
+
createDraftDelete(filePath: string): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Checks if there are any pending draft changes.
|
|
59
|
+
*
|
|
60
|
+
* @returns true if there are uncommitted draft changes
|
|
61
|
+
*/
|
|
62
|
+
hasDraftChanges(): Promise<boolean>;
|
|
63
|
+
/**
|
|
64
|
+
* Gets a unified diff of pending draft changes.
|
|
65
|
+
*
|
|
66
|
+
* @param paths - Optional specific paths to diff. If empty, diffs all changes.
|
|
67
|
+
* @returns Unified diff string
|
|
68
|
+
*/
|
|
69
|
+
getDraftDiff(paths?: string[]): Promise<string>;
|
|
70
|
+
/**
|
|
71
|
+
* Gets categorized draft changes.
|
|
72
|
+
*
|
|
73
|
+
* @returns Object containing arrays of edited, added, and deleted paths
|
|
74
|
+
*/
|
|
75
|
+
getDraftChanges(): Promise<DraftChanges>;
|
|
76
|
+
/**
|
|
77
|
+
* Gets the underlying DraftInterface.
|
|
78
|
+
*
|
|
79
|
+
* This should only be used for advanced operations that require
|
|
80
|
+
* direct access to the draft interface. Prefer using the methods
|
|
81
|
+
* on this class when possible.
|
|
82
|
+
*
|
|
83
|
+
* @internal
|
|
84
|
+
*/
|
|
85
|
+
getInterface(): DraftInterface;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=draft-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draft-manager.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/draft-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,mCAAmC;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;;GAMG;AACH,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAE3D;;;;;;;;OAQG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE;;;;;;;OAOG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD;;;;;;OAMG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAIzC;;;;;OAKG;IACG,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrD;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC;IAI9C;;;;;;;;OAQG;IACH,YAAY,IAAI,cAAc;CAG/B"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Draft management wrapper.
|
|
3
|
+
*
|
|
4
|
+
* Encapsulates the DraftInterface to provide a clean internal API
|
|
5
|
+
* for managing draft file operations within the AppShell.
|
|
6
|
+
* External consumers (tools) should not interact with this directly.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Manages draft file operations.
|
|
10
|
+
*
|
|
11
|
+
* This class wraps the DraftInterface to provide a simplified API
|
|
12
|
+
* for the AppShell filesystem operations. It handles all draft
|
|
13
|
+
* creation, deletion, and query operations internally.
|
|
14
|
+
*/
|
|
15
|
+
export class DraftManager {
|
|
16
|
+
draftInterface;
|
|
17
|
+
constructor(draftInterface) {
|
|
18
|
+
this.draftInterface = draftInterface;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Creates a draft file with the given content.
|
|
22
|
+
*
|
|
23
|
+
* This stages a file write that can be committed or discarded.
|
|
24
|
+
* Parent directories are created automatically.
|
|
25
|
+
*
|
|
26
|
+
* @param filePath - Relative path of the file
|
|
27
|
+
* @param content - Content to write
|
|
28
|
+
*/
|
|
29
|
+
async createDraft(filePath, content) {
|
|
30
|
+
await this.draftInterface.createDraftFile(filePath, content);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Creates a draft marker without content.
|
|
34
|
+
*
|
|
35
|
+
* Used to mark a file as having a pending draft without
|
|
36
|
+
* specifying the content immediately.
|
|
37
|
+
*
|
|
38
|
+
* @param filePath - Relative path of the file
|
|
39
|
+
*/
|
|
40
|
+
async createDraftMarker(filePath) {
|
|
41
|
+
await this.draftInterface.createDraftMarkerOnly(filePath);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Creates a draft deletion for a file.
|
|
45
|
+
*
|
|
46
|
+
* This stages a file deletion that can be committed or discarded.
|
|
47
|
+
*
|
|
48
|
+
* @param filePath - Relative path of the file to delete
|
|
49
|
+
*/
|
|
50
|
+
async createDraftDelete(filePath) {
|
|
51
|
+
await this.draftInterface.createDraftDelete(filePath);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Checks if there are any pending draft changes.
|
|
55
|
+
*
|
|
56
|
+
* @returns true if there are uncommitted draft changes
|
|
57
|
+
*/
|
|
58
|
+
async hasDraftChanges() {
|
|
59
|
+
return await this.draftInterface.hasLocalDraftChanges();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Gets a unified diff of pending draft changes.
|
|
63
|
+
*
|
|
64
|
+
* @param paths - Optional specific paths to diff. If empty, diffs all changes.
|
|
65
|
+
* @returns Unified diff string
|
|
66
|
+
*/
|
|
67
|
+
async getDraftDiff(paths) {
|
|
68
|
+
return await this.draftInterface.getDraftDiff(paths ?? []);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Gets categorized draft changes.
|
|
72
|
+
*
|
|
73
|
+
* @returns Object containing arrays of edited, added, and deleted paths
|
|
74
|
+
*/
|
|
75
|
+
async getDraftChanges() {
|
|
76
|
+
return await this.draftInterface.getDraftChanges();
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Gets the underlying DraftInterface.
|
|
80
|
+
*
|
|
81
|
+
* This should only be used for advanced operations that require
|
|
82
|
+
* direct access to the draft interface. Prefer using the methods
|
|
83
|
+
* on this class when possible.
|
|
84
|
+
*
|
|
85
|
+
* @internal
|
|
86
|
+
*/
|
|
87
|
+
getInterface() {
|
|
88
|
+
return this.draftInterface;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=draft-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draft-manager.js","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/draft-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;IACM;IAA7B,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAE/D;;;;;;;;OAQG;IACH,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,OAAe;QACjD,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,iBAAiB,CAAC,QAAgB;QACtC,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,iBAAiB,CAAC,QAAgB;QACtC,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe;QACnB,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC;IAC1D,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,KAAgB;QACjC,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe;QACnB,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;IACrD,CAAC;IAED;;;;;;;;OAQG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Virtual file handler for API files.
|
|
3
|
+
*
|
|
4
|
+
* APIs appear as single TypeScript files (apis/MyAPI.ts) but are stored
|
|
5
|
+
* as directories containing YAML definitions and step files.
|
|
6
|
+
*/
|
|
7
|
+
import type { FileMetadata, VirtualFileHandler, VirtualPathInfo, VirtualReadOptions, VirtualWriteOptions, VirtualDeleteOptions } from "../virtual-fs-types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Handler for virtual API files.
|
|
10
|
+
*
|
|
11
|
+
* Virtual path: apis/MyAPI.ts
|
|
12
|
+
* Physical storage: apis/MyAPI/api.yaml + step files
|
|
13
|
+
* Scratch location: .superblocks/scratch/apis%2FMyAPI.ts
|
|
14
|
+
*/
|
|
15
|
+
export declare class ApiFileHandler implements VirtualFileHandler {
|
|
16
|
+
readonly type = "api";
|
|
17
|
+
matches(virtualPath: string): boolean;
|
|
18
|
+
matchesPhysical(physicalPath: string): boolean;
|
|
19
|
+
parse(virtualPath: string): VirtualPathInfo | undefined;
|
|
20
|
+
toVirtualPath(physicalPath: string): string | undefined;
|
|
21
|
+
read(virtualPath: string, options: VirtualReadOptions): Promise<string | undefined>;
|
|
22
|
+
write(virtualPath: string, content: string, options: VirtualWriteOptions): Promise<void>;
|
|
23
|
+
delete(virtualPath: string, options: VirtualDeleteOptions): Promise<string[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Gets metadata for a virtual API file.
|
|
26
|
+
* Checks scratch file first (for pending changes), then falls back to YAML.
|
|
27
|
+
*
|
|
28
|
+
* @param virtualPath - The virtual API path (e.g., "apis/MyAPI.ts")
|
|
29
|
+
* @param options - Read options including app root
|
|
30
|
+
* @returns FileMetadata or undefined if not found
|
|
31
|
+
*/
|
|
32
|
+
getMetadata(virtualPath: string, options: VirtualReadOptions): Promise<FileMetadata | undefined>;
|
|
33
|
+
private deleteDirectoryContents;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=api-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-handler.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/app-interface/filesystem/handlers/api-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAsBhC;;;;;;GAMG;AACH,qBAAa,cAAe,YAAW,kBAAkB;IACvD,QAAQ,CAAC,IAAI,SAAS;IAEtB,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAKrC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAI9C,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAavD,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAUjD,IAAI,CACR,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAgFxB,KAAK,CACT,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC;IAcV,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;IA2CpB;;;;;;;OAOG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;YA2CtB,uBAAuB;CAyBtC"}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Virtual file handler for API files.
|
|
3
|
+
*
|
|
4
|
+
* APIs appear as single TypeScript files (apis/MyAPI.ts) but are stored
|
|
5
|
+
* as directories containing YAML definitions and step files.
|
|
6
|
+
*/
|
|
7
|
+
import { readFile, mkdir, writeFile, access, rm, readdir, stat, } from "node:fs/promises";
|
|
8
|
+
import * as path from "node:path";
|
|
9
|
+
import { Paths } from "../../../const.js";
|
|
10
|
+
import { YamlToApiBuilderTransformer } from "../../../transform/api-builder/to-sdk-transformer.js";
|
|
11
|
+
import { matchPath, matchMultiplePaths, renderPath, applyFileTransformations, } from "../../../transform/shared.js";
|
|
12
|
+
// Path matchers
|
|
13
|
+
const generatedApisMatch = matchPath(Paths.GeneratedApis);
|
|
14
|
+
const apiArtifactsMatchRaw = matchMultiplePaths("apis/:apiName", "apis/:apiName/", "apis/:apiName/**");
|
|
15
|
+
/**
|
|
16
|
+
* Matches physical API artifact paths (directories and files inside API dirs).
|
|
17
|
+
* Excludes virtual paths like apis/MyAPI.ts.
|
|
18
|
+
*/
|
|
19
|
+
function matchPhysicalApiPath(physicalPath) {
|
|
20
|
+
const match = apiArtifactsMatchRaw(physicalPath);
|
|
21
|
+
if (match.matched && !match.params.apiName.endsWith(".ts")) {
|
|
22
|
+
return match;
|
|
23
|
+
}
|
|
24
|
+
return { matched: false };
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Handler for virtual API files.
|
|
28
|
+
*
|
|
29
|
+
* Virtual path: apis/MyAPI.ts
|
|
30
|
+
* Physical storage: apis/MyAPI/api.yaml + step files
|
|
31
|
+
* Scratch location: .superblocks/scratch/apis%2FMyAPI.ts
|
|
32
|
+
*/
|
|
33
|
+
export class ApiFileHandler {
|
|
34
|
+
type = "api";
|
|
35
|
+
matches(virtualPath) {
|
|
36
|
+
const match = generatedApisMatch(virtualPath);
|
|
37
|
+
return match.matched && match.params.apiName.endsWith(".ts");
|
|
38
|
+
}
|
|
39
|
+
matchesPhysical(physicalPath) {
|
|
40
|
+
return matchPhysicalApiPath(physicalPath).matched;
|
|
41
|
+
}
|
|
42
|
+
parse(virtualPath) {
|
|
43
|
+
const match = generatedApisMatch(virtualPath);
|
|
44
|
+
if (match.matched && match.params.apiName.endsWith(".ts")) {
|
|
45
|
+
return {
|
|
46
|
+
type: this.type,
|
|
47
|
+
params: {
|
|
48
|
+
apiName: path.basename(match.params.apiName, ".ts"),
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
toVirtualPath(physicalPath) {
|
|
55
|
+
const match = matchPhysicalApiPath(physicalPath);
|
|
56
|
+
if (match.matched) {
|
|
57
|
+
return renderPath(Paths.GeneratedApis, {
|
|
58
|
+
apiName: `${match.params.apiName}.ts`,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
async read(virtualPath, options) {
|
|
64
|
+
const info = this.parse(virtualPath);
|
|
65
|
+
if (!info)
|
|
66
|
+
return undefined;
|
|
67
|
+
const { appRootDirPath, templateRenderer, entityNames = [] } = options;
|
|
68
|
+
const { apiName } = info.params;
|
|
69
|
+
if (!apiName)
|
|
70
|
+
return undefined;
|
|
71
|
+
// Build paths
|
|
72
|
+
const scratchPath = renderPath(Paths.Scratch, { path: virtualPath });
|
|
73
|
+
const fullScratchPath = path.join(appRootDirPath, scratchPath);
|
|
74
|
+
const yamlPath = renderPath(Paths.ApiYamls, { apiName });
|
|
75
|
+
const fullYamlPath = path.join(appRootDirPath, yamlPath);
|
|
76
|
+
// Check if both scratch and YAML exist, and compare timestamps
|
|
77
|
+
// If YAML is newer than scratch, the scratch is stale (user made manual edits)
|
|
78
|
+
let scratchExists = false;
|
|
79
|
+
let scratchMtime;
|
|
80
|
+
let yamlExists = false;
|
|
81
|
+
let yamlMtime;
|
|
82
|
+
try {
|
|
83
|
+
const scratchStat = await stat(fullScratchPath);
|
|
84
|
+
scratchExists = true;
|
|
85
|
+
scratchMtime = scratchStat.mtime;
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// Scratch doesn't exist
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
const yamlStat = await stat(fullYamlPath);
|
|
92
|
+
yamlExists = true;
|
|
93
|
+
yamlMtime = yamlStat.mtime;
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// YAML doesn't exist
|
|
97
|
+
}
|
|
98
|
+
// If scratch exists and is newer than YAML (or YAML doesn't exist), use scratch
|
|
99
|
+
const scratchIsFresh = scratchExists &&
|
|
100
|
+
scratchMtime &&
|
|
101
|
+
(!yamlExists || !yamlMtime || scratchMtime >= yamlMtime);
|
|
102
|
+
if (scratchIsFresh) {
|
|
103
|
+
return await readFile(fullScratchPath, "utf-8");
|
|
104
|
+
}
|
|
105
|
+
// YAML doesn't exist and scratch is stale or missing
|
|
106
|
+
if (!yamlExists) {
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
if (!templateRenderer) {
|
|
110
|
+
throw new Error("TemplateRenderer is required to generate API content from YAML");
|
|
111
|
+
}
|
|
112
|
+
// Generate from YAML (scratch is stale or doesn't exist)
|
|
113
|
+
const yamlArtifact = {
|
|
114
|
+
type: "file",
|
|
115
|
+
filePath: yamlPath,
|
|
116
|
+
content: "",
|
|
117
|
+
};
|
|
118
|
+
const [sdkArtifact] = await applyFileTransformations([yamlArtifact], [
|
|
119
|
+
new YamlToApiBuilderTransformer({
|
|
120
|
+
appRootDirPath,
|
|
121
|
+
entityNames,
|
|
122
|
+
skipCleanup: true,
|
|
123
|
+
templateRenderer,
|
|
124
|
+
}),
|
|
125
|
+
]);
|
|
126
|
+
return sdkArtifact?.content;
|
|
127
|
+
}
|
|
128
|
+
async write(virtualPath, content, options) {
|
|
129
|
+
const info = this.parse(virtualPath);
|
|
130
|
+
if (!info) {
|
|
131
|
+
throw new Error(`Invalid API path: ${virtualPath}`);
|
|
132
|
+
}
|
|
133
|
+
const { appRootDirPath } = options;
|
|
134
|
+
const scratchPath = renderPath(Paths.Scratch, { path: virtualPath });
|
|
135
|
+
const fullScratchPath = path.join(appRootDirPath, scratchPath);
|
|
136
|
+
await mkdir(path.dirname(fullScratchPath), { recursive: true });
|
|
137
|
+
await writeFile(fullScratchPath, content, "utf-8");
|
|
138
|
+
}
|
|
139
|
+
async delete(virtualPath, options) {
|
|
140
|
+
const info = this.parse(virtualPath);
|
|
141
|
+
if (!info) {
|
|
142
|
+
throw new Error(`Invalid API path: ${virtualPath}`);
|
|
143
|
+
}
|
|
144
|
+
const { appRootDirPath, createDraftDelete } = options;
|
|
145
|
+
const { apiName } = info.params;
|
|
146
|
+
if (!apiName) {
|
|
147
|
+
throw new Error(`Missing apiName in parsed path: ${virtualPath}`);
|
|
148
|
+
}
|
|
149
|
+
const deletedPaths = [];
|
|
150
|
+
// Delete API directory contents
|
|
151
|
+
const apiDirPath = renderPath(Paths.GeneratedApis, { apiName });
|
|
152
|
+
const absoluteApiDirPath = path.join(appRootDirPath, apiDirPath);
|
|
153
|
+
try {
|
|
154
|
+
await access(absoluteApiDirPath);
|
|
155
|
+
await this.deleteDirectoryContents(absoluteApiDirPath, appRootDirPath, createDraftDelete, deletedPaths);
|
|
156
|
+
await rm(absoluteApiDirPath, { recursive: true, force: true });
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
// API directory doesn't exist
|
|
160
|
+
}
|
|
161
|
+
// Delete scratch file if it exists
|
|
162
|
+
const scratchPath = renderPath(Paths.Scratch, { path: virtualPath });
|
|
163
|
+
try {
|
|
164
|
+
await createDraftDelete(scratchPath);
|
|
165
|
+
deletedPaths.push(scratchPath);
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
// Scratch file doesn't exist
|
|
169
|
+
}
|
|
170
|
+
return deletedPaths;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Gets metadata for a virtual API file.
|
|
174
|
+
* Checks scratch file first (for pending changes), then falls back to YAML.
|
|
175
|
+
*
|
|
176
|
+
* @param virtualPath - The virtual API path (e.g., "apis/MyAPI.ts")
|
|
177
|
+
* @param options - Read options including app root
|
|
178
|
+
* @returns FileMetadata or undefined if not found
|
|
179
|
+
*/
|
|
180
|
+
async getMetadata(virtualPath, options) {
|
|
181
|
+
const info = this.parse(virtualPath);
|
|
182
|
+
if (!info)
|
|
183
|
+
return undefined;
|
|
184
|
+
const { appRootDirPath } = options;
|
|
185
|
+
const { apiName } = info.params;
|
|
186
|
+
if (!apiName)
|
|
187
|
+
return undefined;
|
|
188
|
+
// Check scratch file first (for pending changes)
|
|
189
|
+
const scratchPath = renderPath(Paths.Scratch, { path: virtualPath });
|
|
190
|
+
const fullScratchPath = path.join(appRootDirPath, scratchPath);
|
|
191
|
+
try {
|
|
192
|
+
const stats = await stat(fullScratchPath);
|
|
193
|
+
return {
|
|
194
|
+
path: virtualPath,
|
|
195
|
+
size: stats.size,
|
|
196
|
+
mtime: stats.mtime,
|
|
197
|
+
isDirectory: false,
|
|
198
|
+
isFile: true,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
// Fall back to YAML file
|
|
203
|
+
}
|
|
204
|
+
// Check YAML file
|
|
205
|
+
const yamlPath = renderPath(Paths.ApiYamls, { apiName });
|
|
206
|
+
const fullYamlPath = path.join(appRootDirPath, yamlPath);
|
|
207
|
+
try {
|
|
208
|
+
const stats = await stat(fullYamlPath);
|
|
209
|
+
return {
|
|
210
|
+
path: virtualPath,
|
|
211
|
+
size: stats.size,
|
|
212
|
+
mtime: stats.mtime,
|
|
213
|
+
isDirectory: false,
|
|
214
|
+
isFile: true,
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
return undefined;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
async deleteDirectoryContents(dirPath, appRootDirPath, createDraftDelete, deletedPaths) {
|
|
222
|
+
const entries = await readdir(dirPath, { withFileTypes: true });
|
|
223
|
+
for (const entry of entries) {
|
|
224
|
+
const fullPath = path.join(dirPath, entry.name);
|
|
225
|
+
const relativePath = path.relative(appRootDirPath, fullPath);
|
|
226
|
+
if (entry.isDirectory()) {
|
|
227
|
+
await this.deleteDirectoryContents(fullPath, appRootDirPath, createDraftDelete, deletedPaths);
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
await createDraftDelete(relativePath);
|
|
231
|
+
deletedPaths.push(relativePath);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=api-handler.js.map
|
|
@@ -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"}
|