wunderland 0.90.0 → 0.92.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/cli/commands/start/agent-turn.d.ts +2 -1
  2. package/dist/cli/commands/start/agent-turn.d.ts.map +1 -1
  3. package/dist/cli/commands/start/agent-turn.js +24 -7
  4. package/dist/cli/commands/start/agent-turn.js.map +1 -1
  5. package/dist/cli/commands/start/channel-handler.d.ts +6 -0
  6. package/dist/cli/commands/start/channel-handler.d.ts.map +1 -1
  7. package/dist/cli/commands/start/channel-handler.js +26 -1
  8. package/dist/cli/commands/start/channel-handler.js.map +1 -1
  9. package/dist/cli/commands/start/hosted-events.d.ts +120 -0
  10. package/dist/cli/commands/start/hosted-events.d.ts.map +1 -0
  11. package/dist/cli/commands/start/hosted-events.js +286 -0
  12. package/dist/cli/commands/start/hosted-events.js.map +1 -0
  13. package/dist/cli/commands/start/http-server.d.ts.map +1 -1
  14. package/dist/cli/commands/start/http-server.js +2 -0
  15. package/dist/cli/commands/start/http-server.js.map +1 -1
  16. package/dist/cli/commands/start/index.d.ts.map +1 -1
  17. package/dist/cli/commands/start/index.js +4 -0
  18. package/dist/cli/commands/start/index.js.map +1 -1
  19. package/dist/cli/commands/start/llm-provider-setup.d.ts.map +1 -1
  20. package/dist/cli/commands/start/llm-provider-setup.js +6 -0
  21. package/dist/cli/commands/start/llm-provider-setup.js.map +1 -1
  22. package/dist/cli/commands/start/remote-approvals.d.ts +163 -0
  23. package/dist/cli/commands/start/remote-approvals.d.ts.map +1 -0
  24. package/dist/cli/commands/start/remote-approvals.js +439 -0
  25. package/dist/cli/commands/start/remote-approvals.js.map +1 -0
  26. package/dist/cli/commands/start/routes/chat.d.ts.map +1 -1
  27. package/dist/cli/commands/start/routes/chat.js +16 -1
  28. package/dist/cli/commands/start/routes/chat.js.map +1 -1
  29. package/dist/cli/commands/start/routes/types.d.ts +6 -0
  30. package/dist/cli/commands/start/routes/types.d.ts.map +1 -1
  31. package/dist/cli/commands/start/startup-display.d.ts.map +1 -1
  32. package/dist/cli/commands/start/startup-display.js +2 -0
  33. package/dist/cli/commands/start/startup-display.js.map +1 -1
  34. package/dist/cli/index.d.ts.map +1 -1
  35. package/dist/cli/index.js +2 -0
  36. package/dist/cli/index.js.map +1 -1
  37. package/dist/cli/tui/views/status-view.d.ts.map +1 -1
  38. package/dist/cli/tui/views/status-view.js +3 -1
  39. package/dist/cli/tui/views/status-view.js.map +1 -1
  40. package/dist/runtime/tools/tool-calling.d.ts +21 -0
  41. package/dist/runtime/tools/tool-calling.d.ts.map +1 -1
  42. package/dist/runtime/tools/tool-calling.js +115 -4
  43. package/dist/runtime/tools/tool-calling.js.map +1 -1
  44. package/dist/runtime/tools/tool-helpers.d.ts +26 -0
  45. package/dist/runtime/tools/tool-helpers.d.ts.map +1 -1
  46. package/dist/runtime/tools/tool-helpers.js +66 -4
  47. package/dist/runtime/tools/tool-helpers.js.map +1 -1
  48. package/package.json +1 -1
