@theokit/sdk 5.9.2 → 5.11.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 (133) hide show
  1. package/CHANGELOG.md +104 -0
  2. package/dist/{agent-WQ4LLTSY.cjs → agent-5DOR5T3E.cjs} +12 -10
  3. package/dist/{agent-WQ4LLTSY.cjs.map → agent-5DOR5T3E.cjs.map} +1 -1
  4. package/dist/{agent-enXXu447.d.ts → agent-CmKwSyyD.d.ts} +27 -0
  5. package/dist/{agent-GZVZXKME.js → agent-GWKRARAL.js} +11 -9
  6. package/dist/{agent-GZVZXKME.js.map → agent-GWKRARAL.js.map} +1 -1
  7. package/dist/{agent-Dh2YHSLj.d.cts → agent-XMkGzff_.d.cts} +27 -0
  8. package/dist/{chunk-PEIV7LOU.js → chunk-4PHSVR2R.js} +68 -37
  9. package/dist/chunk-4PHSVR2R.js.map +1 -0
  10. package/dist/{chunk-KXKT3HSD.cjs → chunk-5H2GJXGC.cjs} +4 -4
  11. package/dist/{chunk-KXKT3HSD.cjs.map → chunk-5H2GJXGC.cjs.map} +1 -1
  12. package/dist/{chunk-JU76WCW7.cjs → chunk-5OHB5HJF.cjs} +123 -92
  13. package/dist/chunk-5OHB5HJF.cjs.map +1 -0
  14. package/dist/{chunk-EVH3OUMY.js → chunk-74OA5DIM.js} +189 -43
  15. package/dist/chunk-74OA5DIM.js.map +1 -0
  16. package/dist/chunk-7KIN3L2S.js +103 -0
  17. package/dist/chunk-7KIN3L2S.js.map +1 -0
  18. package/dist/{chunk-EXI7EHDN.js → chunk-7Y23B7XX.js} +3 -3
  19. package/dist/{chunk-EXI7EHDN.js.map → chunk-7Y23B7XX.js.map} +1 -1
  20. package/dist/chunk-ASK2OQM5.cjs +84 -0
  21. package/dist/chunk-ASK2OQM5.cjs.map +1 -0
  22. package/dist/{chunk-QY3CIMUV.cjs → chunk-BZKF7TXX.cjs} +192 -44
  23. package/dist/chunk-BZKF7TXX.cjs.map +1 -0
  24. package/dist/{chunk-ZDF2IJKC.js → chunk-DPY2M74T.js} +3 -3
  25. package/dist/{chunk-ZDF2IJKC.js.map → chunk-DPY2M74T.js.map} +1 -1
  26. package/dist/{chunk-X7Z2FEI7.cjs → chunk-FYEHYQ7T.cjs} +8 -8
  27. package/dist/{chunk-X7Z2FEI7.cjs.map → chunk-FYEHYQ7T.cjs.map} +1 -1
  28. package/dist/{chunk-OZLQ6ZFM.js → chunk-IZDDSLL2.js} +4 -3
  29. package/dist/chunk-IZDDSLL2.js.map +1 -0
  30. package/dist/{chunk-DLUCTZ56.cjs → chunk-L3C6CCBG.cjs} +15 -15
  31. package/dist/{chunk-DLUCTZ56.cjs.map → chunk-L3C6CCBG.cjs.map} +1 -1
  32. package/dist/chunk-LZJXEPEQ.js +58 -0
  33. package/dist/chunk-LZJXEPEQ.js.map +1 -0
  34. package/dist/{chunk-FR6COQXZ.cjs → chunk-N7ZIPW2N.cjs} +3 -3
  35. package/dist/{chunk-FR6COQXZ.cjs.map → chunk-N7ZIPW2N.cjs.map} +1 -1
  36. package/dist/{chunk-RX3CFWQ2.cjs → chunk-NQVWSSX2.cjs} +6 -5
  37. package/dist/chunk-NQVWSSX2.cjs.map +1 -0
  38. package/dist/chunk-NWS2CS3Y.cjs +61 -0
  39. package/dist/chunk-NWS2CS3Y.cjs.map +1 -0
  40. package/dist/chunk-R5YPDAKD.cjs +108 -0
  41. package/dist/chunk-R5YPDAKD.cjs.map +1 -0
  42. package/dist/chunk-RGQICWFU.js +82 -0
  43. package/dist/chunk-RGQICWFU.js.map +1 -0
  44. package/dist/{chunk-N7KYUNFO.js → chunk-W2ZVTEOD.js} +3 -3
  45. package/dist/{chunk-N7KYUNFO.js.map → chunk-W2ZVTEOD.js.map} +1 -1
  46. package/dist/{chunk-47Z6LP3I.js → chunk-X3LOJJMO.js} +88 -28
  47. package/dist/chunk-X3LOJJMO.js.map +1 -0
  48. package/dist/{chunk-M2CCHC66.js → chunk-Z5BAFHPU.js} +3 -3
  49. package/dist/{chunk-M2CCHC66.js.map → chunk-Z5BAFHPU.js.map} +1 -1
  50. package/dist/{chunk-VZ2JZ2EH.cjs → chunk-ZD66GFH5.cjs} +89 -27
  51. package/dist/chunk-ZD66GFH5.cjs.map +1 -0
  52. package/dist/{compact-session-4QHBBGEY.cjs → compact-session-2AETONOS.cjs} +12 -12
  53. package/dist/{compact-session-4QHBBGEY.cjs.map → compact-session-2AETONOS.cjs.map} +1 -1
  54. package/dist/{compact-session-PVAWTKKL.js → compact-session-F2UDGZCN.js} +3 -3
  55. package/dist/{compact-session-PVAWTKKL.js.map → compact-session-F2UDGZCN.js.map} +1 -1
  56. package/dist/{cron-DTuaPMVI.d.ts → cron-BPccQCO8.d.ts} +1 -1
  57. package/dist/{cron-QTgcwcZt.d.cts → cron-Blj6wMYg.d.cts} +1 -1
  58. package/dist/cron.cjs +11 -9
  59. package/dist/cron.d.cts +2 -2
  60. package/dist/cron.d.ts +2 -2
  61. package/dist/cron.js +10 -8
  62. package/dist/eval.cjs +14 -12
  63. package/dist/eval.cjs.map +1 -1
  64. package/dist/eval.js +10 -8
  65. package/dist/eval.js.map +1 -1
  66. package/dist/fs-session-store-3VI4CPTX.js +11 -0
  67. package/dist/{fs-session-store-LCZBM3LT.js.map → fs-session-store-3VI4CPTX.js.map} +1 -1
  68. package/dist/fs-session-store-IQ6PEHYF.cjs +20 -0
  69. package/dist/{fs-session-store-SVEMRE4K.cjs.map → fs-session-store-IQ6PEHYF.cjs.map} +1 -1
  70. package/dist/{index-manager-6B2UF5S3.js → index-manager-JVYIVTZG.js} +5 -4
  71. package/dist/{index-manager-6B2UF5S3.js.map → index-manager-JVYIVTZG.js.map} +1 -1
  72. package/dist/{index-manager-M3FHJCHQ.cjs → index-manager-YGXRFJMZ.cjs} +6 -5
  73. package/dist/{index-manager-M3FHJCHQ.cjs.map → index-manager-YGXRFJMZ.cjs.map} +1 -1
  74. package/dist/index.cjs +62 -145
  75. package/dist/index.cjs.map +1 -1
  76. package/dist/index.d.cts +12 -3
  77. package/dist/index.d.ts +12 -3
  78. package/dist/index.js +27 -115
  79. package/dist/index.js.map +1 -1
  80. package/dist/{inject-session-O24XGRR6.js → inject-session-E5UDFVLI.js} +3 -3
  81. package/dist/{inject-session-O24XGRR6.js.map → inject-session-E5UDFVLI.js.map} +1 -1
  82. package/dist/{inject-session-OMLFL2V3.cjs → inject-session-W4UKACYJ.cjs} +4 -4
  83. package/dist/{inject-session-OMLFL2V3.cjs.map → inject-session-W4UKACYJ.cjs.map} +1 -1
  84. package/dist/internal/budget/normalize-usage.d.ts +81 -0
  85. package/dist/internal/llm/anthropic-shared.d.ts +6 -0
  86. package/dist/internal/llm/openai.d.ts +3 -5
  87. package/dist/internal/llm/openrouter-system.d.ts +1 -0
  88. package/dist/internal/llm/types.d.ts +10 -5
  89. package/dist/internal/memory/dreaming/phases.d.ts +2 -0
  90. package/dist/internal/memory/dreaming/run.d.ts +5 -0
  91. package/dist/internal/memory/sdk-memory-peer-loader.d.ts +2 -0
  92. package/dist/internal/memory/storage/fact-ceiling.d.cts +19 -0
  93. package/dist/internal/memory/storage/fact-ceiling.d.ts +19 -0
  94. package/dist/internal/memory/storage/index.cjs +40 -31
  95. package/dist/internal/memory/storage/index.d.cts +1 -0
  96. package/dist/internal/memory/storage/index.d.ts +1 -0
  97. package/dist/internal/memory/storage/index.js +3 -2
  98. package/dist/internal/memory/storage/markdown-store.d.cts +3 -1
  99. package/dist/internal/memory/storage/markdown-store.d.ts +3 -1
  100. package/dist/internal/memory/types.d.ts +6 -0
  101. package/dist/internal/persistence/index.cjs +7 -6
  102. package/dist/internal/persistence/index.cjs.map +1 -1
  103. package/dist/internal/persistence/index.js +2 -1
  104. package/dist/internal/persistence/index.js.map +1 -1
  105. package/dist/internal/runtime/registry/agent-registry-store.d.ts +2 -0
  106. package/dist/models.cjs +5 -50
  107. package/dist/models.cjs.map +1 -1
  108. package/dist/models.js +3 -51
  109. package/dist/models.js.map +1 -1
  110. package/dist/persistence.cjs +7 -6
  111. package/dist/persistence.cjs.map +1 -1
  112. package/dist/persistence.js +2 -1
  113. package/dist/persistence.js.map +1 -1
  114. package/dist/subagents-loader.d.cts +1 -1
  115. package/dist/subagents-loader.d.ts +1 -1
  116. package/dist/types/agent.d.ts +27 -0
  117. package/docs/error-codes.md +29 -26
  118. package/docs/harness-capability-map.md +6 -1
  119. package/package.json +1 -1
  120. package/dist/chunk-47Z6LP3I.js.map +0 -1
  121. package/dist/chunk-BKMDRBJ7.js +0 -180
  122. package/dist/chunk-BKMDRBJ7.js.map +0 -1
  123. package/dist/chunk-EVH3OUMY.js.map +0 -1
  124. package/dist/chunk-JU76WCW7.cjs.map +0 -1
  125. package/dist/chunk-OF2CLCTH.cjs +0 -186
  126. package/dist/chunk-OF2CLCTH.cjs.map +0 -1
  127. package/dist/chunk-OZLQ6ZFM.js.map +0 -1
  128. package/dist/chunk-PEIV7LOU.js.map +0 -1
  129. package/dist/chunk-QY3CIMUV.cjs.map +0 -1
  130. package/dist/chunk-RX3CFWQ2.cjs.map +0 -1
  131. package/dist/chunk-VZ2JZ2EH.cjs.map +0 -1
  132. package/dist/fs-session-store-LCZBM3LT.js +0 -10
  133. package/dist/fs-session-store-SVEMRE4K.cjs +0 -19
