@archmax-ai/harness 0.3.2 → 0.4.0

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 (112) hide show
  1. package/README.md +3 -1
  2. package/dist/assembly/compose.d.ts +40 -3
  3. package/dist/assembly/compose.js +81 -7
  4. package/dist/assembly/compose.js.map +1 -1
  5. package/dist/assembly/delegation-registry.js +5 -2
  6. package/dist/assembly/delegation-registry.js.map +1 -1
  7. package/dist/assembly/image-reads.d.ts +53 -0
  8. package/dist/assembly/image-reads.js +163 -0
  9. package/dist/assembly/image-reads.js.map +1 -0
  10. package/dist/assembly/index.d.ts +21 -0
  11. package/dist/assembly/index.js +7 -1
  12. package/dist/assembly/index.js.map +1 -1
  13. package/dist/assembly/plain.js +6 -3
  14. package/dist/assembly/plain.js.map +1 -1
  15. package/dist/authoring-skill/archmax-harness/references/backend-integration.md +48 -1
  16. package/dist/authoring-skill/archmax-harness/references/hook-and-test-scripts.md +27 -1
  17. package/dist/authoring-skill/archmax-harness/references/workflow-schema.md +67 -22
  18. package/dist/authoring-skill/archmax-harness/references/workflow-yaml.md +24 -5
  19. package/dist/core/binary-read.d.ts +52 -0
  20. package/dist/core/binary-read.js +129 -0
  21. package/dist/core/binary-read.js.map +1 -0
  22. package/dist/core/file-operations.d.ts +43 -0
  23. package/dist/core/file-operations.js +368 -0
  24. package/dist/core/file-operations.js.map +1 -0
  25. package/dist/core/path-mapping.d.ts +10 -3
  26. package/dist/core/path-mapping.js +27 -0
  27. package/dist/core/path-mapping.js.map +1 -1
  28. package/dist/core/platform-prompt.generated.js +1 -1
  29. package/dist/core/platform-prompt.generated.js.map +1 -1
  30. package/dist/core/prompt.d.ts +27 -0
  31. package/dist/core/prompt.js +65 -5
  32. package/dist/core/prompt.js.map +1 -1
  33. package/dist/core/session-zone.d.ts +3 -0
  34. package/dist/core/session-zone.js +9 -0
  35. package/dist/core/session-zone.js.map +1 -1
  36. package/dist/core/tool-context.d.ts +23 -0
  37. package/dist/core/tool-context.js +14 -0
  38. package/dist/core/tool-context.js.map +1 -0
  39. package/dist/core/tool-telemetry.js +2 -1
  40. package/dist/core/tool-telemetry.js.map +1 -1
  41. package/dist/core/workspace-router.d.ts +11 -1
  42. package/dist/core/workspace-router.js +47 -3
  43. package/dist/core/workspace-router.js.map +1 -1
  44. package/dist/index.d.ts +11 -1
  45. package/dist/index.js +3 -1
  46. package/dist/index.js.map +1 -1
  47. package/dist/kernel/kernel.js +167 -119
  48. package/dist/kernel/kernel.js.map +1 -1
  49. package/dist/machine/allow.d.ts +22 -0
  50. package/dist/machine/allow.js +47 -15
  51. package/dist/machine/allow.js.map +1 -1
  52. package/dist/machine/lint-spec.js +12 -3
  53. package/dist/machine/lint-spec.js.map +1 -1
  54. package/dist/machine/machine.d.ts +10 -1
  55. package/dist/machine/machine.js +36 -8
  56. package/dist/machine/machine.js.map +1 -1
  57. package/dist/machine/spec-schema.js +14 -0
  58. package/dist/machine/spec-schema.js.map +1 -1
  59. package/dist/machine/tool-names.d.ts +27 -7
  60. package/dist/machine/tool-names.js +43 -13
  61. package/dist/machine/tool-names.js.map +1 -1
  62. package/dist/machine/tool-paths.d.ts +51 -0
  63. package/dist/machine/tool-paths.js +127 -0
  64. package/dist/machine/tool-paths.js.map +1 -0
  65. package/dist/public/spec.d.ts +6 -1
  66. package/dist/public/spec.js +5 -1
  67. package/dist/public/spec.js.map +1 -1
  68. package/dist/validate/validate.js +10 -5
  69. package/dist/validate/validate.js.map +1 -1
  70. package/dist/workflow/agent-tools.d.ts +20 -1
  71. package/dist/workflow/agent-tools.js +31 -1
  72. package/dist/workflow/agent-tools.js.map +1 -1
  73. package/dist/workflow/control-tools.d.ts +4 -1
  74. package/dist/workflow/control-tools.js +16 -9
  75. package/dist/workflow/control-tools.js.map +1 -1
  76. package/dist/workflow/governance.d.ts +2 -0
  77. package/dist/workflow/governance.js +1 -0
  78. package/dist/workflow/governance.js.map +1 -1
  79. package/dist/workflow/middleware.d.ts +2 -0
  80. package/dist/workflow/middleware.js +27 -12
  81. package/dist/workflow/middleware.js.map +1 -1
  82. package/dist/workflow/on-error.js +3 -2
  83. package/dist/workflow/on-error.js.map +1 -1
  84. package/dist/workflow/parks.js +5 -5
  85. package/dist/workflow/parks.js.map +1 -1
  86. package/dist/workflow/render-prompt.d.ts +2 -0
  87. package/dist/workflow/render-prompt.js +9 -3
  88. package/dist/workflow/render-prompt.js.map +1 -1
  89. package/dist/workflow/returns-check.d.ts +35 -0
  90. package/dist/workflow/returns-check.js +10 -0
  91. package/dist/workflow/returns-check.js.map +1 -0
  92. package/dist/workflow/signature-checks.d.ts +26 -1
  93. package/dist/workflow/signature-checks.js +35 -10
  94. package/dist/workflow/signature-checks.js.map +1 -1
  95. package/dist/workflow/state.d.ts +75 -1
  96. package/dist/workflow/state.js +83 -0
  97. package/dist/workflow/state.js.map +1 -1
  98. package/dist/workflow/sub-workflow.d.ts +16 -5
  99. package/dist/workflow/sub-workflow.js +84 -37
  100. package/dist/workflow/sub-workflow.js.map +1 -1
  101. package/dist/workflow/tool-service.js +57 -10
  102. package/dist/workflow/tool-service.js.map +1 -1
  103. package/dist/workflow/turn-boundary.d.ts +8 -7
  104. package/dist/workflow/turn-boundary.js +10 -9
  105. package/dist/workflow/turn-boundary.js.map +1 -1
  106. package/dist/workflow/workflow-tools.js +5 -1
  107. package/dist/workflow/workflow-tools.js.map +1 -1
  108. package/package.json +1 -1
  109. package/skills/archmax-harness/references/backend-integration.md +48 -1
  110. package/skills/archmax-harness/references/hook-and-test-scripts.md +27 -1
  111. package/skills/archmax-harness/references/workflow-schema.md +67 -22
  112. package/skills/archmax-harness/references/workflow-yaml.md +24 -5
