@cortexkit/opencode-magic-context 0.49.23 → 0.49.25

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 (122) hide show
  1. package/README.md +0 -26
  2. package/dist/agents/permissions.d.ts +8 -3
  3. package/dist/agents/permissions.d.ts.map +1 -1
  4. package/dist/auto-search-worker.js +4 -4
  5. package/dist/chunk-embedding-write-worker.js +5 -5
  6. package/dist/{compartment-chunk-embedding-he60aaa2.js → compartment-chunk-embedding-eypvn607.js} +3 -3
  7. package/dist/{conflict-warning-hook-2r32hyx6.js → conflict-warning-hook-a27bhggg.js} +4 -4
  8. package/dist/{context-j7hp43a0.js → context-keb00be8.js} +30 -24
  9. package/dist/{embedding-backfill-dtke6tck.js → embedding-backfill-vddgmem3.js} +5 -5
  10. package/dist/features/magic-context/dreamer/primer-seed.d.ts.map +1 -1
  11. package/dist/features/magic-context/tool-definition-tokens.d.ts +113 -57
  12. package/dist/features/magic-context/tool-definition-tokens.d.ts.map +1 -1
  13. package/dist/hooks/magic-context/ask-answer-notice.d.ts +25 -0
  14. package/dist/hooks/magic-context/ask-answer-notice.d.ts.map +1 -0
  15. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts +1 -1
  16. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
  17. package/dist/hooks/magic-context/final-wire-token-estimate.d.ts +12 -4
  18. package/dist/hooks/magic-context/final-wire-token-estimate.d.ts.map +1 -1
  19. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  20. package/dist/hooks/magic-context/lkg-measured-request.d.ts.map +1 -1
  21. package/dist/hooks/magic-context/lkg-replay-fit.d.ts.map +1 -1
  22. package/dist/hooks/magic-context/module-wire.d.ts.map +1 -1
  23. package/dist/hooks/magic-context/protected-tail-boundary.d.ts +8 -0
  24. package/dist/hooks/magic-context/protected-tail-boundary.d.ts.map +1 -1
  25. package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
  26. package/dist/hooks/magic-context/read-session-raw.d.ts +10 -0
  27. package/dist/hooks/magic-context/read-session-raw.d.ts.map +1 -1
  28. package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
  29. package/dist/hooks/magic-context/signed-thinking-fit-snapshot.d.ts +42 -0
  30. package/dist/hooks/magic-context/signed-thinking-fit-snapshot.d.ts.map +1 -0
  31. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  32. package/dist/{index-y76rhsnr.js → index-0s8454t2.js} +50 -31
  33. package/dist/{index-1gtfne2c.js → index-2haxh8h3.js} +1 -1
  34. package/dist/{index-m32esgmj.js → index-3d5wnkq7.js} +1 -1
  35. package/dist/{index-jfem3dgz.js → index-7tdtpqrg.js} +5 -1
  36. package/dist/{index-mnnkgq0q.js → index-awcftgmx.js} +7 -49
  37. package/dist/{index-1kbznkft.js → index-axjgxeww.js} +10 -8
  38. package/dist/{index-j32jj2t8.js → index-bhyksfyy.js} +3 -3
  39. package/dist/{index-ksq50rg0.js → index-c9zrgcnt.js} +1 -1
  40. package/dist/index-cfaet9cg.js +405 -0
  41. package/dist/{index-jmq8kfe7.js → index-ebsvmc5s.js} +4 -4
  42. package/dist/{index-66eby7hx.js → index-jcr6pe7z.js} +1 -1
  43. package/dist/{index-syaazvy2.js → index-n18sch77.js} +5 -5
  44. package/dist/{index-a9zvn5fe.js → index-q7ywt6xt.js} +3 -3
  45. package/dist/{index-x6cbrv9h.js → index-szf8r0ba.js} +1 -1
  46. package/dist/{index-rxqr723x.js → index-t6j3qxnd.js} +1 -1
  47. package/dist/{index-11gzxvf4.js → index-y6xpzjzr.js} +98 -48
  48. package/dist/{index-mnhcdfxg.js → index-yrrsp47d.js} +91 -17
  49. package/dist/{index-zy67whjr.js → index-z05n7702.js} +1 -1
  50. package/dist/{index-3svaejkh.js → index-z928hmnp.js} +1 -1
  51. package/dist/{index-ffzhwfzy.js → index-zzrzjnx5.js} +3 -3
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +43 -38
  54. package/dist/{message-fts-rowid-map-e79b7b6x.js → message-fts-rowid-map-9e1getgs.js} +2 -2
  55. package/dist/{message-index-4q8ek2fc.js → message-index-3g966xn7.js} +7 -7
  56. package/dist/{message-index-bounded-rydsg9r5.js → message-index-bounded-vaeqhp9w.js} +7 -7
  57. package/dist/migration-worker.js +4 -4
  58. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  59. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  60. package/dist/{project-embedding-registry-hn529988.js → project-embedding-registry-rstzmb60.js} +4 -4
  61. package/dist/raw-ordinal-warmup-worker.js +6 -6
  62. package/dist/{read-session-chunk-t039f0m5.js → read-session-chunk-z5gnc0zb.js} +4 -4
  63. package/dist/{read-session-raw-aw6jgvwg.js → read-session-raw-s4amywnh.js} +3 -1
  64. package/dist/{recomp-orchestrator-hbm53jj5.js → recomp-orchestrator-qwqeskhq.js} +14 -14
  65. package/dist/{search-hea079d7.js → search-84zfqeky.js} +11 -11
  66. package/dist/{search-archive-weh164mh.js → search-archive-mfabzyn2.js} +5 -5
  67. package/dist/{send-session-notification-gqzkz7da.js → send-session-notification-ygj4mja0.js} +3 -3
  68. package/dist/shared/slow-test.d.ts +7 -0
  69. package/dist/shared/slow-test.d.ts.map +1 -0
  70. package/dist/tools/ctx-memory/tools.d.ts.map +1 -1
  71. package/dist/tools/ctx-note/tools.d.ts.map +1 -1
  72. package/dist/tools/parameter-descriptions.d.ts +6 -6
  73. package/dist/tools/parameter-descriptions.d.ts.map +1 -1
  74. package/dist/{transform-postprocess-phase-0b04tm1p.js → transform-postprocess-phase-hr1ntmjj.js} +14 -14
  75. package/dist/v2/auto-search-worker.js +4 -4
  76. package/dist/v2/chunk-embedding-write-worker.js +5 -5
  77. package/dist/v2/{compartment-chunk-embedding-8jjmcgeg.js → compartment-chunk-embedding-tk6g4q80.js} +3 -3
  78. package/dist/v2/{context-ea3x7smm.js → context-y7wfvdve.js} +106 -50
  79. package/dist/v2/{embedding-backfill-5e74ae0m.js → embedding-backfill-w5qp7t28.js} +5 -5
  80. package/dist/v2/hooks/context.d.ts +4 -0
  81. package/dist/v2/hooks/context.d.ts.map +1 -1
  82. package/dist/v2/{message-fts-rowid-map-n8fdg2ja.js → message-fts-rowid-map-pqk3a55v.js} +2 -2
  83. package/dist/v2/{message-index-bounded-8rcd7qq9.js → message-index-bounded-te303atj.js} +6 -6
  84. package/dist/v2/{message-index-qz9wdp82.js → message-index-fz6b4jeh.js} +6 -6
  85. package/dist/v2/migration-worker.js +4 -4
  86. package/dist/v2/{project-embedding-registry-v38q4xd5.js → project-embedding-registry-e7zftfvj.js} +4 -4
  87. package/dist/v2/raw-ordinal-warmup-worker.js +6 -6
  88. package/dist/v2/{read-session-chunk-wazfyxcg.js → read-session-chunk-knvkq1hf.js} +3 -3
  89. package/dist/v2/{read-session-raw-b70cpwzj.js → read-session-raw-ppjxnqk4.js} +3 -1
  90. package/dist/v2/{recomp-orchestrator-b12zaptj.js → recomp-orchestrator-e8a4jpvr.js} +11 -11
  91. package/dist/v2/{search-archive-x64rtz1z.js → search-archive-vrwgxv6z.js} +4 -4
  92. package/dist/v2/{search-hza9x72a.js → search-hav4dggf.js} +10 -10
  93. package/dist/v2/{send-session-notification-8eqe259v.js → send-session-notification-f8scq6ae.js} +1 -1
  94. package/dist/v2/{server-m4bfaevz.js → server-5brp2rfn.js} +90 -16
  95. package/dist/v2/{server-ppcd1qxh.js → server-6a8pxpxg.js} +7 -49
  96. package/dist/v2/server-7d6m1p2b.js +361 -0
  97. package/dist/v2/{server-zg5y109h.js → server-7weh65vd.js} +45 -27
  98. package/dist/v2/{server-qteg2kt9.js → server-8j2e7t31.js} +1 -1
  99. package/dist/v2/{server-d48x3m4x.js → server-9xbbaekh.js} +1 -1
  100. package/dist/v2/{server-j8h7bsca.js → server-e75vag9d.js} +3 -3
  101. package/dist/v2/{server-132h8twc.js → server-m6yyn961.js} +2 -2
  102. package/dist/v2/{server-62g58aaz.js → server-pw21ypwb.js} +1 -1
  103. package/dist/v2/{server-ad18djzs.js → server-q5z0gag0.js} +1 -1
  104. package/dist/v2/{server-4kjmrjn4.js → server-swvhxhxz.js} +5 -1
  105. package/dist/v2/{server-33nqbqkw.js → server-tfawsj08.js} +5 -5
  106. package/dist/v2/{server-dtp8hcjh.js → server-wxrdher8.js} +1 -1
  107. package/dist/v2/server.js +5 -5
  108. package/dist/v2/{wrapup-orchestrator-3ssd5yy1.js → wrapup-orchestrator-ycs8y6n4.js} +11 -11
  109. package/dist/{wrapup-orchestrator-5vpcd1zx.js → wrapup-orchestrator-f642w8n3.js} +15 -15
  110. package/package.json +4 -4
  111. package/src/agents/permissions.ts +22 -6
  112. package/src/agents/smart-notes-dreamer-gate.golden.json +241 -241
  113. package/src/agents/smart-notes-on.golden.json +4 -4
  114. package/src/config/compaction-accessor-guard.test.ts +0 -5
  115. package/src/config/removed-config-keys.test.ts +12 -26
  116. package/src/shared/announcement.test.ts +55 -59
  117. package/src/shared/prompt-surface-a1-golden.md +6 -7
  118. package/src/shared/slow-test.ts +24 -0
  119. package/src/shared/stable-json-linear.test.ts +18 -10
  120. package/dist/index-j76ah6d7.js +0 -120
  121. package/dist/v2/server-d1dzgvwd.js +0 -120
  122. package/src/config/latch-permanence-guard.test.ts +0 -258
