@bluelibs/runner-dev 4.1.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/AI.md +40 -43
  2. package/README.md +70 -0
  3. package/dist/architect/core/errors.d.ts +39 -0
  4. package/dist/architect/core/errors.js +143 -0
  5. package/dist/architect/core/errors.js.map +1 -0
  6. package/dist/architect/core/index.d.ts +3 -0
  7. package/dist/architect/core/index.js +21 -0
  8. package/dist/architect/core/index.js.map +1 -0
  9. package/dist/architect/core/interfaces.d.ts +158 -0
  10. package/dist/architect/core/interfaces.js +3 -0
  11. package/dist/architect/core/interfaces.js.map +1 -0
  12. package/dist/architect/core/types.d.ts +544 -0
  13. package/dist/architect/core/types.js +49 -0
  14. package/dist/architect/core/types.js.map +1 -0
  15. package/dist/architect/execution/executor.d.ts +23 -0
  16. package/dist/architect/execution/executor.js +476 -0
  17. package/dist/architect/execution/executor.js.map +1 -0
  18. package/dist/architect/execution/index.d.ts +1 -0
  19. package/dist/architect/execution/index.js +19 -0
  20. package/dist/architect/execution/index.js.map +1 -0
  21. package/dist/architect/executor.d.ts +7 -0
  22. package/dist/architect/executor.js +150 -0
  23. package/dist/architect/executor.js.map +1 -0
  24. package/dist/architect/index.d.ts +45 -0
  25. package/dist/architect/index.js +76 -0
  26. package/dist/architect/index.js.map +1 -0
  27. package/dist/architect/llmClient.d.ts +10 -0
  28. package/dist/architect/llmClient.js +33 -0
  29. package/dist/architect/llmClient.js.map +1 -0
  30. package/dist/architect/models/base.d.ts +16 -0
  31. package/dist/architect/models/base.js +68 -0
  32. package/dist/architect/models/base.js.map +1 -0
  33. package/dist/architect/models/factory.d.ts +16 -0
  34. package/dist/architect/models/factory.js +73 -0
  35. package/dist/architect/models/factory.js.map +1 -0
  36. package/dist/architect/models/index.d.ts +3 -0
  37. package/dist/architect/models/index.js +21 -0
  38. package/dist/architect/models/index.js.map +1 -0
  39. package/dist/architect/models/openai.d.ts +7 -0
  40. package/dist/architect/models/openai.js +71 -0
  41. package/dist/architect/models/openai.js.map +1 -0
  42. package/dist/architect/planner.d.ts +9 -0
  43. package/dist/architect/planner.js +42 -0
  44. package/dist/architect/planner.js.map +1 -0
  45. package/dist/architect/planning/index.d.ts +4 -0
  46. package/dist/architect/planning/index.js +22 -0
  47. package/dist/architect/planning/index.js.map +1 -0
  48. package/dist/architect/planning/optimizer.d.ts +14 -0
  49. package/dist/architect/planning/optimizer.js +275 -0
  50. package/dist/architect/planning/optimizer.js.map +1 -0
  51. package/dist/architect/planning/planner.d.ts +15 -0
  52. package/dist/architect/planning/planner.js +124 -0
  53. package/dist/architect/planning/planner.js.map +1 -0
  54. package/dist/architect/planning/prompts.d.ts +6 -0
  55. package/dist/architect/planning/prompts.js +111 -0
  56. package/dist/architect/planning/prompts.js.map +1 -0
  57. package/dist/architect/planning/validator.d.ts +16 -0
  58. package/dist/architect/planning/validator.js +331 -0
  59. package/dist/architect/planning/validator.js.map +1 -0
  60. package/dist/architect/prompt.d.ts +1 -0
  61. package/dist/architect/prompt.js +13 -0
  62. package/dist/architect/prompt.js.map +1 -0
  63. package/dist/architect/types.d.ts +4 -0
  64. package/dist/architect/types.js +24 -0
  65. package/dist/architect/types.js.map +1 -0
  66. package/dist/cli/format.d.ts +19 -0
  67. package/dist/cli/format.js +62 -0
  68. package/dist/cli/format.js.map +1 -0
  69. package/dist/cli/init.d.ts +1 -0
  70. package/dist/cli/init.js +279 -0
  71. package/dist/cli/init.js.map +1 -0
  72. package/dist/cli/query.js +69 -0
  73. package/dist/cli/query.js.map +1 -1
  74. package/dist/cli.js +48 -21
  75. package/dist/cli.js.map +1 -1
  76. package/dist/code.d.ts +50 -0
  77. package/dist/code.js +357 -0
  78. package/dist/code.js.map +1 -0
  79. package/dist/generated/resolvers-types.d.ts +150 -29
  80. package/dist/index.d.ts +6 -0
  81. package/dist/index.js +2 -0
  82. package/dist/index.js.map +1 -1
  83. package/dist/resources/cli.config.resource.d.ts +7 -0
  84. package/dist/resources/cli.config.resource.js +11 -0
  85. package/dist/resources/cli.config.resource.js.map +1 -0
  86. package/dist/resources/coverage.resource.d.ts +19 -0
  87. package/dist/resources/coverage.resource.js +213 -0
  88. package/dist/resources/coverage.resource.js.map +1 -0
  89. package/dist/resources/dev.resource.js +0 -2
  90. package/dist/resources/dev.resource.js.map +1 -1
  91. package/dist/resources/graphql.cli.resource.d.ts +4 -0
  92. package/dist/resources/graphql.cli.resource.js +27 -0
  93. package/dist/resources/graphql.cli.resource.js.map +1 -0
  94. package/dist/resources/graphql.query.cli.task.d.ts +47 -0
  95. package/dist/resources/graphql.query.cli.task.js +54 -0
  96. package/dist/resources/graphql.query.cli.task.js.map +1 -0
  97. package/dist/resources/introspector.cli.resource.d.ts +6 -0
  98. package/dist/resources/introspector.cli.resource.js +17 -0
  99. package/dist/resources/introspector.cli.resource.js.map +1 -0
  100. package/dist/resources/live.resource.d.ts +2 -1
  101. package/dist/resources/live.resource.js +4 -2
  102. package/dist/resources/live.resource.js.map +1 -1
  103. package/dist/resources/models/Introspector.d.ts +1 -1
  104. package/dist/resources/models/Introspector.js +5 -34
  105. package/dist/resources/models/Introspector.js.map +1 -1
  106. package/dist/resources/models/initializeFromStore.js +26 -34
  107. package/dist/resources/models/initializeFromStore.js.map +1 -1
  108. package/dist/resources/models/initializeFromStore.utils.js +25 -6
  109. package/dist/resources/models/initializeFromStore.utils.js.map +1 -1
  110. package/dist/resources/models/introspector.tools.js +2 -2
  111. package/dist/resources/models/introspector.tools.js.map +1 -1
  112. package/dist/resources/routeHandlers/getDocsData.d.ts +6 -0
  113. package/dist/resources/routeHandlers/getDocsData.js +106 -0
  114. package/dist/resources/routeHandlers/getDocsData.js.map +1 -1
  115. package/dist/resources/routeHandlers/registerHttpRoutes.hook.d.ts +4 -0
  116. package/dist/resources/routeHandlers/registerHttpRoutes.hook.js +9 -7
  117. package/dist/resources/routeHandlers/registerHttpRoutes.hook.js.map +1 -1
  118. package/dist/resources/server.resource.d.ts +3 -0
  119. package/dist/resources/server.resource.js +8 -1
  120. package/dist/resources/server.resource.js.map +1 -1
  121. package/dist/resources/swap.cli.resource.d.ts +11 -0
  122. package/dist/resources/swap.cli.resource.js +54 -0
  123. package/dist/resources/swap.cli.resource.js.map +1 -0
  124. package/dist/schema/context.d.ts +2 -0
  125. package/dist/schema/model.d.ts +4 -1
  126. package/dist/schema/model.js.map +1 -1
  127. package/dist/schema/mutation.js +38 -0
  128. package/dist/schema/mutation.js.map +1 -1
  129. package/dist/schema/query.js +22 -18
  130. package/dist/schema/query.js.map +1 -1
  131. package/dist/schema/types/BaseElementCommon.d.ts +2 -4
  132. package/dist/schema/types/BaseElementCommon.js +28 -0
  133. package/dist/schema/types/BaseElementCommon.js.map +1 -1
  134. package/dist/schema/types/CoverageType.d.ts +7 -0
  135. package/dist/schema/types/CoverageType.js +54 -0
  136. package/dist/schema/types/CoverageType.js.map +1 -0
  137. package/dist/schema/types/LiveType.js +4 -0
  138. package/dist/schema/types/LiveType.js.map +1 -1
  139. package/dist/schema/types/ResourceType.js +6 -0
  140. package/dist/schema/types/ResourceType.js.map +1 -1
  141. package/dist/schema/types/TagType.js +4 -3
  142. package/dist/schema/types/TagType.js.map +1 -1
  143. package/dist/schema/types/index.d.ts +1 -0
  144. package/dist/schema/types/index.js +3 -1
  145. package/dist/schema/types/index.js.map +1 -1
  146. package/dist/ui/.vite/manifest.json +2 -2
  147. package/dist/ui/assets/docs-DR80KoAA.js +416 -0
  148. package/dist/ui/assets/docs-DR80KoAA.js.map +1 -0
  149. package/dist/ui/assets/docs-WKK9Zcu5.css +1 -0
  150. package/dist/utils/path.js +10 -0
  151. package/dist/utils/path.js.map +1 -1
  152. package/package.json +12 -8
  153. package/dist/ui/assets/docs-DVEzFAJo.css +0 -1
  154. package/dist/ui/assets/docs-l9XdmrRL.js +0 -174
