@corenel/tools-web 0.5.0 → 0.7.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.
@@ -1,18 +1,35 @@
1
1
  import type { ChatCompletionMessageParam } from 'openai/resources/chat/completions';
2
2
  import type { RunAgentResult } from '@corenel/harness/core/loop';
3
- import type { GraphConfigWire } from './core/protocol';
3
+ import type { SkillEntry } from '@corenel/harness/tools/skillTool';
4
+ import type { WorkerToMain, GraphConfigWire } from './core/protocol';
4
5
  import type { RunNodeResult, NodeSpec } from '@corenel/harness/dag/executeNode';
5
6
  import type { NodeOutput, NodeEvent } from '@corenel/protocol';
6
- import type { AgentEvent, AskQuestion, AskAnswers, EditReviewOutcome, HealRecord, Usage } from '@corenel/protocol';
7
+ import type { AgentEvent, AskQuestion, AskAnswers, EditReviewOutcome, HealRecord, Usage, DecisionEvent, RecordContext, ApprovalSuggestion, ApprovalSubject } from '@corenel/protocol';
7
8
  import type { Policy, PermissionCeiling } from '@corenel/harness/guardrail';
8
9
  import type { CompressionConfig } from '@corenel/harness/compression';
9
10
  import type { FileService } from '@corenel/protocol';
10
11
  import type { ToolDecl } from '@corenel/protocol';
11
12
  import type { IMemoryProvider } from '@corenel/protocol';
13
+ import type { CrewDelegate, OrchestrationLimits, WorkspaceLockRef } from '@corenel/protocol';
12
14
  import type { RunConstraints, Breach, BudgetState } from '@corenel/harness/core/budget';
13
15
  import type { ModelRouting } from '@corenel/harness/providers/gateway';
16
+ import { type AuditBridgeHost } from '@corenel/harness/audit/runAudit';
14
17
  /** Options for runNode — like RunOpts but the node's internal turns arrive via
15
18
  * onNodeEvent (the node-tagged stream); onEvent only ever sees a terminal error. */
