@adonis-agora/agent 0.66.1 → 0.68.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 (34) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/providers/agent_provider.d.ts.map +1 -1
  3. package/dist/providers/agent_provider.js +46 -0
  4. package/dist/providers/agent_provider.js.map +1 -1
  5. package/dist/src/ai-sdk/ai-sdk-model.d.ts +12 -1
  6. package/dist/src/ai-sdk/ai-sdk-model.d.ts.map +1 -1
  7. package/dist/src/ai-sdk/ai-sdk-model.js +87 -5
  8. package/dist/src/ai-sdk/ai-sdk-model.js.map +1 -1
  9. package/dist/src/channels/handler.d.ts +44 -0
  10. package/dist/src/channels/handler.d.ts.map +1 -1
  11. package/dist/src/channels/handler.js +53 -9
  12. package/dist/src/channels/handler.js.map +1 -1
  13. package/dist/src/channels/index.d.ts +1 -1
  14. package/dist/src/channels/index.d.ts.map +1 -1
  15. package/dist/src/channels/index.js.map +1 -1
  16. package/dist/src/define_config.d.ts +13 -0
  17. package/dist/src/define_config.d.ts.map +1 -1
  18. package/dist/src/define_config.js.map +1 -1
  19. package/dist/src/index.d.ts +2 -1
  20. package/dist/src/index.d.ts.map +1 -1
  21. package/dist/src/index.js +2 -1
  22. package/dist/src/index.js.map +1 -1
  23. package/dist/src/pricing/boot-pricing.d.ts +41 -0
  24. package/dist/src/pricing/boot-pricing.d.ts.map +1 -0
  25. package/dist/src/pricing/boot-pricing.js +87 -0
  26. package/dist/src/pricing/boot-pricing.js.map +1 -0
  27. package/dist/src/pricing/models-dev.d.ts +17 -12
  28. package/dist/src/pricing/models-dev.d.ts.map +1 -1
  29. package/dist/src/pricing/models-dev.js +64 -15
  30. package/dist/src/pricing/models-dev.js.map +1 -1
  31. package/dist/src/spi/model-provider.d.ts +16 -1
  32. package/dist/src/spi/model-provider.d.ts.map +1 -1
  33. package/package.json +1 -1
  34. package/skills/agent-setup/SKILL.md +12 -1
@@ -13,9 +13,48 @@ function idOf(model) {
13
13
  const id = model.modelId;
14
14
  return typeof id === 'string' ? id : undefined;
15
15
  }
