@superblocksteam/vite-plugin-file-sync 2.0.86 → 2.0.87-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.
Files changed (195) hide show
  1. package/dist/ai-service/agent/middleware.d.ts +1 -1
  2. package/dist/ai-service/agent/middleware.js +2 -2
  3. package/dist/ai-service/agent/middleware.js.map +1 -1
  4. package/dist/ai-service/agent/prompts/api-prompts.d.ts +33 -0
  5. package/dist/ai-service/agent/prompts/api-prompts.d.ts.map +1 -0
  6. package/dist/ai-service/agent/prompts/api-prompts.js +446 -0
  7. package/dist/ai-service/agent/prompts/api-prompts.js.map +1 -0
  8. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
  9. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +16 -154
  10. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  11. package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
  12. package/dist/ai-service/agent/tool-message-utils.js +13 -2
  13. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  14. package/dist/ai-service/agent/tools/apis/analysis.d.ts.map +1 -1
  15. package/dist/ai-service/agent/tools/apis/analysis.js +159 -15
  16. package/dist/ai-service/agent/tools/apis/analysis.js.map +1 -1
  17. package/dist/ai-service/agent/tools/apis/api-executor.d.ts.map +1 -1
  18. package/dist/ai-service/agent/tools/apis/api-executor.js +13 -1
  19. package/dist/ai-service/agent/tools/apis/api-executor.js.map +1 -1
  20. package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts +12 -0
  21. package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts.map +1 -1
  22. package/dist/ai-service/agent/tools/apis/get-api-docs.js +3 -3
  23. package/dist/ai-service/agent/tools/apis/get-api-docs.js.map +1 -1
  24. package/dist/ai-service/agent/tools/apis/get-integration-types.d.ts +12 -0
  25. package/dist/ai-service/agent/tools/apis/get-integration-types.d.ts.map +1 -0
  26. package/dist/ai-service/agent/tools/apis/get-integration-types.js +76 -0
  27. package/dist/ai-service/agent/tools/apis/get-integration-types.js.map +1 -0
  28. package/dist/ai-service/agent/tools/apis/integration-types.js +4 -4
  29. package/dist/ai-service/agent/tools/apis/integration-types.js.map +1 -1
  30. package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
  31. package/dist/ai-service/agent/tools/apis/test-api.js +5 -4
  32. package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
  33. package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts.map +1 -1
  34. package/dist/ai-service/agent/tools/build-capture-screenshot.js +23 -0
  35. package/dist/ai-service/agent/tools/build-capture-screenshot.js.map +1 -1
  36. package/dist/ai-service/agent/tools/build-debug.d.ts.map +1 -1
  37. package/dist/ai-service/agent/tools/build-debug.js +13 -1
  38. package/dist/ai-service/agent/tools/build-debug.js.map +1 -1
  39. package/dist/ai-service/agent/tools/index.d.ts +1 -0
  40. package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
  41. package/dist/ai-service/agent/tools/index.js +1 -0
  42. package/dist/ai-service/agent/tools/index.js.map +1 -1
  43. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -1
  44. package/dist/ai-service/agent/tools/integrations/execute-request.js +14 -1
  45. package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
  46. package/dist/ai-service/agent/tools/integrations/internal.d.ts +1 -0
  47. package/dist/ai-service/agent/tools/integrations/internal.d.ts.map +1 -1
  48. package/dist/ai-service/agent/tools/integrations/internal.js +9 -4
  49. package/dist/ai-service/agent/tools/integrations/internal.js.map +1 -1
  50. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  51. package/dist/ai-service/agent/tools.js +19 -9
  52. package/dist/ai-service/agent/tools.js.map +1 -1
  53. package/dist/ai-service/agent/tools2/tools/web-fetch.d.ts.map +1 -1
  54. package/dist/ai-service/agent/tools2/tools/web-fetch.js +7 -1
  55. package/dist/ai-service/agent/tools2/tools/web-fetch.js.map +1 -1
  56. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  57. package/dist/ai-service/agent/utils.js +11 -0
  58. package/dist/ai-service/agent/utils.js.map +1 -1
  59. package/dist/ai-service/app-interface/filesystem/index.d.ts +4 -1
  60. package/dist/ai-service/app-interface/filesystem/index.d.ts.map +1 -1
  61. package/dist/ai-service/app-interface/filesystem/index.js +3 -1
  62. package/dist/ai-service/app-interface/filesystem/index.js.map +1 -1
  63. package/dist/ai-service/app-interface/filesystem/path-validator.d.ts +43 -0
  64. package/dist/ai-service/app-interface/filesystem/path-validator.d.ts.map +1 -0
  65. package/dist/ai-service/app-interface/filesystem/path-validator.js +9 -0
  66. package/dist/ai-service/app-interface/filesystem/path-validator.js.map +1 -0
  67. package/dist/ai-service/app-interface/filesystem/sdk-path-validator.d.ts +50 -0
  68. package/dist/ai-service/app-interface/filesystem/sdk-path-validator.d.ts.map +1 -0
  69. package/dist/ai-service/app-interface/filesystem/sdk-path-validator.js +68 -0
  70. package/dist/ai-service/app-interface/filesystem/sdk-path-validator.js.map +1 -0
  71. package/dist/ai-service/app-interface/filesystem/validation.d.ts +25 -8
  72. package/dist/ai-service/app-interface/filesystem/validation.d.ts.map +1 -1
  73. package/dist/ai-service/app-interface/filesystem/validation.js +52 -28
  74. package/dist/ai-service/app-interface/filesystem/validation.js.map +1 -1
  75. package/dist/ai-service/app-interface/filesystem/virtual-file-system.d.ts +1 -0
  76. package/dist/ai-service/app-interface/filesystem/virtual-file-system.d.ts.map +1 -1
  77. package/dist/ai-service/app-interface/filesystem/virtual-file-system.js +4 -1
  78. package/dist/ai-service/app-interface/filesystem/virtual-file-system.js.map +1 -1
  79. package/dist/ai-service/app-interface/filesystem/yaml-path-validator.d.ts +49 -0
  80. package/dist/ai-service/app-interface/filesystem/yaml-path-validator.d.ts.map +1 -0
  81. package/dist/ai-service/app-interface/filesystem/yaml-path-validator.js +67 -0
  82. package/dist/ai-service/app-interface/filesystem/yaml-path-validator.js.map +1 -0
  83. package/dist/ai-service/app-interface/shell.d.ts +5 -2
  84. package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
  85. package/dist/ai-service/app-interface/shell.js +11 -6
  86. package/dist/ai-service/app-interface/shell.js.map +1 -1
  87. package/dist/ai-service/chat/chat-session-store.js +3 -3
  88. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  89. package/dist/ai-service/clark-provider/clark-provider.d.ts +1 -0
  90. package/dist/ai-service/clark-provider/clark-provider.d.ts.map +1 -1
  91. package/dist/ai-service/clark-provider/clark-provider.js +6 -1
  92. package/dist/ai-service/clark-provider/clark-provider.js.map +1 -1
  93. package/dist/ai-service/features.d.ts +4 -0
  94. package/dist/ai-service/features.d.ts.map +1 -1
  95. package/dist/ai-service/features.js +4 -0
  96. package/dist/ai-service/features.js.map +1 -1
  97. package/dist/ai-service/index.d.ts +21 -0
  98. package/dist/ai-service/index.d.ts.map +1 -1
  99. package/dist/ai-service/index.js +119 -10
  100. package/dist/ai-service/index.js.map +1 -1
  101. package/dist/ai-service/judge/judge-eval-service-runner.d.ts.map +1 -1
  102. package/dist/ai-service/judge/judge-eval-service-runner.js +2 -0
  103. package/dist/ai-service/judge/judge-eval-service-runner.js.map +1 -1
  104. package/dist/ai-service/llm/client.js +2 -2
  105. package/dist/ai-service/llm/client.js.map +1 -1
  106. package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
  107. package/dist/ai-service/llm/context-v2/context.js +4 -4
  108. package/dist/ai-service/llm/context-v2/context.js.map +1 -1
  109. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts.map +1 -1
  110. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js +11 -2
  111. package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js.map +1 -1
  112. package/dist/ai-service/llm/context-v2/prompts/compaction.d.ts +1 -1
  113. package/dist/ai-service/llm/context-v2/prompts/compaction.d.ts.map +1 -1
  114. package/dist/ai-service/llm/context-v2/prompts/compaction.js +15 -6
  115. package/dist/ai-service/llm/context-v2/prompts/compaction.js.map +1 -1
  116. package/dist/ai-service/llm/context-v2/types.d.ts +4 -9
  117. package/dist/ai-service/llm/context-v2/types.d.ts.map +1 -1
  118. package/dist/ai-service/llm/context-v2/types.js +15 -45
  119. package/dist/ai-service/llm/context-v2/types.js.map +1 -1
  120. package/dist/ai-service/llm/stream/observers/logging.d.ts.map +1 -1
  121. package/dist/ai-service/llm/stream/observers/logging.js +2 -4
  122. package/dist/ai-service/llm/stream/observers/logging.js.map +1 -1
  123. package/dist/ai-service/llm/stream/retry-engine.d.ts +4 -0
  124. package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
  125. package/dist/ai-service/llm/stream/retry-engine.js +24 -1
  126. package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
  127. package/dist/ai-service/llm/types.d.ts +4 -1
  128. package/dist/ai-service/llm/types.d.ts.map +1 -1
  129. package/dist/ai-service/security/index.d.ts +2 -1
  130. package/dist/ai-service/security/index.d.ts.map +1 -1
  131. package/dist/ai-service/security/index.js +2 -1
  132. package/dist/ai-service/security/index.js.map +1 -1
  133. package/dist/ai-service/security/secret-scanner-service.d.ts +52 -0
  134. package/dist/ai-service/security/secret-scanner-service.d.ts.map +1 -0
  135. package/dist/ai-service/security/secret-scanner-service.js +290 -0
  136. package/dist/ai-service/security/secret-scanner-service.js.map +1 -0
  137. package/dist/ai-service/security/secret-scanner.d.ts +8 -15
  138. package/dist/ai-service/security/secret-scanner.d.ts.map +1 -1
  139. package/dist/ai-service/security/secret-scanner.js +1 -50
  140. package/dist/ai-service/security/secret-scanner.js.map +1 -1
  141. package/dist/ai-service/skills/system/superblocks-api/references/graphql.generated.d.ts +1 -1
  142. package/dist/ai-service/skills/system/superblocks-api/references/graphql.generated.d.ts.map +1 -1
  143. package/dist/ai-service/skills/system/superblocks-api/references/graphql.generated.js +28 -21
  144. package/dist/ai-service/skills/system/superblocks-api/references/graphql.generated.js.map +1 -1
  145. package/dist/ai-service/skills/system/superblocks-api/skill.generated.d.ts +1 -1
  146. package/dist/ai-service/skills/system/superblocks-api/skill.generated.d.ts.map +1 -1
  147. package/dist/ai-service/skills/system/superblocks-api/skill.generated.js +286 -116
  148. package/dist/ai-service/skills/system/superblocks-api/skill.generated.js.map +1 -1
  149. package/dist/ai-service/state-machine/clark-fsm.d.ts +7 -0
  150. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  151. package/dist/ai-service/state-machine/clark-fsm.js +1 -5
  152. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  153. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  154. package/dist/ai-service/state-machine/handlers/agent-planning.js +14 -12
  155. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  156. package/dist/ai-service/state-machine/handlers/idle.d.ts.map +1 -1
  157. package/dist/ai-service/state-machine/handlers/idle.js +18 -10
  158. package/dist/ai-service/state-machine/handlers/idle.js.map +1 -1
  159. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  160. package/dist/ai-service/state-machine/handlers/llm-generating.js +53 -12
  161. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  162. package/dist/ai-service/state-machine/helpers/peer.d.ts +5 -0
  163. package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -1
  164. package/dist/ai-service/state-machine/helpers/peer.js +19 -0
  165. package/dist/ai-service/state-machine/helpers/peer.js.map +1 -1
  166. package/dist/ai-service/template-renderer.d.ts +2 -1
  167. package/dist/ai-service/template-renderer.d.ts.map +1 -1
  168. package/dist/ai-service/template-renderer.js +28 -3
  169. package/dist/ai-service/template-renderer.js.map +1 -1
  170. package/dist/ai-service/types.d.ts +2 -0
  171. package/dist/ai-service/types.d.ts.map +1 -1
  172. package/dist/ai-service/types.js.map +1 -1
  173. package/dist/lock-service/activity-tracker.d.ts +5 -0
  174. package/dist/lock-service/activity-tracker.d.ts.map +1 -1
  175. package/dist/lock-service/activity-tracker.js +13 -0
  176. package/dist/lock-service/activity-tracker.js.map +1 -1
  177. package/dist/lock-service/index.d.ts +8 -0
  178. package/dist/lock-service/index.d.ts.map +1 -1
  179. package/dist/lock-service/index.js +54 -0
  180. package/dist/lock-service/index.js.map +1 -1
  181. package/dist/socket-manager.d.ts.map +1 -1
  182. package/dist/socket-manager.js +9 -0
  183. package/dist/socket-manager.js.map +1 -1
  184. package/dist/sync-service/index.d.ts.map +1 -1
  185. package/dist/sync-service/index.js +40 -7
  186. package/dist/sync-service/index.js.map +1 -1
  187. package/dist/util/log-sanitizer.d.ts +1 -0
  188. package/dist/util/log-sanitizer.d.ts.map +1 -1
  189. package/dist/util/log-sanitizer.js +8 -0
  190. package/dist/util/log-sanitizer.js.map +1 -1
  191. package/dist/vite-plugin-yaml-types.d.ts +6 -2
  192. package/dist/vite-plugin-yaml-types.d.ts.map +1 -1
  193. package/dist/vite-plugin-yaml-types.js +82 -8
  194. package/dist/vite-plugin-yaml-types.js.map +1 -1
  195. package/package.json +22 -11
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Path validation abstraction for different template structures.
3
+ *
4
+ * This module defines the PathValidator interface and factory function
5
+ * to support both YAML mode (flat structure) and SDK mode (nested structure)
6
+ * path validation.
7
+ */
8
+ /**
9
+ * Interface for path validation based on template structure.
10
+ *
11
+ * Implementations handle the differences between:
12
+ * - YAML mode: apis/, pages/, App.tsx, scope.ts at root
13
+ * - SDK mode: server/apis/, client/pages/, client/App.tsx (no scope.ts)
14
+ */
15
+ export interface PathValidator {
16
+ /** Prefix for API files (e.g., "apis" or "server/apis") */
17
+ readonly apiPrefix: string;
18
+ /** Prefix for pages (e.g., "pages" or "client/pages") */
19
+ readonly pagesPrefix: string;
20
+ /** Path to App root (e.g., "App.tsx" or "client/App.tsx") */
21
+ readonly appRoot: string;
22
+ /** Check if path is an API file path */
23
+ isApiFilePath(filePath: string): boolean;
24
+ /** Check if path is a direct page path (pages/xyz.tsx) */
25
+ isDirectPagePath(filePath: string): boolean;
26
+ /** Check if path is a scope file */
27
+ isScopeFile(filePath: string): boolean;
28
+ /**
29
+ * Get directories that are protected from modification.
30
+ * These directories cannot be deleted or have their contents directly modified.
31
+ */
32
+ getProtectedDirectories(): readonly string[];
33
+ /**
34
+ * Check if a path should be allowed through the blacklist check.
35
+ * Returns true if the path should bypass blacklist (is a special allowed path).
36
+ *
37
+ * @param relativePath - The relative path to check
38
+ * @param firstDir - The first directory segment of the path
39
+ * @returns true if the path should bypass blacklist checks
40
+ */
41
+ shouldBypassBlacklist(relativePath: string, firstDir: string): boolean;
42
+ }
43
+ //# sourceMappingURL=path-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-validator.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/path-validator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,yDAAyD;IACzD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,wCAAwC;IACxC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzC,0DAA0D;IAC1D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAE5C,oCAAoC;IACpC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAEvC;;;OAGG;IACH,uBAAuB,IAAI,SAAS,MAAM,EAAE,CAAC;IAE7C;;;;;;;OAOG;IACH,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CACxE"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Path validation abstraction for different template structures.
3
+ *
4
+ * This module defines the PathValidator interface and factory function
5
+ * to support both YAML mode (flat structure) and SDK mode (nested structure)
6
+ * path validation.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=path-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-validator.js","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/path-validator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * SDK mode path validator implementation.
3
+ *
4
+ * Handles path validation for the nested template structure:
5
+ * - APIs: server/apis/ApiName/api.ts
6
+ * - Pages: client/pages/PageName/index.tsx
7
+ * - App root: client/App.tsx
8
+ * - No scope files in SDK mode
9
+ */
10
+ import type { PathValidator } from "./path-validator.js";
11
+ /**
12
+ * Path validator for SDK mode (nested structure).
13
+ *
14
+ * In SDK mode:
15
+ * - APIs are at server/apis/ (e.g., server/apis/MyApi/api.ts)
16
+ * - Pages are at client/pages/ (e.g., client/pages/Home/index.tsx)
17
+ * - App root is client/App.tsx
18
+ * - Scope files do not exist in SDK mode
19
+ */
20
+ export declare class SdkPathValidator implements PathValidator {
21
+ readonly apiPrefix = "server/apis";
22
+ readonly pagesPrefix = "client/pages";
23
+ readonly appRoot = "client/App.tsx";
24
+ /**
25
+ * Checks if a path is an API file path.
26
+ * In SDK mode, API files start with "server/apis/".
27
+ */
28
+ isApiFilePath(filePath: string): boolean;
29
+ /**
30
+ * Checks if a path is a direct page path (client/pages/xyz.tsx rather than client/pages/xyz/index.tsx).
31
+ * Direct page paths are not allowed - pages must be in subdirectories.
32
+ */
33
+ isDirectPagePath(filePath: string): boolean;
34
+ /**
35
+ * Checks if a path is a scope file.
36
+ * SDK mode does not use scope files, so this always returns false.
37
+ */
38
+ isScopeFile(_filePath: string): boolean;
39
+ /**
40
+ * Get directories that are protected from modification.
41
+ * In SDK mode, pages are under client/pages, not at root level.
42
+ */
43
+ getProtectedDirectories(): readonly string[];
44
+ /**
45
+ * Check if a path should bypass blacklist checks.
46
+ * In SDK mode, server/apis/ and client/pages/ directories have special handling.
47
+ */
48
+ shouldBypassBlacklist(relativePath: string, _firstDir: string): boolean;
49
+ }
50
+ //# sourceMappingURL=sdk-path-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-path-validator.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/sdk-path-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IACpD,QAAQ,CAAC,SAAS,iBAAiB;IACnC,QAAQ,CAAC,WAAW,kBAAkB;IACtC,QAAQ,CAAC,OAAO,oBAAoB;IAEpC;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIxC;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI3C;;;OAGG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIvC;;;OAGG;IACH,uBAAuB,IAAI,SAAS,MAAM,EAAE;IAI5C;;;OAGG;IACH,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;CAYxE"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * SDK mode path validator implementation.
3
+ *
4
+ * Handles path validation for the nested template structure:
5
+ * - APIs: server/apis/ApiName/api.ts
6
+ * - Pages: client/pages/PageName/index.tsx
7
+ * - App root: client/App.tsx
8
+ * - No scope files in SDK mode
9
+ */
10
+ /**
11
+ * Path validator for SDK mode (nested structure).
12
+ *
13
+ * In SDK mode:
14
+ * - APIs are at server/apis/ (e.g., server/apis/MyApi/api.ts)
15
+ * - Pages are at client/pages/ (e.g., client/pages/Home/index.tsx)
16
+ * - App root is client/App.tsx
17
+ * - Scope files do not exist in SDK mode
18
+ */
19
+ export class SdkPathValidator {
20
+ apiPrefix = "server/apis";
21
+ pagesPrefix = "client/pages";
22
+ appRoot = "client/App.tsx";
23
+ /**
24
+ * Checks if a path is an API file path.
25
+ * In SDK mode, API files start with "server/apis/".
26
+ */
27
+ isApiFilePath(filePath) {
28
+ return filePath.startsWith("server/apis/");
29
+ }
30
+ /**
31
+ * Checks if a path is a direct page path (client/pages/xyz.tsx rather than client/pages/xyz/index.tsx).
32
+ * Direct page paths are not allowed - pages must be in subdirectories.
33
+ */
34
+ isDirectPagePath(filePath) {
35
+ return /^client\/pages\/[^/]+\.tsx$/.test(filePath);
36
+ }
37
+ /**
38
+ * Checks if a path is a scope file.
39
+ * SDK mode does not use scope files, so this always returns false.
40
+ */
41
+ isScopeFile(_filePath) {
42
+ return false;
43
+ }
44
+ /**
45
+ * Get directories that are protected from modification.
46
+ * In SDK mode, pages are under client/pages, not at root level.
47
+ */
48
+ getProtectedDirectories() {
49
+ return [".git", "node_modules", ".superblocks"];
50
+ }
51
+ /**
52
+ * Check if a path should bypass blacklist checks.
53
+ * In SDK mode, server/apis/ and client/pages/ directories have special handling.
54
+ */
55
+ shouldBypassBlacklist(relativePath, _firstDir) {
56
+ // server/apis/ directory is allowed for API file operations
57
+ if (relativePath.startsWith("server/apis/")) {
58
+ return true;
59
+ }
60
+ // client/pages/ directory - allow files in subdirectories
61
+ // Direct page paths like client/pages/Foo.tsx will be caught by isDirectPagePath check
62
+ if (relativePath.startsWith("client/pages/")) {
63
+ return true;
64
+ }
65
+ return false;
66
+ }
67
+ }
68
+ //# sourceMappingURL=sdk-path-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-path-validator.js","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/sdk-path-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;;;;GAQG;AACH,MAAM,OAAO,gBAAgB;IAClB,SAAS,GAAG,aAAa,CAAC;IAC1B,WAAW,GAAG,cAAc,CAAC;IAC7B,OAAO,GAAG,gBAAgB,CAAC;IAEpC;;;OAGG;IACH,aAAa,CAAC,QAAgB;QAC5B,OAAO,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,QAAgB;QAC/B,OAAO,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,SAAiB;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,uBAAuB;QACrB,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,cAAc,CAAU,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACH,qBAAqB,CAAC,YAAoB,EAAE,SAAiB;QAC3D,4DAA4D;QAC5D,IAAI,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,0DAA0D;QAC1D,uFAAuF;QACvF,IAAI,YAAY,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -3,8 +3,19 @@
3
3
  *
