@bluelibs/runner-dev 6.1.0 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/AI.md +9 -1
  2. package/README.md +14 -4
  3. package/dist/cli/generators/scaffold/templates/README.md.js +7 -4
  4. package/dist/cli/generators/scaffold/templates/README.md.js.map +1 -1
  5. package/dist/cli/generators/scaffold/templates/index.d.ts +0 -2
  6. package/dist/cli/generators/scaffold/templates/index.js +1 -5
  7. package/dist/cli/generators/scaffold/templates/index.js.map +1 -1
  8. package/dist/cli/generators/scaffold/templates/package.json.d.ts +6 -8
  9. package/dist/cli/generators/scaffold/templates/package.json.js +6 -8
  10. package/dist/cli/generators/scaffold/templates/package.json.js.map +1 -1
  11. package/dist/cli/generators/scaffold/templates/src/main.test.ts.js +3 -1
  12. package/dist/cli/generators/scaffold/templates/src/main.test.ts.js.map +1 -1
  13. package/dist/cli/generators/scaffold/templates/src/main.ts.js +1 -1
  14. package/dist/cli/generators/scaffold.js +0 -2
  15. package/dist/cli/generators/scaffold.js.map +1 -1
  16. package/dist/cli/init.js +1 -2
  17. package/dist/cli/init.js.map +1 -1
  18. package/dist/cli.js +0 -0
  19. package/dist/generated/resolvers-types.d.ts +13 -13
  20. package/dist/index.d.ts +1 -1
  21. package/dist/resources/cli.config.resource.js +1 -1
  22. package/dist/resources/cli.config.resource.js.map +1 -1
  23. package/dist/resources/coverage.resource.js +1 -1
  24. package/dist/resources/coverage.resource.js.map +1 -1
  25. package/dist/resources/dev.resource.d.ts +1 -1
  26. package/dist/resources/dev.resource.js +1 -1
  27. package/dist/resources/dev.resource.js.map +1 -1
  28. package/dist/resources/docs.generator.resource.js +1 -1
  29. package/dist/resources/docs.generator.resource.js.map +1 -1
  30. package/dist/resources/graphql-accumulator.resource.js +1 -1
  31. package/dist/resources/graphql-accumulator.resource.js.map +1 -1
  32. package/dist/resources/graphql.cli.resource.js +1 -1
  33. package/dist/resources/graphql.cli.resource.js.map +1 -1
  34. package/dist/resources/graphql.query.cli.task.d.ts +2 -4
  35. package/dist/resources/graphql.query.cli.task.js +1 -1
  36. package/dist/resources/graphql.query.cli.task.js.map +1 -1
  37. package/dist/resources/graphql.query.task.d.ts +2 -4
  38. package/dist/resources/graphql.query.task.js +1 -1
  39. package/dist/resources/graphql.query.task.js.map +1 -1
  40. package/dist/resources/http.tag.js +1 -1
  41. package/dist/resources/http.tag.js.map +1 -1
  42. package/dist/resources/introspector.cli.resource.js +1 -1
  43. package/dist/resources/introspector.cli.resource.js.map +1 -1
  44. package/dist/resources/introspector.resource.js +1 -1
  45. package/dist/resources/introspector.resource.js.map +1 -1
  46. package/dist/resources/live.resource.js +3 -3
  47. package/dist/resources/live.resource.js.map +1 -1
  48. package/dist/resources/models/Introspector.d.ts +4 -4
  49. package/dist/resources/models/Introspector.js +17 -11
  50. package/dist/resources/models/Introspector.js.map +1 -1
  51. package/dist/resources/models/durable.tools.js +3 -1
  52. package/dist/resources/models/durable.tools.js.map +1 -1
  53. package/dist/resources/models/initializeFromStore.utils.js +30 -11
  54. package/dist/resources/models/initializeFromStore.utils.js.map +1 -1
  55. package/dist/resources/models/introspector.tools.js +15 -15
  56. package/dist/resources/models/introspector.tools.js.map +1 -1
  57. package/dist/resources/routeHandlers/registerHttpRoutes.hook.js +1 -1
  58. package/dist/resources/routeHandlers/registerHttpRoutes.hook.js.map +1 -1
  59. package/dist/resources/server.resource.js +1 -1
  60. package/dist/resources/server.resource.js.map +1 -1
  61. package/dist/resources/swap.cli.resource.js +1 -1
  62. package/dist/resources/swap.cli.resource.js.map +1 -1
  63. package/dist/resources/swap.resource.js +1 -1
  64. package/dist/resources/swap.resource.js.map +1 -1
  65. package/dist/resources/telemetry.resource.js +27 -6
  66. package/dist/resources/telemetry.resource.js.map +1 -1
  67. package/dist/runtime/symbolMetadata.d.ts +1 -0
  68. package/dist/{architect/core/interfaces.js → runtime/symbolMetadata.js} +1 -1
  69. package/dist/runtime/symbolMetadata.js.map +1 -0
  70. package/dist/schema/query.js +3 -1
  71. package/dist/schema/query.js.map +1 -1
  72. package/dist/schema/types/AsyncContextType.js +21 -17
  73. package/dist/schema/types/AsyncContextType.js.map +1 -1
  74. package/dist/ui/.vite/manifest.json +2 -2
  75. package/dist/ui/assets/{docs-CipvKUxZ.css → docs-CWJO6emS.css} +1 -1
  76. package/dist/ui/assets/{docs-CHvYnckk.js → docs-Zej7hPlV.js} +52 -52
  77. package/dist/ui/assets/{docs-CHvYnckk.js.map → docs-Zej7hPlV.js.map} +1 -1
  78. package/dist/utils/lane-resources.js +9 -1
  79. package/dist/utils/lane-resources.js.map +1 -1
  80. package/dist/version.d.ts +1 -1
  81. package/dist/version.js +1 -1
  82. package/package.json +11 -9
  83. package/readmes/runner-AI.md +544 -367
  84. package/readmes/runner-durable-workflows.md +2 -2
  85. package/readmes/runner-full-guide.md +3620 -3479
  86. package/readmes/runner-remote-lanes.md +15 -14
  87. package/dist/app/tasks/create-user.task.d.ts +0 -5
  88. package/dist/app/tasks/create-user.task.js +0 -20
  89. package/dist/app/tasks/create-user.task.js.map +0 -1
  90. package/dist/app/tasks/index.d.ts +0 -1
  91. package/dist/app/tasks/index.js +0 -18
  92. package/dist/app/tasks/index.js.map +0 -1
  93. package/dist/architect/core/errors.d.ts +0 -39
  94. package/dist/architect/core/errors.js +0 -143
  95. package/dist/architect/core/errors.js.map +0 -1
  96. package/dist/architect/core/index.d.ts +0 -3
  97. package/dist/architect/core/index.js +0 -21
  98. package/dist/architect/core/index.js.map +0 -1
  99. package/dist/architect/core/interfaces.d.ts +0 -158
  100. package/dist/architect/core/interfaces.js.map +0 -1
  101. package/dist/architect/core/types.d.ts +0 -544
  102. package/dist/architect/core/types.js +0 -49
  103. package/dist/architect/core/types.js.map +0 -1
  104. package/dist/architect/execution/executor.d.ts +0 -23
  105. package/dist/architect/execution/executor.js +0 -476
  106. package/dist/architect/execution/executor.js.map +0 -1
  107. package/dist/architect/execution/index.d.ts +0 -1
  108. package/dist/architect/execution/index.js +0 -19
  109. package/dist/architect/execution/index.js.map +0 -1
  110. package/dist/architect/executor.d.ts +0 -7
  111. package/dist/architect/executor.js +0 -150
  112. package/dist/architect/executor.js.map +0 -1
  113. package/dist/architect/index.d.ts +0 -45
  114. package/dist/architect/index.js +0 -76
  115. package/dist/architect/index.js.map +0 -1
  116. package/dist/architect/llmClient.d.ts +0 -10
  117. package/dist/architect/llmClient.js +0 -33
  118. package/dist/architect/llmClient.js.map +0 -1
  119. package/dist/architect/models/base.d.ts +0 -16
  120. package/dist/architect/models/base.js +0 -68
  121. package/dist/architect/models/base.js.map +0 -1
  122. package/dist/architect/models/factory.d.ts +0 -16
  123. package/dist/architect/models/factory.js +0 -73
  124. package/dist/architect/models/factory.js.map +0 -1
  125. package/dist/architect/models/index.d.ts +0 -3
  126. package/dist/architect/models/index.js +0 -21
  127. package/dist/architect/models/index.js.map +0 -1
  128. package/dist/architect/models/openai.d.ts +0 -7
  129. package/dist/architect/models/openai.js +0 -71
  130. package/dist/architect/models/openai.js.map +0 -1
  131. package/dist/architect/planner.d.ts +0 -9
  132. package/dist/architect/planner.js +0 -42
  133. package/dist/architect/planner.js.map +0 -1
  134. package/dist/architect/planning/index.d.ts +0 -4
  135. package/dist/architect/planning/index.js +0 -22
  136. package/dist/architect/planning/index.js.map +0 -1
  137. package/dist/architect/planning/optimizer.d.ts +0 -14
  138. package/dist/architect/planning/optimizer.js +0 -275
  139. package/dist/architect/planning/optimizer.js.map +0 -1
  140. package/dist/architect/planning/planner.d.ts +0 -15
  141. package/dist/architect/planning/planner.js +0 -124
  142. package/dist/architect/planning/planner.js.map +0 -1
  143. package/dist/architect/planning/prompts.d.ts +0 -6
  144. package/dist/architect/planning/prompts.js +0 -111
  145. package/dist/architect/planning/prompts.js.map +0 -1
  146. package/dist/architect/planning/validator.d.ts +0 -16
  147. package/dist/architect/planning/validator.js +0 -331
  148. package/dist/architect/planning/validator.js.map +0 -1
  149. package/dist/architect/prompt.d.ts +0 -1
  150. package/dist/architect/prompt.js +0 -13
  151. package/dist/architect/prompt.js.map +0 -1
  152. package/dist/architect/types.d.ts +0 -4
  153. package/dist/architect/types.js +0 -24
  154. package/dist/architect/types.js.map +0 -1
  155. package/dist/cli/generators/scaffold/templates/jest.config.cjs.d.ts +0 -1
  156. package/dist/cli/generators/scaffold/templates/jest.config.cjs.js +0 -24
  157. package/dist/cli/generators/scaffold/templates/jest.config.cjs.js.map +0 -1
  158. package/dist/cli/generators/scaffold/templates/tsconfig.jest.json.d.ts +0 -11
  159. package/dist/cli/generators/scaffold/templates/tsconfig.jest.json.js +0 -17
  160. package/dist/cli/generators/scaffold/templates/tsconfig.jest.json.js.map +0 -1
  161. package/dist/client/documentation.d.ts +0 -8
  162. package/dist/client/documentation.js +0 -144
  163. package/dist/client/documentation.js.map +0 -1
  164. package/dist/components/Documentation/Documentation.d.ts +0 -8
  165. package/dist/components/Documentation/Documentation.js +0 -283
  166. package/dist/components/Documentation/Documentation.js.map +0 -1
  167. package/dist/components/Documentation/components/DiagnosticsPanel.d.ts +0 -7
  168. package/dist/components/Documentation/components/DiagnosticsPanel.js +0 -189
  169. package/dist/components/Documentation/components/DiagnosticsPanel.js.map +0 -1
  170. package/dist/components/Documentation/components/EventCard.d.ts +0 -8
  171. package/dist/components/Documentation/components/EventCard.js +0 -290
  172. package/dist/components/Documentation/components/EventCard.js.map +0 -1
  173. package/dist/components/Documentation/components/HookCard.d.ts +0 -8
  174. package/dist/components/Documentation/components/HookCard.js +0 -282
  175. package/dist/components/Documentation/components/HookCard.js.map +0 -1
  176. package/dist/components/Documentation/components/MiddlewareCard.d.ts +0 -8
  177. package/dist/components/Documentation/components/MiddlewareCard.js +0 -314
  178. package/dist/components/Documentation/components/MiddlewareCard.js.map +0 -1
  179. package/dist/components/Documentation/components/ResourceCard.d.ts +0 -8
  180. package/dist/components/Documentation/components/ResourceCard.js +0 -228
  181. package/dist/components/Documentation/components/ResourceCard.js.map +0 -1
  182. package/dist/components/Documentation/components/Sidebar.d.ts +0 -13
  183. package/dist/components/Documentation/components/Sidebar.js +0 -165
  184. package/dist/components/Documentation/components/Sidebar.js.map +0 -1
  185. package/dist/components/Documentation/components/TagCard.d.ts +0 -7
  186. package/dist/components/Documentation/components/TagCard.js +0 -75
  187. package/dist/components/Documentation/components/TagCard.js.map +0 -1
  188. package/dist/components/Documentation/components/TaskCard.d.ts +0 -8
  189. package/dist/components/Documentation/components/TaskCard.js +0 -196
  190. package/dist/components/Documentation/components/TaskCard.js.map +0 -1
  191. package/dist/components/Documentation/index.d.ts +0 -2
  192. package/dist/components/Documentation/index.js +0 -6
  193. package/dist/components/Documentation/index.js.map +0 -1
  194. package/dist/components/Documentation/utils/formatting.d.ts +0 -8
  195. package/dist/components/Documentation/utils/formatting.js +0 -84
  196. package/dist/components/Documentation/utils/formatting.js.map +0 -1
  197. package/dist/components/ExampleComponent.d.ts +0 -10
  198. package/dist/components/ExampleComponent.js +0 -89
  199. package/dist/components/ExampleComponent.js.map +0 -1
  200. package/dist/mcp/z3.d.ts +0 -1
  201. package/dist/mcp/z3.js +0 -9
  202. package/dist/mcp/z3.js.map +0 -1
  203. package/dist/project-writer/AIModel.d.ts +0 -29
  204. package/dist/project-writer/AIModel.js +0 -48
  205. package/dist/project-writer/AIModel.js.map +0 -1
  206. package/dist/resources/docs.route.d.ts +0 -23
  207. package/dist/resources/docs.route.js +0 -73
  208. package/dist/resources/docs.route.js.map +0 -1
  209. package/dist/resources/durable.workflow.tag.d.ts +0 -2
  210. package/dist/resources/durable.workflow.tag.js +0 -28
  211. package/dist/resources/durable.workflow.tag.js.map +0 -1
  212. package/dist/resources/getFileContents.task.d.ts +0 -17
  213. package/dist/resources/getFileContents.task.js +0 -44
  214. package/dist/resources/getFileContents.task.js.map +0 -1
  215. package/dist/resources/introspector.tools.d.ts +0 -47
  216. package/dist/resources/introspector.tools.js +0 -505
  217. package/dist/resources/introspector.tools.js.map +0 -1
  218. package/dist/resources/models/extractTunnelInfo.d.ts +0 -8
  219. package/dist/resources/models/extractTunnelInfo.js +0 -85
  220. package/dist/resources/models/extractTunnelInfo.js.map +0 -1
  221. package/dist/resources/models/tunnel.tools.d.ts +0 -3
  222. package/dist/resources/models/tunnel.tools.js +0 -35
  223. package/dist/resources/models/tunnel.tools.js.map +0 -1
  224. package/dist/runner-compat.d.ts +0 -85
  225. package/dist/runner-compat.js +0 -178
  226. package/dist/runner-compat.js.map +0 -1
  227. package/dist/runner-node-compat.d.ts +0 -2
  228. package/dist/runner-node-compat.js +0 -28
  229. package/dist/runner-node-compat.js.map +0 -1
  230. package/dist/schema/types/TunnelInfoType.d.ts +0 -5
  231. package/dist/schema/types/TunnelInfoType.js +0 -86
  232. package/dist/schema/types/TunnelInfoType.js.map +0 -1
  233. package/dist/tasks/create-user.d.ts +0 -5
  234. package/dist/tasks/create-user.js +0 -20
  235. package/dist/tasks/create-user.js.map +0 -1
  236. package/dist/tasks/index.d.ts +0 -1
  237. package/dist/tasks/index.js +0 -18
  238. package/dist/tasks/index.js.map +0 -1
  239. package/dist/ui-test/index.html +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/architect/planning/prompts.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAe;IAC1B,oBAAoB,CAAC,OAAwB;QAC3C,OAAO;;;kBAGO,OAAO,CAAC,WAAW;yBACZ,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;uBACpC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;mBACnC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;oBAClC,OAAO,CAAC,aAAa,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yCAgDP,CAAC;IACxC,CAAC;IAED,kBAAkB,CAAC,WAAmB,EAAE,OAAwB;QAC9D,IAAI,MAAM,GAAG,iBAAiB,WAAW,MAAM,CAAC;QAEhD,mCAAmC;QACnC,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,iBAAiB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACrF,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,IAAI,iBAAiB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;iBAC3D,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,KAAK,EAAE,CAAC;iBAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACtB,CAAC;QAED,iCAAiC;QACjC,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC1E,MAAM,IAAI,oBAAoB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1F,CAAC;QAED,qCAAqC;QACrC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;YACjE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;YAEvE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,iBAAiB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACjD,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,qBAAqB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACxD,CAAC;YACD,MAAM,IAAI,IAAI,CAAC;QACjB,CAAC;QAED,MAAM,IAAI,2IAA2I,CAAC;QAEtJ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0BAA0B,CAAC,IAAY,EAAE,MAAgB;QACvD,OAAO;;EAET,IAAI;;;EAGJ,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;yDAQW,CAAC;IACxD,CAAC;CACF;AAlHD,0CAkHC"}
