deepclause-sdk 0.1.0 → 0.1.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 (142) hide show
  1. package/README.md +83 -12
  2. package/dist/agent.d.ts +14 -1
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +117 -9
  5. package/dist/agent.js.map +1 -1
  6. package/dist/cli/config.d.ts +86 -26
  7. package/dist/cli/config.d.ts.map +1 -1
  8. package/dist/cli/config.js +15 -0
  9. package/dist/cli/config.js.map +1 -1
  10. package/dist/cli/index.js +38 -0
  11. package/dist/cli/index.js.map +1 -1
  12. package/dist/cli/repl.d.ts +27 -0
  13. package/dist/cli/repl.d.ts.map +1 -1
  14. package/dist/cli/repl.js +191 -5
  15. package/dist/cli/repl.js.map +1 -1
  16. package/dist/cli/run.d.ts.map +1 -1
  17. package/dist/cli/run.js +16 -0
  18. package/dist/cli/run.js.map +1 -1
  19. package/dist/cli/visualize.d.ts +4 -0
  20. package/dist/cli/visualize.d.ts.map +1 -1
  21. package/dist/cli/visualize.js +29 -4
  22. package/dist/cli/visualize.js.map +1 -1
  23. package/dist/prolog/bridge.d.ts +3 -1
  24. package/dist/prolog/bridge.d.ts.map +1 -1
  25. package/dist/prolog/bridge.js +2 -0
  26. package/dist/prolog/bridge.js.map +1 -1
  27. package/dist/prolog/loader.d.ts +32 -0
  28. package/dist/prolog/loader.d.ts.map +1 -1
  29. package/dist/prolog/loader.js +87 -0
  30. package/dist/prolog/loader.js.map +1 -1
  31. package/dist/prolog-src/deepclause_mi.pl +1217 -120
  32. package/dist/repl/agent.d.ts +33 -1
  33. package/dist/repl/agent.d.ts.map +1 -1
  34. package/dist/repl/agent.js +91 -8
  35. package/dist/repl/agent.js.map +1 -1
  36. package/dist/repl/backend.d.ts +31 -0
  37. package/dist/repl/backend.d.ts.map +1 -1
  38. package/dist/repl/backend.js +122 -77
  39. package/dist/repl/backend.js.map +1 -1
  40. package/dist/repl/harness-tools.d.ts +49 -2
  41. package/dist/repl/harness-tools.d.ts.map +1 -1
  42. package/dist/repl/harness-tools.js +87 -7
  43. package/dist/repl/harness-tools.js.map +1 -1
  44. package/dist/repl/imagegen.d.ts +29 -0
  45. package/dist/repl/imagegen.d.ts.map +1 -0
  46. package/dist/repl/imagegen.js +84 -0
  47. package/dist/repl/imagegen.js.map +1 -0
  48. package/dist/repl/index.d.ts +20 -2
  49. package/dist/repl/index.d.ts.map +1 -1
  50. package/dist/repl/index.js +6 -0
  51. package/dist/repl/index.js.map +1 -1
  52. package/dist/repl/model-resolver.d.ts +59 -0
  53. package/dist/repl/model-resolver.d.ts.map +1 -0
  54. package/dist/repl/model-resolver.js +156 -0
  55. package/dist/repl/model-resolver.js.map +1 -0
  56. package/dist/repl/render.d.ts +36 -2
  57. package/dist/repl/render.d.ts.map +1 -1
  58. package/dist/repl/render.js +175 -17
  59. package/dist/repl/render.js.map +1 -1
  60. package/dist/repl/session.d.ts +129 -4
  61. package/dist/repl/session.d.ts.map +1 -1
  62. package/dist/repl/session.js +380 -17
  63. package/dist/repl/session.js.map +1 -1
  64. package/dist/repl/tool-arguments.d.ts +36 -0
  65. package/dist/repl/tool-arguments.d.ts.map +1 -0
  66. package/dist/repl/tool-arguments.js +123 -0
  67. package/dist/repl/tool-arguments.js.map +1 -0
  68. package/dist/repl/toolset.d.ts +28 -1
  69. package/dist/repl/toolset.d.ts.map +1 -1
  70. package/dist/repl/toolset.js +52 -4
  71. package/dist/repl/toolset.js.map +1 -1
  72. package/dist/repl/tui/transcript.d.ts +2 -0
  73. package/dist/repl/tui/transcript.d.ts.map +1 -1
  74. package/dist/repl/tui/transcript.js +16 -0
  75. package/dist/repl/tui/transcript.js.map +1 -1
  76. package/dist/runner.d.ts +44 -2
  77. package/dist/runner.d.ts.map +1 -1
  78. package/dist/runner.js +293 -33
  79. package/dist/runner.js.map +1 -1
  80. package/dist/system/assets/docs/AGENT_PROMPT.md +1000 -44
  81. package/dist/system/assets/docs/DML_AUTHORING.md +96 -17
  82. package/dist/system/assets/docs/DML_REFERENCE.md +652 -39
  83. package/dist/system/assets/docs/PROLOG_SNIPPETS.md +45 -1
  84. package/dist/system/assets/docs/TASK_PROMPT.md +2 -0
  85. package/dist/system/environment.d.ts +36 -0
  86. package/dist/system/environment.d.ts.map +1 -0
  87. package/dist/system/environment.js +81 -0
  88. package/dist/system/environment.js.map +1 -0
  89. package/dist/system/runtime/shell-manager.d.ts +40 -2
  90. package/dist/system/runtime/shell-manager.d.ts.map +1 -1
  91. package/dist/system/runtime/shell-manager.js +82 -16
  92. package/dist/system/runtime/shell-manager.js.map +1 -1
  93. package/dist/system/runtime/shell-tool-events.js +25 -1
  94. package/dist/system/runtime/shell-tool-events.js.map +1 -1
  95. package/dist/types.d.ts +76 -2
  96. package/dist/types.d.ts.map +1 -1
  97. package/dist/visualize/ascii.d.ts +55 -0
  98. package/dist/visualize/ascii.d.ts.map +1 -0
  99. package/dist/visualize/ascii.js +242 -0
  100. package/dist/visualize/ascii.js.map +1 -0
  101. package/dist/visualize/display.d.ts +24 -0
  102. package/dist/visualize/display.d.ts.map +1 -0
  103. package/dist/visualize/display.js +29 -0
  104. package/dist/visualize/display.js.map +1 -0
  105. package/dist/visualize/graphics.d.ts +35 -0
  106. package/dist/visualize/graphics.d.ts.map +1 -0
  107. package/dist/visualize/graphics.js +96 -0
  108. package/dist/visualize/graphics.js.map +1 -0
  109. package/dist/visualize/image.d.ts +38 -0
  110. package/dist/visualize/image.d.ts.map +1 -0
  111. package/dist/visualize/image.js +95 -0
  112. package/dist/visualize/image.js.map +1 -0
  113. package/dist/visualize/index.d.ts +7 -0
  114. package/dist/visualize/index.d.ts.map +1 -1
  115. package/dist/visualize/index.js +9 -0
  116. package/dist/visualize/index.js.map +1 -1
  117. package/dist/visualize/raster.d.ts +23 -0
  118. package/dist/visualize/raster.d.ts.map +1 -0
  119. package/dist/visualize/raster.js +47 -0
  120. package/dist/visualize/raster.js.map +1 -0
  121. package/dist/visualize/svg.d.ts +39 -0
  122. package/dist/visualize/svg.d.ts.map +1 -0
  123. package/dist/visualize/svg.js +148 -0
  124. package/dist/visualize/svg.js.map +1 -0
  125. package/dist/visualize/transcode.d.ts +13 -0
  126. package/dist/visualize/transcode.d.ts.map +1 -0
  127. package/dist/visualize/transcode.js +40 -0
  128. package/dist/visualize/transcode.js.map +1 -0
  129. package/docs/images/repl.png +0 -0
  130. package/package.json +10 -6
  131. package/src/prolog-src/deepclause_mi.pl +1217 -120
  132. package/dist/compaction.d.ts +0 -98
  133. package/dist/compaction.d.ts.map +0 -1
  134. package/dist/compaction.js +0 -471
  135. package/dist/compaction.js.map +0 -1
  136. package/dist/repl/tools.d.ts +0 -53
  137. package/dist/repl/tools.d.ts.map +0 -1
  138. package/dist/repl/tools.js +0 -307
  139. package/dist/repl/tools.js.map +0 -1
  140. package/dist/system/assets/compactors/default-loop-compactor.dml +0 -43
  141. package/dist/system/assets/compactors/default-session-compactor.dml +0 -30
  142. package/dist/system/assets/docs/META_PROMPT.md +0 -68