19
+ /** One permission ask as the host sees it. `agent` names a delegated callee
20
+ * (call_agent) that raised it; absent for the run's own agent. */
21
+ export interface PermissionRequest {
22
+ tool: string;
23
+ summary: string;
24
+ agent?: string;
25
+ }
26
+ /** What a host's permission handler answers: a bare boolean (a person
27
+ * clicked), or who answered, and for a deny the person's reason. */
28
+ export type PermissionAnswer = boolean | {
29
+ allow: boolean;
30
+ by: 'human' | 'session';
31
+ note?: string;
32
+ };
16
33
  export interface RunNodeOpts {
17
34
  model?: string;
18
35
  signal?: AbortSignal;
@@ -23,20 +40,21 @@ export interface RunNodeOpts {
23
40
  temperature?: number;
24
41
  /** Tool names withheld from the run (denylist). */
25
42
  toolDeny?: string[];
26
- /** Crew agents this run may delegate to, identities pre-composed. */
27
- crewDelegates?: {
28
- name: string;
29
- system: string;
30
- }[];
43
+ /** Crew agents this run may delegate to: identity, model and policy resolved. */
44
+ crewDelegates?: CrewDelegate[];
31
45
  onNodeEvent?: (e: NodeEvent) => void;
32
46
  onEvent?: (e: AgentEvent) => void;
33
- onPermission?: (req: {
34
- tool: string;
35
- summary: string;
36
- }) => Promise<boolean>;
47
+ /** `agent` names a delegated callee that raised the ask; absent for the run's own agent. */
48
+ onPermission?: (req: PermissionRequest) => Promise<PermissionAnswer>;
37
49
  onAsk?: (questions: AskQuestion[]) => Promise<AskAnswers | null>;
38
50
  /** Move this run's transcript into a project; resolves with what happened. */
39
51
  onMoveSession?: (projectRoot: string) => Promise<string>;
52
+ /** Fires when the approvals bridge records a decision and the host's
53
+ * ApprovalsBridgeHost returns a suggestion (offer a standing rule). */
54
+ onApprovalSuggestion?: (s: ApprovalSuggestion) => void;
55
+ /** Context attached to every decision this run records (host + runId are
56
+ * added by the bridge). */
57
+ approvalContext?: Omit<RecordContext, 'runId' | 'host'>;
40
58
  }
41
59
  /** Options for a chat run (createAgent.run and WorkerAgent.run share this). The
42
60
  * port type lives in the kernel — the app assembly (prompd/agent) imports it,
@@ -57,24 +75,31 @@ export interface RunOpts {
57
75
  toolDeny?: string[];
58
76
  /** Deferred tools the conversation already loaded (see core/protocol.ts). */
59
77
  loadedTools?: string[];
60
- /** Crew agents this run may delegate to, identities pre-composed. */
61
- crewDelegates?: {
62
- name: string;
63
- system: string;
64
- }[];
78
+ /** Enabled skills for this run, read on the main thread (see core/protocol.ts). */
79
+ skills?: SkillEntry[];
80
+ /** Crew agents this run may delegate to: identity, model and policy resolved. */
81
+ crewDelegates?: CrewDelegate[];
82
+ /** An orchestrator's plan gate and round/spawn caps (absent = plain delegator). */
83
+ crewOrchestration?: OrchestrationLimits;
84
+ /** Where delegated callees' transcripts are recorded (see core/protocol.ts). */
85
+ crewTraceRoot?: string;
65
86
  onEvent?: (e: AgentEvent) => void;
66
87
  /** Node-tagged events from the run's sub-agents (the DAG canvas stream). */
67
88
  onNodeEvent?: (e: NodeEvent) => void;
68
- onPermission?: (req: {
69
- tool: string;
70
- summary: string;
71
- }) => Promise<boolean>;
89
+ /** `agent` names a delegated callee that raised the ask; absent for the run's own agent. */
90
+ onPermission?: (req: PermissionRequest) => Promise<PermissionAnswer>;
72
91
  /** Resolve the agent's ask_user questions with the user's answers (null = dismissed). */
73
92
  onAsk?: (questions: AskQuestion[]) => Promise<AskAnswers | null>;
74
93
  /** Move this run's transcript into a project; resolves with what happened. */
75
94
  onMoveSession?: (projectRoot: string) => Promise<string>;
76
95
  /** Await the user's verdict on a propose_edit (null = run ended unreviewed). */
77
96
  onEditReview?: (callId: string) => Promise<EditReviewOutcome | null>;
97
+ /** Fires when the approvals bridge records a decision and the host's
98
+ * ApprovalsBridgeHost returns a suggestion (offer a standing rule). */
99
+ onApprovalSuggestion?: (s: ApprovalSuggestion) => void;
100
+ /** Context attached to every decision this run records (host + runId are
101
+ * added by the bridge). */
102
+ approvalContext?: Omit<RecordContext, 'runId' | 'host'>;
78
103
  /** Workspace-relative path of the editor buffer the agent edits — lets
79
104
  * propose_edit validate a proposal (compile it) before surfacing the diff. */
80
105
  editorFile?: string;
@@ -107,6 +132,11 @@ export interface RunOpts {
107
132
  onInjected?: (ids: string[]) => void;
108
133
  /** Workspace-relative root for the worker's session + offload stores. */
109
134
  sessionsRoot?: string;
135
+ /** Identity the audit log files this run under (ids and names only). */
136
+ auditContext?: {
137
+ session?: string;
138
+ agent?: string;
139
+ };
110
140
  }
111
141
  export interface WorkerAgent {
112
142
  run(messages: ChatCompletionMessageParam[], opts?: RunOpts): Promise<RunAgentResult>;
@@ -120,6 +150,16 @@ export interface WorkerAgent {
120
150
  }[], hard: boolean): void;
121
151
  dispose(): void;
122
152
  }