4
4
  * Provides centralized validation logic for all filesystem operations,
5
5
  * including blacklist checking, path restrictions, and operation-specific rules.
6
+ *
7
+ * Supports both YAML mode (flat structure) and SDK mode (nested structure)
8
+ * through the PathValidator abstraction.
6
9
  */
7
10
  import { type FileOperation, type FileOperationValidationOptions } from "../constants.js";
11
+ import type { PathValidator } from "./path-validator.js";
12
+ /**
13
+ * Creates the appropriate path validator based on feature flag.
14
+ *
15
+ * @param sdkApiEnabled - Whether SDK API mode is enabled
16
+ * @returns PathValidator implementation for the appropriate mode
17
+ */
18
+ export declare function createPathValidator(sdkApiEnabled: boolean): PathValidator;
8
19
  /**
9
20
  * Error thrown when a file operation fails validation.
10
21
  */
@@ -13,26 +24,29 @@ export declare class FileValidationError extends Error {
13
24
  constructor(message: string, code: "BLACKLISTED" | "API_FILE" | "SCOPE_FILE" | "PACKAGE_JSON" | "DIRECT_PAGE" | "ROOT_DIR" | "READ_REQUIRED");
14
25
  }
15
26
  /**
16
- * Checks if a path is an API file path (starts with "apis/").
27
+ * Checks if a path is an API file path.
17
28
  *
18
29
  * @param filePath - Relative file path to check
30
+ * @param validator - Optional path validator (defaults to YAML mode)
19
31
  * @returns true if the path is an API file path
20
32
  */
