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
@@ -17,12 +17,22 @@ transformation is open-ended (`DML_AUTHORING.md` §0).
17
17
  | Atom case | `downcase_atom('ABC', L)` / `upcase_atom('abc', U)` | `abc` / `ABC` |
18
18
  | Collapse whitespace | `normalize_space(string(T), " a b ")` | `a b` |
19
19
  | Build a string | `format(string(S), "~w/~w", [A, B])` | `a/b` |
20
+ | Run a command with data | `exec(bash(argv: ["python3", Script, Text]), R)` | args quoted by the runtime |
20
21
  | Number <-> string | `number_string(42, S)` / `atom_number("42", N)` | `"42"` / `42` |
21
22
  | Substring test | `sub_string(S, _, _, _, "needle")` | true |
22
23
  | Substring test (atom) | `sub_atom(A, _, _, _, needle)` | true |
23
24
  | Concat | `string_concat("a", "b", S)` | `ab` |
24
25
  | Char list | `string_chars("abc", L)` | `[a,b,c]` |
25
26
  | JSON string -> dict | `atom_json_dict('{"a":[1,2]}', D, []), get_dict(a, D, A)` | `[1,2]` |
27
+ | dict -> JSON string | `atom_json_dict(S, x{a:1}, [])` (`atom_json_dict/3` is bidirectional) | `"{\"a\":1}"` |
28
+ | JSON path | `json_get(D, "results.0.title", T)` / `[results,0,title]` | the nested value |
29
+ | JSON with default | `json_get(D, "results.0.year", "unknown", T)` | default when absent |
30
+ | JSON project | `json_gets(D, "results.*.title", Ts)` / `"a.*.b.*.c"` flattens | list of values |
31
+ | JSON set | `json_put(D, "meta.reviewed", yes, D2)` (keys only, not indices) | updated dict |
32
+ | Parse with a DCG | `string_chars(T, Cs), phrase(grammar(X), Cs)` | binds `X` |
33
+ | Build from a template | `pattern("Name: $name", T, [name="Ada"])` | `"Name: Ada"` |
34
+ | Parse a template | `pattern("Name: $name", "Name: Ada", B)` | `[name="Ada"]` |
35
+ | Parse a typed slot | `pattern("n=$n:int", "n=42", B)` | `[n=42]` |
26
36
 
27
37
  In `task/`, `output/`, `answer/` description strings, `{Var}` interpolates the
28
38
  bound value; in `format/3` use `~w`.
@@ -80,13 +90,36 @@ pattern with `(?i)` for case-insensitive matching.
80
90
  | Group by key | `group_pairs_by_key([a-1,a-2,b-3], G)` | `[a-[1,2], b-[3]]` |
81
91
 
82
92
  `sort/4`'s first argument is the **argument position** to sort on (here `2` =
83
- the value in each `Key-Value`), not a sort mode.
93
+ the value in each `Key-Value`), not a sort mode. It addresses arguments of a
94
+ compound, so it does **not** work on dicts — use `predsort/3` for those.
95
+
96
+ More, all verified:
97
+
98
+ | Task | Snippet | Result |
99
+ |---|---|---|
100
+ | Reverse | `reverse([1,2,3], L)` | `[3,2,1]` |
101
+ | 1-based index | `nth1(1, [a,b,c], E)` | `a` |
102
+ | Remove one occurrence | `select(b, [a,b,c], L)` | `[a,c]` |
103
+ | Membership, once | `memberchk(b, [a,b,c])` | true (no choice point) |
104
+ | Generate blanks | `length(L, 3)` | `[_,_,_]` |
105
+ | Zip | `pairs_keys_values(P, [a,b], [1,2])` | `[a-1,b-2]` |
106
+ | Unzip | `pairs_keys/2` / `pairs_values/2` | `[a,b]` / `[1,2]` |
107
+ | Keep only integers | `convlist([X,Y]>>(integer(X), Y is X*2), [1,a,3], L)` | `[2,6]` |
108
+ | All of a type | `maplist(integer, [1,2,3])` | true |
109
+ | Map over two lists | `maplist([A,B,C]>>(C is A+B), [1,2], [10,20], L)` | `[11,22]` |
110
+ | Custom sort | `predsort([O,A,B]>>compare(O,A,B), [3,1,2], L)` | `[1,2,3]` |
111
+ | Max by aggregate | `aggregate_all(max(N), member(N,[1,9,3]), M)` | `9` |
112
+ | Drop empty strings | `exclude(==(""), ["",a,""], L)` | `[a]` |
113
+ | Field from dicts | `json_gets(D, "rows.*.name", L)` | the field values |
114
+ | Stable pairs sort | `msort([b-1,a-2,a-1], L)` | `[a-1,a-2,b-1]` |
84
115
 
