deepclause-sdk 0.1.1 → 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 (79) 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 +2 -0
  7. package/dist/cli/repl.d.ts.map +1 -1
  8. package/dist/cli/repl.js +26 -0
  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/harness-tools.d.ts +24 -2
  23. package/dist/repl/harness-tools.d.ts.map +1 -1
  24. package/dist/repl/harness-tools.js +14 -5
  25. package/dist/repl/harness-tools.js.map +1 -1
  26. package/dist/repl/index.d.ts +8 -0
  27. package/dist/repl/index.d.ts.map +1 -1
  28. package/dist/repl/index.js +1 -0
  29. package/dist/repl/index.js.map +1 -1
  30. package/dist/repl/render.d.ts +8 -1
  31. package/dist/repl/render.d.ts.map +1 -1
  32. package/dist/repl/render.js +81 -16
  33. package/dist/repl/render.js.map +1 -1
  34. package/dist/repl/session.d.ts +61 -4
  35. package/dist/repl/session.d.ts.map +1 -1
  36. package/dist/repl/session.js +174 -9
  37. package/dist/repl/session.js.map +1 -1
  38. package/dist/repl/tool-arguments.d.ts +36 -0
  39. package/dist/repl/tool-arguments.d.ts.map +1 -0
  40. package/dist/repl/tool-arguments.js +123 -0
  41. package/dist/repl/tool-arguments.js.map +1 -0
  42. package/dist/repl/toolset.d.ts +28 -1
  43. package/dist/repl/toolset.d.ts.map +1 -1
  44. package/dist/repl/toolset.js +52 -4
  45. package/dist/repl/toolset.js.map +1 -1
  46. package/dist/runner.d.ts +31 -0
  47. package/dist/runner.d.ts.map +1 -1
  48. package/dist/runner.js +192 -17
  49. package/dist/runner.js.map +1 -1
  50. package/dist/system/assets/docs/AGENT_PROMPT.md +925 -43
  51. package/dist/system/assets/docs/DML_AUTHORING.md +96 -17
  52. package/dist/system/assets/docs/DML_REFERENCE.md +620 -39
  53. package/dist/system/assets/docs/PROLOG_SNIPPETS.md +45 -1
  54. package/dist/system/assets/docs/TASK_PROMPT.md +2 -0
  55. package/dist/system/environment.d.ts +36 -0
  56. package/dist/system/environment.d.ts.map +1 -0
  57. package/dist/system/environment.js +81 -0
  58. package/dist/system/environment.js.map +1 -0
  59. package/dist/system/runtime/shell-manager.d.ts +40 -2
  60. package/dist/system/runtime/shell-manager.d.ts.map +1 -1
  61. package/dist/system/runtime/shell-manager.js +82 -16
  62. package/dist/system/runtime/shell-manager.js.map +1 -1
  63. package/dist/system/runtime/shell-tool-events.js +25 -1
  64. package/dist/system/runtime/shell-tool-events.js.map +1 -1
  65. package/dist/types.d.ts +20 -1
  66. package/dist/types.d.ts.map +1 -1
  67. package/package.json +4 -2
  68. package/src/prolog-src/deepclause_mi.pl +1028 -118
  69. package/dist/compaction.d.ts +0 -98
  70. package/dist/compaction.d.ts.map +0 -1
  71. package/dist/compaction.js +0 -471
  72. package/dist/compaction.js.map +0 -1
  73. package/dist/repl/tools.d.ts +0 -53
  74. package/dist/repl/tools.d.ts.map +0 -1
  75. package/dist/repl/tools.js +0 -307
  76. package/dist/repl/tools.js.map +0 -1
  77. package/dist/system/assets/compactors/default-loop-compactor.dml +0 -43
  78. package/dist/system/assets/compactors/default-session-compactor.dml +0 -30
  79. package/dist/system/assets/docs/META_PROMPT.md +0 -68
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Tool-call parameter validation.
3
+ *
4
+ * A tool call with an unknown parameter used to be accepted and the extra key
5
+ * silently dropped, so `exec(bash(command: "cat", stdin: "…"), R)` looked
6
+ * reasonable, ran `cat` with no input, and reported success. That is the worst
7
+ * kind of failure: nothing to see, nothing to fix, and the DML author blames
8
+ * their own logic. Rejecting the call names the mistake at the point it is made.
9
+ *
10
+ * Deliberately shallow — unknown keys, missing required keys, and the primitive
11
+ * types. Deep or conditional validation belongs in the tool, which knows its own
12
+ * semantics; this exists to catch a call that cannot mean what it says.
13
+ */
14
+ /**
15
+ * Extra advice for mistakes that are easy to make and hard to read back. The
16
+ * generic "unknown parameter" message is enough for a typo, but not for a field
17
+ * that looks like it should exist.
18
+ */
19
+ const PARAMETER_HINTS = {
20
+ stdin: 'exec(bash(...)) has no stdin. Pass the data as an `argv` element '
21
+ + '(quoted by the runtime), or write it to a workspace file and name the file.',
22
+ input: 'Pass data as an `argv` element or through a workspace file.',
23
+ shell: 'exec(bash(...)) always runs a shell; put the command in `command`, '
24
+ + 'or pass a program and its arguments as `argv`.',
25
+ cwd: 'The working directory is always the workspace (/workspace); do not pass one.',
26
+ };
27
+ /** Read `properties`/`required` out of a JSON Schema tool parameter block. */
28
+ export function readToolSchema(schema) {
29
+ if (!schema || typeof schema !== 'object')
30
+ return undefined;
31
+ const record = schema;
32
+ const properties = record.properties;
33
+ if (!properties || typeof properties !== 'object')
34
+ return undefined;
35
+ return {
36
+ properties: properties,
37
+ required: Array.isArray(record.required) ? record.required : [],
38
+ additionalProperties: record.additionalProperties,
39
+ };
40
+ }
41
+ /** Does `value` satisfy the declared primitive type? */
42
+ function matchesType(value, type) {
43
+ if (!type)
44
+ return true;
45
+ const types = Array.isArray(type) ? type : [type];
46
+ return types.some((candidate) => {
47
+ switch (candidate) {
48
+ case 'string':
49
+ return typeof value === 'string';
50
+ case 'number':
51
+ return typeof value === 'number' && Number.isFinite(value);
52
+ case 'integer':
53
+ return typeof value === 'number' && Number.isInteger(value);
54
+ case 'boolean':
55
+ return typeof value === 'boolean';
56
+ case 'array':
57
+ return Array.isArray(value);
58
+ case 'object':
59
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
60
+ case 'null':
61
+ return value === null;
62
+ default:
63
+ return true;
64
+ }
65
+ });
66
+ }
67
+ function describeAccepted(properties) {
68
+ const names = Object.keys(properties);
69
+ return names.length > 0 ? names.join(', ') : '(none)';
70
+ }
71
+ /**
72
+ * Validate a tool call's arguments. Nothing to check is not a failure: a tool
73
+ * with no declared properties, or a schema this cannot read (a Zod schema is
74
+ * enforced by the AI SDK instead), passes.
75
+ */
76
+ export function validateToolArguments(toolName, schema, args) {
77
+ const declared = readToolSchema(schema);
78
+ // Nothing declared means nothing to check — a tool with no parameters (which
79
+ // may still be called positionally) cannot have a wrong one.
80
+ if (!declared?.properties || Object.keys(declared.properties).length === 0)
81
+ return { ok: true };
82
+ const properties = declared.properties;
83
+ const unknownKeys = declared.additionalProperties === true
84
+ ? []
85
+ : Object.keys(args).filter((key) => !(key in properties) && !key.startsWith('$'));
86
+ if (unknownKeys.length > 0) {
87
+ const quoted = unknownKeys.map((key) => `'${key}'`).join(', ');
88
+ // The hint explains the mistake; the accepted list says what to write
89
+ // instead. Both, or the author is left guessing which parameter was meant.
90
+ const hints = unknownKeys
91
+ .map((key) => PARAMETER_HINTS[key])
92
+ .filter(Boolean)
93
+ .join(' ');
94
+ return {
95
+ ok: false,
96
+ error: `${toolName}: unknown parameter ${quoted}. ${hints} `
97
+ + `Accepted: ${describeAccepted(properties)}.`.replace(/\s+/g, ' '),
98
+ };
99
+ }
100
+ const missing = (declared.required ?? []).filter((key) => args[key] === undefined || args[key] === null);
101
+ if (missing.length > 0) {
102
+ return {
103
+ ok: false,
104
+ error: `${toolName}: missing required parameter${missing.length > 1 ? 's' : ''} `
105
+ + `${missing.join(', ')}.`,
106
+ };
107
+ }
108
+ for (const [key, value] of Object.entries(args)) {
109
+ if (value === undefined || key.startsWith('$'))
110
+ continue;
111
+ const expected = properties[key]?.type;
112
+ if (!matchesType(value, expected)) {
113
+ const typeLabel = Array.isArray(expected) ? expected.join('|') : String(expected);
114
+ const actual = Array.isArray(value) ? 'array' : value === null ? 'null' : typeof value;
115
+ return {
116
+ ok: false,
117
+ error: `${toolName}: parameter ${key} should be ${typeLabel}, got ${actual}.`,
118
+ };
119
+ }
120
+ }
121
+ return { ok: true };
122
+ }
123
+ //# sourceMappingURL=tool-arguments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-arguments.js","sourceRoot":"","sources":["../../src/repl/tool-arguments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAWH;;;;GAIG;AACH,MAAM,eAAe,GAA2B;IAC9C,KAAK,EAAE,mEAAmE;UACtE,6EAA6E;IACjF,KAAK,EAAE,6DAA6D;IACpE,KAAK,EAAE,qEAAqE;UACxE,gDAAgD;IACpD,GAAG,EAAE,8EAA8E;CACpF,CAAC;AAEF,8EAA8E;AAC9E,MAAM,UAAU,cAAc,CAAC,MAAe;IAC5C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAiC,CAAC;IACjD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACrC,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACpE,OAAO;QACL,UAAU,EAAE,UAA0C;QACtD,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,QAAqB,CAAC,CAAC,CAAC,EAAE;QAC7E,oBAAoB,EAAE,MAAM,CAAC,oBAA2C;KACzE,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,SAAS,WAAW,CAAC,KAAc,EAAE,IAAmC;IACtE,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;QAC9B,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,QAAQ;gBACX,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;YACnC,KAAK,QAAQ;gBACX,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC7D,KAAK,SAAS;gBACZ,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9D,KAAK,SAAS;gBACZ,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;YACpC,KAAK,OAAO;gBACV,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9B,KAAK,QAAQ;gBACX,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9E,KAAK,MAAM;gBACT,OAAO,KAAK,KAAK,IAAI,CAAC;YACxB;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAmC;IAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAgB,EAChB,MAAe,EACf,IAA6B;IAE7B,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,6EAA6E;IAC7E,6DAA6D;IAC7D,IAAI,CAAC,QAAQ,EAAE,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAChG,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IAEvC,MAAM,WAAW,GAAG,QAAQ,CAAC,oBAAoB,KAAK,IAAI;QACxD,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACpF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,sEAAsE;QACtE,2EAA2E;QAC3E,MAAM,KAAK,GAAG,WAAW;aACtB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;aAClC,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,GAAG,QAAQ,uBAAuB,MAAM,KAAK,KAAK,GAAG;kBACxD,aAAa,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACtE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAC9C,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CACvD,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,GAAG,QAAQ,+BAA+B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;kBAC7E,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SAC7B,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACzD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClF,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC;YACvF,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,GAAG,QAAQ,eAAe,GAAG,cAAc,SAAS,SAAS,MAAM,GAAG;aAC9E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * human-in-the-loop channel (`ask_user` / `input/2`). `--tools`/`--no-tools`
8
8
  * control whether `bash` is registered.
