@bluelibs/runner-dev 4.0.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 (215) hide show
  1. package/AI.md +411 -0
  2. package/README.md +1103 -0
  3. package/dist/cli.d.ts +2 -0
  4. package/dist/cli.js +58 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/client/documentation.d.ts +8 -0
  7. package/dist/client/documentation.js +144 -0
  8. package/dist/client/documentation.js.map +1 -0
  9. package/dist/components/Documentation/Documentation.d.ts +8 -0
  10. package/dist/components/Documentation/Documentation.js +283 -0
  11. package/dist/components/Documentation/Documentation.js.map +1 -0
  12. package/dist/components/Documentation/components/DiagnosticsPanel.d.ts +7 -0
  13. package/dist/components/Documentation/components/DiagnosticsPanel.js +126 -0
  14. package/dist/components/Documentation/components/DiagnosticsPanel.js.map +1 -0
  15. package/dist/components/Documentation/components/EventCard.d.ts +8 -0
  16. package/dist/components/Documentation/components/EventCard.js +164 -0
  17. package/dist/components/Documentation/components/EventCard.js.map +1 -0
  18. package/dist/components/Documentation/components/HookCard.d.ts +8 -0
  19. package/dist/components/Documentation/components/HookCard.js +111 -0
  20. package/dist/components/Documentation/components/HookCard.js.map +1 -0
  21. package/dist/components/Documentation/components/MiddlewareCard.d.ts +8 -0
  22. package/dist/components/Documentation/components/MiddlewareCard.js +159 -0
  23. package/dist/components/Documentation/components/MiddlewareCard.js.map +1 -0
  24. package/dist/components/Documentation/components/ResourceCard.d.ts +8 -0
  25. package/dist/components/Documentation/components/ResourceCard.js +94 -0
  26. package/dist/components/Documentation/components/ResourceCard.js.map +1 -0
  27. package/dist/components/Documentation/components/Sidebar.d.ts +13 -0
  28. package/dist/components/Documentation/components/Sidebar.js +129 -0
  29. package/dist/components/Documentation/components/Sidebar.js.map +1 -0
  30. package/dist/components/Documentation/components/TagCard.d.ts +7 -0
  31. package/dist/components/Documentation/components/TagCard.js +75 -0
  32. package/dist/components/Documentation/components/TagCard.js.map +1 -0
  33. package/dist/components/Documentation/components/TaskCard.d.ts +8 -0
  34. package/dist/components/Documentation/components/TaskCard.js +77 -0
  35. package/dist/components/Documentation/components/TaskCard.js.map +1 -0
  36. package/dist/components/Documentation/index.d.ts +2 -0
  37. package/dist/components/Documentation/index.js +6 -0
  38. package/dist/components/Documentation/index.js.map +1 -0
  39. package/dist/components/Documentation/utils/formatting.d.ts +8 -0
  40. package/dist/components/Documentation/utils/formatting.js +84 -0
  41. package/dist/components/Documentation/utils/formatting.js.map +1 -0
  42. package/dist/components/ExampleComponent.d.ts +10 -0
  43. package/dist/components/ExampleComponent.js +48 -0
  44. package/dist/components/ExampleComponent.js.map +1 -0
  45. package/dist/generated/resolvers-types.d.ts +1523 -0
  46. package/dist/generated/resolvers-types.js +3 -0
  47. package/dist/generated/resolvers-types.js.map +1 -0
  48. package/dist/index.d.ts +61 -0
  49. package/dist/index.js +22 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/main.d.ts +1 -0
  52. package/dist/main.js +3 -0
  53. package/dist/main.js.map +1 -0
  54. package/dist/mcp/env.d.ts +5 -0
  55. package/dist/mcp/env.js +42 -0
  56. package/dist/mcp/env.js.map +1 -0
  57. package/dist/mcp/format.d.ts +50 -0
  58. package/dist/mcp/format.js +249 -0
  59. package/dist/mcp/format.js.map +1 -0
  60. package/dist/mcp/help.d.ts +20 -0
  61. package/dist/mcp/help.js +121 -0
  62. package/dist/mcp/help.js.map +1 -0
  63. package/dist/mcp/http.d.ts +6 -0
  64. package/dist/mcp/http.js +47 -0
  65. package/dist/mcp/http.js.map +1 -0
  66. package/dist/mcp/projectOverview.d.ts +2 -0
  67. package/dist/mcp/projectOverview.js +210 -0
  68. package/dist/mcp/projectOverview.js.map +1 -0
  69. package/dist/mcp/schema.d.ts +1 -0
  70. package/dist/mcp/schema.js +17 -0
  71. package/dist/mcp/schema.js.map +1 -0
  72. package/dist/mcp/tools/graphql.introspect.d.ts +2 -0
  73. package/dist/mcp/tools/graphql.introspect.js +19 -0
  74. package/dist/mcp/tools/graphql.introspect.js.map +1 -0
  75. package/dist/mcp/tools/graphql.mutation.d.ts +2 -0
  76. package/dist/mcp/tools/graphql.mutation.js +43 -0
  77. package/dist/mcp/tools/graphql.mutation.js.map +1 -0
  78. package/dist/mcp/tools/graphql.ping.d.ts +2 -0
  79. package/dist/mcp/tools/graphql.ping.js +23 -0
  80. package/dist/mcp/tools/graphql.ping.js.map +1 -0
  81. package/dist/mcp/tools/graphql.query.d.ts +2 -0
  82. package/dist/mcp/tools/graphql.query.js +42 -0
  83. package/dist/mcp/tools/graphql.query.js.map +1 -0
  84. package/dist/mcp/tools/graphql.schemaSdl.d.ts +2 -0
  85. package/dist/mcp/tools/graphql.schemaSdl.js +15 -0
  86. package/dist/mcp/tools/graphql.schemaSdl.js.map +1 -0
  87. package/dist/mcp/tools/help.read.d.ts +2 -0
  88. package/dist/mcp/tools/help.read.js +67 -0
  89. package/dist/mcp/tools/help.read.js.map +1 -0
  90. package/dist/mcp/tools/help.runner.d.ts +2 -0
  91. package/dist/mcp/tools/help.runner.js +55 -0
  92. package/dist/mcp/tools/help.runner.js.map +1 -0
  93. package/dist/mcp/tools/help.runnerDev.d.ts +2 -0
  94. package/dist/mcp/tools/help.runnerDev.js +56 -0
  95. package/dist/mcp/tools/help.runnerDev.js.map +1 -0
  96. package/dist/mcp.d.ts +1 -0
  97. package/dist/mcp.js +75 -0
  98. package/dist/mcp.js.map +1 -0
  99. package/dist/resources/dev.resource.d.ts +5 -0
  100. package/dist/resources/dev.resource.js +26 -0
  101. package/dist/resources/dev.resource.js.map +1 -0
  102. package/dist/resources/docs.generator.resource.d.ts +17 -0
  103. package/dist/resources/docs.generator.resource.js +230 -0
  104. package/dist/resources/docs.generator.resource.js.map +1 -0
  105. package/dist/resources/graphql-accumulator.resource.d.ts +7 -0
  106. package/dist/resources/graphql-accumulator.resource.js +41 -0
  107. package/dist/resources/graphql-accumulator.resource.js.map +1 -0
  108. package/dist/resources/introspector.resource.d.ts +129 -0
  109. package/dist/resources/introspector.resource.js +266 -0
  110. package/dist/resources/introspector.resource.js.map +1 -0
  111. package/dist/resources/introspector.tools.d.ts +47 -0
  112. package/dist/resources/introspector.tools.js +505 -0
  113. package/dist/resources/introspector.tools.js.map +1 -0
  114. package/dist/resources/live.resource.d.ts +80 -0
  115. package/dist/resources/live.resource.js +231 -0
  116. package/dist/resources/live.resource.js.map +1 -0
  117. package/dist/resources/server.resource.d.ts +38 -0
  118. package/dist/resources/server.resource.js +106 -0
  119. package/dist/resources/server.resource.js.map +1 -0
  120. package/dist/resources/swap.resource.d.ts +43 -0
  121. package/dist/resources/swap.resource.js +251 -0
  122. package/dist/resources/swap.resource.js.map +1 -0
  123. package/dist/resources/swap.tools.d.ts +31 -0
  124. package/dist/resources/swap.tools.js +207 -0
  125. package/dist/resources/swap.tools.js.map +1 -0
  126. package/dist/resources/telemetry.chain.d.ts +13 -0
  127. package/dist/resources/telemetry.chain.js +32 -0
  128. package/dist/resources/telemetry.chain.js.map +1 -0
  129. package/dist/resources/telemetry.resource.d.ts +1 -0
  130. package/dist/resources/telemetry.resource.js +90 -0
  131. package/dist/resources/telemetry.resource.js.map +1 -0
  132. package/dist/schema/context.d.ts +11 -0
  133. package/dist/schema/context.js +3 -0
  134. package/dist/schema/context.js.map +1 -0
  135. package/dist/schema/index.d.ts +7 -0
  136. package/dist/schema/index.js +72 -0
  137. package/dist/schema/index.js.map +1 -0
  138. package/dist/schema/model.d.ts +97 -0
  139. package/dist/schema/model.js +5 -0
  140. package/dist/schema/model.js.map +1 -0
  141. package/dist/schema/mutation.d.ts +3 -0
  142. package/dist/schema/mutation.js +112 -0
  143. package/dist/schema/mutation.js.map +1 -0
  144. package/dist/schema/query.d.ts +3 -0
  145. package/dist/schema/query.js +295 -0
  146. package/dist/schema/query.js.map +1 -0
  147. package/dist/schema/types/AllType.d.ts +3 -0
  148. package/dist/schema/types/AllType.js +149 -0
  149. package/dist/schema/types/AllType.js.map +1 -0
  150. package/dist/schema/types/BaseElementCommon.d.ts +11 -0
  151. package/dist/schema/types/BaseElementCommon.js +61 -0
  152. package/dist/schema/types/BaseElementCommon.js.map +1 -0
  153. package/dist/schema/types/DiagnosticsType.d.ts +2 -0
  154. package/dist/schema/types/DiagnosticsType.js +15 -0
  155. package/dist/schema/types/DiagnosticsType.js.map +1 -0
  156. package/dist/schema/types/EventType.d.ts +4 -0
  157. package/dist/schema/types/EventType.js +97 -0
  158. package/dist/schema/types/EventType.js.map +1 -0
  159. package/dist/schema/types/HookType.d.ts +4 -0
  160. package/dist/schema/types/HookType.js +123 -0
  161. package/dist/schema/types/HookType.js.map +1 -0
  162. package/dist/schema/types/LiveType.d.ts +33 -0
  163. package/dist/schema/types/LiveType.js +553 -0
  164. package/dist/schema/types/LiveType.js.map +1 -0
  165. package/dist/schema/types/MetaType.d.ts +3 -0
  166. package/dist/schema/types/MetaType.js +31 -0
  167. package/dist/schema/types/MetaType.js.map +1 -0
  168. package/dist/schema/types/MiddlewareType.d.ts +4 -0
  169. package/dist/schema/types/MiddlewareType.js +26 -0
  170. package/dist/schema/types/MiddlewareType.js.map +1 -0
  171. package/dist/schema/types/ResourceType.d.ts +2 -0
  172. package/dist/schema/types/ResourceType.js +145 -0
  173. package/dist/schema/types/ResourceType.js.map +1 -0
  174. package/dist/schema/types/RunTypes.d.ts +7 -0
  175. package/dist/schema/types/RunTypes.js +95 -0
  176. package/dist/schema/types/RunTypes.js.map +1 -0
  177. package/dist/schema/types/SwapType.d.ts +5 -0
  178. package/dist/schema/types/SwapType.js +42 -0
  179. package/dist/schema/types/SwapType.js.map +1 -0
  180. package/dist/schema/types/TagType.d.ts +6 -0
  181. package/dist/schema/types/TagType.js +48 -0
  182. package/dist/schema/types/TagType.js.map +1 -0
  183. package/dist/schema/types/TaskLikeCommon.d.ts +7 -0
  184. package/dist/schema/types/TaskLikeCommon.js +86 -0
  185. package/dist/schema/types/TaskLikeCommon.js.map +1 -0
  186. package/dist/schema/types/TaskType.d.ts +11 -0
  187. package/dist/schema/types/TaskType.js +188 -0
  188. package/dist/schema/types/TaskType.js.map +1 -0
  189. package/dist/schema/types/index.d.ts +13 -0
  190. package/dist/schema/types/index.js +44 -0
  191. package/dist/schema/types/index.js.map +1 -0
  192. package/dist/schema/types/middleware/UsageTypes.d.ts +3 -0
  193. package/dist/schema/types/middleware/UsageTypes.js +23 -0
  194. package/dist/schema/types/middleware/UsageTypes.js.map +1 -0
  195. package/dist/schema/types/middleware/common.d.ts +6 -0
  196. package/dist/schema/types/middleware/common.js +156 -0
  197. package/dist/schema/types/middleware/common.js.map +1 -0
  198. package/dist/schema/utils.d.ts +12 -0
  199. package/dist/schema/utils.js +35 -0
  200. package/dist/schema/utils.js.map +1 -0
  201. package/dist/ui/index.html +20 -0
  202. package/dist/ui/static/index-D-NS5aw1.js +40 -0
  203. package/dist/utils/json-schema-to-readable.d.ts +1 -0
  204. package/dist/utils/json-schema-to-readable.js +256 -0
  205. package/dist/utils/json-schema-to-readable.js.map +1 -0
  206. package/dist/utils/path.d.ts +16 -0
  207. package/dist/utils/path.js +101 -0
  208. package/dist/utils/path.js.map +1 -0
  209. package/dist/utils/react-ssr.d.ts +9 -0
  210. package/dist/utils/react-ssr.js +36 -0
  211. package/dist/utils/react-ssr.js.map +1 -0
  212. package/dist/utils/zod.d.ts +6 -0
  213. package/dist/utils/zod.js +39 -0
  214. package/dist/utils/zod.js.map +1 -0
  215. package/package.json +83 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.runner.js","sourceRoot":"","sources":["../../../src/mcp/tools/help.runner.ts"],"names":[],"mappings":";;AAIA,gDA6DC;AAjED,6BAAwB;AAExB,kCAA8E;AAE9E,SAAgB,kBAAkB,CAAC,MAAiB;IAClD,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,gCAAgC;QACvC,WAAW,EACT,4IAA4I;QAC9I,WAAW,EAAE;YACX,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YACtE,GAAG,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC5B;KACF,EACD,KAAK,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,EAAE;QACjC,MAAM,GAAG,GAAG,MAAM,IAAA,qBAAc,EAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAE1B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,6CAA6C,GAAG,CAAC,QAAQ,EAAE;qBAClE;iBACF;aACF,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,KAAK,GAAG;gBACZ,wCAAwC;gBACxC,EAAE;gBACF,GAAG,IAAA,eAAQ,EAAC,OAAO,CAAC;aACrB,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACjE,CAAC;QAED,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;gBACnD,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YAEtB,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CACpD,CAAC;YAEF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,IAAA,gCAAyB,EAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACjE,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,uCAAuC,OAAO,EAAE;iBACvD;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerHelpRunnerDev(server: McpServer): void;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerHelpRunnerDev = registerHelpRunnerDev;