85
116
  ## Dicts and data
86
117
 
87
118
  | Task | Snippet |
88
119
  |---|---|
89
120
  | Read a field | `D = point{x:1,y:2}, get_dict(x, D, X)` |
121
+ | Model field, any key form | `dict_field(D, "affiliation", A)` — atom or string key, any case, `_`/`-`/space ignored; fails if absent |
122
+ | Model field with default | `dict_field(D, country, "unstated", C)` |
90
123
  | Keys | `dict_keys(a{x:1,y:2}, K)` → `[x,y]` |
91
124
  | Add/replace a field | `put_dict(score, a{name:"n"}, 9, D2)` |
92
125
 
@@ -106,6 +139,17 @@ the value in each `Key-Value`), not a sort mode.
106
139
  to collect all matches.
107
140
  - `re_match/3` takes an options list; use `re_matchsub/4` for capture groups.
108
141
  - `sort/4`'s first argument is the argument position, not a mode.
142
+ - Dict keys must be **atoms**: `get_dict("name", D)` raises
143
+ `type_error(dict-key, name)` rather than failing, and `x{"a":1}` is a syntax
144
+ error. Use `dict_field/3,4` for model-produced dicts, whose key spelling varies.
145
+ - `phrase/2` takes a **list**: `phrase(g(X), "text")` raises
146
+ `type_error(list, "text")`. Convert first with `string_chars/2`.
147
+ - **`setof/3` and `bagof/3` fail on an empty solution set**; `findall/3` gives `[]`.
148
+ - **`sort/2` removes duplicates.** `msort/2` keeps them and is stable.
149
+ - `max_list([])` fails; `sum_list([a,b])` raises a type error. Guard first.
150
+ - **Not available in this build:** `nth0/4` (replace), `numlist/4` (step),
151
+ `chunk/3`, `rename_keys/3`.
152
+ - A missing `json_get/3` path **fails**; use `json_get/4` for a default.
109
153
  - A top-level `:- use_module(library(clpfd)).` is required before `#=`/`ins`.
110
154
  - Untrusted data (URLs, file contents, user text) goes through files/stdin,
111
155
  never interpolated into a shell command.
@@ -20,6 +20,8 @@ You are an AI agent executing a subtask inside a larger DeepClause workflow.
20
20
  2. If you are missing information, call exactly one relevant tool.
21
21
  3. If the subtask cannot be completed with the available context and tools, call `finish(false)`.
22
22
 
23
+ {ENVIRONMENT_SECTION}
24
+
23
25
  ## Anti-Loop Rules
24
26
 
25
27
  {STALL_GUIDANCE}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * The environment and clock block put in front of the model.
