@cortexkit/opencode-magic-context 0.37.0 → 0.38.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 (94) hide show
  1. package/README.md +2 -0
  2. package/dist/{derive-budgets-0f8xpyw2.js → derive-budgets-da4yg3tz.js} +1 -1
  3. package/dist/features/magic-context/dreamer/classify-prompt.d.ts +5 -1
  4. package/dist/features/magic-context/dreamer/classify-prompt.d.ts.map +1 -1
  5. package/dist/features/magic-context/dreamer/classify.d.ts.map +1 -1
  6. package/dist/features/magic-context/dreamer/manifest-parser.d.ts +8 -0
  7. package/dist/features/magic-context/dreamer/manifest-parser.d.ts.map +1 -1
  8. package/dist/features/magic-context/dreamer/map-memories-prompt.d.ts +7 -1
  9. package/dist/features/magic-context/dreamer/map-memories-prompt.d.ts.map +1 -1
  10. package/dist/features/magic-context/dreamer/map-memories.d.ts +18 -0
  11. package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -1
  12. package/dist/features/magic-context/dreamer/storage-dream-runs.d.ts +5 -0
  13. package/dist/features/magic-context/dreamer/storage-dream-runs.d.ts.map +1 -1
  14. package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
  15. package/dist/features/magic-context/dreamer/verify-prompt.d.ts +5 -1
  16. package/dist/features/magic-context/dreamer/verify-prompt.d.ts.map +1 -1
  17. package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
  18. package/dist/features/magic-context/fail-closed-block.d.ts +6 -1
  19. package/dist/features/magic-context/fail-closed-block.d.ts.map +1 -1
  20. package/dist/features/magic-context/reclaim-protection.d.ts +13 -0
  21. package/dist/features/magic-context/reclaim-protection.d.ts.map +1 -0
  22. package/dist/features/magic-context/storage-db.d.ts +6 -1
  23. package/dist/features/magic-context/storage-db.d.ts.map +1 -1
  24. package/dist/features/magic-context/storage-meta-persisted.d.ts +7 -6
  25. package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
  26. package/dist/features/magic-context/storage-tags.d.ts +13 -5
  27. package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
  28. package/dist/hooks/auto-update-checker/checker.d.ts +8 -1
  29. package/dist/hooks/auto-update-checker/checker.d.ts.map +1 -1
  30. package/dist/hooks/auto-update-checker/index.d.ts.map +1 -1
  31. package/dist/hooks/magic-context/channel2-cycle.d.ts +16 -0
  32. package/dist/hooks/magic-context/channel2-cycle.d.ts.map +1 -0
  33. package/dist/hooks/magic-context/channel2-delivery.d.ts +3 -9
  34. package/dist/hooks/magic-context/channel2-delivery.d.ts.map +1 -1
  35. package/dist/hooks/magic-context/command-handler.d.ts +2 -0
  36. package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
  37. package/dist/hooks/magic-context/ctx-reduce-nudge.d.ts +33 -103
  38. package/dist/hooks/magic-context/ctx-reduce-nudge.d.ts.map +1 -1
  39. package/dist/hooks/magic-context/emergency-drop.d.ts.map +1 -1
  40. package/dist/hooks/magic-context/event-handler.d.ts.map +1 -1
  41. package/dist/hooks/magic-context/execute-status.d.ts +2 -1
  42. package/dist/hooks/magic-context/execute-status.d.ts.map +1 -1
  43. package/dist/hooks/magic-context/fold-execution-gate.d.ts +2 -0
  44. package/dist/hooks/magic-context/fold-execution-gate.d.ts.map +1 -0
  45. package/dist/hooks/magic-context/hook-handlers.d.ts.map +1 -1
  46. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  47. package/dist/hooks/magic-context/live-session-state.d.ts +3 -0
  48. package/dist/hooks/magic-context/live-session-state.d.ts.map +1 -1
  49. package/dist/hooks/magic-context/rust-mode-transform.d.ts +4 -2
  50. package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
  51. package/dist/hooks/magic-context/strip-content.d.ts +10 -8
  52. package/dist/hooks/magic-context/strip-content.d.ts.map +1 -1
  53. package/dist/hooks/magic-context/supersession-reclaim.d.ts.map +1 -1
  54. package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
  55. package/dist/hooks/magic-context/tail-hygiene-walk.d.ts +78 -0
  56. package/dist/hooks/magic-context/tail-hygiene-walk.d.ts.map +1 -0
  57. package/dist/hooks/magic-context/tool-reclaim.d.ts.map +1 -1
  58. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +3 -0
  59. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  60. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  61. package/dist/{index-q0t189ay.js → index-9zhhvr4w.js} +27 -35
  62. package/dist/{index-0ze9p983.js → index-mmvhrqqb.js} +1428 -191
  63. package/dist/index.js +604 -763
  64. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  65. package/dist/plugin/messages-transform.d.ts.map +1 -1
  66. package/dist/plugin/rpc-handlers.d.ts +2 -0
  67. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  68. package/dist/{recomp-orchestrator-c3ff16k7.js → recomp-orchestrator-jsde4ygw.js} +2 -2
  69. package/dist/shared/models-dev-cache.d.ts +2 -0
  70. package/dist/shared/models-dev-cache.d.ts.map +1 -1
  71. package/dist/shared/rpc-server.d.ts.map +1 -1
  72. package/dist/shared/rpc-types.d.ts +15 -0
  73. package/dist/shared/rpc-types.d.ts.map +1 -1
  74. package/dist/shared/rpc-utils.d.ts +9 -0
  75. package/dist/shared/rpc-utils.d.ts.map +1 -1
  76. package/dist/shared/tail-hygiene-status.d.ts +15 -0
  77. package/dist/shared/tail-hygiene-status.d.ts.map +1 -0
  78. package/dist/shared/window-geometry.d.ts +3 -2
  79. package/dist/shared/window-geometry.d.ts.map +1 -1
  80. package/package.json +3 -1
  81. package/src/config/schema/magic-context.ts +2 -2
  82. package/src/shared/models-dev-cache.test.ts +25 -0
  83. package/src/shared/models-dev-cache.ts +5 -4
  84. package/src/shared/rpc-server.ts +1 -0
  85. package/src/shared/rpc-types.ts +16 -0
  86. package/src/shared/rpc-utils.test.ts +25 -0
  87. package/src/shared/rpc-utils.ts +80 -0
  88. package/src/shared/tail-hygiene-status.ts +57 -0
  89. package/src/shared/window-geometry.test.ts +34 -1
  90. package/src/shared/window-geometry.ts +37 -40
  91. package/src/tui/index.tsx +11 -1
  92. package/src/tui/slots/sidebar-content.tsx +17 -5
  93. package/src/tui-compiled/index.tsx +311 -289
  94. package/src/tui-compiled/slots/sidebar-content.tsx +316 -287