153
+ /** Structural subset of `@corenel/harness/approvals`'s ApprovalsService — only
154
+ * the two operations the worker bridge needs. A real ApprovalsService (Task
155
+ * 11's `browserApprovals()`) satisfies this without adaptation. */
156
+ export interface ApprovalsBridgeHost {
157
+ record(e: DecisionEvent, ctx: RecordContext): Promise<ApprovalSuggestion | null>;
158
+ standing: {
159
+ matches(subject: ApprovalSubject): Promise<boolean>;
160
+ };
161
+ }
162
+ export { AUDIT_FINISH_BOUND_MS, type AuditBridgeHost } from '@corenel/harness/audit/runAudit';
123
163
  export interface WorkerAgentOpts {
124
164
  /** Resolve the active file workspace, so the worker's file tools read/write it.
125
165
  * A getter (not a value) so swapping the source — e.g. opening a folder — is
@@ -128,6 +168,10 @@ export interface WorkerAgentOpts {
128
168
  /** The memory provider a crew-agent run should use, or null for none. When
129
169
  * present, runs are marked `agentMemory` and the worker proxies here. */
130
170
  getMemoryProvider?: () => IMemoryProvider | null;
171
+ /** A delegated callee's OWN memory provider, by its name, or null for none.
172
+ * A callee's memory ops go here and nowhere else: absent or null, they fail
173
+ * rather than fall back to the run's provider above. */
174
+ getCalleeMemoryProvider?: (agent: string) => IMemoryProvider | null;
131
175
  /** Construct the worker. The host owns this so the kernel client carries no
132
176
  * reference to the app's worker entry — the entry's `new URL('./worker.ts',
133
177
  * import.meta.url)` must live in app space for the bundler to resolve it. */
@@ -151,6 +195,17 @@ export interface WorkerAgentOpts {
151
195
  * read). A getter so a Settings change applies to the next run without
152
196
  * recreating the worker. Mirrors getGraphConfig. */
153
197
  getModelRouting?: () => ModelRouting | undefined;
198
+ /** The approvals service, which owns the config workspace (the worker's file
199
+ * proxy cannot reach it). A getter, like the others above, so the host can
200
+ * construct it lazily/reactively. Absent or returning null answers every
201
+ * approvals-request with `{ ok: false }` (no record, no standing match) --
202
+ * the same "fail toward the human" the standing lookup already guarantees. */
203
+ getApprovals?: () => ApprovalsBridgeHost | null;
204
+ /** The audit log host. Absent or returning null audits nothing. Every run
205
+ * through `run` then feeds its events, sub-agent node-events and permission
206
+ * decisions -- all seen at this client's message choke point -- into a
207
+ * per-run recorder whose lines go to the host's log. */
208
+ getAudit?: () => AuditBridgeHost | null;
154
209
  /** Execute a sidecar tool by name on the main thread (which holds the WS
155
210
  * connection + governs). Answers the worker's tool-request. `signal` aborts
156
211
  * when the calling RUN aborts or ends — long host-side executions
@@ -159,6 +214,10 @@ export interface WorkerAgentOpts {
159
214
  ask?: (questions: AskQuestion[]) => Promise<AskAnswers | null>;
160
215
  runState?: Record<string, unknown>;
161
216
  }) => Promise<string>;
217
+ /** Hand back an orchestrator run's workspace lock on the sidecar. The worker
218
+ * asks from the run's `finally`; best-effort -- a failure leaves the lock to
219
+ * go stale, which the sidecar recovers. */
220
+ releaseWorkspace?: (lock: WorkspaceLockRef) => Promise<unknown>;
162
221
  /** Persist a self-heal record. Called at the SINGLE worker-message choke point
163
222
  * for every heal, from BOTH the root run (`event`) and sub-agent/DAG-node
164
223
  * (`node-event`) channels — so no surface or nested run can drop heals. The host
@@ -173,5 +232,12 @@ export interface WorkerAgentOpts {
173
232
  * absent that, the sampler falls back to its own built-in default. */
174
233
  getTelemetrySampleRate?: () => number;
175
234
  }
