deepclause-sdk 0.1.1 → 0.1.3

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 (122) hide show
  1. package/dist/agent.d.ts +12 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +116 -9
  4. package/dist/agent.js.map +1 -1
  5. package/dist/cli/config.d.ts +24 -24
  6. package/dist/cli/repl.d.ts +21 -4
  7. package/dist/cli/repl.d.ts.map +1 -1
  8. package/dist/cli/repl.js +293 -44
  9. package/dist/cli/repl.js.map +1 -1
  10. package/dist/cli/run.d.ts.map +1 -1
  11. package/dist/cli/run.js +10 -0
  12. package/dist/cli/run.js.map +1 -1
  13. package/dist/prolog/loader.d.ts +32 -0
  14. package/dist/prolog/loader.d.ts.map +1 -1
  15. package/dist/prolog/loader.js +87 -0
  16. package/dist/prolog/loader.js.map +1 -1
  17. package/dist/prolog-src/deepclause_mi.pl +1028 -118
  18. package/dist/repl/agent.d.ts +15 -1
  19. package/dist/repl/agent.d.ts.map +1 -1
  20. package/dist/repl/agent.js +44 -5
  21. package/dist/repl/agent.js.map +1 -1
  22. package/dist/repl/backend.d.ts.map +1 -1
  23. package/dist/repl/backend.js +18 -5
  24. package/dist/repl/backend.js.map +1 -1
  25. package/dist/repl/harness-tools.d.ts +24 -2
  26. package/dist/repl/harness-tools.d.ts.map +1 -1
  27. package/dist/repl/harness-tools.js +14 -5
  28. package/dist/repl/harness-tools.js.map +1 -1
  29. package/dist/repl/index.d.ts +8 -0
  30. package/dist/repl/index.d.ts.map +1 -1
  31. package/dist/repl/index.js +1 -0
  32. package/dist/repl/index.js.map +1 -1
  33. package/dist/repl/render.d.ts +60 -3
  34. package/dist/repl/render.d.ts.map +1 -1
  35. package/dist/repl/render.js +114 -28
  36. package/dist/repl/render.js.map +1 -1
  37. package/dist/repl/session.d.ts +61 -4
  38. package/dist/repl/session.d.ts.map +1 -1
  39. package/dist/repl/session.js +174 -9
  40. package/dist/repl/session.js.map +1 -1
  41. package/dist/repl/status.d.ts +3 -1
  42. package/dist/repl/status.d.ts.map +1 -1
  43. package/dist/repl/status.js +4 -0
  44. package/dist/repl/status.js.map +1 -1
  45. package/dist/repl/tool-arguments.d.ts +36 -0
  46. package/dist/repl/tool-arguments.d.ts.map +1 -0
  47. package/dist/repl/tool-arguments.js +123 -0
  48. package/dist/repl/tool-arguments.js.map +1 -0
  49. package/dist/repl/toolset.d.ts +28 -1
  50. package/dist/repl/toolset.d.ts.map +1 -1
  51. package/dist/repl/toolset.js +52 -4
  52. package/dist/repl/toolset.js.map +1 -1
  53. package/dist/repl/tui/autocomplete.d.ts +19 -0
  54. package/dist/repl/tui/autocomplete.d.ts.map +1 -0
  55. package/dist/repl/tui/autocomplete.js +41 -0
  56. package/dist/repl/tui/autocomplete.js.map +1 -0
  57. package/dist/repl/tui/document.d.ts +51 -0
  58. package/dist/repl/tui/document.d.ts.map +1 -0
  59. package/dist/repl/tui/document.js +160 -0
  60. package/dist/repl/tui/document.js.map +1 -0
  61. package/dist/repl/tui/picker.d.ts +31 -0
  62. package/dist/repl/tui/picker.d.ts.map +1 -0
  63. package/dist/repl/tui/picker.js +43 -0
  64. package/dist/repl/tui/picker.js.map +1 -0
  65. package/dist/repl/tui/renderer.d.ts +98 -0
  66. package/dist/repl/tui/renderer.d.ts.map +1 -0
  67. package/dist/repl/tui/renderer.js +284 -0
  68. package/dist/repl/tui/renderer.js.map +1 -0
  69. package/dist/repl/tui/status-bar.d.ts +4 -2
  70. package/dist/repl/tui/status-bar.d.ts.map +1 -1
  71. package/dist/repl/tui/status-bar.js +80 -24
  72. package/dist/repl/tui/status-bar.js.map +1 -1
  73. package/dist/repl/tui/terminal.d.ts +28 -0
  74. package/dist/repl/tui/terminal.d.ts.map +1 -0
  75. package/dist/repl/tui/terminal.js +94 -0
  76. package/dist/repl/tui/terminal.js.map +1 -0
  77. package/dist/repl/tui/theme.d.ts +60 -0
  78. package/dist/repl/tui/theme.d.ts.map +1 -1
  79. package/dist/repl/tui/theme.js +142 -0
  80. package/dist/repl/tui/theme.js.map +1 -1
  81. package/dist/repl/tui/tool-pane.d.ts +68 -0
  82. package/dist/repl/tui/tool-pane.d.ts.map +1 -0
  83. package/dist/repl/tui/tool-pane.js +257 -0
  84. package/dist/repl/tui/tool-pane.js.map +1 -0
  85. package/dist/repl/tui/working-line.d.ts +23 -0
  86. package/dist/repl/tui/working-line.d.ts.map +1 -0
  87. package/dist/repl/tui/working-line.js +58 -0
  88. package/dist/repl/tui/working-line.js.map +1 -0
  89. package/dist/runner.d.ts +31 -0
  90. package/dist/runner.d.ts.map +1 -1
  91. package/dist/runner.js +192 -17
  92. package/dist/runner.js.map +1 -1
  93. package/dist/system/assets/docs/AGENT_PROMPT.md +925 -43
  94. package/dist/system/assets/docs/DML_AUTHORING.md +96 -17
  95. package/dist/system/assets/docs/DML_REFERENCE.md +620 -39
  96. package/dist/system/assets/docs/PROLOG_SNIPPETS.md +45 -1
  97. package/dist/system/assets/docs/TASK_PROMPT.md +2 -0
  98. package/dist/system/environment.d.ts +36 -0
  99. package/dist/system/environment.d.ts.map +1 -0
  100. package/dist/system/environment.js +81 -0
  101. package/dist/system/environment.js.map +1 -0
  102. package/dist/system/runtime/shell-manager.d.ts +40 -2
  103. package/dist/system/runtime/shell-manager.d.ts.map +1 -1
  104. package/dist/system/runtime/shell-manager.js +82 -16
  105. package/dist/system/runtime/shell-manager.js.map +1 -1
  106. package/dist/system/runtime/shell-tool-events.js +25 -1
  107. package/dist/system/runtime/shell-tool-events.js.map +1 -1
  108. package/dist/types.d.ts +27 -1
  109. package/dist/types.d.ts.map +1 -1
  110. package/package.json +4 -2
  111. package/src/prolog-src/deepclause_mi.pl +1028 -118
  112. package/dist/compaction.d.ts +0 -98
  113. package/dist/compaction.d.ts.map +0 -1
  114. package/dist/compaction.js +0 -471
  115. package/dist/compaction.js.map +0 -1
  116. package/dist/repl/tools.d.ts +0 -53
  117. package/dist/repl/tools.d.ts.map +0 -1
  118. package/dist/repl/tools.js +0 -307
  119. package/dist/repl/tools.js.map +0 -1
  120. package/dist/system/assets/compactors/default-loop-compactor.dml +0 -43
  121. package/dist/system/assets/compactors/default-session-compactor.dml +0 -30
  122. package/dist/system/assets/docs/META_PROMPT.md +0 -68