9
9
  */
10
- import { type HostShellConfig } from '../system/runtime/shell-manager.js';
10
+ import { type ExecutionEnvironment, type HostShellConfig } from '../system/runtime/shell-manager.js';
11
11
  import type { DMLEvent, ToolDefinition } from '../types.js';
12
12
  export declare const DEFAULT_REPL_TOOLS: readonly ["bash"];
13
13
  export interface ReplToolsetOptions {
@@ -24,9 +24,36 @@ export interface ReplToolset {
24
24
  tools: Map<string, ToolDefinition>;
25
25
  /** Catalog text injected into the meta prompt. */
26
26
  catalog: string;
27
+ /**
28
+ * How shell commands will actually run here. The caller passes this to the
29
+ * session so the harness `require_sandbox` check, the model's environment
30
+ * block and this toolset all agree on one answer.
31
+ */
32
+ environment: ExecutionEnvironment;
27
33
  dispose(): Promise<void>;
28
34
  }
35
+ /**
36
+ * Describe the `bash` tool, including where it runs.
37
+ *
38
+ * The agent has to reconcile two surfaces — its own tools and DML's `exec` — and
39
+ * they must not disagree about what a path means. So the description states the
40
+ * one name, and states whether anything is actually isolated, rather than
41
+ * letting the agent assume a sandbox is there.
42
+ */
43
+ export declare function describeBashTool(environment: ExecutionEnvironment): string;
29
44
  /** Human-readable catalog of the registered capability tools. */
30
45
  export declare function buildToolCatalog(tools: Map<string, ToolDefinition>): string;
46
+ /**
47
+ * Join an argv list into a shell command, quoting every element.
48
+ *
49
+ * This is what makes `exec(bash(argv: [...]))` worth having: the author passes
50
+ * values as a list and never writes a quote, so data containing spaces, quotes,
51
+ * `$`, backticks, `;` or newlines cannot escape into the command. It still runs
52
+ * through the same launch plan, so the sandbox and wrapper are unchanged.
53
+ *
54
+ * POSIX single-quote quoting: wrap in `'`, and end/restart the quote around any
55
+ * embedded `'` (`'\''`).
56
+ */
57
+ export declare function quoteArgv(argv: readonly string[]): string;
31
58
  export declare function createReplToolset(options: ReplToolsetOptions): Promise<ReplToolset>;
32
59
  //# sourceMappingURL=toolset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolset.d.ts","sourceRoot":"","sources":["../../src/repl/toolset.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE9F,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE5D,eAAO,MAAM,kBAAkB,mBAAoB,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnC,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,MAAM,CAa3E;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CA4DzF"}
1
+ {"version":3,"file":"toolset.d.ts","sourceRoot":"","sources":["../../src/repl/toolset.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACrB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE5D,eAAO,MAAM,kBAAkB,mBAAoB,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnC,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,WAAW,EAAE,oBAAoB,CAAC;IAClC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,oBAAoB,GAAG,MAAM,CAc1E;AAED,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,MAAM,CAa3E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAEzD;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAuEzF"}
@@ -7,9 +7,32 @@
7
7
  * human-in-the-loop channel (`ask_user` / `input/2`). `--tools`/`--no-tools`
8
8
  * control whether `bash` is registered.
9
9
  */
10
- import { createShellManager } from '../system/runtime/shell-manager.js';
10
+ import { createShellManager, describeShellExecutionBackend, } from '../system/runtime/shell-manager.js';
11
11
  import { createShellToolEventBridge } from '../system/runtime/shell-tool-events.js';
12
12
  export const DEFAULT_REPL_TOOLS = ['bash'];
13
+ /**
14
+ * Describe the `bash` tool, including where it runs.
15
+ *
16
+ * The agent has to reconcile two surfaces — its own tools and DML's `exec` — and
17
+ * they must not disagree about what a path means. So the description states the
18
+ * one name, and states whether anything is actually isolated, rather than
19
+ * letting the agent assume a sandbox is there.
20
+ */
21
+ export function describeBashTool(environment) {
22
+ const isolation = environment.kind === 'clean-room'
23
+ ? 'There is NO sandbox: commands run as your user account, and anything you '
24
+ + 'write outside the workspace is real and persists.'
25
+ : `Isolated by ${environment.description}.`;
26
+ return [
27
+ 'Run a shell command in the session workspace.',
28
+ 'Your working directory is the workspace, and /workspace names that same '
29
+ + 'directory (DML uses the same name), so out/report.txt and '
30
+ + '/workspace/out/report.txt are one file.',
31
+ 'Only files under the workspace are shared with the host. For scratch use '
32
+ + '"$TMPDIR" (a per-session directory), not a fixed path like /tmp.',
33
+ isolation,
34
+ ].join(' ');
35
+ }
13
36
  /** Human-readable catalog of the registered capability tools. */
14
37
  export function buildToolCatalog(tools) {
15
38
  if (tools.size === 0) {
@@ -25,10 +48,25 @@ export function buildToolCatalog(tools) {
25
48
  lines.push('DML file I/O always uses the MI predicates (open/3, close/1, read_string/3, write/2, write_file/2, read_file/2, append_file/2); it is not a host tool.');
26
49
  return lines.join('\n');
27
50
  }
51
+ /**
52
+ * Join an argv list into a shell command, quoting every element.
53
+ *
54
+ * This is what makes `exec(bash(argv: [...]))` worth having: the author passes
55
+ * values as a list and never writes a quote, so data containing spaces, quotes,
56
+ * `$`, backticks, `;` or newlines cannot escape into the command. It still runs
57
+ * through the same launch plan, so the sandbox and wrapper are unchanged.
58
+ *
59
+ * POSIX single-quote quoting: wrap in `'`, and end/restart the quote around any
60
+ * embedded `'` (`'\''`).
61
+ */
62
+ export function quoteArgv(argv) {
63
+ return argv.map((item) => `'${item.replace(/'/g, `'\\''`)}'`).join(' ');
64
+ }
28
65
  export async function createReplToolset(options) {
29
66
  const requested = options.toolNames === null
30
67
  ? []
31
68
  : options.toolNames ?? [...DEFAULT_REPL_TOOLS];
69
+ const environment = describeShellExecutionBackend(options.sandbox, options.hostConfig ?? {});
32
70
  const tools = new Map();
33
71
  let shell = requested.includes('bash')
34
72
  ? createShellManager({
@@ -41,20 +79,29 @@ export async function createReplToolset(options) {
41
79
  if (shell) {
42
80
  const shellManager = shell;
43
81
  tools.set('bash', {
44
- description: 'Run a shell command in the active workspace shell.',
82
+ description: describeBashTool(environment),
45
83
  parameters: {
46
84
  type: 'object',
47
85
  properties: {
48
86
  command: { type: 'string', description: 'Shell command to execute.' },
87
+ argv: {
88
+ type: 'array',
89
+ description: 'Command and arguments as a list, quoted by the runtime. '
90
+ + 'Prefer this over `command` when any argument is data.',
91
+ },
49
92
  timeoutMs: {
50
93
  type: 'integer',
51
94
  description: 'Wall-clock timeout in milliseconds (optional; overrides DC_HOST_SHELL_TIMEOUT_MS).',
52
95
  },
53
96
  },
54
- required: ['command'],
55
97
  },
56
98
  execute: async (args, context) => {
57
- const command = String(args.command ?? args.arg1 ?? '');
99
+ const argv = Array.isArray(args.argv)
100
+ ? args.argv.map((item) => String(item))
101
+ : undefined;
102
+ const command = argv && argv.length > 0
103
+ ? quoteArgv(argv)
104
+ : String(args.command ?? args.arg1 ?? '');
58
105
  const timeoutMs = typeof args.timeoutMs === 'number' && Number.isFinite(args.timeoutMs) && args.timeoutMs > 0
59
106
  ? args.timeoutMs
60
107
  : undefined;
@@ -71,6 +118,7 @@ export async function createReplToolset(options) {
71
118
  return {
72
119
  tools,
73
120
  catalog: buildToolCatalog(tools),
121
+ environment,
74
122
  dispose: async () => {
75
123
  if (shell) {
76
124
  await shell.dispose();
@@ -1 +1 @@
1
- {"version":3,"file":"toolset.js","sourceRoot":"","sources":["../../src/repl/toolset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolset.js","sourceRoot":"","sources":["../../src/repl/toolset.ts"],"names":[],"mappings":"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"}
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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"}