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