3
+ *
4
+ * Two surfaces can run code — the agent's own tools and DML's `exec(bash(...))` —
5
+ * and they must not disagree about what a path means or whether anything is
6
+ * isolated. So the facts are stated once, from the same resolution the runtime
7
+ * uses, instead of being left for the model to infer. This is also the only place
8
+ * the model learns the date: without it a model reasons from its training cutoff.
9
+ *
10
+ * Both blocks are meant to be appended **last** in a system prompt. The prompt is
11
+ * rebuilt for every model call, so a block that changes per turn invalidates any
12
+ * prefix caching from that point; keeping the stable documentation ahead of it
13
+ * preserves the cacheable head.
14
+ */
15
+ import { type ExecutionEnvironment } from './runtime/shell-manager.js';
16
+ export interface EnvironmentBlockOptions {
17
+ workspacePath?: string;
18
+ environment?: ExecutionEnvironment;
19
+ /** Injectable clock, so tests do not depend on the wall calendar. */
20
+ now?: Date;
21
+ }
22
+ /** `2026-02-14 14:31 (Saturday, Europe/Berlin, CET)` in the host's timezone. */
23
+ export declare function describeNow(now?: Date): string;
24
+ /**
25
+ * The `EXECUTION ENVIRONMENT` block.
26
+ *
27
+ * Everything here is conditional on the effective backend, and says so. The one
28
+ * claim that does *not* depend on a sandbox is that only the workspace reaches
29
+ * the host: that is the WASM filesystem's mount, which is always there.
30
+ */
31
+ export declare function describeEnvironment(options?: EnvironmentBlockOptions): string;
32
+ /** `NOW` — always recomputed, so a long session does not read yesterday's date. */
33
+ export declare function describeCurrentTime(now?: Date): string;
34
+ /** Both blocks, in the order they should be appended. */
35
+ export declare function describeRuntimeContext(options?: EnvironmentBlockOptions): string;
36
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/system/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAE/F,MAAM,WAAW,uBAAuB;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,qEAAqE;IACrE,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,GAAG,GAAE,IAAiB,GAAG,MAAM,CAoB1D;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,uBAA4B,GAAG,MAAM,CAoCjF;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,IAAiB,GAAG,MAAM,CAOlE;AAED,yDAAyD;AACzD,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,uBAA4B,GAAG,MAAM,CAEpF"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * The environment and clock block put in front of the model.
3
+ *
4
+ * Two surfaces can run code — the agent's own tools and DML's `exec(bash(...))` —
5
+ * and they must not disagree about what a path means or whether anything is
6
+ * isolated. So the facts are stated once, from the same resolution the runtime
7
+ * uses, instead of being left for the model to infer. This is also the only place
8
+ * the model learns the date: without it a model reasons from its training cutoff.
9
+ *
10
+ * Both blocks are meant to be appended **last** in a system prompt. The prompt is
11
+ * rebuilt for every model call, so a block that changes per turn invalidates any
12
+ * prefix caching from that point; keeping the stable documentation ahead of it
13
+ * preserves the cacheable head.
14
+ */
15
+ import { SANDBOX_WORKSPACE_PATH } from './runtime/shell-manager.js';
16
+ /** `2026-02-14 14:31 (Saturday, Europe/Berlin, CET)` in the host's timezone. */
17
+ export function describeNow(now = new Date()) {
18
+ const parts = new Intl.DateTimeFormat('en-GB', {
19
+ year: 'numeric',
20
+ month: '2-digit',
21
+ day: '2-digit',
22
+ hour: '2-digit',
23
+ minute: '2-digit',
24
+ hour12: false,
25
+ weekday: 'long',
26
+ timeZoneName: 'short',
27
+ }).formatToParts(now);
28
+ const get = (type) => parts.find((part) => part.type === type)?.value ?? '';
29
+ const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
30
+ const date = `${get('year')}-${get('month')}-${get('day')}`;
31
+ const time = `${get('hour')}:${get('minute')}`;
32
+ const zoneNames = [timezone, get('timeZoneName')].filter(Boolean).join(', ');
33
+ return `${date} ${time} (${get('weekday')}, ${zoneNames})`;
34
+ }
35
+ /**
36
+ * The `EXECUTION ENVIRONMENT` block.
37
+ *
38
+ * Everything here is conditional on the effective backend, and says so. The one
39
+ * claim that does *not* depend on a sandbox is that only the workspace reaches
40
+ * the host: that is the WASM filesystem's mount, which is always there.
41
+ */
42
+ export function describeEnvironment(options = {}) {
43
+ const { workspacePath, environment } = options;
44
+ const sandboxed = environment?.sandboxed ?? false;
45
+ const workspace = workspacePath ?? process.cwd();
46
+ const label = environment?.backendLabel ?? 'unknown';
47
+ const lines = [
48
+ 'EXECUTION ENVIRONMENT',
49
+ `- Shell backend: ${label}${environment?.description ? ` (${environment.description})` : ''}.`,
50
+ ];
51
+ if (!sandboxed) {
52
+ lines.push('- There is NO sandbox: `exec(bash(...))` and the shell tool run as your user '
53
+ + 'account. Writes outside the workspace are real files on this machine and '
54
+ + 'persist, and a `rm` is a real `rm`.');
55
+ }
56
+ else {
57
+ lines.push(`- \`exec(bash(...))\` is isolated by ${environment?.description}. Writes outside `
58
+ + 'the workspace stay inside that sandbox and are gone when it ends.');
59
+ }
60
+ lines.push(`- Workspace, as your own tools see it: ${workspace}`, `- Workspace, inside DML and \`exec\`: ${SANDBOX_WORKSPACE_PATH} — and it is the `
61
+ + `working directory, so \`out.txt\` and \`${SANDBOX_WORKSPACE_PATH}/out.txt\` are the `
62
+ + 'same file. Prefer this name; it is the same everywhere.', '- Only files under the workspace reach the host. In DML, any other absolute path '
63
+ + '(e.g. `/etc/x`, `/tmp/x`) is the ephemeral per-session VM filesystem, not this '
64
+ + `machine. For scratch use \`$TMPDIR\` (per-session in every backend), not a fixed path.`, '- Do not hardcode the workspace\'s host path: it depends on how the session is run '
65
+ + '(AgentVM, bubblewrap, sandbox-exec, or nothing at all).');
66
+ return lines.join('\n') + '\n';
67
+ }
68
+ /** `NOW` — always recomputed, so a long session does not read yesterday's date. */
69
+ export function describeCurrentTime(now = new Date()) {
70
+ return [
71
+ 'NOW',
72
+ `- ${describeNow(now)}`,
73
+ '- Do not assume today\'s date from training data. For the exact time run `date` '
74
+ + '(or `exec(bash(argv: ["date", "-Is"]))`).',
75
+ ].join('\n') + '\n';
76
+ }
77
+ /** Both blocks, in the order they should be appended. */
78
+ export function describeRuntimeContext(options = {}) {
79
+ return `\n${describeEnvironment(options)}\n${describeCurrentTime(options.now)}\n`;
80
+ }
81
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/system/environment.ts"],"names":[],"mappings":"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"}
@@ -43,10 +43,29 @@ export declare class HostShellManager implements ShellManager {
43
43
  dispose(): Promise<void>;
44
44
  }