21
- export declare function isApiFilePath(filePath: string): boolean;
33
+ export declare function isApiFilePath(filePath: string, validator?: PathValidator): boolean;
22
34
  /**
23
35
  * Checks if a path is a direct page path (pages/xyz.tsx rather than pages/xyz/index.tsx).
24
36
  *
25
37
  * @param filePath - Relative file path to check
38
+ * @param validator - Optional path validator (defaults to YAML mode)
26
39
  * @returns true if the path is a direct page file
27
40
  */
28
- export declare function isDirectPagePath(filePath: string): boolean;
41
+ export declare function isDirectPagePath(filePath: string, validator?: PathValidator): boolean;
29
42
  /**
30
43
  * Checks if a path is a scope file.
31
44
  *
32
45
  * @param filePath - Relative file path to check
46
+ * @param validator - Optional path validator (defaults to YAML mode)
33
47
  * @returns true if the path is a scope file
34
48
  */
35
- export declare function isScopeFile(filePath: string): boolean;
49
+ export declare function isScopeFile(filePath: string, validator?: PathValidator): boolean;
36
50
  /**
37
51
  * Checks if a path is the package.json file.
38
52
  *
@@ -44,10 +58,11 @@ export declare function isPackageJson(filePath: string): boolean;
44
58
  * Checks if a path is in the blacklist.
45
59
  *
46
60
  * @param relativePath - Relative path to check
47
- * @param appRootDirPath - Application root directory for relative path calculation
61
+ * @param _appRootDirPath - Application root directory for relative path calculation
62
+ * @param validator - Optional path validator (defaults to YAML mode)
48
63
  * @returns Error message if blacklisted, null otherwise
49
64
  */
