@bluelibs/runner-dev 6.1.0 → 6.3.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 (343) hide show
  1. package/README.md +143 -14
  2. package/dist/cli/generators/initUtils.js +1 -1
  3. package/dist/cli/generators/initUtils.js.map +1 -1
  4. package/dist/cli/generators/scaffold/templates/README.md.js +21 -5
  5. package/dist/cli/generators/scaffold/templates/README.md.js.map +1 -1
  6. package/dist/cli/generators/scaffold/templates/index.d.ts +2 -3
  7. package/dist/cli/generators/scaffold/templates/index.js +5 -7
  8. package/dist/cli/generators/scaffold/templates/index.js.map +1 -1
  9. package/dist/cli/generators/scaffold/templates/package.json.d.ts +11 -8
  10. package/dist/cli/generators/scaffold/templates/package.json.js +11 -8
  11. package/dist/cli/generators/scaffold/templates/package.json.js.map +1 -1
  12. package/dist/cli/generators/scaffold/templates/src/app.test.ts.d.ts +1 -0
  13. package/dist/cli/generators/scaffold/templates/src/app.test.ts.js +29 -0
  14. package/dist/cli/generators/scaffold/templates/src/app.test.ts.js.map +1 -0
  15. package/dist/cli/generators/scaffold/templates/src/app.ts.d.ts +1 -0
  16. package/dist/cli/generators/scaffold/templates/src/app.ts.js +15 -0
  17. package/dist/cli/generators/scaffold/templates/src/app.ts.js.map +1 -0
  18. package/dist/cli/generators/scaffold/templates/src/main.test.ts.js +3 -1
  19. package/dist/cli/generators/scaffold/templates/src/main.test.ts.js.map +1 -1
  20. package/dist/cli/generators/scaffold/templates/src/main.ts.js +3 -10
  21. package/dist/cli/generators/scaffold/templates/src/main.ts.js.map +1 -1
  22. package/dist/cli/generators/scaffold/templates/tsconfig.json.d.ts +2 -0
  23. package/dist/cli/generators/scaffold/templates/tsconfig.json.js +2 -0
  24. package/dist/cli/generators/scaffold/templates/tsconfig.json.js.map +1 -1
  25. package/dist/cli/generators/scaffold.js +2 -3
  26. package/dist/cli/generators/scaffold.js.map +1 -1
  27. package/dist/cli/init.js +1 -2
  28. package/dist/cli/init.js.map +1 -1
  29. package/dist/docs/packageDocs.d.ts +16 -0
  30. package/dist/docs/packageDocs.js +107 -0
  31. package/dist/docs/packageDocs.js.map +1 -0
  32. package/dist/exportDocs.d.ts +10 -0
  33. package/dist/exportDocs.js +98 -0
  34. package/dist/exportDocs.js.map +1 -0
  35. package/dist/generated/resolvers-types.d.ts +127 -42
  36. package/dist/index.d.ts +5 -2
  37. package/dist/index.js +3 -1
  38. package/dist/index.js.map +1 -1
  39. package/dist/mcp/env.d.ts +5 -0
  40. package/dist/mcp/env.js +30 -1
  41. package/dist/mcp/env.js.map +1 -1
  42. package/dist/mcp/help.d.ts +8 -1
  43. package/dist/mcp/help.js +30 -4
  44. package/dist/mcp/help.js.map +1 -1
  45. package/dist/mcp/http.js +10 -0
  46. package/dist/mcp/http.js.map +1 -1
  47. package/dist/mcp/projectOverview.js +13 -4
  48. package/dist/mcp/projectOverview.js.map +1 -1
  49. package/dist/mcp/snapshot.d.ts +22 -0
  50. package/dist/mcp/snapshot.js +347 -0
  51. package/dist/mcp/snapshot.js.map +1 -0
  52. package/dist/mcp/tools/graphql.mutation.js +4 -1
  53. package/dist/mcp/tools/graphql.mutation.js.map +1 -1
  54. package/dist/mcp/tools/graphql.ping.js +1 -1
  55. package/dist/mcp/tools/graphql.ping.js.map +1 -1
  56. package/dist/mcp/tools/graphql.query.js +1 -1
  57. package/dist/mcp/tools/graphql.query.js.map +1 -1
  58. package/dist/mcp/tools/help.read.js +7 -5
  59. package/dist/mcp/tools/help.read.js.map +1 -1
  60. package/dist/mcp/tools/help.runner.js +3 -1
  61. package/dist/mcp/tools/help.runner.js.map +1 -1
  62. package/dist/mcp/tools/help.runnerDev.js +4 -4
  63. package/dist/mcp/tools/help.runnerDev.js.map +1 -1
  64. package/dist/mcp.js +4 -9
  65. package/dist/mcp.js.map +1 -1
  66. package/dist/resources/cli.config.resource.js +1 -1
  67. package/dist/resources/cli.config.resource.js.map +1 -1
  68. package/dist/resources/coverage.resource.js +1 -1
  69. package/dist/resources/coverage.resource.js.map +1 -1
  70. package/dist/resources/dev.resource.d.ts +1 -1
  71. package/dist/resources/dev.resource.js +1 -1
  72. package/dist/resources/dev.resource.js.map +1 -1
  73. package/dist/resources/docs.generator.resource.js +1 -1
  74. package/dist/resources/docs.generator.resource.js.map +1 -1
  75. package/dist/resources/docsPayload.d.ts +33 -0
  76. package/dist/resources/docsPayload.js +171 -0
  77. package/dist/resources/docsPayload.js.map +1 -0
  78. package/dist/resources/docsUiAssets.d.ts +27 -0
  79. package/dist/resources/docsUiAssets.js +150 -0
  80. package/dist/resources/docsUiAssets.js.map +1 -0
  81. package/dist/resources/graphql-accumulator.resource.d.ts +1 -0
  82. package/dist/resources/graphql-accumulator.resource.js +31 -27
  83. package/dist/resources/graphql-accumulator.resource.js.map +1 -1
  84. package/dist/resources/graphql.cli.resource.js +1 -1
  85. package/dist/resources/graphql.cli.resource.js.map +1 -1
  86. package/dist/resources/graphql.query.cli.task.d.ts +2 -4
  87. package/dist/resources/graphql.query.cli.task.js +1 -1
  88. package/dist/resources/graphql.query.cli.task.js.map +1 -1
  89. package/dist/resources/graphql.query.task.d.ts +2 -4
  90. package/dist/resources/graphql.query.task.js +1 -1
  91. package/dist/resources/graphql.query.task.js.map +1 -1
  92. package/dist/resources/http.tag.js +1 -1
  93. package/dist/resources/http.tag.js.map +1 -1
  94. package/dist/resources/introspector.cli.resource.js +1 -1
  95. package/dist/resources/introspector.cli.resource.js.map +1 -1
  96. package/dist/resources/introspector.resource.js +1 -1
  97. package/dist/resources/introspector.resource.js.map +1 -1
  98. package/dist/resources/live.resource.js +4 -4
  99. package/dist/resources/live.resource.js.map +1 -1
  100. package/dist/resources/models/Introspector.d.ts +16 -4
  101. package/dist/resources/models/Introspector.js +68 -39
  102. package/dist/resources/models/Introspector.js.map +1 -1
  103. package/dist/resources/models/durable.tools.js +3 -1
  104. package/dist/resources/models/durable.tools.js.map +1 -1
  105. package/dist/resources/models/initializeFromStore.js +5 -5
  106. package/dist/resources/models/initializeFromStore.js.map +1 -1
  107. package/dist/resources/models/initializeFromStore.utils.d.ts +2 -2
  108. package/dist/resources/models/initializeFromStore.utils.js +424 -78
  109. package/dist/resources/models/initializeFromStore.utils.js.map +1 -1
  110. package/dist/resources/models/introspector.tools.js +103 -19
  111. package/dist/resources/models/introspector.tools.js.map +1 -1
  112. package/dist/resources/routeHandlers/createDocsServeHandler.js +13 -37
  113. package/dist/resources/routeHandlers/createDocsServeHandler.js.map +1 -1
  114. package/dist/resources/routeHandlers/getDocsData.d.ts +1 -6
  115. package/dist/resources/routeHandlers/getDocsData.js +10 -168
  116. package/dist/resources/routeHandlers/getDocsData.js.map +1 -1
  117. package/dist/resources/routeHandlers/registerHttpRoutes.hook.js +1 -1
  118. package/dist/resources/routeHandlers/registerHttpRoutes.hook.js.map +1 -1
  119. package/dist/resources/server.resource.js +1 -2
  120. package/dist/resources/server.resource.js.map +1 -1
  121. package/dist/resources/swap.cli.resource.js +1 -1
  122. package/dist/resources/swap.cli.resource.js.map +1 -1
  123. package/dist/resources/swap.resource.js +1 -1
  124. package/dist/resources/swap.resource.js.map +1 -1
  125. package/dist/resources/telemetry.resource.js +27 -6
  126. package/dist/resources/telemetry.resource.js.map +1 -1
  127. package/dist/resources/ui.static.js +4 -9
  128. package/dist/resources/ui.static.js.map +1 -1
  129. package/dist/runtime/symbolMetadata.d.ts +1 -0
  130. package/dist/{architect/core/interfaces.js → runtime/symbolMetadata.js} +1 -1
  131. package/dist/runtime/symbolMetadata.js.map +1 -0
  132. package/dist/schema/model.d.ts +18 -0
  133. package/dist/schema/model.js +14 -0
  134. package/dist/schema/model.js.map +1 -1
  135. package/dist/schema/query.js +6 -4
  136. package/dist/schema/query.js.map +1 -1
  137. package/dist/schema/types/AllType.js +2 -21
  138. package/dist/schema/types/AllType.js.map +1 -1
  139. package/dist/schema/types/AsyncContextType.js +21 -17
  140. package/dist/schema/types/AsyncContextType.js.map +1 -1
  141. package/dist/schema/types/ErrorType.js +1 -3
  142. package/dist/schema/types/ErrorType.js.map +1 -1
  143. package/dist/schema/types/EventType.js +6 -19
  144. package/dist/schema/types/EventType.js.map +1 -1
  145. package/dist/schema/types/HookType.js +4 -16
  146. package/dist/schema/types/HookType.js.map +1 -1
  147. package/dist/schema/types/ResourceType.js +50 -23
  148. package/dist/schema/types/ResourceType.js.map +1 -1
  149. package/dist/schema/types/TaskLikeCommon.js +2 -2
  150. package/dist/schema/types/TaskLikeCommon.js.map +1 -1
  151. package/dist/schema/types/TaskType.js +6 -19
  152. package/dist/schema/types/TaskType.js.map +1 -1
  153. package/dist/schema/types/middleware/UsageTypes.d.ts +1 -0
  154. package/dist/schema/types/middleware/UsageTypes.js +16 -5
  155. package/dist/schema/types/middleware/UsageTypes.js.map +1 -1
  156. package/dist/schema/types/middleware/common.js +2 -2
  157. package/dist/schema/types/middleware/common.js.map +1 -1
  158. package/dist/ui/.vite/manifest.json +2 -2
  159. package/dist/ui/assets/docs-Beb_xRuE.js +304 -0
  160. package/dist/ui/assets/docs-Beb_xRuE.js.map +1 -0
  161. package/dist/ui/assets/docs-lid1amCk.css +1 -0
  162. package/dist/ui/docs/favicon.ico +0 -0
  163. package/dist/utils/lane-resources.d.ts +69 -0
  164. package/dist/utils/lane-resources.js +154 -1
  165. package/dist/utils/lane-resources.js.map +1 -1
  166. package/dist/utils/runner-namespace.d.ts +1 -0
  167. package/dist/utils/runner-namespace.js +9 -0
  168. package/dist/utils/runner-namespace.js.map +1 -0
  169. package/dist/utils/schemaFormat.d.ts +6 -0
  170. package/dist/utils/schemaFormat.js +244 -0
  171. package/dist/utils/schemaFormat.js.map +1 -0
  172. package/dist/utils/system-namespace.d.ts +1 -0
  173. package/dist/utils/system-namespace.js +9 -0
  174. package/dist/utils/system-namespace.js.map +1 -0
  175. package/dist/version.d.ts +1 -1
  176. package/dist/version.js +1 -1
  177. package/package.json +29 -11
  178. package/readmes/API_REFERENCE.md +364 -0
  179. package/readmes/COMPACT_GUIDE.md +254 -0
  180. package/skills/core/SKILL.md +27 -0
  181. package/skills/core/references/readmes/API_REFERENCE.md +364 -0
  182. package/skills/core/references/readmes/COMPACT_GUIDE.md +254 -0
  183. package/AI.md +0 -622
  184. package/dist/app/tasks/create-user.task.d.ts +0 -5
  185. package/dist/app/tasks/create-user.task.js +0 -20
  186. package/dist/app/tasks/create-user.task.js.map +0 -1
  187. package/dist/app/tasks/index.d.ts +0 -1
  188. package/dist/app/tasks/index.js +0 -18
  189. package/dist/app/tasks/index.js.map +0 -1
  190. package/dist/architect/core/errors.d.ts +0 -39
  191. package/dist/architect/core/errors.js +0 -143
  192. package/dist/architect/core/errors.js.map +0 -1
  193. package/dist/architect/core/index.d.ts +0 -3
  194. package/dist/architect/core/index.js +0 -21
  195. package/dist/architect/core/index.js.map +0 -1
  196. package/dist/architect/core/interfaces.d.ts +0 -158
  197. package/dist/architect/core/interfaces.js.map +0 -1
  198. package/dist/architect/core/types.d.ts +0 -544
  199. package/dist/architect/core/types.js +0 -49
  200. package/dist/architect/core/types.js.map +0 -1
  201. package/dist/architect/execution/executor.d.ts +0 -23
  202. package/dist/architect/execution/executor.js +0 -476
  203. package/dist/architect/execution/executor.js.map +0 -1
  204. package/dist/architect/execution/index.d.ts +0 -1
  205. package/dist/architect/execution/index.js +0 -19
  206. package/dist/architect/execution/index.js.map +0 -1
  207. package/dist/architect/executor.d.ts +0 -7
  208. package/dist/architect/executor.js +0 -150
  209. package/dist/architect/executor.js.map +0 -1
  210. package/dist/architect/index.d.ts +0 -45
  211. package/dist/architect/index.js +0 -76
  212. package/dist/architect/index.js.map +0 -1
  213. package/dist/architect/llmClient.d.ts +0 -10
  214. package/dist/architect/llmClient.js +0 -33
  215. package/dist/architect/llmClient.js.map +0 -1
  216. package/dist/architect/models/base.d.ts +0 -16
  217. package/dist/architect/models/base.js +0 -68
  218. package/dist/architect/models/base.js.map +0 -1
  219. package/dist/architect/models/factory.d.ts +0 -16
  220. package/dist/architect/models/factory.js +0 -73
  221. package/dist/architect/models/factory.js.map +0 -1
  222. package/dist/architect/models/index.d.ts +0 -3
  223. package/dist/architect/models/index.js +0 -21
  224. package/dist/architect/models/index.js.map +0 -1
  225. package/dist/architect/models/openai.d.ts +0 -7
  226. package/dist/architect/models/openai.js +0 -71
  227. package/dist/architect/models/openai.js.map +0 -1
  228. package/dist/architect/planner.d.ts +0 -9
  229. package/dist/architect/planner.js +0 -42
  230. package/dist/architect/planner.js.map +0 -1
  231. package/dist/architect/planning/index.d.ts +0 -4
  232. package/dist/architect/planning/index.js +0 -22
  233. package/dist/architect/planning/index.js.map +0 -1
  234. package/dist/architect/planning/optimizer.d.ts +0 -14
  235. package/dist/architect/planning/optimizer.js +0 -275
  236. package/dist/architect/planning/optimizer.js.map +0 -1
  237. package/dist/architect/planning/planner.d.ts +0 -15
  238. package/dist/architect/planning/planner.js +0 -124
  239. package/dist/architect/planning/planner.js.map +0 -1
  240. package/dist/architect/planning/prompts.d.ts +0 -6
  241. package/dist/architect/planning/prompts.js +0 -111
  242. package/dist/architect/planning/prompts.js.map +0 -1
  243. package/dist/architect/planning/validator.d.ts +0 -16
  244. package/dist/architect/planning/validator.js +0 -331
  245. package/dist/architect/planning/validator.js.map +0 -1
  246. package/dist/architect/prompt.d.ts +0 -1
  247. package/dist/architect/prompt.js +0 -13
  248. package/dist/architect/prompt.js.map +0 -1
  249. package/dist/architect/types.d.ts +0 -4
  250. package/dist/architect/types.js +0 -24
  251. package/dist/architect/types.js.map +0 -1
  252. package/dist/cli/generators/scaffold/templates/jest.config.cjs.d.ts +0 -1
  253. package/dist/cli/generators/scaffold/templates/jest.config.cjs.js +0 -24
  254. package/dist/cli/generators/scaffold/templates/jest.config.cjs.js.map +0 -1
  255. package/dist/cli/generators/scaffold/templates/tsconfig.jest.json.d.ts +0 -11
  256. package/dist/cli/generators/scaffold/templates/tsconfig.jest.json.js +0 -17
  257. package/dist/cli/generators/scaffold/templates/tsconfig.jest.json.js.map +0 -1
  258. package/dist/client/documentation.d.ts +0 -8
  259. package/dist/client/documentation.js +0 -144
  260. package/dist/client/documentation.js.map +0 -1
  261. package/dist/components/Documentation/Documentation.d.ts +0 -8
  262. package/dist/components/Documentation/Documentation.js +0 -283
  263. package/dist/components/Documentation/Documentation.js.map +0 -1
  264. package/dist/components/Documentation/components/DiagnosticsPanel.d.ts +0 -7
  265. package/dist/components/Documentation/components/DiagnosticsPanel.js +0 -189
  266. package/dist/components/Documentation/components/DiagnosticsPanel.js.map +0 -1
  267. package/dist/components/Documentation/components/EventCard.d.ts +0 -8
  268. package/dist/components/Documentation/components/EventCard.js +0 -290
  269. package/dist/components/Documentation/components/EventCard.js.map +0 -1
  270. package/dist/components/Documentation/components/HookCard.d.ts +0 -8
  271. package/dist/components/Documentation/components/HookCard.js +0 -282
  272. package/dist/components/Documentation/components/HookCard.js.map +0 -1
  273. package/dist/components/Documentation/components/MiddlewareCard.d.ts +0 -8
  274. package/dist/components/Documentation/components/MiddlewareCard.js +0 -314
  275. package/dist/components/Documentation/components/MiddlewareCard.js.map +0 -1
  276. package/dist/components/Documentation/components/ResourceCard.d.ts +0 -8
  277. package/dist/components/Documentation/components/ResourceCard.js +0 -228
  278. package/dist/components/Documentation/components/ResourceCard.js.map +0 -1
  279. package/dist/components/Documentation/components/Sidebar.d.ts +0 -13
  280. package/dist/components/Documentation/components/Sidebar.js +0 -165
  281. package/dist/components/Documentation/components/Sidebar.js.map +0 -1
  282. package/dist/components/Documentation/components/TagCard.d.ts +0 -7
  283. package/dist/components/Documentation/components/TagCard.js +0 -75
  284. package/dist/components/Documentation/components/TagCard.js.map +0 -1
  285. package/dist/components/Documentation/components/TaskCard.d.ts +0 -8
  286. package/dist/components/Documentation/components/TaskCard.js +0 -196
  287. package/dist/components/Documentation/components/TaskCard.js.map +0 -1
  288. package/dist/components/Documentation/index.d.ts +0 -2
  289. package/dist/components/Documentation/index.js +0 -6
  290. package/dist/components/Documentation/index.js.map +0 -1
  291. package/dist/components/Documentation/utils/formatting.d.ts +0 -8
  292. package/dist/components/Documentation/utils/formatting.js +0 -84
  293. package/dist/components/Documentation/utils/formatting.js.map +0 -1
  294. package/dist/components/ExampleComponent.d.ts +0 -10
  295. package/dist/components/ExampleComponent.js +0 -89
  296. package/dist/components/ExampleComponent.js.map +0 -1
  297. package/dist/mcp/z3.d.ts +0 -1
  298. package/dist/mcp/z3.js +0 -9
  299. package/dist/mcp/z3.js.map +0 -1
  300. package/dist/project-writer/AIModel.d.ts +0 -29
  301. package/dist/project-writer/AIModel.js +0 -48
  302. package/dist/project-writer/AIModel.js.map +0 -1
  303. package/dist/resources/docs.route.d.ts +0 -23
  304. package/dist/resources/docs.route.js +0 -73
  305. package/dist/resources/docs.route.js.map +0 -1
  306. package/dist/resources/durable.workflow.tag.d.ts +0 -2
  307. package/dist/resources/durable.workflow.tag.js +0 -28
  308. package/dist/resources/durable.workflow.tag.js.map +0 -1
  309. package/dist/resources/getFileContents.task.d.ts +0 -17
  310. package/dist/resources/getFileContents.task.js +0 -44
  311. package/dist/resources/getFileContents.task.js.map +0 -1
  312. package/dist/resources/introspector.tools.d.ts +0 -47
  313. package/dist/resources/introspector.tools.js +0 -505
  314. package/dist/resources/introspector.tools.js.map +0 -1
  315. package/dist/resources/models/extractTunnelInfo.d.ts +0 -8
  316. package/dist/resources/models/extractTunnelInfo.js +0 -85
  317. package/dist/resources/models/extractTunnelInfo.js.map +0 -1
  318. package/dist/resources/models/tunnel.tools.d.ts +0 -3
  319. package/dist/resources/models/tunnel.tools.js +0 -35
  320. package/dist/resources/models/tunnel.tools.js.map +0 -1
  321. package/dist/runner-compat.d.ts +0 -85
  322. package/dist/runner-compat.js +0 -178
  323. package/dist/runner-compat.js.map +0 -1
  324. package/dist/runner-node-compat.d.ts +0 -2
  325. package/dist/runner-node-compat.js +0 -28
  326. package/dist/runner-node-compat.js.map +0 -1
  327. package/dist/schema/types/TunnelInfoType.d.ts +0 -5
  328. package/dist/schema/types/TunnelInfoType.js +0 -86
  329. package/dist/schema/types/TunnelInfoType.js.map +0 -1
  330. package/dist/tasks/create-user.d.ts +0 -5
  331. package/dist/tasks/create-user.js +0 -20
  332. package/dist/tasks/create-user.js.map +0 -1
  333. package/dist/tasks/index.d.ts +0 -1
  334. package/dist/tasks/index.js +0 -18
  335. package/dist/tasks/index.js.map +0 -1
  336. package/dist/ui/assets/docs-CHvYnckk.js +0 -302
  337. package/dist/ui/assets/docs-CHvYnckk.js.map +0 -1
  338. package/dist/ui/assets/docs-CipvKUxZ.css +0 -1
  339. package/dist/ui-test/index.html +0 -1
  340. package/readmes/runner-AI.md +0 -740
  341. package/readmes/runner-durable-workflows.md +0 -2247
  342. package/readmes/runner-full-guide.md +0 -5869
  343. package/readmes/runner-remote-lanes.md +0 -909
