thinkwell 0.5.0-alpha.3 → 0.5.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/bin/thinkwell +38 -5
- package/dist/cli/build.d.ts.map +1 -1
- package/dist/cli/build.js +10 -0
- package/dist/cli/build.js.map +1 -1
- package/dist/cli/check.d.ts.map +1 -1
- package/dist/cli/check.js +18 -0
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +2 -0
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/dependency-check.d.ts +47 -0
- package/dist/cli/dependency-check.d.ts.map +1 -0
- package/dist/cli/dependency-check.js +277 -0
- package/dist/cli/dependency-check.js.map +1 -0
- package/dist/cli/dependency-errors.d.ts +21 -0
- package/dist/cli/dependency-errors.d.ts.map +1 -0
- package/dist/cli/dependency-errors.js +61 -0
- package/dist/cli/dependency-errors.js.map +1 -0
- package/dist/cli/init.d.ts +32 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +274 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/new-command.d.ts +11 -0
- package/dist/cli/new-command.d.ts.map +1 -0
- package/dist/cli/new-command.js +155 -0
- package/dist/cli/new-command.js.map +1 -0
- package/dist/cli/package-manager.d.ts +48 -0
- package/dist/cli/package-manager.d.ts.map +1 -0
- package/dist/cli/package-manager.js +132 -0
- package/dist/cli/package-manager.js.map +1 -0
- package/package.json +4 -4
package/bin/thinkwell
CHANGED
|
@@ -56,7 +56,11 @@ const { showMainHelp, showNoScriptError, hasHelpFlag, fmtError } = await import(
|
|
|
56
56
|
// ============================================================================
|
|
57
57
|
|
|
58
58
|
function getInitCommandPath() {
|
|
59
|
-
return resolve(__dirname, "../dist/cli/init
|
|
59
|
+
return resolve(__dirname, "../dist/cli/init.js");
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function getNewCommandPath() {
|
|
63
|
+
return resolve(__dirname, "../dist/cli/new-command.js");
|
|
60
64
|
}
|
|
61
65
|
|
|
62
66
|
function getBuildCommandPath() {
|
|
@@ -193,13 +197,36 @@ async function registerBundledModules() {
|
|
|
193
197
|
// ============================================================================
|
|
194
198
|
|
|
195
199
|
/**
|
|
196
|
-
* Run the init command to
|
|
200
|
+
* Run the init command to add dependencies to an existing project.
|
|
197
201
|
*/
|
|
198
202
|
async function runInitCommand(args) {
|
|
199
203
|
validateInitCommand();
|
|
200
204
|
const initCommandPath = getInitCommandPath();
|
|
201
|
-
const { runInit } = await import(initCommandPath);
|
|
202
|
-
|
|
205
|
+
const { parseInitArgs, runInit, showInitHelp } = await import(initCommandPath);
|
|
206
|
+
|
|
207
|
+
if (hasHelpFlag(args)) {
|
|
208
|
+
showInitHelp();
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
const options = parseInitArgs(args);
|
|
213
|
+
await runInit(options);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Run the new command to scaffold a new project.
|
|
218
|
+
*/
|
|
219
|
+
async function runNewCommand(args) {
|
|
220
|
+
const newCommandPath = getNewCommandPath();
|
|
221
|
+
if (!existsSync(newCommandPath)) {
|
|
222
|
+
console.error(fmtError("thinkwell installation appears to be corrupted."));
|
|
223
|
+
console.error(` - New command not found: ${newCommandPath}`);
|
|
224
|
+
console.error("\nTry reinstalling with: npm install thinkwell");
|
|
225
|
+
process.exit(1);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
const { runNew } = await import(newCommandPath);
|
|
229
|
+
await runNew(args);
|
|
203
230
|
}
|
|
204
231
|
|
|
205
232
|
/**
|
|
@@ -318,12 +345,18 @@ async function runUserScript(scriptPath, args) {
|
|
|
318
345
|
async function main() {
|
|
319
346
|
const args = process.argv.slice(2);
|
|
320
347
|
|
|
321
|
-
// Handle "init" subcommand -
|
|
348
|
+
// Handle "init" subcommand - adds dependencies to existing project
|
|
322
349
|
if (args[0] === "init") {
|
|
323
350
|
await runInitCommand(args.slice(1));
|
|
324
351
|
process.exit(0);
|
|
325
352
|
}
|
|
326
353
|
|
|
354
|
+
// Handle "new" subcommand - scaffolds a new project
|
|
355
|
+
if (args[0] === "new") {
|
|
356
|
+
await runNewCommand(args.slice(1));
|
|
357
|
+
process.exit(0);
|
|
358
|
+
}
|
|
359
|
+
|
|
327
360
|
// Handle "bundle" subcommand
|
|
328
361
|
if (args[0] === "bundle") {
|
|
329
362
|
await runBundleCommand(args.slice(1));
|
package/dist/cli/build.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgBH,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAqGD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgGnE;AA8CD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAiC3D;AAMD,wBAAgB,aAAa,IAAI,IAAI,CA2CpC"}
|
package/dist/cli/build.js
CHANGED
|
@@ -15,6 +15,8 @@ import { styleText } from "node:util";
|
|
|
15
15
|
import { createThinkwellProgram, createThinkwellWatchHost } from "./compiler-host.js";
|
|
16
16
|
import { cyan, cyanBold, greenBold, whiteBold, dim } from "./fmt.js";
|
|
17
17
|
import { fmtError } from "./commands.js";
|
|
18
|
+
import { checkDependencies, hasPackageJson } from "./dependency-check.js";
|
|
19
|
+
import { formatMissingDependencyError, hasMissingDependencies } from "./dependency-errors.js";
|
|
18
20
|
// ============================================================================
|
|
19
21
|
// Package.json Configuration
|
|
20
22
|
// ============================================================================
|
|
@@ -102,6 +104,14 @@ function formatDiagnostics(diagnostics) {
|
|
|
102
104
|
// ============================================================================
|
|
103
105
|
export async function runBuild(options) {
|
|
104
106
|
const cwd = process.cwd();
|
|
107
|
+
// Check for required dependencies when a package.json exists
|
|
108
|
+
if (hasPackageJson(cwd)) {
|
|
109
|
+
const depCheck = await checkDependencies(cwd);
|
|
110
|
+
if (hasMissingDependencies(depCheck)) {
|
|
111
|
+
console.error(formatMissingDependencyError(depCheck));
|
|
112
|
+
process.exit(2);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
105
115
|
const configPath = options.project
|
|
106
116
|
? resolve(cwd, options.project)
|
|
107
117
|
: resolve(cwd, "tsconfig.json");
|
package/dist/cli/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/check.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/cli/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/cli/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgBH,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,qDAAqD;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAqED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA2JnE;AAMD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAgC3D;AAMD,wBAAgB,aAAa,IAAI,IAAI,CAkCpC"}
|
package/dist/cli/check.js
CHANGED
|
@@ -13,6 +13,8 @@ import { resolve, join } from "node:path";
|
|
|
13
13
|
import { createThinkwellProgram } from "./compiler-host.js";
|
|
14
14
|
import { cyan, cyanBold, greenBold, whiteBold, dim } from "./fmt.js";
|
|
15
15
|
import { detectWorkspace, resolvePackageName } from "./workspace.js";
|
|
16
|
+
import { checkDependencies, hasPackageJson } from "./dependency-check.js";
|
|
17
|
+
import { formatMissingDependencyError, hasMissingDependencies } from "./dependency-errors.js";
|
|
16
18
|
// ============================================================================
|
|
17
19
|
// Diagnostics Formatting
|
|
18
20
|
// ============================================================================
|
|
@@ -71,6 +73,14 @@ export async function runCheck(options) {
|
|
|
71
73
|
}
|
|
72
74
|
// Single-package mode (no workspace detected)
|
|
73
75
|
if (!workspace) {
|
|
76
|
+
// Check for required dependencies when a package.json exists
|
|
77
|
+
if (hasPackageJson(cwd)) {
|
|
78
|
+
const depCheck = await checkDependencies(cwd);
|
|
79
|
+
if (hasMissingDependencies(depCheck)) {
|
|
80
|
+
process.stderr.write(formatMissingDependencyError(depCheck) + "\n");
|
|
81
|
+
process.exit(2);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
74
84
|
const configPath = resolve(cwd, "tsconfig.json");
|
|
75
85
|
if (!existsSync(configPath)) {
|
|
76
86
|
process.stderr.write("Error: Cannot find tsconfig.json\n");
|
|
@@ -99,6 +109,14 @@ export async function runCheck(options) {
|
|
|
99
109
|
process.stderr.write(" No type errors found.\n");
|
|
100
110
|
return;
|
|
101
111
|
}
|
|
112
|
+
// Workspace mode: check dependencies at workspace root
|
|
113
|
+
if (hasPackageJson(workspace.rootDir)) {
|
|
114
|
+
const depCheck = await checkDependencies(workspace.rootDir);
|
|
115
|
+
if (hasMissingDependencies(depCheck)) {
|
|
116
|
+
process.stderr.write(formatMissingDependencyError(depCheck) + "\n");
|
|
117
|
+
process.exit(2);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
102
120
|
// Workspace mode: determine which packages to check
|
|
103
121
|
let packagesToCheck;
|
|
104
122
|
if (options.packages && options.packages.length > 0) {
|
package/dist/cli/check.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/cli/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/cli/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAWH;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAWH;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAoBnC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,KAAK,CAKzC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAEnD;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD"}
|
package/dist/cli/commands.js
CHANGED
|
@@ -27,6 +27,8 @@ ${cyanBold("thinkwell")} - ${whiteBold("agent scripting made easy ✨🖋️")}
|
|
|
27
27
|
${greenBold("Usage:")}
|
|
28
28
|
${cyanBold("thinkwell")} ${dim("<script.ts> [args...]")} Run a TypeScript script
|
|
29
29
|
${cyanBold("thinkwell run")} ${dim("<script.ts> [args...]")} Explicit run command
|
|
30
|
+
${cyanBold("thinkwell init")} Initialize thinkwell in current directory
|
|
31
|
+
${cyanBold("thinkwell new")} ${dim("<project-name>")} Create a new project in a new directory
|
|
30
32
|
${cyanBold("thinkwell check")} Type-check project ${dim("(no output files)")}
|
|
31
33
|
${cyanBold("thinkwell build")} Compile project with @JSONSchema support
|
|
32
34
|
${cyanBold("thinkwell bundle")} ${dim("<script.ts>")} Compile to standalone executable
|
package/dist/cli/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACjD,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAE/C;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,GAAG,CAAC;EACZ,QAAQ,CAAC,WAAW,CAAC,MAAM,SAAS,CAAC,gCAAgC,CAAC;;EAEtE,SAAS,CAAC,QAAQ,CAAC;IACjB,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,uBAAuB,CAAC;IACrD,QAAQ,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,uBAAuB,CAAC;IACzD,QAAQ,CAAC,iBAAiB,CAAC,2CAA2C,GAAG,CAAC,mBAAmB,CAAC;IAC9F,QAAQ,CAAC,iBAAiB,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC;IAClD,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC;;EAE5C,SAAS,CAAC,UAAU,CAAC;IACnB,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC;;+BAEjB,QAAQ,CAAC,sBAAsB,CAAC;CAC9D,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC1D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAc;IACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC;AAC3C,CAAC"}
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACjD,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAE/C;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,GAAG,CAAC;EACZ,QAAQ,CAAC,WAAW,CAAC,MAAM,SAAS,CAAC,gCAAgC,CAAC;;EAEtE,SAAS,CAAC,QAAQ,CAAC;IACjB,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,uBAAuB,CAAC;IACrD,QAAQ,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,uBAAuB,CAAC;IACzD,QAAQ,CAAC,gBAAgB,CAAC;IAC1B,QAAQ,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC;IAClD,QAAQ,CAAC,iBAAiB,CAAC,2CAA2C,GAAG,CAAC,mBAAmB,CAAC;IAC9F,QAAQ,CAAC,iBAAiB,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC;IAClD,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC;;EAE5C,SAAS,CAAC,UAAU,CAAC;IACnB,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC;;+BAEjB,QAAQ,CAAC,sBAAsB,CAAC;CAC9D,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC1D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAc;IACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency checking for `thinkwell build` and `thinkwell check`.
|
|
3
|
+
*
|
|
4
|
+
* Implements a hybrid detection strategy:
|
|
5
|
+
* - Fast path: Check package.json directly for dependencies
|
|
6
|
+
* - Slow path: Fall back to `<pm> why --json` for workspace-hoisted dependencies
|
|
7
|
+
*
|
|
8
|
+
* @see doc/rfd/explicit-config.md for the full design
|
|
9
|
+
*/
|
|
10
|
+
import { type PackageManagerInfo } from "./package-manager.js";
|
|
11
|
+
/** Where a dependency was found. */
|
|
12
|
+
export type DependencySource = "package.json" | "workspace" | "transitive";
|
|
13
|
+
/** Status of a single dependency. */
|
|
14
|
+
export interface DependencyStatus {
|
|
15
|
+
/** Whether the dependency was found. */
|
|
16
|
+
found: boolean;
|
|
17
|
+
/** The version specifier (if found). */
|
|
18
|
+
version?: string;
|
|
19
|
+
/** Where the dependency was found. */
|
|
20
|
+
source?: DependencySource;
|
|
21
|
+
}
|
|
22
|
+
/** Result of checking all required dependencies. */
|
|
23
|
+
export interface DependencyCheckResult {
|
|
24
|
+
/** Status of the thinkwell dependency. */
|
|
25
|
+
thinkwell: DependencyStatus;
|
|
26
|
+
/** Status of the typescript dependency. */
|
|
27
|
+
typescript: DependencyStatus;
|
|
28
|
+
/** Detected package manager information. */
|
|
29
|
+
packageManager: PackageManagerInfo;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Check whether required dependencies (thinkwell, typescript) are available.
|
|
33
|
+
*
|
|
34
|
+
* Uses a hybrid strategy:
|
|
35
|
+
* 1. Fast path: Check package.json directly
|
|
36
|
+
* 2. Slow path: If not found, check via package manager CLI for workspace-hoisted deps
|
|
37
|
+
*
|
|
38
|
+
* @param projectDir - The project directory to check
|
|
39
|
+
* @returns Status of both dependencies and package manager info
|
|
40
|
+
*/
|
|
41
|
+
export declare function checkDependencies(projectDir: string): Promise<DependencyCheckResult>;
|
|
42
|
+
/**
|
|
43
|
+
* Check if a project has a package.json.
|
|
44
|
+
* Used to determine if dependency checking should be performed at all.
|
|
45
|
+
*/
|
|
46
|
+
export declare function hasPackageJson(projectDir: string): boolean;
|
|
47
|
+
//# sourceMappingURL=dependency-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-check.d.ts","sourceRoot":"","sources":["../../src/cli/dependency-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAM9B,oCAAoC;AACpC,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,WAAW,GAAG,YAAY,CAAC;AAE3E,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,oDAAoD;AACpD,MAAM,WAAW,qBAAqB;IACpC,0CAA0C;IAC1C,SAAS,EAAE,gBAAgB,CAAC;IAC5B,2CAA2C;IAC3C,UAAU,EAAE,gBAAgB,CAAC;IAC7B,4CAA4C;IAC5C,cAAc,EAAE,kBAAkB,CAAC;CACpC;AAqQD;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,CAAC,CA0ChC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE1D"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency checking for `thinkwell build` and `thinkwell check`.
|
|
3
|
+
*
|
|
4
|
+
* Implements a hybrid detection strategy:
|
|
5
|
+
* - Fast path: Check package.json directly for dependencies
|
|
6
|
+
* - Slow path: Fall back to `<pm> why --json` for workspace-hoisted dependencies
|
|
7
|
+
*
|
|
8
|
+
* @see doc/rfd/explicit-config.md for the full design
|
|
9
|
+
*/
|
|
10
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
11
|
+
import { join } from "node:path";
|
|
12
|
+
import { spawn } from "node:child_process";
|
|
13
|
+
import { detectPackageManager, } from "./package-manager.js";
|
|
14
|
+
/**
|
|
15
|
+
* Read and parse package.json from a directory.
|
|
16
|
+
* Returns null if the file doesn't exist or is invalid JSON.
|
|
17
|
+
*/
|
|
18
|
+
function readPackageJson(dir) {
|
|
19
|
+
const pkgPath = join(dir, "package.json");
|
|
20
|
+
if (!existsSync(pkgPath)) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
const content = readFileSync(pkgPath, "utf-8");
|
|
25
|
+
return JSON.parse(content);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Check if a package is declared in package.json (fast path).
|
|
33
|
+
*
|
|
34
|
+
* Checks dependencies, devDependencies, peerDependencies, and optionalDependencies.
|
|
35
|
+
* Returns the dependency status if found, or null if not found.
|
|
36
|
+
*/
|
|
37
|
+
function checkPackageJsonDirect(pkg, packageName) {
|
|
38
|
+
// Check each dependency type
|
|
39
|
+
const depTypes = [
|
|
40
|
+
pkg.dependencies,
|
|
41
|
+
pkg.devDependencies,
|
|
42
|
+
pkg.peerDependencies,
|
|
43
|
+
pkg.optionalDependencies,
|
|
44
|
+
];
|
|
45
|
+
for (const deps of depTypes) {
|
|
46
|
+
if (deps && packageName in deps) {
|
|
47
|
+
return {
|
|
48
|
+
found: true,
|
|
49
|
+
version: deps[packageName],
|
|
50
|
+
source: "package.json",
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
// ============================================================================
|
|
57
|
+
// Slow Path: Package Manager CLI Inspection
|
|
58
|
+
// ============================================================================
|
|
59
|
+
/**
|
|
60
|
+
* Execute a command and return its stdout.
|
|
61
|
+
* Rejects if the command fails or returns non-zero exit code.
|
|
62
|
+
*/
|
|
63
|
+
function execCommand(cmd, cwd) {
|
|
64
|
+
return new Promise((resolve, reject) => {
|
|
65
|
+
const [command, ...args] = cmd;
|
|
66
|
+
const proc = spawn(command, args, {
|
|
67
|
+
cwd,
|
|
68
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
69
|
+
});
|
|
70
|
+
let stdout = "";
|
|
71
|
+
let stderr = "";
|
|
72
|
+
proc.stdout.on("data", (data) => {
|
|
73
|
+
stdout += data.toString();
|
|
74
|
+
});
|
|
75
|
+
proc.stderr.on("data", (data) => {
|
|
76
|
+
stderr += data.toString();
|
|
77
|
+
});
|
|
78
|
+
proc.on("error", (err) => {
|
|
79
|
+
reject(err);
|
|
80
|
+
});
|
|
81
|
+
proc.on("close", (code) => {
|
|
82
|
+
if (code === 0) {
|
|
83
|
+
resolve({ stdout, stderr });
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
reject(new Error(`Command failed with exit code ${code}: ${stderr}`));
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Parse pnpm why --json output to determine if a package is installed.
|
|
93
|
+
*
|
|
94
|
+
* pnpm why outputs JSON like:
|
|
95
|
+
* {
|
|
96
|
+
* "packageName": {
|
|
97
|
+
* "version": "1.0.0",
|
|
98
|
+
* "dependents": [...]
|
|
99
|
+
* }
|
|
100
|
+
* }
|
|
101
|
+
*
|
|
102
|
+
* For workspace-hoisted packages, the package appears with its version.
|
|
103
|
+
*/
|
|
104
|
+
function parsePnpmWhyOutput(stdout, packageName) {
|
|
105
|
+
try {
|
|
106
|
+
const result = JSON.parse(stdout);
|
|
107
|
+
// pnpm why returns an object with the package name as key
|
|
108
|
+
if (result && typeof result === "object" && packageName in result) {
|
|
109
|
+
const info = result[packageName];
|
|
110
|
+
return {
|
|
111
|
+
found: true,
|
|
112
|
+
version: info?.version,
|
|
113
|
+
source: "workspace",
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Parse npm why --json output to determine if a package is installed.
|
|
124
|
+
*
|
|
125
|
+
* npm why (npm explain) outputs JSON array like:
|
|
126
|
+
* [
|
|
127
|
+
* {
|
|
128
|
+
* "name": "packageName",
|
|
129
|
+
* "version": "1.0.0",
|
|
130
|
+
* "dependents": [...]
|
|
131
|
+
* }
|
|
132
|
+
* ]
|
|
133
|
+
*
|
|
134
|
+
* An empty array or error object means the package is not found.
|
|
135
|
+
*/
|
|
136
|
+
function parseNpmWhyOutput(stdout, _packageName) {
|
|
137
|
+
try {
|
|
138
|
+
const result = JSON.parse(stdout);
|
|
139
|
+
// npm why returns an array of explanations
|
|
140
|
+
if (Array.isArray(result) && result.length > 0) {
|
|
141
|
+
const first = result[0];
|
|
142
|
+
return {
|
|
143
|
+
found: true,
|
|
144
|
+
version: first?.version,
|
|
145
|
+
source: "workspace",
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Parse yarn why --json output to determine if a package is installed.
|
|
156
|
+
*
|
|
157
|
+
* Yarn Classic (v1) outputs newline-delimited JSON objects:
|
|
158
|
+
* {"type":"info","data":"Found \"package@version\"..."}
|
|
159
|
+
*
|
|
160
|
+
* Yarn Berry (v2+) outputs similar but structured differently.
|
|
161
|
+
* Exit code 0 with output indicates the package was found.
|
|
162
|
+
*/
|
|
163
|
+
function parseYarnWhyOutput(stdout, _packageName) {
|
|
164
|
+
// If there's any output and the command succeeded (which it did if we got here),
|
|
165
|
+
// the package was found
|
|
166
|
+
if (stdout.trim().length > 0) {
|
|
167
|
+
// Try to extract version from the output
|
|
168
|
+
// Yarn classic: {"type":"info","data":"Found \"pkg@1.0.0\"..."}
|
|
169
|
+
let version;
|
|
170
|
+
try {
|
|
171
|
+
// Parse each line as JSON (yarn outputs newline-delimited JSON)
|
|
172
|
+
const lines = stdout.trim().split("\n");
|
|
173
|
+
for (const line of lines) {
|
|
174
|
+
const obj = JSON.parse(line);
|
|
175
|
+
if (obj.type === "info" && obj.data) {
|
|
176
|
+
// Extract version from "Found \"pkg@1.0.0\"" pattern
|
|
177
|
+
const match = obj.data.match(/"[^@]+@([^"]+)"/);
|
|
178
|
+
if (match) {
|
|
179
|
+
version = match[1];
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
// Couldn't parse version, but package was found
|
|
187
|
+
}
|
|
188
|
+
return {
|
|
189
|
+
found: true,
|
|
190
|
+
version,
|
|
191
|
+
source: "workspace",
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
return null;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Check for a package using the package manager's `why` command (slow path).
|
|
198
|
+
*
|
|
199
|
+
* This handles workspace-hoisted dependencies that aren't declared directly
|
|
200
|
+
* in the current package's package.json.
|
|
201
|
+
*/
|
|
202
|
+
async function checkViaPackageManager(pm, packageName, cwd) {
|
|
203
|
+
const cmd = pm.whyCommand(packageName);
|
|
204
|
+
try {
|
|
205
|
+
const { stdout } = await execCommand(cmd, cwd);
|
|
206
|
+
switch (pm.name) {
|
|
207
|
+
case "pnpm":
|
|
208
|
+
return parsePnpmWhyOutput(stdout, packageName);
|
|
209
|
+
case "npm":
|
|
210
|
+
return parseNpmWhyOutput(stdout, packageName);
|
|
211
|
+
case "yarn":
|
|
212
|
+
return parseYarnWhyOutput(stdout, packageName);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
// Command failed — package not found
|
|
217
|
+
return null;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
// ============================================================================
|
|
221
|
+
// Main Check Function
|
|
222
|
+
// ============================================================================
|
|
223
|
+
/**
|
|
224
|
+
* Check whether required dependencies (thinkwell, typescript) are available.
|
|
225
|
+
*
|
|
226
|
+
* Uses a hybrid strategy:
|
|
227
|
+
* 1. Fast path: Check package.json directly
|
|
228
|
+
* 2. Slow path: If not found, check via package manager CLI for workspace-hoisted deps
|
|
229
|
+
*
|
|
230
|
+
* @param projectDir - The project directory to check
|
|
231
|
+
* @returns Status of both dependencies and package manager info
|
|
232
|
+
*/
|
|
233
|
+
export async function checkDependencies(projectDir) {
|
|
234
|
+
const pm = detectPackageManager(projectDir);
|
|
235
|
+
const pkg = readPackageJson(projectDir);
|
|
236
|
+
// Initialize results
|
|
237
|
+
let thinkwellStatus = { found: false };
|
|
238
|
+
let typescriptStatus = { found: false };
|
|
239
|
+
// Fast path: check package.json directly
|
|
240
|
+
if (pkg) {
|
|
241
|
+
const thinkwellDirect = checkPackageJsonDirect(pkg, "thinkwell");
|
|
242
|
+
if (thinkwellDirect) {
|
|
243
|
+
thinkwellStatus = thinkwellDirect;
|
|
244
|
+
}
|
|
245
|
+
const typescriptDirect = checkPackageJsonDirect(pkg, "typescript");
|
|
246
|
+
if (typescriptDirect) {
|
|
247
|
+
typescriptStatus = typescriptDirect;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
// Slow path: if not found in package.json, check via package manager
|
|
251
|
+
// This handles workspace-hoisted dependencies
|
|
252
|
+
if (!thinkwellStatus.found) {
|
|
253
|
+
const result = await checkViaPackageManager(pm, "thinkwell", projectDir);
|
|
254
|
+
if (result) {
|
|
255
|
+
thinkwellStatus = result;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
if (!typescriptStatus.found) {
|
|
259
|
+
const result = await checkViaPackageManager(pm, "typescript", projectDir);
|
|
260
|
+
if (result) {
|
|
261
|
+
typescriptStatus = result;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
return {
|
|
265
|
+
thinkwell: thinkwellStatus,
|
|
266
|
+
typescript: typescriptStatus,
|
|
267
|
+
packageManager: pm,
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Check if a project has a package.json.
|
|
272
|
+
* Used to determine if dependency checking should be performed at all.
|
|
273
|
+
*/
|
|
274
|
+
export function hasPackageJson(projectDir) {
|
|
275
|
+
return existsSync(join(projectDir, "package.json"));
|
|
276
|
+
}
|
|
277
|
+
//# sourceMappingURL=dependency-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-check.js","sourceRoot":"","sources":["../../src/cli/dependency-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error message templates for missing dependencies.
|
|
3
|
+
*
|
|
4
|
+
* When a project has a package.json but is missing required dependencies
|
|
5
|
+
* (thinkwell, typescript), we fail fast with clear remediation guidance.
|
|
6
|
+
*
|
|
7
|
+
* @see doc/rfd/explicit-config.md for the design rationale
|
|
8
|
+
*/
|
|
9
|
+
import type { DependencyCheckResult } from "./dependency-check.js";
|
|
10
|
+
/**
|
|
11
|
+
* Format an error message for missing dependencies.
|
|
12
|
+
*
|
|
13
|
+
* The message explains why explicit dependencies are required and provides
|
|
14
|
+
* package-manager-specific commands for remediation.
|
|
15
|
+
*/
|
|
16
|
+
export declare function formatMissingDependencyError(result: DependencyCheckResult): string;
|
|
17
|
+
/**
|
|
18
|
+
* Check if any required dependencies are missing.
|
|
19
|
+
*/
|
|
20
|
+
export declare function hasMissingDependencies(result: DependencyCheckResult): boolean;
|
|
21
|
+
//# sourceMappingURL=dependency-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-errors.d.ts","sourceRoot":"","sources":["../../src/cli/dependency-errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAMnE;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,qBAAqB,GAC5B,MAAM,CA2CR;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAE7E"}
|