@@ -1,16 +0,0 @@
1
- import { ValidationResult, ArchitectPlan, PlanningContext } from '../core';
2
- export declare class PlanValidator {
3
- validate(plan: ArchitectPlan, context?: PlanningContext): Promise<ValidationResult>;
4
- private validatePlanStructure;
5
- private validateAction;
6
- private validateFileAction;
7
- private validateDeleteAction;
8
- private validateDirectoryAction;
9
- private validateFileOperationAction;
10
- private validateCommandAction;
11
- private validatePackageAction;
12
- private validateRegistrationAction;
13
- private validateLogAction;
14
- private validateActionSequence;
15
- private generateSuggestions;
16
- }
@@ -1,331 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PlanValidator = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- class PlanValidator {
9
- async validate(plan, context) {
10
- const errors = [];
11
- const warnings = [];
12
- const suggestions = [];
13
- // Validate plan structure
14
- this.validatePlanStructure(plan, errors);
15
- // Validate individual actions
16
- plan.actions.forEach((action, index) => {
17
- this.validateAction(action, index, errors, warnings, context);
18
- });
19
- // Validate action sequences and dependencies
20
- this.validateActionSequence(plan.actions, errors, warnings);
21
- // Generate suggestions
22
- this.generateSuggestions(plan, suggestions);
23
- return {
24
- valid: errors.filter(e => e.severity === 'error').length === 0,
25
- errors,
26
- warnings,
27
- suggestions
28
- };
29
- }
30
- validatePlanStructure(plan, errors) {
31
- if (!plan.id || plan.id.trim().length === 0) {
32
- errors.push({
33
- actionIndex: -1,
34
- field: 'id',
35
- message: 'Plan must have a unique ID',
36
- severity: 'error'
37
- });
38
- }
39
- if (!plan.description || plan.description.trim().length === 0) {
40
- errors.push({
41
- actionIndex: -1,
42
- field: 'description',
43
- message: 'Plan must have a description',
44
- severity: 'error'
45
- });
46
- }
47
- if (!plan.actions || plan.actions.length === 0) {
48
- errors.push({
49
- actionIndex: -1,
50
- field: 'actions',
51
- message: 'Plan must have at least one action',
52
- severity: 'error'
53
- });
54
- }
55
- }
56
- validateAction(action, index, errors, warnings, context) {
57
- switch (action.type) {
58
- case 'createFile':
59
- case 'updateFile':
60
- this.validateFileAction(action, index, errors, warnings, context);
61
- break;
62
- case 'deleteFile':
63
- this.validateDeleteAction(action, index, errors, warnings);
64
- break;
65
- case 'createDirectory':
66
- this.validateDirectoryAction(action, index, errors, warnings);
67
- break;
68
- case 'moveFile':
69
- case 'copyFile':
70
- this.validateFileOperationAction(action, index, errors, warnings);
71
- break;
72
- case 'runCommand':
73
- this.validateCommandAction(action, index, errors, warnings);
74
- break;
75
- case 'installPackage':
76
- this.validatePackageAction(action, index, errors, warnings);
77
- break;
78
- case 'registerTask':
79
- case 'registerTest':
80
- this.validateRegistrationAction(action, index, errors, warnings);
81
- break;
82
- case 'log':
83
- this.validateLogAction(action, index, errors);
84
- break;
85
- default:
86
- errors.push({
87
- actionIndex: index,
88
- field: 'type',
89
- message: `Unknown action type: ${action.type}`,
90
- severity: 'error'
91
- });
92
- }
93
- }
94
- validateFileAction(action, index, errors, warnings, context) {
95
- if (!action.path || action.path.trim().length === 0) {
96
- errors.push({
97
- actionIndex: index,
98
- field: 'path',
99
- message: 'File path is required',
100
- severity: 'error'
101
- });
102
- return;
103
- }
104
- // Validate path format
105
- if (path_1.default.isAbsolute(action.path)) {
106
- warnings.push({
107
- actionIndex: index,
108
- message: 'Consider using relative paths for better portability',
109
- recommendation: 'Use paths relative to project root'
110
- });
111
- }
112
- // Check for potentially dangerous paths
113
- if (action.path.includes('..')) {
114
- errors.push({
115
- actionIndex: index,
116
- field: 'path',
117
- message: 'Path traversal detected - paths cannot contain ".."',
118
- severity: 'error'
119
- });
120
- }
121
- // Validate content
122
- if (!action.content || action.content.trim().length === 0) {
123
- warnings.push({
124
- actionIndex: index,
125
- message: 'File content is empty',
126
- recommendation: 'Ensure file content is meaningful'
127
- });
128
- }
129
- // Check for TypeScript files without proper extensions
130
- if (action.path.endsWith('.js') && action.content.includes('import') && action.content.includes('export')) {
131
- warnings.push({
132
- actionIndex: index,
133
- message: 'Consider using .ts extension for TypeScript files',
134
- recommendation: 'Change extension to .ts for better type support'
135
- });
136
- }
137
- // Validate against existing files if context available
138
- if (context?.existingFiles && action.type === 'createFile') {
139
- if (context.existingFiles.includes(action.path)) {
140
- errors.push({
141
- actionIndex: index,
142
- field: 'path',
143
- message: `File already exists: ${action.path}`,
144
- severity: 'error'
145
- });
146
- }
147
- }
148
- }
149
- validateDeleteAction(action, index, errors, warnings) {
150
- if (!action.path || action.path.trim().length === 0) {
151
- errors.push({
152
- actionIndex: index,
153
- field: 'path',
154
- message: 'File path is required for deletion',
155
- severity: 'error'
156
- });
157
- return;
158
- }
159
- // Only allow deletion of test files and temporary files for safety
160
- const safePatterns = [/\.test\.(ts|js)$/, /\.spec\.(ts|js)$/, /^temp\//, /^tmp\//, /\.tmp$/];
161
- const isSafe = safePatterns.some(pattern => pattern.test(action.path));
162
- if (!isSafe) {
163
- warnings.push({
164
- actionIndex: index,
165
- message: `Deleting non-test file: ${action.path}`,
166
- recommendation: 'Consider if file deletion is necessary'
167
- });
168
- }
169
- }
170
- validateDirectoryAction(action, index, errors, warnings) {
171
- if (!action.path || action.path.trim().length === 0) {
172
- errors.push({
173
- actionIndex: index,
174
- field: 'path',
175
- message: 'Directory path is required',
176
- severity: 'error'
177
- });
178
- }
179
- }
180
- validateFileOperationAction(action, index, errors, warnings) {
181
- if (!action.from || action.from.trim().length === 0) {
182
- errors.push({
183
- actionIndex: index,
184
- field: 'from',
185
- message: 'Source path is required',
186
- severity: 'error'
187
- });
188
- }
189
- if (!action.to || action.to.trim().length === 0) {
190
- errors.push({
191
- actionIndex: index,
192
- field: 'to',
193
- message: 'Destination path is required',
194
- severity: 'error'
195
- });
196
- }
197
- if (action.from === action.to) {
198
- errors.push({
199
- actionIndex: index,
200
- field: 'to',
201
- message: 'Source and destination paths cannot be the same',
202
- severity: 'error'
203
- });
204
- }
205
- }
206
- validateCommandAction(action, index, errors, warnings) {
207
- if (!action.command || action.command.trim().length === 0) {
208
- errors.push({
209
- actionIndex: index,
210
- field: 'command',
211
- message: 'Command is required',
212
- severity: 'error'
213
- });
214
- return;
215
- }
216
- // Check for potentially dangerous commands
217
- const dangerousCommands = ['rm -rf', 'sudo', 'chmod 777', 'curl | sh', 'wget | sh'];
218
- const isDangerous = dangerousCommands.some(cmd => action.command.includes(cmd));
219
- if (isDangerous) {
220
- warnings.push({
221
- actionIndex: index,
222
- message: `Potentially dangerous command: ${action.command}`,
223
- recommendation: 'Review command for security implications'
224
- });
225
- }
226
- }
227
- validatePackageAction(action, index, errors, warnings) {
228
- if (!action.name || action.name.trim().length === 0) {
229
- errors.push({
230
- actionIndex: index,
231
- field: 'name',
232
- message: 'Package name is required',
233
- severity: 'error'
234
- });
235
- }
236
- // Validate package name format
237
- if (action.name && !/^(@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/.test(action.name)) {
238
- warnings.push({
239
- actionIndex: index,
240
- message: `Invalid package name format: ${action.name}`,
241
- recommendation: 'Ensure package name follows npm naming conventions'
242
- });
243
- }
244
- }
245
- validateRegistrationAction(action, index, errors, warnings) {
246
- const idField = action.type === 'registerTask' ? 'taskId' : 'testId';
247
- const id = action[idField];
248
- if (!id || id.trim().length === 0) {
249
- errors.push({
250
- actionIndex: index,
251
- field: idField,
252
- message: `${action.type === 'registerTask' ? 'Task' : 'Test'} ID is required`,
253
- severity: 'error'
254
- });
255
- }
256
- if (!action.file || action.file.trim().length === 0) {
257
- errors.push({
258
- actionIndex: index,
259
- field: 'file',
260
- message: 'File path is required',
261
- severity: 'error'
262
- });
263
- }
264
- }
265
- validateLogAction(action, index, errors) {
266
- if (!action.message || action.message.trim().length === 0) {
267
- errors.push({
268
- actionIndex: index,
269
- field: 'message',
270
- message: 'Log message is required',
271
- severity: 'error'
272
- });
273
- }
274
- }
275
- validateActionSequence(actions, errors, warnings) {
276
- const createdFiles = new Set();
277
- const deletedFiles = new Set();
278
- actions.forEach((action, index) => {
279
- switch (action.type) {
280
- case 'createFile':
281
- if (createdFiles.has(action.path)) {
282
- errors.push({
283
- actionIndex: index,
284
- field: 'path',
285
- message: `File ${action.path} is created multiple times`,
286
- severity: 'error'
287
- });
288
- }
289
- if (deletedFiles.has(action.path)) {
290
- warnings.push({
291
- actionIndex: index,
292
- message: `Creating file ${action.path} after deleting it`,
293
- recommendation: 'Consider if this sequence is intentional'
294
- });
295
- }
296
- createdFiles.add(action.path);
297
- break;
298
- case 'updateFile':
299
- if (!createdFiles.has(action.path)) {
300
- warnings.push({
301
- actionIndex: index,
302
- message: `Updating file ${action.path} that wasn't created in this plan`,
303
- recommendation: 'Ensure the file exists or create it first'
304
- });
305
- }
306
- break;
307
- case 'deleteFile':
308
- deletedFiles.add(action.path);
309
- break;
310
- }
311
- });
312
- }
313
- generateSuggestions(plan, suggestions) {
314
- const actionTypes = plan.actions.map(a => a.type);
315
- const fileActions = actionTypes.filter(t => ['createFile', 'updateFile'].includes(t)).length;
316
- const testActions = actionTypes.filter(t => t === 'registerTest').length;
317
- if (fileActions > 0 && testActions === 0) {
318
- suggestions.push('Consider adding tests for the created/modified functionality');
319
- }
320
- if (plan.actions.length > 10) {
321
- suggestions.push('Large plans might benefit from being split into smaller, focused plans');
322
- }
323
- const hasPackageInstalls = actionTypes.includes('installPackage');
324
- const hasCommands = actionTypes.includes('runCommand');
325
- if (hasPackageInstalls || hasCommands) {
326
- suggestions.push('Plans with package installations or commands may require elevated permissions');
327
- }
328
- }
329
- }
330
- exports.PlanValidator = PlanValidator;
331
- //# sourceMappingURL=validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/architect/planning/validator.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare const SYSTEM_PROMPT = "\nYou are an assistant that writes TypeScript code for a BlueLibs Runner application.\nWhen given a natural-language request, output ONLY a JSON object that matches the TypeScript type ArchitectPlan defined in src/architect/types.ts.\nDo NOT wrap the JSON in markdown, do NOT add extra keys, and do NOT hallucinate.\nThe JSON must be valid and parsable.\nIf you are unsure, respond with a single action of type \"log\" explaining the issue.\n";
@@ -1,13 +0,0 @@
1
- "use strict";
2
- // src/architect/prompt.ts
3
- // System prompt that guides the LLM to output a strict ArchitectPlan JSON.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.SYSTEM_PROMPT = void 0;
6
- exports.SYSTEM_PROMPT = `
7
- You are an assistant that writes TypeScript code for a BlueLibs Runner application.
8
- When given a natural-language request, output ONLY a JSON object that matches the TypeScript type ArchitectPlan defined in src/architect/types.ts.
9
- Do NOT wrap the JSON in markdown, do NOT add extra keys, and do NOT hallucinate.
10
- The JSON must be valid and parsable.
11
- If you are unsure, respond with a single action of type "log" explaining the issue.
12
- `;
13
- //# sourceMappingURL=prompt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/architect/prompt.ts"],"names":[],"mappings":";AAAA,0BAA0B;AAC1B,2EAA2E;;;AAE9D,QAAA,aAAa,GAAG;;;;;;CAM5B,CAAC"}
@@ -1,4 +0,0 @@
1
- /**
2
- * @deprecated Use types from './core/types' instead
3
- */
4
- export * from './core/types';
@@ -1,24 +0,0 @@
1
- "use strict";
2
- // Legacy types - deprecated in favor of the new core types
3
- // This file is kept for backward compatibility
4
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
- if (k2 === undefined) k2 = k;
6
- var desc = Object.getOwnPropertyDescriptor(m, k);
7
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
- desc = { enumerable: true, get: function() { return m[k]; } };
9
- }
10
- Object.defineProperty(o, k2, desc);
11
- }) : (function(o, m, k, k2) {
12
- if (k2 === undefined) k2 = k;
13
- o[k2] = m[k];
14
- }));
15
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- /**
20
- * @deprecated Use types from './core/types' instead
21
- */
22
- // Re-export the new types for compatibility
23
- __exportStar(require("./core/types"), exports);
24
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/architect/types.ts"],"names":[],"mappings":";AAAA,2DAA2D;AAC3D,+CAA+C;;;;;;;;;;;;;;;;AAE/C;;GAEG;AAEH,4CAA4C;AAC5C,+CAA6B"}
@@ -1 +0,0 @@
1
- export declare function jestConfig(): string;
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.jestConfig = jestConfig;
4
- function jestConfig() {
5
- return `/** @type {import('jest').Config} */
6
- module.exports = {
7
- preset: 'ts-jest/presets/default-esm',
8
- testEnvironment: 'node',
9
- roots: ['<rootDir>/src'],
10
- moduleFileExtensions: ['ts', 'tsx', 'js'],
11
- extensionsToTreatAsEsm: ['.ts', '.tsx'],
12
- transform: {
13
- '^.+\\.(ts|tsx)$': [
14
- 'ts-jest',
15
- {
16
- useESM: true,
17
- tsconfig: 'tsconfig.jest.json',
18
- },
19
- ],
20
- },
21
- };
22
- `;
23
- }
24
- //# sourceMappingURL=jest.config.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jest.config.cjs.js","sourceRoot":"","sources":["../../../../../src/cli/generators/scaffold/templates/jest.config.cjs.ts"],"names":[],"mappings":";;AAAA,gCAmBC;AAnBD,SAAgB,UAAU;IACxB,OAAO;;;;;;;;;;;;;;;;;CAiBR,CAAC;AACF,CAAC"}
@@ -1,11 +0,0 @@
1
- export declare function tsconfigJest(): {
2
- readonly extends: "./tsconfig.json";
3
- readonly compilerOptions: {
4
- readonly module: "CommonJS";
5
- readonly moduleResolution: "node";
6
- readonly target: "ES2019";
7
- readonly esModuleInterop: true;
8
- readonly isolatedModules: false;
9
- };
10
- readonly include: readonly ["src/**/*.ts", "src/**/*.tsx"];
11
- };
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.tsconfigJest = tsconfigJest;
4
- function tsconfigJest() {
5
- return {
6
- extends: "./tsconfig.json",
7
- compilerOptions: {
8
- module: "CommonJS",
9
- moduleResolution: "node",
10
- target: "ES2019",
11
- esModuleInterop: true,
12
- isolatedModules: false,
13
- },
14
- include: ["src/**/*.ts", "src/**/*.tsx"],
15
- };
16
- }
17
- //# sourceMappingURL=tsconfig.jest.json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tsconfig.jest.json.js","sourceRoot":"","sources":["../../../../../src/cli/generators/scaffold/templates/tsconfig.jest.json.ts"],"names":[],"mappings":";;AAAA,oCAYC;AAZD,SAAgB,YAAY;IAC1B,OAAO;QACL,OAAO,EAAE,iBAAiB;QAC1B,eAAe,EAAE;YACf,MAAM,EAAE,UAAU;YAClB,gBAAgB,EAAE,MAAM;YACxB,MAAM,EAAE,QAAQ;YAChB,eAAe,EAAE,IAAI;YACrB,eAAe,EAAE,KAAK;SACvB;QACD,OAAO,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;KAChC,CAAC;AACb,CAAC"}
@@ -1,8 +0,0 @@
1
- declare global {
2
- interface Window {
3
- __RUNNER_DEV_DATA__?: {
4
- introspector: any;
5
- };
6
- }
7
- }
8
- export {};
@@ -1,144 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const jsx_runtime_1 = require("react/jsx-runtime");
4
- const client_1 = require("react-dom/client");
5
- const Documentation_1 = require("../components/Documentation");
6
- // Hydrate the Documentation component
7
- function hydrateDocumentation() {
8
- const container = document.getElementById('documentation-root');
9
- if (!container) {
10
- console.error('Documentation root element not found');
11
- return;
12
- }
13
- const serverData = window.__RUNNER_DEV_DATA__;
14
- if (!serverData?.introspector) {
15
- console.error('Server data not found on window');
16
- return;
17
- }
18
- // Create introspector-like object from server data
19
- const introspector = {
20
- getRoot: () => serverData.introspector.root,
21
- getTasks: () => serverData.introspector.tasks,
22
- getResources: () => serverData.introspector.resources,
23
- getHooks: () => serverData.introspector.hooks,
24
- getEvents: () => serverData.introspector.events,
25
- getMiddlewares: () => serverData.introspector.middlewares,
26
- getTaskMiddlewares: () => serverData.introspector.taskMiddlewares,
27
- getResourceMiddlewares: () => serverData.introspector.resourceMiddlewares,
28
- getAllTags: () => serverData.introspector.tags,
29
- getDiagnostics: () => serverData.introspector.diagnostics,
30
- getOrphanEvents: () => serverData.introspector.orphanEvents,
31
- getUnemittedEvents: () => serverData.introspector.unemittedEvents,
32
- getUnusedMiddleware: () => serverData.introspector.unusedMiddleware,
33
- getMissingFiles: () => serverData.introspector.missingFiles,
34
- getOverrideConflicts: () => serverData.introspector.overrideConflicts,
35
- // Helper methods for relationships
36
- getEvent: (id) => serverData.introspector.events.find((e) => e.id === id) || null,
37
- getTask: (id) => serverData.introspector.tasks.find((t) => t.id === id) || null,
38
- getHook: (id) => serverData.introspector.hooks.find((h) => h.id === id) || null,
39
- getMiddleware: (id) => serverData.introspector.middlewares.find((m) => m.id === id) || null,
40
- getResource: (id) => serverData.introspector.resources.find((r) => r.id === id) || null,
41
- getTag: (id) => serverData.introspector.tags.find((tag) => tag.id === id) || null,
42
- // Relationship methods using pre-computed data
43
- getDependencies: (node) => {
44
- const deps = serverData.introspector.dependencies[node.id] || {
45
- tasks: [],
46
- hooks: [],
47
- resources: [],
48
- emitters: []
49
- };
50
- return deps;
51
- },
52
- getEmittedEvents: (node) => {
53
- const emitted = serverData.introspector.emittedEvents[node.id] || [];
54
- return emitted;
55
- },
56
- getMiddlewaresByIds: (ids) => {
57
- return serverData.introspector.middlewares.filter((m) => ids.includes(m.id));
58
- },
59
- getResourcesByIds: (ids) => {
60
- return serverData.introspector.resources.filter((r) => ids.includes(r.id));
61
- },
62
- getTasksByIds: (ids) => {
63
- return serverData.introspector.tasks.filter((t) => ids.includes(t.id));
64
- },
65
- getHooksByIds: (ids) => {
66
- return serverData.introspector.hooks.filter((h) => ids.includes(h.id));
67
- },
68
- getEventsByIds: (ids) => {
69
- return serverData.introspector.events.filter((e) => ids.includes(e.id));
70
- },
71
- getTasksUsingResource: (resourceId) => {
72
- return serverData.introspector.taskResourceUsage[resourceId] || [];
73
- },
74
- getTasksUsingMiddleware: (middlewareId) => {
75
- return serverData.introspector.middlewareTaskUsage[middlewareId] || [];
76
- },
77
- getTaskLikesUsingMiddleware: (middlewareId) => {
78
- return serverData.introspector.middlewareTaskUsage[middlewareId] || [];
79
- },
80
- getEmittersOfEvent: (eventId) => {
81
- return serverData.introspector.eventEmitters[eventId] || [];
82
- },
83
- getHooksOfEvent: (eventId) => {
84
- return serverData.introspector.eventHooks[eventId] || [];
85
- },
86
- getMiddlewareEmittedEvents: (middlewareId) => {
87
- return serverData.introspector.middlewareEvents[middlewareId] || [];
88
- },
89
- getMiddlewareUsagesForTask: (taskId) => {
90
- return serverData.introspector.taskMiddlewareUsages[taskId] || [];
91
- },
92
- getMiddlewareUsagesForResource: (resourceId) => {
93
- return serverData.introspector.resourceMiddlewareUsages[resourceId] || [];
94
- },
95
- getTasksUsingMiddlewareDetailed: (middlewareId) => {
96
- return serverData.introspector.middlewareDetailedTaskUsage[middlewareId] || [];
97
- },
98
- getResourcesUsingMiddlewareDetailed: (middlewareId) => {
99
- return serverData.introspector.middlewareDetailedResourceUsage[middlewareId] || [];
100
- },
101
- getEmittedEventsForResource: (resourceId) => {
102
- return serverData.introspector.resourceEvents[resourceId] || [];
103
- },
104
- getTasksWithTag: (tagId) => {
105
- const tag = serverData.introspector.tags.find((t) => t.id === tagId);
106
- return tag?.tasks || [];
107
- },
108
- getHooksWithTag: (tagId) => {
109
- const tag = serverData.introspector.tags.find((t) => t.id === tagId);
110
- return tag?.hooks || [];
111
- },
112
- getResourcesWithTag: (tagId) => {
113
- const tag = serverData.introspector.tags.find((t) => t.id === tagId);
114
- return tag?.resources || [];
115
- },
116
- getMiddlewaresWithTag: (tagId) => {
117
- const tag = serverData.introspector.tags.find((t) => t.id === tagId);
118
- return tag?.middlewares || [];
119
- },
120
- getEventsWithTag: (tagId) => {
121
- const tag = serverData.introspector.tags.find((t) => t.id === tagId);
122
- return tag?.events || [];
123
- },
124
- buildRunOptionsForTask: (taskId, args) => {
125
- // Simplified for client-side - mainly for filtering
126
- return { nodeIds: [taskId], ...args };
127
- },
128
- buildRunOptionsForHook: (hookId, args) => {
129
- // Simplified for client-side - mainly for filtering
130
- return { nodeIds: [hookId], ...args };
131
- }
132
- };
133
- // Hydrate the React component
134
- (0, client_1.hydrateRoot)(container, (0, jsx_runtime_1.jsx)(Documentation_1.Documentation, { introspector: introspector }));
135
- console.log('📖 Documentation hydrated successfully!');
136
- }
137
- // Run hydration when DOM is ready
138
- if (document.readyState === 'loading') {
139
- document.addEventListener('DOMContentLoaded', hydrateDocumentation);
140
- }
141
- else {
142
- hydrateDocumentation();
143
- }
144
- //# sourceMappingURL=documentation.js.map