@@ -1,6 +1,7 @@
1
- import { ADVANCE_TOOL, HARNESS_CONTROL_TOOLS, EVAL_TOOL, RUN_TOOL, SET_VARIABLES_TOOL, UNGRANTABLE_TOOLS, } from "../machine/tool-names.js";
1
+ import { ADVANCE_TOOL, HARNESS_CONTROL_TOOLS, EVAL_TOOL, SET_VARIABLES_TOOL, UNGRANTABLE_TOOLS, } from "../machine/tool-names.js";
2
2
  import { FORBID_ANY_TOOL } from "../machine/spec-schema.js";
3
- import { argsSatisfy, normalizeAllowEntry } from "../machine/allow.js";
3
+ import { argsSatisfy, normalizeAllowEntry, pathGuardMatches, } from "../machine/allow.js";
4
+ import { BUILT_IN_TOOL_PATH_TABLE, declaredPathsOf, MUTATING_ACCESSES, OFFLOAD_ACCESSES, pathValuesOf, SCRATCHPAD_ACCESSES, } from "../machine/tool-paths.js";
4
5
  import { unmetRequirements } from "../workflow/control-tools.js";
5
6
  import { canonicalizeRelPath } from "../core/workspace.js";
6
7
  import { classifyWorkspacePath, mountNameOf, SESSION_INTERNAL_DIRS, SESSION_OFFLOAD_DIRS, SESSION_OPEN_DIR, } from "../core/zones.js";
@@ -27,21 +28,30 @@ const TASK_BLOCK_MESSAGE = `[workflow] BLOCKED: \`task\` is the runtime's own di
27
28
  `a state may call. A rubric grades your work; you do not call it. To delegate work to another ` +
28
29
  `process, use the workflow's declared \`archmax_workflow_<slug>\` tool.`;
29
30
  const ALLOW = { decision: "allow", ruleId: "allow" };
