thinkwell 0.4.5 → 0.5.0-alpha.2
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/README.md +3 -5
- package/bin/thinkwell +130 -174
- package/dist/agent.d.ts +82 -56
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +178 -174
- package/dist/agent.js.map +1 -1
- package/dist/cli/build.d.ts +15 -43
- package/dist/cli/build.d.ts.map +1 -1
- package/dist/cli/build.js +199 -1231
- package/dist/cli/build.js.map +1 -1
- package/dist/cli/bundle.d.ts +61 -0
- package/dist/cli/bundle.d.ts.map +1 -0
- package/dist/cli/bundle.js +1299 -0
- package/dist/cli/bundle.js.map +1 -0
- package/dist/cli/check.d.ts +19 -0
- package/dist/cli/check.d.ts.map +1 -0
- package/dist/cli/check.js +248 -0
- package/dist/cli/check.js.map +1 -0
- package/dist/cli/commands.d.ts +30 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +64 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/compiler-host.d.ts +109 -0
- package/dist/cli/compiler-host.d.ts.map +1 -0
- package/dist/cli/compiler-host.js +173 -0
- package/dist/cli/compiler-host.js.map +1 -0
- package/dist/cli/fmt.d.ts +13 -0
- package/dist/cli/fmt.d.ts.map +1 -0
- package/dist/cli/fmt.js +14 -0
- package/dist/cli/fmt.js.map +1 -0
- package/dist/cli/init-command.js +12 -12
- package/dist/cli/init-command.js.map +1 -1
- package/dist/cli/loader.d.ts +0 -21
- package/dist/cli/loader.d.ts.map +1 -1
- package/dist/cli/loader.js +1 -50
- package/dist/cli/loader.js.map +1 -1
- package/dist/cli/schema.d.ts +2 -0
- package/dist/cli/schema.d.ts.map +1 -1
- package/dist/cli/schema.js +11 -4
- package/dist/cli/schema.js.map +1 -1
- package/dist/cli/workspace.d.ts +82 -0
- package/dist/cli/workspace.d.ts.map +1 -0
- package/dist/cli/workspace.js +248 -0
- package/dist/cli/workspace.js.map +1 -0
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/think-builder.d.ts +50 -2
- package/dist/think-builder.d.ts.map +1 -1
- package/dist/think-builder.js +137 -14
- package/dist/think-builder.js.map +1 -1
- package/dist/thought-event.d.ts +80 -0
- package/dist/thought-event.d.ts.map +1 -0
- package/dist/thought-event.js +2 -0
- package/dist/thought-event.js.map +1 -0
- package/dist/thought-stream.d.ts +45 -0
- package/dist/thought-stream.d.ts.map +1 -0
- package/dist/thought-stream.js +99 -0
- package/dist/thought-stream.js.map +1 -0
- package/dist-pkg/acp.cjs +37 -11
- package/dist-pkg/thinkwell.cjs +49 -18
- package/package.json +4 -9
- package/dist/cli/index.d.ts +0 -11
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -11
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/main-pkg.d.ts +0 -18
- package/dist/cli/main-pkg.d.ts.map +0 -1
- package/dist/cli/main.d.ts +0 -14
- package/dist/cli/main.d.ts.map +0 -1
- package/dist/cli/main.js +0 -256
- package/dist/cli/main.js.map +0 -1
- package/dist/cli/types-command.d.ts +0 -8
- package/dist/cli/types-command.d.ts.map +0 -1
- package/dist/cli/types-command.js +0 -110
- package/dist/cli/types-command.js.map +0 -1
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom TypeScript CompilerHost for thinkwell build and check commands.
|
|
3
|
+
*
|
|
4
|
+
* This module provides the shared infrastructure that intercepts TypeScript's
|
|
5
|
+
* file reads and applies @JSONSchema namespace injection in memory. Files
|
|
6
|
+
* without @JSONSchema markers pass through unchanged. Files from node_modules
|
|
7
|
+
* and TypeScript lib files are always passed through unchanged.
|
|
8
|
+
*
|
|
9
|
+
* Used by `thinkwell build` (single-pass and watch mode) and `thinkwell check` (noEmit).
|
|
10
|
+
*/
|
|
11
|
+
import ts from "typescript";
|
|
12
|
+
import { resolve, dirname } from "node:path";
|
|
13
|
+
import { transformJsonSchemas, hasJsonSchemaMarkers } from "./schema.js";
|
|
14
|
+
/**
|
|
15
|
+
* Read and parse a tsconfig.json file using the TypeScript compiler API.
|
|
16
|
+
*
|
|
17
|
+
* @param configPath - Absolute path to tsconfig.json
|
|
18
|
+
* @returns Parsed configuration, or an error diagnostic if the file can't be read
|
|
19
|
+
*/
|
|
20
|
+
export function parseTsConfig(configPath) {
|
|
21
|
+
const configFile = ts.readConfigFile(configPath, ts.sys.readFile);
|
|
22
|
+
if (configFile.error) {
|
|
23
|
+
return {
|
|
24
|
+
options: {},
|
|
25
|
+
fileNames: [],
|
|
26
|
+
errors: [configFile.error],
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
const configDir = dirname(configPath);
|
|
30
|
+
const parsed = ts.parseJsonConfigFileContent(configFile.config, ts.sys, configDir,
|
|
31
|
+
/* existingOptions */ undefined, configPath);
|
|
32
|
+
return {
|
|
33
|
+
options: parsed.options,
|
|
34
|
+
fileNames: parsed.fileNames,
|
|
35
|
+
errors: parsed.errors,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Determine whether a file path should receive @JSONSchema transformation.
|
|
40
|
+
*
|
|
41
|
+
* Only project source files are transformed. Files in node_modules and
|
|
42
|
+
* TypeScript's own lib files are always passed through unchanged.
|
|
43
|
+
*/
|
|
44
|
+
function shouldTransform(fileName) {
|
|
45
|
+
if (fileName.includes("node_modules"))
|
|
46
|
+
return false;
|
|
47
|
+
if (fileName.includes("/lib/lib."))
|
|
48
|
+
return false;
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
function isThinkwellHostOptions(options) {
|
|
52
|
+
return typeof options.compilerOptions === "object"
|
|
53
|
+
&& options.compilerOptions !== null
|
|
54
|
+
&& !Array.isArray(options.compilerOptions);
|
|
55
|
+
}
|
|
56
|
+
export function createThinkwellHost(options) {
|
|
57
|
+
let compilerOptions;
|
|
58
|
+
let fileFilter;
|
|
59
|
+
if (isThinkwellHostOptions(options)) {
|
|
60
|
+
compilerOptions = options.compilerOptions;
|
|
61
|
+
fileFilter = options.fileFilter;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
compilerOptions = options;
|
|
65
|
+
fileFilter = undefined;
|
|
66
|
+
}
|
|
67
|
+
const defaultHost = ts.createCompilerHost(compilerOptions);
|
|
68
|
+
return {
|
|
69
|
+
...defaultHost,
|
|
70
|
+
getSourceFile(fileName, languageVersionOrOptions) {
|
|
71
|
+
const source = ts.sys.readFile(fileName);
|
|
72
|
+
if (source === undefined) {
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
// Only transform project source files that contain @JSONSchema markers.
|
|
76
|
+
// If a fileFilter is provided, also check that the file passes the filter.
|
|
77
|
+
if (shouldTransform(fileName) && hasJsonSchemaMarkers(source)) {
|
|
78
|
+
if (!fileFilter || fileFilter(fileName)) {
|
|
79
|
+
const transformed = transformJsonSchemas(fileName, source);
|
|
80
|
+
return ts.createSourceFile(fileName, transformed, languageVersionOrOptions);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Pass through unchanged
|
|
84
|
+
return ts.createSourceFile(fileName, source, languageVersionOrOptions);
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Create a TypeScript Program wired to the custom CompilerHost.
|
|
90
|
+
*
|
|
91
|
+
* This is the main entry point for both `thinkwell build` and `thinkwell check`.
|
|
92
|
+
* The returned program can be used with `ts.getPreEmitDiagnostics()` for type
|
|
93
|
+
* checking or `program.emit()` for producing output files.
|
|
94
|
+
*
|
|
95
|
+
* @param configPathOrOptions - Absolute path to tsconfig.json, or a CreateProgramOptions object
|
|
96
|
+
* @returns The ts.Program and any config-level diagnostics, or null with errors
|
|
97
|
+
*/
|
|
98
|
+
export function createThinkwellProgram(configPathOrOptions) {
|
|
99
|
+
const configPath = typeof configPathOrOptions === "string"
|
|
100
|
+
? configPathOrOptions
|
|
101
|
+
: configPathOrOptions.configPath;
|
|
102
|
+
const fileFilter = typeof configPathOrOptions === "object"
|
|
103
|
+
? configPathOrOptions.fileFilter
|
|
104
|
+
: undefined;
|
|
105
|
+
const resolvedConfigPath = resolve(configPath);
|
|
106
|
+
const { options, fileNames, errors } = parseTsConfig(resolvedConfigPath);
|
|
107
|
+
function makeHost() {
|
|
108
|
+
return fileFilter
|
|
109
|
+
? createThinkwellHost({ compilerOptions: options, fileFilter })
|
|
110
|
+
: createThinkwellHost(options);
|
|
111
|
+
}
|
|
112
|
+
// If there are fatal config errors, still return them so callers can report
|
|
113
|
+
if (errors.length > 0) {
|
|
114
|
+
// Check if any errors are fatal (not just warnings)
|
|
115
|
+
const fatalErrors = errors.filter((d) => d.category === ts.DiagnosticCategory.Error);
|
|
116
|
+
if (fatalErrors.length > 0) {
|
|
117
|
+
// Create a minimal program so callers have a consistent interface
|
|
118
|
+
const host = makeHost();
|
|
119
|
+
const program = ts.createProgram([], options, host);
|
|
120
|
+
return { program, configErrors: errors };
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
const host = makeHost();
|
|
124
|
+
const program = ts.createProgram(fileNames, options, host);
|
|
125
|
+
return { program, configErrors: errors };
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Patch a CompilerHost's getSourceFile to apply @JSONSchema transformation.
|
|
129
|
+
*
|
|
130
|
+
* This is used by watch mode to wrap the host that TypeScript's watch system
|
|
131
|
+
* provides, preserving its internal state while intercepting file reads.
|
|
132
|
+
*/
|
|
133
|
+
function patchHostGetSourceFile(host, fileFilter) {
|
|
134
|
+
const originalGetSourceFile = host.getSourceFile.bind(host);
|
|
135
|
+
host.getSourceFile = (fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile) => {
|
|
136
|
+
const source = ts.sys.readFile(fileName);
|
|
137
|
+
if (source === undefined) {
|
|
138
|
+
return originalGetSourceFile(fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile);
|
|
139
|
+
}
|
|
140
|
+
if (shouldTransform(fileName) && hasJsonSchemaMarkers(source)) {
|
|
141
|
+
if (!fileFilter || fileFilter(fileName)) {
|
|
142
|
+
const transformed = transformJsonSchemas(fileName, source);
|
|
143
|
+
return ts.createSourceFile(fileName, transformed, languageVersionOrOptions);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return ts.createSourceFile(fileName, source, languageVersionOrOptions);
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Create a watch-mode compiler host with @JSONSchema transformation.
|
|
151
|
+
*
|
|
152
|
+
* Uses TypeScript's `ts.createWatchCompilerHost` (config-file mode) with a
|
|
153
|
+
* custom `createProgram` callback that patches the host's `getSourceFile()`
|
|
154
|
+
* to apply `@JSONSchema` namespace injection. TypeScript handles file watching,
|
|
155
|
+
* debouncing, and incremental re-compilation automatically.
|
|
156
|
+
*
|
|
157
|
+
* @param options - Watch host configuration
|
|
158
|
+
* @returns A watch compiler host ready to pass to `ts.createWatchProgram()`
|
|
159
|
+
*/
|
|
160
|
+
export function createThinkwellWatchHost(options) {
|
|
161
|
+
const { configPath, fileFilter, reportDiagnostic, reportWatchStatus } = options;
|
|
162
|
+
const createProgram = (rootNames, compilerOptions, host, oldProgram, configFileParsingDiagnostics, projectReferences) => {
|
|
163
|
+
// Patch the host that TypeScript's watch system created, rather than
|
|
164
|
+
// replacing it entirely. This preserves watch-specific internal state.
|
|
165
|
+
if (host) {
|
|
166
|
+
patchHostGetSourceFile(host, fileFilter);
|
|
167
|
+
}
|
|
168
|
+
return ts.createEmitAndSemanticDiagnosticsBuilderProgram(rootNames, compilerOptions, host, oldProgram, configFileParsingDiagnostics, projectReferences);
|
|
169
|
+
};
|
|
170
|
+
return ts.createWatchCompilerHost(resolve(configPath),
|
|
171
|
+
/* optionsToExtend */ undefined, ts.sys, createProgram, reportDiagnostic, reportWatchStatus);
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=compiler-host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiler-host.js","sourceRoot":"","sources":["../../src/cli/compiler-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared ANSI formatting helpers for CLI help screens.
|
|
3
|
+
*
|
|
4
|
+
* Uses node:util styleText for consistent coloring across all
|
|
5
|
+
* `thinkwell` subcommand help output.
|
|
6
|
+
*/
|
|
7
|
+
export declare const cyan: (t: string) => string;
|
|
8
|
+
export declare const cyanBold: (t: string) => string;
|
|
9
|
+
export declare const greenBold: (t: string) => string;
|
|
10
|
+
export declare const whiteBold: (t: string) => string;
|
|
11
|
+
export declare const dim: (t: string) => string;
|
|
12
|
+
export declare const redBold: (t: string) => string;
|
|
13
|
+
//# sourceMappingURL=fmt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fmt.d.ts","sourceRoot":"","sources":["../../src/cli/fmt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,eAAO,MAAM,IAAI,GAAI,GAAG,MAAM,WAAyB,CAAC;AACxD,eAAO,MAAM,QAAQ,GAAI,GAAG,MAAM,WAAmC,CAAC;AACtE,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,WAAoC,CAAC;AACxE,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,WAAoC,CAAC;AACxE,eAAO,MAAM,GAAG,GAAI,GAAG,MAAM,WAAwB,CAAC;AACtD,eAAO,MAAM,OAAO,GAAI,GAAG,MAAM,WAAkC,CAAC"}
|
package/dist/cli/fmt.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared ANSI formatting helpers for CLI help screens.
|
|
3
|
+
*
|
|
4
|
+
* Uses node:util styleText for consistent coloring across all
|
|
5
|
+
* `thinkwell` subcommand help output.
|
|
6
|
+
*/
|
|
7
|
+
import { styleText } from "node:util";
|
|
8
|
+
export const cyan = (t) => styleText("cyan", t);
|
|
9
|
+
export const cyanBold = (t) => styleText(["cyan", "bold"], t);
|
|
10
|
+
export const greenBold = (t) => styleText(["green", "bold"], t);
|
|
11
|
+
export const whiteBold = (t) => styleText(["white", "bold"], t);
|
|
12
|
+
export const dim = (t) => styleText("dim", t);
|
|
13
|
+
export const redBold = (t) => styleText(["red", "bold"], t);
|
|
14
|
+
//# sourceMappingURL=fmt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fmt.js","sourceRoot":"","sources":["../../src/cli/fmt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC"}
|
package/dist/cli/init-command.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
8
8
|
import { basename, join, resolve } from "node:path";
|
|
9
|
+
import { cyan, cyanBold, greenBold, whiteBold, dim } from "./fmt.js";
|
|
9
10
|
const PACKAGE_JSON_TEMPLATE = (name) => `{
|
|
10
11
|
"name": "${name}",
|
|
11
12
|
"version": "0.1.0",
|
|
@@ -19,7 +20,7 @@ const PACKAGE_JSON_TEMPLATE = (name) => `{
|
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
`;
|
|
22
|
-
const MAIN_TS_TEMPLATE = `import {
|
|
23
|
+
const MAIN_TS_TEMPLATE = `import { open } from "thinkwell";
|
|
23
24
|
|
|
24
25
|
/**
|
|
25
26
|
* A greeting response from the agent.
|
|
@@ -30,8 +31,7 @@ export interface Greeting {
|
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
async function main() {
|
|
33
|
-
|
|
34
|
-
const agent = await Agent.connect(process.env.THINKWELL_AGENT_CMD!);
|
|
34
|
+
const agent = await open('claude');
|
|
35
35
|
|
|
36
36
|
// Ask the agent to generate a structured greeting
|
|
37
37
|
const greeting = await agent
|
|
@@ -81,19 +81,19 @@ function createProject(options) {
|
|
|
81
81
|
}
|
|
82
82
|
function showHelp() {
|
|
83
83
|
console.log(`
|
|
84
|
-
thinkwell init - Initialize a new thinkwell project
|
|
84
|
+
${cyanBold("thinkwell init")} - ${whiteBold("Initialize a new thinkwell project")}
|
|
85
85
|
|
|
86
|
-
Usage:
|
|
87
|
-
thinkwell init [project-name]
|
|
86
|
+
${greenBold("Usage:")}
|
|
87
|
+
${cyanBold("thinkwell init")} ${cyan("[project-name]")}
|
|
88
88
|
|
|
89
|
-
Arguments:
|
|
90
|
-
project-name Name of the project directory (default: current directory)
|
|
89
|
+
${greenBold("Arguments:")}
|
|
90
|
+
${cyan("project-name")} Name of the project directory ${dim("(default: current directory)")}
|
|
91
91
|
|
|
92
|
-
Examples:
|
|
93
|
-
thinkwell init my-agent Create a new project in ./my-agent
|
|
94
|
-
thinkwell init Initialize in the current directory
|
|
92
|
+
${greenBold("Examples:")}
|
|
93
|
+
${cyanBold("thinkwell init")} ${cyan("my-agent")} Create a new project in ./my-agent
|
|
94
|
+
${cyanBold("thinkwell init")} Initialize in the current directory
|
|
95
95
|
|
|
96
|
-
This command creates:
|
|
96
|
+
${greenBold("This command creates:")}
|
|
97
97
|
- package.json with thinkwell dependency
|
|
98
98
|
- tsconfig.json for TypeScript
|
|
99
99
|
- src/main.ts with example agent code
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-command.js","sourceRoot":"","sources":["../../src/cli/init-command.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"init-command.js","sourceRoot":"","sources":["../../src/cli/init-command.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/loader.d.ts
CHANGED
|
@@ -5,12 +5,10 @@
|
|
|
5
5
|
* user scripts in the compiled binary. It handles:
|
|
6
6
|
*
|
|
7
7
|
* 1. **Module Resolution**: Routes imports to the appropriate source:
|
|
8
|
-
* - `thinkwell:*` imports → bundled packages via `global.__bundled__`
|
|
9
8
|
* - thinkwell packages → bundled packages via `global.__bundled__`
|
|
10
9
|
* - External packages → user's node_modules via `require.resolve()`
|
|
11
10
|
*
|
|
12
11
|
* 2. **Import Transformation**: Rewrites user script imports before execution:
|
|
13
|
-
* - `import { Agent } from "thinkwell:agent"` → bundled thinkwell
|
|
14
12
|
* - `import { Agent } from "thinkwell"` → bundled thinkwell
|
|
15
13
|
*
|
|
16
14
|
* 3. **@JSONSchema Processing**: Generates JSON schemas for marked types and
|
|
@@ -47,25 +45,6 @@ export declare function initializeBundledRegistry(modules: Record<string, unknow
|
|
|
47
45
|
* @returns Tuple of [shebang line or empty string, rest of source]
|
|
48
46
|
*/
|
|
49
47
|
export declare function extractShebang(source: string): [string, string];
|
|
50
|
-
/**
|
|
51
|
-
* Transform thinkwell:* imports to use bundled packages.
|
|
52
|
-
*
|
|
53
|
-
* Rewrites import specifiers from the thinkwell:* URI scheme to
|
|
54
|
-
* their corresponding npm package names.
|
|
55
|
-
*
|
|
56
|
-
* @example
|
|
57
|
-
* ```typescript
|
|
58
|
-
* // Input:
|
|
59
|
-
* import { Agent } from "thinkwell:agent";
|
|
60
|
-
*
|
|
61
|
-
* // Output:
|
|
62
|
-
* import { Agent } from "thinkwell";
|
|
63
|
-
* ```
|
|
64
|
-
*
|
|
65
|
-
* @param source - The script source code
|
|
66
|
-
* @returns The source with thinkwell:* imports rewritten
|
|
67
|
-
*/
|
|
68
|
-
export declare function rewriteThinkwellImports(source: string): string;
|
|
69
48
|
/**
|
|
70
49
|
* Transform imports to use the bundled module registry.
|
|
71
50
|
*
|
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
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/cli/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AA2BH;;;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;;;;;;;;;;;;;;;;;;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;AA2BD;;;;;;;;;;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,CAyDtD;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
|
@@ -5,12 +5,10 @@
|
|
|
5
5
|
* user scripts in the compiled binary. It handles:
|
|
6
6
|
*
|
|
7
7
|
* 1. **Module Resolution**: Routes imports to the appropriate source:
|
|
8
|
-
* - `thinkwell:*` imports → bundled packages via `global.__bundled__`
|
|
9
8
|
* - thinkwell packages → bundled packages via `global.__bundled__`
|
|
10
9
|
* - External packages → user's node_modules via `require.resolve()`
|
|
11
10
|
*
|
|
12
11
|
* 2. **Import Transformation**: Rewrites user script imports before execution:
|
|
13
|
-
* - `import { Agent } from "thinkwell:agent"` → bundled thinkwell
|
|
14
12
|
* - `import { Agent } from "thinkwell"` → bundled thinkwell
|
|
15
13
|
*
|
|
16
14
|
* 3. **@JSONSchema Processing**: Generates JSON schemas for marked types and
|
|
@@ -26,15 +24,6 @@ import { dirname, join, isAbsolute, resolve, basename } from "node:path";
|
|
|
26
24
|
import { randomBytes } from "node:crypto";
|
|
27
25
|
import { createRequire } from "node:module";
|
|
28
26
|
import { hasJsonSchemaMarkers, transformJsonSchemas } from "./schema.js";
|
|
29
|
-
/**
|
|
30
|
-
* Maps thinkwell:* URI scheme to npm package names.
|
|
31
|
-
*/
|
|
32
|
-
const THINKWELL_MODULES = {
|
|
33
|
-
agent: "thinkwell",
|
|
34
|
-
acp: "@thinkwell/acp",
|
|
35
|
-
protocol: "@thinkwell/protocol",
|
|
36
|
-
connectors: "thinkwell",
|
|
37
|
-
};
|
|
38
27
|
/**
|
|
39
28
|
* Package names that should be resolved from bundled modules.
|
|
40
29
|
*/
|
|
@@ -75,38 +64,6 @@ export function extractShebang(source) {
|
|
|
75
64
|
}
|
|
76
65
|
return ["", source];
|
|
77
66
|
}
|
|
78
|
-
/**
|
|
79
|
-
* Transform thinkwell:* imports to use bundled packages.
|
|
80
|
-
*
|
|
81
|
-
* Rewrites import specifiers from the thinkwell:* URI scheme to
|
|
82
|
-
* their corresponding npm package names.
|
|
83
|
-
*
|
|
84
|
-
* @example
|
|
85
|
-
* ```typescript
|
|
86
|
-
* // Input:
|
|
87
|
-
* import { Agent } from "thinkwell:agent";
|
|
88
|
-
*
|
|
89
|
-
* // Output:
|
|
90
|
-
* import { Agent } from "thinkwell";
|
|
91
|
-
* ```
|
|
92
|
-
*
|
|
93
|
-
* @param source - The script source code
|
|
94
|
-
* @returns The source with thinkwell:* imports rewritten
|
|
95
|
-
*/
|
|
96
|
-
export function rewriteThinkwellImports(source) {
|
|
97
|
-
// Match import/export statements with thinkwell:* specifiers
|
|
98
|
-
// Handles: import { x } from "thinkwell:foo"
|
|
99
|
-
// import x from 'thinkwell:foo'
|
|
100
|
-
// export { x } from "thinkwell:foo"
|
|
101
|
-
return source.replace(/(from\s+['"])thinkwell:(\w+)(['"])/g, (_, prefix, moduleName, suffix) => {
|
|
102
|
-
const npmPackage = THINKWELL_MODULES[moduleName];
|
|
103
|
-
if (npmPackage) {
|
|
104
|
-
return `${prefix}${npmPackage}${suffix}`;
|
|
105
|
-
}
|
|
106
|
-
// Unknown module - leave as is (will error at resolution)
|
|
107
|
-
return `${prefix}thinkwell:${moduleName}${suffix}`;
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
67
|
/**
|
|
111
68
|
* Transform imports to use the bundled module registry.
|
|
112
69
|
*
|
|
@@ -218,10 +175,6 @@ export function createCustomRequire(scriptPath) {
|
|
|
218
175
|
* @returns true if the source contains thinkwell imports or @JSONSchema markers
|
|
219
176
|
*/
|
|
220
177
|
function needsTransformation(source) {
|
|
221
|
-
// Check for thinkwell:* URI scheme imports
|
|
222
|
-
if (/from\s+['"]thinkwell:\w+['"]/.test(source)) {
|
|
223
|
-
return true;
|
|
224
|
-
}
|
|
225
178
|
// Check for bundled package imports
|
|
226
179
|
if (/from\s+['"](?:thinkwell|@thinkwell\/(?:acp|protocol))['"]/.test(source)) {
|
|
227
180
|
return true;
|
|
@@ -330,11 +283,9 @@ export function loadScript(scriptPath) {
|
|
|
330
283
|
return baseRequire(absolutePath);
|
|
331
284
|
}
|
|
332
285
|
// Source needs transformation - apply transforms and use a temp file
|
|
333
|
-
// Rewrite thinkwell:* imports to npm package names
|
|
334
|
-
let source = rewriteThinkwellImports(sourceWithoutShebang);
|
|
335
286
|
// Process @JSONSchema types (must happen before import transformation
|
|
336
287
|
// because it adds an import statement that also needs transformation)
|
|
337
|
-
source = transformJsonSchemas(absolutePath,
|
|
288
|
+
let source = transformJsonSchemas(absolutePath, sourceWithoutShebang);
|
|
338
289
|
// Transform imports to use bundled modules (global.__bundled__)
|
|
339
290
|
source = transformVirtualImports(source);
|
|
340
291
|
// Rewrite .js → .ts in relative imports for TypeScript convention compatibility
|
package/dist/cli/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/cli/loader.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/cli/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/schema.d.ts
CHANGED
|
@@ -29,6 +29,8 @@ export interface TypeInfo {
|
|
|
29
29
|
column: number;
|
|
30
30
|
/** Length of the type declaration keyword + name (for error underlining) */
|
|
31
31
|
declarationLength: number;
|
|
32
|
+
/** Whether the type declaration has an `export` modifier */
|
|
33
|
+
isExported: boolean;
|
|
32
34
|
}
|
|
33
35
|
/**
|
|
34
36
|
* Find all types marked with @JSONSchema in the given source.
|
package/dist/cli/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/cli/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAW5B;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;IACd,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,iBAAiB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/cli/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAW5B;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;IACd,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,UAAU,EAAE,OAAO,CAAC;CACrB;AAUD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CAoDxE;AA0ED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,QAAQ,EAAE,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA0CrB;AAWD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAyBD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,SAAS,EAAE,CAiBb;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAI7C;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,CAM/E;AAMD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAuBzE"}
|
package/dist/cli/schema.js
CHANGED
|
@@ -54,6 +54,7 @@ export function findMarkedTypes(path, source) {
|
|
|
54
54
|
else if (ts.isClassDeclaration(node))
|
|
55
55
|
keyword = "class";
|
|
56
56
|
const declarationLength = keyword.length + 1 + name.length;
|
|
57
|
+
const isExported = node.modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword) ?? false;
|
|
57
58
|
results.push({
|
|
58
59
|
name,
|
|
59
60
|
node,
|
|
@@ -62,6 +63,7 @@ export function findMarkedTypes(path, source) {
|
|
|
62
63
|
line: line + 1,
|
|
63
64
|
column: character + 1,
|
|
64
65
|
declarationLength,
|
|
66
|
+
isExported,
|
|
65
67
|
});
|
|
66
68
|
}
|
|
67
69
|
}
|
|
@@ -182,14 +184,19 @@ export function generateSchemas(path, types, sourceCode) {
|
|
|
182
184
|
const ACP_NAMESPACE = "$$__thinkwell__acp__$$";
|
|
183
185
|
/**
|
|
184
186
|
* Generate a namespace declaration for a single type.
|
|
187
|
+
*
|
|
188
|
+
* If the original type declaration is exported, the namespace is also exported
|
|
189
|
+
* so that cross-file imports (e.g. `import { Greeting } from "./types.js"`)
|
|
190
|
+
* can access `Greeting.Schema`.
|
|
185
191
|
*/
|
|
186
|
-
function generateNamespace(name, schema) {
|
|
192
|
+
function generateNamespace(name, schema, isExported) {
|
|
187
193
|
const schemaJson = JSON.stringify(schema, null, 2)
|
|
188
194
|
.split("\n")
|
|
189
195
|
.map((line, i) => (i === 0 ? line : " " + line))
|
|
190
196
|
.join("\n");
|
|
197
|
+
const exportPrefix = isExported ? "export " : "";
|
|
191
198
|
return [
|
|
192
|
-
|
|
199
|
+
`${exportPrefix}namespace ${name} {`,
|
|
193
200
|
` export const Schema: ${ACP_NAMESPACE}.SchemaProvider<${name}> = {`,
|
|
194
201
|
` toJsonSchema: () => (${schemaJson}) as ${ACP_NAMESPACE}.JsonSchema,`,
|
|
195
202
|
` };`,
|
|
@@ -205,14 +212,14 @@ function generateNamespace(name, schema) {
|
|
|
205
212
|
*/
|
|
206
213
|
export function generateInsertions(types, schemas) {
|
|
207
214
|
const insertions = [];
|
|
208
|
-
for (const { name, endPosition } of types) {
|
|
215
|
+
for (const { name, endPosition, isExported } of types) {
|
|
209
216
|
const schema = schemas.get(name);
|
|
210
217
|
if (!schema) {
|
|
211
218
|
continue;
|
|
212
219
|
}
|
|
213
220
|
insertions.push({
|
|
214
221
|
position: endPosition,
|
|
215
|
-
code: "\n" + generateNamespace(name, schema),
|
|
222
|
+
code: "\n" + generateNamespace(name, schema, isExported),
|
|
216
223
|
});
|
|
217
224
|
}
|
|
218
225
|
// Sort by position descending for safe end-to-start insertion
|
package/dist/cli/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/cli/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAY,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAqC,MAAM,0BAA0B,CAAC;AAE9F,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF,MAAM,cAAc,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/cli/schema.ts"],"names":[],"mappings":"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"}
|