50
- export declare function checkBlacklist(relativePath: string, _appRootDirPath: string): string | null;
65
+ export declare function checkBlacklist(relativePath: string, _appRootDirPath: string, validator?: PathValidator): string | null;
51
66
  /**
52
67
  * Validates a file operation against all applicable rules.
53
68
  *
@@ -55,17 +70,19 @@ export declare function checkBlacklist(relativePath: string, _appRootDirPath: st
55
70
  * @param relativePath - Relative path of the file
56
71
  * @param appRootDirPath - Application root directory
57
72
  * @param options - Optional validation options to override defaults
73
+ * @param validator - Optional path validator (defaults to YAML mode)
58
74
  * @throws FileValidationError if validation fails
59
75
  */
60
- export declare function validateFileOperation(operation: FileOperation, relativePath: string, appRootDirPath: string, options?: Partial<FileOperationValidationOptions>): void;
76
+ export declare function validateFileOperation(operation: FileOperation, relativePath: string, appRootDirPath: string, options?: Partial<FileOperationValidationOptions>, validator?: PathValidator): void;
61
77
  /**
62
78
  * Recursively checks if a directory contains any blacklisted content.
63
79
  *
64
80
  * @param entries - Directory entries to scan
81
+ * @param validator - Optional path validator (defaults to YAML mode)
65
82
  * @returns Error message if blacklisted content found, null otherwise
66
83
  */
