@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.
- package/AI.md +40 -43
- package/README.md +70 -0
- package/dist/architect/core/errors.d.ts +39 -0
- package/dist/architect/core/errors.js +143 -0
- package/dist/architect/core/errors.js.map +1 -0
- package/dist/architect/core/index.d.ts +3 -0
- package/dist/architect/core/index.js +21 -0
- package/dist/architect/core/index.js.map +1 -0
- package/dist/architect/core/interfaces.d.ts +158 -0
- package/dist/architect/core/interfaces.js +3 -0
- package/dist/architect/core/interfaces.js.map +1 -0
- package/dist/architect/core/types.d.ts +544 -0
- package/dist/architect/core/types.js +49 -0
- package/dist/architect/core/types.js.map +1 -0
- package/dist/architect/execution/executor.d.ts +23 -0
- package/dist/architect/execution/executor.js +476 -0
- package/dist/architect/execution/executor.js.map +1 -0
- package/dist/architect/execution/index.d.ts +1 -0
- package/dist/architect/execution/index.js +19 -0
- package/dist/architect/execution/index.js.map +1 -0
- package/dist/architect/executor.d.ts +7 -0
- package/dist/architect/executor.js +150 -0
- package/dist/architect/executor.js.map +1 -0
- package/dist/architect/index.d.ts +45 -0
- package/dist/architect/index.js +76 -0
- package/dist/architect/index.js.map +1 -0
- package/dist/architect/llmClient.d.ts +10 -0
- package/dist/architect/llmClient.js +33 -0
- package/dist/architect/llmClient.js.map +1 -0
- package/dist/architect/models/base.d.ts +16 -0
- package/dist/architect/models/base.js +68 -0
- package/dist/architect/models/base.js.map +1 -0
- package/dist/architect/models/factory.d.ts +16 -0
- package/dist/architect/models/factory.js +73 -0
- package/dist/architect/models/factory.js.map +1 -0
- package/dist/architect/models/index.d.ts +3 -0
- package/dist/architect/models/index.js +21 -0
- package/dist/architect/models/index.js.map +1 -0
- package/dist/architect/models/openai.d.ts +7 -0
- package/dist/architect/models/openai.js +71 -0
- package/dist/architect/models/openai.js.map +1 -0
- package/dist/architect/planner.d.ts +9 -0
- package/dist/architect/planner.js +42 -0
- package/dist/architect/planner.js.map +1 -0
- package/dist/architect/planning/index.d.ts +4 -0
- package/dist/architect/planning/index.js +22 -0
- package/dist/architect/planning/index.js.map +1 -0
- package/dist/architect/planning/optimizer.d.ts +14 -0
- package/dist/architect/planning/optimizer.js +275 -0
- package/dist/architect/planning/optimizer.js.map +1 -0
- package/dist/architect/planning/planner.d.ts +15 -0
- package/dist/architect/planning/planner.js +124 -0
- package/dist/architect/planning/planner.js.map +1 -0
- package/dist/architect/planning/prompts.d.ts +6 -0
- package/dist/architect/planning/prompts.js +111 -0
- package/dist/architect/planning/prompts.js.map +1 -0
- package/dist/architect/planning/validator.d.ts +16 -0
- package/dist/architect/planning/validator.js +331 -0
- package/dist/architect/planning/validator.js.map +1 -0
- package/dist/architect/prompt.d.ts +1 -0
- package/dist/architect/prompt.js +13 -0
- package/dist/architect/prompt.js.map +1 -0
- package/dist/architect/types.d.ts +4 -0
- package/dist/architect/types.js +24 -0
- package/dist/architect/types.js.map +1 -0
- package/dist/cli/format.d.ts +19 -0
- package/dist/cli/format.js +62 -0
- package/dist/cli/format.js.map +1 -0
- package/dist/cli/init.d.ts +1 -0
- package/dist/cli/init.js +279 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/query.js +69 -0
- package/dist/cli/query.js.map +1 -1
- package/dist/cli.js +48 -21
- package/dist/cli.js.map +1 -1
- package/dist/code.d.ts +50 -0
- package/dist/code.js +357 -0
- package/dist/code.js.map +1 -0
- package/dist/generated/resolvers-types.d.ts +150 -29
- package/dist/index.d.ts +6 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/resources/cli.config.resource.d.ts +7 -0
- package/dist/resources/cli.config.resource.js +11 -0
- package/dist/resources/cli.config.resource.js.map +1 -0
- package/dist/resources/coverage.resource.d.ts +19 -0
- package/dist/resources/coverage.resource.js +213 -0
- package/dist/resources/coverage.resource.js.map +1 -0
- package/dist/resources/dev.resource.js +0 -2
- package/dist/resources/dev.resource.js.map +1 -1
- package/dist/resources/graphql.cli.resource.d.ts +4 -0
- package/dist/resources/graphql.cli.resource.js +27 -0
- package/dist/resources/graphql.cli.resource.js.map +1 -0
- package/dist/resources/graphql.query.cli.task.d.ts +47 -0
- package/dist/resources/graphql.query.cli.task.js +54 -0
- package/dist/resources/graphql.query.cli.task.js.map +1 -0
- package/dist/resources/introspector.cli.resource.d.ts +6 -0
- package/dist/resources/introspector.cli.resource.js +17 -0
- package/dist/resources/introspector.cli.resource.js.map +1 -0
- package/dist/resources/live.resource.d.ts +2 -1
- package/dist/resources/live.resource.js +4 -2
- package/dist/resources/live.resource.js.map +1 -1
- package/dist/resources/models/Introspector.d.ts +1 -1
- package/dist/resources/models/Introspector.js +5 -34
- package/dist/resources/models/Introspector.js.map +1 -1
- package/dist/resources/models/initializeFromStore.js +26 -34
- package/dist/resources/models/initializeFromStore.js.map +1 -1
- package/dist/resources/models/initializeFromStore.utils.js +25 -6
- package/dist/resources/models/initializeFromStore.utils.js.map +1 -1
- package/dist/resources/models/introspector.tools.js +2 -2
- package/dist/resources/models/introspector.tools.js.map +1 -1
- package/dist/resources/routeHandlers/getDocsData.d.ts +6 -0
- package/dist/resources/routeHandlers/getDocsData.js +106 -0
- package/dist/resources/routeHandlers/getDocsData.js.map +1 -1
- package/dist/resources/routeHandlers/registerHttpRoutes.hook.d.ts +4 -0
- package/dist/resources/routeHandlers/registerHttpRoutes.hook.js +9 -7
- package/dist/resources/routeHandlers/registerHttpRoutes.hook.js.map +1 -1
- package/dist/resources/server.resource.d.ts +3 -0
- package/dist/resources/server.resource.js +8 -1
- package/dist/resources/server.resource.js.map +1 -1
- package/dist/resources/swap.cli.resource.d.ts +11 -0
- package/dist/resources/swap.cli.resource.js +54 -0
- package/dist/resources/swap.cli.resource.js.map +1 -0
- package/dist/schema/context.d.ts +2 -0
- package/dist/schema/model.d.ts +4 -1
- package/dist/schema/model.js.map +1 -1
- package/dist/schema/mutation.js +38 -0
- package/dist/schema/mutation.js.map +1 -1
- package/dist/schema/query.js +22 -18
- package/dist/schema/query.js.map +1 -1
- package/dist/schema/types/BaseElementCommon.d.ts +2 -4
- package/dist/schema/types/BaseElementCommon.js +28 -0
- package/dist/schema/types/BaseElementCommon.js.map +1 -1
- package/dist/schema/types/CoverageType.d.ts +7 -0
- package/dist/schema/types/CoverageType.js +54 -0
- package/dist/schema/types/CoverageType.js.map +1 -0
- package/dist/schema/types/LiveType.js +4 -0
- package/dist/schema/types/LiveType.js.map +1 -1
- package/dist/schema/types/ResourceType.js +6 -0
- package/dist/schema/types/ResourceType.js.map +1 -1
- package/dist/schema/types/TagType.js +4 -3
- package/dist/schema/types/TagType.js.map +1 -1
- package/dist/schema/types/index.d.ts +1 -0
- package/dist/schema/types/index.js +3 -1
- package/dist/schema/types/index.js.map +1 -1
- package/dist/ui/.vite/manifest.json +2 -2
- package/dist/ui/assets/docs-DR80KoAA.js +416 -0
- package/dist/ui/assets/docs-DR80KoAA.js.map +1 -0
- package/dist/ui/assets/docs-WKK9Zcu5.css +1 -0
- package/dist/utils/path.js +10 -0
- package/dist/utils/path.js.map +1 -1
- package/package.json +12 -8
- package/dist/ui/assets/docs-DVEzFAJo.css +0 -1
- package/dist/ui/assets/docs-l9XdmrRL.js +0 -174
package/dist/cli/init.js
ADDED
|
@@ -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,
|
package/dist/cli/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/cli/query.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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;
|
|
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 {};
|