@roj-ai/sdk 0.1.19 → 0.1.21

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 (93) hide show
  1. package/dist/core/agents/agent.d.ts.map +1 -1
  2. package/dist/core/agents/agent.js +13 -3
  3. package/dist/core/agents/agent.js.map +1 -1
  4. package/dist/core/context/state.d.ts +8 -0
  5. package/dist/core/context/state.d.ts.map +1 -1
  6. package/dist/core/context/state.js +10 -0
  7. package/dist/core/context/state.js.map +1 -1
  8. package/dist/core/events/base-event-store.d.ts.map +1 -1
  9. package/dist/core/events/base-event-store.js +2 -0
  10. package/dist/core/events/base-event-store.js.map +1 -1
  11. package/dist/core/events/metadata-utils.d.ts.map +1 -1
  12. package/dist/core/events/metadata-utils.js +2 -0
  13. package/dist/core/events/metadata-utils.js.map +1 -1
  14. package/dist/core/llm/anthropic.test.js +27 -0
  15. package/dist/core/llm/anthropic.test.js.map +1 -1
  16. package/dist/core/llm/cache-breakpoints.d.ts +19 -5
  17. package/dist/core/llm/cache-breakpoints.d.ts.map +1 -1
  18. package/dist/core/llm/cache-breakpoints.js +40 -23
  19. package/dist/core/llm/cache-breakpoints.js.map +1 -1
  20. package/dist/core/llm/cache-breakpoints.test.d.ts +2 -0
  21. package/dist/core/llm/cache-breakpoints.test.d.ts.map +1 -0
  22. package/dist/core/llm/cache-breakpoints.test.js +45 -0
  23. package/dist/core/llm/cache-breakpoints.test.js.map +1 -0
  24. package/dist/core/llm/state.d.ts +22 -0
  25. package/dist/core/llm/state.d.ts.map +1 -1
  26. package/dist/core/llm/state.js +23 -11
  27. package/dist/core/llm/state.js.map +1 -1
  28. package/dist/index.d.ts +3 -3
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/lib/mime.d.ts +1 -1
  33. package/dist/lib/mime.d.ts.map +1 -1
  34. package/dist/lib/mime.js +7 -4
  35. package/dist/lib/mime.js.map +1 -1
  36. package/dist/plugins/agents/plugin.d.ts.map +1 -1
  37. package/dist/plugins/agents/plugin.js +7 -1
  38. package/dist/plugins/agents/plugin.js.map +1 -1
  39. package/dist/plugins/context-compact/context-compact.integration.test.js +54 -0
  40. package/dist/plugins/context-compact/context-compact.integration.test.js.map +1 -1
  41. package/dist/plugins/context-compact/context-compactor.d.ts +2 -0
  42. package/dist/plugins/context-compact/context-compactor.d.ts.map +1 -1
  43. package/dist/plugins/context-compact/context-compactor.js +29 -0
  44. package/dist/plugins/context-compact/context-compactor.js.map +1 -1
  45. package/dist/plugins/context-compact/context-compactor.test.js +6 -0
  46. package/dist/plugins/context-compact/context-compactor.test.js.map +1 -1
  47. package/dist/plugins/limits-guard/config.d.ts +30 -0
  48. package/dist/plugins/limits-guard/config.d.ts.map +1 -1
  49. package/dist/plugins/limits-guard/index.d.ts +3 -3
  50. package/dist/plugins/limits-guard/index.d.ts.map +1 -1
  51. package/dist/plugins/limits-guard/index.js +1 -1
  52. package/dist/plugins/limits-guard/index.js.map +1 -1
  53. package/dist/plugins/limits-guard/limit-guard.d.ts +27 -1
  54. package/dist/plugins/limits-guard/limit-guard.d.ts.map +1 -1
  55. package/dist/plugins/limits-guard/limit-guard.js +67 -0
  56. package/dist/plugins/limits-guard/limit-guard.js.map +1 -1
  57. package/dist/plugins/limits-guard/limit-guard.test.js +65 -1
  58. package/dist/plugins/limits-guard/limit-guard.test.js.map +1 -1
  59. package/dist/plugins/limits-guard/limits-guard.integration.test.js +295 -1
  60. package/dist/plugins/limits-guard/limits-guard.integration.test.js.map +1 -1
  61. package/dist/plugins/limits-guard/plugin.d.ts +23 -2
  62. package/dist/plugins/limits-guard/plugin.d.ts.map +1 -1
  63. package/dist/plugins/limits-guard/plugin.js +107 -2
  64. package/dist/plugins/limits-guard/plugin.js.map +1 -1
  65. package/dist/plugins/mailbox/plugin.d.ts.map +1 -1
  66. package/dist/plugins/mailbox/plugin.js +18 -0
  67. package/dist/plugins/mailbox/plugin.js.map +1 -1
  68. package/dist/plugins/session-stats/plugin.d.ts.map +1 -1
  69. package/dist/plugins/session-stats/plugin.js +5 -1
  70. package/dist/plugins/session-stats/plugin.js.map +1 -1
  71. package/package.json +2 -2
  72. package/src/core/agents/agent.ts +18 -2
  73. package/src/core/context/state.ts +10 -0
  74. package/src/core/events/base-event-store.ts +2 -0
  75. package/src/core/events/metadata-utils.ts +2 -0
  76. package/src/core/llm/anthropic.test.ts +34 -0
  77. package/src/core/llm/cache-breakpoints.test.ts +55 -0
  78. package/src/core/llm/cache-breakpoints.ts +39 -21
  79. package/src/core/llm/state.ts +25 -11
  80. package/src/index.ts +3 -3
  81. package/src/lib/mime.ts +7 -4
  82. package/src/plugins/agents/plugin.ts +7 -1
  83. package/src/plugins/context-compact/context-compact.integration.test.ts +62 -0
  84. package/src/plugins/context-compact/context-compactor.test.ts +6 -0
  85. package/src/plugins/context-compact/context-compactor.ts +31 -0
  86. package/src/plugins/limits-guard/config.ts +35 -0
  87. package/src/plugins/limits-guard/index.ts +3 -3
  88. package/src/plugins/limits-guard/limit-guard.test.ts +80 -1
  89. package/src/plugins/limits-guard/limit-guard.ts +98 -1
  90. package/src/plugins/limits-guard/limits-guard.integration.test.ts +331 -1
  91. package/src/plugins/limits-guard/plugin.ts +153 -3
  92. package/src/plugins/mailbox/plugin.ts +18 -0
  93. package/src/plugins/session-stats/plugin.ts +5 -1