67
84
  export declare function checkDirectoryContentBlacklist(entries: Array<{
68
85
  name: string;
69
86
  isDirectory: boolean;
70
- }>): string | null;
87
+ }>, validator?: PathValidator): string | null;
71
88
  //# sourceMappingURL=validation.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,8BAA8B,EACpC,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,OAAO,GAAG,aAAa,CAEzE;AAKD;;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;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,aAAgC,GAC1C,OAAO,CAET;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,aAAgC,GAC1C,OAAO,CAET;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,aAAgC,GAC1C,OAAO,CAET;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAcD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EACvB,SAAS,GAAE,aAAgC,GAC1C,MAAM,GAAG,IAAI,CA+Cf;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,aAAa,EACxB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,EACjD,SAAS,GAAE,aAAgC,GAC1C,IAAI,CAkDN;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC,EACtD,SAAS,GAAE,aAAgC,GAC1C,MAAM,GAAG,IAAI,CA2Bf"}
@@ -3,9 +3,25 @@
3
3
  *
4
4
  * Provides centralized validation logic for all filesystem operations,
5
5
  * including blacklist checking, path restrictions, and operation-specific rules.
6
+ *
7
+ * Supports both YAML mode (flat structure) and SDK mode (nested structure)
8
+ * through the PathValidator abstraction.
6
9
  */