@@ -1,6 +1,6 @@
1
- export { IndexManager } from './chunk-ZDF2IJKC.js';
1
+ export { IndexManager } from './chunk-DPY2M74T.js';
2
2
  import './chunk-H73MEMQB.js';
3
- import './chunk-47Z6LP3I.js';
3
+ import './chunk-X3LOJJMO.js';
4
4
  import './chunk-KVNWIAO4.js';
5
5
  import './chunk-FD2UT76F.js';
6
6
  import './chunk-4QCJAJAG.js';
@@ -9,9 +9,10 @@ import './chunk-UKMBRMGT.js';
9
9
  import './chunk-FTZTZBCU.js';
10
10
  import './chunk-WE22OXQA.js';
11
11
  import './chunk-XZHJYSPB.js';
12
+ import './chunk-RGQICWFU.js';
12
13
  import './chunk-Q5EWJPRY.js';
13
14
  import './chunk-3JHIFQ4I.js';
14
15
  import './chunk-B5MHRQJZ.js';
15
16
  import './chunk-CZJ6Q7CW.js';
16
- //# sourceMappingURL=index-manager-6B2UF5S3.js.map
17
- //# sourceMappingURL=index-manager-6B2UF5S3.js.map
17
+ //# sourceMappingURL=index-manager-JVYIVTZG.js.map
18
+ //# sourceMappingURL=index-manager-JVYIVTZG.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index-manager-6B2UF5S3.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index-manager-JVYIVTZG.js"}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkDLUCTZ56_cjs = require('./chunk-DLUCTZ56.cjs');
3
+ var chunkL3C6CCBG_cjs = require('./chunk-L3C6CCBG.cjs');
4
4
  require('./chunk-GHX4P3V2.cjs');