@@ -1 +1 @@
1
- {"version":3,"file":"limit-guard.test.js","sourceRoot":"","sources":["../../../src/plugins/limits-guard/limit-guard.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"limit-guard.test.js","sourceRoot":"","sources":["../../../src/plugins/limits-guard/limit-guard.test.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,15 @@ import { describe, expect, it } from 'bun:test';
2
2
  import { AgentId } from '../../core/agents/schema.js';
3
3
  import { agentEvents } from '../../core/agents/state.js';
4
4
  import { MockLLMProvider } from '../../core/llm/mock.js';
5
+ import { ModelId } from '../../core/llm/schema.js';
6
+ import { llmEvents } from '../../core/llm/state.js';
5
7
  import { selectPluginState } from '../../core/sessions/reducer.js';
6
8
  import { ToolCallId } from '../../core/tools/schema.js';
9
+ import { contextCompactPlugin } from '../../plugins/context-compact/index.js';
10
+ import { getAgentMailbox, selectMailboxState } from '../../plugins/mailbox/query.js';
11
+ import { mailboxEvents } from '../../plugins/mailbox/state.js';
7
12
  import { createMultiAgentPreset, createTestPreset, TestHarness } from '../../testing/index.js';
8
- import { limitsGuardPlugin } from './plugin.js';
13
+ import { limitsEvents, limitsGuardPlugin } from './plugin.js';
9
14
  function createLimitsHarness(options) {
10
15
  return new TestHarness({ ...options, systemPlugins: [limitsGuardPlugin] });
11
16
  }
@@ -374,5 +379,294 @@ describe('limits-guard plugin', () => {
374
379
  await harness.shutdown();
375
380
  });
376
381
  });