@@ -0,0 +1,257 @@
1
+ /**
2
+ * A tool-call pane for the fullscreen TUI.
3
+ *
4
+ * Modelled on Pi's tool panes, but built for our tools rather than Pi's tool
5
+ * model: `execute` (a goal and its bindings), `bash` (command, captured output,
6
+ * exit code, duration), `listing`, `visualize`, and the DML runtime's own tools.
7
+ *
8
+ * Collapsed by default — a tool call is usually a one-line event, and the detail
9
+ * is only wanted when something looks wrong. The last pane can be expanded with a
10
+ * keybinding (see `toggleLastPane` in the renderer).
11
+ */
12
+ import { Markdown, Text, TruncatedText, truncateToWidth, visibleWidth, wrapTextWithAnsi, } from '@earendil-works/pi-tui';
13
+ import { markdownTheme, tuiStyle } from './theme.js';
14
+ /** Lines of body shown while collapsed. */
15
+ const COLLAPSED_BODY_LINES = 4;
16
+ export class DmlToolPane {
17
+ toolName;
18
+ args;
19
+ state = 'running';
20
+ failure;
21
+ result;
22
+ expanded = false;
23
+ elapsedMs;
24
+ compact;
25
+ prefix;
26
+ cachedWidth;
27
+ cachedLines;
28
+ constructor(options) {
29
+ this.toolName = options.toolName;
30
+ this.args = options.args;
31
+ this.compact = options.compact ?? false;
32
+ this.prefix = options.prefix ?? '';
33
+ }
34
+ /** Re-indent the pane (a frame's depth is only known once its output arrives). */
35
+ setPrefix(prefix) {
36
+ if (prefix === this.prefix)
37
+ return;
38
+ this.prefix = prefix;
39
+ this.invalidateCache();
40
+ }
41
+ setArgs(args) {
42
+ this.args = args;
43
+ this.invalidateCache();
44
+ }
45
+ setResult(result, success, elapsedMs) {
46
+ this.result = result;
47
+ this.state = success ? 'ok' : 'failed';
48
+ this.elapsedMs = elapsedMs;
49
+ if (!success) {
50
+ this.failure = typeof result === 'string'
51
+ ? result
52
+ : String(result?.error ?? 'failed');
53
+ }
54
+ this.invalidateCache();
55
+ }
56
+ setExpanded(expanded) {
57
+ this.expanded = expanded;
58
+ this.invalidateCache();
59
+ }
60
+ toggle() {
61
+ this.setExpanded(!this.expanded);
62
+ }
63
+ get isExpanded() {
64
+ return this.expanded;
65
+ }
66
+ /** One-line summary for a bounded list, e.g. `bash — printf hello`. */
67
+ get summary() {
68
+ const first = this.bodyLines()[0] ?? '';
69
+ return first ? `${this.toolName} — ${first}` : this.toolName;
70
+ }
71
+ invalidateCache() {
72
+ this.cachedWidth = undefined;
73
+ this.cachedLines = undefined;
74
+ }
75
+ invalidate() {
76
+ this.invalidateCache();
77
+ }
78
+ /** The interesting argument, rendered as one short line. */
79
+ bodyLines() {
80
+ const { args, compact } = this;
81
+ const lines = [];
82
+ const command = typeof args.command === 'string' ? args.command : undefined;
83
+ const argv = Array.isArray(args.argv) ? args.argv.map(String) : undefined;
84
+ const goal = typeof args.goal === 'string' ? args.goal : undefined;
85
+ if (command)
86
+ lines.push(command);
87
+ else if (argv && argv.length > 0)
88
+ lines.push(argv.join(' '));
89
+ else if (goal) {
90
+ for (const line of goal.split('\n'))
91
+ lines.push(line.trim());
92
+ }
93
+ else {
94
+ const entries = Object.entries(args).filter(([, value]) => value !== undefined && value !== null);
95
+ if (entries.length > 0) {
96
+ lines.push(entries.map(([key, value]) => `${key}=${shortValue(value)}`).join(' '));
97
+ }
98
+ }
99
+ // A `execute` on its own is not interesting enough for a body.
100
+ if (compact && lines.length === 0)
101
+ return [];
102
+ return lines;
103
+ }
104
+ /** Result text, split into lines: stdout/stderr, bindings, or an error. */
105
+ resultLines() {
106
+ const out = [];
107
+ if (this.failure) {
108
+ out.push(this.failure);
109
+ }
110
+ const result = this.result;
111
+ if (result && typeof result === 'object') {
112
+ const stdout = typeof result.stdout === 'string' ? result.stdout : undefined;
113
+ const stderr = typeof result.stderr === 'string' ? result.stderr : undefined;
114
+ const output = typeof result.output === 'string' ? result.output : undefined;
115
+ const error = typeof result.error === 'string' ? result.error : undefined;
116
+ if (stdout && stdout.trim())
117
+ out.push(...stdout.trimEnd().split('\n'));
118
+ if (stderr && stderr.trim())
119
+ out.push(...stderr.trimEnd().split('\n'));
120
+ if (output && output.trim())
121
+ out.push(...output.trimEnd().split('\n'));
122
+ if (error && error !== this.failure)
123
+ out.push(error);
124
+ const bindings = Array.isArray(result.bindings) ? result.bindings : undefined;
125
+ if (bindings && bindings.length > 0) {
126
+ out.push(bindings
127
+ .map((binding) => {
128
+ const { name, value } = binding;
129
+ return `${String(name ?? '?')} = ${String(value ?? '')}`;
130
+ })
131
+ .join('\n'));
132
+ }
133
+ }
134
+ else if (typeof this.result === 'string' && this.result.trim()) {
135
+ out.push(...this.result.trimEnd().split('\n'));
136
+ }
137
+ return out;
138
+ }
139
+ render(width) {
140
+ if (this.cachedLines && this.cachedWidth === width)
141
+ return this.cachedLines;
142
+ const lines = this.renderLines(width);
143
+ this.cachedWidth = width;
144
+ this.cachedLines = lines;
145
+ return lines;
146
+ }
147
+ renderLines(width) {
148
+ /*
149
+ * The tree belongs to the frame (`framePrefix`), which already puts a `│` at
150
+ * this depth. The pane must therefore *indent* under that prefix rather than
151
+ * add a stem of its own, or a nested tool call shows two stems at different
152
+ * columns while the surrounding output shows one. This is also the shape the
153
+ * line renderer has always used for tool detail:
154
+ *
155
+ * run │ ⚙ bash
156
+ * run │ printf hello
157
+ */
158
+ const prefix = this.prefix;
159
+ const headerIndent = ' ';
160
+ const bodyIndent = ' ';
161
+ const gutter = `${prefix}${bodyIndent}`;
162
+ const gutterWidth = visibleWidth(prefix) + bodyIndent.length;
163
+ const contentWidth = Math.max(1, width - gutterWidth);
164
+ const glyph = this.state === 'ok' ? '✔' : this.state === 'failed' ? '✖' : '⚙';
165
+ const glyphStyled = this.state === 'failed'
166
+ ? tuiStyle.error(glyph)
167
+ : this.state === 'ok'
168
+ ? tuiStyle.success(glyph)
169
+ : tuiStyle.accent(glyph);
170
+ // Only offer the key when something is actually hidden: on a one-line call the
171
+ // hint is noise, and it made every pane look like it had more to show.
172
+ const body = this.bodyLines();
173
+ const result = this.resultLines();
174
+ const hidden = Math.max(0, body.length - COLLAPSED_BODY_LINES)
175
+ + Math.max(0, result.length - COLLAPSED_BODY_LINES);
176
+ const meta = [];
177
+ if (this.elapsedMs !== undefined)
178
+ meta.push(`${this.elapsedMs}ms`);
179
+ if (!this.expanded && hidden > 0)
180
+ meta.push('ctrl+o to expand');
181
+ const header = `${glyphStyled} ${tuiStyle.title(this.toolName)}${meta.length ? ` ${tuiStyle.dim(`· ${meta.join(' · ')}`)}` : ''}`;
182
+ const out = [truncateToWidth(`${prefix}${headerIndent}${header}`, width, '…')];
183
+ // Body: the call itself.
184
+ const bodyBudget = this.expanded ? body.length : Math.min(body.length, COLLAPSED_BODY_LINES);
185
+ for (const line of body.slice(0, bodyBudget)) {
186
+ for (const wrapped of this.wrap(line, contentWidth, body.length > 1 ? ' ' : '')) {
187
+ out.push(`${gutter}${truncateToWidth(wrapped, contentWidth, '…')}`);
188
+ }
189
+ }
190
+ // Result: markdown when expanded (a model answer or a report), bounded otherwise.
191
+ if (result.length > 0) {
192
+ const shown = this.expanded ? result : result.slice(0, COLLAPSED_BODY_LINES);
193
+ const omitted = result.length - shown.length;
194
+ if (this.expanded) {
195
+ const markdown = new Markdown(shown.join('\n'), 0, 0, markdownTheme());
196
+ for (const line of markdown.render(contentWidth)) {
197
+ out.push(line === '' ? '' : `${gutter}${line}`);
198
+ }
199
+ }
200
+ else {
201
+ for (const line of shown) {
202
+ const styled = this.state === 'failed' ? tuiStyle.error(line) : line;
203
+ for (const wrapped of this.wrap(styled, contentWidth, '')) {
204
+ out.push(`${gutter}${truncateToWidth(wrapped, contentWidth, '…')}`);
205
+ }
206
+ }
207
+ }
208
+ if (omitted > 0) {
209
+ out.push(`${gutter}${tuiStyle.dim(`… ${omitted} more line${omitted === 1 ? '' : 's'}`)}`);
210
+ }
211
+ }
212
+ // Every line must fit the viewport; a pane is a child of the transcript.
213
+ return out.map((line) => (visibleWidth(line) <= width ? line : truncateToWidth(line, width, '…')));
214
+ }
215
+ /** Wrap a styled string to `width`, prefixing continuation lines. */
216
+ wrap(text, width, continuationPrefix) {
217
+ if (visibleWidth(text) <= width)
218
+ return [text];
219
+ const wrapped = wrapTextWithAnsi(text, Math.max(1, width - visibleWidth(continuationPrefix)));
220
+ return wrapped.map((line, index) => (index === 0 ? line : `${continuationPrefix}${line}`));
221
+ }
222
+ }
223
+ /** Bound a value for a header line. */
224
+ function shortValue(value) {
225
+ const text = typeof value === 'string'
226
+ ? value
227
+ : (() => {
228
+ try {
229
+ return JSON.stringify(value);
230
+ }
231
+ catch {
232
+ return String(value);
233
+ }
234
+ })();
235
+ return text.length > 60 ? `${text.slice(0, 57)}…` : text;
236
+ }
237
+ /** A plain text block component, so callers can append text as a component. */
238
+ export class TextBlock {
239
+ text;
240
+ constructor(value, paddingX = 0) {
241
+ this.text = new Text(value, paddingX, 0);
242
+ }
243
+ setText(value) {
244
+ this.text.setText(value);
245
+ }
246
+ render(width) {
247
+ return this.text.render(width);
248
+ }
249
+ invalidate() {
250
+ this.text.invalidate();
251
+ }
252
+ }
253
+ /** A bounded single-line text component (for long binding values). */
254
+ export function truncated(value) {
255
+ return new TruncatedText(value, 0, 0);
256
+ }
257
+ //# sourceMappingURL=tool-pane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-pane.js","sourceRoot":"","sources":["../../../src/repl/tui/tool-pane.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * The working indicator, as a dock component.
3
+ *
4
+ * It used to be a `\r`-based line inside the transcript, which meant unrelated
5
+ * output could replace it and leave no sign that anything was happening — most
6
+ * visible with reasoning off and streaming quiet, where the transcript went
7
+ * silent until the first token. As a component in the dock it animates on its own
8
+ * and is only absent when nothing is running.
9
+ */
10
+ import { type Component, type TUI } from '@earendil-works/pi-tui';
11
+ export declare class WorkingLine implements Component {
12
+ private readonly loader;
13
+ private label;
14
+ constructor(tui: TUI);
15
+ /** Stop the animation (called on exit, so no timer outlives the UI). */
16
+ stop(): void;
17
+ /** Show the indicator with `label`, or hide it when `label` is null. */
18
+ set(label: string | null): void;
19
+ get isWorking(): boolean;
20
+ render(width: number): string[];
21
+ invalidate(): void;
22
+ }
23
+ //# sourceMappingURL=working-line.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"working-line.d.ts","sourceRoot":"","sources":["../../../src/repl/tui/working-line.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAU,KAAK,SAAS,EAAE,KAAK,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAO1E,qBAAa,WAAY,YAAW,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,KAAK,CAAuB;gBAExB,GAAG,EAAE,GAAG;IAYpB,wEAAwE;IACxE,IAAI,IAAI,IAAI;IAKZ,wEAAwE;IACxE,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAW/B,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAM/B,UAAU,IAAI,IAAI;CAGnB"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * The working indicator, as a dock component.
3
+ *
4
+ * It used to be a `\r`-based line inside the transcript, which meant unrelated
5
+ * output could replace it and leave no sign that anything was happening — most
6
+ * visible with reasoning off and streaming quiet, where the transcript went
7
+ * silent until the first token. As a component in the dock it animates on its own
8
+ * and is only absent when nothing is running.
9
+ */
10
+ import { Loader } from '@earendil-works/pi-tui';
11
+ import { tuiStyle } from './theme.js';
12
+ /** Frames for the indicator (a braille spinner, like the rest of the TUI). */
13
+ const FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
14
+ export class WorkingLine {
15
+ loader;
16
+ label = null;
17
+ constructor(tui) {
18
+ this.loader = new Loader(tui, tuiStyle.accent, tuiStyle.muted, '', {
19
+ frames: FRAMES,
20
+ intervalMs: 90,
21
+ });
22
+ // `Loader`'s constructor calls `setIndicator()`, which calls `start()`: it
23
+ // begins animating (and holding a timer) the moment it is constructed. Left
24
+ // alone that keeps the process alive after the TUI stops and re-renders while
25
+ // nothing is running, so park it until there is work to show.
26
+ this.loader.stop();
27
+ }
28
+ /** Stop the animation (called on exit, so no timer outlives the UI). */
29
+ stop() {
30
+ this.label = null;
31
+ this.loader.stop();
32
+ }
33
+ /** Show the indicator with `label`, or hide it when `label` is null. */
34
+ set(label) {
35
+ if (label === this.label)
36
+ return;
37
+ this.label = label;
38
+ if (label === null) {
39
+ this.loader.stop();
40
+ return;
41
+ }
42
+ this.loader.setMessage(label);
43
+ this.loader.start();
44
+ }
45
+ get isWorking() {
46
+ return this.label !== null;
47
+ }
48
+ render(width) {
49
+ // Nothing to show: no row at all, so the dock does not reserve a blank line.
50
+ if (this.label === null)
51
+ return [];
52
+ return this.loader.render(width);
53
+ }
54
+ invalidate() {
55
+ this.loader.invalidate();
56
+ }
57
+ }
58
+ //# sourceMappingURL=working-line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"working-line.js","sourceRoot":"","sources":["../../../src/repl/tui/working-line.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAA4B,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,8EAA8E;AAC9E,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAElE,MAAM,OAAO,WAAW;IACL,MAAM,CAAS;IACxB,KAAK,GAAkB,IAAI,CAAC;IAEpC,YAAY,GAAQ;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;QACH,2EAA2E;QAC3E,4EAA4E;QAC5E,8EAA8E;QAC9E,8DAA8D;QAC9D,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,wEAAwE;IACxE,IAAI;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,wEAAwE;IACxE,GAAG,CAAC,KAAoB;QACtB,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK;YAAE,OAAO;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,6EAA6E;QAC7E,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,UAAU;QACR,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;CACF"}
package/dist/runner.d.ts CHANGED
@@ -47,6 +47,8 @@ export interface RunnerOptions {
47
47
  imageBackend?: ImageBackend;
48
48
  /** Resolves `with_model/2` scopes to concrete models. */
49
49
  modelResolver?: ModelResolver;
50
+ /** Effective shell backend, passed to nested task agents for their env block. */
51
+ environment?: import('./system/runtime/shell-manager.js').ExecutionEnvironment;
50
52
  }
