@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/README.md CHANGED
@@ -21,6 +21,9 @@ npm install -g @bluelibs/runner-dev
21
21
  npx @bluelibs/runner-dev
22
22
  ```
23
23
 
24
+ For local `AGENTS.md`-style workflows, this repo now extracts Runner skills from `@bluelibs/runner` into `.agents/skills` via `npm-skills` on `postinstall`.
25
+ Runner-Dev also publishes its own skill from `skills/core`; keep `README.md`, `skills/core/SKILL.md`, and `skills/core/references/readmes/COMPACT_GUIDE.md` aligned when those docs change. The docs UI now includes a topology view for blast-radius and resource mindmap exploration.
26
+
24
27
  ```ts
25
28
  import { r } from "@bluelibs/runner";
26
29
  import { dev } from "@bluelibs/runner-dev";
@@ -41,6 +44,7 @@ const app = r
41
44
  ## What you get
42
45
 
43
46
  - Fully-featured UI with AI assistance to explore your app, call tasks, emit events, diagnostics, logs and more.
47
+ - Static catalog export via `exportDocs(app, { output?, overwrite? })` for a standalone frozen docs site under `./runner-dev-catalog` by default.
44
48
  - Overview tables across UI sections now include sortable and searchable columns (`ID`, `Title`, `Description`, `Used By`) with per-element usage counters.
45
49
  - Overview tables now include `Visibility` (`Public`/`Private`) derived from Runner resource `isolate()` boundaries.
46
50
  - Introspector: programmatic API to inspect tasks, hooks, resources, events, middleware, and diagnostics (including file paths, contents)
@@ -49,7 +53,7 @@ const app = r
49
53
  - Resource introspection includes `subtree` governance summaries (middleware attachment counts and validator counts per branch).
50
54
  - Resource introspection indicates whether a resource exposes a `cooldown()` hook for shutdown lifecycle.
51
55
  - Isolation wildcard rules are clickable in the docs UI and open a modal showing matched resources with inline filtering when lists are large.
52
- - Event introspection includes `transactional`, `parallel`, optional `eventLane { laneId, orderingKey, metadata }`, and optional `rpcLane { laneId }`.
56
+ - Event introspection includes `transactional`, `parallel`, optional `eventLane { laneId }`, and optional `rpcLane { laneId }`.
53
57
  - Task introspection includes optional `rpcLane { laneId }`.
54
58
  - Tag pages distinguish between directly tagged elements and tag handlers (elements that depend on the tag id).
55
59
  - Live: in-memory logs and event emissions
@@ -82,6 +86,21 @@ const app = r
82
86
  - `gateway: true` has been removed from user resources. Update any string-based task/resource references that previously relied on transparent user resources.
83
87
  - Advanced Node integrations should use the internal RPC lanes resource id `runner.node.rpcLanes`.
84
88
 
89
+ ## Runner 6.2 Migration Notes
90
+
91
+ - Built-in async contexts in 6.2 use `asyncContexts.tenant`; in Runner 6.3 they were renamed to `asyncContexts.identity`.
92
+ - Built-in task middleware such as `cache`, `concurrency`, and `rateLimit` can partition internal state via `tenantScope` in 6.2, and via `identityScope` from 6.3 onward.
93
+ - Lazy resource initialization now fails fast once shutdown begins; runner-dev will surface the new typed shutdown errors through normal error introspection.
94
+ - Subtree middleware conflicts now fail fast inside Runner instead of remaining a post-compose diagnostic concern.
95
+ - The internal framework root is now described as the synthetic framework root, with clearer internal `runner` and `system` namespace resources.
96
+
97
+ ## Runner 6.3 Migration Notes
98
+
99
+ - Built-in identity moved from `asyncContexts.tenant` to `asyncContexts.identity`, and identity-aware middleware now uses `identityScope`.
100
+ - Hook introspection now resolves selector-based targets such as `subtreeOf(...)` and predicates through Runner's store API instead of relying on raw `hook.on` shapes.
101
+ - Event Lane routing now comes from `r.eventLane(...).applyTo([...])` instead of `tags.eventLane`, and Event Lane topology profiles use `consume: [{ lane, hooks?: { only } }]`.
102
+ - Runner now supports `run(app, { signal })`, `run(app, { identity })`, and `runtime.dispose({ force: true })`; runner-dev remains compatible with those lifecycle additions while avoiding deprecated lane-tag assumptions.
103
+
85
104
  ## Table of Contents
86
105
 
