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.
Files changed (77) hide show
  1. package/README.md +3 -5
  2. package/bin/thinkwell +130 -174
  3. package/dist/agent.d.ts +82 -56
  4. package/dist/agent.d.ts.map +1 -1
  5. package/dist/agent.js +178 -174
  6. package/dist/agent.js.map +1 -1
  7. package/dist/cli/build.d.ts +15 -43
  8. package/dist/cli/build.d.ts.map +1 -1
  9. package/dist/cli/build.js +199 -1231
  10. package/dist/cli/build.js.map +1 -1
  11. package/dist/cli/bundle.d.ts +61 -0
  12. package/dist/cli/bundle.d.ts.map +1 -0
  13. package/dist/cli/bundle.js +1299 -0
  14. package/dist/cli/bundle.js.map +1 -0
  15. package/dist/cli/check.d.ts +19 -0
  16. package/dist/cli/check.d.ts.map +1 -0
  17. package/dist/cli/check.js +248 -0
  18. package/dist/cli/check.js.map +1 -0
  19. package/dist/cli/commands.d.ts +30 -0
  20. package/dist/cli/commands.d.ts.map +1 -0
  21. package/dist/cli/commands.js +64 -0
  22. package/dist/cli/commands.js.map +1 -0
  23. package/dist/cli/compiler-host.d.ts +109 -0
  24. package/dist/cli/compiler-host.d.ts.map +1 -0
  25. package/dist/cli/compiler-host.js +173 -0
  26. package/dist/cli/compiler-host.js.map +1 -0
  27. package/dist/cli/fmt.d.ts +13 -0
  28. package/dist/cli/fmt.d.ts.map +1 -0
  29. package/dist/cli/fmt.js +14 -0
  30. package/dist/cli/fmt.js.map +1 -0
  31. package/dist/cli/init-command.js +12 -12
  32. package/dist/cli/init-command.js.map +1 -1
  33. package/dist/cli/loader.d.ts +0 -21
  34. package/dist/cli/loader.d.ts.map +1 -1
  35. package/dist/cli/loader.js +1 -50
  36. package/dist/cli/loader.js.map +1 -1
  37. package/dist/cli/schema.d.ts +2 -0
  38. package/dist/cli/schema.d.ts.map +1 -1
  39. package/dist/cli/schema.js +11 -4
  40. package/dist/cli/schema.js.map +1 -1
  41. package/dist/cli/workspace.d.ts +82 -0
  42. package/dist/cli/workspace.d.ts.map +1 -0
  43. package/dist/cli/workspace.js +248 -0
  44. package/dist/cli/workspace.js.map +1 -0
  45. package/dist/index.d.ts +6 -3
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +3 -3
  48. package/dist/index.js.map +1 -1
  49. package/dist/think-builder.d.ts +50 -2
  50. package/dist/think-builder.d.ts.map +1 -1
  51. package/dist/think-builder.js +137 -14
  52. package/dist/think-builder.js.map +1 -1
  53. package/dist/thought-event.d.ts +80 -0
  54. package/dist/thought-event.d.ts.map +1 -0
  55. package/dist/thought-event.js +2 -0
  56. package/dist/thought-event.js.map +1 -0
  57. package/dist/thought-stream.d.ts +45 -0
  58. package/dist/thought-stream.d.ts.map +1 -0
  59. package/dist/thought-stream.js +99 -0
  60. package/dist/thought-stream.js.map +1 -0
  61. package/dist-pkg/acp.cjs +37 -11
  62. package/dist-pkg/thinkwell.cjs +49 -18
  63. package/package.json +4 -9
  64. package/dist/cli/index.d.ts +0 -11
  65. package/dist/cli/index.d.ts.map +0 -1
  66. package/dist/cli/index.js +0 -11
  67. package/dist/cli/index.js.map +0 -1
  68. package/dist/cli/main-pkg.d.ts +0 -18
  69. package/dist/cli/main-pkg.d.ts.map +0 -1
  70. package/dist/cli/main.d.ts +0 -14
  71. package/dist/cli/main.d.ts.map +0 -1
  72. package/dist/cli/main.js +0 -256
  73. package/dist/cli/main.js.map +0 -1
  74. package/dist/cli/types-command.d.ts +0 -8
  75. package/dist/cli/types-command.d.ts.map +0 -1
  76. package/dist/cli/types-command.js +0 -110
  77. package/dist/cli/types-command.js.map +0 -1
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Workspace detection for `thinkwell check`.
3
+ *
4
+ * Detects pnpm workspaces (pnpm-workspace.yaml) and npm workspaces
5
+ * (package.json "workspaces"), enumerates member packages, and resolves
6
+ * package names with short-name fallback for scoped packages.
7
+ */
8
+ /** A workspace member package with its metadata. */
9
+ export interface WorkspaceMember {
10
+ /** Full package name from package.json (e.g., "@thinkwell/acp") */
11
+ name: string;
12
+ /** Absolute path to the package directory */
13
+ dir: string;
14
+ /** Whether the package has a tsconfig.json */
15
+ hasTsConfig: boolean;
16
+ }
17
+ /** A detected workspace with its members. */
18
+ export interface Workspace {
19
+ /** Absolute path to the workspace root */
20
+ rootDir: string;
21
+ /** Workspace type that was detected */
22
+ type: "pnpm" | "npm";
23
+ /** All workspace member packages */
24
+ members: WorkspaceMember[];
25
+ }
26
+ /**
27
+ * Parse the `packages` array from a pnpm-workspace.yaml file.
28
+ *
29
+ * Handles the simple list format used by pnpm:
30
+ * ```yaml
31
+ * packages:
32
+ * - "packages/*"
33
+ * - "examples"
34
+ * ```
35
+ *
36
+ * This is intentionally minimal — it only extracts the `packages` array
37
+ * entries without pulling in a full YAML parser dependency.
38
+ */
39
+ export declare function parsePnpmWorkspaceYaml(content: string): string[];
40
+ /**
41
+ * Expand workspace glob patterns into concrete directory paths.
42
+ *
43
+ * Supports the common patterns used by pnpm and npm workspaces:
44
+ * - `packages/*` — all immediate subdirectories of `packages/`
45
+ * - `examples` — a single directory
46
+ * - `apps/**` — recursively find directories (not commonly used but supported)
47
+ *
48
+ * Only returns directories that actually exist.
49
+ */
50
+ export declare function expandWorkspaceGlobs(rootDir: string, patterns: string[]): string[];
51
+ /**
52
+ * Detect a workspace in the given directory.
53
+ *
54
+ * Detection priority: pnpm-workspace.yaml takes precedence over
55
+ * package.json "workspaces" (pnpm ignores the npm workspaces field).
56
+ *
57
+ * Returns undefined if no workspace is detected (single-package project).
58
+ */
59
+ export declare function detectWorkspace(rootDir: string): Workspace | undefined;
60
+ /** Result of resolving a package name. */
61
+ export type ResolveResult = {
62
+ kind: "found";
63
+ member: WorkspaceMember;
64
+ } | {
65
+ kind: "ambiguous";
66
+ name: string;
67
+ matches: WorkspaceMember[];
68
+ } | {
69
+ kind: "not-found";
70
+ name: string;
71
+ available: string[];
72
+ };
73
+ /**
74
+ * Resolve a package name (full or short) against workspace members.
75
+ *
76
+ * Resolution order:
77
+ * 1. Exact match on full package name (e.g., "@thinkwell/acp")
78
+ * 2. Short-name fallback: match last segment of scoped names (e.g., "acp" → "@thinkwell/acp")
79
+ * 3. Ambiguity detection if short name matches multiple packages
80
+ */
81
+ export declare function resolvePackageName(name: string, members: readonly WorkspaceMember[]): ResolveResult;
82
+ //# sourceMappingURL=workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/cli/workspace.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,6CAA6C;AAC7C,MAAM,WAAW,SAAS;IACxB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,oCAAoC;IACpC,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CA6BhE;AAMD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CA2ClF;AAgED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAyCtE;AAMD,0CAA0C;AAC1C,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,eAAe,EAAE,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE7D;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,SAAS,eAAe,EAAE,GAClC,aAAa,CA+Bf"}
@@ -0,0 +1,248 @@
1
+ /**
2
+ * Workspace detection for `thinkwell check`.
3
+ *
4
+ * Detects pnpm workspaces (pnpm-workspace.yaml) and npm workspaces
5
+ * (package.json "workspaces"), enumerates member packages, and resolves
6
+ * package names with short-name fallback for scoped packages.
7
+ */
8
+ import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
9
+ import { join, resolve } from "node:path";
10
+ // ============================================================================
11
+ // pnpm-workspace.yaml parsing
12
+ // ============================================================================
13
+ /**
14
+ * Parse the `packages` array from a pnpm-workspace.yaml file.
15
+ *
16
+ * Handles the simple list format used by pnpm:
17
+ * ```yaml
18
+ * packages:
19
+ * - "packages/*"
20
+ * - "examples"
21
+ * ```
22
+ *
23
+ * This is intentionally minimal — it only extracts the `packages` array
24
+ * entries without pulling in a full YAML parser dependency.
25
+ */
26
+ export function parsePnpmWorkspaceYaml(content) {
27
+ const patterns = [];
28
+ const lines = content.split("\n");
29
+ let inPackages = false;
30
+ for (const line of lines) {
31
+ const trimmed = line.trim();
32
+ // Detect the start of the packages block
33
+ if (/^packages\s*:/.test(trimmed)) {
34
+ inPackages = true;
35
+ continue;
36
+ }
37
+ // A non-indented, non-empty line that isn't a list item ends the block
38
+ if (inPackages && trimmed.length > 0 && !trimmed.startsWith("-") && !line.startsWith(" ") && !line.startsWith("\t")) {
39
+ break;
40
+ }
41
+ if (inPackages && trimmed.startsWith("-")) {
42
+ // Strip leading "- ", then strip optional quotes
43
+ const value = trimmed.slice(1).trim().replace(/^["']|["']$/g, "");
44
+ if (value.length > 0) {
45
+ patterns.push(value);
46
+ }
47
+ }
48
+ }
49
+ return patterns;
50
+ }
51
+ // ============================================================================
52
+ // Glob expansion
53
+ // ============================================================================
54
+ /**
55
+ * Expand workspace glob patterns into concrete directory paths.
56
+ *
57
+ * Supports the common patterns used by pnpm and npm workspaces:
58
+ * - `packages/*` — all immediate subdirectories of `packages/`
59
+ * - `examples` — a single directory
60
+ * - `apps/**` — recursively find directories (not commonly used but supported)
61
+ *
62
+ * Only returns directories that actually exist.
63
+ */
64
+ export function expandWorkspaceGlobs(rootDir, patterns) {
65
+ const dirs = [];
66
+ for (const pattern of patterns) {
67
+ // Skip negation patterns (pnpm supports "!packages/internal")
68
+ if (pattern.startsWith("!"))
69
+ continue;
70
+ if (pattern.includes("*")) {
71
+ // Split at the first glob segment
72
+ const parts = pattern.split("/");
73
+ const globIndex = parts.findIndex((p) => p.includes("*"));
74
+ const prefix = parts.slice(0, globIndex).join("/");
75
+ const globPart = parts[globIndex];
76
+ const suffix = parts.slice(globIndex + 1).join("/");
77
+ const baseDir = resolve(rootDir, prefix);
78
+ if (!existsSync(baseDir))
79
+ continue;
80
+ if (globPart === "*") {
81
+ // Single-level wildcard: list immediate subdirectories
82
+ const entries = readdirSync(baseDir);
83
+ for (const entry of entries) {
84
+ const fullPath = suffix
85
+ ? resolve(baseDir, entry, suffix)
86
+ : resolve(baseDir, entry);
87
+ if (existsSync(fullPath) && isDirectory(fullPath)) {
88
+ dirs.push(fullPath);
89
+ }
90
+ }
91
+ }
92
+ else if (globPart === "**") {
93
+ // Recursive wildcard: find all directories recursively
94
+ collectDirectories(baseDir, suffix, dirs);
95
+ }
96
+ }
97
+ else {
98
+ // Literal path
99
+ const fullPath = resolve(rootDir, pattern);
100
+ if (existsSync(fullPath) && isDirectory(fullPath)) {
101
+ dirs.push(fullPath);
102
+ }
103
+ }
104
+ }
105
+ return dirs;
106
+ }
107
+ function isDirectory(path) {
108
+ try {
109
+ return statSync(path).isDirectory();
110
+ }
111
+ catch {
112
+ return false;
113
+ }
114
+ }
115
+ function collectDirectories(baseDir, suffix, result) {
116
+ let entries;
117
+ try {
118
+ entries = readdirSync(baseDir);
119
+ }
120
+ catch {
121
+ return;
122
+ }
123
+ for (const entry of entries) {
124
+ if (entry.startsWith(".") || entry === "node_modules")
125
+ continue;
126
+ const fullPath = resolve(baseDir, entry);
127
+ if (!isDirectory(fullPath))
128
+ continue;
129
+ const candidate = suffix ? resolve(fullPath, suffix) : fullPath;
130
+ if (existsSync(candidate) && isDirectory(candidate)) {
131
+ result.push(candidate);
132
+ }
133
+ // Recurse
134
+ collectDirectories(fullPath, suffix, result);
135
+ }
136
+ }
137
+ // ============================================================================
138
+ // Package metadata
139
+ // ============================================================================
140
+ /**
141
+ * Read workspace member metadata from a package directory.
142
+ * Returns undefined if the directory has no package.json or no "name" field.
143
+ */
144
+ function readMember(dir) {
145
+ const pkgPath = join(dir, "package.json");
146
+ if (!existsSync(pkgPath))
147
+ return undefined;
148
+ try {
149
+ const content = readFileSync(pkgPath, "utf-8");
150
+ const pkg = JSON.parse(content);
151
+ if (!pkg.name || typeof pkg.name !== "string")
152
+ return undefined;
153
+ return {
154
+ name: pkg.name,
155
+ dir,
156
+ hasTsConfig: existsSync(join(dir, "tsconfig.json")),
157
+ };
158
+ }
159
+ catch {
160
+ return undefined;
161
+ }
162
+ }
163
+ // ============================================================================
164
+ // Workspace detection
165
+ // ============================================================================
166
+ /**
167
+ * Detect a workspace in the given directory.
168
+ *
169
+ * Detection priority: pnpm-workspace.yaml takes precedence over
170
+ * package.json "workspaces" (pnpm ignores the npm workspaces field).
171
+ *
172
+ * Returns undefined if no workspace is detected (single-package project).
173
+ */
174
+ export function detectWorkspace(rootDir) {
175
+ const absRoot = resolve(rootDir);
176
+ // Try pnpm workspace first
177
+ const pnpmPath = join(absRoot, "pnpm-workspace.yaml");
178
+ if (existsSync(pnpmPath)) {
179
+ const content = readFileSync(pnpmPath, "utf-8");
180
+ const patterns = parsePnpmWorkspaceYaml(content);
181
+ if (patterns.length > 0) {
182
+ const dirs = expandWorkspaceGlobs(absRoot, patterns);
183
+ const members = dirs
184
+ .map(readMember)
185
+ .filter((m) => m !== undefined);
186
+ return { rootDir: absRoot, type: "pnpm", members };
187
+ }
188
+ }
189
+ // Try npm workspaces
190
+ const pkgPath = join(absRoot, "package.json");
191
+ if (existsSync(pkgPath)) {
192
+ try {
193
+ const content = readFileSync(pkgPath, "utf-8");
194
+ const pkg = JSON.parse(content);
195
+ if (Array.isArray(pkg.workspaces)) {
196
+ const patterns = pkg.workspaces.filter((p) => typeof p === "string");
197
+ if (patterns.length > 0) {
198
+ const dirs = expandWorkspaceGlobs(absRoot, patterns);
199
+ const members = dirs
200
+ .map(readMember)
201
+ .filter((m) => m !== undefined);
202
+ return { rootDir: absRoot, type: "npm", members };
203
+ }
204
+ }
205
+ }
206
+ catch {
207
+ // Invalid package.json — treat as no workspace
208
+ }
209
+ }
210
+ return undefined;
211
+ }
212
+ /**
213
+ * Resolve a package name (full or short) against workspace members.
214
+ *
215
+ * Resolution order:
216
+ * 1. Exact match on full package name (e.g., "@thinkwell/acp")
217
+ * 2. Short-name fallback: match last segment of scoped names (e.g., "acp" → "@thinkwell/acp")
218
+ * 3. Ambiguity detection if short name matches multiple packages
219
+ */
220
+ export function resolvePackageName(name, members) {
221
+ // 1. Exact match
222
+ const exact = members.find((m) => m.name === name);
223
+ if (exact) {
224
+ return { kind: "found", member: exact };
225
+ }
226
+ // 2. Short-name fallback: match against the last segment of scoped names
227
+ // e.g., "acp" matches "@thinkwell/acp", "@other/acp"
228
+ // Also matches unscoped names exactly (e.g., "thinkwell" matches "thinkwell")
229
+ const shortMatches = members.filter((m) => {
230
+ const lastSegment = m.name.includes("/")
231
+ ? m.name.split("/").pop()
232
+ : m.name;
233
+ return lastSegment === name;
234
+ });
235
+ if (shortMatches.length === 1) {
236
+ return { kind: "found", member: shortMatches[0] };
237
+ }
238
+ if (shortMatches.length > 1) {
239
+ return { kind: "ambiguous", name, matches: shortMatches };
240
+ }
241
+ // 3. Not found
242
+ return {
243
+ kind: "not-found",
244
+ name,
245
+ available: members.map((m) => m.name),
246
+ };
247
+ }
248
+ //# sourceMappingURL=workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/cli/workspace.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,11 @@
1
- export { Agent } from "./agent.js";
2
- export type { ConnectOptions, SessionOptions } from "./agent.js";
1
+ export { open } from "./agent.js";
2
+ export type { Agent, AgentName, AgentOptions, CustomAgentOptions, SessionOptions } from "./agent.js";
3
3
  export { Session } from "./session.js";
4
4
  export { ThinkBuilder } from "./think-builder.js";
5
+ export type { VirtualSkillDefinition } from "./think-builder.js";
6
+ export { ThoughtStream } from "./thought-stream.js";
7
+ export type { ThoughtEvent, ToolContent, ContentBlock, PlanEntry, ToolKind, } from "./thought-event.js";
5
8
  export { schemaOf } from "./schema.js";
6
9
  export type { JsonSchema, SchemaProvider, JsonValue, JsonObject } from "@thinkwell/acp";
7
- export * from "./connectors/index.js";
10
+ export type { Skill, VirtualSkill, StoredSkill, SkillTool } from "@thinkwell/acp";
8
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxF,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACrG,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,SAAS,EACT,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxF,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  // New API
2
- export { Agent } from "./agent.js";
2
+ export { open } from "./agent.js";
3
3
  export { Session } from "./session.js";
4
4
  // Think builder
5
5
  export { ThinkBuilder } from "./think-builder.js";
6
+ // Thought streaming
7
+ export { ThoughtStream } from "./thought-stream.js";
6
8
  // Schema helpers
7
9
  export { schemaOf } from "./schema.js";
8
- // Re-export connectors for convenient single-package import
9
- export * from "./connectors/index.js";
10
10
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,iBAAiB;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKvC,4DAA4D;AAC5D,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASpD,iBAAiB;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
@@ -1,5 +1,15 @@
1
- import { type SchemaProvider } from "@thinkwell/acp";
1
+ import { type SchemaProvider, type SkillTool } from "@thinkwell/acp";
2
2
  import type { AgentConnection } from "./agent.js";
3
+ import { ThoughtStream } from "./thought-stream.js";
4
+ /**
5
+ * Input for defining a virtual skill via the .skill() method.
6
+ */
7
+ export interface VirtualSkillDefinition {
8
+ name: string;
9
+ description: string;
10
+ body: string;
11
+ tools?: SkillTool[];
12
+ }
3
13
  /**
4
14
  * Fluent builder for composing prompts with tools.
5
15
  *
@@ -13,6 +23,7 @@ export declare class ThinkBuilder<Output> {
13
23
  private readonly _conn;
14
24
  private _promptParts;
15
25
  private _tools;
26
+ private _skills;
16
27
  private _schemaProvider;
17
28
  private _cwd;
18
29
  private _existingSessionId;
@@ -114,10 +125,39 @@ export declare class ThinkBuilder<Output> {
114
125
  * Register a tool without schemas (no prompt reference).
115
126
  */
116
127
  defineTool(name: string, description: string, handler: (input: unknown) => Promise<unknown>): this;
128
+ /**
129
+ * Attach a skill to this prompt.
130
+ *
131
+ * When called with a string, it is treated as a path to a SKILL.md file
132
+ * that will be parsed at run() time (deferred stored skill).
133
+ *
134
+ * When called with an object, it is treated as a virtual skill definition
135
+ * and validated eagerly.
136
+ *
137
+ * @param pathOrDef - Path to a SKILL.md file, or a virtual skill definition
138
+ */
139
+ skill(pathOrDef: string | VirtualSkillDefinition): this;
117
140
  /**
118
141
  * Set the working directory for the session
119
142
  */
120
143
  cwd(path: string): this;
144
+ /**
145
+ * Resolve all deferred skills into ResolvedSkill instances.
146
+ *
147
+ * - Virtual skills are passed through as-is.
148
+ * - Stored skills are loaded from disk: SKILL.md is parsed and basePath is
149
+ * set to the directory containing the file.
150
+ *
151
+ * Skills are returned in attachment order.
152
+ */
153
+ private _resolveSkills;
154
+ /**
155
+ * Build the `<available_skills>` XML block and infrastructure instructions.
156
+ *
157
+ * Returns the string to prepend before the user's prompt parts, or an
158
+ * empty string when no skills are attached.
159
+ */
160
+ private _buildSkillsPrompt;
121
161
  /**
122
162
  * Execute the prompt and return the result.
123
163
  *
@@ -130,6 +170,14 @@ export declare class ThinkBuilder<Output> {
130
170
  * 6. Returns the typed result
131
171
  */
132
172
  run(): Promise<Output>;
133
- private _executeRun;
173
+ /**
174
+ * Start executing the prompt, returning a stream handle that provides
175
+ * both an async iterable of intermediate `ThoughtEvent`s and a `.result`
176
+ * promise for the final typed output.
177
+ *
178
+ * Execution begins eagerly — the returned stream is already "hot".
179
+ */
180
+ stream(): ThoughtStream<Output>;
181
+ private _executeStream;
134
182
  }
135
183
  //# sourceMappingURL=think-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"think-builder.d.ts","sourceRoot":"","sources":["../src/think-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAkB,MAAM,YAAY,CAAC;AA2ElE;;;;;;;;GAQG;AACH,qBAAa,YAAY,CAAC,MAAM;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IACxC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,eAAe,CAAqC;IAC5D,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,kBAAkB,CAAqB;gBAG7C,IAAI,EAAE,eAAe,EACrB,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,EAC/B,iBAAiB,CAAC,EAAE,MAAM;IAO5B;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK3B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK7B;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAgB,GAAG,IAAI;IAWnD;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,IAAI;IAKlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkDG;IACH,IAAI,CAAC,CAAC,EAAE,CAAC,EACP,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,EAC9B,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,EAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAChC,IAAI;IAEP;;OAEG;IACH,IAAI,CAAC,CAAC,EACJ,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,EAC9B,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GACtC,IAAI;IAEP;;OAEG;IACH,IAAI,CACF,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAC5C,IAAI;IAyCP;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,CAAC,EAAE,CAAC,EACb,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,EAC9B,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,EAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAChC,IAAI;IAEP;;OAEG;IACH,UAAU,CAAC,CAAC,EACV,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,EAC9B,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GACtC,IAAI;IAEP;;OAEG;IACH,UAAU,CACR,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAC5C,IAAI;IAyCP;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKvB;;;;;;;;;;OAUG;IACG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;YAMd,WAAW;CAyI1B"}
1
+ {"version":3,"file":"think-builder.d.ts","sourceRoot":"","sources":["../src/think-builder.ts"],"names":[],"mappings":"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"}