235
+ /** The usage to meter from a worker message: the root run's own turns and
236
+ * every sub-agent's (node-event). Sub-agent usage was never metered, so a
237
+ * delegated callee could spend past the caller's cap. */
238
+ export declare function usageToMeter(m: WorkerToMain): {
239
+ usage: Usage;
240
+ model?: string;
241
+ } | null;
176
242
  export declare function createWorkerAgent(clientOpts: WorkerAgentOpts): WorkerAgent;
177
243
  //# sourceMappingURL=workerClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workerClient.d.ts","sourceRoot":"","sources":["../workerClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workerClient.d.ts","sourceRoot":"","sources":["../workerClient.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,11 @@
1
+ import { nodeUsageOf } from './nodeUsage';
1
2
  import { isAgentLogging, alog } from '@corenel/harness/log';
2
3
  import { makeBudgetGate } from './budgetGate';
3
4
  import { createRunRecorder } from './runSpans';
4
5
  import { createRunSampler, captureSpan } from '@corenel/telemetry';
6
+ import { startRunAudit } from '@corenel/harness/audit/runAudit';
7
+ import { newTraceId } from '@corenel/harness/audit/ids';
8
+ import { denialNote } from '@corenel/protocol';
5
9
  /** Re-phrase a file-mutation permission prompt from the live workspace, so the
6
10
  * stated risk reflects the CURRENT source. Returns null for non-file tools. */
7
11
  function fileWriteSummary(tool, input, svc) {
@@ -20,6 +24,19 @@ function fileWriteSummary(tool, input, svc) {
20
24
  return null;
21
25
  }
22
26
  }