@@ -49,6 +49,14 @@ export function resolvePiPaths(config, defaults) {
49
49
  function modelLabel(model) {
50
50
  return `${model.provider}/${model.id}`;
51
51
  }
52
+ /** Find a pi model by provider+id (registry `find` when present, else the catalog). */
53
+ function findPiModel(registry, target) {
54
+ const found = registry.find?.(target.provider, target.id);
55
+ if (found) {
56
+ return found;
57
+ }
58
+ return registry.getAvailable().find((model) => model.provider === target.provider && model.id === target.id);
59
+ }
52
60
  /** Select the pi model to use, honoring an explicit provider/model request. */
53
61
  export function selectPiModel(registry, requested) {
54
62
  const available = registry.getAvailable();
@@ -136,97 +144,133 @@ export function createPiAdapter(registry, model, maxTokens = 65536, thinkingLeve
136
144
  if (!registry.hasConfiguredAuth(model)) {
137
145
  throw new Error(`pi has no configured authentication for ${modelLabel(model)}`);
138
146
  }
139
- const resolved = resolveThinkingLevel(model, thinkingLevel);
140
- const backend = {
141
- async complete(request) {
142
- const systemPrompt = request.messages
143
- .filter((message) => message.role === 'system')
144
- .map((message) => message.content)
145
- .join('\n\n');
146
- const context = {
147
- systemPrompt: systemPrompt || undefined,
148
- messages: toPiMessages(request.messages, model),
149
- tools: request.tools?.map((tool) => ({
150
- name: tool.name,
151
- description: tool.description,
152
- parameters: tool.parameters,
153
- })),
154
- };
155
- const options = {
156
- signal: request.signal,
157
- maxTokens: request.maxTokens ?? maxTokens,
158
- cacheRetention: 'none',
159
- };
160
- if (model.reasoning && resolved.level && resolved.level !== 'off') {
161
- // pi's `SimpleStreamOptions` enables thinking with `reasoning` (a
162
- // ThinkingLevel), not `thinkingLevel`.
163
- options.reasoning = resolved.level;
164
- }
165
- let response;
166
- if (registry.streamSimple) {
167
- // Stream text/thinking deltas as they arrive; the final message carries
168
- // the full text, tool calls, and usage.
169
- const stream = registry.streamSimple(model, context, options);
170
- for await (const event of stream) {
171
- if (event.type === 'text_delta') {
172
- if (event.delta)
173
- request.onText?.(event.delta);
174
- }
175
- else if (event.type === 'thinking_delta') {
176
- if (event.delta)
177
- request.onReasoning?.(event.delta);
178
- }
147
+ const baseResolved = resolveThinkingLevel(model, thinkingLevel);
148
+ // Per-call model overrides from `with_model/2`, resolved lazily and cached.
149
+ const scoped = new Map();
150
+ const resolveScoped = (target) => {
151
+ const key = `${target.provider}/${target.id}`;
152
+ const cached = scoped.get(key);
153
+ if (cached) {
154
+ return cached;
155
+ }
156
+ const found = findPiModel(registry, target);
157
+ if (!found) {
158
+ throw new Error(`pi model not found: ${key}`);
159
+ }
160
+ if (!registry.hasConfiguredAuth(found)) {
161
+ throw new Error(`pi has no configured authentication for ${key}`);
162
+ }
163
+ const entry = { model: found, resolved: resolveThinkingLevel(found, target.reasoningLevel) };
164
+ scoped.set(key, entry);
165
+ return entry;
166
+ };
167
+ const completeWith = async (activeModel, activeResolved, defaultMaxTokens, request) => {
168
+ const systemPrompt = request.messages
169
+ .filter((message) => message.role === 'system')
170
+ .map((message) => message.content)
171
+ .join('\n\n');
172
+ const context = {
173
+ systemPrompt: systemPrompt || undefined,
174
+ messages: toPiMessages(request.messages, activeModel),
175
+ tools: request.tools?.map((tool) => ({
176
+ name: tool.name,
177
+ description: tool.description,
178
+ parameters: tool.parameters,
179
+ })),
180
+ };
181
+ const options = {
182
+ signal: request.signal,
183
+ maxTokens: request.maxTokens ?? defaultMaxTokens,
184
+ cacheRetention: 'none',
185
+ };
186
+ // Model defaults the caller's temperature only when a scope explicitly set
187
+ // one (pi itself never forwards an ambient temperature, and some models —
188
+ // e.g. github-copilot — reject the parameter). `compat.supportsTemperature`
189
+ // opts a model out when pi knows it rejects it.
190
+ const scopedTemperature = request.target?.temperature;
191
+ if (typeof scopedTemperature === 'number'
192
+ && activeModel.compat?.supportsTemperature !== false) {
193
+ options.temperature = scopedTemperature;
194
+ }
195
+ if (activeModel.reasoning && activeResolved.level && activeResolved.level !== 'off') {
196
+ // pi's `SimpleStreamOptions` enables thinking with `reasoning` (a
197
+ // ThinkingLevel), not `thinkingLevel`.
198
+ options.reasoning = activeResolved.level;
199
+ }
200
+ let response;
201
+ if (registry.streamSimple) {
202
+ // Stream text/thinking deltas as they arrive; the final message carries
203
+ // the full text, tool calls, and usage.
204
+ const stream = registry.streamSimple(activeModel, context, options);
205
+ for await (const event of stream) {
206
+ if (event.type === 'text_delta') {
207
+ if (event.delta)
208
+ request.onText?.(event.delta);
209
+ }
210
+ else if (event.type === 'thinking_delta') {
211
+ if (event.delta)
212
+ request.onReasoning?.(event.delta);
179
213
  }
180
- response = await stream.result();
181
- }
182
- else {
183
- response = await registry.complete(model, context, options);
184
- const streamedText = response.content
185
- .filter((content) => content.type === 'text')
186
- .map((content) => content.text)
187
- .join('');
188
- if (streamedText)
189
- request.onText?.(streamedText);
190
- }
191
- if (response.stopReason === 'error' || response.stopReason === 'aborted') {
192
- throw new Error(response.errorMessage || `pi model request ${response.stopReason}`);
193
214
  }
194
- const text = response.content
215
+ response = await stream.result();
216
+ }
217
+ else {
218
+ response = await registry.complete(activeModel, context, options);
219
+ const streamedText = response.content
195
220
  .filter((content) => content.type === 'text')
196
221
  .map((content) => content.text)
197
222
  .join('');
198
- return {
199
- text,
200
- toolCalls: response.content
201
- .filter((content) => content.type === 'toolCall')
202
- .map((call) => ({ id: call.id, name: call.name, arguments: call.arguments })),
203
- usage: {
204
- inputTokens: response.usage.input,
205
- outputTokens: response.usage.output,
206
- totalTokens: response.usage.totalTokens,
207
- cacheReadTokens: response.usage.cacheRead || undefined,
208
- cacheWriteTokens: response.usage.cacheWrite || undefined,
209
- reasoningTokens: response.usage.reasoning || undefined,
210
- },
211
- finishReason: response.stopReason === 'toolUse'
212
- ? 'tool_use'
213
- : response.stopReason === 'length'
214
- ? 'length'
215
- : 'stop',
216
- providerData: response,
217
- };
223
+ if (streamedText)
224
+ request.onText?.(streamedText);
225
+ }
226
+ if (response.stopReason === 'error' || response.stopReason === 'aborted') {
227
+ throw new Error(response.errorMessage || `pi model request ${response.stopReason}`);
228
+ }
229
+ const text = response.content
230
+ .filter((content) => content.type === 'text')
231
+ .map((content) => content.text)
232
+ .join('');
233
+ return {
234
+ text,
235
+ toolCalls: response.content
236
+ .filter((content) => content.type === 'toolCall')
237
+ .map((call) => ({ id: call.id, name: call.name, arguments: call.arguments })),
238
+ usage: {
239
+ inputTokens: response.usage.input,
240
+ outputTokens: response.usage.output,
241
+ totalTokens: response.usage.totalTokens,
242
+ cacheReadTokens: response.usage.cacheRead || undefined,
243
+ cacheWriteTokens: response.usage.cacheWrite || undefined,
244
+ reasoningTokens: response.usage.reasoning || undefined,
245
+ },
246
+ finishReason: response.stopReason === 'toolUse'
247
+ ? 'tool_use'
248
+ : response.stopReason === 'length'
249
+ ? 'length'
250
+ : 'stop',
251
+ providerData: response,
252
+ };
253
+ };
254
+ const backend = {
255
+ async complete(request) {
256
+ if (request.target && (request.target.provider !== model.provider || request.target.id !== model.id)) {
257
+ const entry = resolveScoped(request.target);
258
+ return completeWith(entry.model, entry.resolved, request.target.maxTokens ?? maxTokens, request);
259
+ }
260
+ return completeWith(model, baseResolved, maxTokens, request);
218
261
  },
219
262
  };
220
263
  return {
221
264
  backend,
265
+ registry,
222
266
  modelId: modelLabel(model),
223
267
  provider: model.provider,
224
268
  contextWindow: model.contextWindow,
225
269
  maxTokens,
226
270
  reasoning: Boolean(model.reasoning),
227
- thinkingLevel: resolved.level,
228
- supportedThinkingLevels: resolved.supported,
229
- warning: resolved.warning,
271
+ thinkingLevel: baseResolved.level,
272
+ supportedThinkingLevels: baseResolved.supported,
273
+ warning: baseResolved.warning,
230
274
  };
231
275
  }
232
276
  const PI_PACKAGE_NAME = '@earendil-works/pi-coding-agent';
@@ -356,6 +400,7 @@ export async function resolveLlmBackend(options = {}) {
356
400
  return {
357
401
  kind: 'pi',
358
402
  llmBackend: pi.backend,
403
+ registry: pi.registry,
359
404
  provider: pi.provider,
360
405
  model: pi.modelId.split('/').slice(1).join('/') || pi.modelId,
361
406
  modelId: pi.modelId,
@@ -1 +1 @@
1
- {"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/repl/backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/repl/backend.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  * the live harness through a `HarnessToolController` implemented by `DMLSession`.
7
7
  */
8
8
  import type { DMLEvent, ToolDefinition } from '../types.js';
9
+ import type { DiagramMode } from '../visualize/index.js';
9
10
  export interface HarnessExecuteResult {
10
11
  bindings: Array<{
11
12
  name: string;
@@ -19,11 +20,32 @@ export interface HarnessExecuteResult {
19
20
  error?: string;
20
21
  /** Wall-clock duration of the goal, in milliseconds. */
21
22
  elapsedMs: number;
23
+ /**
24
+ * What was left out of the bindings, when not all of them were returned.
25
+ * Without it a shortened value is indistinguishable from a short one, and an
26
+ * omitted binding looks like a goal that bound nothing.
27
+ */
28
+ bindingsNote?: string;
22
29
  }
30
+ /**
31
+ * How much of each binding to return.
32
+ *
33
+ * A goal often binds one large term — a document, a nested dict — and the full
34
+ * value is noise in the transcript and in the model's context. `brief` is for
35
+ * "I want to know it bound something that looks like this"; `none` is for
36
+ * "I only care that it succeeded and what it printed".
37
+ */
38
+ export type BindingMode = 'full' | 'brief' | 'none';
39
+ /** Characters kept per value in `brief` mode. */
40
+ export declare const BRIEF_VALUE_CHARS = 80;
41
+ /** Read the `bindings` option; anything unrecognised keeps the full values. */
42
+ export declare function readBindingMode(value: unknown): BindingMode;
23
43
  export interface HarnessCommitResult {
24
44
  committed: boolean;
25
45
  /** Predicates added/replaced/removed by the commit. */
26
46
  changed?: string[];
47
+ /** Advisory warnings (e.g. a nondeterministic helper). */
48
+ warnings?: string[];
27
49
  error?: string;
28
50
  }
29
51
  /** The harness operations the authoring agent needs. Implemented by `DMLSession`. */
@@ -34,7 +56,10 @@ export interface HarnessToolController {
34
56
  /** Concise harness manifest for the system prompt. */
35
57
  manifest(): Promise<string>;
36
58
  /** Snapshot the harness and open a transaction. */
37
- beginTurn(): Promise<void>;
59
+ beginTurn(): Promise<{
60
+ ok: boolean;
61
+ error?: string;
62
+ }>;
38
63
  /** Validate and commit the open transaction; records a history version. */
39
64
  endTurn(): Promise<HarnessCommitResult>;
40
65
  /** Restore the last snapshot and discard edits. */
@@ -65,9 +90,31 @@ export interface HarnessToolController {
65
90
  error?: string;
66
91
  }>;
67
92
  /** Run a DML goal against the scratch harness. */
68
- execute(goal: string, limit?: number, signal?: AbortSignal, onEvent?: (event: DMLEvent) => void): Promise<HarnessExecuteResult>;
93
+ execute(goal: string, limit?: number, signal?: AbortSignal, onEvent?: (event: DMLEvent) => void, bindingMode?: BindingMode): Promise<HarnessExecuteResult>;
94
+ /** ASCII diagram of a skill and its sub-agent/tool calls. */
95
+ visualize(entry?: string, mode?: DiagramMode): Promise<{
96
+ message: string;
97
+ event?: DMLEvent;
98
+ }>;
99
+ /** Display a workspace image in the terminal. */
100
+ showImage(path: string): Promise<{
101
+ message: string;
102
+ event?: DMLEvent;
103
+ }>;
104
+ /** Generate an image from a prompt and display it. */
105
+ generateImage(prompt: string): Promise<{
106
+ message: string;
107
+ event?: DMLEvent;
108
+ }>;
109
+ /** Write a workspace file (creates parent directories). */
110
+ writeFile(path: string, content: string): Promise<{
111
+ ok: boolean;
112
+ error?: string;
113
+ }>;
69
114
  /** DML reference / authoring guide / examples / snippets. */
70
115
  reference(topic: string): Promise<string>;
116
+ /** The models available in this session (for `with_model/2`). */
117
+ listModels(): Promise<string>;
71
118
  }
72
119
  /** Build the authoring agent's harness tools. */
73
120
  export declare function createHarnessTools(controller: HarnessToolController): Map<string, ToolDefinition>;
@@ -1 +1 @@
1
- {"version":3,"file":"harness-tools.d.ts","sourceRoot":"","sources":["../../src/repl/harness-tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qFAAqF;AACrF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,IAAI,OAAO,CAAC;IACpB,wEAAwE;IACxE,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,sDAAsD;IACtD,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,mDAAmD;IACnD,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,2EAA2E;IAC3E,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACxC,mDAAmD;IACnD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,gEAAgE;IAChE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChF,+CAA+C;IAC/C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,0CAA0C;IAC1C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtE,gCAAgC;IAChC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,0CAA0C;IAC1C,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7E,kDAAkD;IAClD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAChI,6DAA6D;IAC7D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C;AAQD,iDAAiD;AACjD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,qBAAqB,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CA6HjG"}
1
+ {"version":3,"file":"harness-tools.d.ts","sourceRoot":"","sources":["../../src/repl/harness-tools.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,12 @@
5
5
  * plain host tools the TypeScript `HarnessAgent` calls directly. They operate on
6
6
  * the live harness through a `HarnessToolController` implemented by `DMLSession`.
7
7
  */
8
+ /** Characters kept per value in `brief` mode. */
9
+ export const BRIEF_VALUE_CHARS = 80;
10
+ /** Read the `bindings` option; anything unrecognised keeps the full values. */
11
+ export function readBindingMode(value) {
12
+ return value === 'brief' || value === 'none' ? value : 'full';
13
+ }
8
14
  function text(message) {
9
15
  return { text: message };
10
16
  }
@@ -26,18 +32,26 @@ export function createHarnessTools(controller) {
26
32
  description: 'Open an edit transaction (snapshot the harness). You MUST call this before the first edit; `define`/`assert`/`assert_many`/`retract`/`delete` are refused while no transaction is open. `end_turn` commits it, `rollback` discards it.',
27
33
  parameters: { type: 'object', properties: {}, required: [] },
28
34
  execute: async () => {
29
- await controller.beginTurn();
30
- return { ok: true };
35
+ return controller.beginTurn();
31
36
  },
32
37
  });
33
38
  tools.set('end_turn', {
34
- description: 'Validate and commit the open transaction (opened by begin_turn) and record a harness version. Returns the predicates changed.',
39
+ description: 'Validate and commit the open transaction (opened by begin_turn) and record a harness version. Returns the predicates changed and any advisory warnings (e.g. a nondeterministic helper).',
35
40
  parameters: {
36
41
  type: 'object',
37
42
  properties: { summary: stringProp('One-line summary of the change (optional).') },
38
43
  required: [],
39
44
  },
40
- execute: async () => controller.endTurn(),
45
+ execute: async (_args, context) => {
46
+ const result = await controller.endTurn();
47
+ if (result.warnings?.length) {
48
+ context?.onEvent?.({
49
+ type: 'output',
50
+ content: result.warnings.map((warning) => `⚠ ${warning}`).join('\n'),
51
+ });
52
+ }
53
+ return result;
54
+ },
41
55
  });
42
56
  tools.set('rollback', {
43
57
  description: 'Discard every edit made in the current transaction and restore the last committed harness.',
@@ -60,7 +74,7 @@ export function createHarnessTools(controller) {
60
74
  execute: async (args) => frozenError('define') ?? controller.define(String(args.head ?? ''), String(args.clauses ?? '')),
61
75
  });
62
76
  tools.set('assert', {
63
- description: 'Assert one clause. Requires an open transaction (call begin_turn first). Use only for a new predicate — assert appends, so asserting over an existing predicate duplicates clauses. Use define to change one.',
77
+ description: 'Assert one clause of a NEW predicate. Requires an open transaction (call begin_turn first). Refused if the predicate already has clauses: use define to replace it, or delete first.',
64
78
  parameters: {
65
79
  type: 'object',
66
80
  properties: { clause: stringProp('The DML clause/fact text to assert (no trailing period required).') },
@@ -78,7 +92,7 @@ export function createHarnessTools(controller) {
78
92
  execute: async (args) => frozenError('assert_many') ?? controller.assertMany(String(args.clauses ?? '')),
79
93
  });
80
94
  tools.set('retract', {
81
- description: 'Remove matching clauses from the harness. Requires an open transaction (call begin_turn first). Reserved names are protected.',
95
+ description: 'Remove the clauses matching a pattern, e.g. retract("f(1)") or retract("f(X) :- g(X)"). Reports how many were removed. Requires an open transaction (call begin_turn first). Reserved names are protected.',
82
96
  parameters: {
83
97
  type: 'object',
84
98
  properties: { clause: stringProp('The clause pattern to retract (no trailing period required).') },
@@ -102,10 +116,76 @@ export function createHarnessTools(controller) {
102
116
  properties: {
103
117
  goal: stringProp('The DML goal to run, e.g. "fact(5, F)".'),
104
118
  limit: { type: 'integer', description: 'Maximum solutions to collect (default 5).' },
119
+ bindings: stringProp("How much of each binding to return. 'full' (default) returns the values as they are; "
120
+ + "'brief' keeps the names and shortens each value, for a goal that binds one large term; "
121
+ + "'none' returns no bindings at all, for when you only care that the goal succeeded or what it printed. "
122
+ + 'Both reduced modes say what they left out.'),
105
123
  },
106
124
  required: ['goal'],
107
125
  },
108
- execute: async (args, context) => controller.execute(String(args.goal ?? ''), typeof args.limit === 'number' ? args.limit : undefined, context?.signal, context?.onEvent),
126
+ execute: async (args, context) => controller.execute(String(args.goal ?? ''), typeof args.limit === 'number' ? args.limit : undefined, context?.signal, context?.onEvent, readBindingMode(args.bindings)),
127
+ });
128
+ tools.set('visualize', {
129
+ description: 'Render a diagram of a skill (predicate) showing its model calls (task/prompt), tool calls (exec), and other skills it invokes. In a terminal that supports images the diagram is displayed to the user directly; otherwise the ASCII tree is returned so you can show it. The entry defaults to agent_main/N.',
130
+ parameters: {
131
+ type: 'object',
132
+ properties: {
133
+ entry: stringProp('Entry predicate, e.g. "patch/3" (default: agent_main/N).'),
134
+ mode: stringProp('presentation (default, reader-friendly) or spec (engineering detail).'),
135
+ },
136
+ required: [],
137
+ },
138
+ execute: async (args, context) => {
139
+ const { message, event } = await controller.visualize(typeof args.entry === 'string' ? args.entry : undefined, args.mode === 'spec' ? 'spec' : args.mode === 'presentation' ? 'presentation' : undefined);
140
+ if (event)
141
+ context?.onEvent?.(event);
142
+ return text(message);
143
+ },
144
+ });
145
+ tools.set('write_file', {
146
+ description: 'Write a workspace file with the given content (parent directories are created). Use this for SVG, JSON, scripts, or any file whose content is easier to pass whole than to build inside a DML string. The content argument is an ordinary string — no DML/shell escaping.',
147
+ parameters: {
148
+ type: 'object',
149
+ properties: {
150
+ path: stringProp('Workspace-relative path, e.g. "images/foo.svg".'),
151
+ content: stringProp('The complete file content. Newlines and quotes are passed through verbatim.'),
152
+ },
153
+ required: ['path', 'content'],
154
+ },
155
+ execute: async (args) => controller.writeFile(String(args.path ?? ''), String(args.content ?? '')),
156
+ });
157
+ tools.set('show_image', {
158
+ description: 'Display a workspace image (PNG/JPEG/GIF/WebP/SVG) to the user in the terminal. Use this when the user asks to see an image, or after writing one with save_image/write_file.',
159
+ parameters: {
160
+ type: 'object',
161
+ properties: { path: stringProp('Workspace-relative path of the image to display.') },
162
+ required: ['path'],
163
+ },
164
+ execute: async (args, context) => {
165
+ const { message, event } = await controller.showImage(String(args.path ?? ''));
166
+ if (event)
167
+ context?.onEvent?.(event);
168
+ return text(message);
169
+ },
170
+ });
171
+ tools.set('generate_image', {
172
+ description: 'Generate an image from a text prompt (using the configured image model) and display it to the user. Returns the workspace path of the written image.',
173
+ parameters: {
174
+ type: 'object',
175
+ properties: { prompt: stringProp('What to depict (be specific: subject, style, composition).') },
176
+ required: ['prompt'],
177
+ },
178
+ execute: async (args, context) => {
179
+ const { message, event } = await controller.generateImage(String(args.prompt ?? ''));
180
+ if (event)
181
+ context?.onEvent?.(event);
182
+ return text(message);
183
+ },
184
+ });
185
+ tools.set('models', {
186
+ description: 'List the LLM models available in this session (those with configured credentials) and the current default. Call this before writing `with_model(Spec, Goal)` so you use a real provider:model id.',
187
+ parameters: { type: 'object', properties: {}, required: [] },
188
+ execute: async () => text(await controller.listModels()),
109
189
  });
110
190
  tools.set('reference', {
111
191
  description: 'Read DeepClause language documentation. Topics: "language" (DML reference), "authoring" (authoring guide), "patterns" (harness patterns by use case), "examples" (harness examples), "snippets" (Prolog snippets), "tools" (host tool catalog).',
@@ -1 +1 @@
1
- {"version":3,"file":"harness-tools.js","sourceRoot":"","sources":["../../src/repl/harness-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harness-tools.js","sourceRoot":"","sources":["../../src/repl/harness-tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8BH,iDAAiD;AACjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC,+EAA+E;AAC/E,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AAChE,CAAC;AAwDD,SAAS,IAAI,CAAC,OAAe;IAC3B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,WAAmB,EAAyC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;AAErH,iDAAiD;AACjD,MAAM,UAAU,kBAAkB,CAAC,UAAiC;IAClE,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAChD,MAAM,WAAW,GAAG,CAAC,IAAY,EAA4C,EAAE,CAC7E,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,IAAI,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAErG,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE;QACnB,WAAW,EAAE,gJAAgJ;QAC7J,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,gEAAgE,CAAC,EAAE;YACpG,QAAQ,EAAE,EAAE;SACb;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;KACtG,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE;QACtB,WAAW,EAAE,wOAAwO;QACrP,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC5D,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,UAAU,CAAC,SAAS,EAAE,CAAC;QAChC,CAAC;KACF,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;QACpB,WAAW,EAAE,0LAA0L;QACvM,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,4CAA4C,CAAC,EAAE;YACjF,QAAQ,EAAE,EAAE;SACb;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAC5B,OAAO,EAAE,OAAO,EAAE,CAAC;oBACjB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;iBACrE,CAAC,CAAC;YACL,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE;QACpB,WAAW,EAAE,4FAA4F;QACzG,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC5D,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,UAAU,CAAC,YAAY,EAAE,CAAC;YAChC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;KACF,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;QAClB,WAAW,EAAE,wRAAwR;QACrS,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,UAAU,CAAC,yEAAyE,CAAC;gBAC3F,OAAO,EAAE,UAAU,CAAC,wEAAwE,CAAC;aAC9F;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;SAC9B;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;KACzH,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;QAClB,WAAW,EAAE,sLAAsL;QACnM,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,mEAAmE,CAAC,EAAE;YACvG,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;KACrG,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE;QACvB,WAAW,EAAE,4MAA4M;QACzN,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,6DAA6D,CAAC,EAAE;YAClG,QAAQ,EAAE,CAAC,SAAS,CAAC;SACtB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;KACzG,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE;QACnB,WAAW,EAAE,4MAA4M;QACzN,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,8DAA8D,CAAC,EAAE;YAClG,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;KACvG,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;QAClB,WAAW,EAAE,iJAAiJ;QAC9J,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,6DAA6D,CAAC,EAAE;YACpG,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;KAC3G,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE;QACnB,WAAW,EAAE,4HAA4H;QACzI,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,UAAU,CAAC,yCAAyC,CAAC;gBAC3D,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,2CAA2C,EAAE;gBACpF,QAAQ,EAAE,UAAU,CAClB,uFAAuF;sBACrF,yFAAyF;sBACzF,wGAAwG;sBACxG,4CAA4C,CAC/C;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAClD,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EACvB,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EACvD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC/B;KACF,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE;QACrB,WAAW,EAAE,+SAA+S;QAC5T,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,UAAU,CAAC,0DAA0D,CAAC;gBAC7E,IAAI,EAAE,UAAU,CAAC,uEAAuE,CAAC;aAC1F;YACD,QAAQ,EAAE,EAAE;SACb;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,UAAU,CAAC,SAAS,CACnD,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EACvD,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAC1F,CAAC;YACF,IAAI,KAAK;gBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;KACF,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE;QACtB,WAAW,EAAE,2QAA2Q;QACxR,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,UAAU,CAAC,iDAAiD,CAAC;gBACnE,OAAO,EAAE,UAAU,CAAC,6EAA6E,CAAC;aACnG;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;SAC9B;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;KACnG,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE;QACtB,WAAW,EAAE,8KAA8K;QAC3L,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,kDAAkD,CAAC,EAAE;YACpF,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/E,IAAI,KAAK;gBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;KACF,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE;QAC1B,WAAW,EAAE,sJAAsJ;QACnK,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,4DAA4D,CAAC,EAAE;YAChG,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;YACrF,IAAI,KAAK;gBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;KACF,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;QAClB,WAAW,EAAE,mMAAmM;QAChN,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC5D,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;KACzD,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE;QACrB,WAAW,EAAE,iPAAiP;QAC9P,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,qDAAqD,CAAC,EAAE;YACxF,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC;KAC5F,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Image generation over pi's image models.
3
+ *
4
+ * Implements the injectable `ImageBackend` used by `task(…, media(X))`. It reuses
5
+ * pi's credential store and model catalog (the same one the chat backend uses),
6
+ * picks the first available image model unless one is configured, and writes the
7
+ * result into the workspace media directory. No separate API keys.
8
+ */
9
+ import type { ImageBackend } from '../types.js';
10
+ import { type PiRuntimeHandle } from './backend.js';
11
+ export interface PiImageBackendOptions {
12
+ workspacePath: string;
13
+ agentDir?: string;
14
+ modelsPath?: string | null;
15
+ authPath?: string;
16
+ /** Explicit image model as `provider:id` (or `provider/id`). */
17
+ model?: string;
18
+ /** Workspace-relative output directory (default `.deepclause/media`). */
19
+ dir?: string;
20
+ size?: number;
21
+ }
22
+ /** List the ids of available image models (for diagnostics / `/gen`). */
23
+ export declare function listImageModels(handle: PiRuntimeHandle): Promise<string[]>;
24
+ /**
25
+ * Build a pi-backed image generator, or undefined when the installed pi runtime
26
+ * cannot generate images (no image-capable provider / missing API).
27
+ */
28
+ export declare function createPiImageBackend(options: PiImageBackendOptions): Promise<ImageBackend | undefined>;
29
+ //# sourceMappingURL=imagegen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imagegen.d.ts","sourceRoot":"","sources":["../../src/repl/imagegen.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAiD,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AASnE,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAUD,yEAAyE;AACzE,wBAAsB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOhF;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAiD5G"}