45
45
  export declare function createShellManager(options: CreateShellManagerOptions): ShellManager;
46
- export declare function describeShellExecutionBackend(sandbox?: boolean, hostConfig?: HostShellConfig): {
46
+ /**
47
+ * The execution backends that isolate `exec(bash(...))` from the host. `clean-room`
48
+ * is the absence of a wrapper; it runs the command as the user, so it does not
49
+ * qualify as a sandbox.
50
+ */
51
+ export type ExecutionBackendKind = 'agentvm' | HostShellWrapperKind;
52
+ export interface ExecutionEnvironment {
53
+ kind: ExecutionBackendKind;
47
54
  backendLabel: string;
48
55
  description: string;
49
- };
56
+ /** True for a backend that provides filesystem isolation. */
57
+ sandboxed: boolean;
58
+ }
59
+ /**
60
+ * Resolve how shell commands will actually run, as data.
61
+ *
62
+ * One source of truth for three consumers that must agree: the harness
63
+ * `require_sandbox` directive (checked at load against the *effective* backend,
64
+ * so an installed-but-unused bwrap does not satisfy it), the environment block
65
+ * put in front of the model, and the CLI status line. It was previously computed
66
+ * but never read, so nothing told the agent whether it was sandboxed.
67
+ */
68
+ export declare function describeShellExecutionBackend(sandbox?: boolean, hostConfig?: HostShellConfig): ExecutionEnvironment;
50
69
  export declare function resolveHostShellStrategy(options?: {
51
70
  hostConfig?: HostShellConfig;
52
71
  platform?: NodeJS.Platform;
@@ -60,5 +79,24 @@ export declare function resolveHostShellWrapperKind(options?: {
60
79
  envOverride?: string;
61
80
  strictIsolation?: boolean;
62
81
  }): HostShellWrapperKind;
82
+ /**
83
+ * The name every surface uses for the workspace: the WASM filesystem mounts it
84
+ * there, AgentVM mounts it there, and bwrap is told to bind it there. Where a
85
+ * mount is impossible the name is mapped onto the real directory instead.
86
+ */
87
+ export declare const SANDBOX_WORKSPACE_PATH = "/workspace";
88
+ /**
89
+ * Rewrite workspace paths for backends that cannot mount `/workspace`.
90
+ *
91
+ * Only a word that *begins* with `/workspace` is a workspace path — preceded by
92
+ * the start of the command, whitespace, or a shell metacharacter, and followed
93
+ * by `/` or the end of the word. That keeps `/workspacex` and `/workspace-suffix`
94
+ * untouched, and `-I/workspace/include` and `--dir=/workspace` working. A blind
95
+ * search-and-replace would corrupt exactly the commands this exists to serve.
96
+ *
97
+ * This is a fallback, not the design: bwrap and AgentVM bind the real thing, so
98
+ * launched *programs* see `/workspace` there rather than only the agent's paths.
99
+ */
100
+ export declare function mapWorkspacePaths(command: string, workspacePath: string): string;
63
101
  export {};
64
102
  //# sourceMappingURL=shell-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shell-manager.d.ts","sourceRoot":"","sources":["../../../src/system/runtime/shell-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell-manager.d.ts","sourceRoot":"","sources":["../../../src/system/runtime/shell-manager.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,11 @@ export class HostShellManager {
53
53
  cwd: this.workspacePath,
54
54
  env: launchPlan.env,
55
55
  detached: process.platform !== 'win32',
56
+ // stdin is /dev/null, so a command that reads it sees EOF instead of a
57
+ // pipe nobody writes to. Without this, `cat` (or anything that reads
58
+ // stdin) blocks until the idle timeout kills it — a runtime with no
59
+ // stdin is not a reason to hang for 30 seconds.
60
+ stdio: ['ignore', 'pipe', 'pipe'],
56
61
  });