16
+ /**
17
+ * The provider family of an AI SDK model, as models.dev names it: `openrouter.chat` → `openrouter`,
18
+ * `anthropic.messages` → `anthropic`. A bare string id is routed by the Vercel AI Gateway (`vercel`).
19
+ */
20
+ function providerOf(model) {
21
+ if (typeof model === 'string')
22
+ return 'vercel';
23
+ const provider = model.provider;
24
+ if (typeof provider !== 'string' || provider.length === 0)
25
+ return undefined;
26
+ const family = provider.split('.')[0] ?? provider;
27
+ return family === 'gateway' ? 'vercel' : family;
28
+ }
29
+ /** OpenRouter (`@openrouter/ai-sdk-provider`): reports the real, routed cost per call. */
30
+ function isOpenRouter(model) {
31
+ return providerOf(model) === 'openrouter';
32
+ }
33
+ /**
34
+ * Whether a model's provider reports the call's real USD cost in its metadata — the Vercel AI
35
+ * Gateway (`providerMetadata.gateway.cost`) and OpenRouter (`providerMetadata.openrouter.usage.cost`).
36
+ * A direct provider reports only tokens; its cost is an estimate off the pricing table.
37
+ */
38
+ function reportsCost(model) {
39
+ const provider = providerOf(model);
40
+ return provider === 'vercel' || provider === 'openrouter';
41
+ }
42
+ function describeModel(model, id = idOf(model)) {
43
+ if (id === undefined)
44
+ return [];
45
+ const provider = providerOf(model);
46
+ return [
47
+ {
48
+ modelId: id,
49
+ ...(provider !== undefined ? { provider } : {}),
50
+ reportsCost: reportsCost(model),
51
+ },
52
+ ];
53
+ }
16
54
  export function aiSdkModel(model, opts) {
17
55
  const own = idOf(model);
18
56
  return {
57
+ describeModels: () => describeModel(model, own),
19
58
  async runTurn(args) {
20
59
  // One model, so a pick naming another cannot be honoured — and running this one instead would
21
60
  // answer on a model nobody chose. `aiSdkModels` is the provider for a picker.
@@ -84,6 +123,7 @@ export function aiSdkModels(models, options = {}) {
84
123
  };
85
124
  return {
86
125
  catalog: staticModelCatalog(view),
126
+ describeModels: () => entries.flatMap(([, entry]) => describeModel(entry.model)),
87
127
  async runTurn(args) {
88
128
  const id = args.model ?? fallback;
89
129
  const entry = byId.get(id);
@@ -101,6 +141,7 @@ async function runTurnOn(model, settings, args) {
101
141
  const output = args.outputSchema !== undefined ? toSdkOutput(args.outputSchema) : undefined;
102
142
  const result = streamText({
103
143
  ...settings,
144
+ ...withOpenRouterUsageAccounting(model, settings.providerOptions),
104
145
  model,
105
146
  instructions: args.system,
106
147
  messages: mapMessages(args.messages),
@@ -173,6 +214,9 @@ async function runTurnOn(model, settings, args) {
173
214
  const object = output === undefined ? undefined : await result.output;
174
215
  const modelId = finalStep.response.modelId;
175
216
  const costUsd = extractCostUsd(finalStep.providerMetadata);
217
+ if (costUsd === undefined && isOpenRouter(model)) {
218
+ warnOpenRouterCostMissing(idOf(model) ?? modelId ?? 'unknown');
219
+ }
176
220
  return {
177
221
  text,
178
222
  toolCalls: toolCalls.map(mapToolCall),
@@ -387,10 +431,48 @@ function mapUsage(usage) {
387
431
  };
388
432
  }
389
433
  /**
390
- * A gateway reports the ACTUAL spend for the turn; a direct provider (Anthropic/OpenAI/Bedrock)
391
- * doesn't, leaving this undefined so the governance read-model estimates from tokens. We read the
392
- * Vercel AI Gateway shape (`gateway.cost`) first, then OpenRouter (`openrouter.total_cost`, also
393
- * nested under `openrouter.usage.total_cost`).
434
+ * OpenRouter only bills what it reports, and reports cost in the response only when usage accounting
435
+ * is asked for (`usage: { include: true }`). The OpenRouter provider forwards
436
+ * `providerOptions.openrouter` into the request body, so the adapter asks on every OpenRouter call —
437
+ * unless the app set its own `usage`, which wins. Any other model gets the options untouched.
438
+ */
439
+ function withOpenRouterUsageAccounting(model, providerOptions) {
440
+ if (!isOpenRouter(model)) {
441
+ return providerOptions !== undefined ? { providerOptions } : {};
442
+ }
443
+ const own = providerOptions?.openrouter ?? {};
444
+ return {
445
+ providerOptions: {
446
+ ...providerOptions,
447
+ openrouter: { usage: { include: true }, ...own },
448
+ },
449
+ };
450
+ }
451
+ const openRouterCostWarned = new Set();
452
+ /**
453
+ * Said once per model per process: an OpenRouter call came back without `usage.cost`. That should not
454
+ * happen with the official provider (the adapter asks for usage accounting); it does when the model
455
+ * is OpenRouter reached through another SDK, or an old provider version that drops the field.
456
+ */
457
+ function warnOpenRouterCostMissing(modelId) {
458
+ if (openRouterCostWarned.has(modelId))
459
+ return;
460
+ openRouterCostWarned.add(modelId);
461
+ console.warn(`[@adonis-agora/agent] OpenRouter model "${modelId}" returned no cost ` +
462
+ '(`providerMetadata.openrouter.usage.cost`). Cost falls back to the pricing table, which may ' +
463
+ 'have no row for it. Use `@openrouter/ai-sdk-provider` >= 1 (`createOpenRouter(...).chat(id)`); ' +
464
+ 'do not set `usage: { include: false }`.');
465
+ }
466
+ /** Test seam: forget which models already warned. */
467
+ export function resetOpenRouterCostWarnings() {
468
+ openRouterCostWarned.clear();
469
+ }
470
+ /**
471
+ * The provider-reported USD cost of the call, when a gateway reports one:
472
+ * - Vercel AI Gateway: `providerMetadata.gateway.cost` (a decimal string).
473
+ * - OpenRouter (`@openrouter/ai-sdk-provider`): `providerMetadata.openrouter.usage.cost` — what the
474
+ * account was actually charged for the routed provider, which varies per call. `total_cost` (top
475
+ * level or under `usage`) is the shape older integrations used, kept as a fallback.
394
476
  */
395
477
  function extractCostUsd(metadata) {
396
478
  if (!metadata) {
@@ -409,7 +491,7 @@ function extractCostUsd(metadata) {
409
491
  }
410
492
  const usage = asJsonObject(openrouter.usage);
411
493
  if (usage) {
412
- const nested = toFiniteNumber(usage.total_cost);
494
+ const nested = toFiniteNumber(usage.cost) ?? toFiniteNumber(usage.total_cost);
413
495
  if (nested !== undefined) {
414
496
  return nested;
415
497
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ai-sdk-model.js","sourceRoot":"","sources":["../../../src/ai-sdk/ai-sdk-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-sdk-model.js","sourceRoot":"","sources":["../../../src/ai-sdk/ai-sdk-model.ts"],"names":[],"mappings":"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"}
@@ -99,6 +99,39 @@ export interface ChannelTurnStarted {
99
99
  /** The message waits in the thread's queue (its run starts later under `runId`). */
100
100
  queued: boolean;
101
101
  }
102
+ /**
103
+ * How a message's (or a resumed run's) handling ended in this process —
104
+ * {@link ChannelTurnEnded.outcome}:
105
+ * - `replied`: the turn's stream ended and what it said was delivered (possibly nothing — a turn
106
+ * that said nothing, or whose messages `canDeliver` dropped);
107
+ * - `failed`: the turn failed (`texts.failed` was sent), or the job itself failed after its retries
108
+ * (`error` is set; `onError` is told too);
109
+ * - `timeout`: the turn ran past `timeoutMs` and was cancelled (what it said so far was delivered);
110
+ * - `blocked`: the turn waits for a decision a text channel cannot make (blocking approvals);
111
+ * - `parked`: the turn asked a question and waits for the answer — a later message (or the question's
112
+ * timeout) resumes it, and that one ends with its own call;
113
+ * - `stopped`: no turn — the sender is unknown (`unknownSender`) or `beforeTurn` stopped it;
114
+ * - `handled`: no turn to read — an answer, a button press, a text decision, or nothing left to answer;
115
+ * - `interrupted`: the durable engine took the job away from this process mid-way (it goes on
116
+ * elsewhere, or later); this process will not deliver anything more for it.
117
+ */
118
+ export type ChannelTurnOutcome = 'replied' | 'failed' | 'timeout' | 'blocked' | 'parked' | 'stopped' | 'handled' | 'interrupted';
119
+ /** This process is done with a message (or a resumed run) — {@link ChannelHandleOptions.onTurnEnded}. */
120
+ export interface ChannelTurnEnded {
121
+ /** The adapter's name. */
122
+ channel: string;
123
+ conversation: string;
124
+ /** Who the conversation was answered as — `null` for an unknown sender, or before it was known. */
125
+ actor: Actor | null;
126
+ /** The message handled — `null` when a run is resumed after its question (answered or timed out). */
127
+ message: InboundMessage | null;
128
+ /** The run read, when a turn was read (or resumed). */
129
+ runId: string | null;
130
+ threadId: string | null;
131
+ outcome: ChannelTurnOutcome;
132
+ /** What failed, for `outcome: 'failed'` from an error (after its retries). */
133
+ error?: unknown;
134
+ }
102
135
  /** What {@link ChannelHandleOptions.prepareMedia} makes of a downloaded file. */
103
136
  export type ChannelPreparedMedia = undefined
104
137
  /** Attach this file instead (converted, resized…). */
@@ -146,6 +179,17 @@ export interface ChannelHandleOptions {
146
179
  onThreadCreated?(threadId: string, actor: Actor, message: InboundMessage): void | Promise<void>;
147
180
  /** A turn started (or was queued) for a message — record where it came from, start a meter. */
148
181
  onTurnStarted?(turn: ChannelTurnStarted): void | Promise<void>;
182
+ /**
183
+ * This process is done handling a message, or a run resumed after its question — called ALWAYS,
184
+ * once per job this process ran, whatever it came to ({@link ChannelTurnOutcome}): a reply, a
185
+ * failure, a timeout, a turn that sent nothing, a sender stopped before any turn (after
186
+ * `adapter.acknowledge`), a durable job taken away mid-way. For what a process started for the
187
+ * message and must stop — a "typing…" presence, a meter. Per attempt: when a durable job runs
188
+ * again (a crash, a lease taken over by another process) each process that ran it is told. Not
189
+ * called for a question's timeout itself (the resumed run it starts is). Errors it throws are
190
+ * logged and ignored.
191
+ */
192
+ onTurnEnded?(turn: ChannelTurnEnded): void | Promise<void>;
149
193
  /**
150
194
  * Checked before EVERY message the channel sends — replies, cards, questions, relayed outcomes.
151
195
  * `false` → that message is dropped (e.g. the number was unlinked from the account mid-turn).
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/channels/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/channels/handler.ts"],"names":[],"mappings":"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"}
@@ -611,6 +611,7 @@ export function handleChannel(adapter, options) {
611
611
  let failed = false;
612
612
  let blocked = false;
613
613
  let parked = false;
614
+ let timedOut = false;
614
615
  let position = 0;
615
616
  const deadlineAt = Date.now() + timeoutMs;
616
617
  const flush = async (end) => {
@@ -640,6 +641,7 @@ export function handleChannel(adapter, options) {
640
641
  });
641
642
  const next = await Promise.race([stream.next(), timeout]).finally(() => clearTimeout(timer));
642
643
  if (next === 'timeout') {
644
+ timedOut = true;
643
645
  failed = parts.length === 0 && rendered.size === 0 && !wroteText;
644
646
  await service.cancel(runId).catch(() => { });
645
647
  break;
@@ -759,7 +761,7 @@ export function handleChannel(adapter, options) {
759
761
  void stream.return?.();
760
762
  }
761
763
  if (parked)
762
- return;
764
+ return 'parked';
763
765
  await flush(true);
764
766
  if (failed)
765
767
  await out.text(texts.failed, 'notice');
@@ -768,6 +770,7 @@ export function handleChannel(adapter, options) {
768
770
  const left = [...proposals.values()];
769
771
  for (const proposal of left)
770
772
  await sendProposal(service, store, texts, out, conversation, proposal, left.length > 1);
773
+ return timedOut ? 'timeout' : failed ? 'failed' : blocked ? 'blocked' : 'replied';
771
774
  };
772
775
  const hookContext = (message) => ({
773
776
  channel: name,
@@ -790,11 +793,11 @@ export function handleChannel(adapter, options) {
790
793
  : replyList((await textsFor(service, { actor: null, message })).unknownSender);
791
794
  for (const reply of replies)
792
795
  await out.reply(reply, 'gate');
793
- return { stop: true };
796
+ return { stop: true, actor: null };
794
797
  }
795
798
  const gate = await options.beforeTurn?.(message, actor, hookContext(message));
796
799
  if (gate === 'stop')
797
- return { stop: true };
800
+ return { stop: true, actor };
798
801
  if (gate !== undefined && gate !== 'continue') {
799
802
  const out = outbox(store, `${name}:out:msg:${message.id}:gate`, message.conversation, {
800
803
  actor,
@@ -802,7 +805,7 @@ export function handleChannel(adapter, options) {
802
805
  });
803
806
  for (const reply of 'replies' in gate ? gate.replies : [gate.reply])
804
807
  await out.reply(reply, 'gate');
805
- return { stop: true };
808
+ return { stop: true, actor };
806
809
  }
807
810
  const threadId = (await options.thread(actor, message)) ?? null;
808
811
  return { stop: false, actor, threadId };
@@ -929,9 +932,34 @@ export function handleChannel(adapter, options) {
929
932
  message: error instanceof Error ? error.message : String(error),
930
933
  });
931
934
  };
935
+ /** Tell `onTurnEnded` — never failing the job. */
936
+ const turnEnded = async (turn) => {
937
+ if (!options.onTurnEnded)
938
+ return;
939
+ try {
940
+ await options.onTurnEnded(turn);
941
+ }
942
+ catch (error) {
943
+ console.error('[@adonis-agora/agent] Channel onTurnEnded failed', {
944
+ channel: name,
945
+ message: error instanceof Error ? error.message : String(error),
946
+ });
947
+ }
948
+ };
932
949
  /** One job, phase by phase — each phase a checkpoint under a durable engine. */
933
950
  const run = async (job, step) => {
934
951
  const message = job.kind === 'message' ? job.message : null;
952
+ /** What `onTurnEnded` is told — a question's timeout is not a turn (the resume it starts is). */
953
+ const ended = {
954
+ channel: name,
955
+ conversation: job.conversation,
956
+ actor: job.kind === 'resume' ? job.actor : null,
957
+ message,
958
+ runId: job.kind === 'resume' ? job.runId : null,
959
+ threadId: job.kind === 'resume' ? job.threadId : null,
960
+ // A step a durable engine had checkpointed before is not run again here: what it came to.
961
+ outcome: 'replied',
962
+ };
935
963
  try {
936
964
  if (job.kind === 'timeout') {
937
965
  await step('timeout', () => retry(async () => {
@@ -969,29 +997,45 @@ export function handleChannel(adapter, options) {
969
997
  if (job.kind === 'resume') {
970
998
  await step('read', () => retry(async () => {
971
999
  const service = await serviceFor();
972
- await readTurn(service, await storeFor(service), job.actor, job.runId, job.threadId, job.conversation, null);
1000
+ ended.outcome = await readTurn(service, await storeFor(service), job.actor, job.runId, job.threadId, job.conversation, null);
973
1001
  return null;
974
1002
  }));
975
1003
  return;
976
1004
  }
977
1005
  const received = job.message;
978
1006
  const prepared = await step('prepare', () => retry(() => prepare(received)));
979
- if (prepared.stop)
1007
+ ended.actor = prepared.actor ?? null;
1008
+ if (prepared.stop) {
1009
+ ended.outcome = 'stopped';
980
1010
  return;
1011
+ }
1012
+ ended.threadId = prepared.threadId;
981
1013
  const turn = await step('act', () => retry(() => act(received, prepared.actor, prepared.threadId)));
982
- if (turn === null)
1014
+ if (turn === null) {
1015
+ ended.outcome = 'handled';
983
1016
  return;
1017
+ }
1018
+ ended.runId = turn.runId;
1019
+ ended.threadId = turn.threadId;
984
1020
  await step('read', () => retry(async () => {
985
1021
  const service = await serviceFor();
986
- await readTurn(service, await storeFor(service), prepared.actor, turn.runId, turn.threadId, received.conversation, received);
1022
+ ended.outcome = await readTurn(service, await storeFor(service), prepared.actor, turn.runId, turn.threadId, received.conversation, received);
987
1023
  return null;
988
1024
  }));
989
1025
  }
990
1026
  catch (error) {
991
- if (error?.name === 'WorkflowSuspended')
1027
+ if (error?.name === 'WorkflowSuspended') {
1028
+ ended.outcome = 'interrupted';
992
1029
  throw error;
1030
+ }
1031
+ ended.outcome = 'failed';
1032
+ ended.error = error;
993
1033
  report(error, message);
994
1034
  }
1035
+ finally {
1036
+ if (job.kind !== 'timeout')
1037
+ await turnEnded(ended);
1038
+ }
995
1039
  };
996
1040
  let current;
997
1041
  /** Durable when an engine is there (given, or the agent's), else in this process. */