omp-fabric 1.23.0 → 1.24.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 (93) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/capture/wrapper.d.ts.map +1 -1
  3. package/dist/chunks/{chunk-SDZXNTBF.js → chunk-2DY7NDAZ.js} +2 -2
  4. package/dist/chunks/{chunk-DTG3DYVC.js → chunk-2HOIGAHB.js} +3 -3
  5. package/dist/chunks/{chunk-3GMSYFLT.js → chunk-5EZWO4C5.js} +3 -3
  6. package/dist/chunks/{chunk-BPMSLBX4.js → chunk-5LNZXB4X.js} +2 -2
  7. package/dist/chunks/{chunk-RA2IB2QT.js → chunk-5P4VR2IZ.js} +4 -4
  8. package/dist/chunks/{chunk-R4EFMCIY.js → chunk-6DJFJLM6.js} +2 -2
  9. package/dist/chunks/{chunk-ZQ72MAHY.js → chunk-7OEFSXWZ.js} +3 -2
  10. package/dist/chunks/{chunk-ZQ72MAHY.js.map → chunk-7OEFSXWZ.js.map} +2 -2
  11. package/dist/chunks/{chunk-WCV26AOT.js → chunk-CBQOS3IW.js} +112 -4
  12. package/dist/chunks/chunk-CBQOS3IW.js.map +7 -0
  13. package/dist/chunks/{chunk-GUJNTA7Z.js → chunk-H63XBYD3.js} +4 -2
  14. package/dist/chunks/chunk-H63XBYD3.js.map +7 -0
  15. package/dist/chunks/{chunk-4J65SMNI.js → chunk-I5ZKJNKL.js} +173 -71
  16. package/dist/chunks/chunk-I5ZKJNKL.js.map +7 -0
  17. package/dist/chunks/{chunk-YBNCEX5E.js → chunk-IH3JJDYL.js} +2 -2
  18. package/dist/chunks/{chunk-52JBWP2C.js → chunk-K5YUDXMV.js} +2 -2
  19. package/dist/chunks/{chunk-MQSRZC2O.js → chunk-MJOGV6CR.js} +2 -2
  20. package/dist/chunks/chunk-QW5LEEFV.js +130 -0
  21. package/dist/chunks/chunk-QW5LEEFV.js.map +7 -0
  22. package/dist/chunks/{chunk-LNP6JVCZ.js → chunk-QYDOKSGI.js} +5 -4
  23. package/dist/chunks/chunk-QYDOKSGI.js.map +7 -0
  24. package/dist/chunks/{chunk-P4GPBAQS.js → chunk-RT6AUW5S.js} +3 -3
  25. package/dist/chunks/{chunk-ZFMSJLQE.js → chunk-S3CWAHSO.js} +11 -1
  26. package/dist/chunks/chunk-S3CWAHSO.js.map +7 -0
  27. package/dist/compaction/hook.d.ts +1 -0
  28. package/dist/compaction/hook.d.ts.map +1 -1
  29. package/dist/compaction/hook.js +4 -4
  30. package/dist/compaction/lcm-addresses.d.ts.map +1 -1
  31. package/dist/compaction/lcm-maintenance.d.ts +2 -0
  32. package/dist/compaction/lcm-maintenance.d.ts.map +1 -1
  33. package/dist/compaction/lcm-model.d.ts +1 -0
  34. package/dist/compaction/lcm-model.d.ts.map +1 -1
  35. package/dist/compaction/lcm-recovery.d.ts +7 -0
  36. package/dist/compaction/lcm-recovery.d.ts.map +1 -0
  37. package/dist/compaction/lcm-runtime.d.ts +6 -1
  38. package/dist/compaction/lcm-runtime.d.ts.map +1 -1
  39. package/dist/compaction/lcm-runtime.js +281 -93
  40. package/dist/compaction/lcm-runtime.js.map +3 -3
  41. package/dist/config.d.ts +1 -0
  42. package/dist/config.d.ts.map +1 -1
  43. package/dist/core/action-registry.js +3 -3
  44. package/dist/core/omp-tools.d.ts +4 -0
  45. package/dist/core/omp-tools.d.ts.map +1 -1
  46. package/dist/core/system-guidance.d.ts.map +1 -1
  47. package/dist/core/tool-ownership.d.ts.map +1 -1
  48. package/dist/entropy/index.js +6 -6
  49. package/dist/fabric-exec-tool.d.ts.map +1 -1
  50. package/dist/fabric-runtime-state.js +15 -15
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +39 -18
  53. package/dist/index.js.map +3 -3
  54. package/dist/memory/discovery.js +5 -5
  55. package/dist/memory/lcm-adapter.d.ts +7 -2
  56. package/dist/memory/lcm-adapter.d.ts.map +1 -1
  57. package/dist/memory/normalize.js +4 -4
  58. package/dist/memory/search.js +5 -5
  59. package/dist/providers/memory-provider.d.ts +2 -1
  60. package/dist/providers/memory-provider.d.ts.map +1 -1
  61. package/dist/providers/memory-provider.js +8 -8
  62. package/dist/residency/host.js +10 -10
  63. package/dist/residency/omp-entry.js +10 -10
  64. package/dist/runtime/core-override-guest-types.js +1 -1
  65. package/dist/runtime/node-process-runtime.js +1 -1
  66. package/dist/storage/lcm-identity.d.ts +4 -0
  67. package/dist/storage/lcm-identity.d.ts.map +1 -1
  68. package/dist/storage/lcm-ledger.d.ts +11 -2
  69. package/dist/storage/lcm-ledger.d.ts.map +1 -1
  70. package/dist/storage/lcm-migration.d.ts.map +1 -1
  71. package/dist/ui/settings.d.ts.map +1 -1
  72. package/dist/ui/settings.js +22 -2
  73. package/dist/ui/settings.js.map +2 -2
  74. package/docs/compaction.md +16 -4
  75. package/docs/configuration.md +1 -1
  76. package/package.json +1 -1
  77. package/dist/chunks/chunk-4J65SMNI.js.map +0 -7
  78. package/dist/chunks/chunk-GUJNTA7Z.js.map +0 -7
  79. package/dist/chunks/chunk-LNP6JVCZ.js.map +0 -7
  80. package/dist/chunks/chunk-NX2G7BRO.js +0 -87
  81. package/dist/chunks/chunk-NX2G7BRO.js.map +0 -7
  82. package/dist/chunks/chunk-WCV26AOT.js.map +0 -7
  83. package/dist/chunks/chunk-ZFMSJLQE.js.map +0 -7
  84. /package/dist/chunks/{chunk-SDZXNTBF.js.map → chunk-2DY7NDAZ.js.map} +0 -0
  85. /package/dist/chunks/{chunk-DTG3DYVC.js.map → chunk-2HOIGAHB.js.map} +0 -0
  86. /package/dist/chunks/{chunk-3GMSYFLT.js.map → chunk-5EZWO4C5.js.map} +0 -0
  87. /package/dist/chunks/{chunk-BPMSLBX4.js.map → chunk-5LNZXB4X.js.map} +0 -0
  88. /package/dist/chunks/{chunk-RA2IB2QT.js.map → chunk-5P4VR2IZ.js.map} +0 -0
  89. /package/dist/chunks/{chunk-R4EFMCIY.js.map → chunk-6DJFJLM6.js.map} +0 -0
  90. /package/dist/chunks/{chunk-YBNCEX5E.js.map → chunk-IH3JJDYL.js.map} +0 -0
  91. /package/dist/chunks/{chunk-52JBWP2C.js.map → chunk-K5YUDXMV.js.map} +0 -0
  92. /package/dist/chunks/{chunk-MQSRZC2O.js.map → chunk-MJOGV6CR.js.map} +0 -0
  93. /package/dist/chunks/{chunk-P4GPBAQS.js.map → chunk-RT6AUW5S.js.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.24.0
4
+
5
+ ### Fixed
6
+
7
+ - A compaction that cut inside a turn could drop the request the agent was working on. The summary now opens with that request verbatim, addressed as `[Active Request] lcm.raw:<session>:<entry>:<revision>`, taken from the session branch and never from model output. The block appears only for a split turn: the host's `isSplitTurn` decides when it is passed, and otherwise a cut whose first kept entry is not a user message counts as split. Traced on the session that lost its task after 851,722 tokens.
8
+ - Partial coverage no longer throws away finished summaries. Ready nodes render for the range they cover and the entries no summary covers yet render as a deterministic `[Recent Detail]` digest, one line per entry with tool calls and result status. Replaying the traced compaction against a copy of its ledger now keeps 10 model summary blocks where it kept none.
9
+ - The emergency leaf covers only the uncovered tail, split into chunks bounded by `lcmMaxLeafEntries` and `lcmMaxInputChars`. A whole-range leaf used to outrank every model summary on the next frontier walk and hide all of them.
10
+ - An oversized deterministic leaf, and any ancestor that inherited one, is excluded from the frontier, from condensation, and from the covered set, so the range it claims is summarized again in bounded pieces.
11
+ - When frontier blocks do not all fit, the render shares the budget instead of dropping whole nodes: each node keeps its text up to an equal share and the leftover is redistributed, so a 65 KB frontier reaches the model as ten addressed blocks.
12
+ - Address lists keep the newest addresses and mark the dropped ones as `+N older`, and a deterministic excerpt caps them at a tenth of its output bound. The traced summary spent 40% of its bytes on the oldest addresses; the replay now spends 2.9%.
13
+ - The tail digest is sized after the request head, so a tight `lcmMaxOutputChars` no longer clips away the newest lines it just promised to keep.
14
+ - One stored entry keeps one identity across the rewrites the host performs after the fact: inline image data hashes to `blob:sha256:<digest>`, opaque reasoning signatures, `retryRecovery` and a zero `errorId` are dropped, and a pruned tool result stays on the revision it replaced. Session migration counts a reused revision as a duplicate instead of an import.
15
+ - Maintenance opens up to `lcmMaintenanceConcurrency` leaves per pass, runs after every turn inside a long agent run, and coalesces schedules that arrive while a run is in flight. An emergency node whose evidence cannot fit one prompt is left alone instead of being replaced by a summary of a truncated slice.
16
+ - Full code mode hides the host's `glob` and `search` aliases along with the core tools they route to, and restores them on release. `glob` stayed directly callable after the host renamed `find`, so file search sat on the direct path while every other file tool was routed.
17
+ - Captured tools keep every field the host forwards (`loadMode`, `deferrable`, `readsSkillUris`, `approval`, `strict`, MCP names); the wrapper copied a fixed eight-field subset. `fabric_exec` declares `readsSkillUris`, which the host reads to decide whether a tool can reach `skill://` content.
18
+
19
+ ### Added
20
+
21
+ - `compaction.lcmMaintenanceRunSeconds` (60 by default, 10 to 600) bounds a maintenance run, with a settings row beside the other maintenance keys.
22
+ - LCM recall filters by `role`, `since` and `until`, orders a query by relevance, and skips the bookkeeping rows a call writes about itself. `memory.expand` on a bare session id or a file path reaches the session engine, so `before`/`after` context and absolute indices work again, and an `lcm.raw:` address widens through the session file.
23
+ - The full code mode system prompt names each routed core tool in both call shapes, states that a rejected direct call is the wrong call shape rather than a missing capability, and tells delegated agents to use the `omp.*` form.
24
+
3
25
  ## 1.23.0
4
26
 
5
27
  ### Added
@@ -1 +1 @@
1
- {"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../src/capture/wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAkB,MAAM,2BAA2B,CAAC;AAQjG,KAAK,cAAc,GAAG,CACpB,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,EAC/B,GAAG,CAAC,EAAE,OAAO,KACV,OAAO,CAAC,GAAG,CAAC,CAAC;AAElB,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gBAAgB,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IAC3E,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,cAAc,CAAC;CACzB;AAgCD,eAAO,MAAM,4BAA4B,GACvC,gBAAgB,cAAc,EAC9B,QAAQ,eAAe,KACtB,qBA4BF,CAAC"}
1
+ {"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../src/capture/wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAkB,MAAM,2BAA2B,CAAC;AAEjG,KAAK,cAAc,GAAG,CACpB,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,EAC/B,GAAG,CAAC,EAAE,OAAO,KACV,OAAO,CAAC,GAAG,CAAC,CAAC;AAElB,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gBAAgB,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IAC3E,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,cAAc,CAAC;CACzB;AAiCD,eAAO,MAAM,4BAA4B,GACvC,gBAAgB,cAAc,EAC9B,QAAQ,eAAe,KACtB,qBA4BF,CAAC"}
@@ -9,7 +9,7 @@ import {
9
9
  import {
10
10
  DEFAULT_MEMORY_INDEX_PRIVACY,
11
11
  normalizeSession
12
- } from "./chunk-BPMSLBX4.js";
12
+ } from "./chunk-5LNZXB4X.js";
13
13
 
14
14
  // src/memory/index.ts
15
15
  import crypto2 from "node:crypto";
@@ -1226,4 +1226,4 @@ export {
1226
1226
  searchMemoryIndex,
1227
1227
  searchShards
1228
1228
  };
1229
- //# sourceMappingURL=chunk-SDZXNTBF.js.map
1229
+ //# sourceMappingURL=chunk-2DY7NDAZ.js.map
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  sessionDirsForCwd,
15
15
  sessionsDirRoot
16
- } from "./chunk-MQSRZC2O.js";
16
+ } from "./chunk-MJOGV6CR.js";
17
17
  import {
18
18
  stableJsonHash,
19
19
  stableJsonHashArrayAsync
@@ -25,7 +25,7 @@ import {
25
25
  import {
26
26
  FABRIC_EXECUTION_TRACE_KIND,
27
27
  readFabricExecutionTraceV1
28
- } from "./chunk-52JBWP2C.js";
28
+ } from "./chunk-K5YUDXMV.js";
29
29
 
30
30
  // src/entropy/types.ts
31
31
  var ENTROPY_METRIC_VERSION = 2;
@@ -2208,4 +2208,4 @@ export {
2208
2208
  formatEntropyCompileNotice,
2209
2209
  runEntropyTrial
2210
2210
  };
2211
- //# sourceMappingURL=chunk-DTG3DYVC.js.map
2211
+ //# sourceMappingURL=chunk-2HOIGAHB.js.map
@@ -10,11 +10,11 @@ import {
10
10
  lifecycleSourceIdentity,
11
11
  loadModelUsage,
12
12
  useBudgetLedger
13
- } from "./chunk-P4GPBAQS.js";
13
+ } from "./chunk-RT6AUW5S.js";
14
14
  import {
15
15
  normalizeModelAliases,
16
16
  resolveAvailableOmpModel
17
- } from "./chunk-GUJNTA7Z.js";
17
+ } from "./chunk-H63XBYD3.js";
18
18
  import {
19
19
  parseFabricOwnedModelGuidance,
20
20
  resolveFabricModelGuidance
@@ -685,4 +685,4 @@ if (isMain) {
685
685
  export {
686
686
  runResidentHostFromConfigPath
687
687
  };
688
- //# sourceMappingURL=chunk-3GMSYFLT.js.map
688
+ //# sourceMappingURL=chunk-5EZWO4C5.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  readFabricBranchSummaryDetails,
3
3
  readFabricProjectionTrace
4
- } from "./chunk-YBNCEX5E.js";
4
+ } from "./chunk-IH3JJDYL.js";
5
5
 
