mandala-computer-mcp 0.15.0 → 0.16.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 (44) hide show
  1. package/README.md +68 -12
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/api.js +2 -2
  4. package/dist/api.js.map +1 -1
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +3 -2
  7. package/dist/cli.js.map +1 -1
  8. package/dist/errors.d.ts +16 -0
  9. package/dist/errors.d.ts.map +1 -1
  10. package/dist/errors.js +17 -0
  11. package/dist/errors.js.map +1 -1
  12. package/dist/paths.d.ts +36 -1
  13. package/dist/paths.d.ts.map +1 -1
  14. package/dist/paths.js +35 -0
  15. package/dist/paths.js.map +1 -1
  16. package/dist/server.d.ts.map +1 -1
  17. package/dist/server.js +4 -0
  18. package/dist/server.js.map +1 -1
  19. package/dist/tool-filters.d.ts +1 -1
  20. package/dist/tool-filters.d.ts.map +1 -1
  21. package/dist/tool-filters.js +11 -1
  22. package/dist/tool-filters.js.map +1 -1
  23. package/dist/tools/agent.d.ts +63 -0
  24. package/dist/tools/agent.d.ts.map +1 -1
  25. package/dist/tools/agent.js +96 -71
  26. package/dist/tools/agent.js.map +1 -1
  27. package/dist/tools/chat.d.ts.map +1 -1
  28. package/dist/tools/chat.js +44 -8
  29. package/dist/tools/chat.js.map +1 -1
  30. package/dist/tools/conversation.d.ts +40 -0
  31. package/dist/tools/conversation.d.ts.map +1 -0
  32. package/dist/tools/conversation.js +70 -0
  33. package/dist/tools/conversation.js.map +1 -0
  34. package/dist/tools/runs.d.ts +3 -0
  35. package/dist/tools/runs.d.ts.map +1 -0
  36. package/dist/tools/runs.js +344 -0
  37. package/dist/tools/runs.js.map +1 -0
  38. package/dist/tools/threads.d.ts +3 -0
  39. package/dist/tools/threads.d.ts.map +1 -0
  40. package/dist/tools/threads.js +214 -0
  41. package/dist/tools/threads.js.map +1 -0
  42. package/dist/version.d.ts +1 -1
  43. package/dist/version.js +1 -1
  44. package/package.json +1 -1