5
- require('./chunk-VZ2JZ2EH.cjs');
5
+ require('./chunk-ZD66GFH5.cjs');
6
6
  require('./chunk-KRD3GQAA.cjs');
7
7
  require('./chunk-MUUQ2WFJ.cjs');
8
8
  require('./chunk-SWALPLFQ.cjs');
@@ -11,6 +11,7 @@ require('./chunk-SA6K24NB.cjs');
11
11
  require('./chunk-ZWACQM5U.cjs');
12
12
  require('./chunk-A4RAL2ER.cjs');
13
13
  require('./chunk-P22BZE7G.cjs');
14
+ require('./chunk-ASK2OQM5.cjs');
14
15
  require('./chunk-ZF2LDKQQ.cjs');
15
16
  require('./chunk-JLRLCBJ4.cjs');
16
17
  require('./chunk-UNFBHV46.cjs');
@@ -20,7 +21,7 @@ require('./chunk-6LHQPOMI.cjs');
20
21
 
21
22
  Object.defineProperty(exports, "IndexManager", {
22
23
  enumerable: true,
23
- get: function () { return chunkDLUCTZ56_cjs.IndexManager; }
24
+ get: function () { return chunkL3C6CCBG_cjs.IndexManager; }
24
25
  });
25
- //# sourceMappingURL=index-manager-M3FHJCHQ.cjs.map
26
- //# sourceMappingURL=index-manager-M3FHJCHQ.cjs.map
26
+ //# sourceMappingURL=index-manager-YGXRFJMZ.cjs.map
27
+ //# sourceMappingURL=index-manager-YGXRFJMZ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index-manager-M3FHJCHQ.cjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index-manager-YGXRFJMZ.cjs"}
package/dist/index.cjs CHANGED
@@ -3,26 +3,26 @@
3
3
  var chunkKGZ66JVZ_cjs = require('./chunk-KGZ66JVZ.cjs');
4
4
  var chunkOBA6YK2R_cjs = require('./chunk-OBA6YK2R.cjs');
5
5
  var chunkECD6ER3E_cjs = require('./chunk-ECD6ER3E.cjs');
6
- var chunkX7Z2FEI7_cjs = require('./chunk-X7Z2FEI7.cjs');
6
+ var chunkFYEHYQ7T_cjs = require('./chunk-FYEHYQ7T.cjs');
7
7
  var chunkXDUGSTYJ_cjs = require('./chunk-XDUGSTYJ.cjs');
8
8
  require('./chunk-D5KXKBEN.cjs');
9
9
  var chunkMPQJE3G4_cjs = require('./chunk-MPQJE3G4.cjs');
10
10
  require('./chunk-6PB5AQCY.cjs');
11
11
  require('./chunk-VTYY7XL5.cjs');
12
- var chunkKXKT3HSD_cjs = require('./chunk-KXKT3HSD.cjs');
13
- var chunkJU76WCW7_cjs = require('./chunk-JU76WCW7.cjs');
12
+ var chunk5H2GJXGC_cjs = require('./chunk-5H2GJXGC.cjs');
13
+ var chunk5OHB5HJF_cjs = require('./chunk-5OHB5HJF.cjs');
14
14
  var chunkJ6GXS5A2_cjs = require('./chunk-J6GXS5A2.cjs');