@@ -0,0 +1,439 @@
1
+ /**
2
+ * @fileoverview The remote approval handler of `wunderland start`.
3
+ *
4
+ * With `hitl.mode: "remote"` in the agent config, an outward tool asks a server
5
+ * before it runs: `POST <url>/approvals` makes the request, `GET
6
+ * <url>/approvals/:id` reads the answer, on the URL and the token of
7
+ * `WUNDERLAND_EVENTS_URL` and `WUNDERLAND_EVENTS_TOKEN`. A person's yes on that
8
+ * server runs the tool. A no, an expiry or a lost server ends the turn with the
9
+ * word, and the tool never runs.
10
+ *
11
+ * It fails closed. With either variable missing, every outward tool is refused
12
+ * {@link APPROVAL_UNAVAILABLE}, so an agent that lost its token never acts
13
+ * unasked. Only the literal state `approved` ever counts as a yes.
14
+ *
15
+ * Without `hitl.mode: "remote"` no handler exists and nothing here applies.
16
+ *
17
+ * The action's text reaches the approvals route alone: never a log line, and
18
+ * never the events of `hosted-events.ts`.
19
+ *
20
+ * @module wunderland/cli/commands/start/remote-approvals
21
+ */
22
+ import { randomUUID } from 'node:crypto';
23
+ import { resolveOperationIdHeader } from '../../../platform/config/operation-id.js';
24
+ import { APPROVAL_UNAVAILABLE, safeJsonStringify } from '../../../runtime/tools/tool-helpers.js';
25
+ import { EVENTS_TOKEN_ENV, EVENTS_URL_ENV } from './hosted-events.js';
26
+ export { APPROVAL_UNAVAILABLE };
27
+ /** The `hitl.mode` that chooses this handler. */
28
+ export const HITL_MODE_REMOTE = 'remote';
29
+ /** How long an outward tool waits for its answer. */
30
+ export const REMOTE_APPROVAL_WAIT_MS = 10 * 60_000;
31
+ /** How long the handler waits between one poll's answer and the next poll. */
32
+ export const REMOTE_APPROVAL_POLL_MS = 5_000;
33
+ /** The most characters of a tool's arguments a request carries. */
34
+ export const REMOTE_APPROVAL_TEXT_LIMIT = 1_800;
35
+ /** How long the request may take before the tool is refused. */
36
+ const REQUEST_TIMEOUT_MS = 10_000;
37
+ /** How long one poll may take: a server may hold it open until the answer comes. */
38
+ const POLL_TIMEOUT_MS = 35_000;
39
+ /** At most one warning line per this many milliseconds. */
40
+ const WARN_INTERVAL_MS = 60_000;
41
+ const SUMMARY_MAX_LENGTH = 200;
42
+ const MASK_MAX_DEPTH = 8;
43
+ const MASKED = '[REDACTED]';
44
+ const SECRET_ARG = /api[-_]?key|token|secret|password|passwd|authorization|credential|cookie/i;
45
+ const APPROVE = Object.freeze({ decision: 'approve', approved: true });
46
+ function abort(reason) {
47
+ return { decision: 'abort', approved: false, reason };
48
+ }
49
+ /** The server's words that end the wait with no. */
50
+ const ABORT_STATES = new Set(['declined', 'expired', 'withdrawn']);
51
+ /** What a poll may tell: a state word, or that the token or the request is gone. */
52
+ const GONE = Symbol('gone');
53
+ function sleep(ms) {
54
+ return new Promise((resolve) => {
55
+ const timer = setTimeout(resolve, ms);
56
+ timer.unref?.();
57
+ });
58
+ }
59
+ async function readJson(res) {
60
+ try {
61
+ return JSON.parse(await res.text());
62
+ }
63
+ catch {
64
+ return undefined;
65
+ }
66
+ }
67
+ function fieldOf(body, name) {
68
+ return body && typeof body === 'object' ? body[name] : undefined;
69
+ }
70
+ /**
71
+ * Creates the handler for one server.
72
+ *
73
+ * It posts `{ toolName, action, operationId }` to `<url>/approvals` with
74
+ * `Authorization: Bearer <token>`, then reads `{ state }` from `GET
75
+ * <url>/approvals/:id` until the state is `approved`, `declined`, `expired` or
76
+ * `withdrawn`, or `waitMs` has passed since the server took the request. A last
77
+ * poll at the deadline reads a yes that came just before it.
78
+ *
79
+ * A request the server does not take answers {@link APPROVAL_UNAVAILABLE}, and
80
+ * so does a poll answered with any 4xx but 408, 425 or 429: the token or the row
81
+ * is gone. A poll with no answer, a 408, 425, 429 or 5xx, or a state this module
82
+ * does not know keeps waiting.
83
+ *
84
+ * Warnings go to `console.warn`, one line a minute at most, and hold a status or
85
+ * an error's name, never the token and never the action.
86
+ *
87
+ * @param options - The server, the token and the timings.
88
+ * @returns The handler.
89
+ */
90
+ export function createRemoteApprovalHandler(options) {
91
+ const endpoint = `${options.url.trim().replace(/\/+$/, '')}/approvals`;
92
+ const token = options.token.trim();
93
+ const waitMs = options.waitMs ?? REMOTE_APPROVAL_WAIT_MS;
94
+ const pollMs = options.pollMs ?? REMOTE_APPROVAL_POLL_MS;
95
+ let lastWarnAt;
96
+ const warn = (line) => {
97
+ const now = Date.now();
98
+ if (lastWarnAt !== undefined && now - lastWarnAt < WARN_INTERVAL_MS)
99
+ return;
100
+ lastWarnAt = now;
101
+ console.warn(`[remote-approvals] ${line}`);
102
+ };
103
+ let operationHeader;
104
+ try {
105
+ operationHeader = resolveOperationIdHeader();
106
+ }
107
+ catch (err) {
108
+ warn(`${err instanceof Error ? err.message : String(err)} Asking without an operation id header.`);
109
+ }
110
+ const headersFor = (operationId) => ({
111
+ Authorization: `Bearer ${token}`,
112
+ ...(operationHeader ? { [operationHeader]: operationId } : {}),
113
+ });
114
+ /** Makes the request. Returns the server's id for it, or nothing when it did not take it. */
115
+ const open = async (request) => {
116
+ let res;
117
+ try {
118
+ res = await fetch(endpoint, {
119
+ method: 'POST',
120
+ headers: { 'Content-Type': 'application/json', ...headersFor(request.operationId) },
121
+ body: JSON.stringify({
122
+ toolName: request.toolName,
123
+ action: request.action,
124
+ operationId: request.operationId,
125
+ }),
126
+ signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
127
+ });
128
+ }
129
+ catch (err) {
130
+ warn(`The approvals server did not answer (${err instanceof Error ? err.name : 'error'}); refusing the tool.`);
131
+ return undefined;
132
+ }
133
+ const body = await readJson(res);
134
+ if (!res.ok) {
135
+ warn(`The approvals server refused the request (${res.status}); refusing the tool.`);
136
+ return undefined;
137
+ }
138
+ const id = fieldOf(body, 'id');
139
+ if (typeof id !== 'string' || id === '') {
140
+ warn('The approvals server took the request and gave no id; refusing the tool.');
141
+ return undefined;
142
+ }
143
+ return id;
144
+ };
145
+ /** Reads the request's state once: its word, {@link GONE}, or nothing to go on. */
146
+ const poll = async (id, operationId, timeoutMs) => {
147
+ let res;
148
+ try {
149
+ res = await fetch(`${endpoint}/${encodeURIComponent(id)}`, {
150
+ method: 'GET',
151
+ headers: headersFor(operationId),
152
+ signal: AbortSignal.timeout(timeoutMs),
153
+ });
154
+ }
155
+ catch (err) {
156
+ warn(`The approvals server did not answer a poll (${err instanceof Error ? err.name : 'error'}); still waiting.`);
157
+ return undefined;
158
+ }
159
+ const body = await readJson(res);
160
+ if (res.ok)
161
+ return fieldOf(body, 'state');
162
+ if (res.status === 408 || res.status === 425 || res.status === 429 || res.status >= 500) {
163
+ warn(`The approvals server answered a poll with ${res.status}; still waiting.`);
164
+ return undefined;
165
+ }
166
+ warn(`The approvals server answered a poll with ${res.status}; refusing the tool.`);
167
+ return GONE;
168
+ };
169
+ return async (request, hooks) => {
170
+ const id = await open(request);
171
+ if (id === undefined)
172
+ return abort(APPROVAL_UNAVAILABLE);
173
+ hooks?.onWaiting?.();
174
+ // Counted from the server's answer, so its own deadline, which starts when
175
+ // it takes the request, comes first and its word is the one that is read.
176
+ const deadline = Date.now() + waitMs;
177
+ for (;;) {
178
+ const timeoutMs = Math.min(POLL_TIMEOUT_MS, Math.max(deadline - Date.now(), pollMs));
179
+ const state = await poll(id, request.operationId, timeoutMs);
180
+ if (state === GONE)
181
+ return abort(APPROVAL_UNAVAILABLE);
182
+ if (state === 'approved')
183
+ return APPROVE;
184
+ if (typeof state === 'string' && ABORT_STATES.has(state))
185
+ return abort(state);
186
+ const left = deadline - Date.now();
187
+ if (left <= 0)
188
+ return abort('expired');
189
+ await sleep(Math.min(pollMs, left));
190
+ }
191
+ };
192
+ }
193
+ /** Refuses every request without asking anyone: the handler of an agent with no server to ask. */
194
+ const refuseEveryRequest = async () => abort(APPROVAL_UNAVAILABLE);
195
+ /**
196
+ * The handler an agent's `hitl.mode` asks for. Any mode but `remote` gets none.
197
+ * `remote` gets a handler on `WUNDERLAND_EVENTS_URL` and
198
+ * `WUNDERLAND_EVENTS_TOKEN`; with either unset, blank or not a URL it gets one
199
+ * that refuses every request, with one warning line.
200
+ *
201
+ * @param mode - `hitl.mode` from the agent config.
202
+ * @param env - The environment to read; `process.env` by default.
203
+ * @returns The handler, or `undefined` when the mode is not `remote`.
204
+ */
205
+ export function remoteApprovalHandlerForMode(mode, env = process.env) {
206
+ if (typeof mode !== 'string' || mode.trim().toLowerCase() !== HITL_MODE_REMOTE)
207
+ return undefined;
208
+ const url = env[EVENTS_URL_ENV]?.trim();
209
+ const token = env[EVENTS_TOKEN_ENV]?.trim();
210
+ if (!url || !token) {
211
+ console.warn(`[remote-approvals] hitl.mode is "remote" and ${EVENTS_URL_ENV} or ${EVENTS_TOKEN_ENV} is not set; every outward tool is refused ${APPROVAL_UNAVAILABLE}.`);
212
+ return refuseEveryRequest;
213
+ }
214
+ try {
215
+ new URL(url);
216
+ }
217
+ catch {
218
+ console.warn(`[remote-approvals] hitl.mode is "remote" and ${EVENTS_URL_ENV} is not a URL; every outward tool is refused ${APPROVAL_UNAVAILABLE}.`);
219
+ return refuseEveryRequest;
220
+ }
221
+ return createRemoteApprovalHandler({ url, token });
222
+ }
223
+ /** The categories whose tools with a write verb ask even if they declare no side effects. */
224
+ const OUTWARD_CATEGORIES = new Set([
225
+ 'channel',
226
+ 'channels',
227
+ 'communication',
228
+ 'communications',
229
+ 'social',
230
+ 'tools',
231
+ ]);
232
+ /** The words in a tool's name that make it an outward action: a send, a post, a publish, a purchase, a bulk send, a webhook. */
233
+ const WRITE_VERBS = new Set([
234
+ 'send',
235
+ 'post',
236
+ 'publish',
237
+ 'purchase',
238
+ 'buy',
239
+ 'pay',
240
+ 'broadcast',
241
+ 'bulk',
242
+ 'webhook',
243
+ ]);
244
+ /** A word in a tool's name that, coming first, makes the rest of the name its object: `getPost`. */
245
+ const READ_VERBS = new Set([
246
+ 'get',
247
+ 'list',
248
+ 'read',
249
+ 'search',
250
+ 'find',
251
+ 'fetch',
252
+ 'lookup',
253
+ 'query',
254
+ 'check',
255
+ 'view',
256
+ 'show',
257
+ 'describe',
258
+ 'count',
259
+ ]);
260
+ /** The arguments that name where a tool's action goes, across the channel packs. */
261
+ const TARGET_ARGS = [
262
+ 'channelId',
263
+ 'channel_id',
264
+ 'channel',
265
+ 'chatId',
266
+ 'chat_id',
267
+ 'conversationId',
268
+ 'conversation_id',
269
+ 'roomId',
270
+ 'room_id',
271
+ 'jid',
272
+ 'recipient',
273
+ 'recipientId',
274
+ 'recipient_id',
275
+ 'to',
276
+ 'target',
277
+ 'targetChannel',
278
+ 'target_channel',
279
+ ];
280
+ /** The first read or write verb in a tool's name decides: `sendMessage` writes, `getSendStatus` reads. */
281
+ function hasWriteVerb(name) {
282
+ if (typeof name !== 'string')
283
+ return false;
284
+ const words = name
285
+ .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
286
+ .toLowerCase()
287
+ .split(/[^a-z0-9]+/);
288
+ for (const word of words) {
289
+ if (WRITE_VERBS.has(word))
290
+ return true;
291
+ if (READ_VERBS.has(word))
292
+ return false;
293
+ }
294
+ return false;
295
+ }
296
+ /** The targets a tool's arguments name, as trimmed strings. */
297
+ function targetsOf(args) {
298
+ const targets = [];
299
+ for (const key of TARGET_ARGS) {
300
+ const value = args?.[key];
301
+ for (const item of Array.isArray(value) ? value : [value]) {
302
+ if (typeof item === 'number')
303
+ targets.push(String(item));
304
+ else if (typeof item === 'string' && item.trim())
305
+ targets.push(item.trim());
306
+ }
307
+ }
308
+ return targets;
309
+ }
310
+ /** Whether a tool's arguments aim at a channel other than the turn's own. */
311
+ function aimsElsewhere(args, conversation) {
312
+ const platform = args?.['platform'];
313
+ const namesPlatform = typeof platform === 'string' && platform.trim() !== '';
314
+ const targets = targetsOf(args);
315
+ if (!conversation)
316
+ return namesPlatform || targets.length > 0;
317
+ if (namesPlatform && platform.trim().toLowerCase() !== conversation.platform.toLowerCase())
318
+ return true;
319
+ return targets.some((target) => target !== conversation.conversationId);
320
+ }
321
+ /**
322
+ * Whether a tool call is an outward action that asks first.
323
+ *
324
+ * It is when the tool's name has a write verb and the tool either sits in an
325
+ * outward category or does not declare itself free of side effects; and when a
326
+ * tool that declares side effects aims at a channel other than the
327
+ * conversation's own. A send to the conversation's own channel through a
328
+ * channel tool still asks, by its category and verb: the plain reply of a turn
329
+ * reaches the channel without a tool.
330
+ *
331
+ * @param tool - The tool's name, category and side-effect flag.
332
+ * @param args - The call's arguments.
333
+ * @param conversation - The conversation the turn answers, if it answers one.
334
+ * @returns Whether the call asks.
335
+ */
336
+ export function isOutwardAction(tool, args, conversation) {
337
+ if (hasWriteVerb(tool?.name)) {
338
+ const category = typeof tool?.category === 'string' ? tool.category.trim().toLowerCase() : '';
339
+ if (OUTWARD_CATEGORIES.has(category) || tool?.hasSideEffects !== false)
340
+ return true;
341
+ }
342
+ return tool?.hasSideEffects === true && aimsElsewhere(args, conversation);
343
+ }
344
+ /** A copy of `value` with the fields named like a secret masked. */
345
+ function maskSecrets(value, depth) {
346
+ if (value === null || typeof value !== 'object')
347
+ return value;
348
+ if (depth <= 0)
349
+ return '[truncated]';
350
+ if (Array.isArray(value))
351
+ return value.map((item) => maskSecrets(item, depth - 1));
352
+ const masked = {};
353
+ for (const [key, item] of Object.entries(value)) {
354
+ masked[key] = SECRET_ARG.test(key) ? MASKED : maskSecrets(item, depth - 1);
355
+ }
356
+ return masked;
357
+ }
358
+ /**
359
+ * What a person reads before answering: the tool and its target in one line, and
360
+ * its arguments, with any field named like a secret masked.
361
+ *
362
+ * @param tool - The tool.
363
+ * @param args - The call's arguments.
364
+ * @returns The action a request carries.
365
+ */
366
+ export function describeAction(tool, args) {
367
+ const name = String(tool?.name ?? 'unknown');
368
+ const [target] = targetsOf(args);
369
+ const summary = target ? `${name} to ${target}` : name;
370
+ return {
371
+ summary: summary.slice(0, SUMMARY_MAX_LENGTH),
372
+ text: safeJsonStringify(maskSecrets(args, MASK_MAX_DEPTH), REMOTE_APPROVAL_TEXT_LIMIT),
373
+ };
374
+ }
375
+ /**
376
+ * The line a turn ends with when a tool's approval came back anything but yes.
377
+ *
378
+ * @param word - Why the tool did not run.
379
+ * @param toolName - The tool.
380
+ * @returns The line, which holds the word.
381
+ */
382
+ export function remoteApprovalLine(word, toolName) {
383
+ switch (word) {
384
+ case 'declined':
385
+ return `The request to run ${toolName} was declined, so it did not run.`;
386
+ case 'expired':
387
+ return `The request to run ${toolName} expired with no answer, so it did not run. Ask again to try it again.`;
388
+ case 'withdrawn':
389
+ return `The request to run ${toolName} was withdrawn, so it did not run.`;
390
+ default:
391
+ return `Approvals are not available (${APPROVAL_UNAVAILABLE}), so ${toolName} did not run.`;
392
+ }
393
+ }
394
+ /**
395
+ * Asks the handler about one tool call and waits for the answer.
396
+ *
397
+ * @param handler - The handler.
398
+ * @param tool - The tool.
399
+ * @param args - The call's arguments.
400
+ * @param turn - The turn asking.
401
+ * @returns The decision. A handler that throws counts as {@link APPROVAL_UNAVAILABLE}.
402
+ */
403
+ export async function askRemoteApproval(handler, tool, args, turn = {}) {
404
+ try {
405
+ return await handler({
406
+ toolName: String(tool?.name ?? 'unknown'),
407
+ action: describeAction(tool, args),
408
+ operationId: turn.reportedTurn?.operationId ?? randomUUID(),
409
+ }, { onWaiting: () => turn.reportedTurn?.approvalRequested() });
410
+ }
411
+ catch {
412
+ return abort(APPROVAL_UNAVAILABLE);
413
+ }
414
+ }
415
+ /**
416
+ * The `outwardApproval` hook of `runToolCallingTurn` for one turn: outward calls
417
+ * ask the handler, every other call passes through it unasked.
418
+ *
419
+ * @param handler - The agent's handler, if it has one.
420
+ * @param turn - The turn.
421
+ * @returns The hook, or `undefined` when the agent has no handler.
422
+ */
423
+ export function outwardApprovalFor(handler, turn) {
424
+ if (!handler)
425
+ return undefined;
426
+ return async (tool, args) => {
427
+ if (!isOutwardAction(tool, args, turn.conversation))
428
+ return undefined;
429
+ const decision = await askRemoteApproval(handler, tool, args, turn);
430
+ if (decision.approved)
431
+ return { approved: true };
432
+ return {
433
+ approved: false,
434
+ reason: decision.reason,
435
+ line: remoteApprovalLine(decision.reason, String(tool?.name ?? 'unknown')),
436
+ };
437
+ };
438
+ }
439
+ //# sourceMappingURL=remote-approvals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-approvals.js","sourceRoot":"","sources":["../../../../src/cli/commands/start/remote-approvals.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/start/routes/chat.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAgCjE,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAkBpE;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,kBAAkB,CAAC,CA0d7B"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/start/routes/chat.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAkCjE,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAkBpE;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,kBAAkB,CAAC,CA0e7B"}
@@ -16,6 +16,8 @@ import { classifyResearchDepth, buildResearchPrefix, createResearchClassifierLlm
16
16
  import { buildPersonaSessionKey, createRequestScopedToolMap, extractRequestedPersonaId, resolveRequestScopedPersonaRuntime, } from '../../../../runtime/execution/request-persona.js';
17
17
  import { buildOllamaRuntimeOptions } from '../../../../runtime/tools/ollama-options.js';
18
18
  import { allowedToolNamesFor } from '../../../../runtime/tools/tool-allow-list.js';
19
+ import { startReportedTurn } from '../hosted-events.js';
20
+ import { askRemoteApproval, outwardApprovalFor } from '../remote-approvals.js';
19
21
  import { readBody, sendJson, getHeaderString, isChatAuthorized, isLoopbackRequest, } from './helpers.js';
20
22
  function toAgentosApprovalCategory(tool) {
21
23
  const name = String(tool?.name || '').toLowerCase();
@@ -44,7 +46,7 @@ function toAgentosApprovalCategory(tool) {
44
46
  export async function handleChatRoutes(req, res, url, deps) {
45
47
  if (req.method !== 'POST' || url.pathname !== '/chat')
46
48
  return false;
47
- const { seedId, displayName, activePersonaId, availablePersonas, seed, providerId, model, llmApiKey, llmBaseUrl, canUseLLM, openrouterFallback, oauthGetApiKey, cfg, rawAgentConfig, globalConfig, configDir, policy, toolMap, sessions, systemPrompt, adaptiveRuntime, discoveryManager, strictToolNames, autoApproveToolCalls, llmJudgeHandler, dangerouslySkipPermissions, turnApprovalMode, defaultTenantId, workspaceAgentId, workspaceBaseDir, lazyTools, skillsPrompt, chatSecret, hitlManager, sessionTextLogger, } = deps;
49
+ const { seedId, displayName, activePersonaId, availablePersonas, seed, providerId, model, llmApiKey, llmBaseUrl, canUseLLM, openrouterFallback, oauthGetApiKey, cfg, rawAgentConfig, globalConfig, configDir, policy, toolMap, sessions, systemPrompt, adaptiveRuntime, discoveryManager, strictToolNames, autoApproveToolCalls, llmJudgeHandler, remoteApprovalHandler, dangerouslySkipPermissions, turnApprovalMode, defaultTenantId, workspaceAgentId, workspaceBaseDir, lazyTools, skillsPrompt, chatSecret, hitlManager, sessionTextLogger, eventsReporter, } = deps;
48
50
  if (!isChatAuthorized(req, url, chatSecret)) {
49
51
  sendJson(res, 401, { error: 'Unauthorized' });
50
52
  return true;
@@ -170,6 +172,7 @@ export async function handleChatRoutes(req, res, url, deps) {
170
172
  * tool_calls entries.
171
173
  */
172
174
  const workingMessages = [...messages];
175
+ const reportedTurn = startReportedTurn(eventsReporter);
173
176
  try {
174
177
  if (canUseLLM) {
175
178
  /* ── Capability discovery — inject tiered context AND build filtered tool set ── */
@@ -268,8 +271,11 @@ export async function handleChatRoutes(req, res, url, deps) {
268
271
  strictToolNames,
269
272
  toolFailureMode: adaptiveDecision.toolFailureMode,
270
273
  ollamaOptions: buildOllamaRuntimeOptions(cfg?.ollama),
274
+ onUsage: reportedTurn.usage,
275
+ onProviderError: reportedTurn.providerError,
271
276
  onToolCall: (tool, args) => {
272
277
  toolCallCount += 1;
278
+ reportedTurn.toolCalled(tool?.name);
273
279
  deps.broadcastAgentEvent?.({
274
280
  type: 'tool_call',
275
281
  toolName: tool?.name ?? 'unknown',
@@ -277,6 +283,8 @@ export async function handleChatRoutes(req, res, url, deps) {
277
283
  args,
278
284
  });
279
285
  },
286
+ // hitl.mode "remote": outward tools ask first, whatever the tiers and flags say.
287
+ outwardApproval: outwardApprovalFor(remoteApprovalHandler, { reportedTurn }),
280
288
  askPermission: async (tool, args) => {
281
289
  if (autoApproveToolCalls)
282
290
  return true;
@@ -298,6 +306,11 @@ export async function handleChatRoutes(req, res, url, deps) {
298
306
  (isLoopbackRequest(req) || (!!chatSecret && isChatAuthorized(req, url, chatSecret)))) {
299
307
  return true;
300
308
  }
309
+ // hitl.mode "remote": the server answers; no one watches the local queue.
310
+ if (remoteApprovalHandler) {
311
+ return (await askRemoteApproval(remoteApprovalHandler, tool, args, { reportedTurn })).approved;
312
+ }
313
+ reportedTurn.approvalRequested();
301
314
  const preview = safeJsonStringify(args, 1800);
302
315
  const effectLabel = tool.hasSideEffects === true ? 'side effects' : 'read-only';
303
316
  const actionId = `tool-${seedId}-${randomUUID()}`;
@@ -317,6 +330,7 @@ export async function handleChatRoutes(req, res, url, deps) {
317
330
  askCheckpoint: turnApprovalMode === 'off' ? undefined : async ({ round, toolCalls }) => {
318
331
  if (autoApproveToolCalls)
319
332
  return true;
333
+ reportedTurn.approvalRequested();
320
334
  const checkpointId = `checkpoint-${seedId}-${internalSessionId}-${round}-${randomUUID()}`;
321
335
  const completedWork = toolCalls.map((c) => {
322
336
  const effect = c.hasSideEffects ? 'side effects' : 'read-only';
@@ -400,6 +414,7 @@ export async function handleChatRoutes(req, res, url, deps) {
400
414
  }
401
415
  }
402
416
  finally {
417
+ reportedTurn.finished();
403
418
  try {
404
419
  await adaptiveRuntime.recordTurnOutcome({
405
420
  scope: {
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../../../src/cli/commands/start/routes/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../../../src/cli/commands/start/routes/chat.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ import type { IncomingMessage, ServerResponse } from 'node:http';
10
10
  import type { HumanInteractionManager } from '@framers/agentos';
11
11
  import type { ToolInstance } from '../../../../runtime/tools/tool-calling.js';
12
12
  import type { WunderlandSessionTextLogger } from '../../../../platform/observability/session-text-log.js';
13
+ import type { EventsReporter } from '../hosted-events.js';
14
+ import type { RemoteApprovalHandler } from '../remote-approvals.js';
13
15
  /**
14
16
  * Shared dependencies injected into CLI HTTP server route handler functions.
15
17
  *
@@ -47,6 +49,8 @@ export interface CliServerDeps {
47
49
  name: string;
48
50
  hasSideEffects?: boolean;
49
51
  }, args: Record<string, unknown>) => Promise<boolean>;
52
+ /** Set when `hitl.mode` is `remote`: outward tools ask it, and it stands in for the local approval queue. */
53
+ remoteApprovalHandler?: RemoteApprovalHandler;
50
54
  dangerouslySkipPermissions: boolean;
51
55
  turnApprovalMode: 'off' | 'after-each-turn' | 'after-each-round';
52
56
  defaultTenantId: string | undefined;
@@ -67,6 +71,8 @@ export interface CliServerDeps {
67
71
  adapterByPlatform: Map<string, any>;
68
72
  loadedHttpHandlers: Array<(req: IncomingMessage, res: ServerResponse) => Promise<boolean> | boolean>;
69
73
  sessionTextLogger: WunderlandSessionTextLogger;
74
+ /** Set when the events variables are; posts each turn's coarse events. */
75
+ eventsReporter?: EventsReporter;
70
76
  /** Extension packs loaded at startup (used by dashboard extensions tab). */
71
77
  activePacks?: any[];
72
78
  /** Connected SSE clients for the agent event stream. */