57
62
  observer?.onStart?.({
58
63
  command,
@@ -268,17 +273,30 @@ export function createShellManager(options) {
268
273
  }
269
274
  return new HostShellManager(options.workspacePath, options.hostConfig);
270
275
  }
276
+ /**
277
+ * Resolve how shell commands will actually run, as data.
278
+ *
279
+ * One source of truth for three consumers that must agree: the harness
280
+ * `require_sandbox` directive (checked at load against the *effective* backend,
281
+ * so an installed-but-unused bwrap does not satisfy it), the environment block
282
+ * put in front of the model, and the CLI status line. It was previously computed
283
+ * but never read, so nothing told the agent whether it was sandboxed.
284
+ */
271
285
  export function describeShellExecutionBackend(sandbox = false, hostConfig = {}) {
272
286
  if (sandbox) {
273
287
  return {
288
+ kind: 'agentvm',
274
289
  backendLabel: 'sandbox[agentvm]',
275
290
  description: 'AgentVM sandbox',
291
+ sandboxed: true,
276
292
  };
277
293
  }
278
294
  const strategy = resolveHostShellStrategy({ hostConfig });
279
295
  return {
296
+ kind: strategy.wrapperKind,
280
297
  backendLabel: strategy.backendLabel,
281
298
  description: strategy.description,
299
+ sandboxed: strategy.wrapperKind !== 'clean-room',
282
300
  };
283
301
  }
284
302
  export function resolveHostShellStrategy(options = {}) {
@@ -485,15 +503,60 @@ function probeCommand(command, args) {
485
503
  inherited,
486
504
  };
487
505
  }
506
+ /**
507
+ * The name every surface uses for the workspace: the WASM filesystem mounts it
508
+ * there, AgentVM mounts it there, and bwrap is told to bind it there. Where a
509
+ * mount is impossible the name is mapped onto the real directory instead.
510
+ */
511
+ export const SANDBOX_WORKSPACE_PATH = '/workspace';
512
+ /**
513
+ * The workspace path a command sees for this backend: `/workspace` where it is
514
+ * mounted, and the real directory where a mount is impossible (so scripts can
515
+ * still find it by `$WORKSPACE` and `$PWD`).
516
+ */
517
+ function sandboxWorkspacePathFor(strategy, workspacePath) {
518
+ return strategy.wrapperKind === 'bwrap' ? SANDBOX_WORKSPACE_PATH : workspacePath;
519
+ }
520
+ /**
521
+ * Rewrite workspace paths for backends that cannot mount `/workspace`.
522
+ *
523
+ * Only a word that *begins* with `/workspace` is a workspace path — preceded by
524
+ * the start of the command, whitespace, or a shell metacharacter, and followed
525
+ * by `/` or the end of the word. That keeps `/workspacex` and `/workspace-suffix`
526
+ * untouched, and `-I/workspace/include` and `--dir=/workspace` working. A blind
527
+ * search-and-replace would corrupt exactly the commands this exists to serve.
528
+ *
529
+ * This is a fallback, not the design: bwrap and AgentVM bind the real thing, so
530
+ * launched *programs* see `/workspace` there rather than only the agent's paths.
531
+ */
532
+ export function mapWorkspacePaths(command, workspacePath) {
533
+ // What may precede the name: the start of the command, whitespace, or a shell
534
+ // metacharacter — plus a short option such as `-I/workspace/include`, which is
535
+ // how compiler and interpreter flags are written.
536
+ const prefix = '[\\s"\'`=(:;|&<>,@]|-[A-Za-z]+';
537
+ // What may follow it. `-` is deliberately absent: `/workspace-suffix` is a
538
+ // different path, not the workspace.
539
+ const suffix = '[\\s"\'`()=:;|&<>,]';
540
+ const pattern = new RegExp(`(^|${prefix})\\/workspace(?=\\/|$|${suffix})`, 'g');
541
+ return command.replace(pattern, (_match, lead) => `${lead}${workspacePath}`);
542
+ }
488
543
  function buildHostShellLaunchPlan(strategy, command, workspacePath) {
489
544
  const scratchDir = createScratchDir();
490
- const env = buildRestrictedEnv(scratchDir, workspacePath);
545
+ const sandboxWorkspacePath = sandboxWorkspacePathFor(strategy, workspacePath);
546
+ const env = buildRestrictedEnv(scratchDir, sandboxWorkspacePath);
547
+ // Where a mount is impossible (no bwrap, no AgentVM) the name still has to
548
+ // work, so `/workspace` is mapped onto the real directory in the command
549
+ // string. Where bwrap is in play the bind has already done it, and rewriting
550
+ // as well would be wrong.
551
+ const effectiveCommand = sandboxWorkspacePath === SANDBOX_WORKSPACE_PATH
552
+ ? command
553
+ : mapWorkspacePaths(command, workspacePath);
491
554
  switch (strategy.wrapperKind) {
492
555
  case 'bwrap':
493
556
  if (strategy.bwrapExecWrapperMode === 'setpriv-no-new-privs') {
494
557
  return {
495
558
  executable: resolveExecutable('setpriv'),
496
- args: ['--no-new-privs', resolveExecutable('bwrap'), ...buildBwrapArgs(command, workspacePath, scratchDir, env, strategy)],
559
+ args: ['--no-new-privs', resolveExecutable('bwrap'), ...buildBwrapArgs(effectiveCommand, workspacePath, scratchDir, env, strategy)],
497
560
  env,
498
561
  strategy,
499
562
  scratchDir,
@@ -501,7 +564,7 @@ function buildHostShellLaunchPlan(strategy, command, workspacePath) {
501
564
  }
502
565
  return {
503
566
  executable: resolveExecutable('bwrap'),
504
- args: buildBwrapArgs(command, workspacePath, scratchDir, env, strategy),
567
+ args: buildBwrapArgs(effectiveCommand, workspacePath, scratchDir, env, strategy),
505
568
  env,
506
569
  strategy,
507
570
  scratchDir,
@@ -509,7 +572,7 @@ function buildHostShellLaunchPlan(strategy, command, workspacePath) {
509
572
  case 'sandbox-exec':
510
573
  return {
511
574
  executable: resolveExecutable('sandbox-exec'),
512
- args: ['-p', buildSandboxExecProfile(workspacePath, scratchDir), '/bin/bash', '--noprofile', '--norc', '-c', command],
575
+ args: ['-p', buildSandboxExecProfile(workspacePath, scratchDir), '/bin/bash', '--noprofile', '--norc', '-c', effectiveCommand],
513
576
  env,
514
577
  strategy,
515
578
  scratchDir,
@@ -518,7 +581,7 @@ function buildHostShellLaunchPlan(strategy, command, workspacePath) {
518
581
  default:
519
582
  return {
520
583
  executable: resolveExecutable('bash'),
521
- args: ['--noprofile', '--norc', '-c', command],
584
+ args: ['--noprofile', '--norc', '-c', effectiveCommand],
522
585
  env,
523
586
  strategy,
524
587
  scratchDir,
@@ -541,7 +604,7 @@ function cleanupScratchDir(scratchDir) {
541
604
  // Best-effort cleanup only.
542
605
  }
543
606
  }
544
- function buildRestrictedEnv(scratchDir, workspacePath) {
607
+ function buildRestrictedEnv(scratchDir, sandboxWorkspacePath) {
545
608
  const pathValue = getDefaultHostPathValue();
546
609
  return {
547
610
  PATH: pathValue,
@@ -552,7 +615,11 @@ function buildRestrictedEnv(scratchDir, workspacePath) {
552
615
  XDG_DATA_HOME: join(scratchDir, '.local', 'share'),
553
616
  LANG: 'C.UTF-8',
554
617
  LC_ALL: 'C.UTF-8',
555
- PWD: workspacePath,
618
+ PWD: sandboxWorkspacePath,
619
+ // Scripts can reach the workspace by name. `$TMPDIR` is the scratch
620
+ // directory, which is disposable in every backend — unlike a hardcoded
621
+ // /tmp, which is the real one when there is no sandbox.
622
+ WORKSPACE: sandboxWorkspacePath,
556
623
  };
557
624
  }
558
625
  function buildHostProbeEnv() {
@@ -592,13 +659,6 @@ function buildBwrapArgs(command, workspacePath, scratchDir, env, strategy) {
592
659
  }
593
660
  args.push('--ro-bind', requiredHostPath, requiredHostPath);
594
661
  }
595
- for (const directoryPath of buildMountParentDirs(workspacePath)) {
596
- if (createdMountDirs.has(directoryPath)) {
597
- continue;
598
- }
599
- args.push('--dir', directoryPath);
600
- createdMountDirs.add(directoryPath);
601
- }
602
662
  for (const directoryPath of buildMountParentDirs(scratchDir)) {
603
663
  if (createdMountDirs.has(directoryPath)) {
604
664
  continue;
@@ -606,10 +666,16 @@ function buildBwrapArgs(command, workspacePath, scratchDir, env, strategy) {
606
666
  args.push('--dir', directoryPath);
607
667
  createdMountDirs.add(directoryPath);
608
668
  }
609
- args.push('--bind', workspacePath, workspacePath);
669
+ // The workspace is presented as /workspace, not at its host path. Every other
670
+ // surface already calls it that — the WASM filesystem mounts it at /workspace
671
+ // (src/prolog/loader.ts), AgentVM mounts it at /workspace — so this is what
672
+ // makes one name true everywhere, and it stops the host path leaking into the
673
+ // sandbox. `--chdir` matches, so a relative path means the same thing too.
674
+ args.push('--dir', '/workspace');
675
+ args.push('--bind', workspacePath, SANDBOX_WORKSPACE_PATH);
610
676
  args.push('--bind', scratchDir, scratchDir);
611
677
  //args.push('--tmpfs', '/tmp');
612
- args.push('--chdir', workspacePath);
678
+ args.push('--chdir', SANDBOX_WORKSPACE_PATH);
613
679
  for (const [key, value] of Object.entries(env)) {
614
680
  if (typeof value === 'string') {
615
681
  args.push('--setenv', key, value);
@@ -1 +1 @@
1
- {"version":3,"file":"shell-manager.js","sourceRoot":"","sources":["../../../src/system/runtime/shell-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell-manager.js","sourceRoot":"","sources":["../../../src/system/runtime/shell-manager.ts"],"names":[],"mappings":"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"}