@archmax-ai/harness 0.3.1 → 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 +71 -25
  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 +24 -15
  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 +71 -25
  112. package/skills/archmax-harness/references/workflow-yaml.md +24 -5
package/README.md CHANGED
@@ -122,7 +122,9 @@ states:
122
122
  ```
123
123
 
124
124
  A start whose `due` is not a real `YYYY-MM-DD` day is refused before any model call, and a session
125
- that finishes with `total` unset or not a number is rejected. `signatureJsonSchema` on
125
+ that finishes with `total` not a number is rejected. One that finishes with `total` unset is
126
+ rejected too, unless it runs as a sub-workflow: then its caller gets the returns it did set, plus a
127
+ `note` naming the rest. `signatureJsonSchema` on
126
128
  `@archmax-ai/harness/spec` turns the same signature into a JSON Schema. See
127
129
  [triggers](https://harness.archmax.ai/guides/triggers/#typing-a-signature).
128
130
 
@@ -23,6 +23,7 @@ import type { Workspace } from "../core/workspace.js";
23
23
  import type { MountPrefixes } from "../core/zones.js";
24
24
  import { type GovernanceRule } from "../kernel/kernel.js";
25
25
  import { type WorkflowMachine } from "../machine/machine.js";
26
+ import type { ToolPathTable } from "../machine/tool-paths.js";
26
27
  import { type TriggerInput } from "../machine/triggers.js";
27
28
  import type { ResolvedRuntimeContract } from "../runtime/contract.js";
28
29
  import type { LoadedRubric, Rubric } from "../rubrics/rubrics.js";
@@ -78,6 +79,11 @@ export interface AssemblyContext {
78
79
  runtimeContract: ResolvedRuntimeContract;
79
80
  /** Token prices, from the host option or the environment; absent means cost is never reported. */
80
81
  pricing?: PricingTable;
82
+ /**
83
+ * Every tool's declared path arguments — the built-ins plus the host's — which
84
+ * every machine of this assembly, root and delegated alike, governs by.
85
+ */
86
+ toolPaths: ToolPathTable;
81
87
  }
82
88
  /** What one governed composition is made for. */
83
89
  export interface ComposeInput {
@@ -99,6 +105,12 @@ export interface ComposeInput {
99
105
  inheritedPolicyRules?: GovernanceRule[];
100
106
  /** Child compositions, resolved lazily by slug. */
101
107
  registry: SubWorkflowRegistry;
108
+ /**
109
+ * This composition runs a sub-workflow's child sessions, which do not name
110
+ * themselves: `archmax_set_variables` asks for no title (the system prompt,
111
+ * rendered with `child`, leaves the step out too).
112
+ */
113
+ child?: boolean;
102
114
  }
103
115
  /** One composed governed agent. */
104
116
  export interface Composed {
@@ -129,6 +141,29 @@ export declare function frameworkPassthrough(params: CreateAgentParams): Pick<Cr
129
141
  * `[static, volatile]` blocks.
130
142
  */
131
143
  export declare function todoMiddleware(): AgentMiddleware;
144
+ /**
145
+ * Hand the model a `read_file` whose description matches the workspace's
146
+ * text-only reads (`core/binary-read.ts`): Deep Agents' own promises multimodal
147
+ * content blocks for images, audio, video and PDFs, which the workspace router
148
+ * refuses. `createDeepAgent` does not expose the filesystem middleware's
149
+ * description overrides, and LangChain rejects a `wrapModelCall` that swaps a
150
+ * registered tool for another instance (the tool node runs tools by identity),
151
+ * so the description is rewritten on the registered instance itself, once, on
152
+ * the first model call that offers it. The instance is this agent's own: Deep
153
+ * Agents builds the filesystem tools per agent. When the upstream lines are
154
+ * gone the description is left as it is and one `warning` says so.
155
+ *
156
+ * Both compositions install it, ahead of the provider cache and the host's
157
+ * middleware, so the first call they see already carries the final definition.
158
+ */
159
+ export declare function readFileContractMiddleware(emit: WorkflowEventEmitter, options?: {
160
+ images?: boolean;
161
+ }): AgentMiddleware;
162
+ /**
163
+ * The `read_file` contract and, when the host turned it on, the image reads —
164
+ * one pair both compositions install at the same depth.
165
+ */
166
+ export declare function fileReadMiddleware(ctx: AssemblyContext): AgentMiddleware[];
132
167
  /**
133
168
  * The subagent parameters both compositions hand the framework: the workflow's
134
169
  * grading rubrics, registered so the framework provides the `task` tool the
@@ -146,8 +181,8 @@ export declare function rubricParams(ctx: AssemblyContext): {
146
181
  };
147
182
  /**
148
183
  * Bind `fn` to a session: the session zone's view (agent-visible paths resolve
149
- * against that session without its id embedded) plus the event envelope's
150
- * session context. The single ingress where a session id becomes a store
184
+ * against that session without its id embedded), the event envelope's session
185
+ * context, and the tool context host tools are handed. The single ingress where a session id becomes a store
151
186
  * address, so it refuses an id that would escape the session zone or shadow a
152
187
  * reserved root name.
153
188
  */
@@ -159,10 +194,12 @@ export declare function sessionBinder(ctx: AssemblyContext): <T>(sessionId: stri
159
194
  * the workspace zones by `resolveSystemPrompt`. The graph itself is not here: it
160
195
  * is disclosed per model call, for the active state only, by the middleware. A
161
196
  * plain agent (no machine) gets no platform prompt: it explains a graph there is
162
- * none of.
197
+ * none of. A child session's platform layer leaves out the top-level-only
198
+ * passages (`child`), so it is not asked to name itself.
163
199
  */
164
200
  export declare function renderSystemPrompt(ctx: AssemblyContext, machine: WorkflowMachine | null, body: string, options: {
165
201
  workflow: string;
202
+ child?: boolean;
166
203
  }): Promise<string>;
167
204
  /** Compose one governed agent for `input.machine`. */
168
205
  export declare function composeGoverned(ctx: AssemblyContext, input: ComposeInput): Promise<Composed>;
@@ -1,8 +1,12 @@
1
1
  import { mergeConfigs } from "@langchain/core/runnables";
2
- import { todoListMiddleware } from "langchain";
2
+ import { createMiddleware, todoListMiddleware } from "langchain";
3
3
  import { createDeepAgent } from "deepagents";
4
4
  import { AGENT_DEFAULT_CONFIG } from "../agent.js";
5
- import { asCompiledAgentGraph, asDecisionGraph, } from "../core/deepagents.js";
5
+ import { READ_FILE_IMAGES_LINE, READ_FILE_TEXT_ONLY_LINE, textOnlyReadFileDescription, } from "../core/binary-read.js";
6
+ import { createFileOperationTools } from "../core/file-operations.js";
7
+ import { runWithToolContext } from "../core/tool-context.js";
8
+ import { imageReadMiddleware, resolveImageReads } from "./image-reads.js";
9
+ import { asCompiledAgentGraph, asDecisionGraph, asModelCallResult, asStructuredTools, } from "../core/deepagents.js";
6
10
  import { withEventContext } from "../core/events.js";
7
11
  import { resolveSystemPrompt } from "../core/prompt.js";
8
12
  import { SessionStoreIdError, sessionIdRejection } from "../core/session-store.js";
@@ -50,6 +54,62 @@ export function frameworkPassthrough(params) {
50
54
  export function todoMiddleware() {
51
55
  return todoListMiddleware();
52
56
  }
57
+ /**
58
+ * Hand the model a `read_file` whose description matches the workspace's
59
+ * text-only reads (`core/binary-read.ts`): Deep Agents' own promises multimodal
60
+ * content blocks for images, audio, video and PDFs, which the workspace router
61
+ * refuses. `createDeepAgent` does not expose the filesystem middleware's
62
+ * description overrides, and LangChain rejects a `wrapModelCall` that swaps a
63
+ * registered tool for another instance (the tool node runs tools by identity),
64
+ * so the description is rewritten on the registered instance itself, once, on
65
+ * the first model call that offers it. The instance is this agent's own: Deep
66
+ * Agents builds the filesystem tools per agent. When the upstream lines are
67
+ * gone the description is left as it is and one `warning` says so.
68
+ *
69
+ * Both compositions install it, ahead of the provider cache and the host's
70
+ * middleware, so the first call they see already carries the final definition.
71
+ */
72
+ export function readFileContractMiddleware(emit, options = {}) {
73
+ const line = options.images ? READ_FILE_IMAGES_LINE : READ_FILE_TEXT_ONLY_LINE;
74
+ const settled = new WeakSet();
75
+ const settle = (tool) => {
76
+ if (settled.has(tool))
77
+ return;
78
+ settled.add(tool);
79
+ const description = textOnlyReadFileDescription(tool.description, line);
80
+ if (description !== null) {
81
+ tool.description = description;
82
+ return;
83
+ }
84
+ emit({
85
+ type: "warning",
86
+ scope: "workflow",
87
+ message: "could not replace the binary-file lines of Deep Agents' read_file description; it still " +
88
+ "promises multimodal content blocks although reads are text only — the upstream text may " +
89
+ "have been reworded",
90
+ });
91
+ };
92
+ return createMiddleware({
93
+ name: "ReadFileContract",
94
+ wrapModelCall: async (request, handler) => {
95
+ for (const tool of asStructuredTools(request.tools))
96
+ if (tool.name === "read_file")
97
+ settle(tool);
98
+ return asModelCallResult(await handler(request), "the read_file contract");
99
+ },
100
+ });
101
+ }
102
+ /**
103
+ * The `read_file` contract and, when the host turned it on, the image reads —
104
+ * one pair both compositions install at the same depth.
105
+ */
106
+ export function fileReadMiddleware(ctx) {
107
+ const images = resolveImageReads(ctx.params.images);
108
+ return [
109
+ readFileContractMiddleware(ctx.emit, { images: images !== null }),
110
+ ...(images ? [imageReadMiddleware(ctx.backend, images)] : []),
111
+ ];
112
+ }
53
113
  /**
54
114
  * The subagent parameters both compositions hand the framework: the workflow's
55
115
  * grading rubrics, registered so the framework provides the `task` tool the
@@ -66,8 +126,8 @@ export function rubricParams(ctx) {
66
126
  }
67
127
  /**
68
128
  * Bind `fn` to a session: the session zone's view (agent-visible paths resolve
69
- * against that session without its id embedded) plus the event envelope's
70
- * session context. The single ingress where a session id becomes a store
129
+ * against that session without its id embedded), the event envelope's session
130
+ * context, and the tool context host tools are handed. The single ingress where a session id becomes a store
71
131
  * address, so it refuses an id that would escape the session zone or shadow a
72
132
  * reserved root name.
73
133
  */
@@ -76,7 +136,9 @@ export function sessionBinder(ctx) {
76
136
  const rejection = sessionIdRejection(sessionId, ctx.mountPrefixes);
77
137
  if (rejection)
78
138
  throw new SessionStoreIdError(sessionId, rejection);
79
- return withEventContext({ sessionId }, () => ctx.sessionZone.sessionScoped(sessionId, fn));
139
+ // A host tool's handler gets the same workspace the built-in file tools
140
+ // resolve through, bound to this session for the turn.
141
+ return withEventContext({ sessionId }, () => ctx.sessionZone.sessionScoped(sessionId, () => runWithToolContext({ workspace: ctx.backend }, fn)));
80
142
  };
81
143
  }
82
144
  /**
@@ -86,7 +148,8 @@ export function sessionBinder(ctx) {
86
148
  * the workspace zones by `resolveSystemPrompt`. The graph itself is not here: it
87
149
  * is disclosed per model call, for the active state only, by the middleware. A
88
150
  * plain agent (no machine) gets no platform prompt: it explains a graph there is
89
- * none of.
151
+ * none of. A child session's platform layer leaves out the top-level-only
152
+ * passages (`child`), so it is not asked to name itself.
90
153
  */
91
154
  export function renderSystemPrompt(ctx, machine, body, options) {
92
155
  const prose = stripHtmlComments(body).trim();
@@ -95,6 +158,7 @@ export function renderSystemPrompt(ctx, machine, body, options) {
95
158
  : prose || null;
96
159
  return resolveSystemPrompt(ctx.workspace, {
97
160
  platformBackendPath: machine ? workflowPaths(options.workflow).platformPrompt : null,
161
+ ...(options.child ? { child: true } : {}),
98
162
  workflowPrompt,
99
163
  mountPrefixes: ctx.mountPrefixes,
100
164
  extra: ctx.params.systemPrompt,
@@ -295,6 +359,7 @@ export async function composeGoverned(ctx, input) {
295
359
  trigger: { id: defaultTrigger.id },
296
360
  seededVariables,
297
361
  ...(ctx.pricing ? { pricing: ctx.pricing } : {}),
362
+ ...(input.child ? { child: true } : {}),
298
363
  });
299
364
  // Native Anthropic/Bedrock caching is LangChain's own middleware; the
300
365
  // OpenAI-compatible Claude path is marked by the workflow instrumentation.
@@ -307,6 +372,8 @@ export async function composeGoverned(ctx, input) {
307
372
  todoMiddleware(),
308
373
  interpreter.middleware,
309
374
  instrumentation.middleware,
375
+ // Inside the workflow's own, so a governed read is decided before either acts.
376
+ ...fileReadMiddleware(ctx),
310
377
  ...(providerCacheMiddleware ? [providerCacheMiddleware] : []),
311
378
  ...(params.middleware ?? []),
312
379
  ];
@@ -335,7 +402,14 @@ export async function composeGoverned(ctx, input) {
335
402
  backend: ctx.backend,
336
403
  // Deliberately no `skills`: upstream's section cannot vary per state; the
337
404
  // workflow middleware renders the active state's set instead.
338
- tools: [...interpreter.tools, ...instrumentation.tools, ...delegationTools, ...(params.tools ?? [])],
405
+ tools: [
406
+ ...interpreter.tools,
407
+ ...instrumentation.tools,
408
+ // The runtime's own file operations, beside the tools Deep Agents registers.
409
+ ...createFileOperationTools(ctx),
410
+ ...delegationTools,
411
+ ...(params.tools ?? []),
412
+ ],
339
413
  ...rubricParams(ctx),
340
414
  middleware: agentMiddleware,
341
415
  // the harness's prompt is the whole prefix; the upstream base prompt contradicts
@@ -1 +1 @@
1
- {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/assembly/compose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/assembly/compose.ts"],"names":[],"mappings":"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"}
@@ -49,7 +49,7 @@ export function createDelegationRegistry(ctx, root) {
49
49
  // Rubrics are deliberately *not* inherited: a child is graded by the
50
50
  // standards its own spec declares, so its registry comes from `loaded.spec`
51
51
  // when the child runtime is composed, never from the caller's.
52
- const machine = WorkflowMachine.fromSpec(loaded.spec, ctx.params.essentialTools);
52
+ const machine = WorkflowMachine.fromSpec(loaded.spec, ctx.params.essentialTools, ctx.toolPaths);
53
53
  // A caller enters where a host would: the `manual` entry. A machine with
54
54
  // none cannot be started at all (fail-closed, as at the host ingress).
55
55
  if (!machine.startStateForTrigger(MANUAL_TRIGGER)) {
@@ -61,7 +61,9 @@ export function createDelegationRegistry(ctx, root) {
61
61
  }
62
62
  async function compose(target, caller) {
63
63
  const { body, machine } = await load(target);
64
- const systemPrompt = await renderSystemPrompt(ctx, machine, body, { workflow: target });
64
+ // A child does not name itself: its title would describe a session nothing
65
+ // lists, and asking for one costs every dispatch a model call.
66
+ const systemPrompt = await renderSystemPrompt(ctx, machine, body, { workflow: target, child: true });
65
67
  // The child's graders are its own: a rubric declared in one `workflow.yaml`
66
68
  // is not resolvable from another, so a sub-run is held to the standards its
67
69
  // own machine declares — and its `task` tool is registered with those.
@@ -82,6 +84,7 @@ export function createDelegationRegistry(ctx, root) {
82
84
  // direct child of the root) inherits the root's alone.
83
85
  inheritedPolicyRules: caller?.inheritedPolicyRules ?? inheritedDenials(ctx, root),
84
86
  registry,
87
+ child: true,
85
88
  });
86
89
  // A child is driven exactly as the top-level agent drives itself: through
87
90
  // its turn runner, which binds the child's own session and streams its text.
@@ -1 +1 @@
1
- {"version":3,"file":"delegation-registry.js","sourceRoot":"","sources":["../../src/assembly/delegation-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delegation-registry.js","sourceRoot":"","sources":["../../src/assembly/delegation-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Showing the model the images it reads (`createAgent({ images })`).
3
+ *
4
+ * Reads are text only (`core/binary-read.ts`): Deep Agents' `read_file` would
5
+ * hand an image back as a multimodal block inside the `tool` message, which a
6
+ * chat-completions endpoint refuses there, and the bytes would ride in every
7
+ * checkpoint, event preview and script result. With this middleware the model
8
+ * still sees the image, where chat completions accepts one:
9
+ *
10
+ * - The model's `read_file` of a PNG, JPEG, GIF or WebP answers with one line —
11
+ * `Image '<path>' (<type>, <size>) is shown below.` — and marks its tool
12
+ * message with the path (an `artifact`, never sent to the model). Governance
13
+ * has already decided the call: this middleware sits inside the workflow's.
14
+ * - Before every model call the image is read from the workspace and added to
15
+ * the **request** as a `user` message right after that batch of tool results.
16
+ * The request is all it changes, so the bytes never enter the message
17
+ * history, a checkpoint, an event or a script's `tools.readFile` (which keeps
18
+ * the binary notice).
19
+ *
20
+ * Earlier images stay attached on later calls, the most recent `keep` of them;
21
+ * an older one, and one deleted since, is named in text instead, and the call
22
+ * goes ahead.
23
+ */
24
+ import { type BaseMessage } from "@langchain/core/messages";
25
+ import type { BackendProtocolV2 } from "deepagents";
26
+ import { type AgentMiddleware } from "langchain";
27
+ /** The `images` option of `createAgent`. */
28
+ export interface ImageReadOptions {
29
+ /** The largest image sent to the model, in bytes. Default 10 MB, as Deep Agents' `read_file`. */
30
+ maxBytes?: number;
31
+ /**
32
+ * How many of the images read in the session stay attached on a later model
33
+ * call, the most recent first. Default: every one. An older image is named in
34
+ * text, so the model can read it again.
35
+ */
36
+ keep?: number;
37
+ }
38
+ export declare const DEFAULT_IMAGE_MAX_BYTES: number;
39
+ /** What a tool message records about the image it showed: never the bytes. */
40
+ interface ImageMark {
41
+ path: string;
42
+ mimeType: string;
43
+ }
44
+ /** The image a tool message showed, or `undefined`. */
45
+ export declare function imageMarkOf(message: BaseMessage): ImageMark | undefined;
46
+ /** Resolve the option: `true` for the defaults, `false`/absent for off. */
47
+ export declare function resolveImageReads(option: boolean | ImageReadOptions | undefined): Required<ImageReadOptions> | null;
48
+ /**
49
+ * The middleware. Installed after the workflow's own (so a governed call has
50
+ * already been decided) and before the provider cache and the host's.
51
+ */
52
+ export declare function imageReadMiddleware(backend: BackendProtocolV2, options: Required<ImageReadOptions>): AgentMiddleware;
53
+ export {};
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Showing the model the images it reads (`createAgent({ images })`).
3
+ *
4
+ * Reads are text only (`core/binary-read.ts`): Deep Agents' `read_file` would
5
+ * hand an image back as a multimodal block inside the `tool` message, which a
6
+ * chat-completions endpoint refuses there, and the bytes would ride in every
7
+ * checkpoint, event preview and script result. With this middleware the model
8
+ * still sees the image, where chat completions accepts one:
9
+ *
10
+ * - The model's `read_file` of a PNG, JPEG, GIF or WebP answers with one line —
11
+ * `Image '<path>' (<type>, <size>) is shown below.` — and marks its tool
12
+ * message with the path (an `artifact`, never sent to the model). Governance
13
+ * has already decided the call: this middleware sits inside the workflow's.
14
+ * - Before every model call the image is read from the workspace and added to
15
+ * the **request** as a `user` message right after that batch of tool results.
16
+ * The request is all it changes, so the bytes never enter the message
17
+ * history, a checkpoint, an event or a script's `tools.readFile` (which keeps
18
+ * the binary notice).
19
+ *
20
+ * Earlier images stay attached on later calls, the most recent `keep` of them;
21
+ * an older one, and one deleted since, is named in text instead, and the call
22
+ * goes ahead.
23
+ */
24
+ import { HumanMessage, ToolMessage } from "@langchain/core/messages";
25
+ import { createMiddleware } from "langchain";
26
+ import { formatSize, shownImageMimeTypeOf } from "../core/binary-read.js";
27
+ import { asModelCallResult, } from "../core/deepagents.js";
28
+ import { canonicalizeRelPath } from "../core/workspace.js";
29
+ export const DEFAULT_IMAGE_MAX_BYTES = 10 * 1024 * 1024;
30
+ /** The `artifact` key a shown image's tool message carries. */
31
+ const IMAGE_MARK = "archmax.image";
32
+ /** The image a tool message showed, or `undefined`. */
33
+ export function imageMarkOf(message) {
34
+ if (!ToolMessage.isInstance(message))
35
+ return undefined;
36
+ const mark = message.artifact?.[IMAGE_MARK];
37
+ if (!mark || typeof mark !== "object")
38
+ return undefined;
39
+ const { path, mimeType } = mark;
40
+ return typeof path === "string" && typeof mimeType === "string" ? { path, mimeType } : undefined;
41
+ }
42
+ /** Resolve the option: `true` for the defaults, `false`/absent for off. */
43
+ export function resolveImageReads(option) {
44
+ if (!option)
45
+ return null;
46
+ const given = option === true ? {} : option;
47
+ return {
48
+ maxBytes: given.maxBytes ?? DEFAULT_IMAGE_MAX_BYTES,
49
+ keep: given.keep ?? Number.POSITIVE_INFINITY,
50
+ };
51
+ }
52
+ /** An image's bytes, read through the workspace's own refusals (`readRaw`), or why not. */
53
+ async function readImage(backend, path) {
54
+ try {
55
+ const res = await backend.readRaw(`/${path}`);
56
+ if (res.error || !res.data)
57
+ return { error: "it does not exist" };
58
+ const { content } = res.data;
59
+ if (ArrayBuffer.isView(content)) {
60
+ return { bytes: new Uint8Array(content.buffer, content.byteOffset, content.byteLength) };
61
+ }
62
+ return { error: "the store does not hold it as an image" };
63
+ }
64
+ catch {
65
+ return { error: "it could not be read" };
66
+ }
67
+ }
68
+ /** The request's messages with each batch's images added after it, or the same array when none. */
69
+ async function withImages(backend, messages, options) {
70
+ const marks = messages.map(imageMarkOf);
71
+ const total = marks.filter(Boolean).length;
72
+ if (total === 0)
73
+ return messages;
74
+ const firstAttached = Math.max(0, total - options.keep);
75
+ const out = [];
76
+ let ordinal = 0;
77
+ let batch = [];
78
+ for (const [i, message] of messages.entries()) {
79
+ out.push(message);
80
+ const mark = marks[i];
81
+ if (mark)
82
+ batch.push({ mark, attach: ordinal++ >= firstAttached });
83
+ const batchEnds = ToolMessage.isInstance(message) && !ToolMessage.isInstance(messages[i + 1]);
84
+ if (batchEnds && batch.length > 0) {
85
+ out.push(await imageMessage(backend, batch, options));
86
+ batch = [];
87
+ }
88
+ }
89
+ return out;
90
+ }
91
+ /** The user message carrying one batch's images, or what stands in for each. */
92
+ async function imageMessage(backend, batch, options) {
93
+ const parts = [];
94
+ for (const { mark, attach } of batch) {
95
+ if (!attach) {
96
+ parts.push({
97
+ type: "text",
98
+ text: `Image '${mark.path}' was shown earlier and is no longer attached; read it again to see it.`,
99
+ });
100
+ continue;
101
+ }
102
+ const read = await readImage(backend, mark.path);
103
+ if ("error" in read) {
104
+ parts.push({ type: "text", text: `Image '${mark.path}', read earlier, is no longer available: ${read.error}.` });
105
+ }
106
+ else if (read.bytes.byteLength > options.maxBytes) {
107
+ parts.push({ type: "text", text: `Image '${mark.path}' is now larger than ${formatSize(options.maxBytes)} and is not shown.` });
108
+ }
109
+ else {
110
+ parts.push({ type: "text", text: `Image '${mark.path}':` });
111
+ const data = Buffer.from(read.bytes).toString("base64");
112
+ parts.push({ type: "image_url", image_url: { url: `data:${mark.mimeType};base64,${data}` } });
113
+ }
114
+ }
115
+ return new HumanMessage({ content: parts });
116
+ }
117
+ /**
118
+ * The middleware. Installed after the workflow's own (so a governed call has
119
+ * already been decided) and before the provider cache and the host's.
120
+ */
121
+ export function imageReadMiddleware(backend, options) {
122
+ return createMiddleware({
123
+ name: "ImageReads",
124
+ wrapToolCall: async (request, handler) => {
125
+ const call = request.toolCall;
126
+ if (call.name !== "read_file")
127
+ return handler(request);
128
+ const args = (call.args ?? {});
129
+ const given = args.file_path ?? args.path;
130
+ if (typeof given !== "string")
131
+ return handler(request);
132
+ const mimeType = shownImageMimeTypeOf(given);
133
+ const { path, escapes } = canonicalizeRelPath(given);
134
+ if (!mimeType || escapes || path === "")
135
+ return handler(request);
136
+ const read = await readImage(backend, path);
137
+ // A missing file, a symlink, a store holding text: `read_file`'s own answer.
138
+ if ("error" in read)
139
+ return handler(request);
140
+ const size = formatSize(read.bytes.byteLength);
141
+ if (read.bytes.byteLength > options.maxBytes) {
142
+ return new ToolMessage({
143
+ content: `Image '${path}' (${mimeType}, ${size}) was not shown: images over ` +
144
+ `${formatSize(options.maxBytes)} are not sent to the model.`,
145
+ tool_call_id: call.id ?? "",
146
+ name: "read_file",
147
+ });
148
+ }
149
+ return new ToolMessage({
150
+ content: `Image '${path}' (${mimeType}, ${size}) is shown below.`,
151
+ tool_call_id: call.id ?? "",
152
+ name: "read_file",
153
+ artifact: { [IMAGE_MARK]: { path, mimeType } },
154
+ });
155
+ },
156
+ wrapModelCall: async (request, handler) => {
157
+ const messages = await withImages(backend, request.messages, options);
158
+ const next = messages === request.messages ? request : { ...request, messages };
159
+ return asModelCallResult(await handler(next), "image reads");
160
+ },
161
+ });
162
+ }
163
+ //# sourceMappingURL=image-reads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-reads.js","sourceRoot":"","sources":["../../src/assembly/image-reads.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ import { type PricingTable } from "../core/usage.js";
11
11
  import { type ModelFactory } from "../env.js";
12
12
  import type { GovernanceRule } from "../kernel/kernel.js";
13
13
  import type { HookExecutor } from "../lifecycle/runner.js";
14
+ import { type ToolPaths } from "../machine/tool-paths.js";
15
+ import type { ImageReadOptions } from "./image-reads.js";
14
16
  import { type TriggerInput } from "../machine/triggers.js";
15
17
  import type { SandboxRuntime } from "../sandbox/runtime.js";
16
18
  import type { PromptCacheOptions } from "../workflow/prompt-cache.js";
@@ -160,6 +162,25 @@ export interface CreateAgentParams {
160
162
  * narrows it, and the safety/policy rules still bind.
161
163
  */
162
164
  essentialTools?: string[];
165
+ /**
166
+ * The arguments of host tools that name workspace paths, and how each call
167
+ * uses them, by tool name: `{ get_markdown: { path: "read" } }`. Every path
168
+ * rule then governs those arguments as it governs the built-in file tools'.
169
+ * A tool built with `toolsFromMap` may carry its declaration on its
170
+ * descriptor (`paths`) instead; this option wins for a tool declared both
171
+ * ways. Declaring a built-in tool's paths throws a `ToolPathsError`.
172
+ */
173
+ toolPaths?: Record<string, ToolPaths>;
174
+ /**
175
+ * Show the model the images it reads. Off by default, because a model without
176
+ * vision rejects an image. On (`true`, or `{ maxBytes?, keep? }`), the model's
177
+ * `read_file` of a PNG, JPEG, GIF or WebP answers with one line naming it, and
178
+ * the image is added to each model request as a `user` message right after
179
+ * that batch of tool results — read from the workspace per request, so the
180
+ * bytes never enter the history, checkpoints, events or scripts. Every other
181
+ * binary file stays refused.
182
+ */
183
+ images?: boolean | ImageReadOptions;
163
184
  /**
164
185
  * Custom governance rules inserted after the non-overridable safety rules and
165
186
  * the workflow `policy` rules, before the per-state `allow` defaults. A custom