7
10
  import path from "node:path";
8
11
  import { FILE_OPERATION_BLACKLIST, DEFAULT_VALIDATION_OPTIONS, } from "../constants.js";
12
+ import { SdkPathValidator } from "./sdk-path-validator.js";
13
+ import { YamlPathValidator } from "./yaml-path-validator.js";
14
+ /**
15
+ * Creates the appropriate path validator based on feature flag.
16
+ *
17
+ * @param sdkApiEnabled - Whether SDK API mode is enabled
18
+ * @returns PathValidator implementation for the appropriate mode
19
+ */
20
+ export function createPathValidator(sdkApiEnabled) {
21
+ return sdkApiEnabled ? new SdkPathValidator() : new YamlPathValidator();
22
+ }
23
+ /** Default path validator (YAML mode for backwards compatibility) */
24
+ const defaultValidator = new YamlPathValidator();
9
25
  /**
10
26
  * Error thrown when a file operation fails validation.
11
27
  */
@@ -18,31 +34,34 @@ export class FileValidationError extends Error {
18
34
  }
19
35
  }
20
36
  /**
21
- * Checks if a path is an API file path (starts with "apis/").
37
+ * Checks if a path is an API file path.
22
38
  *
23
39
  * @param filePath - Relative file path to check
40
+ * @param validator - Optional path validator (defaults to YAML mode)
24
41
  * @returns true if the path is an API file path
25
42
  */