@@ -30,7 +30,7 @@ async function main() {
30
30
  { log }
31
31
  ] = await Promise.all([
32
32
  import("./sqlite-zdgm52sv.js"),
33
- import("./read-session-raw-b70cpwzj.js"),
33
+ import("./read-session-raw-ppjxnqk4.js"),
34
34
  import("./harness-e4avh192.js"),
35
35
  import("./logger-p34mjtja.js")
36
36
  ]);
@@ -46,13 +46,13 @@ async function main() {
46
46
  openConnections.add(db);
47
47
  db.exec("PRAGMA busy_timeout = 250");
48
48
  if (input.ftsRowidBackfill) {
49
- const { runMessageFtsRowidMapBackfill } = await import("./message-fts-rowid-map-n8fdg2ja.js");
49
+ const { runMessageFtsRowidMapBackfill } = await import("./message-fts-rowid-map-pqk3a55v.js");
50
50
  db.exec("PRAGMA busy_timeout = 0");
51
51
  await runMessageFtsRowidMapBackfill(db);
52
52
  reply = { kind: "fts-rowid-backfill" };
53
53
  } else if (input.searchArchive) {
54
- const { renderSearchArchive } = await import("./search-archive-x64rtz1z.js");
55
- const { readRawSessionMessageIdOrdinalsForRangeFromDb } = await import("./read-session-raw-b70cpwzj.js");
54
+ const { renderSearchArchive } = await import("./search-archive-vrwgxv6z.js");
55
+ const { readRawSessionMessageIdOrdinalsForRangeFromDb } = await import("./read-session-raw-ppjxnqk4.js");
56
56
  const archive = input.searchArchive;
57
57
  let raw;
58
58
  try {
@@ -84,7 +84,7 @@ async function main() {
84
84
  { configureContextDatabasePragmas }
85
85
  ] = await Promise.all([
86
86
  import("./harness-e4avh192.js"),
87
- import("./message-index-qz9wdp82.js"),
87
+ import("./message-index-fz6b4jeh.js"),
88
88
  import("./sqlite-context-pragmas-mv9jqwjh.js")
89
89
  ]);
90
90
  setHarness(input.harness ?? "opencode");
@@ -104,7 +104,7 @@ async function main() {
104
104
  const { setHarness } = await import("./harness-e4avh192.js");
105
105
  setHarness(input.harness ?? "opencode");
106
106
  const [{ indexMessageInShortChunks }, { configureContextDatabasePragmas }] = await Promise.all([
107
- import("./message-index-bounded-8rcd7qq9.js"),
107
+ import("./message-index-bounded-te303atj.js"),
108
108
  import("./sqlite-context-pragmas-mv9jqwjh.js")
109
109
  ]);
110
110
  configureContextDatabasePragmas(db);
@@ -35,15 +35,15 @@ import {
35
35
  readSessionChunk2,
36
36
  getRawSessionMessageIdsThrough2,
37
37
  readRawSessionSeedTail2
38
- } from "./server-m4bfaevz.js";
38
+ } from "./server-5brp2rfn.js";
39
39
  import"./server-fa7vtp40.js";
40
40
  import"./server-1zx87sdm.js";
41
41
  import"./server-3vhxy2k5.js";
42
42
  import"./server-24g8r2d0.js";
43
- import"./server-d1dzgvwd.js";
43
+ import"./server-7d6m1p2b.js";
44
44
  import"./server-rqebawx1.js";
45
45
  import"./server-2ra6pwf3.js";
46
- import"./server-4kjmrjn4.js";
46
+ import"./server-swvhxhxz.js";
47
47
  import"./server-51779zs2.js";
48
48
  import"./server-gyy4k6mf.js";
49
49
  import {
@@ -1,4 +1,5 @@
1
1
  import {
2
+ areRustHistorianSyntheticParts2,
2
3
  isStrictGapHealingMessage2,
3
4
  isRawCompactionSummaryInfo2,
4
5
  readRawSessionMessagesFromDb2,
@@ -27,7 +28,7 @@ import {
27
28
  hasRawSessionMessageByIdFromDb2,
28
29
  readRawSeedTailFromDb2,
29
30
  readRawSessionBoundaryEndpointsFromDb2
30
- } from "./server-4kjmrjn4.js";
31
+ } from "./server-swvhxhxz.js";
31
32
  import"./server-51779zs2.js";
32
33
  import"./server-gzy5w8ya.js";
33
34
  import"./server-6495nmn9.js";
@@ -35,6 +36,7 @@ import"./server-pavzsdc6.js";
35
36
  import"./server-cpjk5jd2.js";
36
37
  export {
37
38
  RawOrdinalsNotReady2 as RawOrdinalsNotReady,
39
+ areRustHistorianSyntheticParts2 as areRustHistorianSyntheticParts,
38
40
  buildInMemoryTailRawMessages2 as buildInMemoryTailRawMessages,
39
41
  countRawSessionMessageOrdinalsFromDb2 as countRawSessionMessageOrdinalsFromDb,
40
42
  countStoredRawSessionMessagesFromDb2 as countStoredRawSessionMessagesFromDb,
@@ -7,18 +7,18 @@ import {
7
7
  setRecompTerminal2,
8
8
  buildRecompDeps2,
9
9
  runManagedRecomp2
10
- } from "./server-zg5y109h.js";
10
+ } from "./server-7weh65vd.js";
11
11
  import"./server-806rzhs6.js";
12
- import"./server-d48x3m4x.js";
13
- import"./server-ppcd1qxh.js";
14
- import"./server-qteg2kt9.js";
12
+ import"./server-9xbbaekh.js";
13
+ import"./server-6a8pxpxg.js";
14
+ import"./server-8j2e7t31.js";
15
15
  import"./server-jjvbk92s.js";
16
- import"./server-ad18djzs.js";
16
+ import"./server-q5z0gag0.js";
17
17
  import"./server-4dhv7mqz.js";
18
18
  import"./server-53eh1r8r.js";
19
19
  import"./server-6v3cdzsx.js";
20
20
  import"./server-qt1qqasc.js";
21
- import"./server-m4bfaevz.js";
21
+ import"./server-5brp2rfn.js";
22
22
  import"./server-fa7vtp40.js";
23
23
  import"./server-1zx87sdm.js";
24
24
  import"./server-3vhxy2k5.js";
@@ -29,19 +29,19 @@ import"./server-x8a7jmkh.js";
29
29
  import"./server-vr4szghm.js";
30
30
  import"./server-24g8r2d0.js";
31
31
  import"./server-bsgd4dk1.js";
32
- import"./server-62g58aaz.js";
32
+ import"./server-pw21ypwb.js";
33
33
  import"./server-ab1g0wn9.js";
34
- import"./server-j8h7bsca.js";
34
+ import"./server-e75vag9d.js";
35
35
  import"./server-fb3zxn06.js";
36
36
  import"./server-wwaw5npa.js";
37
37
  import"./server-fr0wbhdn.js";
38
38
  import"./server-qjvk4a9t.js";
39
- import"./server-dtp8hcjh.js";
39
+ import"./server-wxrdher8.js";
40
40
  import"./server-k3t06fxr.js";
41
- import"./server-d1dzgvwd.js";
41
+ import"./server-7d6m1p2b.js";
42
42
  import"./server-rqebawx1.js";
43
43
  import"./server-2ra6pwf3.js";
44
- import"./server-4kjmrjn4.js";
44
+ import"./server-swvhxhxz.js";
45
45
  import"./server-51779zs2.js";
46
46
  import"./server-gyy4k6mf.js";
47
47
  import"./server-3mz2qh5a.js";
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  renderSearchArchive2,
3
3
  renderSearchArchiveOffThread2
4
- } from "./server-132h8twc.js";
4
+ } from "./server-m6yyn961.js";
5
5
  import"./server-kaqs6h31.js";
6
- import"./server-m4bfaevz.js";
6
+ import"./server-5brp2rfn.js";
7
7
  import"./server-fa7vtp40.js";
8
8
  import"./server-1zx87sdm.js";
9
9
  import"./server-3vhxy2k5.js";
10
10
  import"./server-24g8r2d0.js";
11
- import"./server-d1dzgvwd.js";
11
+ import"./server-7d6m1p2b.js";
12
12
  import"./server-rqebawx1.js";
13
13
  import"./server-2ra6pwf3.js";
14
- import"./server-4kjmrjn4.js";
14
+ import"./server-swvhxhxz.js";
15
15
  import"./server-51779zs2.js";
16
16
  import"./server-gyy4k6mf.js";
17
17
  import"./server-3mz2qh5a.js";
@@ -5,33 +5,33 @@ import {
5
5
  resolveMemoriesByIdsForSearch2,
6
6
  unifiedSearch2,
7
7
  formatSearchResults2
8
- } from "./server-33nqbqkw.js";
8
+ } from "./server-tfawsj08.js";
9
9
  import"./server-kaqs6h31.js";
10
- import"./server-d48x3m4x.js";
11
- import"./server-ppcd1qxh.js";
12
- import"./server-qteg2kt9.js";
10
+ import"./server-9xbbaekh.js";
11
+ import"./server-6a8pxpxg.js";
12
+ import"./server-8j2e7t31.js";
13
13
  import"./server-jjvbk92s.js";
14
- import"./server-ad18djzs.js";
14
+ import"./server-q5z0gag0.js";
15
15
  import"./server-4dhv7mqz.js";
16
16
  import"./server-qt1qqasc.js";
17
- import"./server-m4bfaevz.js";
17
+ import"./server-5brp2rfn.js";
18
18
  import"./server-fa7vtp40.js";
19
19
  import"./server-1zx87sdm.js";
20
20
  import"./server-3vhxy2k5.js";
21
21
  import"./server-vr4szghm.js";
22
22
  import"./server-24g8r2d0.js";
23
23
  import"./server-bsgd4dk1.js";
24
- import"./server-62g58aaz.js";
24
+ import"./server-pw21ypwb.js";
25
25
  import"./server-ab1g0wn9.js";
26
26
  import"./server-wwaw5npa.js";
27
27
  import"./server-fr0wbhdn.js";
28
28
  import"./server-qjvk4a9t.js";
29
- import"./server-dtp8hcjh.js";
29
+ import"./server-wxrdher8.js";
30
30
  import"./server-k3t06fxr.js";
31
- import"./server-d1dzgvwd.js";
31
+ import"./server-7d6m1p2b.js";
32
32
  import"./server-rqebawx1.js";
33
33
  import"./server-2ra6pwf3.js";
34
- import"./server-4kjmrjn4.js";
34
+ import"./server-swvhxhxz.js";
35
35
  import"./server-51779zs2.js";
36
36
  import"./server-gyy4k6mf.js";
37
37
  import"./server-3mz2qh5a.js";
@@ -13,7 +13,7 @@ import"./server-qt1qqasc.js";
13
13
  import"./server-3vhxy2k5.js";
14
14
  import"./server-1bw1wcbp.js";
15
15
  import"./server-2ra6pwf3.js";
16
- import"./server-4kjmrjn4.js";
16
+ import"./server-swvhxhxz.js";
17
17
  import"./server-51779zs2.js";
18
18
  import"./server-gzy5w8ya.js";
19
19
  import"./server-6495nmn9.js";
@@ -70,7 +70,7 @@ import {
70
70
  readRawSeedTailFromDb2,
71
71
  readRawSessionBoundaryEndpointsFromDb2,
72
72
  prewarmRawSessionOrdinalsForDb
73
- } from "./server-4kjmrjn4.js";
73
+ } from "./server-swvhxhxz.js";
74
74
  import {
75
75
  openCodeDbExists,
76
76
  withReadOnlySessionDb,
@@ -79,9 +79,9 @@ import {
79
79
  } from "./server-3vhxy2k5.js";
80
80
  import {
81
81
  getToolDefinitionMeasurementSignature,
82
- getLargestMeasuredToolDefinitionTokens,
83
- getMeasuredToolDefinitionTokens
84
- } from "./server-d1dzgvwd.js";
82
+ getMeasuredToolDefinitionTokens,
83
+ getSessionToolDefinitionTokens
84
+ } from "./server-7d6m1p2b.js";
85
85
  import {
86
86
  canonicalModelIdentity,
87
87
  piModelRefToCanonical
@@ -163,6 +163,70 @@ function expandToolPart(part, overrides, legacyPreview = false) {
163
163
  return renderToolTemplate(template, input, state?.output ?? state?.error, legacyPreview);
164
164
  }
165
165
 
166
+ // src/hooks/magic-context/ask-answer-notice.ts
167
+ var ANSWER_HEADER_PREFIX = /^Inbox [^\n]* notice from user via user_answer \(user_answer\)/;
168
+ var ANSWER_TRAILER = /\n([\s\S]*?)\nThis ask is now closed; no dismiss is needed\. Continue accordingly\.$/;
169
+ var ANSWER_ANSWER_LINE = /^The user answered your parked question (\S+)\.\nQuestion: ([^\n]+)\nAnswer: /;
170
+ var ANSWER_QUESTION_LINE = /^Question: ([^\n]+)\nAnswer: /;
171
+ var reminderEnvelopePattern = /<system-reminder>([\s\S]*?)<\/system-reminder>/gi;
172
+ function reminderBodies(text) {
173
+ reminderEnvelopePattern.lastIndex = 0;
174
+ const bodies = [];
175
+ for (const match of text.matchAll(reminderEnvelopePattern)) {
176
+ const body = match[1];
177
+ if (body !== undefined)
178
+ bodies.push(body);
179
+ }
180
+ return bodies;
181
+ }
182
+ function parseAnswerBody(body) {
183
+ const lines = body.replace(/\r\n/g, `
184
+ `).replace(/^\n+|\n+$/g, "");
185
+ if (!ANSWER_HEADER_PREFIX.test(lines))
186
+ return null;
187
+ if (lines.includes("The user dismissed this question"))
188
+ return null;
189
+ const framed = ANSWER_TRAILER.exec(lines);
190
+ if (framed === null)
191
+ return null;
192
+ const content = framed[1] ?? "";
193
+ const narrated = ANSWER_ANSWER_LINE.exec(content);
194
+ if (narrated !== null) {
195
+ const question = narrated[2] ?? "";
196
+ const answer = content.slice(narrated[0].length);
197
+ return closedAnswer(question, answer);
198
+ }
199
+ const bare = ANSWER_QUESTION_LINE.exec(content);
200
+ if (bare !== null) {
201
+ const question = bare[1] ?? "";
202
+ const answer = content.slice(bare[0].length);
203
+ return closedAnswer(question, answer);
204
+ }
205
+ return null;
206
+ }
207
+ function closedAnswer(question, answer) {
208
+ if (question.trim().length === 0)
209
+ return null;
210
+ if (answer.trim().length === 0)
211
+ return null;
212
+ return { question, answer };
213
+ }
214
+ function extractAskAnswerNotices(text) {
215
+ const notices = [];
216
+ for (const body of reminderBodies(text)) {
217
+ const notice = parseAnswerBody(body);
218
+ if (notice !== null)
219
+ notices.push(notice);
220
+ }
221
+ return notices;
222
+ }
223
+ function formatAskAnswerNotice(notice) {
224
+ return `U (answered "${notice.question}"): ${notice.answer}`;
225
+ }
226
+ function askAnswerLines(text) {
227
+ return extractAskAnswerNotices(text).map(formatAskAnswerNotice);
228
+ }
229
+
166
230
  // src/hooks/magic-context/host-served-rows.ts
167
231
  var HOST_UNSERVED_ROW = "hostUnservedRow";
168
232
  function markHostUnservedRow(target) {
@@ -5657,7 +5721,7 @@ function createFinalWireUsageTracker() {
5657
5721
  const envelopeFor = (input) => {
5658
5722
  if (!input.providerID || !input.modelID || !input.systemPromptHash)
5659
5723
  return;
5660
- const tools = getToolDefinitionMeasurementSignature(input.providerID, input.modelID, input.agentName);
5724
+ const tools = getToolDefinitionMeasurementSignature(input.providerID, input.modelID, input.agentName, input.sessionId);
5661
5725
  if (!tools)
5662
5726
  return;
5663
5727
  return JSON.stringify([
@@ -5670,7 +5734,8 @@ function createFinalWireUsageTracker() {
5670
5734
  ]);
5671
5735
  };
5672
5736
  return {
5673
- estimate(sessionId, input, limit) {
5737
+ estimate(sessionId, request, limit) {
5738
+ const input = { ...request, sessionId: request.sessionId ?? sessionId };
5674
5739
  let measuredPrefix;
5675
5740
  try {
5676
5741
  const previous = served.get(sessionId);
@@ -5701,7 +5766,8 @@ function createFinalWireUsageTracker() {
5701
5766
  }
5702
5767
  return estimateOutgoingWireForRefusal({ ...input, measuredPrefix }, limit);
5703
5768
  },
5704
- capture(sessionId, input) {
5769
+ capture(sessionId, request) {
5770
+ const input = { ...request, sessionId: request.sessionId ?? sessionId };
5705
5771
  const previous = served.get(sessionId);
5706
5772
  served.delete(sessionId);
5707
5773
  try {
@@ -5772,7 +5838,7 @@ function estimateOutgoingWireForRefusal(input, limit) {
5772
5838
  if (bytes) {
5773
5839
  const lower = baseline + Math.ceil(bytes.bytes / 4);
5774
5840
  const calibration = resolveDecisionCalibration(input.providerID, input.modelID);
5775
- const tools = input.providerID && input.modelID ? getMeasuredToolDefinitionTokens(input.providerID, input.modelID, input.agentName) : undefined;
5841
+ const tools = input.providerID && input.modelID ? getMeasuredToolDefinitionTokens(input.providerID, input.modelID, input.agentName, input.sessionId) : undefined;
5776
5842
  const envelope = measured ? baseline : tools !== undefined && Number.isFinite(input.systemPromptTokens) && input.systemPromptTokens > 0 ? providerMass({ system: input.systemPromptTokens, tools }, calibration, true) : undefined;
5777
5843
  const upper = envelope === undefined ? undefined : envelope + Math.ceil(bytes.bytes * Math.max(UNKNOWN_FIT_RATIO, calibration.toolsRatio, calibration.proseRatio));
5778
5844
  if (bytes.aborted || lower > limit || upper !== undefined && upper <= limit) {
@@ -5800,17 +5866,17 @@ function estimateFinalWireInputTokens(input) {
5800
5866
  total.toolCall += next.toolCall;
5801
5867
  return total;
5802
5868
  }, { conversation: 0, toolCall: 0 });
5803
- const measuredToolDefinitions = input.toolDefinitionTokens ?? (input.providerID && input.modelID ? getMeasuredToolDefinitionTokens(input.providerID, input.modelID, input.agentName) : undefined);
5869
+ const measuredToolDefinitions = input.toolDefinitionTokens ?? (input.providerID && input.modelID ? getMeasuredToolDefinitionTokens(input.providerID, input.modelID, input.agentName, input.sessionId) : undefined);
5804
5870
  const calibration = resolveDecisionCalibration(input.providerID, input.modelID);
5805
- const largestToolDefinitions = measuredToolDefinitions === undefined ? getLargestMeasuredToolDefinitionTokens() : undefined;
5806
- const toolDefinitions = measuredToolDefinitions ?? (largestToolDefinitions === undefined ? undefined : Math.ceil(largestToolDefinitions * UNKNOWN_FIT_RATIO / (calibration.seeded ? calibration.toolsRatio : UNKNOWN_FIT_RATIO)));
5871
+ const borrowedToolDefinitions = measuredToolDefinitions === undefined ? getSessionToolDefinitionTokens(input.sessionId) : undefined;
5872
+ const toolDefinitions = measuredToolDefinitions ?? (borrowedToolDefinitions === undefined ? undefined : Math.ceil(borrowedToolDefinitions * UNKNOWN_FIT_RATIO / (calibration.seeded ? calibration.toolsRatio : UNKNOWN_FIT_RATIO)));
5807
5873
  const rawComponents = {
5808
5874
  system: input.systemPromptTokens,
5809
5875
  tools: (toolDefinitions ?? 0) + messageTokens.toolCall,
5810
5876
  prose: messageTokens.conversation
5811
5877
  };
5812
5878
  const tokens = providerMass(rawComponents, calibration, true);
5813
- const pressureToolDefinitions = measuredToolDefinitions ?? largestToolDefinitions ?? 0;
5879
+ const pressureToolDefinitions = measuredToolDefinitions ?? borrowedToolDefinitions ?? 0;
5814
5880
  const pressureTokens = providerMass({
5815
5881
  system: rawComponents.system,
5816
5882
  tools: pressureToolDefinitions + messageTokens.toolCall,
@@ -6470,6 +6536,9 @@ function withRawMessageProvider2(sessionId, provider, fn) {
6470
6536
  function cleanUserText2(text) {
6471
6537
  return stripOutsideSteeringWrappers(text, (segment) => removeSystemReminders(segment).replace(OMO_INTERNAL_INITIATOR_MARKER, "")).trim();
6472
6538
  }
6539
+ function answerLineParts(rawText) {
6540
+ return askAnswerLines(rawText).map(normalizeText).filter((value) => value.length > 0);
6541
+ }
6473
6542
  function hasMeaningfulChunkUserText(parts) {
6474
6543
  for (const part of parts) {
6475
6544
  if (part === null || typeof part !== "object")
@@ -6486,7 +6555,7 @@ function hasMeaningfulChunkUserText(parts) {
6486
6555
  continue;
6487
6556
  return true;
6488
6557
  }
6489
- return false;
6558
+ return parts.some((part) => part !== null && typeof part === "object" && part.type === "text" && typeof part.text === "string" && part.ignored !== true && askAnswerLines(part.text).length > 0);
6490
6559
  }
6491
6560
  function withRawSessionMessageCache2(fn) {
6492
6561
  const outerCache = activeRawMessageCache;
@@ -7240,8 +7309,10 @@ function readSessionChunk2(sessionId, tokenBudget, offset = 1, eligibleEndOrdina
7240
7309
  }
7241
7310
  const role = compactRole(msg.role);
7242
7311
  const textParts = extractTexts2(msg.parts).map((t) => msg.role === "user" ? cleanUserText2(t) : t).map(normalizeText).filter((value) => value.length > 0);
7312
+ const answerParts = msg.role === "user" ? extractTexts2(msg.parts).flatMap((text) => answerLineParts(text)) : [];
7313
+ const userParts = answerParts.length > 0 ? [...textParts, ...answerParts] : textParts;
7243
7314
  const allParts = options.expand === false ? [
7244
- ...textParts,
7315
+ ...userParts,
7245
7316
  ...textParts.length === 0 ? extractToolCallSummaries(msg.parts) : []
7246
7317
  ] : msg.parts.flatMap((part) => {
7247
7318
  if (expandedResults.has(part))
@@ -7250,6 +7321,9 @@ function readSessionChunk2(sessionId, tokenBudget, offset = 1, eligibleEndOrdina
7250
7321
  if (expansion !== null)
7251
7322
  return [`TC: ${expansion}`];
7252
7323
  const texts = extractTexts2([part]).map((t) => msg.role === "user" ? cleanUserText2(t) : t).map(normalizeText).filter(Boolean);
7324
+ if (msg.role === "user") {
7325
+ texts.push(...extractTexts2([part]).flatMap((text) => answerLineParts(text)));
7326
+ }
7253
7327
  return texts.length ? texts : textParts.length === 0 ? extractToolCallSummaries([part]) : [];
7254
7328
  });
7255
7329
  const compacted = compactTextForSummary(allParts.join(" / "), msg.role);
@@ -7258,7 +7332,7 @@ function readSessionChunk2(sessionId, tokenBudget, offset = 1, eligibleEndOrdina
7258
7332
  recordFilteredNoise(meta);
7259
7333
  continue;
7260
7334
  }
7261
- const msgHasNarrative = textParts.length > 0;
7335
+ const msgHasNarrative = userParts.length > 0;
7262
7336
  if (currentBlock && currentBlock.role === role) {
7263
7337
  currentBlock.endOrdinal = msg.ordinal;
7264
7338
  currentBlock.parts.push(text);
@@ -7360,4 +7434,4 @@ function readRawSessionSeedTail2(sessionId, boundaryId, onQuery) {
7360
7434
  });
7361
7435
  }
7362
7436
 
7363
- export { expandToolPart, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, markCoveredInstructionRow, isCoveredInstructionRow, takeCoveredInstructionRows, cloneKeepingCoveredInstructionMarks, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, stripSystemInjection, isTextPart, isToolPartWithOutput, isFilePart, toolPartHasUserAnswer, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, TOOL_USE_DISABLED, needsBlockedRead, withBlockedReadInstruction, rememberV1HiddenRun, recordToolParameters, createDroppedInputGuard, assertExecutableToolInput, isEditTool, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, MAX_EXECUTE_THRESHOLD, escalationBands, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, readEpochFloorSnapshot, getProtectionWindowForSession, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, clearCachedM0, withReplayEnvelopeSnapshot, invalidateReplayEnvelopeSnapshot, isRustMarkerAdmissionFenced, setRustMarkerAdmissionFence, ReplayDocumentError, readReplayEnvelope, readReplayDocument, updateReplayDocument, writeReplayDocument, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, describeProtectedTailDrainBudgetSkip, loadPersistedUsage, loadProtectedTailMeta, markProtectedTailPolicyV3Seeded, recordProtectedTailPublicationFloor, recordProtectedTailNoEligibleHead, resetProtectedTailNoEligibleHead, getWrapupInProgressState, isWrapupInProgress, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, getProtectedTailDrainBudgetSkip, reserveProtectedTailDrainTokens, clearEmergencyDrainLatch, recordHistorianDrainFailure, clearHistorianDrainFailure, rollbackProtectedTailDrainReservation, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, COMPACTION_OFF_THINKING_FROZEN_PREFIX, compactionOffThinkingFrozenId, compactionOffFrozenThinkingIds, getThinkingBindingRecoveryTarget, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, parseProcessedImageMarkers, serializeProcessedImageMarkers, getProcessedImageMarkers, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, logPiCompactionMarkerClear, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, getReasoningRemovalState, addRemovedReasoningIds, markDropLeavesReasoning, detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, modelAcceptsEmptyContent, isAnthropicFamilyRoute, neutralizeDroppedReasoningPart, restoreNeutralizedReasoningPart, isNeutralizedReasoningPart, variantChangeBustsProviderCache, makeSentinel, makeWholeMessageSentinel, isSentinel, replaySentinelByMessageIds, isInActiveAnthropicTurn, activeAnthropicTurnStart, hasAnthropicReasoning, markServedShapeRepair, prepareServedShapeRepair, stripSystemInjectedMessages, stripDroppedPlaceholderMessages, replayClearedReasoning, replayStrippedInlineThinking, clearOldReasoning, stripClearedReasoning, captureInlineThinkingRepairs, stripInlineThinking, findReasoningBearingAssistantIds, findLatestAssistantReasoningMutationExemptMessage, snapshotTrailingBlankSourceDecisions, findTrailingBlankDecisionCandidates, applyFrozenTrailingBlankDecisions, stripReasoningFromAssistantIds, findMergedReasoningStripDecisions, stripReasoningFromMergedAssistants, getEmptyImageParts, stripProcessedImages, projectOpencodeReasoningBudgetCutoff, DEFAULT_KEEP_REASONING_TOKENS, resolveKeepReasoningTokens, reasoningStepCost, reasoningBudgetCutoff, reasoningTextAndOpaque, opencodeReasoningBudgetCutoff, describeFinalWireTail, estimatePartImageTokens, estimateMessageTokens, wireContentBytes, createFinalWireUsageTracker, estimateFinalWireInputTokens, estimateAppendedWireTokens, SKELETON_REAL_INPUT_MAX_BYTES, partHasCompletedResult, extractToolCallObservation, ToolMutationBatch, createToolDropTarget, resolveHostServedBoundaryId2, hasRawMessageProvider2, setRawMessageProvider2, setBoundedRawMessageProvider2, withRawMessageProvider2, cleanUserText2, withRawSessionMessageCache2, readRawSessionMessages2, readRawSessionMessagePage2, getRawSessionMessageOrdinalCount2, RAW_MESSAGE_VISIT_PAGE_SIZE2, visitRawSessionMessages2, visitRawSessionMessagesAsync2, readRawSessionMessageRange2, prepareRawSessionOrdinals2, primeTailRawMessageCache2, getCachedAbsoluteMessageCount2, primeInMemoryTailRawMessageCache2, readRawSessionMessageOrdinalPage2, getRawSessionStoredMessageCount2, readRawSessionMessageIdOrdinalsForRange2, readRawSessionMessageIdOrdinals2, readRawSessionMessagePartsById2, readRawSessionBoundaryEndpoints2, hasRawSessionMessageById2, readRawSessionMessageOrdinalById2, compareRawSessionMessageOrder2, readRawSessionMessageById2, getRawSessionMessageCount2, RAW_SESSION_TAG_KEY_PAGE_SIZE2, getRawSessionTagKeysThrough2, getLegacyProtectedTailStartOrdinal2, getProtectedTailStartOrdinal2, readSessionChunk2, getRawSessionMessageIdsThrough2, readRawSessionSeedTail2 };
7437
+ export { expandToolPart, askAnswerLines, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, markCoveredInstructionRow, isCoveredInstructionRow, takeCoveredInstructionRows, cloneKeepingCoveredInstructionMarks, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, stripSystemInjection, isTextPart, isToolPartWithOutput, isFilePart, toolPartHasUserAnswer, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, TOOL_USE_DISABLED, needsBlockedRead, withBlockedReadInstruction, rememberV1HiddenRun, recordToolParameters, createDroppedInputGuard, assertExecutableToolInput, isEditTool, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, MAX_EXECUTE_THRESHOLD, escalationBands, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, readEpochFloorSnapshot, getProtectionWindowForSession, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, clearCachedM0, withReplayEnvelopeSnapshot, invalidateReplayEnvelopeSnapshot, isRustMarkerAdmissionFenced, setRustMarkerAdmissionFence, ReplayDocumentError, readReplayEnvelope, readReplayDocument, updateReplayDocument, writeReplayDocument, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, describeProtectedTailDrainBudgetSkip, loadPersistedUsage, loadProtectedTailMeta, markProtectedTailPolicyV3Seeded, recordProtectedTailPublicationFloor, recordProtectedTailNoEligibleHead, resetProtectedTailNoEligibleHead, getWrapupInProgressState, isWrapupInProgress, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, getProtectedTailDrainBudgetSkip, reserveProtectedTailDrainTokens, clearEmergencyDrainLatch, recordHistorianDrainFailure, clearHistorianDrainFailure, rollbackProtectedTailDrainReservation, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, COMPACTION_OFF_THINKING_FROZEN_PREFIX, compactionOffThinkingFrozenId, compactionOffFrozenThinkingIds, getThinkingBindingRecoveryTarget, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, parseProcessedImageMarkers, serializeProcessedImageMarkers, getProcessedImageMarkers, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, logPiCompactionMarkerClear, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, getReasoningRemovalState, addRemovedReasoningIds, markDropLeavesReasoning, detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, modelAcceptsEmptyContent, isAnthropicFamilyRoute, neutralizeDroppedReasoningPart, restoreNeutralizedReasoningPart, isNeutralizedReasoningPart, variantChangeBustsProviderCache, makeSentinel, makeWholeMessageSentinel, isSentinel, replaySentinelByMessageIds, isInActiveAnthropicTurn, activeAnthropicTurnStart, hasAnthropicReasoning, markServedShapeRepair, prepareServedShapeRepair, stripSystemInjectedMessages, stripDroppedPlaceholderMessages, replayClearedReasoning, replayStrippedInlineThinking, clearOldReasoning, stripClearedReasoning, captureInlineThinkingRepairs, stripInlineThinking, findReasoningBearingAssistantIds, findLatestAssistantReasoningMutationExemptMessage, snapshotTrailingBlankSourceDecisions, findTrailingBlankDecisionCandidates, applyFrozenTrailingBlankDecisions, stripReasoningFromAssistantIds, findMergedReasoningStripDecisions, stripReasoningFromMergedAssistants, getEmptyImageParts, stripProcessedImages, projectOpencodeReasoningBudgetCutoff, DEFAULT_KEEP_REASONING_TOKENS, resolveKeepReasoningTokens, reasoningStepCost, reasoningBudgetCutoff, reasoningTextAndOpaque, opencodeReasoningBudgetCutoff, describeFinalWireTail, estimatePartImageTokens, estimateMessageTokens, wireContentBytes, createFinalWireUsageTracker, estimateFinalWireInputTokens, estimateAppendedWireTokens, SKELETON_REAL_INPUT_MAX_BYTES, partHasCompletedResult, extractToolCallObservation, ToolMutationBatch, createToolDropTarget, resolveHostServedBoundaryId2, hasRawMessageProvider2, setRawMessageProvider2, setBoundedRawMessageProvider2, withRawMessageProvider2, cleanUserText2, withRawSessionMessageCache2, readRawSessionMessages2, readRawSessionMessagePage2, getRawSessionMessageOrdinalCount2, RAW_MESSAGE_VISIT_PAGE_SIZE2, visitRawSessionMessages2, visitRawSessionMessagesAsync2, readRawSessionMessageRange2, prepareRawSessionOrdinals2, primeTailRawMessageCache2, getCachedAbsoluteMessageCount2, primeInMemoryTailRawMessageCache2, readRawSessionMessageOrdinalPage2, getRawSessionStoredMessageCount2, readRawSessionMessageIdOrdinalsForRange2, readRawSessionMessageIdOrdinals2, readRawSessionMessagePartsById2, readRawSessionBoundaryEndpoints2, hasRawSessionMessageById2, readRawSessionMessageOrdinalById2, compareRawSessionMessageOrder2, readRawSessionMessageById2, getRawSessionMessageCount2, RAW_SESSION_TAG_KEY_PAGE_SIZE2, getRawSessionTagKeysThrough2, getLegacyProtectedTailStartOrdinal2, getProtectedTailStartOrdinal2, readSessionChunk2, getRawSessionMessageIdsThrough2, readRawSessionSeedTail2 };
@@ -35,17 +35,20 @@ import {
35
35
  } from "./server-rqebawx1.js";
36
36
  import {
37
37
  cleanUserText2
38
- } from "./server-m4bfaevz.js";
38
+ } from "./server-5brp2rfn.js";
39
+ import {
40
+ BoundedSessionMap
41
+ } from "./server-7d6m1p2b.js";
39
42
  import {
40
43
  recordMessageFtsRowid2,
41
44
  recordIndexedMessageTime2,
42
45
  messageFtsOrdinalRangeIsMapped2,
43
46
  getMessageFtsRowidMapBackfillProgress2,
44
47
  deleteUnmappedMessageFtsRows2
45
- } from "./server-dtp8hcjh.js";
48
+ } from "./server-wxrdher8.js";
46
49
  import {
47
50
  deleteChunkEmbedBackoffForSession2
48
- } from "./server-62g58aaz.js";
51
+ } from "./server-pw21ypwb.js";
49
52
  import {
50
53
  sameProjectDirectory
51
54
  } from "./server-knvkbfvh.js";
@@ -63,51 +66,6 @@ import {
63
66
  writeStorageFileDurableAtomicSync
64
67
  } from "./server-fvnzcnww.js";
65
68
 
66
- // src/shared/bounded-session-map.ts
67
- class BoundedSessionMap {
68
- maxEntries;
69
- store = new Map;
70
- constructor(maxEntries) {
71
- if (!Number.isFinite(maxEntries) || maxEntries < 1) {
72
- throw new Error(`BoundedSessionMap: maxEntries must be >= 1, got ${maxEntries}`);
73
- }
74
- this.maxEntries = maxEntries;
75
- }
76
- get(sessionId) {
77
- const value = this.store.get(sessionId);
78
- if (value === undefined)
79
- return;
80
- this.store.delete(sessionId);
81
- this.store.set(sessionId, value);
82
- return value;
83
- }
84
- peek(sessionId) {
85
- return this.store.get(sessionId);
86
- }
87
- has(sessionId) {
88
- return this.store.has(sessionId);
89
- }
90
- set(sessionId, value) {
91
- if (this.store.has(sessionId)) {
92
- this.store.delete(sessionId);
93
- } else if (this.store.size >= this.maxEntries) {
94
- const oldest = this.store.keys().next().value;
95
- if (oldest !== undefined)
96
- this.store.delete(oldest);
97
- }
98
- this.store.set(sessionId, value);
99
- }
100
- delete(sessionId) {
101
- return this.store.delete(sessionId);
102
- }
103
- clear() {
104
- this.store.clear();
105
- }
106
- get size() {
107
- return this.store.size;
108
- }
109
- }
110
-
111
69
  // src/hooks/magic-context/lkg-recovery-fence.ts
112
70
  import { createHash as createHash2, randomUUID as randomUUID2 } from "node:crypto";
113
71
  import {
@@ -2259,4 +2217,4 @@ async function sweepOrphanedOpenCodeMessageIndexesCooperatively2(db, openSource,
2259
2217
  }));
2260
2218
  }
2261
2219
 
2262
- export { BoundedSessionMap, LkgRecoveryFenceError, clearLkgFenceProcessState, lkgServedArrayDigest, takeLkgRecoveryLockSweepPage, hasCleanLkgRecoveryFence, lkgFenceRequiresRebuild, lkgRecoveryFenceUnclean, dirtyLkgRecoveryRevision, ownsLkgDirtyFence, invalidateCleanLkgRecoveryFence, prepareLkgCaptureFence, certifyCommittedLkgCapture, markLkgRecoveryDirty, commitLkgWithRecoveryFence, clearLkgRecoveryFence, gaDatabasePath, RAW_MESSAGE_TYPES, V2StoreReaderPool, V2StoreReader, cleanSearchText, keywordRelevance, matchedSearchSnippet, clearCompressionDepth, clearCompressionDepthRange, advanceSessionActivity, backfillSessionActivity, deleteSessionScopedRows, MESSAGE_INDEX_MAX_FTS_BYTES2, messageIndexSkipKey2, toMessageIndexSource2, getMessageIndexSourceIdentity2, isMessageIndexSourceCurrent2, getLastIndexedOrdinal2, getIndexedMessageCorpusSize2, markMessageIndexDirty2, getMessageIndexReconciliationStartOrdinal2, isMessageIndexReconciledThrough2, deleteIndexedMessage2, clearIndexedMessagesInTransaction2, clearIndexedMessages2, getIndexableContent2, indexSingleMessage2, indexMessagesAfterOrdinal2, indexSourcesAfterOrdinal2, sweepOrphanedOpenCodeMessageIndexesCooperatively2 };
2220
+ export { LkgRecoveryFenceError, clearLkgFenceProcessState, lkgServedArrayDigest, takeLkgRecoveryLockSweepPage, hasCleanLkgRecoveryFence, lkgFenceRequiresRebuild, lkgRecoveryFenceUnclean, dirtyLkgRecoveryRevision, ownsLkgDirtyFence, invalidateCleanLkgRecoveryFence, prepareLkgCaptureFence, certifyCommittedLkgCapture, markLkgRecoveryDirty, commitLkgWithRecoveryFence, clearLkgRecoveryFence, gaDatabasePath, RAW_MESSAGE_TYPES, V2StoreReaderPool, V2StoreReader, cleanSearchText, keywordRelevance, matchedSearchSnippet, clearCompressionDepth, clearCompressionDepthRange, advanceSessionActivity, backfillSessionActivity, deleteSessionScopedRows, MESSAGE_INDEX_MAX_FTS_BYTES2, messageIndexSkipKey2, toMessageIndexSource2, getMessageIndexSourceIdentity2, isMessageIndexSourceCurrent2, getLastIndexedOrdinal2, getIndexedMessageCorpusSize2, markMessageIndexDirty2, getMessageIndexReconciliationStartOrdinal2, isMessageIndexReconciledThrough2, deleteIndexedMessage2, clearIndexedMessagesInTransaction2, clearIndexedMessages2, getIndexableContent2, indexSingleMessage2, indexMessagesAfterOrdinal2, indexSourcesAfterOrdinal2, sweepOrphanedOpenCodeMessageIndexesCooperatively2 };