15
- require('./chunk-FR6COQXZ.cjs');
15
+ require('./chunk-N7ZIPW2N.cjs');
16
16
  require('./chunk-BUUUWQMB.cjs');
17
- require('./chunk-DLUCTZ56.cjs');
17
+ require('./chunk-L3C6CCBG.cjs');
18
18
  require('./chunk-KIKKTW5O.cjs');
19
19
  require('./chunk-BV2MWEMV.cjs');
20
20
  require('./chunk-YEHQ3SIC.cjs');
21
21
  require('./chunk-GHX4P3V2.cjs');
22
22
  require('./chunk-TMKTSYDS.cjs');
23
- var chunkVZ2JZ2EH_cjs = require('./chunk-VZ2JZ2EH.cjs');
24
- var chunkRX3CFWQ2_cjs = require('./chunk-RX3CFWQ2.cjs');
25
- var chunkQY3CIMUV_cjs = require('./chunk-QY3CIMUV.cjs');
23
+ var chunkZD66GFH5_cjs = require('./chunk-ZD66GFH5.cjs');
24
+ var chunkNQVWSSX2_cjs = require('./chunk-NQVWSSX2.cjs');
25
+ var chunkBZKF7TXX_cjs = require('./chunk-BZKF7TXX.cjs');
26
26
  require('./chunk-CQYBJOB2.cjs');
27
27
  require('./chunk-YJNYDJ2T.cjs');
28
28
  require('./chunk-WPO3VCY4.cjs');
@@ -50,7 +50,8 @@ require('./chunk-NKIQTLFA.cjs');
50
50
  require('./chunk-ZWACQM5U.cjs');
51
51
  require('./chunk-A4RAL2ER.cjs');
52
52
  require('./chunk-P22BZE7G.cjs');
53
- require('./chunk-OF2CLCTH.cjs');
53
+ require('./chunk-R5YPDAKD.cjs');
54
+ require('./chunk-ASK2OQM5.cjs');
54
55
  var chunkZF2LDKQQ_cjs = require('./chunk-ZF2LDKQQ.cjs');
55
56
  var chunkGHHIJEFX_cjs = require('./chunk-GHHIJEFX.cjs');
56
57
  var chunkJLRLCBJ4_cjs = require('./chunk-JLRLCBJ4.cjs');
@@ -58,6 +59,7 @@ require('./chunk-C7GKRGKN.cjs');
58
59
  var chunkTY56BKSK_cjs = require('./chunk-TY56BKSK.cjs');
59
60
  require('./chunk-MPR2ISL2.cjs');
60
61
  var chunkJ5623RIV_cjs = require('./chunk-J5623RIV.cjs');
62
+ require('./chunk-NWS2CS3Y.cjs');
61
63
  var chunk3EE6LVWT_cjs = require('./chunk-3EE6LVWT.cjs');
62
64
  require('./chunk-SGC7LSHF.cjs');
63
65
  var chunkHU666T3Q_cjs = require('./chunk-HU666T3Q.cjs');
@@ -77,8 +79,8 @@ var os = require('os');
77
79
  // src/agent-factory.ts
78
80
  function createAgentFactory(common) {
79
81
  return {
80
- forSession: (agentId, overrides) => chunkJU76WCW7_cjs.Agent.create(mergeAgentOptions(common, overrides, agentId)),
81
- getOrCreate: (agentId, overrides) => chunkJU76WCW7_cjs.Agent.getOrCreate(agentId, mergeAgentOptions(common, overrides, agentId))
82
+ forSession: (agentId, overrides) => chunk5OHB5HJF_cjs.Agent.create(mergeAgentOptions(common, overrides, agentId)),
83
+ getOrCreate: (agentId, overrides) => chunk5OHB5HJF_cjs.Agent.getOrCreate(agentId, mergeAgentOptions(common, overrides, agentId))
82
84
  };
83
85
  }
84
86
  function mergeAgentOptions(common, overrides, agentId) {
@@ -403,103 +405,6 @@ async function dispatchExceed(opts, window, spentUsd, limitUsd, mode) {
403
405
  }
404
406
  }
405
407
 