26
- export function isApiFilePath(filePath) {
27
- return filePath.startsWith("apis/");
43
+ export function isApiFilePath(filePath, validator = defaultValidator) {
44
+ return validator.isApiFilePath(filePath);
28
45
  }
29
46
  /**
30
47
  * Checks if a path is a direct page path (pages/xyz.tsx rather than pages/xyz/index.tsx).
31
48
  *
32
49
  * @param filePath - Relative file path to check
50
+ * @param validator - Optional path validator (defaults to YAML mode)
33
51
  * @returns true if the path is a direct page file
34
52
  */
35
- export function isDirectPagePath(filePath) {
36
- return /^pages\/[^/]+\.tsx$/.test(filePath);
53
+ export function isDirectPagePath(filePath, validator = defaultValidator) {
54
+ return validator.isDirectPagePath(filePath);
37
55
  }
38
56
  /**
39
57
  * Checks if a path is a scope file.
40
58
  *
41
59
  * @param filePath - Relative file path to check
60
+ * @param validator - Optional path validator (defaults to YAML mode)
42
61
  * @returns true if the path is a scope file
43
62
  */
44
- export function isScopeFile(filePath) {
45
- return filePath === "scope.ts" || filePath.endsWith("/scope.ts");
63
+ export function isScopeFile(filePath, validator = defaultValidator) {
64
+ return validator.isScopeFile(filePath);
46
65
  }
47
66
  /**
48
67
  * Checks if a path is the package.json file.
@@ -66,10 +85,11 @@ function matchesProtectedPattern(fileName) {
66
85
  * Checks if a path is in the blacklist.
67
86
  *
68
87
  * @param relativePath - Relative path to check
69
- * @param appRootDirPath - Application root directory for relative path calculation
88
+ * @param _appRootDirPath - Application root directory for relative path calculation
89
+ * @param validator - Optional path validator (defaults to YAML mode)
70
90
  * @returns Error message if blacklisted, null otherwise
71
91
  */
72
- export function checkBlacklist(relativePath, _appRootDirPath) {
92
+ export function checkBlacklist(relativePath, _appRootDirPath, validator = defaultValidator) {
73
93
  const fileName = path.basename(relativePath);
74
94
  // Check if it's the app root
75
95
  if (relativePath === "" || relativePath === ".") {
@@ -79,25 +99,26 @@ export function checkBlacklist(relativePath, _appRootDirPath) {
79
99
  if (FILE_OPERATION_BLACKLIST.exactPaths.includes(fileName)) {
80
100
  return `Cannot operate on protected file: ${fileName}`;
81
101
  }
102
+ // Get protected directories from validator
103
+ const protectedDirs = validator.getProtectedDirectories();
82
104
  // Check protected directories
83
- if (FILE_OPERATION_BLACKLIST.directories.includes(fileName)) {
105
+ if (protectedDirs.includes(fileName)) {
84
106
  return `Cannot operate on protected directory: ${fileName}`;
85
107
  }
86
108
  // Check if path starts with a protected directory
87
109
  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") {
110
+ if (firstDir && protectedDirs.includes(firstDir)) {
111
+ // Check if validator allows this path to bypass blacklist
112
+ if (validator.shouldBypassBlacklist(relativePath, firstDir)) {
97
113
  return null;
98
114
  }
99
115
  return `Cannot operate on files in protected directory: ${firstDir}`;
100
116
  }
117
+ // For SDK mode, also check nested protected paths (e.g., client/pages)
118
+ // Allow special directories like server/apis/ and client/pages/
119
+ if (validator.shouldBypassBlacklist(relativePath, firstDir ?? "")) {
120
+ return null;
121
+ }
101
122
  // Check patterns
102
123
  if (matchesProtectedPattern(fileName)) {
103
124
  return `Cannot operate on protected file matching pattern: ${fileName}`;
@@ -111,26 +132,27 @@ export function checkBlacklist(relativePath, _appRootDirPath) {
111
132
  * @param relativePath - Relative path of the file
112
133
  * @param appRootDirPath - Application root directory
113
134
  * @param options - Optional validation options to override defaults
135
+ * @param validator - Optional path validator (defaults to YAML mode)
114
136
  * @throws FileValidationError if validation fails
115
137
  */
116
- export function validateFileOperation(operation, relativePath, appRootDirPath, options) {
138
+ export function validateFileOperation(operation, relativePath, appRootDirPath, options, validator = defaultValidator) {
117
139
  const opts = {
118
140
  ...DEFAULT_VALIDATION_OPTIONS[operation],
119
141
  ...options,
120
142
  };
121
143
  // Check blacklist
122
144
  if (opts.checkBlacklist) {
123
- const blacklistError = checkBlacklist(relativePath, appRootDirPath);
145
+ const blacklistError = checkBlacklist(relativePath, appRootDirPath, validator);
124
146
  if (blacklistError) {
125
147
  throw new FileValidationError(blacklistError, "BLACKLISTED");
126
148
  }
127
149
  }
128
150
  // Check API files
129
- if (!opts.allowApiFiles && isApiFilePath(relativePath)) {
151
+ if (!opts.allowApiFiles && isApiFilePath(relativePath, validator)) {
130
152
  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
153
  }
132
154
  // Check scope files
133
- if (!opts.allowScopeFiles && isScopeFile(relativePath)) {
155
+ if (!opts.allowScopeFiles && isScopeFile(relativePath, validator)) {
134
156
  throw new FileValidationError("Directly operating on scope files is not allowed. Use the appropriate tool.", "SCOPE_FILE");
135
157
  }
136
158
  // Check package.json
@@ -138,17 +160,20 @@ export function validateFileOperation(operation, relativePath, appRootDirPath, o
138
160
  throw new FileValidationError("Directly editing package.json is not allowed. Use the build_installPackages tool instead.", "PACKAGE_JSON");
139
161
  }
140
162
  // 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");
163
+ if (!opts.allowDirectPagePath && isDirectPagePath(relativePath, validator)) {
164
+ const pagesPrefix = validator.pagesPrefix;
165
+ throw new FileValidationError(`Direct file creation in the pages directory is not allowed. Please create files within subdirectories (e.g., ${pagesPrefix}/yourFeature/index.tsx)`, "DIRECT_PAGE");
143
166
  }
144
167
  }
145
168
  /**
146
169
  * Recursively checks if a directory contains any blacklisted content.
147
170
  *
148
171
  * @param entries - Directory entries to scan
172
+ * @param validator - Optional path validator (defaults to YAML mode)
149
173
  * @returns Error message if blacklisted content found, null otherwise
150
174
  */
151
- export function checkDirectoryContentBlacklist(entries) {
175
+ export function checkDirectoryContentBlacklist(entries, validator = defaultValidator) {
176
+ const protectedDirs = validator.getProtectedDirectories();
152
177
  for (const entry of entries) {
153
178
  const fileName = entry.name;
154
179
  // Check exact paths
@@ -156,8 +181,7 @@ export function checkDirectoryContentBlacklist(entries) {
156
181
  return `Cannot remove protected file: ${fileName}`;
157
182
  }
158
183
  // Check protected directories
159
- if (entry.isDirectory &&
160
- FILE_OPERATION_BLACKLIST.directories.includes(fileName)) {
184
+ if (entry.isDirectory && protectedDirs.includes(fileName)) {
161
185
  return `Cannot remove protected directory: ${fileName}`;
162
186
  }
163
187
  // Check patterns
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/validation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,wBAAwB,EACxB,0BAA0B,GAG3B,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAG1B;IAFlB,YACE,OAAe,EACC,IAOG;QAEnB,KAAK,CAAC,OAAO,CAAC,CAAC;QATC,SAAI,GAAJ,IAAI,CAOD;QAGnB,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAO,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,OAAO,QAAQ,KAAK,UAAU,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACnE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAO,QAAQ,KAAK,cAAc,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAAC,QAAgB;IAC/C,OAAO,wBAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACxD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CACvB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,YAAoB,EACpB,eAAuB;IAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAE7C,6BAA6B;IAC7B,IAAI,YAAY,KAAK,EAAE,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC;QAChD,OAAO,kDAAkD,CAAC;IAC5D,CAAC;IAED,oBAAoB;IACpB,IACE,wBAAwB,CAAC,UAAU,CAAC,QAAQ,CAC1C,QAAgE,CACjE,EACD,CAAC;QACD,OAAO,qCAAqC,QAAQ,EAAE,CAAC;IACzD,CAAC;IAED,8BAA8B;IAC9B,IACE,wBAAwB,CAAC,WAAW,CAAC,QAAQ,CAC3C,QAAiE,CAClE,EACD,CAAC;QACD,OAAO,0CAA0C,QAAQ,EAAE,CAAC;IAC9D,CAAC;IAED,kDAAkD;IAClD,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,IACE,QAAQ;QACR,wBAAwB,CAAC,WAAW,CAAC,QAAQ,CAC3C,QAAiE,CAClE,EACD,CAAC;QACD,sEAAsE;QACtE,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,gEAAgE;QAChE,gFAAgF;QAChF,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,mDAAmD,QAAQ,EAAE,CAAC;IACvE,CAAC;IAED,iBAAiB;IACjB,IAAI,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,OAAO,sDAAsD,QAAQ,EAAE,CAAC;IAC1E,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAwB,EACxB,YAAoB,EACpB,cAAsB,EACtB,OAAiD;IAEjD,MAAM,IAAI,GAAG;QACX,GAAG,0BAA0B,CAAC,SAAS,CAAC;QACxC,GAAG,OAAO;KACX,CAAC;IAEF,kBAAkB;IAClB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,cAAc,GAAG,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACpE,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,IAAI,mBAAmB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,mBAAmB,CAC3B,YAAY,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,2DAA2D,EAClK,UAAU,CACX,CAAC;IACJ,CAAC;IAED,oBAAoB;IACpB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,mBAAmB,CAC3B,6EAA6E,EAC7E,YAAY,CACb,CAAC;IACJ,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,mBAAmB,CAC3B,2FAA2F,EAC3F,cAAc,CACf,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,mBAAmB,CAC3B,2IAA2I,EAC3I,aAAa,CACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAC5C,OAAsD;IAEtD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;QAE5B,oBAAoB;QACpB,IACE,wBAAwB,CAAC,UAAU,CAAC,QAAQ,CAC1C,QAAgE,CACjE,EACD,CAAC;YACD,OAAO,iCAAiC,QAAQ,EAAE,CAAC;QACrD,CAAC;QAED,8BAA8B;QAC9B,IACE,KAAK,CAAC,WAAW;YACjB,wBAAwB,CAAC,WAAW,CAAC,QAAQ,CAC3C,QAAiE,CAClE,EACD,CAAC;YACD,OAAO,sCAAsC,QAAQ,EAAE,CAAC;QAC1D,CAAC;QAED,iBAAiB;QACjB,IAAI,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,OAAO,kDAAkD,QAAQ,EAAE,CAAC;QACtE,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/validation.ts"],"names":[],"mappings":"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"}
@@ -126,5 +126,6 @@ export declare class VirtualFileSystem {
126
126
  */
127
127
  export declare function createDefaultVirtualFileSystem(options?: {
128
128
  useSystemSkills?: boolean;
129
+ sdkApiEnabled?: boolean;
129
130
  }): VirtualFileSystem;
130
131
  //# sourceMappingURL=virtual-file-system.d.ts.map
@@ -1 +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;AAIH,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;;;;;;;;;OASG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC;;;;;OAKG;IACH,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAKjD;;;;;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;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,CAAC,EAAE;IACvD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GAAG,iBAAiB,CASpB"}
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;AAIH,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;;;;;;;;;OASG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC;;;;;OAKG;IACH,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAKjD;;;;;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;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,CAAC,EAAE;IACvD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,iBAAiB,CAYpB"}
@@ -177,7 +177,10 @@ export class VirtualFileSystem {
177
177
  */
178
178
  export function createDefaultVirtualFileSystem(options) {
179
179
  const vfs = new VirtualFileSystem();
180
- vfs.registerHandler(new ApiFileHandler());
180
+ // ApiFileHandler transforms YAML API files to virtual TS - only needed in YAML mode
181
+ if (!options?.sdkApiEnabled) {
182
+ vfs.registerHandler(new ApiFileHandler());
183
+ }
181
184
  if (options?.useSystemSkills) {
182
185
  vfs.registerHandler(new SkillFileHandler());
183
186
  }
@@ -1 +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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"}
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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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * YAML mode path validator implementation.
3
+ *
4
+ * Handles path validation for the flat template structure:
5
+ * - APIs: apis/ApiName/api.yaml
6
+ * - Pages: pages/PageName/index.tsx
7
+ * - App root: App.tsx
8
+ * - Scope file: scope.ts
9
+ */
10
+ import type { PathValidator } from "./path-validator.js";
11
+ /**
12
+ * Path validator for YAML mode (flat structure).
13
+ *
14
+ * In YAML mode:
15
+ * - APIs are at apis/ (e.g., apis/MyApi/api.yaml)
16
+ * - Pages are at pages/ (e.g., pages/Home/index.tsx)
17
+ * - App root is App.tsx
18
+ * - Scope files (scope.ts) are protected from direct modification
19
+ */
20
+ export declare class YamlPathValidator implements PathValidator {
21
+ readonly apiPrefix = "apis";
22
+ readonly pagesPrefix = "pages";
23
+ readonly appRoot = "App.tsx";
24
+ /**
25
+ * Checks if a path is an API file path.
26
+ * In YAML mode, API files start with "apis/".
27
+ */
28
+ isApiFilePath(filePath: string): boolean;
29
+ /**
30
+ * Checks if a path is a direct page path (pages/xyz.tsx rather than pages/xyz/index.tsx).
31
+ * Direct page paths are not allowed - pages must be in subdirectories.
32
+ */
33
+ isDirectPagePath(filePath: string): boolean;
34
+ /**
35
+ * Checks if a path is a scope file.
36
+ * Scope files are protected from direct modification.
37
+ */
38
+ isScopeFile(filePath: string): boolean;
39
+ /**
40
+ * Get directories that are protected from modification.
41
+ */
42
+ getProtectedDirectories(): readonly string[];
43
+ /**
44
+ * Check if a path should bypass blacklist checks.
45
+ * In YAML mode, apis/ and pages/ directories have special handling.
46
+ */
47
+ shouldBypassBlacklist(_relativePath: string, firstDir: string): boolean;
48
+ }
49
+ //# sourceMappingURL=yaml-path-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml-path-validator.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/yaml-path-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;;;;GAQG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,SAAS,UAAU;IAC5B,QAAQ,CAAC,WAAW,WAAW;IAC/B,QAAQ,CAAC,OAAO,aAAa;IAE7B;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIxC;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI3C;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAItC;;OAEG;IACH,uBAAuB,IAAI,SAAS,MAAM,EAAE;IAI5C;;;OAGG;IACH,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;CAYxE"}