382
+ // =========================================================================
383
+ // budgets (cost / tokens)
384
+ // =========================================================================
385
+ describe('budgets', () => {
386
+ it('agent exceeding cost budget → paused with budget_exceeded event', async () => {
387
+ let n = 0;
388
+ const harness = createLimitsHarness({
389
+ presets: [createTestPreset({
390
+ orchestratorSystem: 'Test agent.',
391
+ // $0.50 per call, $1.00 budget → pauses before the 3rd call.
392
+ orchestratorPlugins: [limitsGuardPlugin.configureAgent({ limits: { maxCost: 1.0, maxTurns: 100 } })],
393
+ })],
394
+ mockHandler: () => {
395
+ n++;
396
+ return {
397
+ content: null,
398
+ toolCalls: [{ id: ToolCallId(`tc${n}`), name: 'tell_user', input: { message: `Turn ${n}` } }],
399
+ finishReason: 'stop',
400
+ metrics: MockLLMProvider.defaultMetricsWithCost(0.5),
401
+ };
402
+ },
403
+ });
404
+ const session = await harness.createSession('test');
405
+ const entryAgentId = session.getEntryAgentId();
406
+ await session.sendMessage('Start');
407
+ await waitForAgentPaused(session, entryAgentId);
408
+ expect(session.state.agents.get(entryAgentId).status).toBe('paused');
409
+ const counters = selectPluginState(session.state, 'agentLimits')?.get(entryAgentId);
410
+ expect(counters.costSpent).toBeGreaterThanOrEqual(1.0);
411
+ const budgetEvents = await session.getEventsByType(limitsEvents, 'budget_exceeded');
412
+ const evt = budgetEvents.find(e => e.agentId === entryAgentId);
413
+ expect(evt).toBeDefined();
414
+ expect(evt.scope).toBe('agent');
415
+ expect(evt.limitName).toBe('maxCost');
416
+ await harness.shutdown();
417
+ });
418
+ it('costSpent is preserved across resume — budget cannot be bypassed by pausing', async () => {
419
+ let n = 0;
420
+ const harness = createLimitsHarness({
421
+ presets: [createTestPreset({
422
+ orchestratorSystem: 'Test agent.',
423
+ orchestratorPlugins: [limitsGuardPlugin.configureAgent({ limits: { maxCost: 1.0, maxTurns: 100 } })],
424
+ })],
425
+ mockHandler: () => {
426
+ n++;
427
+ return {
428
+ content: null,
429
+ toolCalls: [{ id: ToolCallId(`tc${n}`), name: 'tell_user', input: { message: `Turn ${n}` } }],
430
+ finishReason: 'stop',
431
+ metrics: MockLLMProvider.defaultMetricsWithCost(0.5),
432
+ };
433
+ },
434
+ });
435
+ const session = await harness.createSession('test');
436
+ const entryAgentId = session.getEntryAgentId();
437
+ await session.sendMessage('Start');
438
+ await waitForAgentPaused(session, entryAgentId);
439
+ const before = selectPluginState(session.state, 'agentLimits')?.get(entryAgentId);
440
+ expect(before).toBeDefined();
441
+ expect(before.costSpent).toBeGreaterThanOrEqual(1.0);
442
+ await session.callPluginMethod('agents.resume', { agentId: String(entryAgentId) });
443
+ // Budget is still exhausted → agent pauses again immediately without inferring.
444
+ await waitForAgentPaused(session, entryAgentId);
445
+ const after = selectPluginState(session.state, 'agentLimits')?.get(entryAgentId);
446
+ expect(after).toBeDefined();
447
+ // Anti-looping counter reset…
448
+ expect(after.inferenceCount).toBe(0);
449
+ // …but spend preserved, so the cap is not bypassable.
450
+ expect(after.costSpent).toBeGreaterThanOrEqual(before.costSpent);
451
+ await harness.shutdown();
452
+ });
453
+ it('child pausing on budget → parent is notified via a child-paused message', async () => {
454
+ let orchestratorCalls = 0;
455
+ let workerCalls = 0;
456
+ const harness = createLimitsHarness({
457
+ presets: [createTestPreset({
458
+ orchestratorSystem: 'Orchestrator agent.',
459
+ agents: [{
460
+ name: 'worker',
461
+ system: 'Worker agent.',
462
+ tools: [],
463
+ agents: [],
464
+ // $0.50 per call, $0.50 budget → pauses at the 2nd inference's
465
+ // beforeInference (after one completed call spent the budget).
466
+ plugins: [limitsGuardPlugin.configureAgent({ limits: { maxCost: 0.5, maxTurns: 100 } })],
467
+ }],
468
+ })],
469
+ mockHandler: (request) => {
470
+ // Worker: keep spending until the budget pauses it.
471
+ if (request.systemPrompt.includes('Worker agent.')) {
472
+ workerCalls++;
473
+ return {
474
+ content: null,
475
+ toolCalls: [{ id: ToolCallId(`w${workerCalls}`), name: 'tell_user', input: { message: `Work ${workerCalls}` } }],
476
+ finishReason: 'stop',
477
+ metrics: MockLLMProvider.defaultMetricsWithCost(0.5),
478
+ };
479
+ }
480
+ // Orchestrator: spawn the worker exactly once, then idle.
481
+ orchestratorCalls++;
482
+ if (orchestratorCalls === 1) {
483
+ return {
484
+ content: null,
485
+ toolCalls: [{ id: ToolCallId('spawn'), name: 'start_worker', input: { message: 'Do work' } }],
486
+ finishReason: 'stop',
487
+ metrics: MockLLMProvider.defaultMetrics(),
488
+ };
489
+ }
490
+ return { content: 'Waiting', toolCalls: [], finishReason: 'stop', metrics: MockLLMProvider.defaultMetrics() };
491
+ },
492
+ });
493
+ const session = await harness.createSession('test');
494
+ await session.sendMessage('Start');
495
+ await waitForAgentPaused(session, AgentId('worker_1'));
496
+ const orchestratorId = session.getEntryAgentId();
497
+ // The mailbox plugin's onPause hook reports the pause to the parent.
498
+ // onPause runs *after* the agent_paused event (which flips status to
499
+ // 'paused'), so poll for the notification.
500
+ const findNotice = async () => (await session.getEventsByType(mailboxEvents, 'mailbox_message')).find(m => m.toAgentId === orchestratorId
501
+ && m.message.from === AgentId('worker_1')
502
+ && m.message.content.includes('<child-paused')
503
+ && m.message.content.includes('worker_1'));
504
+ let notice = await findNotice();
505
+ const deadline = Date.now() + 5000;
506
+ while (!notice && Date.now() < deadline) {
507
+ await new Promise(r => setTimeout(r, 20));
508
+ notice = await findNotice();
509
+ }
510
+ expect(notice).toBeDefined();
511
+ await harness.shutdown();
512
+ });
513
+ it('child-paused notice is actually consumed by a parent that already went idle', async () => {
514
+ // Regression guard for the lifecycle: a parent that finished its work is
515
+ // NOT in a terminal "complete" state — it's persisted as `pending` with an
516
+ // empty mailbox. When the child pauses and delivers <child-paused>, the
517
+ // dequeue check flips the parent's decide() from "complete" back to "infer",
518
+ // so the parent wakes and reads the message rather than leaving it unconsumed.
519
+ let workerCalls = 0;
520
+ let orchestratorSawChildPaused = false;
521
+ const requestHasChildPaused = (request) => request.messages.some((m) => {
522
+ const c = typeof m.content === 'string' ? m.content : JSON.stringify(m.content);
523
+ return c.includes('<child-paused');
524
+ });
525
+ const harness = createLimitsHarness({
526
+ presets: [createTestPreset({
527
+ orchestratorSystem: 'Orchestrator agent.',
528
+ agents: [{
529
+ name: 'worker',
530
+ system: 'Worker agent.',
531
+ tools: [],
532
+ agents: [],
533
+ plugins: [limitsGuardPlugin.configureAgent({ limits: { maxCost: 0.5, maxTurns: 100 } })],
534
+ }],
535
+ })],
536
+ mockHandler: (request) => {
537
+ if (request.systemPrompt.includes('Worker agent.')) {
538
+ workerCalls++;
539
+ return {
540
+ content: null,
541
+ toolCalls: [{ id: ToolCallId(`w${workerCalls}`), name: 'tell_user', input: { message: `Work ${workerCalls}` } }],
542
+ finishReason: 'stop',
543
+ metrics: MockLLMProvider.defaultMetricsWithCost(0.5),
544
+ };
545
+ }
546
+ // Orchestrator: spawn the worker once, then go idle. Any later wake-up
547
+ // is driven by an incoming message — record if it carried the notice.
548
+ if (requestHasChildPaused(request))
549
+ orchestratorSawChildPaused = true;
550
+ if (workerCalls === 0) {
551
+ return {
552
+ content: null,
553
+ toolCalls: [{ id: ToolCallId('spawn'), name: 'start_worker', input: { message: 'Do work' } }],
554
+ finishReason: 'stop',
555
+ metrics: MockLLMProvider.defaultMetrics(),
556
+ };
557
+ }
558
+ return { content: 'Acknowledged', toolCalls: [], finishReason: 'stop', metrics: MockLLMProvider.defaultMetrics() };
559
+ },
560
+ });
561
+ const session = await harness.createSession('test');
562
+ await session.sendMessage('Start');
563
+ await waitForAgentPaused(session, AgentId('worker_1'));
564
+ // The parent should wake from idle and run an inference that includes the
565
+ // <child-paused> message — proving the notice is consumed, not orphaned.
566
+ const deadline = Date.now() + 5000;
567
+ while (!orchestratorSawChildPaused && Date.now() < deadline) {
568
+ await new Promise(r => setTimeout(r, 20));
569
+ }
570
+ expect(orchestratorSawChildPaused).toBe(true);
571
+ // And the message is marked consumed in the parent's mailbox.
572
+ const orchestratorId = session.getEntryAgentId();
573
+ const mailbox = getAgentMailbox(selectMailboxState(session.state), orchestratorId);
574
+ const childPausedMsg = mailbox.find((m) => m.content.includes('<child-paused'));
575
+ expect(childPausedMsg).toBeDefined();
576
+ expect(childPausedMsg.consumed).toBe(true);
577
+ await harness.shutdown();
578
+ });
579
+ it('compaction (auxiliary inference) cost counts toward the budget', async () => {
580
+ // The compaction summarization is a real, billed LLM call routed through
581
+ // runAuxiliaryInference → auxiliary_inference_completed. It must be charged
582
+ // against the cost budget, otherwise an agent could spend unboundedly on
583
+ // compaction without ever tripping its cap.
584
+ const REGULAR_COST = 0.1;
585
+ const SUMMARY_COST = 5.0;
586
+ // Compaction request detection: inline compaction appends a trailing user
587
+ // message containing the summarization marker.
588
+ const isSummarizationRequest = (request) => {
589
+ const last = request.messages[request.messages.length - 1];
590
+ if (!last || last.role !== 'user')
591
+ return false;
592
+ const content = typeof last.content === 'string' ? last.content : JSON.stringify(last.content);
593
+ return content.includes('[CONTEXT COMPACTION REQUEST]');
594
+ };
595
+ const harness = new TestHarness({
596
+ systemPlugins: [contextCompactPlugin, limitsGuardPlugin],
597
+ presets: [createTestPreset({
598
+ orchestratorSystem: 'Test agent.',
599
+ plugins: [
600
+ contextCompactPlugin.configure({
601
+ compaction: { model: ModelId('mock'), maxTokens: 10, keepRecentMessages: 2 },
602
+ }),
603
+ ],
604
+ // Budget large enough to survive the cheap regular turns but small
605
+ // enough that one expensive summarization call blows past it.
606
+ orchestratorPlugins: [
607
+ limitsGuardPlugin.configureAgent({ limits: { maxCost: 2.0, maxTurns: 100 } }),
608
+ ],
609
+ })],
610
+ mockHandler: (request) => {
611
+ if (isSummarizationRequest(request)) {
612
+ return {
613
+ content: 'Summary of conversation so far.',
614
+ toolCalls: [],
615
+ finishReason: 'stop',
616
+ metrics: MockLLMProvider.defaultMetricsWithCost(SUMMARY_COST),
617
+ };
618
+ }
619
+ return {
620
+ content: 'Agent response with some content to increase token count.',
621
+ toolCalls: [],
622
+ finishReason: 'stop',
623
+ metrics: MockLLMProvider.defaultMetricsWithCost(REGULAR_COST),
624
+ };
625
+ },
626
+ });
627
+ const session = await harness.createSession('test');
628
+ const entryAgentId = session.getEntryAgentId();
629
+ // Returns once the agent is either idle or paused — used because we don't
630
+ // know up front whether the compaction cost trips the budget on the same
631
+ // turn (depends on beforeInference hook ordering) or on the next one.
632
+ const waitForIdleOrPaused = async (timeoutMs = 10000) => {
633
+ const deadline = Date.now() + timeoutMs;
634
+ while (Date.now() < deadline) {
635
+ const st = session.state.agents.get(entryAgentId);
636
+ if (st?.status === 'paused')
637
+ return 'paused';
638
+ if (st?.status === 'pending' && st.pendingToolCalls.length === 0 && st.pendingToolResults.length === 0) {
639
+ return 'idle';
640
+ }
641
+ await new Promise(r => setTimeout(r, 10));
642
+ }
643
+ throw new Error('waitForIdleOrPaused timed out');
644
+ };
645
+ await session.sendAndWaitForIdle('First message');
646
+ await session.sendAndWaitForIdle('Second message');
647
+ // Third message triggers compaction (the expensive summarization call).
648
+ // It may pause on this turn or settle idle and pause on the next one.
649
+ await session.sendMessage('Third message to trigger compaction');
650
+ if (await waitForIdleOrPaused() === 'idle') {
651
+ await session.sendMessage('Fourth message');
652
+ }
653
+ await waitForAgentPaused(session, entryAgentId);
654
+ // Compaction genuinely ran and was billed.
655
+ const auxEvents = await session.getEventsByType(llmEvents, 'auxiliary_inference_completed');
656
+ expect(auxEvents.some((e) => e.metrics.cost === SUMMARY_COST)).toBe(true);
657
+ // The summarization cost is reflected in the agent's tracked spend…
658
+ const counters = selectPluginState(session.state, 'agentLimits')?.get(entryAgentId);
659
+ expect(counters).toBeDefined();
660
+ expect(counters.costSpent).toBeGreaterThanOrEqual(SUMMARY_COST);
661
+ // …and it tripped the cost budget (the regular turns alone, at 0.1 each,
662
+ // could never reach the 2.0 cap on their own here).
663
+ const budgetEvents = await session.getEventsByType(limitsEvents, 'budget_exceeded');
664
+ const evt = budgetEvents.find((e) => e.agentId === entryAgentId);
665
+ expect(evt).toBeDefined();
666
+ expect(evt.scope).toBe('agent');
667
+ expect(evt.limitName).toBe('maxCost');
668
+ await harness.shutdown();
669
+ });
670
+ });
377
671
  });