@@ -0,0 +1,279 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.main = main;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const promises_1 = __importDefault(require("fs/promises"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const child_process_1 = require("child_process");
11
+ const format_1 = require("./format");
12
+ async function main(argv) {
13
+ const [, , , rawName] = argv;
14
+ const flagArgs = argv.slice(4);
15
+ const flagSet = new Set(flagArgs.filter((a) => a && a.startsWith("--")).map((a) => a.slice(2)));
16
+ const shouldInstall = flagSet.has("install");
17
+ const shouldRun = flagSet.has("run");
18
+ const shouldRunTests = flagSet.has("run-tests") || flagSet.has("runTests");
19
+ const projectName = (rawName || "my-runner-project").trim();
20
+ if (!/^[a-zA-Z0-9_-]+$/.test(projectName)) {
21
+ // eslint-disable-next-line no-console
22
+ console.error("Invalid project name. Use only letters, numbers, dashes and underscores.");
23
+ process.exit(1);
24
+ }
25
+ const targetDir = path_1.default.resolve(process.cwd(), projectName);
26
+ await ensureEmptyDir(targetDir);
27
+ const options = { projectName, targetDir };
28
+ await scaffold(options);
29
+ // eslint-disable-next-line no-console
30
+ console.log(`\n${format_1.c.green("Project created in")} ${format_1.c.bold(targetDir)}.`);
31
+ // Helpful options & commands
32
+ const flags = (0, format_1.alignRows)([
33
+ [format_1.c.yellow("--install"), "Install dependencies after scaffold"],
34
+ [format_1.c.yellow("--run"), "Run 'npm run dev' after scaffold (keeps running)"],
35
+ [format_1.c.yellow("--run-tests"), "Run 'npm test' after scaffold"],
36
+ ], { gap: 4, indent: 2 });
37
+ const quick = (0, format_1.indentLines)([
38
+ `${format_1.c.gray("# Query your GraphQL endpoint")}`,
39
+ `ENDPOINT=http://localhost:1337/graphql ${format_1.c.cmd("npx runner-dev query")} 'query { tasks { id } }' --format pretty`,
40
+ `${format_1.c.gray("# Print SDL")}`,
41
+ `${format_1.c.cmd("npx runner-dev schema sdl")} --endpoint http://localhost:1337/graphql`,
42
+ ].join("\n"), 2);
43
+ const headersExample = 'HEADERS=\'{"Authorization":"Bearer ..."}\'';
44
+ const env = (0, format_1.alignRows)([
45
+ [format_1.c.bold("ENDPOINT / GRAPHQL_ENDPOINT"), "GraphQL endpoint URL"],
46
+ [format_1.c.bold(headersExample), "Add HTTP headers (JSON)"],
47
+ [format_1.c.bold("ALLOW_MUTATIONS=true"), "Enable mutations tool"],
48
+ ], { gap: 4, indent: 2 });
49
+ // eslint-disable-next-line no-console
50
+ console.log([
51
+ "",
52
+ format_1.c.title("Helpful options & commands"),
53
+ (0, format_1.divider)(),
54
+ format_1.c.bold("Flags for 'runner-dev new'"),
55
+ flags,
56
+ "",
57
+ format_1.c.bold("Quick commands"),
58
+ quick,
59
+ "",
60
+ format_1.c.bold("Environment"),
61
+ env,
62
+ "",
63
+ ].join("\n"));
64
+ // eslint-disable-next-line no-console
65
+ console.log([
66
+ format_1.c.bold("Endpoints"),
67
+ (0, format_1.alignRows)([
68
+ [format_1.c.cyan("GraphQL"), "http://localhost:1337/graphql"],
69
+ [format_1.c.cyan("Voyager"), "http://localhost:1337/voyager"],
70
+ [format_1.c.cyan("Docs"), "http://localhost:1337/docs"],
71
+ ], { gap: 4, indent: 2 }),
72
+ ].join("\n"));
73
+ // Execute optional post-scaffold actions
74
+ if (shouldInstall || shouldRunTests || shouldRun) {
75
+ console.log("\nInstalling dependencies...\n");
76
+ await runCommand("npm", ["install", "--prefer-offline", "--no-audit", "--no-fund"], targetDir);
77
+ }
78
+ if (shouldRunTests) {
79
+ console.log("\nRunning tests...\n");
80
+ await runCommand("npm", ["run", "test", "--", "--runInBand"], targetDir);
81
+ }
82
+ if (shouldRun) {
83
+ console.log("\nStarting dev server... (Ctrl+C to stop)\n");
84
+ await runCommand("npm", ["run", "dev"], targetDir);
85
+ }
86
+ // eslint-disable-next-line no-console
87
+ console.log(`\n${format_1.c.bold("Next steps")}\n${(0, format_1.alignRows)([
88
+ [format_1.c.cmd(`cd ${projectName}`), "enter project directory"],
89
+ [format_1.c.cmd("npm install"), "install dependencies"],
90
+ [format_1.c.cmd("npm run dev"), "start local dev server"],
91
+ ], { gap: 4, indent: 2 })}`);
92
+ }
93
+ async function ensureEmptyDir(dir) {
94
+ if (fs_1.default.existsSync(dir)) {
95
+ const entries = await promises_1.default.readdir(dir);
96
+ if (entries.length > 0) {
97
+ // eslint-disable-next-line no-console
98
+ console.error(`Target directory '${path_1.default.basename(dir)}' already exists and is not empty.`);
99
+ process.exit(1);
100
+ }
101
+ return;
102
+ }
103
+ await promises_1.default.mkdir(dir, { recursive: true });
104
+ }
105
+ async function scaffold(opts) {
106
+ const { targetDir, projectName } = opts;
107
+ const pkg = {
108
+ name: projectName,
109
+ version: "0.1.0",
110
+ private: true,
111
+ type: "module",
112
+ scripts: {
113
+ dev: "tsx watch src/main.ts",
114
+ start: "node dist/main.js",
115
+ build: "tsc -p tsconfig.json",
116
+ test: "jest",
117
+ "test:watch": "jest --watch",
118
+ "schema:sdl": "runner-dev schema sdl",
119
+ },
120
+ dependencies: {
121
+ "@bluelibs/runner": "^4.0.0",
122
+ },
123
+ devDependencies: {
124
+ "@bluelibs/runner-dev": "^4.0.0",
125
+ typescript: "^5.6.3",
126
+ tsx: "^4.19.2",
127
+ jest: "^29.7.0",
128
+ "ts-jest": "^29.1.1",
129
+ "@types/jest": "^29.5.12",
130
+ "source-map-support": "^0.5.21",
131
+ },
132
+ };
133
+ const tsconfig = {
134
+ compilerOptions: {
135
+ target: "ESNext",
136
+ module: "Node16",
137
+ moduleResolution: "node16",
138
+ strict: true,
139
+ esModuleInterop: true,
140
+ forceConsistentCasingInFileNames: true,
141
+ declaration: true,
142
+ outDir: "dist",
143
+ rootDir: "src",
144
+ skipLibCheck: true,
145
+ resolveJsonModule: true,
146
+ lib: ["ESNext"],
147
+ },
148
+ include: ["src"],
149
+ };
150
+ const jestConfig = `/** @type {import('jest').Config} */
151
+ module.exports = {
152
+ preset: 'ts-jest/presets/default-esm',
153
+ testEnvironment: 'node',
154
+ roots: ['<rootDir>/src'],
155
+ moduleFileExtensions: ['ts', 'tsx', 'js'],
156
+ extensionsToTreatAsEsm: ['.ts', '.tsx'],
157
+ transform: {
158
+ '^.+\\.(ts|tsx)$': [
159
+ 'ts-jest',
160
+ {
161
+ useESM: true,
162
+ tsconfig: 'tsconfig.jest.json',
163
+ },
164
+ ],
165
+ },
166
+ };
167
+ `;
168
+ const tsconfigJest = {
169
+ extends: "./tsconfig.json",
170
+ compilerOptions: {
171
+ module: "CommonJS",
172
+ moduleResolution: "node",
173
+ target: "ES2019",
174
+ esModuleInterop: true,
175
+ isolatedModules: false,
176
+ },
177
+ include: ["src/**/*.ts", "src/**/*.tsx"],
178
+ };
179
+ const mainTs = `import 'source-map-support/register';
180
+ import { run, resource } from '@bluelibs/runner';
181
+ import { dev } from '@bluelibs/runner-dev';
182
+
183
+ // Minimal Runner app using runner-dev's dev resource
184
+ const app = resource({
185
+ id: 'app.${projectName}',
186
+ register: [
187
+ dev.with({ port: 1337 }),
188
+ ],
189
+ });
190
+
191
+ run(app)
192
+ .then(() => {
193
+ // eslint-disable-next-line no-console
194
+ console.log('Runner app started on http://localhost:1337');
195
+ })
196
+ .catch((err) => {
197
+ // eslint-disable-next-line no-console
198
+ console.error(err);
199
+ process.exit(1);
200
+ });
201
+ `;
202
+ const exampleTest = `describe('smoke', () => {
203
+ it('works', () => {
204
+ expect(1 + 1).toBe(2);
205
+ });
206
+ });
207
+ `;
208
+ const readme = `# ${projectName}
209
+
210
+ Generated by \`runner-dev new\`.
211
+
212
+ ## Quick start
213
+
214
+ 1. Install dependencies:
215
+ - npm install
216
+ 2. Start the dev server:
217
+ - npm run dev
218
+
219
+ The server starts on http://localhost:1337
220
+
221
+ - GraphQL endpoint: http://localhost:1337/graphql (how to query your guts and live telemetry)
222
+ - Voyager UI: http://localhost:1337/voyager (how the guts of your app look like)
223
+ - Project docs: http://localhost:1337/docs (beautiful docs with live telemetry and easy task and event dispatching)
224
+
225
+ ## Scripts
226
+
227
+ - dev: Run with tsx watch (TypeScript ESM)
228
+ - build: Type-check and emit to dist
229
+ - start: Run built app
230
+ - test: Run Jest
231
+
232
+ ## Useful CLI commands
233
+
234
+ These commands are available from \`@bluelibs/runner-dev\`:
235
+
236
+ - Query your API:
237
+ - ENDPOINT=http://localhost:1337/graphql npx runner-dev query 'query { tasks { id } }' --format pretty
238
+ - Print the GraphQL schema SDL:
239
+ - npx runner-dev schema sdl --endpoint http://localhost:1337/graphql
240
+
241
+ `;
242
+ await writeJson(path_1.default.join(targetDir, "package.json"), pkg);
243
+ await writeJson(path_1.default.join(targetDir, "tsconfig.json"), tsconfig);
244
+ await writeFile(path_1.default.join(targetDir, "jest.config.cjs"), jestConfig);
245
+ await writeJson(path_1.default.join(targetDir, "tsconfig.jest.json"), tsconfigJest);
246
+ await promises_1.default.mkdir(path_1.default.join(targetDir, "src"), { recursive: true });
247
+ await writeFile(path_1.default.join(targetDir, "src", "main.ts"), mainTs);
248
+ await writeFile(path_1.default.join(targetDir, "src", "main.test.ts"), exampleTest);
249
+ await writeFile(path_1.default.join(targetDir, "README.md"), readme);
250
+ await writeGitignore(targetDir);
251
+ }
252
+ async function writeJson(filePath, data) {
253
+ const content = JSON.stringify(data, null, 2) + "\n";
254
+ await writeFile(filePath, content);
255
+ }
256
+ async function writeFile(filePath, content) {
257
+ await promises_1.default.writeFile(filePath, content, { encoding: "utf8" });
258
+ }
259
+ async function writeGitignore(targetDir) {
260
+ const content = `node_modules\n.dist\ndist\n.env\n\n`;
261
+ await writeFile(path_1.default.join(targetDir, ".gitignore"), content);
262
+ }
263
+ async function runCommand(cmd, args, cwd) {
264
+ await new Promise((resolve, reject) => {
265
+ const child = (0, child_process_1.spawn)(cmd, args, {
266
+ cwd,
267
+ stdio: "inherit",
268
+ env: process.env,
269
+ });
270
+ child.on("close", (code) => {
271
+ if (code === 0)
272
+ resolve();
273
+ else
274
+ reject(new Error(`${cmd} ${args.join(" ")} exited with code ${code}`));
275
+ });
276
+ child.on("error", reject);
277
+ });
278
+ }
279
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
package/dist/cli/query.js CHANGED
@@ -1,9 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
3
6
  Object.defineProperty(exports, "__esModule", { value: true });
4
7
  exports.main = main;
5
8
  require("source-map-support/register");
6
9
  const shared_1 = require("./shared");
10
+ const node_path_1 = __importDefault(require("node:path"));
11
+ const node_url_1 = require("node:url");
12
+ const runner_1 = require("@bluelibs/runner");
13
+ const graphql_cli_resource_1 = require("../resources/graphql.cli.resource");
7
14
  function printHelp() {
8
15
  // eslint-disable-next-line no-console
9
16
  console.log(`
@@ -20,6 +27,8 @@ Options:
20
27
  --format <fmt> data|json|pretty (default: data)
21
28
  --raw Output full GraphQL response (with errors)
22
29
  --namespace <str> Convenience filter for idIncludes
30
+ --entry-file <path> TS entry file exporting default or named app
31
+ --export <name> Named export to use (default export preferred)
23
32
  `);
24
33
  }
25
34
  async function main(argv) {
@@ -46,6 +55,8 @@ async function main(argv) {
46
55
  }
47
56
  const endpoint = opts.get("endpoint") || undefined;
48
57
  const headersJson = opts.get("headers") || undefined;
58
+ const entryFile = opts.get("entry-file") || undefined;
59
+ const exportName = opts.get("export") || undefined;
49
60
  const variables = (0, shared_1.parseVariablesOption)(opts.get("variables"));
50
61
  const operationName = opts.get("operation") || undefined;
51
62
  const format = (opts.get("format") || "data");
@@ -55,6 +66,64 @@ async function main(argv) {
55
66
  query = (0, shared_1.applyNamespaceFilter)(query, namespace);
56
67
  }
57
68
  try {
69
+ // Prefer dry-run entry-file mode when provided
70
+ if (entryFile) {
71
+ // Auto-load TypeScript; require ts-node/register/transpile-only
72
+ try {
73
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
74
+ require("ts-node/register/transpile-only");
75
+ }
76
+ catch (e) {
77
+ throw new Error(`TypeScript loader not available. Please install ts-node. Original error: ${e.message}`);
78
+ }
79
+ const abs = node_path_1.default.isAbsolute(entryFile)
80
+ ? entryFile
81
+ : node_path_1.default.resolve(process.cwd(), entryFile);
82
+ const mod = await import((0, node_url_1.pathToFileURL)(abs).href);
83
+ const entry = (exportName ? mod?.[exportName] : mod?.default) ?? mod?.app ?? null;
84
+ if (!entry) {
85
+ throw new Error(`Entry not found. Provide a default export or use --export <name>.`);
86
+ }
87
+ // First pass: dry-run to get the Store
88
+ const dry = await (0, runner_1.run)(entry, { dryRun: true });
89
+ const customStore = dry.store;
90
+ if (!customStore) {
91
+ throw new Error("Dry-run did not return a store.");
92
+ }
93
+ // Second pass: run the GraphQL harness with the custom store
94
+ const harness = await (0, runner_1.run)(graphql_cli_resource_1.graphqlCli.with({ customStore }));
95
+ try {
96
+ const res = await harness.runTask("runner-dev.tasks.graphqlQueryCli", {
97
+ query,
98
+ variables,
99
+ operationName,
100
+ });
101
+ const envelope = {
102
+ data: res?.ok ? res?.data ?? null : null,
103
+ errors: res?.ok
104
+ ? undefined
105
+ : Array.isArray(res?.errors)
106
+ ? res?.errors?.map((m) => ({ message: String(m) }))
107
+ : undefined,
108
+ };
109
+ if (!raw && envelope?.errors?.length) {
110
+ // eslint-disable-next-line no-console
111
+ console.error(JSON.stringify(envelope.errors, null, 2));
112
+ // eslint-disable-next-line no-process-exit
113
+ process.exit(1);
114
+ }
115
+ // eslint-disable-next-line no-console
116
+ console.log((0, shared_1.formatOutput)(envelope, { format, raw }));
117
+ }
118
+ finally {
119
+ try {
120
+ await harness.dispose();
121
+ }
122
+ catch { }
123
+ }
124
+ return;
125
+ }
126
+ // Fallback to remote endpoint execution
58
127
  const result = await (0, shared_1.execRemote)({
59
128
  endpoint,
60
129
  headersJson,
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/cli/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/cli/query.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -2,31 +2,53 @@
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  require("source-map-support/register");
5
+ const format_1 = require("./cli/format");
5
6
  const subcommand = process.argv[2];
6
7
  async function run() {
7
8
  if (!subcommand || ["help", "-h", "--help"].includes(subcommand)) {
9
+ const title = format_1.c.title("runner-dev CLI");
10
+ const usage = (0, format_1.alignRows)([
11
+ [format_1.c.cmd("runner-dev mcp"), "Start the MCP GraphQL server over stdio"],
12
+ [format_1.c.cmd("runner-dev query"), "Run a GraphQL query against an endpoint"],
13
+ [
14
+ format_1.c.cmd("runner-dev new"),
15
+ "Scaffold a new Runner TypeScript project (or populate existing directory)",
16
+ ],
17
+ [format_1.c.cmd("runner-dev overview"), "Print Markdown project overview"],
18
+ [format_1.c.cmd("runner-dev schema"), "Print SDL or introspection JSON"],
19
+ [format_1.c.cmd("runner-dev ping"), "Ping GraphQL endpoint"],
20
+ ], { gap: 3, indent: 2 });
21
+ const headersExample = 'HEADERS=\'{"Authorization":"Bearer ..."}\'';
22
+ const env = (0, format_1.alignRows)([
23
+ [format_1.c.bold("ENDPOINT / GRAPHQL_ENDPOINT"), "GraphQL endpoint URL"],
24
+ [format_1.c.bold("ALLOW_MUTATIONS=true"), "Enable mutations tool"],
25
+ [format_1.c.bold(headersExample), "Extra headers JSON"],
26
+ ], { gap: 3, indent: 2 });
27
+ const examples = (0, format_1.indentLines)([
28
+ `${format_1.c.gray("# Start MCP over stdio against an endpoint")}`,
29
+ `ENDPOINT=http://localhost:2000/graphql ${format_1.c.cmd("runner-dev mcp")}`,
30
+ `${format_1.c.gray("# Add headers and enable mutations")}`,
31
+ `ALLOW_MUTATIONS=true HEADERS='{"Authorization":"Bearer token"}' ${format_1.c.cmd("runner-dev mcp")}`,
32
+ `${format_1.c.gray("# Query your GraphQL endpoint")}`,
33
+ `ENDPOINT=http://localhost:1337/graphql ${format_1.c.cmd("runner-dev query")} 'query { tasks { id } }' --format pretty`,
34
+ `${format_1.c.gray("# Print SDL")}`,
35
+ `${format_1.c.cmd("runner-dev schema sdl")} --endpoint http://localhost:1337/graphql`,
36
+ ].join("\n"), 2);
8
37
  // eslint-disable-next-line no-console
9
- console.log(`
10
- runner-dev CLI
11
-
12
- Usage:
13
- runner-dev mcp Start the MCP GraphQL server over stdio
14
- runner-dev query Run a GraphQL query against an endpoint
15
- runner-dev overview Print Markdown project overview
16
- runner-dev schema Print SDL or introspection JSON
17
- runner-dev ping Ping GraphQL endpoint
18
-
19
- Environment:
20
- ENDPOINT or GRAPHQL_ENDPOINT GraphQL endpoint URL
21
- ALLOW_MUTATIONS=true Enable mutations tool
22
- HEADERS='{"Authorization":"Bearer ..."}' Extra headers JSON
23
-
24
- Examples:
25
- ENDPOINT=http://localhost:2000/graphql runner-dev mcp
26
- ALLOW_MUTATIONS=true HEADERS='{"Authorization":"Bearer token"}' runner-dev mcp
27
- ENDPOINT=http://localhost:1337/graphql runner-dev query 'query { tasks { id } }'
28
- runner-dev schema sdl --endpoint http://localhost:1337/graphql
29
- `);
38
+ console.log([
39
+ "",
40
+ title,
41
+ (0, format_1.divider)(),
42
+ format_1.c.bold("Usage"),
43
+ usage,
44
+ "",
45
+ format_1.c.bold("Environment"),
46
+ env,
47
+ "",
48
+ format_1.c.bold("Examples"),
49
+ examples,
50
+ "",
51
+ ].join("\n"));
30
52
  return;
31
53
  }
32
54
  if (subcommand === "mcp") {
@@ -38,6 +60,11 @@ Examples:
38
60
  await mod.main(process.argv);
39
61
  return;
40
62
  }
63
+ if (subcommand === "new") {
64
+ const mod = await import("./cli/init.js");
65
+ await mod.main(process.argv);
66
+ return;
67
+ }
41
68
  if (subcommand === "overview") {
42
69
  const mod = await import("./cli/overview.js");
43
70
  await mod.main(process.argv);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AACA,uCAAqC;AAErC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEnC,KAAK,UAAU,GAAG;IAChB,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACjE,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;CAoBf,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IAED,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QACzB,OAAO;IACT,CAAC;IAED,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC3C,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC9C,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC5C,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAC1C,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,sCAAsC;IACtC,OAAO,CAAC,KAAK,CAAC,oBAAoB,UAAU,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,KAAK,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/code.d.ts ADDED
@@ -0,0 +1,50 @@
1
+ type AgentMessageRole = "user" | "assistant" | "system" | "tool";
2
+ export interface AgentMessage {
3
+ role: AgentMessageRole;
4
+ content: string;
5
+ name?: string;
6
+ timestampMs?: number;
7
+ }
8
+ export interface AgentToolCall {
9
+ id: string;
10
+ name: string;
11
+ argumentsJson: string;
12
+ }
13
+ export interface AgentResponseChunk {
14
+ type: "text" | "tool_call" | "tool_result" | "event";
15
+ text?: string;
16
+ toolCall?: AgentToolCall;
17
+ event?: {
18
+ name: string;
19
+ data?: unknown;
20
+ };
21
+ }
22
+ export interface TerminalConfig {
23
+ prompt?: string;
24
+ historyLimit?: number;
25
+ enableTools?: boolean;
26
+ modelName?: string;
27
+ }
28
+ export interface AgentTerminalState {
29
+ config: Required<TerminalConfig>;
30
+ history: AgentMessage[];
31
+ isRunning: boolean;
32
+ lastSearchResults: string[];
33
+ savedFiles: string[];
34
+ }
35
+ export interface AgentTerminalHandlers {
36
+ onChunk?: (chunk: AgentResponseChunk) => void;
37
+ onMessage?: (message: AgentMessage) => void;
38
+ onError?: (error: unknown) => void;
39
+ onExit?: () => void;
40
+ }
41
+ export interface AgentTerminalControls {
42
+ start: () => Promise<void>;
43
+ stop: () => Promise<void>;
44
+ send: (input: string) => Promise<void>;
45
+ getState: () => AgentTerminalState;
46
+ setConfig: (partial: Partial<TerminalConfig>) => void;
47
+ }
48
+ export declare function createAgentTerminal(initialConfig?: TerminalConfig, handlers?: AgentTerminalHandlers): AgentTerminalControls;
49
+ export declare function buildAsyncCompleter(_state: AgentTerminalState): (line: string, cb: (err: Error | null, result: [string[], string]) => void) => void;
50
+ export {};