thinkwell 0.4.4 → 0.4.5
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/dist/cli/loader.d.ts +12 -0
- package/dist/cli/loader.d.ts.map +1 -1
- package/dist/cli/loader.js +47 -9
- package/dist/cli/loader.js.map +1 -1
- package/dist-pkg/cli-loader.cjs +30 -5
- package/package.json +4 -4
package/dist/cli/loader.d.ts
CHANGED
|
@@ -98,6 +98,18 @@ export declare function transformVirtualImports(source: string): string;
|
|
|
98
98
|
* @returns A require function bound to the script's directory
|
|
99
99
|
*/
|
|
100
100
|
export declare function createCustomRequire(scriptPath: string): NodeJS.Require;
|
|
101
|
+
/**
|
|
102
|
+
* Rewrite .js extensions to .ts in relative import specifiers when the .ts file exists.
|
|
103
|
+
*
|
|
104
|
+
* TypeScript convention allows importing `./foo.js` even when the source file is
|
|
105
|
+
* `./foo.ts` (since tsc compiles .ts to .js). Node's --experimental-transform-types
|
|
106
|
+
* does not perform this remapping, so we do it here to support the common convention.
|
|
107
|
+
*
|
|
108
|
+
* @param originalPath - Absolute path to the original script (used to resolve relative paths)
|
|
109
|
+
* @param source - The script source code
|
|
110
|
+
* @returns The source with .js extensions rewritten to .ts where the .ts file exists
|
|
111
|
+
*/
|
|
112
|
+
export declare function rewriteJsToTsExtensions(originalPath: string, source: string): string;
|
|
101
113
|
/**
|
|
102
114
|
* Load and execute a user script with custom module resolution.
|
|
103
115
|
*
|
package/dist/cli/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/cli/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAqCH;;;GAGG;AACH,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CACtD;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAEN;AASD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAS/D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAgB9D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAqC9D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,OAAO,CAqDhB;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/cli/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAqCH;;;GAGG;AACH,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CACtD;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAEN;AASD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAS/D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAgB9D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAqC9D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,OAAO,CAqDhB;AA+BD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA4BpF;AAiCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CA4DtD;AAED;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,MAAM,EAAO,GAClB,OAAO,CAAC,IAAI,CAAC,CAyCf"}
|
package/dist/cli/loader.js
CHANGED
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
* Unlike the Bun plugin which runs at bundle time, this loader operates at
|
|
22
22
|
* runtime when the user script is executed.
|
|
23
23
|
*/
|
|
24
|
-
import { readFileSync,
|
|
24
|
+
import { readFileSync, writeFileSync, rmSync, existsSync } from "node:fs";
|
|
25
25
|
import { dirname, join, isAbsolute, resolve, basename } from "node:path";
|
|
26
|
-
import {
|
|
26
|
+
import { randomBytes } from "node:crypto";
|
|
27
27
|
import { createRequire } from "node:module";
|
|
28
28
|
import { hasJsonSchemaMarkers, transformJsonSchemas } from "./schema.js";
|
|
29
29
|
/**
|
|
@@ -232,6 +232,43 @@ function needsTransformation(source) {
|
|
|
232
232
|
}
|
|
233
233
|
return false;
|
|
234
234
|
}
|
|
235
|
+
/**
|
|
236
|
+
* Generate a short random ID for temp file names.
|
|
237
|
+
*/
|
|
238
|
+
function randomId() {
|
|
239
|
+
return randomBytes(6).toString("base64url");
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Rewrite .js extensions to .ts in relative import specifiers when the .ts file exists.
|
|
243
|
+
*
|
|
244
|
+
* TypeScript convention allows importing `./foo.js` even when the source file is
|
|
245
|
+
* `./foo.ts` (since tsc compiles .ts to .js). Node's --experimental-transform-types
|
|
246
|
+
* does not perform this remapping, so we do it here to support the common convention.
|
|
247
|
+
*
|
|
248
|
+
* @param originalPath - Absolute path to the original script (used to resolve relative paths)
|
|
249
|
+
* @param source - The script source code
|
|
250
|
+
* @returns The source with .js extensions rewritten to .ts where the .ts file exists
|
|
251
|
+
*/
|
|
252
|
+
export function rewriteJsToTsExtensions(originalPath, source) {
|
|
253
|
+
const scriptDir = dirname(originalPath);
|
|
254
|
+
// Match static imports/re-exports: from "./foo.js" or from '../bar.js'
|
|
255
|
+
source = source.replace(/(from\s+['"])(\.\.?\/[^'"]*?)\.js(['"])/g, (match, prefix, specifierBase, suffix) => {
|
|
256
|
+
const tsPath = resolve(scriptDir, `${specifierBase}.ts`);
|
|
257
|
+
if (existsSync(tsPath)) {
|
|
258
|
+
return `${prefix}${specifierBase}.ts${suffix}`;
|
|
259
|
+
}
|
|
260
|
+
return match;
|
|
261
|
+
});
|
|
262
|
+
// Match dynamic imports: import("./foo.js") or import('../bar.js')
|
|
263
|
+
source = source.replace(/(import\s*\(\s*['"])(\.\.?\/[^'"]*?)\.js(['"]\s*\))/g, (match, prefix, specifierBase, suffix) => {
|
|
264
|
+
const tsPath = resolve(scriptDir, `${specifierBase}.ts`);
|
|
265
|
+
if (existsSync(tsPath)) {
|
|
266
|
+
return `${prefix}${specifierBase}.ts${suffix}`;
|
|
267
|
+
}
|
|
268
|
+
return match;
|
|
269
|
+
});
|
|
270
|
+
return source;
|
|
271
|
+
}
|
|
235
272
|
/**
|
|
236
273
|
* Generate a preamble that patches import.meta properties to point to the original script.
|
|
237
274
|
*
|
|
@@ -300,14 +337,15 @@ export function loadScript(scriptPath) {
|
|
|
300
337
|
source = transformJsonSchemas(absolutePath, source);
|
|
301
338
|
// Transform imports to use bundled modules (global.__bundled__)
|
|
302
339
|
source = transformVirtualImports(source);
|
|
340
|
+
// Rewrite .js → .ts in relative imports for TypeScript convention compatibility
|
|
341
|
+
source = rewriteJsToTsExtensions(absolutePath, source);
|
|
303
342
|
// Prepend import.meta.url patch so scripts can locate sibling files
|
|
304
343
|
source = generateImportMetaPatch(absolutePath) + source;
|
|
305
|
-
// Write transformed source
|
|
306
|
-
//
|
|
344
|
+
// Write transformed source as a sibling of the original script so that
|
|
345
|
+
// relative imports resolve correctly through Node's module loader.
|
|
307
346
|
const ext = absolutePath.endsWith(".ts") ? ".ts" : ".js";
|
|
308
|
-
const
|
|
309
|
-
const
|
|
310
|
-
const tempFile = join(tempDir, `script${ext}`);
|
|
347
|
+
const scriptDir = dirname(absolutePath);
|
|
348
|
+
const tempFile = join(scriptDir, `.thinkwell-${basename(absolutePath, ext)}-${randomId()}${ext}`);
|
|
311
349
|
try {
|
|
312
350
|
// Write transformed source
|
|
313
351
|
writeFileSync(tempFile, source, "utf-8");
|
|
@@ -317,9 +355,9 @@ export function loadScript(scriptPath) {
|
|
|
317
355
|
return result;
|
|
318
356
|
}
|
|
319
357
|
finally {
|
|
320
|
-
// Clean up temp
|
|
358
|
+
// Clean up temp file
|
|
321
359
|
try {
|
|
322
|
-
rmSync(
|
|
360
|
+
rmSync(tempFile);
|
|
323
361
|
}
|
|
324
362
|
catch {
|
|
325
363
|
// Ignore cleanup errors
|
package/dist/cli/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/cli/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/cli/loader.ts"],"names":[],"mappings":"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"}
|
package/dist-pkg/cli-loader.cjs
CHANGED
|
@@ -238601,6 +238601,7 @@ __export(loader_exports, {
|
|
|
238601
238601
|
extractShebang: () => extractShebang,
|
|
238602
238602
|
initializeBundledRegistry: () => initializeBundledRegistry,
|
|
238603
238603
|
loadScript: () => loadScript,
|
|
238604
|
+
rewriteJsToTsExtensions: () => rewriteJsToTsExtensions,
|
|
238604
238605
|
rewriteThinkwellImports: () => rewriteThinkwellImports,
|
|
238605
238606
|
runScript: () => runScript,
|
|
238606
238607
|
transformVirtualImports: () => transformVirtualImports
|
|
@@ -238608,7 +238609,7 @@ __export(loader_exports, {
|
|
|
238608
238609
|
module.exports = __toCommonJS(loader_exports);
|
|
238609
238610
|
var import_node_fs2 = require("node:fs");
|
|
238610
238611
|
var import_node_path2 = require("node:path");
|
|
238611
|
-
var
|
|
238612
|
+
var import_node_crypto = require("node:crypto");
|
|
238612
238613
|
var import_node_module = require("node:module");
|
|
238613
238614
|
|
|
238614
238615
|
// dist/cli/schema.js
|
|
@@ -238908,6 +238909,29 @@ function needsTransformation(source) {
|
|
|
238908
238909
|
return false;
|
|
238909
238910
|
}
|
|
238910
238911
|
__name(needsTransformation, "needsTransformation");
|
|
238912
|
+
function randomId() {
|
|
238913
|
+
return (0, import_node_crypto.randomBytes)(6).toString("base64url");
|
|
238914
|
+
}
|
|
238915
|
+
__name(randomId, "randomId");
|
|
238916
|
+
function rewriteJsToTsExtensions(originalPath, source) {
|
|
238917
|
+
const scriptDir = (0, import_node_path2.dirname)(originalPath);
|
|
238918
|
+
source = source.replace(/(from\s+['"])(\.\.?\/[^'"]*?)\.js(['"])/g, (match, prefix, specifierBase, suffix) => {
|
|
238919
|
+
const tsPath = (0, import_node_path2.resolve)(scriptDir, `${specifierBase}.ts`);
|
|
238920
|
+
if ((0, import_node_fs2.existsSync)(tsPath)) {
|
|
238921
|
+
return `${prefix}${specifierBase}.ts${suffix}`;
|
|
238922
|
+
}
|
|
238923
|
+
return match;
|
|
238924
|
+
});
|
|
238925
|
+
source = source.replace(/(import\s*\(\s*['"])(\.\.?\/[^'"]*?)\.js(['"]\s*\))/g, (match, prefix, specifierBase, suffix) => {
|
|
238926
|
+
const tsPath = (0, import_node_path2.resolve)(scriptDir, `${specifierBase}.ts`);
|
|
238927
|
+
if ((0, import_node_fs2.existsSync)(tsPath)) {
|
|
238928
|
+
return `${prefix}${specifierBase}.ts${suffix}`;
|
|
238929
|
+
}
|
|
238930
|
+
return match;
|
|
238931
|
+
});
|
|
238932
|
+
return source;
|
|
238933
|
+
}
|
|
238934
|
+
__name(rewriteJsToTsExtensions, "rewriteJsToTsExtensions");
|
|
238911
238935
|
function generateImportMetaPatch(originalPath) {
|
|
238912
238936
|
const fileUrl = `file://${originalPath}`;
|
|
238913
238937
|
const originalDir = (0, import_node_path2.dirname)(originalPath);
|
|
@@ -238932,11 +238956,11 @@ function loadScript(scriptPath) {
|
|
|
238932
238956
|
let source = rewriteThinkwellImports(sourceWithoutShebang);
|
|
238933
238957
|
source = transformJsonSchemas(absolutePath, source);
|
|
238934
238958
|
source = transformVirtualImports(source);
|
|
238959
|
+
source = rewriteJsToTsExtensions(absolutePath, source);
|
|
238935
238960
|
source = generateImportMetaPatch(absolutePath) + source;
|
|
238936
238961
|
const ext = absolutePath.endsWith(".ts") ? ".ts" : ".js";
|
|
238937
|
-
const
|
|
238938
|
-
const
|
|
238939
|
-
const tempFile = (0, import_node_path2.join)(tempDir, `script${ext}`);
|
|
238962
|
+
const scriptDir = (0, import_node_path2.dirname)(absolutePath);
|
|
238963
|
+
const tempFile = (0, import_node_path2.join)(scriptDir, `.thinkwell-${(0, import_node_path2.basename)(absolutePath, ext)}-${randomId()}${ext}`);
|
|
238940
238964
|
try {
|
|
238941
238965
|
(0, import_node_fs2.writeFileSync)(tempFile, source, "utf-8");
|
|
238942
238966
|
const baseRequire = (0, import_node_module.createRequire)(absolutePath);
|
|
@@ -238944,7 +238968,7 @@ function loadScript(scriptPath) {
|
|
|
238944
238968
|
return result;
|
|
238945
238969
|
} finally {
|
|
238946
238970
|
try {
|
|
238947
|
-
(0, import_node_fs2.rmSync)(
|
|
238971
|
+
(0, import_node_fs2.rmSync)(tempFile);
|
|
238948
238972
|
} catch {
|
|
238949
238973
|
}
|
|
238950
238974
|
}
|
|
@@ -238984,6 +239008,7 @@ __name(runScript, "runScript");
|
|
|
238984
239008
|
extractShebang,
|
|
238985
239009
|
initializeBundledRegistry,
|
|
238986
239010
|
loadScript,
|
|
239011
|
+
rewriteJsToTsExtensions,
|
|
238987
239012
|
rewriteThinkwellImports,
|
|
238988
239013
|
runScript,
|
|
238989
239014
|
transformVirtualImports
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thinkwell",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.5",
|
|
4
4
|
"description": "TypeScript library for blending deterministic code with LLM-powered reasoning",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -40,9 +40,9 @@
|
|
|
40
40
|
"@agentclientprotocol/sdk": "^0.12.0",
|
|
41
41
|
"ts-json-schema-generator": "^2.4.0",
|
|
42
42
|
"typescript": "^5.7.2",
|
|
43
|
-
"@thinkwell/acp": "0.4.
|
|
44
|
-
"@thinkwell/conductor": "0.4.
|
|
45
|
-
"@thinkwell/protocol": "0.4.
|
|
43
|
+
"@thinkwell/acp": "0.4.5",
|
|
44
|
+
"@thinkwell/conductor": "0.4.5",
|
|
45
|
+
"@thinkwell/protocol": "0.4.5"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@types/node": "^24.10.4",
|