@@ -1 +1 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform.ts"],"names":[],"mappings":"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"}
@@ -71,28 +71,6 @@ function isRecord(value) {
71
71
  function isFinitePositive(value) {
72
72
  return typeof value === "number" && Number.isFinite(value) && value > 0;
73
73
  }
74
- function modelKeyLookupOrder(providerID, modelID) {
75
- const candidates = [...modelRefLookupOrder(`${providerID}/${modelID}`), modelID];
76
- const colon = modelID.lastIndexOf(":");
77
- if (colon > 0) {
78
- const bareModel = modelID.slice(0, colon);
79
- candidates.push(...modelRefLookupOrder(`${providerID}/${bareModel}`), bareModel);
80
- }
81
- return [...new Set(candidates)];
82
- }
83
- function configuredOutputReserve(config, providerID, modelID) {
84
- if (typeof config === "number") {
85
- return Number.isFinite(config) && config >= 0 ? config : undefined;
86
- }
87
- if (!config)
88
- return;
89
- for (const candidate of modelKeyLookupOrder(providerID, modelID)) {
90
- const value = config[candidate];
91
- if (typeof value === "number" && Number.isFinite(value) && value >= 0)
92
- return value;
93
- }
94
- return Number.isFinite(config.default) && config.default >= 0 ? config.default : undefined;
95
- }
96
74
  function scalarizeFact(value) {
97
75
  if (value.kind === "stated")
98
76
  return isFinitePositive(value.value) ? value.value : undefined;
@@ -329,21 +307,34 @@ function deriveWindowGeometry(providerID, modelID, catalogLimit, options = {}) {
329
307
  const geometryFact = overlayGeometry(options.overlay);
330
308
  const geometry = geometryFact?.kind === "stated" ? geometryFact.value : geometryFact?.kind === "unknown" ? "shared_upfront" : PROVIDER_GEOMETRY[providerID] ?? "shared_upfront";
331
309
  const geometryOverride = geometryFact?.kind === "stated" ? geometryFact.value : undefined;
310
+ const preCarvedInput = isFinitePositive(input) && (!isFinitePositive(softContext) || input < softContext);
311
+ const outputReserveOverride = typeof options.outputReserveOverride === "number" && Number.isFinite(options.outputReserveOverride) && options.outputReserveOverride >= 0 ? options.outputReserveOverride : undefined;
312
+ let derivationWindow = softContext ?? input;
332
313
  let usableSoft;
333
314
  let softReserve = 0;
334
315
  let reserveSource = "none";
335
- if (isFinitePositive(input) && (!isFinitePositive(softContext) || input < softContext)) {
316
+ if (outputReserveOverride !== undefined) {
317
+ const reserveWindow = preCarvedInput ? input : softContext ?? input;
318
+ if (!isFinitePositive(reserveWindow))
319
+ return;
320
+ derivationWindow = reserveWindow;
321
+ softReserve = outputReserveOverride;
322
+ reserveSource = "output_config";
323
+ const floor = Math.max(MIN_PLAUSIBLE_CONTEXT_LIMIT, reserveWindow * 0.5);
324
+ const flooredReserve = Math.min(softReserve, Math.max(0, reserveWindow - floor));
325
+ if (flooredReserve < softReserve) {
326
+ logGeometryClampOnce(`soft-floor|${providerID}/${modelID}|${softReserve}|${flooredReserve}`, `output reserve clamped by the half-window floor for ${providerID}/${modelID}: reserve ${softReserve} → ${flooredReserve}`, options.log);
327
+ }
328
+ softReserve = flooredReserve;
329
+ usableSoft = Math.floor(reserveWindow - softReserve);
330
+ } else if (preCarvedInput) {
336
331
  usableSoft = input;
337
332
  if (isFinitePositive(softContext)) {
338
333
  softReserve = Math.max(0, softContext - input);
339
334
  reserveSource = "output_catalog";
340
335
  }
341
336
  } else if (isFinitePositive(softContext)) {
342
- const configuredReserve = configuredOutputReserve(options.reserveConfig, providerID, modelID);
343
- if (configuredReserve !== undefined) {
344
- softReserve = configuredReserve;
345
- reserveSource = "output_config";
346
- } else if (geometry === "separate" && (options.overlay === undefined || options.harness === "pi" || geometryOverride !== undefined)) {
337
+ if (geometry === "separate" && (options.overlay === undefined || options.harness === "pi" || geometryOverride !== undefined)) {
347
338
  softReserve = 0;
348
339
  reserveSource = "none";
349
340
  } else {
@@ -383,13 +374,14 @@ function deriveWindowGeometry(providerID, modelID, catalogLimit, options = {}) {
383
374
  logGeometryClampOnce(`${providerID}/${modelID}|${usableSoft}|${usableHard}`, `usable hard limit clamped for ${providerID}/${modelID}: ${usableHard} → ${usableSoft} (overlay/provider inversion)`, options.log);
384
375
  usableHard = usableSoft;
385
376
  }
377
+ const resolvedWindow = derivationWindow ?? usableSoft;
386
378
  return {
387
379
  usableSoft,
388
380
  usableHard,
389
381
  geometry,
390
382
  derivation: {
391
- window: Math.floor(softContext ?? usableSoft),
392
- reserve: Math.floor(Math.max(0, (softContext ?? usableSoft) - usableSoft)),
383
+ window: Math.floor(resolvedWindow),
384
+ reserve: Math.floor(Math.max(0, resolvedWindow - usableSoft)),
393
385
  reserveSource,
394
386
  geometry
395
387
  }
@@ -488,7 +480,7 @@ function persistApiCache() {
488
480
  function isFinitePositive2(value) {
489
481
  return typeof value === "number" && Number.isFinite(value) && value > 0;
490
482
  }
491
- function modelKeyLookupOrder2(providerID, modelID) {
483
+ function modelKeyLookupOrder(providerID, modelID) {
492
484
  const candidates = [...modelRefLookupOrder(`${providerID}/${modelID}`), modelID];
493
485
  const colon = modelID.lastIndexOf(":");
494
486
  if (colon > 0) {
@@ -497,12 +489,12 @@ function modelKeyLookupOrder2(providerID, modelID) {
497
489
  }
498
490
  return [...new Set(candidates)];
499
491
  }
500
- function configuredOutputReserve2(config, providerID, modelID) {
492
+ function resolveOutputReserve(providerID, modelID, config = outputReserveConfig) {
501
493
  if (typeof config === "number")
502
494
  return Number.isFinite(config) && config >= 0 ? config : undefined;
503
495
  if (!config)
504
496
  return;
505
- for (const candidate of modelKeyLookupOrder2(providerID, modelID)) {
497
+ for (const candidate of modelKeyLookupOrder(providerID, modelID)) {
506
498
  const value = config[candidate];
507
499
  if (typeof value === "number" && Number.isFinite(value) && value >= 0)
508
500
  return value;
@@ -527,7 +519,7 @@ function resolveLimit(limit, providerID, modelID, reserveConfig = outputReserveC
527
519
  return input;
528
520
  if (context === undefined)
529
521
  return;
530
- const configuredReserve = configuredOutputReserve2(reserveConfig, providerID, modelID);
522
+ const configuredReserve = resolveOutputReserve(providerID, modelID, reserveConfig);
531
523
  let reserve;
532
524
  if (configuredReserve !== undefined) {
533
525
  reserve = configuredReserve;
@@ -640,7 +632,7 @@ function getSdkWindowGeometry(providerID, modelID, detectedContextLimit, options
640
632
  output: metadata.outputLimit
641
633
  }, {
642
634
  overlay: resolveWindowOverlayFacts(providerID, modelID, getWindowOverlay()),
643
- reserveConfig: outputReserveConfig,
635
+ outputReserveOverride: resolveOutputReserve(providerID, modelID),
644
636
  harness: options?.harness ?? "opencode",
645
637
  contextCap: promptOnlyDetected === undefined && isFinitePositive2(detectedContextLimit) ? detectedContextLimit : undefined
646
638
  });