51
53
  export interface InternalRunOptions {
52
54
  args?: unknown[];
@@ -67,6 +69,24 @@ export interface InternalRunOptions {
67
69
  */
68
70
  onModelCall?: () => boolean | Promise<boolean>;
69
71
  }
72
+ /**
73
+ * User tool info from Prolog
74
+ */
75
+ /**
76
+ * The error a tool call gets when the tool is already running further up the
77
+ * call chain. Shared by the runtime guard and the withheld-tool stub.
78
+ */
79
+ export declare function unavailableToolError(toolName: string): string;
80
+ /**
81
+ * Parse the `toolScope` a `task/N` carries from `with_tools/2` / `without_tools/2`.
82
+ *
83
+ * Shape: `{$t:'t', whitelist:[[Names]]}` / `blacklist:[[Names]]`, or the atom
84
+ * `none`. The extra list nesting comes from the term's argument list.
85
+ */
86
+ export declare function parseToolScope(raw: unknown): {
87
+ type: 'none' | 'whitelist' | 'blacklist';
88
+ list: string[];
89
+ };
70
90
  /**
71
91
  * A frame in the runner's reentrant execution stack.
72
92
  *
@@ -96,6 +116,16 @@ export declare class DMLRunner {
96
116
  private currentMemory;
97
117
  private stepCounter;
98
118
  private judgeCache;
119
+ /**
120
+ * DML tools currently executing, innermost last.
121
+ *
122
+ * A tool must not be reachable by any agent it spawns, or `foo(A) :- task(...)`
123
+ * recurses: the agent inside `task/N` calls `foo`, which spawns another agent,
124
+ * and so on. The tool list is built *before* the tool runs (so a static list
125
+ * cannot know), which is why the check is applied when the model calls the
126
+ * tool rather than when the list is built.
127
+ */
128
+ private toolCallStack;
99
129
  /**
100
130
  * Runner-owned frame table: FrameId -> { frame, engine }.
101
131
  * The Prolog session owns the authoritative engine handles
@@ -265,6 +295,7 @@ export declare class DMLRunner {
265
295
  * @param onToolCall - Callback to emit tool call events from nested tasks
266
296
  */
267
297
  private executeToolIsolated;
298
+ private executeToolIsolatedInner;
268
299
  private applyHostCompaction;
269
300
  private extractMessagesFromValue;
270
301
  /** Decode `media{path:..., mime:...}` dicts into reference-only refs. */
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}