27
+ // The audit bridge's host contract and bound live with the per-run lifecycle
28
+ // in @corenel/harness/audit/runAudit; re-exported so existing importers keep their path.
29
+ export { AUDIT_FINISH_BOUND_MS } from '@corenel/harness/audit/runAudit';
30
+ /** The usage to meter from a worker message: the root run's own turns and
31
+ * every sub-agent's (node-event). Sub-agent usage was never metered, so a
32
+ * delegated callee could spend past the caller's cap. */
33
+ export function usageToMeter(m) {
34
+ if (m.kind === 'event' && m.event.type === 'usage')
35
+ return { usage: m.event.usage, ...(m.event.model ? { model: m.event.model } : {}) };
36
+ if (m.kind === 'node-event')
37
+ return nodeUsageOf(m.event);
38
+ return null;
39
+ }
23
40
  export function createWorkerAgent(clientOpts) {
24
41
  let worker = null;
25
42
  const getToken = clientOpts.getToken ?? (async () => null);
@@ -50,6 +67,39 @@ export function createWorkerAgent(clientOpts) {
50
67
  // per runId, mirroring remoteAborts.
51
68
  const remoteAsk = new Map();
52
69
  const remoteRunState = new Map();
70
+ // Per-run approvals context + suggestion callback (approvals-request is
71
+ // client-level, like tool-request, but the context/callback are per-run).
72
+ const approvalRuns = new Map();
73
+ // Per-run audits (approvals-request is client-level, so a decision finds its
74
+ // run's recorder here). Removed when the run settles.
75
+ const auditRuns = new Map();
76
+ /** Start a run's audit, or null when the host audits nothing. A `getAudit`
77
+ * that throws means no audit (nothing says auditing is on); everything
78
+ * after that -- buffering, baseline, bounded finish -- is @corenel/harness/audit/runAudit.
79
+ * The audit's run id is a fresh trace-shaped id, NOT the numeric runId: that
80
+ * one only routes worker messages and restarts at 1 in every WorkerAgent,
81
+ * so it would repeat across page loads and agents in the same log. */
82
+ function startAudit(ctx, model) {
83
+ let host;
84
+ try {
85
+ host = clientOpts.getAudit?.() ?? null;
86
+ }
87
+ catch {
88
+ host = null;
89
+ }
90
+ return startRunAudit(host, { host: 'browser', run: newTraceId(), ...ctx, ...(model ? { model } : {}) });
91
+ }
92
+ /** End a run's audit (bounded, never rejecting) and report any loss as
93
+ * `audit-incomplete` through the run's onEvent. */
94
+ async function finishAudit(a, outcome, onEvent) {
95
+ const incomplete = await a.finish(outcome);
96
+ if (!incomplete)
97
+ return;
98
+ try {
99
+ onEvent?.(incomplete);
100
+ }
101
+ catch { /* swallowed: the audit must never fail a run */ }
102
+ }
53
103
  /** Build + wire a worker. The token/file bridges and error surfacing are bound
54
104
  * to THIS instance; on error we null `worker` so the next run recreates it. */
55
105
  function make() {
@@ -87,7 +137,8 @@ export function createWorkerAgent(clientOpts) {
87
137
  }
88
138
  }
89
139
  else if (m.kind === 'memory-request') {
90
- const provider = clientOpts.getMemoryProvider?.() || null;
140
+ // A callee's op goes to ITS memory only, never the run's.
141
+ const provider = (m.agent ? clientOpts.getCalleeMemoryProvider?.(m.agent) : clientOpts.getMemoryProvider?.()) || null;
91
142
  if (!provider) {
92
143
  send({ kind: 'memory-response', id: m.id, ok: false, error: 'No memory provider is connected.' });
93
144
  return;
@@ -113,6 +164,11 @@ export function createWorkerAgent(clientOpts) {
113
164
  send({ kind: 'memory-response', id: m.id, ok: false, error: String(e?.message || e) });
114
165
  }
115
166
  }
167
+ else if (m.kind === 'workspace-release') {
168
+ const release = clientOpts.releaseWorkspace;
169
+ if (release)
170
+ void release(m.lock).catch(() => undefined);
171
+ }
116
172
  else if (m.kind === 'tool-request') {
117
173
  // A sidecar tool the worker's agent called — run it here (the main thread
118
174
  // holds the WS connection and already gated it via the permission flow).
@@ -129,6 +185,32 @@ export function createWorkerAgent(clientOpts) {
129
185
  send({ kind: 'tool-response', id: m.id, ok: false, error: String(e?.message || e) });
130
186
  }
131
187
  }
188
+ else if (m.kind === 'approvals-request') {
189
+ // Audit every decision, whether or not an approvals service exists.
190
+ if (m.op === 'record')
191
+ auditRuns.get(m.runId)?.onDecision(m.event);
192
+ // The approvals service owns the config workspace, which the worker's
193
+ // file proxy cannot reach — only the main thread can answer this.
194
+ const host = clientOpts.getApprovals?.() ?? null;
195
+ if (!host) {
196
+ send({ kind: 'approvals-response', id: m.id, ok: false });
197
+ return;
198
+ }
199
+ try {
200
+ if (m.op === 'standing') {
201
+ send({ kind: 'approvals-response', id: m.id, ok: true, matches: await host.standing.matches(m.subject) });
202
+ return;
203
+ }
204
+ const run = approvalRuns.get(m.runId);
205
+ const suggestion = await host.record(m.event, { host: 'web', ...(run?.context ?? {}), runId: String(m.runId) });
206
+ send({ kind: 'approvals-response', id: m.id, ok: true });
207
+ if (suggestion)
208
+ run?.onSuggestion?.(suggestion);
209
+ }
210
+ catch {
211
+ send({ kind: 'approvals-response', id: m.id, ok: false });
212
+ }
213
+ }
132
214
  });
133
215
  w.addEventListener('error', (e) => {
134
216
  console.error('[agent] WORKER ERROR', e.message, e.filename ? `${e.filename}:${e.lineno}:${e.colno}` : '', e.error);
@@ -166,6 +248,12 @@ export function createWorkerAgent(clientOpts) {
166
248
  if (opts.onAsk)
167
249
  remoteAsk.set(runId, opts.onAsk);
168
250
  remoteRunState.set(runId, {});
251
+ approvalRuns.set(runId, { context: opts.approvalContext, onSuggestion: opts.onApprovalSuggestion });
252
+ const audit = opts.audit ? startAudit(opts.audit, opts.model) : null;
253
+ if (audit)
254
+ auditRuns.set(runId, audit);
255
+ // The root run's stop reason, for the audit's closing line.
256
+ let auditOutcome = 'stop';
169
257
  // Run-budget metering (only when the caller passed constraints — otherwise
170
258
  // this is a no-op, preserving the pre-existing unmetered behavior). The
171
259
  // gate's onUsage only reports the resulting action, so capture the
@@ -187,12 +275,24 @@ export function createWorkerAgent(clientOpts) {
187
275
  remoteAborts.delete(runId);
188
276
  remoteAsk.delete(runId);
189
277
  remoteRunState.delete(runId);
278
+ approvalRuns.delete(runId);
279
+ auditRuns.delete(runId);
190
280
  remoteAbort.abort(); // cancel any still-pending remote tool work
191
281
  w.removeEventListener('message', onMessage);
192
282
  opts.signal?.removeEventListener('abort', onAbort);
193
283
  };
194
- const done = (v) => { cleanup(); resolve(v); };
195
- const failWith = (e) => { cleanup(); reject(e); };
284
+ // Settle AFTER the audit is written (bounded, never rejecting), so a
285
+ // loss is reported through onEvent before the caller sees the result.
286
+ const settle = (outcome, then) => {
287
+ cleanup();
288
+ if (!audit) {
289
+ then();
290
+ return;
291
+ }
292
+ void finishAudit(audit, outcome, opts.onEvent).then(then);
293
+ };
294
+ const done = (v) => settle(auditOutcome, () => resolve(v));
295
+ const failWith = (e) => settle('error', () => reject(e));
196
296
  const fail = (message) => {
197
297
  // failAll (worker 'error'/'messageerror') ends the run without a
198
298
  // terminal message ever arriving, so the m.kind === 'error' branch
@@ -211,6 +311,8 @@ export function createWorkerAgent(clientOpts) {
211
311
  // (`event`) AND from sub-agents/DAG nodes (`node-event`) — so no surface or
212
312
  // nested run can drop heals (the per-call-site taps did exactly that).
213
313
  if (m.kind === 'event') {
314
+ // Audit first: the usage branch below returns early.
315
+ audit?.onEvent(m.event);
214
316
  // Feed the run-trace recorder at this same choke point -- a no-op for
215
317
  // event types it doesn't reduce over, and for a run it never saw start
216
318
  // (e.g. this is a runNode's 'event' channel, which never calls
@@ -227,9 +329,9 @@ export function createWorkerAgent(clientOpts) {
227
329
  // (on a first-turn breach the previous usage is zero, which silently
228
330
  // defeats "cheaper than current" and falls back to warn).
229
331
  opts.onEvent?.(m.event);
230
- const r = await gate.onUsage(usage);
332
+ const r = await gate.onUsage(usage, m.event.model);
231
333
  if (r.action === 'stop') {
232
- send({ kind: 'abort', runId });
334
+ send({ kind: 'abort', runId, reason: 'budget' });
233
335
  // safe: only reached after onBreach ran, which sets lastBreach
234
336
  opts.onEvent?.({ type: 'budget-stop', breach: lastBreach });
235
337
  }
@@ -242,12 +344,25 @@ export function createWorkerAgent(clientOpts) {
242
344
  return;
243
345
  }
244
346
  if (m.kind === 'node-event') {
347
+ audit?.onNodeEvent(m.event);
245
348
  // A sub-agent/DAG-node heal is the inner AgentEvent of a 'node-event'
246
349
  // NodeEvent (NodeEvent wraps AgentEvent), not the NodeEvent itself.
247
350
  const inner = m.event.type === 'node-event' ? m.event.event : null;
248
351
  if (inner?.type === 'heal')
249
352
  clientOpts.onHeal?.(inner.record);
250
353
  opts.onNodeEvent?.(m.event);
354
+ const metered = gate ? usageToMeter(m) : null;
355
+ if (gate && metered) {
356
+ const r = await gate.onUsage(metered.usage, metered.model);
357
+ if (r.action === 'stop') {
358
+ send({ kind: 'abort', runId, reason: 'budget' });
359
+ // safe: only reached after onBreach ran, which sets lastBreach
360
+ opts.onEvent?.({ type: 'budget-stop', breach: lastBreach });
361
+ }
362
+ else if (r.model) {
363
+ send({ kind: 'set-model', runId, model: r.model });
364
+ }
365
+ }
251
366
  return;
252
367
  }
253
368
  if (m.kind === 'permission-request') {
@@ -255,8 +370,17 @@ export function createWorkerAgent(clientOpts) {
255
370
  // so the risk (LOCAL DISK vs virtual) is current, not frozen at run start.
256
371
  const svc = clientOpts.getFileService?.() || null;
257
372
  const summary = fileWriteSummary(m.tool, m.input, svc) ?? m.summary;
258
- const allow = opts.onPermission ? await opts.onPermission({ tool: m.tool, summary }) : true;
259
- send({ kind: 'permission-response', id: m.id, allow });
373
+ const res = opts.onPermission ? await opts.onPermission({ tool: m.tool, summary, ...(m.callee ? { agent: m.callee } : {}) }) : null;
374
+ /* Nobody to ask. The run itself answers as it always has (allow); a
375
+ * delegated callee is capped by the stricter of that and its OWN
376
+ * unattended mode, and with nobody to wait for, park is a deny. */
377
+ const unattendedAllow = m.callee ? m.calleeUnattended === 'allow' : true;
378
+ const answer = res === null
379
+ ? { allow: unattendedAllow, by: 'unattended' }
380
+ : typeof res === 'boolean' ? { allow: res, by: 'human' } : res;
381
+ // A deny's note, cleaned here as well: the worker hands it to the model.
382
+ const note = typeof res === 'object' && res !== null && !res.allow ? denialNote(res.note) : undefined;
383
+ send({ kind: 'permission-response', id: m.id, allow: answer.allow, by: answer.by, ...(note ? { note } : {}) });
260
384
  return;
261
385
  }
262
386
  if (m.kind === 'ask-request') {
@@ -294,8 +418,11 @@ export function createWorkerAgent(clientOpts) {
294
418
  failWith(new Error(m.message));
295
419
  return;
296
420
  }
297
- if (m.kind === 'result')
421
+ if (m.kind === 'result') {
298
422
  recorder.finish(String(m.runId), 'ok');
423
+ if (m.result.stopReason)
424
+ auditOutcome = m.result.stopReason;
425
+ }
299
426
  terminal(m, done);
300
427
  };
301
428
  const onAbort = () => { remoteAbort.abort(); send({ kind: 'abort', runId }); };
@@ -306,10 +433,10 @@ export function createWorkerAgent(clientOpts) {
306
433
  }
307
434
  return {
308
435
  run(messages, opts = {}) {
309
- return begin(opts, (runId, send) => {
436
+ return begin({ ...opts, audit: opts.auditContext ?? {} }, (runId, send) => {
310
437
  alog('client:post-run', runId, { debug: isAgentLogging() });
311
438
  const routing = clientOpts.getModelRouting?.();
312
- send({ kind: 'run', runId, messages, model: opts.model, system: opts.system, policy: opts.policy, ceiling: opts.ceiling, compression: opts.compression, temperature: opts.temperature, debug: isAgentLogging(), fileMeta: currentFileMeta(), scope: getScope(), graphConfig: clientOpts.getGraphConfig?.(), reviewEdits: !!opts.onEditReview, editorFile: opts.editorFile, remoteTools: clientOpts.getRemoteTools?.() ?? [], sessionId: opts.sessionId, toolNames: opts.toolNames, toolDeny: opts.toolDeny, loadedTools: opts.loadedTools, crewDelegates: opts.crewDelegates, agentMemory: !!clientOpts.getMemoryProvider?.(), ...(opts.sessionsRoot !== undefined ? { sessionsRoot: opts.sessionsRoot } : {}), canMoveSession: !!opts.onMoveSession, ...(routing ? { routing } : {}) });
439
+ send({ kind: 'run', runId, messages, model: opts.model, system: opts.system, policy: opts.policy, ceiling: opts.ceiling, compression: opts.compression, temperature: opts.temperature, debug: isAgentLogging(), fileMeta: currentFileMeta(), scope: getScope(), graphConfig: clientOpts.getGraphConfig?.(), reviewEdits: !!opts.onEditReview, editorFile: opts.editorFile, remoteTools: clientOpts.getRemoteTools?.() ?? [], sessionId: opts.sessionId, toolNames: opts.toolNames, toolDeny: opts.toolDeny, loadedTools: opts.loadedTools, skills: opts.skills, crewDelegates: opts.crewDelegates, crewOrchestration: opts.crewOrchestration, ...(opts.crewTraceRoot ? { crewTraceRoot: opts.crewTraceRoot } : {}), agentMemory: !!clientOpts.getMemoryProvider?.(), ...(opts.sessionsRoot !== undefined ? { sessionsRoot: opts.sessionsRoot } : {}), canMoveSession: !!opts.onMoveSession, ...(routing ? { routing } : {}) });
313
440
  // WorkerAgentOpts/RunOpts have no `surface` concept yet -- every run
314
441
  // through this client is the agent surface for now.
315
442
  recorder.start(String(runId), { surface: 'agent', model: opts.model ?? '' });
@@ -320,7 +447,7 @@ export function createWorkerAgent(clientOpts) {
320
447
  return begin(opts, (runId, send) => {
321
448
  alog('client:post-run-node', runId, node.id, { debug: isAgentLogging() });
322
449
  const routing = clientOpts.getModelRouting?.();
323
- send({ kind: 'run-node', runId, node, inputs, model: opts.model, policy: opts.policy, ceiling: opts.ceiling, compression: opts.compression, debug: isAgentLogging(), fileMeta: currentFileMeta(), scope: getScope(), graphConfig: clientOpts.getGraphConfig?.(), remoteTools: clientOpts.getRemoteTools?.() ?? [], agentMemory: !!clientOpts.getMemoryProvider?.(), ...(routing ? { routing } : {}) });
450
+ send({ kind: 'run-node', runId, node, inputs, model: opts.model, policy: opts.policy, ceiling: opts.ceiling, compression: opts.compression, debug: isAgentLogging(), fileMeta: currentFileMeta(), scope: getScope(), graphConfig: clientOpts.getGraphConfig?.(), remoteTools: clientOpts.getRemoteTools?.() ?? [], toolDeny: opts.toolDeny, agentMemory: !!clientOpts.getMemoryProvider?.(), ...(routing ? { routing } : {}) });
324
451
  }, (m, done) => { if (m.kind === 'node-result')
325
452
  done(m.result); });
326
453
  },
@@ -340,6 +467,11 @@ export function createWorkerAgent(clientOpts) {
340
467
  // records the trace.
341
468
  for (const runId of active.keys())
342
469
  recorder.finish(String(runId), 'error');
470
+ // Same for the audit: close each in-flight run's log lines. No onEvent:
471
+ // the run's caller is gone, so any loss goes unreported here.
472
+ for (const a of auditRuns.values())
473
+ void finishAudit(a, 'aborted');
474
+ auditRuns.clear();
343
475
  if (worker) {
344
476
  worker.terminate();
345
477
  worker = null;
@@ -1 +1 @@
1
- {"version":3,"file":"workerClient.js","sourceRoot":"","sources":["../workerClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workerClient.js","sourceRoot":"","sources":["../workerClient.ts"],"names":[],"mappings":"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"}