378
672
  //# sourceMappingURL=limits-guard.integration.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"limits-guard.integration.test.js","sourceRoot":"","sources":["../../../src/plugins/limits-guard/limits-guard.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"limits-guard.integration.test.js","sourceRoot":"","sources":["../../../src/plugins/limits-guard/limits-guard.integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,18 @@
1
1
  import type { AgentId } from '../../core/agents/schema.js';
2
2
  import type { SessionState } from '../../core/sessions/state.js';
3
- import type { AgentLimits } from './config.js';
3
+ import type { AgentLimits, LimitsSessionConfig } from './config.js';
4
+ import { type BudgetSpend } from './limit-guard.js';
4
5
  export interface AgentCounters {
5
6
  inferenceCount: number;
6
7
  toolCallCount: number;
7
8
  spawnedAgentCount: number;
8
9
  messagesSentCount: number;
10
+ /** Number of context compaction events for this agent. */
11
+ compactionCount: number;
12
+ /** Cumulative LLM cost (USD) summed from inference metrics. NOT reset on resume. */
13
+ costSpent: number;
14
+ /** Cumulative total tokens (prompt + completion). NOT reset on resume. */
15
+ tokensUsed: number;
9
16
  /** Tool name → consecutive failure count + last error message. Reset on success. */
10
17
  consecutiveToolFailures: Record<string, {
11
18
  count: number;
@@ -17,6 +24,8 @@ export interface AgentCounters {
17
24
  recentResponseHashes: string[];
18
25
  }
19
26
  export declare const createAgentCounters: () => AgentCounters;
27
+ /** Sum cost + tokens across all agents in the session (for the session-wide budget). */
28
+ export declare function sumSessionSpend(limits: Map<AgentId, AgentCounters>): BudgetSpend;
20
29
  /**
21
30
  * Extract agent counters from session state (for external consumers).
22
31
  */
@@ -30,10 +39,22 @@ export declare const limitsEvents: import("../../core/events/types.js").EventsFa
30
39
  hardLimit: z.ZodNumber;
31
40
  message: z.ZodString;
32
41
  }, z.core.$strip>;
42
+ budget_exceeded: z.ZodObject<{
43
+ agentId: z.core.$ZodBranded<z.ZodString, "AgentId", "out">;
44
+ scope: z.ZodEnum<{
45
+ agent: "agent";
46
+ session: "session";
47
+ }>;
48
+ limitName: z.ZodString;
49
+ spent: z.ZodNumber;
50
+ limit: z.ZodNumber;
51
+ message: z.ZodString;
52
+ }, z.core.$strip>;
33
53
  }>;