30
- /** File-writing built-in tools whose `file_path` argument the kernel governs. */
31
- const WRITE_TOOLS = new Set(["write_file", "edit_file"]);
32
31
  /**
33
- * File tools whose access to the always-open run areas is permitted in every
34
- * state, independent of the state's `allow` list.
32
+ * The workspace paths a call names, from the tool's declared path arguments
33
+ * (`machine/tool-paths.ts`). Every path rule reads this, so a tool is governed
34
+ * by what it declares — a built-in, a runtime file operation and a host tool
35
+ * alike — and a call naming several paths is refused when any one is.
35
36
  */
36
- const SESSION_OPEN_TOOLS = new Set(["read_file", "write_file", "edit_file", "ls"]);
37
- /** Read-shaped file tools (offload areas are readable but never writable). */
38
- const READ_TOOLS = new Set(["read_file", "ls"]);
39
- /** Every file tool whose path argument the zone rules classify. */
40
- const PATH_TOOLS = new Set(["read_file", "write_file", "edit_file", "ls", "glob", "grep"]);
41
- /** The path argument a file tool carries, whatever it is named. */
42
- function pathArg(args) {
43
- const target = args.file_path ?? args.path;
44
- return typeof target === "string" ? target : null;
37
+ function pathsOf(action, api) {
38
+ return declaredPathsOf(action.tool, toolPathsOf(action.tool, api), action.args);
39
+ }
40
+ /** A tool's declaration: the machine's table, else the built-ins (a rule run without a machine). */
41
+ function toolPathsOf(tool, api) {
42
+ return api.machine ? api.machine.toolPaths(tool) : BUILT_IN_TOOL_PATH_TABLE.get(tool);
43
+ }
44
+ /**
45
+ * How a refusal names the call: `'write_file' on 'x'`, and for a tool declaring
46
+ * several paths, which argument it was — `'copy_file' on 'x' (destination)`.
47
+ */
48
+ function subject(action, path, api) {
49
+ return `'${action.tool}' on ${pathLabel(action, path, api)}`;
50
+ }
51
+ /** One path of a call, named with its argument when the tool declares several. */
52
+ function pathLabel(action, path, api) {
53
+ const several = Object.keys(toolPathsOf(action.tool, api) ?? {}).length > 1;
54
+ return `'${path.path}'${several ? ` (${path.arg})` : ""}`;
45
55
  }
46
56
  /**
47
57
  * Canonicalize a tool `file_path` argument to the single workspace-relative
@@ -180,18 +190,17 @@ const taskBlockRule = (action) => {
180
190
  const readOnlyZoneRule = (action, api) => {
181
191
  if (action.kind !== "tool-call")
182
192
  return null;
183
- const { tool, args } = action;
184
- if (WRITE_TOOLS.has(tool) &&
185
- typeof args.file_path === "string" &&
186
- isReadOnlyZonePath(args.file_path, api.mountPrefixes)) {
187
- const rel = normalizeZonePath(args.file_path);
193
+ for (const path of pathsOf(action, api)) {
194
+ if (!MUTATING_ACCESSES.has(path.access) || !isReadOnlyZonePath(path.path, api.mountPrefixes))
195
+ continue;
196
+ const rel = normalizeZonePath(path.path);
188
197
  // The mount itself, so a nested key is named as authored (`catalogs/eu`)
189
198
  // rather than by the segment it happens to sit under.
190
199
  const mount = mountNameOf(rel, api.mountPrefixes) ?? rel.split("/")[0];
191
200
  return {
192
201
  decision: "block",
193
202
  ruleId: "zone.read-only",
194
- reason: `[workflow] BLOCKED: '${tool}' on '${args.file_path}' targets a read-only ` +
203
+ reason: `[workflow] BLOCKED: ${subject(action, path, api)} targets a read-only ` +
195
204
  `mount ('${mount}'). Authored content is mounted read-only — write your files under ` +
196
205
  `'${SESSION_OPEN_DIR}/…' (persisted per-session in the session store).`,
197
206
  warn: true,
@@ -204,16 +213,16 @@ const readOnlyZoneRule = (action, api) => {
204
213
  * `_specs/`) are not addressable by agent tools at all — not read, not written.
205
214
  * They hold the runtime's own bookkeeping for the run being executed.
206
215
  */
207
- const runtimeInternalRule = (action) => {
208
- if (action.kind !== "tool-call" || !PATH_TOOLS.has(action.tool))
216
+ const runtimeInternalRule = (action, api) => {
217
+ if (action.kind !== "tool-call")
209
218
  return null;
210
- const target = pathArg(action.args);
211
- if (target == null || classifyWorkspacePath(target) !== "run-internal")
219
+ const path = pathsOf(action, api).find((p) => classifyWorkspacePath(p.path) === "run-internal");
220
+ if (!path)
212
221
  return null;
213
222
  return {
214
223
  decision: "block",
215
224
  ruleId: "zone.runtime-internal",
216
- reason: `[workflow] BLOCKED: '${action.tool}' on '${target}' targets a harness-internal run ` +
225
+ reason: `[workflow] BLOCKED: ${subject(action, path, api)} targets a harness-internal run ` +
217
226
  `area (${SESSION_INTERNAL_DIRS.map((d) => `'${d}/'`).join(", ")}). These hold the runtime's ` +
218
227
  `own bookkeeping and are not part of your workspace — use '${SESSION_OPEN_DIR}/…' for ` +
219
228
  `your own files.`,
@@ -225,16 +234,16 @@ const runtimeInternalRule = (action) => {
225
234
  * evicted content there and hands the model the path, so reads are permitted
226
235
  * (see {@link runOpenAccessRule}) but an agent-initiated write is refused.
227
236
  */
228
- const runtimeManagedRule = (action) => {
229
- if (action.kind !== "tool-call" || !WRITE_TOOLS.has(action.tool))
237
+ const runtimeManagedRule = (action, api) => {
238
+ if (action.kind !== "tool-call")
230
239
  return null;
231
- const filePath = action.args.file_path;
232
- if (typeof filePath !== "string" || classifyWorkspacePath(filePath) !== "run-offload")
240
+ const path = pathsOf(action, api).find((p) => MUTATING_ACCESSES.has(p.access) && classifyWorkspacePath(p.path) === "run-offload");
241
+ if (!path)
233
242
  return null;
234
243
  return {
235
244
  decision: "block",
236
245
  ruleId: "zone.runtime-managed",
237
- reason: `[workflow] BLOCKED: '${action.tool}' on '${filePath}' targets a runtime-owned area ` +
246
+ reason: `[workflow] BLOCKED: ${subject(action, path, api)} targets a runtime-owned area ` +
238
247
  `(${SESSION_OFFLOAD_DIRS.map((d) => `'${d}/'`).join(", ")}), where the runtime offloads ` +
239
248
  `oversized context. You may read those files; write your own under '${SESSION_OPEN_DIR}/…'.`,
240
249
  warn: true,
@@ -243,9 +252,9 @@ const runtimeManagedRule = (action) => {
243
252
  /**
244
253
  * Safety rule: a skill bundle the acting state does not enable is unreachable.
245
254
  * The enforcement half of skill governance (declared by `skills.allow` at the
246
- * spec root and on a state): binds every path-classified tool plus
247
- * {@link RUN_TOOL}, so a disabled capability can be neither read, listed,
248
- * searched, written, nor executed.
255
+ * spec root and on a state): binds every declared path of every call, whatever
256
+ * its access, so a disabled capability can be neither read, listed, searched,
257
+ * written, removed, nor executed.
249
258
  *
250
259
  * Non-overridable: evaluated with the safety rules, ahead of `policy`, consumer
251
260
  * rules, and the per-state `allow` default, so no declaration can reach into a
@@ -259,13 +268,18 @@ const skillRule = (action, api) => {
259
268
  const skills = api.skills ?? NO_SKILLS;
260
269
  if (skills.length === 0)
261
270
  return null;
262
- const { tool, args, state } = action;
263
- if (!PATH_TOOLS.has(tool) && tool !== RUN_TOOL)
264
- return null;
265
- const target = pathArg(args);
266
- if (target == null)
267
- return null;
268
- const slug = skillOfPath(target, skills);
271
+ for (const path of pathsOf(action, api)) {
272
+ const verdict = skillVerdict(action, path, api, skills);
273
+ if (verdict)
274
+ return verdict;
275
+ }
276
+ return null;
277
+ };
278
+ /** {@link skillRule} for one of a call's paths. */
279
+ function skillVerdict(action, path, api, skills) {
280
+ const { state } = action;
281
+ const on = subject(action, path, api);
282
+ const slug = skillOfPath(path.path, skills);
269
283
  if (slug == null)
270
284
  return null;
271
285
  const enabled = api.machine.enabledSkills(state, skills.map((skill) => skill.slug));
@@ -281,7 +295,7 @@ const skillRule = (action, api) => {
281
295
  return {
282
296
  decision: "block",
283
297
  ruleId: "skill.forbidden",
284
- reason: `[workflow] BLOCKED: '${tool}' on '${target}' belongs to the skill '${slug}', which ` +
298
+ reason: `[workflow] BLOCKED: ${on} belongs to the skill '${slug}', which ` +
285
299
  `${denial === "workflow" ? "'skills.forbid_always' denies in every state" : `state '${state}' forbids`}. ` +
286
300
  `A denial beats every grant. ${enabledHere}`,
287
301
  warn: true,
@@ -290,19 +304,19 @@ const skillRule = (action, api) => {
290
304
  return {
291
305
  decision: "block",
292
306
  ruleId: "skill.not-allowed",
293
- reason: `[workflow] BLOCKED: '${tool}' on '${target}' belongs to the skill '${slug}', which is ` +
307
+ reason: `[workflow] BLOCKED: ${on} belongs to the skill '${slug}', which is ` +
294
308
  `not enabled in state '${state}'. ` +
295
309
  enabledHere,
296
310
  warn: true,
297
311
  };
298
- };
312
+ }
299
313
  /**
300
314
  * Safety rule: a mount the acting state does not have is unreachable.
301
315
  *
302
316
  * The enforcement half of mount governance (declared by `mounts.allow` at the
303
317
  * spec root and on a state), and the mirror of {@link skillRule}: it binds every
304
- * path-classified tool plus {@link RUN_TOOL}, so a mount the state cannot see
305
- * can be neither read, listed, searched, written, nor executed from.
318
+ * declared path of every call, so a mount the state cannot see can be neither
319
+ * read, listed, searched, written, removed, nor executed from.
306
320
  *
307
321
  * Two kinds of mount, one rule. A **governed** mount (`MountSpec.governed`) is
308
322
  * closed by default: reachable only where `enabledMounts` names it. An
@@ -326,14 +340,19 @@ const skillRule = (action, api) => {
326
340
  const mountRule = (action, api) => {
327
341
  if (action.kind !== "tool-call" || action.origin === "lifecycle")
328
342
  return null;
343
+ for (const path of pathsOf(action, api)) {
344
+ const verdict = mountVerdict(action, path, api);
345
+ if (verdict)
346
+ return verdict;
347
+ }
348
+ return null;
349
+ };
350
+ /** {@link mountRule} for one of a call's paths. */
351
+ function mountVerdict(action, path, api) {
329
352
  const mounts = api.mountPrefixes ?? NO_MOUNTS;
330
- const { tool, args, state } = action;
331
- if (!PATH_TOOLS.has(tool) && tool !== RUN_TOOL)
332
- return null;
333
- const target = pathArg(args);
334
- if (target == null)
335
- return null;
336
- const name = mountNameOf(normalizeZonePath(target), mounts);
353
+ const { state } = action;
354
+ const on = subject(action, path, api);
355
+ const name = mountNameOf(normalizeZonePath(path.path), mounts);
337
356
  if (name == null)
338
357
  return null;
339
358
  const denial = api.machine.mountDenial(state, name);
@@ -345,12 +364,12 @@ const mountRule = (action, api) => {
345
364
  // mount to reads without hiding it. The zone rule has already refused a
346
365
  // write into a mount the host serves read-only, so this only ever fires on
347
366
  // one the host declared writable.
348
- if (!WRITE_TOOLS.has(tool) || api.machine.mountWritable(state, name, mounts))
367
+ if (!MUTATING_ACCESSES.has(path.access) || api.machine.mountWritable(state, name, mounts))
349
368
  return null;
350
369
  return {
351
370
  decision: "block",
352
371
  ruleId: "mount.read-only",
353
- reason: `[workflow] BLOCKED: '${tool}' on '${target}' targets the mount '${name}', which state ` +
372
+ reason: `[workflow] BLOCKED: ${on} targets the mount '${name}', which state ` +
354
373
  `'${state}' may read but not write ('access: read'). Write your files under ` +
355
374
  `'${SESSION_OPEN_DIR}/…' instead.`,
356
375
  warn: true,
@@ -363,7 +382,7 @@ const mountRule = (action, api) => {
363
382
  return {
364
383
  decision: "block",
365
384
  ruleId: "mount.forbidden",
366
- reason: `[workflow] BLOCKED: '${tool}' on '${target}' is under the mount '${name}', which ` +
385
+ reason: `[workflow] BLOCKED: ${on} is under the mount '${name}', which ` +
367
386
  `${denial === "workflow" ? "'mounts.forbid_always' denies in every state" : `state '${state}' forbids`}. ` +
368
387
  `A denial beats every grant. ${enabledHere}`,
369
388
  warn: true,
@@ -372,12 +391,12 @@ const mountRule = (action, api) => {
372
391
  return {
373
392
  decision: "block",
374
393
  ruleId: "mount.not-allowed",
375
- reason: `[workflow] BLOCKED: '${tool}' on '${target}' is under the mount '${name}', which state ` +
394
+ reason: `[workflow] BLOCKED: ${on} is under the mount '${name}', which state ` +
376
395
  `'${state}' does not have. The path exists; this state was not given it. ` +
377
396
  enabledHere,
378
397
  warn: true,
379
398
  };
380
- };
399
+ }
381
400
  /**
382
401
  * An **ancestor's** `mounts.forbid_always`, as rules the descendant inherits.
383
402
  * The mount twin of {@link compileForbiddenSkillRules}: a child machine resolves
@@ -397,19 +416,17 @@ export function compileForbiddenMountRules(names, source) {
397
416
  if (action.kind !== "tool-call")
398
417
  return null;
399
418
  const mounts = api.mountPrefixes ?? NO_MOUNTS;
400
- const { tool, args } = action;
401
- if (!PATH_TOOLS.has(tool) && tool !== RUN_TOOL)
402
- return null;
403
- const target = pathArg(args);
404
- if (target == null)
405
- return null;
406
- const name = mountNameOf(normalizeZonePath(target), mounts);
407
- if (name == null || !denied.has(name))
419
+ let name = null;
420
+ const path = pathsOf(action, api).find((p) => {
421
+ name = mountNameOf(normalizeZonePath(p.path), mounts);
422
+ return name != null && denied.has(name);
423
+ });
424
+ if (!path || name == null)
408
425
  return null;
409
426
  return {
410
427
  decision: "block",
411
428
  ruleId: "mount.forbidden",
412
- reason: `[workflow] BLOCKED: '${tool}' on '${target}' is under the mount '${name}', which ` +
429
+ reason: `[workflow] BLOCKED: ${subject(action, path, api)} is under the mount '${name}', which ` +
413
430
  `workflow '${source}' denies in every state it delegates to ` +
414
431
  `(mounts.forbid_always). A denial beats every grant.`,
415
432
  warn: true,
@@ -434,19 +451,17 @@ export function compileForbiddenSkillRules(slugs, source) {
434
451
  const skills = api.skills ?? NO_SKILLS;
435
452
  if (skills.length === 0)
436
453
  return null;
437
- const { tool, args } = action;
438
- if (!PATH_TOOLS.has(tool) && tool !== RUN_TOOL)
439
- return null;
440
- const target = pathArg(args);
441
- if (target == null)
442
- return null;
443
- const slug = skillOfPath(target, skills);
444
- if (slug == null || !denied.has(slug))
454
+ let slug = null;
455
+ const path = pathsOf(action, api).find((p) => {
456
+ slug = skillOfPath(p.path, skills);
457
+ return slug != null && denied.has(slug);
458
+ });
459
+ if (!path || slug == null)
445
460
  return null;
446
461
  return {
447
462
  decision: "block",
448
463
  ruleId: "skill.forbidden",
449
- reason: `[workflow] BLOCKED: '${tool}' on '${target}' belongs to the skill '${slug}', which ` +
464
+ reason: `[workflow] BLOCKED: ${subject(action, path, api)} belongs to the skill '${slug}', which ` +
450
465
  `workflow '${source}' denies in every state it delegates to ` +
451
466
  `(skills.forbid_always). A denial beats every grant.`,
452
467
  warn: true,
@@ -462,20 +477,27 @@ export function compileForbiddenSkillRules(slugs, source) {
462
477
  * still block it), just ahead of the per-state defaults — so it loosens only
463
478
  * the state `allow` list, never the governed run paths outside it.
464
479
  */
465
- const runOpenAccessRule = (action) => {
480
+ const runOpenAccessRule = (action, api) => {
466
481
  if (action.kind !== "tool-call")
467
482
  return null;
468
- const target = pathArg(action.args);
469
- if (target == null)
483
+ const paths = pathsOf(action, api);
484
+ if (paths.length === 0)
470
485
  return null;
471
- const zone = classifyWorkspacePath(target);
472
- if (zone === "run-open" && SESSION_OPEN_TOOLS.has(action.tool)) {
473
- return { decision: "allow", ruleId: "tool.scratchpad" };
474
- }
475
- if (zone === "run-offload" && READ_TOOLS.has(action.tool)) {
476
- return { decision: "allow", ruleId: "tool.offload-read" };
477
- }
478
- return null;
486
+ // Open only when every path the call names is: a copy from a mount into the
487
+ // scratchpad is still decided by the state's grant for the tool.
488
+ const zones = paths.map((p) => {
489
+ const zone = classifyWorkspacePath(p.path);
490
+ if (zone === "run-open" && SCRATCHPAD_ACCESSES.has(p.access))
491
+ return "open";
492
+ if (zone === "run-offload" && OFFLOAD_ACCESSES.has(p.access))
493
+ return "offload";
494
+ return null;
495
+ });
496
+ if (zones.some((zone) => zone === null))
497
+ return null;
498
+ return zones.every((zone) => zone === "offload")
499
+ ? { decision: "allow", ruleId: "tool.offload-read" }
500
+ : { decision: "allow", ruleId: "tool.scratchpad" };
479
501
  };
480
502
  /**
481
503
  * Default rule: the active state's `tools` governance (allow-list matching
@@ -531,18 +553,16 @@ function unresolvedGuardVerdict(state, tool, failure) {
531
553
  * widen it; a state's entry may still *narrow* execution within the bundles.
532
554
  */
533
555
  const scriptSkillOnlyRule = (action, api) => {
534
- if (action.kind !== "tool-call" || action.tool !== RUN_TOOL)
535
- return null;
536
- const target = pathArg(action.args);
537
- if (target == null)
556
+ if (action.kind !== "tool-call")
538
557
  return null;
539
- if (skillOfPath(target, api.skills ?? NO_SKILLS) != null)
558
+ const path = pathsOf(action, api).find((p) => p.access === "execute" && skillOfPath(p.path, api.skills ?? NO_SKILLS) == null);
559
+ if (!path)
540
560
  return null;
541
561
  return {
542
562
  decision: "block",
543
563
  ruleId: "script.skill-only",
544
- reason: `[workflow] BLOCKED: '${RUN_TOOL}' may only execute scripts that live in a skill bundle, ` +
545
- `and '${target}' is not in one. Scripts the agent runs belong in ` +
564
+ reason: `[workflow] BLOCKED: '${action.tool}' may only execute scripts that live in a skill bundle, ` +
565
+ `and '${path.path}' is not in one. Scripts the agent runs belong in ` +
546
566
  `'skills/<capability>/scripts/'; lifecycle hook scripts live on the authoring plane and are ` +
547
567
  `run by the harness, never by the agent.`,
548
568
  warn: true,
@@ -556,19 +576,23 @@ const scriptSkillOnlyRule = (action, api) => {
556
576
  * every state whatever it allows — the plane's isolation is structural, not
557
577
  * granted.
558
578
  */
559
- const governancePlaneRule = (action) => {
579
+ const governancePlaneRule = (action, api) => {
560
580
  if (action.kind !== "tool-call")
561
581
  return null;
562
582
  if (action.origin !== "script" && action.origin !== "lifecycle")
563
583
  return null;
564
- const target = pathArg(action.args);
565
- if (target == null)
566
- return null;
567
- const { path: rel, escapes } = canonicalizeRelPath(target);
568
- if (escapes)
569
- return null;
570
- const prefix = authoringPlanePrefix(rel);
571
- if (!prefix)
584
+ // A tool that declares no paths is still read by its conventional path
585
+ // argument here: the plane's isolation does not wait on a declaration.
586
+ const declared = pathsOf(action, api).map((p) => p.path);
587
+ const fallback = action.args.file_path ?? action.args.path;
588
+ const targets = declared.length > 0 ? declared : typeof fallback === "string" ? [fallback] : [];
589
+ let prefix = null;
590
+ const target = targets.find((candidate) => {
591
+ const { path: rel, escapes } = canonicalizeRelPath(candidate);
592
+ prefix = escapes ? null : authoringPlanePrefix(rel);
593
+ return prefix != null;
594
+ });
595
+ if (target == null || prefix == null)
572
596
  return null;
573
597
  return {
574
598
  decision: "block",
@@ -623,23 +647,24 @@ export function compileForbidRules(entries, options) {
623
647
  const from = source ? ` inherited from workflow '${source}'` : "";
624
648
  const rules = [];
625
649
  for (const entry of entries) {
626
- const { tool, argMatchers } = normalizeAllowEntry(entry);
650
+ const normalized = normalizeAllowEntry(entry);
651
+ const { tool, argMatchers } = normalized;
627
652
  if (!tool)
628
653
  continue; // reported by the schema
629
654
  const anyTool = tool === FORBID_ANY_TOOL;
630
655
  const key = scope === "workflow" ? "tools.forbid_always" : `states.${state}.tools.forbid`;
631
656
  const where = scope === "workflow" ? `the workflow${from}` : `state '${state}'`;
632
- rules.push((action, { variables }) => {
657
+ rules.push((action, api) => {
633
658
  if (action.kind !== "tool-call")
634
659
  return null;
635
660
  if (!anyTool && action.tool !== tool)
636
661
  return null;
637
662
  if (scope === "state" && action.state !== state)
638
663
  return null;
639
- const guards = argMatchers ? describeGuards(argMatchers) : null;
640
- if (argMatchers && !matchesEveryGuard(action.args, argMatchers, variables ?? {}))
664
+ const guards = argMatchers ? describeGuards(normalized) : null;
665
+ if (argMatchers && !denialMatches(normalized, action, api))
641
666
  return null;
642
- const target = typeof action.args.file_path === "string" ? ` on '${action.args.file_path}'` : "";
667
+ const target = describeTargets(action, api);
643
668
  return {
644
669
  decision: "block",
645
670
  ruleId: scope === "workflow" ? "tool.forbidden" : "tool.forbidden-here",
@@ -653,28 +678,51 @@ export function compileForbidRules(entries, options) {
653
678
  return rules;
654
679
  }
655
680
  /**
656
- * Whether every one of an entry's argument guards matches the call's arguments.
681
+ * Whether a denial's guards match the call.
657
682
  *
658
- * Resolution is the allow side's own (`argsSatisfy`), so a guard binds the same
659
- * calls whichever list it is written in: `${{…}}` resolves against the run's
660
- * variables and a dotted name traverses nested arguments. A denial that
661
- * understood fewer guard forms than the grant beside it would silently match
662
- * nothing, which is the shape of issue #156.
683
+ * Resolution is the allow side's own, so a guard binds the same calls whichever
684
+ * list it is written in: `${{…}}` resolves against the run's variables and a
685
+ * dotted name traverses nested arguments. A denial that understood fewer guard
686
+ * forms than the grant beside it would silently match nothing, which is the
687
+ * shape of issue #156. A `paths:` guard matches when **any** path the call names
688
+ * does (the grant side needs every one).
663
689
  *
664
690
  * The one asymmetry is deliberate. An allow entry whose reference cannot be
665
691
  * resolved grants nothing; a forbid entry in the same position must **match**,
666
692
  * so an unresolvable guard closes the call rather than opening it.
667
693
  */
668
- function matchesEveryGuard(args, argMatchers, variables) {
694
+ function denialMatches(entry, action, api) {
695
+ const variables = api.variables ?? {};
696
+ if (entry.fromPaths) {
697
+ const values = pathValuesOf(action.tool, toolPathsOf(action.tool, api), action.args);
698
+ return pathGuardMatches(entry, values, "any", variables) ?? true;
699
+ }
669
700
  let unresolved = false;
670
- const satisfied = argsSatisfy(argMatchers, args, variables, () => {
701
+ const satisfied = argsSatisfy(entry.argMatchers, action.args, variables, () => {
671
702
  unresolved = true;
672
703
  });
673
704
  return satisfied || unresolved;
674
705
  }
675
- /** An entry's guards, for the refusal reason: `file_path=logs/**`. */
676
- function describeGuards(argMatchers) {
677
- return Object.entries(argMatchers)
706
+ /**
707
+ * The paths a denied call named, for the refusal reason: ` on 'x'`, or for a
708
+ * tool declaring several, ` on 'a' (source), 'b' (destination)`. A tool that
709
+ * declares none is named by its `file_path`, as before the path table.
710
+ */
711
+ function describeTargets(action, api) {
712
+ const paths = pathsOf(action, api);
713
+ if (paths.length === 0) {
714
+ return typeof action.args.file_path === "string" ? ` on '${action.args.file_path}'` : "";
715
+ }
716
+ return ` on ${paths.map((p) => pathLabel(action, p, api)).join(", ")}`;
717
+ }
718
+ /**
719
+ * An entry's guards, for the refusal reason: `file_path=logs/**`, or for the
720
+ * `paths:` shorthand — which guards every path argument — `paths=logs/**`.
721
+ */
722
+ function describeGuards(entry) {
723
+ if (entry.fromPaths)
724
+ return `paths=${(entry.argMatchers?.file_path ?? []).join("|")}`;
725
+ return Object.entries(entry.argMatchers ?? {})
678
726
  .map(([name, globs]) => `${name}=${globs.join("|")}`)
679
727
  .join(", ");
680
728
  }
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../src/kernel/kernel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../src/kernel/kernel.ts"],"names":[],"mappings":"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"}