6
6
  // src/memory/normalize.ts
7
7
  import fs from "node:fs";
@@ -644,4 +644,4 @@ export {
644
644
  expandSessionEntries,
645
645
  expandSessionEntriesChecked
646
646
  };
647
- //# sourceMappingURL=chunk-BPMSLBX4.js.map
647
+ //# sourceMappingURL=chunk-5LNZXB4X.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  emergencyReduce
3
- } from "./chunk-WCV26AOT.js";
3
+ } from "./chunk-CBQOS3IW.js";
4
4
  import {
5
5
  canonicalLcmPayload
6
- } from "./chunk-NX2G7BRO.js";
6
+ } from "./chunk-QW5LEEFV.js";
7
7
  import {
8
8
  rawContextTokens
9
- } from "./chunk-ZQ72MAHY.js";
9
+ } from "./chunk-7OEFSXWZ.js";
10
10
  import {
11
11
  compactionRequestBoundsError,
12
12
  encodeCompactionRequest
@@ -463,4 +463,4 @@ export {
463
463
  buildPeerCards,
464
464
  awaitPeerSettle
465
465
  };
466
- //# sourceMappingURL=chunk-RA2IB2QT.js.map
466
+ //# sourceMappingURL=chunk-5P4VR2IZ.js.map
@@ -20,7 +20,7 @@ import {
20
20
  FabricResolutionError,
21
21
  FabricTraceSafeError,
22
22
  executionOutcomeFromError
23
- } from "./chunk-52JBWP2C.js";
23
+ } from "./chunk-K5YUDXMV.js";
24
24
 
