@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.
- package/README.md +3 -1
- package/dist/assembly/compose.d.ts +40 -3
- package/dist/assembly/compose.js +81 -7
- package/dist/assembly/compose.js.map +1 -1
- package/dist/assembly/delegation-registry.js +5 -2
- package/dist/assembly/delegation-registry.js.map +1 -1
- package/dist/assembly/image-reads.d.ts +53 -0
- package/dist/assembly/image-reads.js +163 -0
- package/dist/assembly/image-reads.js.map +1 -0
- package/dist/assembly/index.d.ts +21 -0
- package/dist/assembly/index.js +7 -1
- package/dist/assembly/index.js.map +1 -1
- package/dist/assembly/plain.js +6 -3
- package/dist/assembly/plain.js.map +1 -1
- package/dist/authoring-skill/archmax-harness/references/backend-integration.md +48 -1
- package/dist/authoring-skill/archmax-harness/references/hook-and-test-scripts.md +27 -1
- package/dist/authoring-skill/archmax-harness/references/workflow-schema.md +71 -25
- package/dist/authoring-skill/archmax-harness/references/workflow-yaml.md +24 -5
- package/dist/core/binary-read.d.ts +52 -0
- package/dist/core/binary-read.js +129 -0
- package/dist/core/binary-read.js.map +1 -0
- package/dist/core/file-operations.d.ts +43 -0
- package/dist/core/file-operations.js +368 -0
- package/dist/core/file-operations.js.map +1 -0
- package/dist/core/path-mapping.d.ts +10 -3
- package/dist/core/path-mapping.js +27 -0
- package/dist/core/path-mapping.js.map +1 -1
- package/dist/core/platform-prompt.generated.js +1 -1
- package/dist/core/platform-prompt.generated.js.map +1 -1
- package/dist/core/prompt.d.ts +27 -0
- package/dist/core/prompt.js +65 -5
- package/dist/core/prompt.js.map +1 -1
- package/dist/core/session-zone.d.ts +3 -0
- package/dist/core/session-zone.js +9 -0
- package/dist/core/session-zone.js.map +1 -1
- package/dist/core/tool-context.d.ts +23 -0
- package/dist/core/tool-context.js +14 -0
- package/dist/core/tool-context.js.map +1 -0
- package/dist/core/tool-telemetry.js +2 -1
- package/dist/core/tool-telemetry.js.map +1 -1
- package/dist/core/workspace-router.d.ts +11 -1
- package/dist/core/workspace-router.js +47 -3
- package/dist/core/workspace-router.js.map +1 -1
- package/dist/index.d.ts +11 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/kernel/kernel.js +167 -119
- package/dist/kernel/kernel.js.map +1 -1
- package/dist/machine/allow.d.ts +22 -0
- package/dist/machine/allow.js +47 -15
- package/dist/machine/allow.js.map +1 -1
- package/dist/machine/lint-spec.js +12 -3
- package/dist/machine/lint-spec.js.map +1 -1
- package/dist/machine/machine.d.ts +10 -1
- package/dist/machine/machine.js +36 -8
- package/dist/machine/machine.js.map +1 -1
- package/dist/machine/spec-schema.js +14 -0
- package/dist/machine/spec-schema.js.map +1 -1
- package/dist/machine/tool-names.d.ts +27 -7
- package/dist/machine/tool-names.js +43 -13
- package/dist/machine/tool-names.js.map +1 -1
- package/dist/machine/tool-paths.d.ts +51 -0
- package/dist/machine/tool-paths.js +127 -0
- package/dist/machine/tool-paths.js.map +1 -0
- package/dist/public/spec.d.ts +6 -1
- package/dist/public/spec.js +5 -1
- package/dist/public/spec.js.map +1 -1
- package/dist/validate/validate.js +10 -5
- package/dist/validate/validate.js.map +1 -1
- package/dist/workflow/agent-tools.d.ts +20 -1
- package/dist/workflow/agent-tools.js +31 -1
- package/dist/workflow/agent-tools.js.map +1 -1
- package/dist/workflow/control-tools.d.ts +4 -1
- package/dist/workflow/control-tools.js +24 -15
- package/dist/workflow/control-tools.js.map +1 -1
- package/dist/workflow/governance.d.ts +2 -0
- package/dist/workflow/governance.js +1 -0
- package/dist/workflow/governance.js.map +1 -1
- package/dist/workflow/middleware.d.ts +2 -0
- package/dist/workflow/middleware.js +27 -12
- package/dist/workflow/middleware.js.map +1 -1
- package/dist/workflow/on-error.js +3 -2
- package/dist/workflow/on-error.js.map +1 -1
- package/dist/workflow/parks.js +5 -5
- package/dist/workflow/parks.js.map +1 -1
- package/dist/workflow/render-prompt.d.ts +2 -0
- package/dist/workflow/render-prompt.js +9 -3
- package/dist/workflow/render-prompt.js.map +1 -1
- package/dist/workflow/returns-check.d.ts +35 -0
- package/dist/workflow/returns-check.js +10 -0
- package/dist/workflow/returns-check.js.map +1 -0
- package/dist/workflow/signature-checks.d.ts +26 -1
- package/dist/workflow/signature-checks.js +35 -10
- package/dist/workflow/signature-checks.js.map +1 -1
- package/dist/workflow/state.d.ts +75 -1
- package/dist/workflow/state.js +83 -0
- package/dist/workflow/state.js.map +1 -1
- package/dist/workflow/sub-workflow.d.ts +16 -5
- package/dist/workflow/sub-workflow.js +84 -37
- package/dist/workflow/sub-workflow.js.map +1 -1
- package/dist/workflow/tool-service.js +57 -10
- package/dist/workflow/tool-service.js.map +1 -1
- package/dist/workflow/turn-boundary.d.ts +8 -7
- package/dist/workflow/turn-boundary.js +10 -9
- package/dist/workflow/turn-boundary.js.map +1 -1
- package/dist/workflow/workflow-tools.js +5 -1
- package/dist/workflow/workflow-tools.js.map +1 -1
- package/package.json +1 -1
- package/skills/archmax-harness/references/backend-integration.md +48 -1
- package/skills/archmax-harness/references/hook-and-test-scripts.md +27 -1
- package/skills/archmax-harness/references/workflow-schema.md +71 -25
- 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`
|
|
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)
|
|
150
|
-
*
|
|
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>;
|
package/dist/assembly/compose.js
CHANGED
|
@@ -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 {
|
|
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)
|
|
70
|
-
*
|
|
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
|
-
|
|
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: [
|
|
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
|
-
|
|
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":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,gBAAgB,GAIjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAwB,MAAM,cAAc,CAAC;AAO3G,gFAAgF;AAChF,MAAM,UAAU,wBAAwB,CAAC,GAAoB,EAAE,IAAqB;IAClF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuC,CAAC;IAChE;;;;OAIG;IACH,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsC,CAAC;IAE5D,SAAS,IAAI,CAAC,MAAc;QAC1B,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,yEAAyE;YACzE,sDAAsD;YACtD,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACrB,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,UAAU,QAAQ,CAAC,MAAc;QACpC,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;gBAC5D,CAAC,CAAC,OAAO,KAAK,CAAC,YAAY,SAAS;gBACpC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC;YAC9E,MAAM,IAAI,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,EAAE,4BAA4B,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC;QAC5G,CAAC;QACD,qEAAqE;QACrE,4EAA4E;QAC5E,+DAA+D;QAC/D,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;
|
|
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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"}
|
package/dist/assembly/index.d.ts
CHANGED
|
@@ -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
|