package/AI.md DELETED
@@ -1,622 +0,0 @@
1
- # Runner-Dev AI Assistant Guide
2
-
3
- This document provides AI assistants with comprehensive guidance on using Runner-Dev's introspection and development tools.
4
-
5
- ## What is Runner-Dev?
6
-
7
- Runner-Dev is a powerful development toolkit for applications built with the **@bluelibs/runner** framework. It provides:
8
-
9
- - **Live Introspection**: Query your running application's architecture
10
- - **Hot-Swapping**: Modify tasks at runtime with TypeScript/JavaScript
11
- - **Real-time Telemetry**: Monitor logs, events, errors, and performance
12
- - **GraphQL API**: Comprehensive query interface for all system data
13
- - **MCP Integration**: AI-native development environment
14
- - **Tags (first-class)**: Discover Tag objects and reverse usage via GraphQL (`tags`, `tag(id)`).
15
- - **Documentation UI Overviews**: Sortable and searchable overview tables with a `Used By` counter column for faster cross-element inspection.
16
- - **Visibility Awareness**: Every element exposes `isPrivate` (based on Runner `isolate()` boundaries), and resources expose `isolation`.
17
- - **Subtree Governance Awareness**: Resources expose normalized `subtree` policy summaries (middleware and validator counts per branch).
18
- - **Lifecycle Awareness**: Resources expose `cooldown` support and run options expose `lifecycleMode`, `disposeBudgetMs`, `disposeDrainBudgetMs`.
19
- - **Lane Awareness**: Events expose optional `eventLane` summaries (`globals.tags.eventLane`) and both tasks and events expose optional `rpcLane` summaries (`globals.tags.rpcLane`).
20
- - **Isolation Wildcard Explorer**: Wildcard isolation rules can be clicked to inspect all matching resources in a searchable modal list.
21
- - **Tag Handlers**: Tag views separate direct tag usages from handler elements that depend on the tag id.
22
- - **Task Interceptor Introspection**: Tasks expose `interceptorCount` and `hasInterceptors` for runtime `task.intercept(...)` registrations.
23
- - **Schema Export Compatibility**: Schema fields prefer `toJSONSchema()` exporters (including matcher-normalized schemas), with `zod` conversion as compatibility fallback.
24
-
25
- ## Runner 6.0 Migration Notes
26
-
27
- | Before | After (hard switch) |
28
- | --------------------- | --------------------------------------------------------- |
29
- | `Resource.exports` | `Resource.isolation { deny, only, exports, exportsMode }` |
30
- | `Middleware.global` | `Middleware.autoApply { enabled, scope, hasPredicate }` |
31
- | `Tag.middlewares` | `Tag.taskMiddlewares` + `Tag.resourceMiddlewares` |
32
- | N/A | `Tag.errors`, `Tag.targets` |
33
- | `RunOptions.initMode` | `RunOptions.lifecycleMode` (+ disposal budgets) |
34
- | `Resource.tunnelInfo` | Removed (hard switch to Event Lane + RPC Lane surfaces) |
35
-
36
- ## Runner 6.1 Migration Notes
37
-
38
- - Temporal middleware now supports per-key partitioning through `keyBuilder(taskId, input)` on `rateLimit`, `debounce`, and `throttle`.
39
- - User resources are no longer transparent:
40
- - root resources can register tasks/resources/middleware directly and be passed to `run(...)`
41
- - canonical runtime ids retain each user resource segment
42
- - `runtime-framework-root` is reserved for internal Runner use
43
- - `resource.subtree(...)` may now receive a policy array; runner-dev merges those policies into one summarized subtree view.
44
- - `gateway: true` has been removed from user resources, so any references that skipped a user resource segment need to be updated.
45
- - Advanced Node integrations should now use `runner.node.rpcLanes` for the internal RPC lanes resource id.
46
-
47
- ## Available GraphQL Queries
48
-
49
- ### System Architecture Queries
50
-
51
- ```graphql
52
- # Get all elements (tasks, resources, events, middleware, hooks)
53
- query SystemOverview {
54
- all {
55
- id
56
- isPrivate
57
- meta {
58
- title
59
- description
60
- }
61
- filePath
62
- }
63
- runOptions {
64
- mode
65
- debug
66
- debugMode
67
- logsEnabled
68
- logsPrintThreshold
69
- logsPrintStrategy
70
- logsBuffer
71
- errorBoundary
72
- shutdownHooks
73
- dryRun
74
- lazy
75
- lifecycleMode
76
- runtimeEventCycleDetection
77
- hasOnUnhandledError
78
- rootId
79
- }
80
- }
81
-
82
- # Get specific element types
83
- query Architecture {
84
- tasks {
85
- id
86
- isPrivate
87
- interceptorCount
88
- hasInterceptors
89
- meta {
90
- title
91
- description
92
- }
93
- tags {
94
- id
95
- }
96
- dependsOn
97
- emits
98
- }
99
- resources {
100
- id
101
- isPrivate
102
- isolation {
103
- deny
104
- only
105
- exports
106
- exportsMode
107
- }
108
- meta {
109
- title
110
- description
111
- }
112
- tags {
113
- id
114
- }
115
- dependsOn
116
- registers
117
- overrides
118
- usedBy
119
- }
120
- events {
121
- id
122
- tags {
123
- id
124
- }
125
- emittedBy
126
- listenedToBy
127
- }
128
- middlewares {
129
- id
130
- meta {
131
- title
132
- description
133
- }
134
- tags {
135
- id
136
- }
137
- usedByTasks
138
- }
139
- hooks {
140
- id
141
- meta {
142
- title
143
- description
144
- }
145
- tags {
146
- id
147
- }
148
- event
149
- }
150
- }
151
- ```
152
-
153
- ### Live Telemetry Queries
154
-
155
- ```graphql
156
- # Real-time system monitoring
157
- query LiveTelemetry {
158
- live {
159
- memory {
160
- heapUsed
161
- heapTotal
162
- rss
163
- }
164
- cpu {
165
- usage
166
- loadAverage
167
- }
168
- eventLoop {
169
- lag
170
- }
171
- gc {
172
- collections
173
- duration
174
- }
175
-
176
- # Recent activity (use 'last' parameter to limit)
177
- logs(last: 10) {
178
- timestampMs
179
- level
180
- message
181
- correlationId
182
- }
183
- emissions(last: 10) {
184
- timestampMs
185
- eventId
186
- emitterId
187
- correlationId
188
- }
189
- errors(last: 10) {
190
- timestampMs
191
- sourceKind
192
- message
193
- correlationId
194
- }
195
- runs(last: 10) {
196
- timestampMs
197
- nodeId
198
- nodeKind
199
- durationMs
200
- ok
201
- correlationId
202
- }
203
- }
204
- }
205
- ```
206
-
207
- ### SSE Live Streaming
208
-
209
- Server-Sent Events endpoint at `GET /live/stream` for near-instant push instead of polling:
210
-
211
- - **`telemetry`** event: `{ logs, emissions, errors, runs }` pushed ~100ms after each record (debounced)
212
- - **`health`** event: `{ memory, cpu, eventLoop, gc }` every 2s
213
- - Heartbeat comment every 15s to keep proxies alive
214
- - `Live.onRecord(callback)` fires synchronously on each `record*` call; returns an unsubscribe function
215
- - The built-in Live Panel auto-uses SSE and falls back to configurable-interval polling (500ms–10s)
216
-
217
- ### Correlation ID Trace View
218
-
219
- The Live Panel includes a built-in **Trace View** — a unified timeline showing every log, event emission, error, and task run sharing a single `correlationId`, ordered chronologically. Click any correlationId badge (shown on logs, events, errors, and runs) to open the trace modal. This provides an in-process "distributed tracing" experience (like Jaeger).
220
-
221
- ### Unified Modal System
222
-
223
- All UI modals (CodeModal, ExecuteModal, TraceView, RecentLogs, OverviewStatsPanel) are built on a shared `BaseModal` primitive (`src/ui/src/components/Documentation/components/modals/`). It provides:
224
-
225
- - **Stacking**: A `ModalStackContext` tracks open modals and assigns ascending z-indexes (base 10 000 + 10 per layer). Global Escape closes the topmost modal first.
226
- - **Consistent UX**: Portal to `document.body`, backdrop blur, scroll lock, focus trap, slide-up animation, ARIA `role="dialog"`.
227
- - **Sizes**: `sm | md | lg | xl | fullscreen` with responsive fallback to fullscreen on small viewports.
228
-
229
- ### Diagnostics & Health
230
-
231
- ```graphql
232
- # System diagnostics and issues
233
- query SystemHealth {
234
- diagnostics {
235
- severity
236
- code
237
- message
238
- nodeId
239
- nodeKind
240
- }
241
- }
242
- ```
243
-
244
- ## Available GraphQL Mutations
245
-
246
- ### Hot-Swapping Tasks
247
-
248
- ```graphql
249
- # Swap a task's implementation at runtime
250
- mutation SwapTask($taskId: ID!, $runCode: String!) {
251
- swapTask(taskId: $taskId, runCode: $runCode) {
252
- success
253
- error
254
- taskId
255
- }
256
- }
257
-
258
- # Restore original implementation
259
- mutation UnswapTask($taskId: ID!) {
260
- unswapTask(taskId: $taskId) {
261
- success
262
- error
263
- taskId
264
- }
265
- }
266
-
267
- # Restore all tasks
268
- mutation UnswapAllTasks {
269
- unswapAllTasks {
270
- success
271
- error
272
- taskId
273
- }
274
- }
275
- ```
276
-
277
- ### Task Invocation
278
-
279
- ```graphql
280
- # Invoke a task remotely
281
- mutation InvokeTask(
282
- $taskId: ID!
283
- $inputJson: String
284
- $pure: Boolean
285
- $evalInput: Boolean
286
- ) {
287
- invokeTask(
288
- taskId: $taskId
289
- inputJson: $inputJson
290
- pure: $pure # bypass middleware
291
- evalInput: $evalInput # evaluate input as JavaScript
292
- ) {
293
- success
294
- error
295
- result
296
- executionTimeMs
297
- invocationId
298
- }
299
- }
300
- ```
301
-
302
- ### Code Evaluation
303
-
304
- ```graphql
305
- # Execute arbitrary code on the server (DEV ONLY)
306
- mutation EvalCode($code: String!, $inputJson: String, $evalInput: Boolean) {
307
- eval(code: $code, inputJson: $inputJson, evalInput: $evalInput) {
308
- success
309
- error
310
- result
311
- executionTimeMs
312
- invocationId
313
- }
314
- }
315
- ```
316
-
317
- ## MCP Tools Available
318
-
319
- - `graphql.query` - Execute read-only GraphQL queries
320
- - `graphql.mutation` - Execute GraphQL mutations (if ALLOW_MUTATIONS=true)
321
- - `graphql.introspect` - Get full schema introspection
322
- - `graphql.ping` - Test connectivity
323
- - `project.overview` - Generate dynamic project overview aggregated from the API
324
-
325
- ## Direct CLI Usage
326
-
327
- Beyond MCP, Runner-Dev offers a powerful standalone CLI for direct interaction from your terminal. This is ideal for scripting, quick checks, or when not operating within an MCP-enabled AI assistant.
328
-
329
- ### Prerequisites
330
-
331
- - Your app must be running with the Dev server enabled (for remote mode).
332
- - The `@bluelibs/runner-dev` package should be installed.
333
-
334
- ### Create a New Project
335
-
336
- You can scaffold a new Runner project directly from the CLI.
337
-
338
- ```bash
339
- # Create a new Runner project
340
- npx @bluelibs/runner-dev new <project-name>
341
-
342
- # Example
343
- npx @bluelibs/runner-dev new my-awesome-app
344
- ```
345
-
346
- This command creates a new Runner project with a complete TypeScript setup, Jest for testing, and all necessary dependencies.
347
-
348
- Key flags for `new`:
349
-
350
- - `--install`: Install dependencies after scaffolding.
351
- - `--run-tests`: Run the generated test suite after installation.
352
- - `--run`: Start the dev server after installation.
353
-
354
- ### Common Commands
355
-
356
- All commands can be prefixed with environment variables like `ENDPOINT` and `HEADERS`.
357
-
358
- **Ping the server:**
359
-
360
- ```bash
361
- ENDPOINT=http://localhost:1337/graphql npx @bluelibs/runner-dev ping
362
- ```
363
-
364
- **Execute a GraphQL query (Remote Mode):**
365
-
366
- ```bash
367
- # Simple query
368
- ENDPOINT=http://localhost:1337/graphql npx @bluelibs/runner-dev query 'query { tasks { id } }'
369
-
370
- # Query with variables and pretty formatting
371
- ENDPOINT=http://localhost:1337/graphql \
372
- npx @bluelibs/runner-dev query \
373
- 'query Q($ns: ID){ tasks(idIncludes: $ns) { id } }' \
374
- --variables '{"ns":"task."}' \
375
- --format pretty
376
- ```
377
-
378
- **Execute a GraphQL query (Dry-Run Mode):**
379
-
380
- Run queries against a TypeScript entry file without needing a running server.
381
-
382
- ```bash
383
- # Using a TS entry file default export
384
- npx @bluelibs/runner-dev query 'query { tasks { id } }' \
385
- --entry-file ./src/main.ts
386
-
387
- # Using a named export (e.g., exported as `app`)
388
- npx @bluelibs/runner-dev query 'query { tasks { id } }' \
389
- --entry-file ./src/main.ts --export app
390
- ```
391
-
392
- Selection logic:
393
-
394
- - If `--entry-file` is provided, dry-run mode is used (no server; requires ts-node).
395
- - Otherwise, the CLI uses a remote endpoint via `--endpoint` or `ENDPOINT/GRAPHQL_ENDPOINT`.
396
- - If neither is provided, the command errors.
397
-
398
- **Generate a project overview:**
399
-
400
- ```bash
401
- ENDPOINT=http://localhost:1337/graphql npx @bluelibs/runner-dev overview --details 10
402
- ```
403
-
404
- **Fetch GraphQL schema:**
405
-
406
- ```bash
407
- # As SDL
408
- ENDPOINT=http://localhost:1337/graphql npx @bluelibs/runner-dev schema sdl
409
-
410
- # As JSON
411
- ENDPOINT=http://localhost:1337/graphql npx @bluelibs/runner-dev schema json
412
- ```
413
-
414
- ### Key Flags
415
-
416
- - `--endpoint <url>`: GraphQL endpoint URL for remote mode.
417
- - `--headers '<json>'`: JSON for extra headers.
418
- - `--variables '<json>'`: JSON variables for a query.
419
- - `--format data|json|pretty`: Output format.
420
- - `--namespace <str>`: A filter to inject `idIncludes` on top-level fields.
421
- - `--entry-file <path>`: TypeScript entry file for dry-run mode (no server).
422
- - `--export <name>`: Named export to use from the entry file (default export is preferred).
423
- - `--operation <name>`: Operation name for documents with multiple operations.
424
- - `--raw`: Print the full GraphQL envelope including errors.
425
-
426
- This direct CLI access provides a powerful way for AI assistants with shell access to script complex interactions, perform detailed introspection, and validate application state without relying on MCP tools.
427
-
428
- ## Common Use Cases
429
-
430
- ### 1. Understanding System Architecture
431
-
432
- ```graphql
433
- query UnderstandSystem {
434
- tasks {
435
- id
436
- meta {
437
- title
438
- description
439
- }
440
- dependsOn
441
- emits
442
- filePath
443
- }
444
- resources {
445
- id
446
- meta {
447
- title
448
- description
449
- }
450
- registers
451
- filePath
452
- }
453
- }
454
- ```
455
-
456
- ### 2. Debugging Issues
457
-
458
- ```graphql
459
- query DebuggingInfo {
460
- diagnostics {
461
- severity
462
- code
463
- message
464
- nodeId
465
- }
466
- live {
467
- errors(last: 20) {
468
- timestampMs
469
- sourceKind
470
- message
471
- stack
472
- correlationId
473
- }
474
- }
475
- }
476
- ```
477
-
478
- ### 3. Performance Monitoring
479
-
480
- ```graphql
481
- query Performance {
482
- live {
483
- memory {
484
- heapUsed
485
- heapTotal
486
- rss
487
- }
488
- cpu {
489
- usage
490
- loadAverage
491
- }
492
- eventLoop {
493
- lag
494
- }
495
- runs(last: 50, filter: { ok: false }) {
496
- nodeId
497
- durationMs
498
- error
499
- timestampMs
500
- }
501
- }
502
- }
503
- ```
504
-
505
- ### 4. Hot Development Workflow
506
-
507
- ```graphql
508
- # 1. Check current swapped tasks
509
- query CheckSwapped {
510
- swappedTasks {
511
- taskId
512
- swappedAt
513
- }
514
- }
515
-
516
- # 2. Swap a task
517
- mutation DevSwap {
518
- swapTask(
519
- taskId: "my.task"
520
- runCode: "async function run(input, deps) { return { message: 'Updated!' }; }"
521
- ) {
522
- success
523
- error
524
- }
525
- }
526
-
527
- # 3. Test the task
528
- mutation TestTask {
529
- invokeTask(taskId: "my.task", inputJson: "{\"test\": true}", pure: true) {
530
- success
531
- result
532
- executionTimeMs
533
- }
534
- }
535
- ```
536
-
537
- ### 5. Durable Workflow Introspection (Node)
538
-
539
- Durable workflows are regular Runner tasks tagged with `durableWorkflowTag` from `@bluelibs/runner/node`.
540
- Runner-Dev exposes durable metadata directly on tasks:
541
-
542
- - `isDurable`
543
- - `durableResource`
544
- - `flowShape` (checkpoint structure from `durable.describe(...)`)
545
-
546
- ```graphql
547
- query DurableTasks {
548
- tasks {
549
- id
550
- isDurable
551
- durableResource {
552
- id
553
- }
554
- flowShape {
555
- nodes {
556
- __typename
557
- }
558
- }
559
- }
560
- }
561
- ```
562
-
563
- Minimal workflow setup pattern:
564
-
565
- ```ts
566
- import { r } from "@bluelibs/runner";
567
- import {
568
- durableWorkflowTag,
569
- memoryDurableResource,
570
- } from "@bluelibs/runner/node";
571
-
572
- const durable = memoryDurableResource.fork("app.durable");
573
- const durableRegistration = durable.with({});
574
-
575
- const workflow = r
576
- .task("app.tasks.orderWorkflow")
577
- .dependencies({ durable })
578
- .tags([durableWorkflowTag])
579
- .run(async (input, { durable }) => {
580
- const ctx = durable.use();
581
- await ctx.step("validate", async () => ({ ok: true }));
582
- await ctx.sleep(250, { stepId: "cooldown" });
583
- return { ok: true };
584
- })
585
- .build();
586
-
587
- const app = r.resource("app").register([durableRegistration, workflow]).build();
588
- ```
589
-
590
- ## Best Practices for AI Assistants
591
-
592
- ### Documentation & Information Gathering
593
-
594
- 1. **Use Array-Based Heading Filters**: Get comprehensive context efficiently with `headingIncludes: ["topic1", "topic2", "topic3"]`
595
- 2. **Start with TOC**: Use `toc: true` to understand document structure before diving deep
596
- 3. **Choose Right Documentation Tool**:
597
- - `help.runner` for framework concepts
598
- - `help.runner-dev` for application-specific features
599
- - `help.read` for custom package docs
600
- 4. **Combine Related Topics**: Instead of multiple calls, use arrays like `["tasks", "resources", "events"]`
601
-
602
- ### System Operations
603
-
604
- 5. **Start with Overview**: Use `project.overview` to understand the system
605
- 6. **Use Correlation IDs**: Track related operations across logs/runs/errors
606
- 7. **Limit Results**: Always use `last` parameter for live queries to avoid overwhelming responses
607
- 8. **Check Diagnostics**: Look for warnings/errors that might indicate issues
608
- 9. **Use Markdown Format**: Request `format: "markdown"` for better readability
609
- 10. **Hot-Swap Safely**: Test swapped code with `pure: true` before production use
610
-
611
- ## Environment Variables
612
-
613
- - `ENDPOINT` - GraphQL endpoint (default: http://localhost:1337/graphql)
614
- - `ALLOW_MUTATIONS` - Enable mutations in MCP (default: false)
615
- - `RUNNER_DEV_EVAL` - Enable eval mutation (default: false, DEV ONLY)
616
-
617
- ## Security Notes
618
-
619
- - Mutations are disabled by default in production
620
- - Eval is extremely dangerous and should only be used in development
621
- - Hot-swapping affects the running system - use with caution
622
- - All operations are logged with correlation IDs for traceability
@@ -1,5 +0,0 @@
1
- export interface CreateUserInput {
2
- }
3
- export interface CreateUserResult {
4
- }
5
- export declare const createUser: import("@bluelibs/runner/dist/defs").ITask<CreateUserInput, Promise<CreateUserResult>, any, any, import("@bluelibs/runner/dist/defs").TagType[], import("@bluelibs/runner/dist/defs").TaskMiddlewareAttachmentType[]>;
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createUser = void 0;
4
- /**
5
- * Generated by runner-dev new task create-user
6
- * - Namespace: app
7
- * - File: src/app/tasks/create-user.task.ts
8
- */
9
- const runner_1 = require("@bluelibs/runner");
10
- exports.createUser = (0, runner_1.task)({
11
- id: 'app.tasks.create-user',
12
- // middleware: [],
13
- // dependencies: { /* resources */ },
14
- run: async (_input, _deps) => {
15
- return {};
16
- },
17
- // inputSchema,
18
- // resultSchema,
19
- });
20
- //# sourceMappingURL=create-user.task.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-user.task.js","sourceRoot":"","sources":["../../../src/app/tasks/create-user.task.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,6CAAwC;AAU3B,QAAA,UAAU,GAAG,IAAA,aAAI,EAAC;IAC7B,EAAE,EAAE,uBAAuB;IAC3B,kBAAkB;IAClB,qCAAqC;IACrC,GAAG,EAAE,KAAK,EAAE,MAAuB,EAAE,KAAK,EAA6B,EAAE;QACvE,OAAO,EAAsB,CAAC;IAChC,CAAC;IACD,eAAe;IACf,gBAAgB;CACjB,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export * from './create-user.task';
@@ -1,18 +0,0 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./create-user.task"), exports);
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/app/tasks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC"}