25
25
  // src/core/action-registry.ts
26
26
  import { randomUUID as randomUUID2 } from "node:crypto";
@@ -1613,4 +1613,4 @@ export {
1613
1613
  NESTED_TOOL_CALL_ID_PREFIX,
1614
1614
  ActionRegistry
1615
1615
  };
1616
- //# sourceMappingURL=chunk-R4EFMCIY.js.map
1616
+ //# sourceMappingURL=chunk-6DJFJLM6.js.map
@@ -22,7 +22,7 @@ import {
22
22
  FABRIC_BRANCH_SUMMARY_VERSION,
23
23
  readFabricBranchSummaryDetails,
24
24
  readFabricProjectionTrace
25
- } from "./chunk-YBNCEX5E.js";
25
+ } from "./chunk-IH3JJDYL.js";
26
26
 
27
27
  // src/compaction/hook.ts
28
28
  import "@oh-my-pi/pi-coding-agent";
@@ -1699,6 +1699,7 @@ var registerCompactionHook = (omp, options) => {
1699
1699
  sessionId,
1700
1700
  firstKeptEntryId: event.preparation.firstKeptEntryId,
1701
1701
  tokensBefore: event.preparation.tokensBefore,
1702
+ ...typeof event.preparation.isSplitTurn === "boolean" ? { isSplitTurn: event.preparation.isSplitTurn } : {},
1702
1703
  ...event.customInstructions === void 0 ? {} : { customInstructions: event.customInstructions }
1703
1704
  });
1704
1705
  } catch (error) {
@@ -1747,4 +1748,4 @@ export {
1747
1748
  compileFabricSummary,
1748
1749
  registerCompactionHook
1749
1750
  };
1750
- //# sourceMappingURL=chunk-ZQ72MAHY.js.map
1751
+ //# sourceMappingURL=chunk-7OEFSXWZ.js.map