@@ -5,11 +5,12 @@ import { APIError, agentRunAdvice, authenticationAdvice, creditsExhaustedAdvice,
5
5
  import { errorMetadata, failed, guarded, refused, said, withErrorMetadata } from '../format.js';
6
6
  import * as P from '../paths.js';
7
7
  import { safeResult } from './chat.js';
8
+ import { keptThread, STORE_WITH_THREAD, stopVerdict, storeArg, threadIdArg, threadLine, } from './conversation.js';
8
9
  /** run_agent's annotations, shared with the check that decides whether to ask about credits. */
9
10
  export const RUN_AGENT_ANNOTATIONS = { openWorldHint: true };
10
11
  const TITLE = 'Have the platform drive the computer';
11
12
  /** What both descriptions say after their first sentence about who pays. */
12
- const HOW = 'Use it to delegate a long stretch of pixel work; drive with the individual tools when you want to see each frame yourself. The computer must already be running. A run is MINUTES, not seconds: it reports progress on every step so a client that sends a progressToken and sets resetTimeoutOnProgress can hold the request open, and a client that cannot should lower max_steps rather than watch its own default timeout cancel a run it is already paying for.';
13
+ const HOW = 'Use it to delegate a long stretch of pixel work; drive with the individual tools when you want to see each frame yourself. The computer must already be running. A run is MINUTES, not seconds: it reports progress on every step so a client that sends a progressToken and sets resetTimeoutOnProgress can hold the request open. A client that cannot hold one call open that long should use start_agent_run, which starts the same run in the background and answers at once, rather than watch its own timeout cancel a run it is already paying for. Unless it sent store: false, every run that acts or answers is kept in a thread, and the answer names its thread_id: send it back as thread_id to continue the conversation.';
13
14
  const TASK = 'Give the computer a task in plain language and let the platform drive it — screenshot, decide, click, type, repeat — until it is done.';
14
15
  const computerId = z
15
16
  .string()
@@ -18,6 +19,13 @@ const computerId = z
18
19
  const prompt = z.string().describe('The task, in plain language.');
19
20
  const nonblankModel = z.string().refine((v) => v.trim().length > 0, 'model must not be blank');
20
21
  const STEPS_CAP = `Defaults to 20 and is capped at ${P.AGENT_MAX_STEPS} here, so a larger value is refused before the call rather than after it.`;
22
+ /** A run on credits' admission budget. */
23
+ const maxCostArg = z
24
+ .number()
25
+ .min(0.25)
26
+ .max(20)
27
+ .optional()
28
+ .describe('The most this run may spend from credits, in USD, 0.25 to 20; the platform defaults to 2. No model call starts past it, but the last one can go over. A run that reaches it ends with stop max_cost.');
21
29
  /** How many actions, told the way each payer needs it told. */
22
30
  const maxSteps = (bill, bound) => z
23
31
  .number()
@@ -48,20 +56,8 @@ export const registerAgent = (server, session) => {
48
56
  if (session.modelKey) {
49
57
  server.registerTool('run_agent', {
50
58
  title: TITLE,
51
- description: `${TASK} Runs on the Anthropic or OpenAI key this server was configured with, and bills that key for every step. ${HOW}`,
52
- inputSchema: {
53
- computer_id: computerId,
54
- prompt,
55
- system: z.string().optional().describe('Standing instructions carried into the run.'),
56
- provider: z
57
- .enum(['anthropic', 'openai'])
58
- .optional()
59
- .describe('Inferred from model when omitted. Select openai to use gpt-6.1-sol by default. The configured MANDALA_MODEL_KEY must match the provider.'),
60
- model: nonblankModel
61
- .optional()
62
- .describe('A computer-capable Anthropic or OpenAI model id to run with. Omit it for the one the platform picks. The configured key must be able to use it; a model it cannot use fails the run.'),
63
- max_steps: maxSteps('what your key is billed', 'budget the bill on the key itself'),
64
- },
59
+ description: `${TASK} ${BYOK_BILLING} ${HOW}`,
60
+ inputSchema: { ...BYOK_RUN_ARGS, thread_id: threadIdArg, store: storeArg },
65
61
  annotations: RUN_AGENT_ANNOTATIONS,
66
62
  }, run);
67
63
  return;
@@ -70,27 +66,48 @@ export const registerAgent = (server, session) => {
70
66
  return;
71
67
  server.registerTool('run_agent', {
72
68
  title: TITLE,
73
- description: `${TASK} Runs on this account's Mandala AI credits, because no model key is configured: each model call reserves $0.25 and is charged for its usage, max_cost_usd caps what one run may start, and get_credits reads the balance. ${HOW}`,
74
- inputSchema: {
75
- computer_id: computerId,
76
- prompt,
77
- model: nonblankModel
78
- .optional()
79
- .describe('claude-sonnet-5-5, the default, or claude-opus-5-5; credits pay for these two. Another model needs a model key.'),
80
- max_steps: maxSteps('what a run costs', 'the spend with max_cost_usd'),
81
- max_cost_usd: z
82
- .number()
83
- .min(0.25)
84
- .max(20)
85
- .optional()
86
- .describe('The most this run may spend from credits, in USD, 0.25 to 20; the platform defaults to 2. No model call starts past it, but the last one can go over. A run that reaches it ends with stop max_cost.'),
87
- },
69
+ description: `${TASK} ${FUNDED_BILLING} ${HOW}`,
70
+ inputSchema: { ...FUNDED_RUN_ARGS, thread_id: threadIdArg, store: storeArg },
88
71
  annotations: RUN_AGENT_ANNOTATIONS,
89
72
  }, run);
90
73
  };
74
+ /** Who pays for a run on a model key, said the same way by every tool that starts one. */
75
+ export const BYOK_BILLING = 'Runs on the Anthropic or OpenAI key this server was configured with, and bills that key for every step.';
76
+ /** Who pays for a run on AI credits. */
77
+ export const FUNDED_BILLING = "Runs on this account's Mandala AI credits, because no model key is configured: each model call reserves $0.25 and is charged for its usage, max_cost_usd caps what one run may start, and get_credits reads the balance.";
78
+ /**
79
+ * What a run on a model key takes, shared by run_agent and start_agent_run: the
80
+ * two start the same loop with the same body, and a field described one way on
81
+ * one and another way on the other is two answers to one question.
82
+ */
83
+ export const BYOK_RUN_ARGS = {
84
+ computer_id: computerId,
85
+ prompt,
86
+ system: z.string().optional().describe('Standing instructions carried into the run.'),
87
+ provider: z
88
+ .enum(['anthropic', 'openai'])
89
+ .optional()
90
+ .describe('Inferred from model when omitted. Select openai to use gpt-6.1-sol by default. The configured MANDALA_MODEL_KEY must match the provider.'),
91
+ model: nonblankModel
92
+ .optional()
93
+ .describe('A computer-capable Anthropic or OpenAI model id to run with. Omit it for the one the platform picks. The configured key must be able to use it; a model it cannot use fails the run.'),
94
+ max_steps: maxSteps('what your key is billed', 'budget the bill on the key itself'),
95
+ };
96
+ /** What a run on AI credits takes: no `system` or `provider`, which such a run is refused. */
97
+ export const FUNDED_RUN_ARGS = {
98
+ computer_id: computerId,
99
+ prompt,
100
+ model: nonblankModel
101
+ .optional()
102
+ .describe('claude-sonnet-5-5, the default, or claude-opus-5-5; credits pay for these two. Another model needs a model key.'),
103
+ max_steps: maxSteps('what a run costs', 'the spend with max_cost_usd'),
104
+ max_cost_usd: maxCostArg,
105
+ };
91
106
  /** One run, BYOK or funded: `session.modelKey` decides which. */
92
- function runAgent(log, session, { computer_id, prompt, system, model, provider, max_steps, max_cost_usd }, extra) {
107
+ function runAgent(log, session, { computer_id, prompt, system, model, provider, max_steps, max_cost_usd, thread_id, store, }, extra) {
93
108
  return guarded(async () => {
109
+ if (store === false && thread_id !== undefined)
110
+ return refused(STORE_WITH_THREAD);
94
111
  const id = session.resolve(computer_id);
95
112
  const steps = [];
96
113
  let done;
@@ -111,6 +128,8 @@ function runAgent(log, session, { computer_id, prompt, system, model, provider,
111
128
  provider,
112
129
  max_steps,
113
130
  max_cost_usd,
131
+ thread_id,
132
+ store,
114
133
  stream: true,
115
134
  }),
116
135
  // No header at all on a run that credits pay for: its absence is what
@@ -204,13 +223,19 @@ function runAgent(log, session, { computer_id, prompt, system, model, provider,
204
223
  const diagnostic = new APIError('', typeof frame.status === 'number' ? frame.status : 0, frame);
205
224
  const spent = spending(frame.cost_usd, remaining);
206
225
  const topUp = topUpUrl(frame.status, frame, session.api.baseUrl);
207
- return withErrorMetadata(refused(`The run failed after ${steps.length} step(s).${stopReason(ev.data, topUp, session.funded)}` +
226
+ // A failed run is kept too, once it acted or when it continued a
227
+ // thread the caller named, and the thread is how the next run picks
228
+ // up from what this one did (OPL-6085).
229
+ const thread = keptThread(frame.thread_id);
230
+ return withErrorMetadata(refused(`The run failed after ${steps.length} step(s).${stopReason(ev.data, topUp, session.funded, 'run_agent')}` +
208
231
  (spent.line ? `\n\n${spent.line}` : '') +
232
+ (thread ? `\n\n${threadLine(thread)}` : '') +
209
233
  (steps.length ? `\n\nWhat it did, and is billed for:\n${steps.join('\n')}` : ''), {
210
234
  error: platformSaid(frame),
211
235
  status: errorMetadata({ status: frame.status }).fields.status,
212
236
  ...(topUp ? { code: INSUFFICIENT_CREDITS, top_up_url: topUp } : {}),
213
237
  ...spent.fields,
238
+ ...(thread ? { thread_id: thread } : {}),
214
239
  steps: frame.steps,
215
240
  usage: frame.usage,
216
241
  }), {
@@ -222,21 +247,10 @@ function runAgent(log, session, { computer_id, prompt, system, model, provider,
222
247
  }
223
248
  }
224
249
  catch (err) {
225
- // Refused before the stream opened. Two refusals are worded here rather
226
- // than by the shared advice: a run on credits the account cannot cover
227
- // (a 402 naming a top-up page, which that advice would call a plan
228
- // limit), and a run on credits the platform's AI service cannot serve
229
- // (which it would call a change that may or may not have happened).
230
- if (!(err instanceof APIError))
231
- throw err;
232
- const topUp = topUpUrl(err.status, err.body, session.api.baseUrl);
233
- if (topUp) {
234
- const result = failed(err, true, creditsExhaustedAdvice(topUp, 'run_agent'));
235
- result.content.push(...said('Refusal metadata:', { code: INSUFFICIENT_CREDITS, top_up_url: topUp }).content);
236
- return result;
237
- }
238
- if (fundedOutage(session.funded, err.status, err.body))
239
- return failed(err, true, fundedUnavailableAdvice('run_agent'));
250
+ // Refused before the stream opened: see preRunRefusal for the two worded here.
251
+ const refusal = preRunRefusal(err, session, 'run_agent');
252
+ if (refusal)
253
+ return refusal;
240
254
  throw err;
241
255
  }
242
256
  if (!done) {
@@ -246,23 +260,7 @@ function runAgent(log, session, { computer_id, prompt, system, model, provider,
246
260
  // ignores: a run that hit max_steps ended without finishing, and
247
261
  // treating every ending as success reports a failure as a result.
248
262
  const stop = String(done.stop ?? 'unknown');
249
- const verdict = stop === 'end_turn'
250
- ? 'finished'
251
- : stop === 'max_steps'
252
- ? `RAN OUT OF STEPS after ${done.steps ?? max_steps} — the task is probably unfinished`
253
- : stop === 'credits_exhausted'
254
- ? "RAN OUT OF AI CREDITS — the task is probably unfinished. A person can top up the account's credits on its billing page, or configure a model key"
255
- : stop === 'max_cost'
256
- ? 'REACHED max_cost_usd: another model call would have gone past it — the task is probably unfinished'
257
- : stop === 'refusal'
258
- ? 'the model declined the task'
259
- : stop === 'pause_turn'
260
- ? 'the model kept pausing its turn — the task is probably unfinished'
261
- : stop === 'incomplete'
262
- ? "the model's response was incomplete — the task is probably unfinished"
263
- : stop === 'safety_check'
264
- ? 'STOPPED FOR A SAFETY CHECK: the model asked for approval of an action, which this tool cannot give — the task is unfinished; say so rather than running it again'
265
- : `ended: ${stop}`;
263
+ const verdict = stopVerdict(stop, done.steps ?? max_steps);
266
264
  // Interpolated only when it IS a string, which is the same discipline
267
265
  // `stop` gets three lines up. `String()` over a shape this build does
268
266
  // not know — a content-block array is the plausible one — renders the
@@ -276,16 +274,43 @@ function runAgent(log, session, { computer_id, prompt, system, model, provider,
276
274
  ? ''
277
275
  : JSON.stringify(done.text);
278
276
  const spent = spending(done.cost_usd, remaining);
277
+ const thread = keptThread(done.thread_id);
279
278
  const result = `${verdict}\n\n${text}` +
280
279
  (spent.line ? `\n\n${spent.line}` : '') +
280
+ (thread ? `\n\n${threadLine(thread)}` : '') +
281
281
  `\n\nWhat it did:\n${steps.join('\n')}`;
282
282
  // The cost fields as read above, not as sent: a value that is not a
283
283
  // finite number (or a negative charge) is left out rather than repeated.
284
- const { cost_usd: _cost, credits_remaining_usd: _left, ...rest } = done;
285
- const record = { ...rest, ...spent.fields };
284
+ // And the thread as read above: a value that is not a thread id is left
285
+ // out of the record as it is left out of the sentence, rather than handed
286
+ // on to be sent back and refused.
287
+ const { cost_usd: _cost, credits_remaining_usd: _left, thread_id: _thread, ...rest } = done;
288
+ const record = { ...rest, ...(thread ? { thread_id: thread } : {}), ...spent.fields };
286
289
  return stop === 'end_turn' ? said(result, record) : refused(result, record);
287
290
  });
288
291
  }
292
+ /**
293
+ * A refusal answered before any run started, worded here where the shared
294
+ * advice would word it wrong, or `undefined` to let the caller rethrow it.
295
+ *
296
+ * Two refusals: a run on credits the account cannot cover (a 402 naming a
297
+ * top-up page, which that advice would call a plan limit), and a run on
298
+ * credits the platform's AI service cannot serve (which it would call a change
299
+ * that may or may not have happened). Shared by every tool that starts a run.
300
+ */
301
+ export function preRunRefusal(err, session, tool) {
302
+ if (!(err instanceof APIError))
303
+ return undefined;
304
+ const topUp = topUpUrl(err.status, err.body, session.api.baseUrl);
305
+ if (topUp) {
306
+ const result = failed(err, true, creditsExhaustedAdvice(topUp, tool));
307
+ result.content.push(...said('Refusal metadata:', { code: INSUFFICIENT_CREDITS, top_up_url: topUp }).content);
308
+ return result;
309
+ }
310
+ if (fundedOutage(session.funded, err.status, err.body))
311
+ return failed(err, true, fundedUnavailableAdvice(tool));
312
+ return undefined;
313
+ }
289
314
  /**
290
315
  * What a run on credits cost, and what the account has left, as a sentence and
291
316
  * as fields — or nothing, on a run a model key paid for, which reports neither.
@@ -311,7 +336,7 @@ function spending(cost, remaining) {
311
336
  return { line: `Cost: ${parts.join('; ')}.`, fields };
312
337
  }
313
338
  /** Dollars to the cent, or to a hundredth of a cent when a cent would read as nothing. */
314
- const usd = (value) => {
339
+ export const usd = (value) => {
315
340
  const digits = value !== 0 && Math.abs(value) < 0.01 ? 4 : 2;
316
341
  return `${value < 0 ? '-' : ''}$${Math.abs(value).toFixed(digits)}`;
317
342
  };
@@ -354,7 +379,7 @@ function fundedOutage(funded, status, body) {
354
379
  * direction: the leading space is part of the returned clause so that an
355
380
  * unclassified stop reads as one sentence rather than as a missing one.
356
381
  */
357
- function stopReason(data, topUp, funded) {
382
+ export function stopReason(data, topUp, funded, tool) {
358
383
  const frame = isRecord(data) ? data : undefined;
359
384
  const status = typeof frame?.status === 'number' ? frame.status : undefined;
360
385
  const said = platformSaid(frame);
@@ -364,16 +389,16 @@ function stopReason(data, topUp, funded) {
364
389
  // platform reports in its own AI-service words is its provider refusing
365
390
  // Mandala's key, not the caller's credential.
366
391
  if (!topUp && fundedOutage(funded, status, frame))
367
- return ` HTTP ${status}: ${fundedUnavailableAdvice('run_agent')}.${why}`;
392
+ return ` HTTP ${status}: ${fundedUnavailableAdvice(tool)}.${why}`;
368
393
  // 401 and 403 are split, because the recovery is not the same one. A shared
369
394
  // clause told a caller whose ROLE had been taken away to re-authenticate,
370
395
  // which restores nothing and sends it round the same refusal with another
371
396
  // prompt's worth of billed steps behind it (Codex review).
372
397
  if (status === 401) {
373
- return (` HTTP ${status}: ${authenticationAdvice(reason)}.${why} Do NOT call run_agent again with the same` +
398
+ return (` HTTP ${status}: ${authenticationAdvice(reason)}.${why} Do NOT call ${tool} again with the same` +
374
399
  ` prompt. Read what the steps below already did before deciding what is left to do.`);
375
400
  }
376
- const advice = agentRunAdvice(status, reason, 'run_agent', topUp);
401
+ const advice = agentRunAdvice(status, reason, tool, topUp);
377
402
  return advice ? ` HTTP ${status}: ${advice}.${why}` : why;
378
403
  }
379
404
  const isRecord = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/tools/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/tools/agent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/tools/chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AASzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAwK5C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CAe/F;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,SAuF1B,CAAC"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/tools/chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAiBzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAwL5C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CAe/F;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,SA0G1B,CAAC"}
@@ -4,6 +4,7 @@ import { APIError, agentRunAdvice, messageFromBody } from '../errors.js';
4
4
  import { apiErrorMessage, errorMetadata, failed, originWording, refused, said } from '../format.js';
5
5
  import * as P from '../paths.js';
6
6
  import { heartbeat } from '../poll.js';
7
+ import { keptThread, keptThreadField, STORE_WITH_THREAD, storeArg, threadIdArg, threadLine, } from './conversation.js';
7
8
  import { count, label } from './directory.js';
8
9
  import { computerSchema } from './results.js';
9
10
  const content = z.union([
@@ -17,7 +18,15 @@ const choice = z.object({
17
18
  message: z.object({ role: z.literal('assistant'), content: z.string() }),
18
19
  finish_reason: label,
19
20
  });
20
- const agent = z.object({ computer_id: label, steps: count, stop: label });
21
+ // `thread_id` is the thread the exchange was kept in (OPL-6085), absent with
22
+ // `store: false`; listed here because an object schema drops what it does not
23
+ // name, and the id is what continues the conversation.
24
+ const agent = z.object({
25
+ computer_id: label,
26
+ steps: count,
27
+ stop: label,
28
+ thread_id: keptThreadField,
29
+ });
21
30
  const completion = z.object({
22
31
  id: label,
23
32
  object: z.literal('chat.completion'),
@@ -84,6 +93,8 @@ const failedAgent = z.object({
84
93
  cache_write_tokens: count,
85
94
  }),
86
95
  steps,
96
+ // A failed run is kept too, once it acted or when it continued a thread.
97
+ thread_id: keptThreadField,
87
98
  });
88
99
  /**
89
100
  * The advice for a failed chat run, in place of the status advice every other
@@ -154,8 +165,15 @@ function chatFailure(error) {
154
165
  : apiErrorMessage(error));
155
166
  const result = failed(new APIError(detail, error.status, { ...projected, error: detail }, error.retryAfterMs, error), nested === undefined, runAdvice(error));
156
167
  const diagnostics = errorMetadata(error);
168
+ // Read on its own rather than off the bounded native record: a failure with
169
+ // many steps is exactly the one whose record is omitted for size, and the
170
+ // thread is how the next run picks up from what those steps did.
171
+ const thread = keptThread(isRecord(nested?.agent) ? nested.agent.thread_id : undefined);
172
+ if (thread)
173
+ result.content.push({ type: 'text', text: threadLine(thread) });
157
174
  result.content.push(...said(`${incompleteNative ? 'Native agent failure metadata was malformed or oversized and omitted. ' : ''}${diagnostics.omitted ? 'Oversized diagnostic metadata was omitted. ' : ''}Chat refusal metadata; recorded work may already be billed. Inspect what took effect before another run.`, {
158
175
  ...diagnostics.fields,
176
+ ...(thread ? { thread_id: thread } : {}),
159
177
  ...(boundedNative ? { agent: native.data } : {}),
160
178
  ...(incompleteNative ? { incomplete: true } : {}),
161
179
  }).content);
@@ -188,7 +206,7 @@ export const registerChat = (server, session) => {
188
206
  const modelKey = session.modelKey;
189
207
  server.registerTool('run_agent_chat', {
190
208
  title: 'Drive the computer with BYOK textual chat',
191
- description: "Run the same hosted computer agent using OpenAI-shaped textual messages and JSON-only results (stream:false). The last user message is the task; system messages provide standing instructions. Previous user/assistant conversation is not replayed. This is BYOK computer control, not hosted inference or a chat UI. The computer must already be running. Bills the caller's configured Anthropic or OpenAI key. A GPT or o-series model selects OpenAI; a Claude model selects Anthropic. SHORT TASKS ONLY: on the hosted API a request that does not stream is cut at the edge after about 120 seconds (HTTP 524), which stops the run and loses its result, usage and steps, and the default 20 steps can take longer than that. Use run_agent, which streams, for anything longer. Progress counts waiting heartbeats, not completed actions; progressToken plus resetTimeoutOnProgress keeps only the MCP client waiting, not the edge. Never automatically replay a failed run.",
209
+ description: "Run the same hosted computer agent using OpenAI-shaped textual messages and JSON-only results (stream:false). The last user message is the task; system messages provide standing instructions; the user and assistant messages before it are given to the model as the conversation so far, told they are done. With thread_id, the thread's own turns are the conversation instead and earlier messages are not read, so the last user message alone is enough. Unless it sent store: false, every run that acts or answers is kept in a thread, and agent.thread_id in the answer continues it. This is BYOK computer control, not hosted inference or a chat UI. The computer must already be running. Bills the caller's configured Anthropic or OpenAI key. A GPT or o-series model selects OpenAI; a Claude model selects Anthropic. SHORT TASKS ONLY: on the hosted API a request that does not stream is cut at the edge after about 120 seconds (HTTP 524), which stops the run and loses its result, usage and steps, and the default 20 steps can take longer than that. Use run_agent, which streams, for anything longer. Progress counts waiting heartbeats, not completed actions; progressToken plus resetTimeoutOnProgress keeps only the MCP client waiting, not the edge. Never automatically replay a failed run.",
192
210
  inputSchema: {
193
211
  computer_id: computerSchema,
194
212
  messages: z
@@ -210,14 +228,26 @@ export const registerChat = (server, session) => {
210
228
  .refine((v) => v.trim().length > 0, 'model must not be blank')
211
229
  .optional(),
212
230
  max_steps: z.number().int().min(1).max(P.AGENT_MAX_STEPS).default(20),
231
+ thread_id: threadIdArg,
232
+ store: storeArg,
213
233
  },
214
234
  annotations: { openWorldHint: true },
215
- }, async ({ computer_id, messages, model, provider, max_steps }, extra) => {
235
+ }, async ({ computer_id, messages, model, provider, max_steps, thread_id, store }, extra) => {
236
+ if (store === false && thread_id !== undefined)
237
+ return refused(STORE_WITH_THREAD);
216
238
  let beat;
217
239
  try {
218
240
  const id = session.resolve(computer_id);
219
241
  extra.signal.throwIfAborted();
220
- const body = P.chatBody({ computer_id: id, messages, model, provider, max_steps });
242
+ const body = P.chatBody({
243
+ computer_id: id,
244
+ messages,
245
+ model,
246
+ provider,
247
+ max_steps,
248
+ thread_id,
249
+ store,
250
+ });
221
251
  beat = heartbeat(extra, server.server);
222
252
  await beat('Waiting for the chat agent result; progress counts heartbeats, not completed actions.');
223
253
  const value = await session.api.json('POST', P.CHAT_COMPLETIONS, {
@@ -227,8 +257,12 @@ export const registerChat = (server, session) => {
227
257
  });
228
258
  extra.signal.throwIfAborted();
229
259
  const parsed = completion.safeParse(value);
230
- if (!parsed.success)
231
- return safeResult(refused('Malformed or missing chat terminal metadata; task completion is unconfirmed. Valid partial result:', partial(value)), modelKey);
260
+ if (!parsed.success) {
261
+ // The rest of the answer did not parse, but a thread it names is
262
+ // still where this run's exchange was kept.
263
+ const thread = keptThread(isRecord(value) && isRecord(value.agent) ? value.agent.thread_id : undefined);
264
+ return safeResult(refused(`Malformed or missing chat terminal metadata; task completion is unconfirmed.${thread ? ` ${threadLine(thread)}` : ''} Valid partial result:`, partial(value)), modelKey);
265
+ }
232
266
  const data = parsed.data;
233
267
  const finished = data.agent.stop === 'end_turn' &&
234
268
  data.choices[0].finish_reason === 'stop' &&
@@ -236,9 +270,11 @@ export const registerChat = (server, session) => {
236
270
  data.agent.computer_id === id &&
237
271
  data.agent.steps <= max_steps &&
238
272
  data.usage.total_tokens === data.usage.prompt_tokens + data.usage.completion_tokens;
273
+ const thread = keptThread(data.agent.thread_id);
274
+ const kept = thread ? ` ${threadLine(thread)}` : '';
239
275
  return safeResult(finished
240
- ? said('The chat agent finished.', data)
241
- : refused('The chat agent did not establish successful task completion. Inspect stop, finish reason and partial work before deciding what remains; do not replay automatically.', data), modelKey);
276
+ ? said(`The chat agent finished.${kept}`, data)
277
+ : refused(`The chat agent did not establish successful task completion. Inspect stop, finish reason and partial work before deciding what remains; do not replay automatically.${kept}`, data), modelKey);
242
278
  }
243
279
  catch (error) {
244
280
  return safeResult(chatFailure(error), modelKey);
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/tools/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/tools/chat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * What every tool that starts an agent run, or reads one back, says the same
4
+ * way (OPL-6085): the thread arguments, the sentence that hands a model its
5
+ * thread, and what a run's `stop` means. One module, so run_agent,
6
+ * run_agent_chat and the background run tools cannot drift apart on them.
7
+ */
8
+ /**
9
+ * A thread to continue (OPL-6085), on every tool that starts a run.
10
+ *
11
+ * Checked against the platform's documented shape before the call: a value
12
+ * that is not a thread id can only be refused, after a model has waited for it.
13
+ */
14
+ export declare const threadIdArg: z.ZodOptional<z.ZodString>;
15
+ /** Whether a run is kept in a thread at all (OPL-6085). Not on a background run, which refuses `false`. */
16
+ export declare const storeArg: z.ZodOptional<z.ZodBoolean>;
17
+ /** The refusal for `store: false` beside a `thread_id`, which the platform answers 400. */
18
+ export declare const STORE_WITH_THREAD = "store: false keeps nothing, so it cannot continue a thread: send thread_id or store: false, not both. Nothing was sent.";
19
+ /**
20
+ * What a run's `stop` means, as the first thing a model reads about it.
21
+ *
22
+ * Shared by run_agent and the background run tools, because the same field
23
+ * comes back on both and a run that hit max_steps reads the same either way:
24
+ * a run that ended without finishing. Only `end_turn` is finished.
25
+ */
26
+ export declare function stopVerdict(stop: string, steps: unknown): string;
27
+ /**
28
+ * The thread a run was kept in, when the platform named one in the documented
29
+ * shape. Anything else is left out of the sentence that tells a model to send
30
+ * it back, rather than handed on as an id the next call would be refused.
31
+ */
32
+ export declare function keptThread(value: unknown): string | undefined;
33
+ /**
34
+ * A `thread_id` field in an answer's schema: kept when it is a thread id, and
35
+ * dropped — not a failed parse, and not handed on — when it is anything else.
36
+ */
37
+ export declare const keptThreadField: z.ZodCatch<z.ZodOptional<z.ZodString>>;
38
+ /** The sentence that hands a model its thread. */
39
+ export declare const threadLine: (thread: string) => string;
40
+ //# sourceMappingURL=conversation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/tools/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;GAKG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,WAAW,4BAMrB,CAAC;AAEJ,2GAA2G;AAC3G,eAAO,MAAM,QAAQ,6BAKlB,CAAC;AAEJ,2FAA2F;AAC3F,eAAO,MAAM,iBAAiB,4HAC6F,CAAC;AAE5H;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAoBhE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE7D;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,wCAA4D,CAAC;AAEzF,kDAAkD;AAClD,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,KAAG,MACiD,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { z } from 'zod';
2
+ import * as P from '../paths.js';
3
+ /**
4
+ * What every tool that starts an agent run, or reads one back, says the same
5
+ * way (OPL-6085): the thread arguments, the sentence that hands a model its
6
+ * thread, and what a run's `stop` means. One module, so run_agent,
7
+ * run_agent_chat and the background run tools cannot drift apart on them.
8
+ */
9
+ /**
10
+ * A thread to continue (OPL-6085), on every tool that starts a run.
11
+ *
12
+ * Checked against the platform's documented shape before the call: a value
13
+ * that is not a thread id can only be refused, after a model has waited for it.
14
+ */
15
+ export const threadIdArg = z
16
+ .string()
17
+ .regex(P.THREAD_ID, 'thread_id is thr_ followed by 24 lowercase hex characters')
18
+ .optional()
19
+ .describe("Continue an earlier run's conversation: a thread_id an earlier agent run answered, or one from list_agent_threads. The model is given that thread's earlier turns, told they are done, and acts only on this task. Only on the computer the thread belongs to (another is refused with 409), and a thread holds at most 100 turns (a full one is refused with 409: leave thread_id out to start a new one). Leave it out to start a new thread.");
20
+ /** Whether a run is kept in a thread at all (OPL-6085). Not on a background run, which refuses `false`. */
21
+ export const storeArg = z
22
+ .boolean()
23
+ .optional()
24
+ .describe('false keeps no record of this run: no thread_id comes back and it cannot be continued. It cannot be combined with thread_id. Leave it out to keep the run, which is the default.');
25
+ /** The refusal for `store: false` beside a `thread_id`, which the platform answers 400. */
26
+ export const STORE_WITH_THREAD = 'store: false keeps nothing, so it cannot continue a thread: send thread_id or store: false, not both. Nothing was sent.';
27
+ /**
28
+ * What a run's `stop` means, as the first thing a model reads about it.
29
+ *
30
+ * Shared by run_agent and the background run tools, because the same field
31
+ * comes back on both and a run that hit max_steps reads the same either way:
32
+ * a run that ended without finishing. Only `end_turn` is finished.
33
+ */
34
+ export function stopVerdict(stop, steps) {
35
+ return stop === 'end_turn'
36
+ ? 'finished'
37
+ : stop === 'max_steps'
38
+ ? `RAN OUT OF STEPS after ${typeof steps === 'number' ? steps : 'its max_steps'} — the task is probably unfinished`
39
+ : stop === 'credits_exhausted'
40
+ ? "RAN OUT OF AI CREDITS — the task is probably unfinished. A person can top up the account's credits on its billing page, or configure a model key"
41
+ : stop === 'max_cost'
42
+ ? 'REACHED max_cost_usd: another model call would have gone past it — the task is probably unfinished'
43
+ : stop === 'refusal'
44
+ ? 'the model declined the task'
45
+ : stop === 'pause_turn'
46
+ ? 'the model kept pausing its turn — the task is probably unfinished'
47
+ : stop === 'incomplete'
48
+ ? "the model's response was incomplete — the task is probably unfinished"
49
+ : stop === 'safety_check'
50
+ ? 'STOPPED FOR A SAFETY CHECK: the model asked for approval of an action, which this tool cannot give — the task is unfinished; say so rather than running it again'
51
+ : stop === 'rate_limited'
52
+ ? 'RAN OUT OF RATE BUDGET part way — the task is probably unfinished; wait before sending what is left'
53
+ : `ended: ${stop} — not finished (only end_turn is)`;
54
+ }
55
+ /**
56
+ * The thread a run was kept in, when the platform named one in the documented
57
+ * shape. Anything else is left out of the sentence that tells a model to send
58
+ * it back, rather than handed on as an id the next call would be refused.
59
+ */
60
+ export function keptThread(value) {
61
+ return typeof value === 'string' && P.THREAD_ID.test(value) ? value : undefined;
62
+ }
63
+ /**
64
+ * A `thread_id` field in an answer's schema: kept when it is a thread id, and
65
+ * dropped — not a failed parse, and not handed on — when it is anything else.
66
+ */
67
+ export const keptThreadField = z.string().regex(P.THREAD_ID).optional().catch(undefined);
68
+ /** The sentence that hands a model its thread. */
69
+ export const threadLine = (thread) => `Thread: ${thread}. Send it as thread_id with the next task to continue this conversation.`;
70
+ //# sourceMappingURL=conversation.js.map