87
106
  - [Quickstart Guide](#quickstart)
@@ -89,8 +108,8 @@ const app = r
89
108
  - [CLI Tooling & Scaffolding](#cli-usage-direct)
90
109
  - [Live Telemetry & Correlation](#live-telemetry)
91
110
  - [Hot-Swapping Debugging System](#hot-swapping-debugging-system)
92
- - [GraphQL API Examples](#example-queries)
93
- - [API Reference](API_REFERENCE.md)
111
+ - [GraphQL API Examples](#graphql-api-examples)
112
+ - [API Reference](readmes/API_REFERENCE.md)
94
113
  - [Contributing & Local Dev](CONTRIBUTING.md)
95
114
 
96
115
  ## Quickstart
@@ -127,6 +146,87 @@ Inside the UI, you can:
127
146
  - Inspect live logs and event emissions in real-time.
128
147
  - View and edit files directly via the browser.
129
148
 
149
+ ### Static Catalog Export
150
+
151
+ If you want the visual docs without running the project server, you can export a standalone static catalog directly from a built Runner app.
152
+
153
+ The recommended setup is a tiny script plus an npm command.
154
+
155
+ Create `scripts/export-docs.ts`:
156
+
157
+ ```ts
158
+ // scripts/export-docs.ts
159
+ import { exportDocs } from "@bluelibs/runner-dev";
160
+ import { app } from "../src/app";
161
+
162
+ await exportDocs(app);
163
+ // Optional custom destination:
164
+ await exportDocs(app, {
165
+ output: "./artifacts/runner-dev-catalog",
166
+ overwrite: true,
167
+ });
168
+ ```
169
+
170
+ Add a package script:
171
+
172
+ ```json
173
+ {
174
+ "scripts": {
175
+ "docs:export": "tsx scripts/export-docs.ts"
176
+ }
177
+ }
178
+ ```
179
+
180
+ Then run:
181
+
182
+ ```bash
183
+ npm run docs:export
184
+ ```
185
+
186
+ What gets written:
187
+
188
+ - `./runner-dev-catalog/index.html`
189
+ - `./runner-dev-catalog/snapshot.json`
190
+ - a standalone `index.html` with the docs payload, CSS, JS, and favicon embedded for direct opening
191
+
192
+ Output behavior:
193
+
194
+ - `exportDocs(app)` writes to `./runner-dev-catalog` by default
195
+ - the default `./runner-dev-catalog` destination is treated as a dedicated export folder and can be regenerated safely
196
+ - custom directories are protected by default; pass `overwrite: true` if you intentionally want to replace an existing non-empty directory
197
+ - `index.html` is standalone and can be opened directly over `file://`
198
+ - `snapshot.json` is still written as an auxiliary artifact for inspection, debugging, and snapshot-backed MCP, but the standalone HTML does not depend on it at runtime
199
+
200
+ What the exported catalog includes:
201
+
202
+ - overview
203
+ - topology
204
+ - tasks, resources, events, hooks, and middlewares
205
+ - tags, errors, async contexts, diagnostics, and markdown docs
206
+
207
+ What it intentionally does not include:
208
+
209
+ - live telemetry
210
+ - GraphQL server endpoints
211
+ - task or event execution
212
+ - swap or eval actions
213
+ - file-saving mutations
214
+
215
+ `exportDocs()` uses Runner's real dry-run path under the hood. In other words, it effectively does a `run(app, { dryRun: true })`, builds the in-memory docs snapshot from that composed Runner store, and emits a frozen catalog. It is not source-only static analysis, which is important both for accuracy and for understanding what code paths still participate during export.
216
+
217
+ This also works well as a CI artifact:
218
+
219
+ - generate the catalog during CI
220
+ - upload `./runner-dev-catalog` or `./artifacts/runner-dev-catalog` as a build artifact
221
+ - inspect the visual docs after the pipeline finishes without starting the app again
222
+
223
+ For local package work inside this repository, `npm run play:export` is the same idea wired to the enhanced showcase app:
224
+
225
+ ```bash
226
+ npm run play:export
227
+ npm run play:export -- ./my-export-dir
228
+ ```
229
+
130
230
  Add it as an Model Context Protocol Server (for AIs) via normal socket:
131
231
 
132
232
  ```json
@@ -147,6 +247,23 @@ Add it as an Model Context Protocol Server (for AIs) via normal socket:
147
247
 
148
248
  Then start your app as usual. The Dev GraphQL server will be available at http://localhost:1337/graphql.
149
249
 
250
+ For a frozen exported catalog, you can point MCP at the generated snapshot instead of a live endpoint:
251
+
252
+ ```json
253
+ {
254
+ "mcpServers": {
255
+ "mcp-graphql": {
256
+ "description": "MCP Server for an exported Runner Dev snapshot",
257
+ "command": "npx",
258
+ "args": ["@bluelibs/runner-dev", "mcp"],
259
+ "env": {
260
+ "SNAPSHOT_FILE": "./runner-dev-catalog/snapshot.json"
261
+ }
262
+ }
263
+ }
264
+ }
265
+ ```
266
+
150
267
  ### CLI usage (MCP server)
151
268
 
152
269
  After installing, you can start the MCP server from this package via stdio.
@@ -155,20 +272,22 @@ Using npx:
155
272
 
156
273
  ```bash
157
274
  ENDPOINT=http://localhost:1337/graphql npx -y @bluelibs/runner-dev mcp
275
+ SNAPSHOT_FILE=./runner-dev-catalog/snapshot.json npx -y @bluelibs/runner-dev mcp
158
276
  ```
159
277
 
160
278
  Optional environment variables:
161
279
 
280
+ - `SNAPSHOT_FILE=./runner-dev-catalog/snapshot.json` to serve MCP from an exported static snapshot instead of a live endpoint
162
281
  - `ALLOW_MUTATIONS=true` to enable `graphql.mutation`
163
282
  - `HEADERS='{"Authorization":"Bearer token"}'` to pass extra headers
164
283
 
165
284
  Available tools once connected:
166
285
 
167
- - `graphql.query` — run read-only queries
168
- - `graphql.mutation` — run mutations (requires `ALLOW_MUTATIONS=true`)
286
+ - `graphql.query` — run read-only queries against the live endpoint or snapshot
287
+ - `graphql.mutation` — run mutations (requires `ALLOW_MUTATIONS=true`, live endpoint only)
169
288
  - `graphql.introspect` — fetch schema
170
- - `graphql.ping` — reachability check
171
- - `project.overview` — dynamic Markdown overview aggregated from the API
289
+ - `graphql.ping` — source check for the configured endpoint or snapshot
290
+ - `project.overview` — dynamic Markdown overview aggregated from the configured source
172
291
 
173
292
  ### CLI usage (direct)
174
293
 
@@ -180,6 +299,14 @@ Prerequisites:
180
299
  - Alternatively, you can run queries in a new **dry‑run mode** with a TypeScript entry file (no server required).
181
300
  - Build this package (or install it) so the binary is available.
182
301
 
302
+ Programmatic export is available even when you do not want a live server:
303
+
304
+ ```ts
305
+ import { exportDocs } from "@bluelibs/runner-dev";
306
+
307
+ await exportDocs(app);
308
+ ```
309
+
183
310
  Help:
184
311
 
185
312
  ```bash
@@ -198,8 +325,8 @@ runner-dev new my-awesome-app
198
325
 
199
326
  This command creates a new Runner project with:
200
327
 
201
- - Complete TypeScript setup with ts-node-dev for development
202
- - Jest configuration for testing
328
+ - Complete TypeScript setup with `tsx watch` for development
329
+ - Vitest configuration for testing without deprecated install-time transitive deps
203
330
  - Package.json with all necessary dependencies
204
331
  - Basic project structure with main.ts entry point
205
332
  - README and .gitignore files
@@ -207,17 +334,17 @@ This command creates a new Runner project with:
207
334
  Flags for `new`:
208
335
 
209
336
  - `--install`: install dependencies after scaffolding
210
- - `--run-tests`: run the generated test suite (`npm test -- --runInBand`) after install
337
+ - `--run-tests`: run the generated test suite (`npm run test`) after install
211
338
  - `--run`: start the dev server (`npm run dev`) after install/tests; this keeps the process running
212
339
 
213
340
  Examples:
214
341
 
215
342
  ```bash
216
343
  # Create and auto-install dependencies, then run tests
217
- new my-awesome-app --install --run-tests
344
+ runner-dev new my-awesome-app --install --run-tests
218
345
 
219
346
  # Create and start the dev server immediately (blocks)
220
- new my-awesome-app --install --run
347
+ runner-dev new my-awesome-app --install --run
221
348
  ```
222
349
 
223
350
  Scaffold artifacts (resource | task | event | tag | taskMiddleware | resourceMiddleware):
@@ -366,7 +493,7 @@ Precedence:
366
493
 
367
494
  ## GraphQL API Examples
368
495
 
369
- For a full list of types and fields, see the [API Reference](API_REFERENCE.md).
496
+ For a full list of types and fields, see the [API Reference](readmes/API_REFERENCE.md).
370
497
 
371
498
  ### Explore tasks and dependencies deeply
372
499
 
@@ -669,7 +796,9 @@ All Dev UI modals (code viewer, execute, trace view, log details, stats overlay)
669
796
  ```ts
670
797
  import { r } from "@bluelibs/runner";
671
798
 
672
- export const userCreated = r.event<{ id: string; name: string }>("userCreated").build();
799
+ export const userCreated = r
800
+ .event<{ id: string; name: string }>("userCreated")
801
+ .build();
673
802
  ```
674
803
 
675
804
  - Use it in a task:
@@ -35,7 +35,7 @@ async function writeFile(filePath, content) {
35
35
  await promises_1.default.writeFile(filePath, content, { encoding: "utf8" });
36
36
  }
37
37
  async function writeGitignore(targetDir) {
38
- const content = `node_modules\n.dist\ndist\n.env\n\n`;
38
+ const content = `node_modules\n.env\ndist\n.agents/skills\n\n`;
39
39
  await writeFile(path_1.default.join(targetDir, ".gitignore"), content);
40
40
  }
41
41
  async function runCommand(cmd, args, cwd) {
@@ -1 +1 @@
1
- {"version":3,"file":"initUtils.js","sourceRoot":"","sources":["../../../src/cli/generators/initUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initUtils.js","sourceRoot":"","sources":["../../../src/cli/generators/initUtils.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ exports.readme = readme;
4
4
  function readme(projectName) {
5
5
  return `# ${projectName}
6
6
 
7
- Generated by \`runner-dev new\` for Runner 6.1.
7
+ Generated by \`runner-dev new\` for Runner 6.3.
8
8
 
9
9
  ## Quick start
10
10
 
@@ -12,25 +12,41 @@ Generated by \`runner-dev new\` for Runner 6.1.
12
12
  - npm install
13
13
  2. Start the dev server:
14
14
  - npm run dev
15
+ 3. Run the smoke checks:
16
+ - npm run qa
15
17
 
16
18
  The server starts on http://localhost:1337
17
19
 
20
+ On install, the \`postinstall\` script runs \`npm-skills extract --skip-production --override\` via \`npm run skills:extract\`. The \`--skip-production\` flag keeps production installs clean while still extracting skills for local development.
21
+
18
22
  - GraphQL endpoint: http://localhost:1337/graphql (how to query your guts and live telemetry)
19
23
  - Voyager UI: http://localhost:1337/voyager (how the guts of your app look like)
20
24
  - Project docs: http://localhost:1337/docs (beautiful docs with live telemetry and easy task and event dispatching)
21
25
 
22
- ## Runner 6.1 notes
26
+ ## Runner 6.3 notes
23
27
 
24
28
  - Runtime task and resource ids are structural, so user resource segments stay in canonical ids.
25
29
  - \`resource.subtree(...)\` can compose multiple policies with an array.
26
- - Temporal middleware such as \`rateLimit\`, \`debounce\`, and \`throttle\` support per-key partitioning with \`keyBuilder\`.
30
+ - Built-in async context accessors support safe probes via \`tryUse()\` and \`has()\`.
31
+ - Built-in async identity now lives at \`asyncContexts.identity\`, and identity-aware middleware uses \`identityScope\`.
32
+ - Event Lane routing is defined with \`r.eventLane(...).applyTo([...])\`, and topology consume entries use \`{ lane, hooks?: { only } }\`.
33
+ - Subtree middleware conflicts now fail fast instead of silently deferring to local middleware.
27
34
 
28
35
  ## Scripts
29
36
 
30
- - dev: Run with tsx watch (TypeScript ESM)
37
+ - dev: Run with tsx watch
31
38
  - build: Type-check and emit to dist
32
39
  - start: Run built app
33
- - test: Run Jest
40
+ - test: Run Vitest once
41
+ - test:watch: Run Vitest in watch mode
42
+ - qa: Run the minimal verification flow (\`build\` + \`test\`)
43
+ - skills:extract: Refresh extracted skills from installed packages
44
+
45
+ ## Project layout
46
+
47
+ - \`src/app.ts\`: exported root Runner resource definition
48
+ - \`src/main.ts\`: executable entry point for local development
49
+ - \`src/app.test.ts\`: runtime smoke test
34
50
 
35
51
  ## Useful CLI commands
36
52
 
@@ -1 +1 @@
1
- {"version":3,"file":"README.md.js","sourceRoot":"","sources":["../../../../../src/cli/generators/scaffold/templates/README.md.ts"],"names":[],"mappings":";;AAAA,wBAyCC;AAzCD,SAAgB,MAAM,CAAC,WAAmB;IACxC,OAAO,KAAK,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCxB,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"README.md.js","sourceRoot":"","sources":["../../../../../src/cli/generators/scaffold/templates/README.md.ts"],"names":[],"mappings":";;AAAA,wBAyDC;AAzDD,SAAgB,MAAM,CAAC,WAAmB;IACxC,OAAO,KAAK,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDxB,CAAC;AACF,CAAC"}
@@ -1,7 +1,6 @@
1
1
  export { packageJson } from "./package.json";
2
2
  export { tsconfig } from "./tsconfig.json";
3
- export { jestConfig } from "./jest.config.cjs";
4
- export { tsconfigJest } from "./tsconfig.jest.json";
3
+ export { appTs } from "./src/app.ts";
5
4
  export { mainTs } from "./src/main.ts";
6
- export { mainTest } from "./src/main.test.ts";
5
+ export { appTest } from "./src/app.test.ts";
7
6
  export { readme } from "./README.md";
@@ -1,18 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.readme = exports.mainTest = exports.mainTs = exports.tsconfigJest = exports.jestConfig = exports.tsconfig = exports.packageJson = void 0;
3
+ exports.readme = exports.appTest = exports.mainTs = exports.appTs = exports.tsconfig = exports.packageJson = void 0;
4
4
  var package_json_1 = require("./package.json");
5
5
  Object.defineProperty(exports, "packageJson", { enumerable: true, get: function () { return package_json_1.packageJson; } });
6
6
  var tsconfig_json_1 = require("./tsconfig.json");
7
7
  Object.defineProperty(exports, "tsconfig", { enumerable: true, get: function () { return tsconfig_json_1.tsconfig; } });
8
- var jest_config_cjs_1 = require("./jest.config.cjs");
9
- Object.defineProperty(exports, "jestConfig", { enumerable: true, get: function () { return jest_config_cjs_1.jestConfig; } });
10
- var tsconfig_jest_json_1 = require("./tsconfig.jest.json");
11
- Object.defineProperty(exports, "tsconfigJest", { enumerable: true, get: function () { return tsconfig_jest_json_1.tsconfigJest; } });
8
+ var app_ts_1 = require("./src/app.ts");
9
+ Object.defineProperty(exports, "appTs", { enumerable: true, get: function () { return app_ts_1.appTs; } });
12
10
  var main_ts_1 = require("./src/main.ts");
13
11
  Object.defineProperty(exports, "mainTs", { enumerable: true, get: function () { return main_ts_1.mainTs; } });
14
- var main_test_ts_1 = require("./src/main.test.ts");
15
- Object.defineProperty(exports, "mainTest", { enumerable: true, get: function () { return main_test_ts_1.mainTest; } });
12
+ var app_test_ts_1 = require("./src/app.test.ts");
13
+ Object.defineProperty(exports, "appTest", { enumerable: true, get: function () { return app_test_ts_1.appTest; } });
16
14
  var README_md_1 = require("./README.md");
17
15
  Object.defineProperty(exports, "readme", { enumerable: true, get: function () { return README_md_1.readme; } });
18
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/generators/scaffold/templates/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,iDAA2C;AAAlC,yGAAA,QAAQ,OAAA;AACjB,qDAA+C;AAAtC,6GAAA,UAAU,OAAA;AACnB,2DAAoD;AAA3C,kHAAA,YAAY,OAAA;AACrB,yCAAuC;AAA9B,iGAAA,MAAM,OAAA;AACf,mDAA8C;AAArC,wGAAA,QAAQ,OAAA;AACjB,yCAAqC;AAA5B,mGAAA,MAAM,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/generators/scaffold/templates/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,iDAA2C;AAAlC,yGAAA,QAAQ,OAAA;AACjB,uCAAqC;AAA5B,+FAAA,KAAK,OAAA;AACd,yCAAuC;AAA9B,iGAAA,MAAM,OAAA;AACf,iDAA4C;AAAnC,sGAAA,OAAO,OAAA;AAChB,yCAAqC;AAA5B,mGAAA,MAAM,OAAA"}
@@ -7,19 +7,22 @@ export declare function packageJson(projectName: string): {
7
7
  readonly dev: "tsx watch src/main.ts";
8
8
  readonly start: "node --enable-source-maps dist/main.js";
9
9
  readonly build: "tsc -p tsconfig.json";
10
- readonly test: "jest";
11
- readonly "test:watch": "jest --watch";
10
+ readonly test: "vitest run";
11
+ readonly "test:watch": "vitest";
12
+ readonly qa: "npm run build && npm run test";
12
13
  readonly "schema:sdl": "runner-dev schema sdl";
14
+ readonly "skills:extract": "npm-skills extract --skip-production --override";
15
+ readonly postinstall: "npm run skills:extract";
13
16
  };
14
17
  readonly dependencies: {
15
- readonly "@bluelibs/runner": "^6.1.0";
18
+ readonly "@bluelibs/runner": "^6.3.0";
19
+ readonly "npm-skills": "^0.4.0";
16
20
  };
17
21
  readonly devDependencies: {
18
- readonly "@bluelibs/runner-dev": "^6.1.0";
22
+ readonly "@bluelibs/runner-dev": "^6.3.0";
23
+ readonly "@types/node": "^20.0.0";
19
24
  readonly typescript: "^5.6.3";
20
- readonly tsx: "^4.19.2";
21
- readonly jest: "^29.7.0";
22
- readonly "ts-jest": "^29.1.1";
23
- readonly "@types/jest": "^29.5.12";
25
+ readonly tsx: "^4.20.5";
26
+ readonly vitest: "^3.2.4";
24
27
  };
25
28
  };
@@ -11,20 +11,23 @@ function packageJson(projectName) {
11
11
  dev: "tsx watch src/main.ts",
12
12
  start: "node --enable-source-maps dist/main.js",
13
13
  build: "tsc -p tsconfig.json",
14
- test: "jest",
15
- "test:watch": "jest --watch",
14
+ test: "vitest run",
15
+ "test:watch": "vitest",
16
+ qa: "npm run build && npm run test",
16
17
  "schema:sdl": "runner-dev schema sdl",
18
+ "skills:extract": "npm-skills extract --skip-production --override",
19
+ postinstall: "npm run skills:extract",
17
20
  },
18
21
  dependencies: {
19
- "@bluelibs/runner": "^6.1.0",
22
+ "@bluelibs/runner": "^6.3.0",
23
+ "npm-skills": "^0.4.0",
20
24
  },
21
25
  devDependencies: {
22
- "@bluelibs/runner-dev": "^6.1.0",
26
+ "@bluelibs/runner-dev": "^6.3.0",
27
+ "@types/node": "^20.0.0",
23
28
  typescript: "^5.6.3",
24
- tsx: "^4.19.2",
25
- jest: "^29.7.0",
26
- "ts-jest": "^29.1.1",
27
- "@types/jest": "^29.5.12",
29
+ tsx: "^4.20.5",
30
+ vitest: "^3.2.4",
28
31
  },
29
32
  };
30
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"package.json.js","sourceRoot":"","sources":["../../../../../src/cli/generators/scaffold/templates/package.json.ts"],"names":[],"mappings":";;AAAA,kCA0BC;AA1BD,SAAgB,WAAW,CAAC,WAAmB;IAC7C,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE;YACP,GAAG,EAAE,uBAAuB;YAC5B,KAAK,EAAE,wCAAwC;YAC/C,KAAK,EAAE,sBAAsB;YAC7B,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,cAAc;YAC5B,YAAY,EAAE,uBAAuB;SACtC;QACD,YAAY,EAAE;YACZ,kBAAkB,EAAE,QAAQ;SAC7B;QACD,eAAe,EAAE;YACf,sBAAsB,EAAE,QAAQ;YAChC,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,SAAS;YACpB,aAAa,EAAE,UAAU;SAC1B;KACO,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"package.json.js","sourceRoot":"","sources":["../../../../../src/cli/generators/scaffold/templates/package.json.ts"],"names":[],"mappings":";;AAAA,kCA6BC;AA7BD,SAAgB,WAAW,CAAC,WAAmB;IAC7C,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE;YACP,GAAG,EAAE,uBAAuB;YAC5B,KAAK,EAAE,wCAAwC;YAC/C,KAAK,EAAE,sBAAsB;YAC7B,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,QAAQ;YACtB,EAAE,EAAE,+BAA+B;YACnC,YAAY,EAAE,uBAAuB;YACrC,gBAAgB,EAAE,iDAAiD;YACnE,WAAW,EAAE,wBAAwB;SACtC;QACD,YAAY,EAAE;YACZ,kBAAkB,EAAE,QAAQ;YAC5B,YAAY,EAAE,QAAQ;SACvB;QACD,eAAe,EAAE;YACf,sBAAsB,EAAE,QAAQ;YAChC,aAAa,EAAE,SAAS;YACxB,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,SAAS;YACd,MAAM,EAAE,QAAQ;SACjB;KACO,CAAC;AACb,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function appTest(): string;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.appTest = appTest;
4
+ function appTest() {
5
+ return `import { resources, run } from '@bluelibs/runner';
6
+ import { afterEach, describe, expect, it } from 'vitest';
7
+ import { app } from './app';
8
+
9
+ const runtimes: Array<{ dispose: () => Promise<void> }> = [];
10
+
11
+ afterEach(async () => {
12
+ while (runtimes.length > 0) {
13
+ await runtimes.pop()?.dispose();
14
+ }
15
+ });
16
+
17
+ describe('app', () => {
18
+ it('boots the runtime and exposes the dev docs endpoint', async () => {
19
+ const runtime = await run(app);
20
+ runtimes.push(runtime);
21
+ const store = await runtime.getResourceValue(resources.store);
22
+
23
+ expect(runtime).toBeDefined();
24
+ expect(store).toBe(runtime.store);
25
+ });
26
+ });
27
+ `;
28
+ }
29
+ //# sourceMappingURL=app.test.ts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.test.ts.js","sourceRoot":"","sources":["../../../../../../src/cli/generators/scaffold/templates/src/app.test.ts.ts"],"names":[],"mappings":";;AAAA,0BAwBC;AAxBD,SAAgB,OAAO;IACrB,OAAO;;;;;;;;;;;;;;;;;;;;;;CAsBR,CAAC;AACF,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function appTs(projectName: string): string;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.appTs = appTs;
4
+ function appTs(projectName) {
5
+ return `import { r } from '@bluelibs/runner';
6
+ import { dev } from '@bluelibs/runner-dev';
7
+
8
+ export const app = r.resource('${projectName}')
9
+ .register([
10
+ dev.with({ port: 1337 }),
11
+ ])
12
+ .build();
13
+ `;
14
+ }
15
+ //# sourceMappingURL=app.ts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.ts.js","sourceRoot":"","sources":["../../../../../../src/cli/generators/scaffold/templates/src/app.ts.ts"],"names":[],"mappings":";;AAAA,sBAUC;AAVD,SAAgB,KAAK,CAAC,WAAmB;IACvC,OAAO;;;iCAGwB,WAAW;;;;;CAK3C,CAAC;AACF,CAAC"}
@@ -2,7 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mainTest = mainTest;
4
4
  function mainTest() {
5
- return `describe('smoke', () => {
5
+ return `import { describe, expect, it } from 'vitest';
6
+
7
+ describe('smoke', () => {
6
8
  it('works', () => {
7
9
  expect(1 + 1).toBe(2);
8
10
  });
@@ -1 +1 @@
1
- {"version":3,"file":"main.test.ts.js","sourceRoot":"","sources":["../../../../../../src/cli/generators/scaffold/templates/src/main.test.ts.ts"],"names":[],"mappings":";;AAAA,4BAOC;AAPD,SAAgB,QAAQ;IACtB,OAAO;;;;;CAKR,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"main.test.ts.js","sourceRoot":"","sources":["../../../../../../src/cli/generators/scaffold/templates/src/main.test.ts.ts"],"names":[],"mappings":";;AAAA,4BASC;AATD,SAAgB,QAAQ;IACtB,OAAO;;;;;;;CAOR,CAAC;AACF,CAAC"}
@@ -2,19 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mainTs = mainTs;
4
4
  function mainTs(projectName) {
5
- return `import { r, run } from '@bluelibs/runner';
6
- import { dev } from '@bluelibs/runner-dev';
7
-
8
- // Minimal Runner 6.1 app using a root resource and runner-dev's dev resource
9
- const app = r.resource('${projectName}')
10
- .register([
11
- dev.with({ port: 1337 }),
12
- ])
13
- .build();
5
+ return `import { run } from '@bluelibs/runner';
6
+ import { app } from './app';
14
7
 
15
8
  run(app)
16
9
  .then(({ logger }) => {
17
- logger.info('Runner app started on http://localhost:1337');
10
+ logger.info('${projectName} is running!');
18
11
  })
19
12
  .catch((err) => {
20
13
  // eslint-disable-next-line no-console
@@ -1 +1 @@
1
- {"version":3,"file":"main.ts.js","sourceRoot":"","sources":["../../../../../../src/cli/generators/scaffold/templates/src/main.ts.ts"],"names":[],"mappings":";;AAAA,wBAqBC;AArBD,SAAgB,MAAM,CAAC,WAAmB;IACxC,OAAO;;;;0BAIiB,WAAW;;;;;;;;;;;;;;;CAepC,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"main.ts.js","sourceRoot":"","sources":["../../../../../../src/cli/generators/scaffold/templates/src/main.ts.ts"],"names":[],"mappings":";;AAAA,wBAcC;AAdD,SAAgB,MAAM,CAAC,WAAmB;IACxC,OAAO;;;;;mBAKU,WAAW;;;;;;;CAO7B,CAAC;AACF,CAAC"}
@@ -4,6 +4,7 @@ export declare function tsconfig(): {
4
4
  readonly module: "Node16";
5
5
  readonly moduleResolution: "node16";
6
6
  readonly strict: true;
7
+ readonly types: readonly ["node"];
7
8
  readonly esModuleInterop: true;
8
9
  readonly forceConsistentCasingInFileNames: true;
9
10
  readonly declaration: true;
@@ -14,4 +15,5 @@ export declare function tsconfig(): {
14
15
  readonly lib: readonly ["ESNext"];
15
16
  };
16
17
  readonly include: readonly ["src"];
18
+ readonly exclude: readonly ["src/**/*.test.ts"];
17
19
  };
@@ -8,6 +8,7 @@ function tsconfig() {
8
8
  module: "Node16",
9
9
  moduleResolution: "node16",
10
10
  strict: true,
11
+ types: ["node"],
11
12
  esModuleInterop: true,
12
13
  forceConsistentCasingInFileNames: true,
13
14
  declaration: true,
@@ -18,6 +19,7 @@ function tsconfig() {
18
19
  lib: ["ESNext"],
19
20
  },
20
21
  include: ["src"],
22
+ exclude: ["src/**/*.test.ts"],
21
23
  };
22
24
  }
23
25
  //# sourceMappingURL=tsconfig.json.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tsconfig.json.js","sourceRoot":"","sources":["../../../../../src/cli/generators/scaffold/templates/tsconfig.json.ts"],"names":[],"mappings":";;AAAA,4BAkBC;AAlBD,SAAgB,QAAQ;IACtB,OAAO;QACL,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,gBAAgB,EAAE,QAAQ;YAC1B,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,IAAI;YACrB,gCAAgC,EAAE,IAAI;YACtC,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,IAAI;YAClB,iBAAiB,EAAE,IAAI;YACvB,GAAG,EAAE,CAAC,QAAQ,CAAC;SAChB;QACD,OAAO,EAAE,CAAC,KAAK,CAAC;KACR,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"tsconfig.json.js","sourceRoot":"","sources":["../../../../../src/cli/generators/scaffold/templates/tsconfig.json.ts"],"names":[],"mappings":";;AAAA,4BAoBC;AApBD,SAAgB,QAAQ;IACtB,OAAO;QACL,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,gBAAgB,EAAE,QAAQ;YAC1B,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,CAAC,MAAM,CAAC;YACf,eAAe,EAAE,IAAI;YACrB,gCAAgC,EAAE,IAAI;YACtC,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,IAAI;YAClB,iBAAiB,EAAE,IAAI;YACvB,GAAG,EAAE,CAAC,QAAQ,CAAC;SAChB;QACD,OAAO,EAAE,CAAC,KAAK,CAAC;QAChB,OAAO,EAAE,CAAC,kBAAkB,CAAC;KACrB,CAAC;AACb,CAAC"}
@@ -36,11 +36,10 @@ async function scaffold(opts) {
36
36
  // Use template renderers
37
37
  await (0, initUtils_1.writeJson)(path_1.default.join(targetDir, "package.json"), templates.packageJson(projectName));
38
38
  await (0, initUtils_1.writeJson)(path_1.default.join(targetDir, "tsconfig.json"), templates.tsconfig());
39
- await (0, initUtils_1.writeFile)(path_1.default.join(targetDir, "jest.config.cjs"), templates.jestConfig());
40
- await (0, initUtils_1.writeJson)(path_1.default.join(targetDir, "tsconfig.jest.json"), templates.tsconfigJest());
41
39
  await (0, initUtils_1.ensureDir)(path_1.default.join(targetDir, "src"));
40
+ await (0, initUtils_1.writeFile)(path_1.default.join(targetDir, "src", "app.ts"), templates.appTs(projectName));
42
41
  await (0, initUtils_1.writeFile)(path_1.default.join(targetDir, "src", "main.ts"), templates.mainTs(projectName));
43
- await (0, initUtils_1.writeFile)(path_1.default.join(targetDir, "src", "main.test.ts"), templates.mainTest());
42
+ await (0, initUtils_1.writeFile)(path_1.default.join(targetDir, "src", "app.test.ts"), templates.appTest());
44
43
  await (0, initUtils_1.writeFile)(path_1.default.join(targetDir, "README.md"), templates.readme(projectName));
45
44
  await (0, initUtils_1.writeGitignore)(targetDir);
46
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/cli/generators/scaffold.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,4BAkCC;AA3CD,gDAAwB;AACxB,2CAA8E;AAC9E,gEAAkD;AAO3C,KAAK,UAAU,QAAQ,CAAC,IAAqB;IAClD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAExC,+CAA+C;IAE/C,yBAAyB;IACzB,MAAM,IAAA,qBAAS,EACb,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EACpC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CACnC,CAAC;IACF,MAAM,IAAA,qBAAS,EAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7E,MAAM,IAAA,qBAAS,EACb,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EACvC,SAAS,CAAC,UAAU,EAAE,CACvB,CAAC;IACF,MAAM,IAAA,qBAAS,EACb,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAC1C,SAAS,CAAC,YAAY,EAAE,CACzB,CAAC;IAEF,MAAM,IAAA,qBAAS,EAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7C,MAAM,IAAA,qBAAS,EACb,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,EACtC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAC9B,CAAC;IACF,MAAM,IAAA,qBAAS,EACb,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,EAC3C,SAAS,CAAC,QAAQ,EAAE,CACrB,CAAC;IACF,MAAM,IAAA,qBAAS,EACb,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EACjC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAC9B,CAAC;IACF,MAAM,IAAA,0BAAc,EAAC,SAAS,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/cli/generators/scaffold.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,4BA8BC;AAvCD,gDAAwB;AACxB,2CAA8E;AAC9E,gEAAkD;AAO3C,KAAK,UAAU,QAAQ,CAAC,IAAqB;IAClD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAExC,+CAA+C;IAE/C,yBAAyB;IACzB,MAAM,IAAA,qBAAS,EACb,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EACpC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CACnC,CAAC;IACF,MAAM,IAAA,qBAAS,EAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE7E,MAAM,IAAA,qBAAS,EAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7C,MAAM,IAAA,qBAAS,EACb,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,EACrC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAC7B,CAAC;IACF,MAAM,IAAA,qBAAS,EACb,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,EACtC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAC9B,CAAC;IACF,MAAM,IAAA,qBAAS,EACb,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,aAAa,CAAC,EAC1C,SAAS,CAAC,OAAO,EAAE,CACpB,CAAC;IACF,MAAM,IAAA,qBAAS,EACb,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EACjC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAC9B,CAAC;IACF,MAAM,IAAA,0BAAc,EAAC,SAAS,CAAC,CAAC;AAClC,CAAC"}