4
+ const zod_1 = require("zod");
5
+ const help_1 = require("../help");
6
+ function registerHelpRunnerDev(server) {
7
+ server.registerTool("help_runner_dev", {
8
+ title: "Runner-Dev Application Guide",
9
+ description: "Read Runner-Dev application documentation including GraphQL API guide, MCP tools, and AI assistant instructions.",
10
+ inputSchema: {
11
+ headingIncludes: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
12
+ toc: zod_1.z.boolean().optional(),
13
+ },
14
+ }, async ({ headingIncludes, toc }) => {
15
+ const readmeRes = await (0, help_1.readDocContent)("readme");
16
+ const aiRes = await (0, help_1.readDocContent)("ai");
17
+ const sections = [];
18
+ if (readmeRes.content) {
19
+ sections.push(`# Runner-Dev Application\n\n${readmeRes.content}`);
20
+ }
21
+ if (aiRes.content) {
22
+ sections.push(`# AI Assistant Guide\n\n${aiRes.content}`);
23
+ }
24
+ const content = sections.join("\n\n---\n\n");
25
+ if (!content) {
26
+ return {
27
+ content: [
28
+ {
29
+ type: "text",
30
+ text: "Runner-Dev documentation not found. Please ensure README.md and AI.md exist.",
31
+ },
32
+ ],
33
+ };
34
+ }
35
+ if (toc) {
36
+ const lines = [
37
+ `# Runner-Dev Documentation - Table of Contents`,
38
+ "",
39
+ ...(0, help_1.buildTOC)(content),
40
+ ];
41
+ return { content: [{ type: "text", text: lines.join("\n") }] };
42
+ }
43
+ if (headingIncludes) {
44
+ const headingQueries = Array.isArray(headingIncludes)
45
+ ? headingIncludes
46
+ : [headingIncludes];
47
+ const validQueries = headingQueries.filter((q) => typeof q === "string" && q.trim().length > 0);
48
+ if (validQueries.length > 0) {
49
+ const section = (0, help_1.extractSectionsByHeadings)(content, validQueries);
50
+ return { content: [{ type: "text", text: section || content }] };
51
+ }
52
+ }
53
+ return { content: [{ type: "text", text: content }] };
54
+ });
55
+ }
56
+ //# sourceMappingURL=help.runnerDev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.runnerDev.js","sourceRoot":"","sources":["../../../src/mcp/tools/help.runnerDev.ts"],"names":[],"mappings":";;AAIA,sDAgEC;AApED,6BAAwB;AAExB,kCAA8E;AAE9E,SAAgB,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,8BAA8B;QACrC,WAAW,EACT,kHAAkH;QACpH,WAAW,EAAE;YACX,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YACtE,GAAG,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC5B;KACF,EACD,KAAK,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,MAAM,IAAA,qBAAc,EAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC;QAEzC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,+BAA+B,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,8EAA8E;qBACrF;iBACF;aACF,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,KAAK,GAAG;gBACZ,gDAAgD;gBAChD,EAAE;gBACF,GAAG,IAAA,eAAQ,EAAC,OAAO,CAAC;aACrB,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACjE,CAAC;QAED,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;gBACnD,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YAEtB,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CACpD,CAAC;YAEF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,IAAA,gCAAyB,EAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACjE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC;YACnE,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACxD,CAAC,CACF,CAAC;AACJ,CAAC"}
package/dist/mcp.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
package/dist/mcp.js ADDED
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
4
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
5
+ const graphql_1 = require("graphql");
6
+ const http_1 = require("./mcp/http");
7
+ const schema_1 = require("./mcp/schema");
8
+ const projectOverview_1 = require("./mcp/projectOverview");
9
+ const graphql_query_1 = require("./mcp/tools/graphql.query");
10
+ const graphql_mutation_1 = require("./mcp/tools/graphql.mutation");
11
+ const graphql_introspect_1 = require("./mcp/tools/graphql.introspect");
12
+ const graphql_schemaSdl_1 = require("./mcp/tools/graphql.schemaSdl");
13
+ const graphql_ping_1 = require("./mcp/tools/graphql.ping");
14
+ const help_read_1 = require("./mcp/tools/help.read");
15
+ const help_runner_1 = require("./mcp/tools/help.runner");
16
+ const help_runnerDev_1 = require("./mcp/tools/help.runnerDev");
17
+ const env_1 = require("./mcp/env");
18
+ // Create an MCP server
19
+ const server = new mcp_js_1.McpServer({
20
+ name: "runner_dev",
21
+ version: "1.0.0",
22
+ });
23
+ // Register tools
24
+ (0, graphql_query_1.registerGraphQLQuery)(server);
25
+ (0, help_read_1.registerHelpRead)(server);
26
+ (0, help_runner_1.registerHelpRunner)(server);
27
+ (0, help_runnerDev_1.registerHelpRunnerDev)(server);
28
+ (0, graphql_mutation_1.registerGraphQLMutation)(server);
29
+ (0, graphql_introspect_1.registerGraphQLIntrospect)(server);
30
+ (0, graphql_schemaSdl_1.registerGraphQLSchemaSDL)(server);
31
+ (0, graphql_ping_1.registerGraphQLPing)(server);
32
+ // High-level project overview for AIs in Markdown format (moved to mcp/projectOverview)
33
+ (0, projectOverview_1.registerProjectOverview)(server);
34
+ // Expose the schema as an MCP resource
35
+ server.registerResource("graphql_schema", new mcp_js_1.ResourceTemplate("graphql://schema", { list: undefined }), {
36
+ title: "GraphQL Schema (Introspection)",
37
+ description: "Introspection result of the configured GraphQL endpoint",
38
+ }, async (uri) => {
39
+ const introspectionQuery = (0, graphql_1.getIntrospectionQuery)();
40
+ const result = await (0, http_1.callGraphQL)({ query: introspectionQuery });
41
+ return {
42
+ contents: [
43
+ {
44
+ uri: uri.href,
45
+ text: JSON.stringify(result, null, 2),
46
+ },
47
+ ],
48
+ };
49
+ });
50
+ // Expose the SDL schema as an MCP resource
51
+ server.registerResource("graphql_schema_sdl", new mcp_js_1.ResourceTemplate("graphql://schema.sdl", { list: undefined }), {
52
+ title: "GraphQL Schema (SDL)",
53
+ description: "SDL string representation of the configured GraphQL endpoint",
54
+ }, async (uri) => {
55
+ const sdl = await (0, schema_1.fetchSchemaSDL)();
56
+ return {
57
+ contents: [
58
+ {
59
+ uri: uri.href,
60
+ text: sdl,
61
+ },
62
+ ],
63
+ };
64
+ });
65
+ // Start receiving messages on stdin and sending messages on stdout
66
+ const transport = new stdio_js_1.StdioServerTransport();
67
+ if (env_1.ENDPOINT) {
68
+ server.connect(transport).then(() => {
69
+ console.log(`Runner Dev MCP server started: ${env_1.ENDPOINT}`);
70
+ });
71
+ }
72
+ else {
73
+ console.error("Runner Dev MCP server: ENDPOINT is not set");
74
+ }
75
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":";;AAAA,oEAGiD;AACjD,wEAAiF;AACjF,qCAAgD;AAChD,qCAAyC;AACzC,yCAA8C;AAC9C,2DAAgE;AAChE,6DAAiE;AACjE,mEAAuE;AACvE,uEAA2E;AAC3E,qEAAyE;AACzE,2DAA+D;AAC/D,qDAAyD;AACzD,yDAA6D;AAC7D,+DAAmE;AACnE,mCAAqC;AAErC,uBAAuB;AACvB,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC;IAC3B,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,iBAAiB;AACjB,IAAA,oCAAoB,EAAC,MAAM,CAAC,CAAC;AAE7B,IAAA,4BAAgB,EAAC,MAAM,CAAC,CAAC;AAEzB,IAAA,gCAAkB,EAAC,MAAM,CAAC,CAAC;AAE3B,IAAA,sCAAqB,EAAC,MAAM,CAAC,CAAC;AAE9B,IAAA,0CAAuB,EAAC,MAAM,CAAC,CAAC;AAEhC,IAAA,8CAAyB,EAAC,MAAM,CAAC,CAAC;AAElC,IAAA,4CAAwB,EAAC,MAAM,CAAC,CAAC;AAEjC,IAAA,kCAAmB,EAAC,MAAM,CAAC,CAAC;AAE5B,wFAAwF;AACxF,IAAA,yCAAuB,EAAC,MAAM,CAAC,CAAC;AAEhC,uCAAuC;AACvC,MAAM,CAAC,gBAAgB,CACrB,gBAAgB,EAChB,IAAI,yBAAgB,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC7D;IACE,KAAK,EAAE,gCAAgC;IACvC,WAAW,EAAE,yDAAyD;CACvE,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;IACZ,MAAM,kBAAkB,GAAG,IAAA,+BAAqB,GAAE,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAW,EAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAChE,OAAO;QACL,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,GAAG,CAAC,IAAI;gBACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,2CAA2C;AAC3C,MAAM,CAAC,gBAAgB,CACrB,oBAAoB,EACpB,IAAI,yBAAgB,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EACjE;IACE,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EAAE,8DAA8D;CAC5E,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;IACZ,MAAM,GAAG,GAAG,MAAM,IAAA,uBAAc,GAAE,CAAC;IACnC,OAAO;QACL,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,GAAG,CAAC,IAAI;gBACb,IAAI,EAAE,GAAG;aACV;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,mEAAmE;AACnE,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;AAC7C,IAAI,cAAQ,EAAE,CAAC;IACb,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QAClC,OAAO,CAAC,GAAG,CAAC,kCAAkC,cAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,5 @@
1
+ export type DevConfig = {
2
+ port?: number;
3
+ maxEntries?: number;
4
+ };
5
+ export declare const dev: import("@bluelibs/runner/dist/defs").IResource<DevConfig, Promise<any>, {}, any, any, import("@bluelibs/runner/dist/defs").TagType[], import("@bluelibs/runner/dist/defs").ResourceMiddlewareAttachmentType[]>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dev = void 0;
4
+ const runner_1 = require("@bluelibs/runner");
5
+ const telemetry_resource_1 = require("./telemetry.resource");
6
+ const server_resource_1 = require("./server.resource");
7
+ const graphql_accumulator_resource_1 = require("./graphql-accumulator.resource");
8
+ const swap_resource_1 = require("./swap.resource");
9
+ const introspector_resource_1 = require("./introspector.resource");
10
+ const live_resource_1 = require("./live.resource");
11
+ exports.dev = (0, runner_1.resource)({
12
+ id: "runner-dev.resources.dev",
13
+ register: (config) => [
14
+ introspector_resource_1.introspector,
15
+ telemetry_resource_1.telemetry,
16
+ server_resource_1.serverResource.with({
17
+ port: config.port,
18
+ }),
19
+ graphql_accumulator_resource_1.graphql,
20
+ swap_resource_1.swapManager,
21
+ live_resource_1.live.with({
22
+ maxEntries: config.maxEntries,
23
+ }),
24
+ ],
25
+ });
26
+ //# sourceMappingURL=dev.resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.resource.js","sourceRoot":"","sources":["../../src/resources/dev.resource.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAC5C,6DAAiD;AACjD,uDAAmD;AACnD,iFAAyD;AACzD,mDAA8C;AAC9C,mEAAuD;AACvD,mDAAuC;AAO1B,QAAA,GAAG,GAAG,IAAA,iBAAQ,EAAC;IAC1B,EAAE,EAAE,0BAA0B;IAC9B,QAAQ,EAAE,CAAC,MAAiB,EAAE,EAAE,CAAC;QAC/B,oCAAY;QACZ,8BAAS;QACT,gCAAc,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC;QACF,sCAAO;QACP,2BAAW;QACX,oBAAI,CAAC,IAAI,CAAC;YACR,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC;KACH;CACF,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Introspector } from "./introspector.resource";
2
+ export declare class DocsGenerator {
3
+ private readonly introspector;
4
+ private readonly frameworkDocs;
5
+ constructor(introspector: Introspector, frameworkDocs: string);
6
+ generateMarkdown(): string;
7
+ private generateResourcesSection;
8
+ private generateTasksSection;
9
+ private generateEventsSection;
10
+ private generateHooksSection;
11
+ private generateMiddlewaresSection;
12
+ }
13
+ export declare const docsGenerator: import("@bluelibs/runner/dist/defs").IResource<void, Promise<DocsGenerator>, {
14
+ introspector: import("@bluelibs/runner/dist/defs").IResource<void, Promise<Introspector>, {
15
+ store: import("@bluelibs/runner/dist/defs").IResource<void, Promise<import("@bluelibs/runner").Store>, {}, any, any, import("@bluelibs/runner/dist/defs").TagType[], import("@bluelibs/runner/dist/defs").ResourceMiddlewareAttachmentType[]>;
16
+ }, any, any, import("@bluelibs/runner/dist/defs").TagType[], import("@bluelibs/runner/dist/defs").ResourceMiddlewareAttachmentType[]>;
17
+ }, any, any, import("@bluelibs/runner/dist/defs").TagType[], import("@bluelibs/runner/dist/defs").ResourceMiddlewareAttachmentType[]>;
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.docsGenerator = exports.DocsGenerator = void 0;
27
+ const runner_1 = require("@bluelibs/runner");
28
+ const introspector_resource_1 = require("./introspector.resource");
29
+ const fs = __importStar(require("fs"));
30
+ const path = __importStar(require("path"));
31
+ const TOC = `
32
+ ## Table of Contents
33
+ - [Resources](#resources)
34
+ - [Tasks](#tasks)
35
+ - [Events](#events)
36
+ - [Hooks](#hooks)
37
+ - [Middlewares](#middlewares)
38
+ `;
39
+ function mdAnchor(text, type) {
40
+ const anchor = `${type.toLowerCase()}-${text.replace(/[.]/g, "")}`;
41
+ return `[${text}](#${anchor})`;
42
+ }
43
+ function mdSection(text, type) {
44
+ const anchor = `${type.toLowerCase()}-${text.replace(/[.]/g, "")}`;
45
+ return `<a name="${anchor}"></a>\n###
46
+ ${text}
47
+
48
+ `;
49
+ }
50
+ function mdFile(filePath) {
51
+ return filePath
52
+ ? `*Source:
53
+ ${filePath}
54
+ *`
55
+ : "";
56
+ }
57
+ function mdMeta(meta) {
58
+ return meta?.description ? `\n\n> ${meta.description}` : "";
59
+ }
60
+ function mdList(items, type) {
61
+ if (!items.length)
62
+ return "";
63
+ return items.map((item) => `- ${mdAnchor(item, type)}`).join("\n");
64
+ }
65
+ function mdSchema(schemaName, schema) {
66
+ if (!schema)
67
+ return "";
68
+ return `
69
+ **${schemaName}:**
70
+ \`\`\`typescript
71
+ ${schema}
72
+ \`\`\`
73
+ `;
74
+ }
75
+ class DocsGenerator {
76
+ introspector;
77
+ frameworkDocs;
78
+ constructor(introspector, frameworkDocs) {
79
+ this.introspector = introspector;
80
+ this.frameworkDocs = frameworkDocs;
81
+ }
82
+ generateMarkdown() {
83
+ const parts = [
84
+ this.frameworkDocs,
85
+ "# On-the-Fly Application Documentation",
86
+ "This document is generated live from the running application's introspection data. All IDs are linked for easy navigation.",
87
+ TOC,
88
+ this.generateResourcesSection(),
89
+ this.generateTasksSection(),
90
+ this.generateEventsSection(),
91
+ this.generateHooksSection(),
92
+ this.generateMiddlewaresSection(),
93
+ ];
94
+ return parts.join("\n\n---\n\n");
95
+ }
96
+ generateResourcesSection() {
97
+ const resources = this.introspector.getResources();
98
+ const parts = ["## Resources"];
99
+ for (const r of resources) {
100
+ parts.push(`
101
+
102
+ ${mdSection(r.id, "resource")}
103
+ ${mdFile(r.filePath)}
104
+ ${mdMeta(r.meta)}
105
+
106
+ **Depends On:**
107
+ ${mdList(r.dependsOn, "resource")}
108
+
109
+ **Registers:**
110
+ ${mdList(r.registers, "any")}
111
+
112
+ **Overrides:**
113
+ ${mdList(r.overrides, "any")}
114
+
115
+ **Middleware:**
116
+ ${mdList(r.middleware, "middleware")}
117
+
118
+ ${mdSchema("Config Schema", r.configSchema)}
119
+ `);
120
+ }
121
+ return parts.join("\n\n");
122
+ }
123
+ generateTasksSection() {
124
+ const tasks = this.introspector.getTasks();
125
+ const parts = ["## Tasks"];
126
+ for (const t of tasks) {
127
+ parts.push(`
128
+
129
+ ${mdSection(t.id, "task")}
130
+ ${mdFile(t.filePath)}
131
+ ${mdMeta(t.meta)}
132
+
133
+ **Depends On:**
134
+ ${mdList(t.dependsOn, "resource")}
135
+
136
+ **Emits:**
137
+ ${mdList(t.emits, "event")}
138
+
139
+ **Middleware:**
140
+ ${mdList(t.middleware, "middleware")}
141
+
142
+ ${mdSchema("Input Schema", t.inputSchema)}
143
+ `);
144
+ }
145
+ return parts.join("\n\n");
146
+ }
147
+ generateEventsSection() {
148
+ const events = this.introspector.getEvents();
149
+ const parts = ["## Events"];
150
+ for (const e of events) {
151
+ const emitters = this.introspector
152
+ .getEmittersOfEvent(e.id)
153
+ .map((em) => em.id);
154
+ parts.push(`
155
+
156
+ ${mdSection(e.id, "event")}
157
+ ${mdFile(e.filePath)}
158
+ ${mdMeta(e.meta)}
159
+
160
+ **Emitted By:**
161
+ ${mdList(emitters, "any")}
162
+
163
+ **Listened To By:**
164
+ ${mdList(e.listenedToBy, "hook")}
165
+
166
+ ${mdSchema("Payload Schema", e.payloadSchema)}
167
+ `);
168
+ }
169
+ return parts.join("\n\n");
170
+ }
171
+ generateHooksSection() {
172
+ const hooks = this.introspector.getHooks();
173
+ const parts = ["## Hooks"];
174
+ for (const h of hooks) {
175
+ parts.push(`
176
+
177
+ ${mdSection(h.id, "hook")}
178
+ ${mdFile(h.filePath)}
179
+ ${mdMeta(h.meta)}
180
+
181
+ **Listens to Event:**
182
+ ${mdAnchor(h.event, "event")}
183
+
184
+ **Hook Order:** ${h.hookOrder ?? "default"}
185
+
186
+ **Depends On:**
187
+ ${mdList(h.dependsOn, "resource")}
188
+
189
+ **Emits:**
190
+ ${mdList(h.emits, "event")}
191
+ `);
192
+ }
193
+ return parts.join("\n\n");
194
+ }
195
+ generateMiddlewaresSection() {
196
+ const middlewares = this.introspector.getMiddlewares();
197
+ const parts = ["## Middlewares"];
198
+ for (const m of middlewares) {
199
+ const usedBy = this.introspector.getTasksUsingMiddlewareDetailed(m.id);
200
+ parts.push(`
201
+
202
+ ${mdSection(m.id, "middleware")}
203
+ ${mdFile(m.filePath)}
204
+ ${mdMeta(m.meta)}
205
+
206
+ **Used By Tasks:**
207
+ ${mdList(usedBy.map((u) => u.id), "task")}
208
+
209
+ ${mdSchema("Config Schema", m.configSchema)}
210
+ `);
211
+ }
212
+ return parts.join("\n\n");
213
+ }
214
+ }
215
+ exports.DocsGenerator = DocsGenerator;
216
+ exports.docsGenerator = (0, runner_1.resource)({
217
+ id: "runner-dev.resources.docs-generator",
218
+ dependencies: {
219
+ introspector: introspector_resource_1.introspector,
220
+ },
221
+ async init(_, { introspector }) {
222
+ const mdcPath = path.join(process.cwd(), ".cursor", "rules", "runner.mdc");
223
+ const frameworkDocsWithFrontmatter = fs.readFileSync(mdcPath, "utf-8");
224
+ const frameworkDocs = frameworkDocsWithFrontmatter
225
+ .replace(/---[\s\S]*?---/, "")
226
+ .trim();
227
+ return new DocsGenerator(introspector, frameworkDocs);
228
+ },
229
+ });
230
+ //# sourceMappingURL=docs.generator.resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.generator.resource.js","sourceRoot":"","sources":["../../src/resources/docs.generator.resource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { GraphQLSchema } from "graphql";
2
+ export declare const graphqlAccumulator: import("@bluelibs/runner/dist/defs").IResource<void, Promise<{
3
+ getSchema: () => GraphQLSchema;
4
+ }>, {}, any, any, import("@bluelibs/runner/dist/defs").TagType[], import("@bluelibs/runner/dist/defs").ResourceMiddlewareAttachmentType[]>;
5
+ export declare const graphql: import("@bluelibs/runner/dist/defs").IResource<void, Promise<{
6
+ getSchema: () => GraphQLSchema;
7
+ }>, {}, any, any, import("@bluelibs/runner/dist/defs").TagType[], import("@bluelibs/runner/dist/defs").ResourceMiddlewareAttachmentType[]>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.graphql = exports.graphqlAccumulator = void 0;
4
+ const runner_1 = require("@bluelibs/runner");
5
+ const graphql_1 = require("graphql");
6
+ const query_1 = require("../schema/query");
7
+ const mutation_1 = require("../schema/mutation");
8
+ const types_1 = require("../schema/types");
9
+ exports.graphqlAccumulator = (0, runner_1.resource)({
10
+ id: "runner-dev.resources.graphql",
11
+ async init(_config) {
12
+ const getSchema = () => {
13
+ const query = new graphql_1.GraphQLObjectType(query_1.QueryType.toConfig());
14
+ const mutation = new graphql_1.GraphQLObjectType(mutation_1.MutationType.toConfig());
15
+ const baseTypes = [
16
+ types_1.AllType,
17
+ types_1.BaseElementInterface,
18
+ types_1.EventType,
19
+ types_1.HookType,
20
+ types_1.MiddlewareGlobalType,
21
+ types_1.MiddlewareType,
22
+ types_1.MetaType,
23
+ types_1.ResourceType,
24
+ types_1.TaskType,
25
+ types_1.LiveType,
26
+ types_1.DiagnosticType,
27
+ types_1.SwapResultType,
28
+ types_1.SwappedTaskType,
29
+ ];
30
+ return new graphql_1.GraphQLSchema({
31
+ query,
32
+ mutation,
33
+ types: [...baseTypes],
34
+ });
35
+ };
36
+ return { getSchema };
37
+ },
38
+ });
39
+ // Backward-compatible named export to keep `resources.graphql`
40
+ exports.graphql = exports.graphqlAccumulator;
41
+ //# sourceMappingURL=graphql-accumulator.resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-accumulator.resource.js","sourceRoot":"","sources":["../../src/resources/graphql-accumulator.resource.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAC5C,qCAA2D;AAC3D,2CAA4C;AAC5C,iDAAkD;AAClD,2CAcyB;AAEZ,QAAA,kBAAkB,GAAG,IAAA,iBAAQ,EAAC;IACzC,EAAE,EAAE,8BAA8B;IAClC,KAAK,CAAC,IAAI,CAAC,OAAO;QAChB,MAAM,SAAS,GAAG,GAAkB,EAAE;YACpC,MAAM,KAAK,GAAG,IAAI,2BAAiB,CAAC,iBAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,IAAI,2BAAiB,CAAC,uBAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEhE,MAAM,SAAS,GAAG;gBAChB,eAAO;gBACP,4BAAoB;gBACpB,iBAAS;gBACT,gBAAQ;gBACR,4BAAoB;gBACpB,sBAAc;gBACd,gBAAQ;gBACR,oBAAY;gBACZ,gBAAQ;gBACR,gBAAQ;gBACR,sBAAc;gBACd,sBAAc;gBACd,uBAAe;aAChB,CAAC;YAEF,OAAO,IAAI,uBAAa,CAAC;gBACvB,KAAK;gBACL,QAAQ;gBACR,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC;aACtB,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC;CACF,CAAC,CAAC;AAEH,+DAA+D;AAClD,QAAA,OAAO,GAAG,0BAAkB,CAAC"}
@@ -0,0 +1,129 @@
1
+ import type { Event, Hook, Middleware, Resource, Task, Tag } from "../schema/model";
2
+ export interface Introspector {
3
+ getRoot(): Resource;
4
+ getEvents(): Event[];
5
+ getTasks(): Task[];
6
+ getHooks(): Hook[];
7
+ getMiddlewares(): Middleware[];
8
+ getTaskMiddlewares(): Middleware[];
9
+ getResourceMiddlewares(): Middleware[];
10
+ getResources(): Resource[];
11
+ getEvent(id: string): Event | null;
12
+ getTask(id: string): Task | null;
13
+ getHook(id: string): Hook | null;
14
+ getMiddleware(id: string): Middleware | null;
15
+ getResource(id: string): Resource | null;
16
+ getDependencies(node: Task | Hook): {
17
+ tasks: Task[];
18
+ hooks: Hook[];
19
+ resources: Resource[];
20
+ emitters: Event[];
21
+ };
22
+ getEmittedEvents(node: Task | Hook): Event[];
23
+ getMiddlewaresByIds(ids: string[]): Middleware[];
24
+ getResourcesByIds(ids: string[]): Resource[];
25
+ getTasksByIds(ids: string[]): Task[];
26
+ getHooksByIds(ids: string[]): Hook[];
27
+ getEventsByIds(ids: string[]): Event[];
28
+ getTasksUsingResource(resourceId: string): (Task | Hook)[];
29
+ getTasksUsingMiddleware(middlewareId: string): (Task | Hook)[];
30
+ getTaskLikesUsingMiddleware?(middlewareId: string): (Task | Hook)[];
31
+ getEmittersOfEvent(eventId: string): (Task | Hook | Resource)[];
32
+ getHooksOfEvent(eventId: string): Hook[];
33
+ getMiddlewareEmittedEvents(middlewareId: string): Event[];
34
+ getMiddlewareUsagesForTask(taskLikeId: string): Array<{
35
+ id: string;
36
+ config: string | null;
37
+ node: Middleware;
38
+ }>;
39
+ getMiddlewareUsagesForResource(resourceId: string): Array<{
40
+ id: string;
41
+ config: string | null;
42
+ node: Middleware;
43
+ }>;
44
+ getTasksUsingMiddlewareDetailed(middlewareId: string): Array<{
45
+ id: string;
46
+ config: string | null;
47
+ node: Task | Hook;
48
+ }>;
49
+ getResourcesUsingMiddlewareDetailed(middlewareId: string): Array<{
50
+ id: string;
51
+ config: string | null;
52
+ node: Resource;
53
+ }>;
54
+ getEmittedEventsForResource(resourceId: string): Event[];
55
+ getTasksWithTag(tagId: string): Task[];
56
+ getHooksWithTag(tagId: string): Hook[];
57
+ getResourcesWithTag(tagId: string): Resource[];
58
+ getMiddlewaresWithTag(tagId: string): Middleware[];
59
+ getEventsWithTag(tagId: string): Event[];
60
+ getAllTags(): Tag[];
61
+ getTag(id: string): Tag | null;
62
+ getOrphanEvents(): {
63
+ id: string;
64
+ }[];
65
+ getUnemittedEvents(): {
66
+ id: string;
67
+ }[];
68
+ getUnusedMiddleware(): {
69
+ id: string;
70
+ }[];
71
+ getMissingFiles(): Array<{
72
+ id: string;
73
+ filePath: string;
74
+ }>;
75
+ getOverrideConflicts(): Array<{
76
+ targetId: string;
77
+ by: string;
78
+ }>;
79
+ getDiagnostics(): Array<{
80
+ severity: string;
81
+ code: string;
82
+ message: string;
83
+ nodeId?: string;
84
+ nodeKind?: string;
85
+ }>;
86
+ buildRunOptionsForTask(taskId: string, args?: {
87
+ afterTimestamp?: number;
88
+ last?: number;
89
+ filter?: {
90
+ nodeKinds?: ("TASK" | "HOOK")[];
91
+ ok?: boolean;
92
+ parentIds?: string[];
93
+ rootIds?: string[];
94
+ correlationIds?: string[];
95
+ } | null;
96
+ }): {
97
+ afterTimestamp?: number;
98
+ last?: number;
99
+ nodeKinds?: ("TASK" | "HOOK")[];
100
+ nodeIds?: string[];
101
+ ok?: boolean;
102
+ parentIds?: string[];
103
+ rootIds?: string[];
104
+ correlationIds?: string[];
105
+ };
106
+ buildRunOptionsForHook(hookId: string, args?: {
107
+ afterTimestamp?: number;
108
+ last?: number;
109
+ filter?: {
110
+ nodeKinds?: ("TASK" | "HOOK")[];
111
+ ok?: boolean;
112
+ parentIds?: string[];
113
+ rootIds?: string[];
114
+ correlationIds?: string[];
115
+ } | null;
116
+ }): {
117
+ afterTimestamp?: number;
118
+ last?: number;
119
+ nodeKinds?: ("TASK" | "HOOK")[];
120
+ nodeIds?: string[];
121
+ ok?: boolean;
122
+ parentIds?: string[];
123
+ rootIds?: string[];
124
+ correlationIds?: string[];
125
+ };
126
+ }
127
+ export declare const introspector: import("@bluelibs/runner/dist/defs").IResource<void, Promise<Introspector>, {
128
+ store: import("@bluelibs/runner/dist/defs").IResource<void, Promise<import("@bluelibs/runner").Store>, {}, any, any, import("@bluelibs/runner/dist/defs").TagType[], import("@bluelibs/runner/dist/defs").ResourceMiddlewareAttachmentType[]>;
129
+ }, any, any, import("@bluelibs/runner/dist/defs").TagType[], import("@bluelibs/runner/dist/defs").ResourceMiddlewareAttachmentType[]>;