406
- // src/internal/budget/normalize-usage.ts
407
- function int(v) {
408
- if (typeof v === "number") return Number.isFinite(v) ? Math.max(0, Math.trunc(v)) : 0;
409
- if (typeof v === "string") {
410
- const n = Number.parseInt(v, 10);
411
- return Number.isFinite(n) ? Math.max(0, n) : 0;
412
- }
413
- return 0;
414
- }
415
- function buildTotal(buckets) {
416
- return buckets.inputTokens + buckets.outputTokens + buckets.cacheReadTokens + buckets.cacheWriteTokens;
417
- }
418
- function omitUndefined(usage) {
419
- return {
420
- inputTokens: usage.inputTokens,
421
- outputTokens: usage.outputTokens,
422
- ...usage.cacheReadTokens > 0 ? { cacheReadTokens: usage.cacheReadTokens } : {},
423
- ...usage.cacheWriteTokens > 0 ? { cacheWriteTokens: usage.cacheWriteTokens } : {},
424
- ...usage.reasoningTokens > 0 ? { reasoningTokens: usage.reasoningTokens } : {},
425
- totalTokens: usage.totalTokens
426
- };
427
- }
428
- function inferApiMode(provider) {
429
- const p = provider.toLowerCase();
430
- if (p === "anthropic" || p === "claude" || p === "bedrock_anthropic") {
431
- return "anthropic_messages";
432
- }
433
- if (p === "openai-codex" || p === "codex") return "openai_responses";
434
- return "openai_chat_completions";
435
- }
436
- function normalizeUsage(rawUsage, opts) {
437
- if (rawUsage === null || rawUsage === void 0) {
438
- return { inputTokens: 0, outputTokens: 0, totalTokens: 0 };
439
- }
440
- if (typeof rawUsage !== "object") {
441
- return { inputTokens: 0, outputTokens: 0, totalTokens: 0 };
442
- }
443
- const raw = rawUsage;
444
- const mode = opts.apiMode ?? inferApiMode(opts.provider);
445
- if (mode === "anthropic_messages") return normalizeAnthropic(raw);
446
- if (mode === "openai_responses") return normalizeOpenAIResponses(raw);
447
- return normalizeOpenAIChat(raw);
448
- }
449
- function normalizeAnthropic(raw) {
450
- const inputTokens = int(raw.input_tokens);
451
- const outputTokens = int(raw.output_tokens);
452
- const cacheReadTokens = int(raw.cache_read_input_tokens);
453
- const cacheWriteTokens = int(raw.cache_creation_input_tokens);
454
- const usage = {
455
- inputTokens,
456
- outputTokens,
457
- cacheReadTokens,
458
- cacheWriteTokens,
459
- reasoningTokens: 0,
460
- totalTokens: buildTotal({ inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens })
461
- };
462
- return omitUndefined(usage);
463
- }
464
- function normalizeOpenAIResponses(raw) {
465
- const inputTotal = int(raw.input_tokens);
466
- const outputTokens = int(raw.output_tokens);
467
- const inputDetails = raw.input_tokens_details ?? {};
468
- const outputDetails = raw.output_tokens_details ?? {};
469
- const cacheReadTokens = int(inputDetails.cached_tokens);
470
- const cacheWriteTokens = int(inputDetails.cache_creation_tokens);
471
- const reasoningTokens = int(outputDetails.reasoning_tokens);
472
- const inputTokens = Math.max(0, inputTotal - cacheReadTokens - cacheWriteTokens);
473
- const usage = {
474
- inputTokens,
475
- outputTokens,
476
- cacheReadTokens,
477
- cacheWriteTokens,
478
- reasoningTokens,
479
- totalTokens: buildTotal({ inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens })
480
- };
481
- return omitUndefined(usage);
482
- }
483
- function normalizeOpenAIChat(raw) {
484
- const promptTotal = int(raw.prompt_tokens);
485
- const outputTokens = int(raw.completion_tokens);
486
- const promptDetails = raw.prompt_tokens_details ?? {};
487
- const completionDetails = raw.completion_tokens_details ?? {};
488
- const cacheReadTokens = int(promptDetails.cached_tokens) || int(raw.cache_read_input_tokens);
489
- const cacheWriteTokens = int(promptDetails.cache_write_tokens) || int(raw.cache_creation_input_tokens);
490
- const reasoningTokens = int(completionDetails.reasoning_tokens);
491
- const inputTokens = Math.max(0, promptTotal - cacheReadTokens - cacheWriteTokens);
492
- const usage = {
493
- inputTokens,
494
- outputTokens,
495
- cacheReadTokens,
496
- cacheWriteTokens,
497
- reasoningTokens,
498
- totalTokens: buildTotal({ inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens })
499
- };
500
- return omitUndefined(usage);
501
- }
502
-
503
408
  // src/budget.ts