34
54
  export type LimitWarningEvent = (typeof limitsEvents)['Events']['limit_warning'];
55
+ export type BudgetExceededEvent = (typeof limitsEvents)['Events']['budget_exceeded'];
35
56
  export interface LimitsAgentConfig {
36
57
  limits?: AgentLimits;
37
58
  }
38
- export declare const limitsGuardPlugin: import("../../core/plugins/plugin-builder.js").PluginDefinition<"limits-guard", void, LimitsAgentConfig, {}, {}>;
59
+ export declare const limitsGuardPlugin: import("../../core/plugins/plugin-builder.js").PluginDefinition<"limits-guard", LimitsSessionConfig, LimitsAgentConfig, {}, {}>;
39
60
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/limits-guard/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAKtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAI5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAO9C,MAAM,WAAW,aAAa;IAC7B,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;IACzB,oFAAoF;IACpF,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC7E,2EAA2E;IAC3E,oBAAoB,EAAE,MAAM,EAAE,CAAA;IAC9B,8FAA8F;IAC9F,oBAAoB,EAAE,MAAM,EAAE,CAAA;CAC9B;AAED,eAAO,MAAM,mBAAmB,QAAO,aAQrC,CAAA;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,aAAa,CAE/F;AAMD,OAAO,CAAC,MAAM,QAAQ,CAAA;AAItB,eAAO,MAAM,YAAY;;;;;;;;EAUvB,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAA;AA0BhF,MAAM,WAAW,iBAAiB;IACjC,MAAM,CAAC,EAAE,WAAW,CAAA;CACpB;AAED,eAAO,MAAM,iBAAiB,8GAiNrB,CAAA"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/limits-guard/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAMtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAI5D,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACnE,OAAO,EACN,KAAK,WAAW,EAMhB,MAAM,kBAAkB,CAAA;AAMzB,MAAM,WAAW,aAAa;IAC7B,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;IACzB,0DAA0D;IAC1D,eAAe,EAAE,MAAM,CAAA;IACvB,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAA;IACjB,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAA;IAClB,oFAAoF;IACpF,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC7E,2EAA2E;IAC3E,oBAAoB,EAAE,MAAM,EAAE,CAAA;IAC9B,8FAA8F;IAC9F,oBAAoB,EAAE,MAAM,EAAE,CAAA;CAC9B;AAED,eAAO,MAAM,mBAAmB,QAAO,aAWrC,CAAA;AAEF,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,WAAW,CAQhF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,aAAa,CAE/F;AAMD,OAAO,CAAC,MAAM,QAAQ,CAAA;AAItB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;EAoBvB,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAA;AAChF,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAA;AA0BpF,MAAM,WAAW,iBAAiB;IACjC,MAAM,CAAC,EAAE,WAAW,CAAA;CACpB;AAED,eAAO,MAAM,iBAAiB,6HAgUrB,CAAA"}