504
409
  var Budget = class {
505
410
  // D375 — static class with private constructor.
@@ -1173,12 +1078,15 @@ async function dedupCandidates(facts, embedding, threshold) {
1173
1078
  }
1174
1079
  var DEFAULT_MAX_FACTS_PER_SWEEP = 500;
1175
1080
  async function remPhase(facts, embedding, threshold = DEFAULT_CLUSTER_THRESHOLD, maxFactsPerSweep = DEFAULT_MAX_FACTS_PER_SWEEP) {
1176
- if (facts.length === 0) return { clusters: [] };
1081
+ if (facts.length === 0) return { clusters: [], factsLeftOut: 0 };
1177
1082
  const capped = facts.length > maxFactsPerSweep ? facts.slice(0, maxFactsPerSweep) : facts;
1178
1083
  const vectors = await embedding.embed(capped.map((f) => f.text));
1179
1084
  const clusterOfIdx = unionFindByPairs(vectors, threshold);
1180
1085
  const groups = bucketFactsByClusterRoot(capped, clusterOfIdx);
1181
- return { clusters: [...groups.values()].map(buildClusterFromMembers) };
1086
+ return {
1087
+ clusters: [...groups.values()].map(buildClusterFromMembers),
1088
+ factsLeftOut: facts.length - capped.length
1089
+ };
1182
1090
  }
1183
1091
  function unionFindByPairs(vectors, threshold) {
1184
1092
  const clusterOfIdx = vectors.map((_, i) => i);
@@ -1259,8 +1167,8 @@ async function runInner(options) {
1259
1167
  const now = options.now ?? Date.now;
1260
1168
  const timestampMs = now();
1261
1169
  try {
1262
- const root = options.memoryRoot ?? chunkVZ2JZ2EH_cjs.resolveMemoryRoot(options.cwd);
1263
- const facts = await chunkVZ2JZ2EH_cjs.readFactsFromMarkdown(
1170
+ const root = options.memoryRoot ?? chunkZD66GFH5_cjs.resolveMemoryRoot(options.cwd);
1171
+ const facts = await chunkZD66GFH5_cjs.readFactsFromMarkdown(
1264
1172
  options.cwd,
1265
1173
  options.memoryRoot ? { directory: options.memoryRoot } : void 0
1266
1174
  );
@@ -1277,9 +1185,10 @@ async function runInner(options) {
1277
1185
  duplicatesRemoved: dedup.duplicatesRemoved,
1278
1186
  clustersCreated: rem.clusters.length,
1279
1187
  notesWritten,
1280
- diaryEntryHash: void 0
1188
+ diaryEntryHash: void 0,
1189
+ factsLeftOut: rem.factsLeftOut
1281
1190
  };
1282
- await chunkX7Z2FEI7_cjs.appendDiaryEntry(root, {
1191
+ await chunkFYEHYQ7T_cjs.appendDiaryEntry(root, {
1283
1192
  timestampMs,
1284
1193
  factsBefore: result.factsBefore,
1285
1194
  factsAfter: result.factsAfter,
@@ -1306,7 +1215,7 @@ async function writeConsolidatedNotes(root, clusters, timestampMs) {
1306
1215
  return 1;
1307
1216
  }
1308
1217
  function emptyResult(status) {
1309
- return {
1218
+ const result = {
1310
1219
  status,
1311
1220
  factsBefore: 0,
1312
1221
  factsAfter: 0,
@@ -1315,6 +1224,7 @@ function emptyResult(status) {
1315
1224
  notesWritten: 0,
1316
1225
  diaryEntryHash: void 0
1317
1226
  };
1227
+ return status === "skipped" ? { ...result, factsLeftOut: 0 } : result;
1318
1228
  }
1319
1229
 
1320
1230
  // src/internal/memory/sdk-memory-peer-loader.ts
@@ -1373,8 +1283,8 @@ var Memory = {
1373
1283
  openArgs.embedding = await resolveEmbedding(opts.embedding, peer.MEMORY_EMBEDDING_ADAPTERS);
1374
1284
  return await peer.IndexManager.open(openArgs);
1375
1285
  }
1376
- const { IndexManager } = await import('./index-manager-M3FHJCHQ.cjs');
1377
- openArgs.embedding = await resolveEmbedding(opts.embedding, chunkJU76WCW7_cjs.MEMORY_EMBEDDING_ADAPTERS);
1286
+ const { IndexManager } = await import('./index-manager-YGXRFJMZ.cjs');
1287
+ openArgs.embedding = await resolveEmbedding(opts.embedding, chunk5OHB5HJF_cjs.MEMORY_EMBEDDING_ADAPTERS);
1378
1288
  return await IndexManager.open(openArgs);
1379
1289
  },
1380
1290
  /**
@@ -1385,7 +1295,7 @@ var Memory = {
1385
1295
  */
1386
1296
  async runDreamingSweep(opts) {
1387
1297
  const peer = await tryLoadSdkMemoryPeer();
1388
- const catalog = peer !== null ? peer.MEMORY_EMBEDDING_ADAPTERS : chunkJU76WCW7_cjs.MEMORY_EMBEDDING_ADAPTERS;
1298
+ const catalog = peer !== null ? peer.MEMORY_EMBEDDING_ADAPTERS : chunk5OHB5HJF_cjs.MEMORY_EMBEDDING_ADAPTERS;
1389
1299
  const sweepArgs = await buildDreamingSweepArgs(opts, catalog);
1390
1300
  const result = peer !== null ? (
1391
1301
  // biome-ignore lint/suspicious/noExplicitAny: peer is dynamically loaded — structural compat ensured by sdk-memory
@@ -1419,7 +1329,7 @@ async function buildDreamingSweepArgs(opts, catalog) {
1419
1329
  const runtime = await resolveEmbedding(opts.embedding, catalog);
1420
1330
  return {
1421
1331
  cwd: opts.cwd,
1422
- memoryRoot: chunkVZ2JZ2EH_cjs.resolveMemoryRoot(opts.cwd, { directory: opts.directory }),
1332
+ memoryRoot: chunkZD66GFH5_cjs.resolveMemoryRoot(opts.cwd, { directory: opts.directory }),
1423
1333
  embedding: runtime,
1424
1334
  ...opts.dedupThreshold !== void 0 ? { dedupThreshold: opts.dedupThreshold } : {},
1425
1335
  ...opts.clusterThreshold !== void 0 ? { clusterThreshold: opts.clusterThreshold } : {}
@@ -1432,7 +1342,8 @@ function toDreamingSweepResult(result) {
1432
1342
  factsAfter: result.factsAfter,
1433
1343
  duplicatesRemoved: result.duplicatesRemoved,
1434
1344
  clustersCreated: result.clustersCreated,
1435
- notesWritten: result.notesWritten
1345
+ notesWritten: result.notesWritten,
1346
+ ...result.factsLeftOut !== void 0 ? { factsLeftOut: result.factsLeftOut } : {}
1436
1347
  };
1437
1348
  }
1438
1349
 
@@ -1458,7 +1369,7 @@ async function migrateSqliteToLance2(options) {
1458
1369
  if (peer !== null) {
1459
1370
  return peer.migrateSqliteToLance(options);
1460
1371
  }
1461
- return chunkX7Z2FEI7_cjs.migrateSqliteToLance(options);
1372
+ return chunkFYEHYQ7T_cjs.migrateSqliteToLance(options);
1462
1373
  }
1463
1374
 
1464
1375
  // src/permission-engine.ts
@@ -1995,8 +1906,8 @@ function guardSessionDestruction(sessionId, live) {
1995
1906
  // src/session-messages.ts
1996
1907
  async function readSessionMessages2(options) {
1997
1908
  const cwd = options.cwd ?? process.cwd();
1998
- const baseDir = chunkJU76WCW7_cjs.resolveSessionDir({ sessionDir: options.sessionDir });
1999
- return chunkZAM7BJXJ_cjs.readSessionMessages(new chunkRX3CFWQ2_cjs.FsSessionStore({ baseDir, cwd }), options.sessionId);
1909
+ const baseDir = chunk5OHB5HJF_cjs.resolveSessionDir({ sessionDir: options.sessionDir });
1910
+ return chunkZAM7BJXJ_cjs.readSessionMessages(new chunkNQVWSSX2_cjs.FsSessionStore({ baseDir, cwd }), options.sessionId);
2000
1911
  }
2001
1912
 
2002
1913
  // src/session-scope.ts
@@ -2012,7 +1923,7 @@ function isBuiltAgent(m) {
2012
1923
  return typeof m.send === "function";
2013
1924
  }
2014
1925
  async function materialize(def, index) {
2015
- const { Agent: Agent2 } = await import('./agent-WQ4LLTSY.cjs');
1926
+ const { Agent: Agent2 } = await import('./agent-5DOR5T3E.cjs');
2016
1927
  return Agent2.create({
2017
1928
  // `AgentDefinition.model` admits the sentinel `'inherit'`, which is not a model id. Inheriting
2018
1929
  // here means "declare nothing and let the default apply" — forwarding the literal would create
@@ -2154,7 +2065,7 @@ var FIXTURE_USER = {
2154
2065
  };
2155
2066
  var FIXTURE_MODELS = [
2156
2067
  {
2157
- id: chunkJU76WCW7_cjs.DEFAULT_AGENTIC_MODEL_ID,
2068
+ id: chunk5OHB5HJF_cjs.DEFAULT_AGENTIC_MODEL_ID,
2158
2069
  name: "Gemini 2.0 Flash",
2159
2070
  displayName: "Gemini 2.0 Flash",
2160
2071
  parameters: [
@@ -2230,7 +2141,7 @@ async function listLocalModelsViaOpenAiCompat(baseUrl) {
2230
2141
  try {
2231
2142
  response = await fetch(url, { method: "GET" });
2232
2143
  } catch (fetchErr) {
2233
- const mapped = chunkQY3CIMUV_cjs.mapOllamaTransportError({
2144
+ const mapped = chunkBZKF7TXX_cjs.mapOllamaTransportError({
2234
2145
  providerId: "ollama",
2235
2146
  cause: fetchErr,
2236
2147
  endpoint: "/v1/models"
@@ -2242,8 +2153,8 @@ async function listLocalModelsViaOpenAiCompat(baseUrl) {
2242
2153
  );
2243
2154
  }
2244
2155
  if (!response.ok) {
2245
- const body = await chunkQY3CIMUV_cjs.readErrorResponseBody(response);
2246
- const mapped = chunkQY3CIMUV_cjs.mapOllamaHttpError({
2156
+ const body = await chunkBZKF7TXX_cjs.readErrorResponseBody(response);
2157
+ const mapped = chunkBZKF7TXX_cjs.mapOllamaHttpError({
2247
2158
  providerId: "ollama",
2248
2159
  status: response.status,
2249
2160
  body,
@@ -2357,7 +2268,7 @@ var Theokit = class {
2357
2268
  envVars: p.envVars
2358
2269
  }));
2359
2270
  },
2360
- embeddingAdapters: () => Object.entries(chunkJU76WCW7_cjs.MEMORY_EMBEDDING_ADAPTERS).map(([id, adapter]) => ({
2271
+ embeddingAdapters: () => Object.entries(chunk5OHB5HJF_cjs.MEMORY_EMBEDDING_ADAPTERS).map(([id, adapter]) => ({
2361
2272
  id,
2362
2273
  transport: adapter.transport,
2363
2274
  defaultModel: adapter.defaultModel
@@ -2375,7 +2286,7 @@ var Theokit = class {
2375
2286
  };
2376
2287
  async function maybeListLocalModels(providerName) {
2377
2288
  chunkHU666T3Q_cjs.registerBuiltins();
2378
- await chunkQY3CIMUV_cjs.discoverProviderPlugins();
2289
+ await chunkBZKF7TXX_cjs.discoverProviderPlugins();
2379
2290
  const profile = chunkHU666T3Q_cjs.getProviderProfile(providerName);
2380
2291
  if (profile === void 0) return void 0;
2381
2292
  if (profile.authType !== "none") return void 0;
@@ -2393,13 +2304,13 @@ async function executeCatalogRequest(request) {
2393
2304
  if (apiKey === void 0) {
2394
2305
  throw new chunkUNFBHV46_cjs.AuthenticationError("Missing API key", { code: "missing_api_key" });
2395
2306
  }
2396
- if (chunkQY3CIMUV_cjs.shouldUseFixtureMode(apiKey)) {
2307
+ if (chunkBZKF7TXX_cjs.shouldUseFixtureMode(apiKey)) {
2397
2308
  return request.fixture;
2398
2309
  }
2399
- if (!chunkQY3CIMUV_cjs.isFixtureApiKey(apiKey) && process.env.THEOKIT_API_BASE_URL === void 0) {
2310
+ if (!chunkBZKF7TXX_cjs.isFixtureApiKey(apiKey) && process.env.THEOKIT_API_BASE_URL === void 0) {
2400
2311
  throw new chunkUNFBHV46_cjs.AuthenticationError("Invalid API key", { code: "authentication_error" });
2401
2312
  }
2402
- return chunkQY3CIMUV_cjs.httpRequest(request.path, { apiKey });
2313
+ return chunkBZKF7TXX_cjs.httpRequest(request.path, { apiKey });
2403
2314
  }
2404
2315
 
2405
2316
  // src/tool-blast-radius.ts
@@ -2576,48 +2487,56 @@ Object.defineProperty(exports, "fn", {
2576
2487
  });
2577
2488
  Object.defineProperty(exports, "Cron", {
2578
2489
  enumerable: true,
2579
- get: function () { return chunkKXKT3HSD_cjs.Cron; }
2490
+ get: function () { return chunk5H2GJXGC_cjs.Cron; }
2580
2491
  });
2581
2492
  Object.defineProperty(exports, "Agent", {
2582
2493
  enumerable: true,
2583
- get: function () { return chunkJU76WCW7_cjs.Agent; }
2494
+ get: function () { return chunk5OHB5HJF_cjs.Agent; }
2584
2495
  });
2585
2496
  Object.defineProperty(exports, "AgentBuilder", {
2586
2497
  enumerable: true,
2587
- get: function () { return chunkJU76WCW7_cjs.AgentBuilder; }
2498
+ get: function () { return chunk5OHB5HJF_cjs.AgentBuilder; }
2588
2499
  });
2589
2500
  Object.defineProperty(exports, "Tool", {
2590
2501
  enumerable: true,
2591
- get: function () { return chunkJU76WCW7_cjs.Tool; }
2502
+ get: function () { return chunk5OHB5HJF_cjs.Tool; }
2592
2503
  });
2593
2504
  Object.defineProperty(exports, "ToolError", {
2594
2505
  enumerable: true,
2595
- get: function () { return chunkJU76WCW7_cjs.ToolError; }
2506
+ get: function () { return chunk5OHB5HJF_cjs.ToolError; }
2596
2507
  });
2597
2508
  Object.defineProperty(exports, "UsageAccumulator", {
2598
2509
  enumerable: true,
2599
- get: function () { return chunkJU76WCW7_cjs.UsageAccumulator; }
2510
+ get: function () { return chunk5OHB5HJF_cjs.UsageAccumulator; }
2600
2511
  });
2601
2512
  Object.defineProperty(exports, "computeCost", {
2602
2513
  enumerable: true,
2603
- get: function () { return chunkJU76WCW7_cjs.computeCost; }
2514
+ get: function () { return chunk5OHB5HJF_cjs.computeCost; }
2604
2515
  });
2605
2516
  Object.defineProperty(exports, "getPricingEntry", {
2606
2517
  enumerable: true,
2607
- get: function () { return chunkJU76WCW7_cjs.getPricingEntry; }
2518
+ get: function () { return chunk5OHB5HJF_cjs.getPricingEntry; }
2608
2519
  });
2609
2520
  Object.defineProperty(exports, "managedSettingsPathFor", {
2610
2521
  enumerable: true,
2611
- get: function () { return chunkJU76WCW7_cjs.managedSettingsPathFor; }
2522
+ get: function () { return chunk5OHB5HJF_cjs.managedSettingsPathFor; }
2612
2523
  });
2613
2524
  Object.defineProperty(exports, "readManagedSettings", {
2614
2525
  enumerable: true,
2615
- get: function () { return chunkJU76WCW7_cjs.readManagedSettings; }
2526
+ get: function () { return chunk5OHB5HJF_cjs.readManagedSettings; }
2616
2527
  });
2617
2528
  Object.defineProperty(exports, "emitRunEvent", {
2618
2529
  enumerable: true,
2619
2530
  get: function () { return chunkJ6GXS5A2_cjs.emitRunEvent; }
2620
2531
  });
2532
+ Object.defineProperty(exports, "inferApiMode", {
2533
+ enumerable: true,
2534
+ get: function () { return chunkBZKF7TXX_cjs.inferApiMode; }
2535
+ });
2536
+ Object.defineProperty(exports, "normalizeUsage", {
2537
+ enumerable: true,
2538
+ get: function () { return chunkBZKF7TXX_cjs.normalizeUsage; }
2539
+ });
2621
2540
  Object.defineProperty(exports, "withCwdMutex", {
2622
2541
  enumerable: true,
2623
2542
  get: function () { return chunkZF2LDKQQ_cjs.withCwdMutex; }
@@ -2744,13 +2663,11 @@ exports.evaluateBlastRadius = evaluateBlastRadius;
2744
2663
  exports.extractRawId = extractRawId;
2745
2664
  exports.foldLayers = foldLayers;
2746
2665
  exports.guardSessionDestruction = guardSessionDestruction;
2747
- exports.inferApiMode = inferApiMode;
2748
2666
  exports.isInside = isInside;
2749
2667
  exports.loadProjectEnv = loadProjectEnv;
2750
2668
  exports.migrateSqliteToLance = migrateSqliteToLance2;
2751
2669
  exports.mkMemoryId = mkMemoryId;
2752
2670
  exports.normalizeSchema = normalizeSchema;
2753
- exports.normalizeUsage = normalizeUsage;
2754
2671
  exports.parsePermissionRules = parsePermissionRules;
2755
2672
  exports.permissionFloorReason = permissionFloorReason;
2756
2673
  exports.planReaping = planReaping;