omp-fabric 0.85.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.
- package/LICENSE +21 -0
- package/README.md +170 -0
- package/THIRD_PARTY_NOTICES.md +33 -0
- package/dist/activity/store.d.ts +32 -0
- package/dist/activity/store.d.ts.map +1 -0
- package/dist/activity/types.d.ts +104 -0
- package/dist/activity/types.d.ts.map +1 -0
- package/dist/actors/binding-store.d.ts +17 -0
- package/dist/actors/binding-store.d.ts.map +1 -0
- package/dist/actors/context.d.ts +13 -0
- package/dist/actors/context.d.ts.map +1 -0
- package/dist/actors/delivery-policy.d.ts +8 -0
- package/dist/actors/delivery-policy.d.ts.map +1 -0
- package/dist/actors/directory.d.ts +47 -0
- package/dist/actors/directory.d.ts.map +1 -0
- package/dist/actors/global-registry.d.ts +47 -0
- package/dist/actors/global-registry.d.ts.map +1 -0
- package/dist/actors/host-event-observer.d.ts +5 -0
- package/dist/actors/host-event-observer.d.ts.map +1 -0
- package/dist/actors/host-event-payload.d.ts +14 -0
- package/dist/actors/host-event-payload.d.ts.map +1 -0
- package/dist/actors/manager.d.ts +175 -0
- package/dist/actors/manager.d.ts.map +1 -0
- package/dist/actors/predicate.d.ts +7 -0
- package/dist/actors/predicate.d.ts.map +1 -0
- package/dist/actors/types.d.ts +211 -0
- package/dist/actors/types.d.ts.map +1 -0
- package/dist/agents/bash-worktree-add.d.ts +24 -0
- package/dist/agents/bash-worktree-add.d.ts.map +1 -0
- package/dist/agents/budget-ledger.d.ts +88 -0
- package/dist/agents/budget-ledger.d.ts.map +1 -0
- package/dist/agents/claude-cli.d.ts +32 -0
- package/dist/agents/claude-cli.d.ts.map +1 -0
- package/dist/agents/claude-cli.js +17 -0
- package/dist/agents/claude-cli.js.map +7 -0
- package/dist/agents/clone-first-worktree.d.ts +17 -0
- package/dist/agents/clone-first-worktree.d.ts.map +1 -0
- package/dist/agents/compact-control.d.ts +32 -0
- package/dist/agents/compact-control.d.ts.map +1 -0
- package/dist/agents/compact-control.js +127 -0
- package/dist/agents/compact-control.js.map +7 -0
- package/dist/agents/constants.d.ts +5 -0
- package/dist/agents/constants.d.ts.map +1 -0
- package/dist/agents/cow-clone.d.ts +8 -0
- package/dist/agents/cow-clone.d.ts.map +1 -0
- package/dist/agents/handoff.d.ts +19 -0
- package/dist/agents/handoff.d.ts.map +1 -0
- package/dist/agents/manager.d.ts +68 -0
- package/dist/agents/manager.d.ts.map +1 -0
- package/dist/agents/omp-binary.d.ts +7 -0
- package/dist/agents/omp-binary.d.ts.map +1 -0
- package/dist/agents/rm.d.ts +15 -0
- package/dist/agents/rm.d.ts.map +1 -0
- package/dist/agents/semaphore.d.ts +7 -0
- package/dist/agents/semaphore.d.ts.map +1 -0
- package/dist/agents/session-export.d.ts +9 -0
- package/dist/agents/session-export.d.ts.map +1 -0
- package/dist/agents/thinking-transfer.d.ts +39 -0
- package/dist/agents/thinking-transfer.d.ts.map +1 -0
- package/dist/agents/transports/herdr-transport.d.ts +10 -0
- package/dist/agents/transports/herdr-transport.d.ts.map +1 -0
- package/dist/agents/transports/localterm-transport.d.ts +7 -0
- package/dist/agents/transports/localterm-transport.d.ts.map +1 -0
- package/dist/agents/transports/process-transport.d.ts +7 -0
- package/dist/agents/transports/process-transport.d.ts.map +1 -0
- package/dist/agents/transports/process-utils.d.ts +29 -0
- package/dist/agents/transports/process-utils.d.ts.map +1 -0
- package/dist/agents/transports/screen-transport.d.ts +7 -0
- package/dist/agents/transports/screen-transport.d.ts.map +1 -0
- package/dist/agents/transports/tmux-transport.d.ts +7 -0
- package/dist/agents/transports/tmux-transport.d.ts.map +1 -0
- package/dist/agents/types.d.ts +251 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/veda-cli.d.ts +22 -0
- package/dist/agents/veda-cli.d.ts.map +1 -0
- package/dist/agents/veda-cli.js +13 -0
- package/dist/agents/veda-cli.js.map +7 -0
- package/dist/agents/worktree-manager.d.ts +14 -0
- package/dist/agents/worktree-manager.d.ts.map +1 -0
- package/dist/agents/worktree-paths.d.ts +5 -0
- package/dist/agents/worktree-paths.d.ts.map +1 -0
- package/dist/async-settlement.d.ts +4 -0
- package/dist/async-settlement.d.ts.map +1 -0
- package/dist/audit/details.d.ts +82 -0
- package/dist/audit/details.d.ts.map +1 -0
- package/dist/audit/index.d.ts +4 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/projection.d.ts +20 -0
- package/dist/audit/projection.d.ts.map +1 -0
- package/dist/audit/trace.d.ts +95 -0
- package/dist/audit/trace.d.ts.map +1 -0
- package/dist/capture/catalog.d.ts +29 -0
- package/dist/capture/catalog.d.ts.map +1 -0
- package/dist/capture/interceptor.d.ts +21 -0
- package/dist/capture/interceptor.d.ts.map +1 -0
- package/dist/capture/wrapper.d.ts +15 -0
- package/dist/capture/wrapper.d.ts.map +1 -0
- package/dist/chunks/chunk-2GQC324T.js +5001 -0
- package/dist/chunks/chunk-2GQC324T.js.map +7 -0
- package/dist/chunks/chunk-2KEWFW56.js +1229 -0
- package/dist/chunks/chunk-2KEWFW56.js.map +7 -0
- package/dist/chunks/chunk-3J7BKUNG.js +354 -0
- package/dist/chunks/chunk-3J7BKUNG.js.map +7 -0
- package/dist/chunks/chunk-4A4MVZQW.js +253 -0
- package/dist/chunks/chunk-4A4MVZQW.js.map +7 -0
- package/dist/chunks/chunk-4HQDSTHN.js +221 -0
- package/dist/chunks/chunk-4HQDSTHN.js.map +7 -0
- package/dist/chunks/chunk-4LEDA76O.js +688 -0
- package/dist/chunks/chunk-4LEDA76O.js.map +7 -0
- package/dist/chunks/chunk-5GTPD4BA.js +1318 -0
- package/dist/chunks/chunk-5GTPD4BA.js.map +7 -0
- package/dist/chunks/chunk-5IWFSDU5.js +87 -0
- package/dist/chunks/chunk-5IWFSDU5.js.map +7 -0
- package/dist/chunks/chunk-6N4XGAZY.js +21 -0
- package/dist/chunks/chunk-6N4XGAZY.js.map +7 -0
- package/dist/chunks/chunk-6QBPSZJ5.js +647 -0
- package/dist/chunks/chunk-6QBPSZJ5.js.map +7 -0
- package/dist/chunks/chunk-6X6WUU2K.js +73 -0
- package/dist/chunks/chunk-6X6WUU2K.js.map +7 -0
- package/dist/chunks/chunk-7363CD5A.js +38 -0
- package/dist/chunks/chunk-7363CD5A.js.map +7 -0
- package/dist/chunks/chunk-77FQHHZD.js +231 -0
- package/dist/chunks/chunk-77FQHHZD.js.map +7 -0
- package/dist/chunks/chunk-7BIA5BJN.js +112 -0
- package/dist/chunks/chunk-7BIA5BJN.js.map +7 -0
- package/dist/chunks/chunk-7BOAOKWH.js +64 -0
- package/dist/chunks/chunk-7BOAOKWH.js.map +7 -0
- package/dist/chunks/chunk-7TB7NXSL.js +58 -0
- package/dist/chunks/chunk-7TB7NXSL.js.map +7 -0
- package/dist/chunks/chunk-7VIQNUPS.js +17 -0
- package/dist/chunks/chunk-7VIQNUPS.js.map +7 -0
- package/dist/chunks/chunk-CT2AJ2UI.js +225 -0
- package/dist/chunks/chunk-CT2AJ2UI.js.map +7 -0
- package/dist/chunks/chunk-DLXPTBPL.js +151 -0
- package/dist/chunks/chunk-DLXPTBPL.js.map +7 -0
- package/dist/chunks/chunk-ED3BRM6P.js +17 -0
- package/dist/chunks/chunk-ED3BRM6P.js.map +7 -0
- package/dist/chunks/chunk-G2IBGGBM.js +42 -0
- package/dist/chunks/chunk-G2IBGGBM.js.map +7 -0
- package/dist/chunks/chunk-GKOFZ76R.js +1596 -0
- package/dist/chunks/chunk-GKOFZ76R.js.map +7 -0
- package/dist/chunks/chunk-HDJBUXDX.js +1102 -0
- package/dist/chunks/chunk-HDJBUXDX.js.map +7 -0
- package/dist/chunks/chunk-IGVDD2HT.js +10 -0
- package/dist/chunks/chunk-IGVDD2HT.js.map +7 -0
- package/dist/chunks/chunk-JHKOG5GS.js +187 -0
- package/dist/chunks/chunk-JHKOG5GS.js.map +7 -0
- package/dist/chunks/chunk-JP4LIZFT.js +1334 -0
- package/dist/chunks/chunk-JP4LIZFT.js.map +7 -0
- package/dist/chunks/chunk-JSBTB3P6.js +127 -0
- package/dist/chunks/chunk-JSBTB3P6.js.map +7 -0
- package/dist/chunks/chunk-KAD7UWT2.js +99 -0
- package/dist/chunks/chunk-KAD7UWT2.js.map +7 -0
- package/dist/chunks/chunk-KIH3KLZU.js +95 -0
- package/dist/chunks/chunk-KIH3KLZU.js.map +7 -0
- package/dist/chunks/chunk-KIREBD2V.js +2208 -0
- package/dist/chunks/chunk-KIREBD2V.js.map +7 -0
- package/dist/chunks/chunk-LMAVZN7J.js +8 -0
- package/dist/chunks/chunk-LMAVZN7J.js.map +7 -0
- package/dist/chunks/chunk-NCPJZXLM.js +57 -0
- package/dist/chunks/chunk-NCPJZXLM.js.map +7 -0
- package/dist/chunks/chunk-OJZNMROB.js +195 -0
- package/dist/chunks/chunk-OJZNMROB.js.map +7 -0
- package/dist/chunks/chunk-OPTP4PSE.js +469 -0
- package/dist/chunks/chunk-OPTP4PSE.js.map +7 -0
- package/dist/chunks/chunk-QPXSCMTG.js +24 -0
- package/dist/chunks/chunk-QPXSCMTG.js.map +7 -0
- package/dist/chunks/chunk-ROKMBLGN.js +1265 -0
- package/dist/chunks/chunk-ROKMBLGN.js.map +7 -0
- package/dist/chunks/chunk-SXMWV447.js +2445 -0
- package/dist/chunks/chunk-SXMWV447.js.map +7 -0
- package/dist/chunks/chunk-T5ZA5YRU.js +786 -0
- package/dist/chunks/chunk-T5ZA5YRU.js.map +7 -0
- package/dist/chunks/chunk-T6OAX4FO.js +1835 -0
- package/dist/chunks/chunk-T6OAX4FO.js.map +7 -0
- package/dist/chunks/chunk-U5FYOMG5.js +119 -0
- package/dist/chunks/chunk-U5FYOMG5.js.map +7 -0
- package/dist/chunks/chunk-UOSJZXJV.js +142 -0
- package/dist/chunks/chunk-UOSJZXJV.js.map +7 -0
- package/dist/chunks/chunk-UPCARIJP.js +6627 -0
- package/dist/chunks/chunk-UPCARIJP.js.map +7 -0
- package/dist/chunks/chunk-VPPIJRNZ.js +50 -0
- package/dist/chunks/chunk-VPPIJRNZ.js.map +7 -0
- package/dist/chunks/chunk-XU5Z4JCQ.js +297 -0
- package/dist/chunks/chunk-XU5Z4JCQ.js.map +7 -0
- package/dist/chunks/chunk-YWEXP724.js +427 -0
- package/dist/chunks/chunk-YWEXP724.js.map +7 -0
- package/dist/chunks/chunk-YZZIKJX6.js +60 -0
- package/dist/chunks/chunk-YZZIKJX6.js.map +7 -0
- package/dist/chunks/chunk-ZNAJDPT7.js +2203 -0
- package/dist/chunks/chunk-ZNAJDPT7.js.map +7 -0
- package/dist/chunks/chunk-ZTM45GH5.js +163 -0
- package/dist/chunks/chunk-ZTM45GH5.js.map +7 -0
- package/dist/commands/fabric.d.ts +17 -0
- package/dist/commands/fabric.d.ts.map +1 -0
- package/dist/compaction/bounds.d.ts +23 -0
- package/dist/compaction/bounds.d.ts.map +1 -0
- package/dist/compaction/branch-details.d.ts +83 -0
- package/dist/compaction/branch-details.d.ts.map +1 -0
- package/dist/compaction/branch-summary.d.ts +9 -0
- package/dist/compaction/branch-summary.d.ts.map +1 -0
- package/dist/compaction/enrichers.d.ts +10 -0
- package/dist/compaction/enrichers.d.ts.map +1 -0
- package/dist/compaction/hook.d.ts +98 -0
- package/dist/compaction/hook.d.ts.map +1 -0
- package/dist/compaction/hook.js +19 -0
- package/dist/compaction/hook.js.map +7 -0
- package/dist/compaction/instructions.d.ts +38 -0
- package/dist/compaction/instructions.d.ts.map +1 -0
- package/dist/compaction/normalize.d.ts +83 -0
- package/dist/compaction/normalize.d.ts.map +1 -0
- package/dist/compaction/projections.d.ts +31 -0
- package/dist/compaction/projections.d.ts.map +1 -0
- package/dist/compaction/qa.d.ts +27 -0
- package/dist/compaction/qa.d.ts.map +1 -0
- package/dist/compaction/render.d.ts +10 -0
- package/dist/compaction/render.d.ts.map +1 -0
- package/dist/compaction/threshold.d.ts +5 -0
- package/dist/compaction/threshold.d.ts.map +1 -0
- package/dist/compaction/trace-events.d.ts +23 -0
- package/dist/compaction/trace-events.d.ts.map +1 -0
- package/dist/components/catalog.d.ts +25 -0
- package/dist/components/catalog.d.ts.map +1 -0
- package/dist/components/effect-scope.d.ts +31 -0
- package/dist/components/effect-scope.d.ts.map +1 -0
- package/dist/components/loader.d.ts +27 -0
- package/dist/components/loader.d.ts.map +1 -0
- package/dist/components/model-guidance.d.ts +48 -0
- package/dist/components/model-guidance.d.ts.map +1 -0
- package/dist/components/provider-component.d.ts +31 -0
- package/dist/components/provider-component.d.ts.map +1 -0
- package/dist/components/supervisor.d.ts +29 -0
- package/dist/components/supervisor.d.ts.map +1 -0
- package/dist/components/types.d.ts +140 -0
- package/dist/components/types.d.ts.map +1 -0
- package/dist/config-migrations.d.ts +11 -0
- package/dist/config-migrations.d.ts.map +1 -0
- package/dist/config.d.ts +269 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/core/action-registry.d.ts +159 -0
- package/dist/core/action-registry.d.ts.map +1 -0
- package/dist/core/action-registry.js +17 -0
- package/dist/core/action-registry.js.map +7 -0
- package/dist/core/action-repair.d.ts +20 -0
- package/dist/core/action-repair.d.ts.map +1 -0
- package/dist/core/agent-dir.d.ts +2 -0
- package/dist/core/agent-dir.d.ts.map +1 -0
- package/dist/core/approval-controller.d.ts +30 -0
- package/dist/core/approval-controller.d.ts.map +1 -0
- package/dist/core/atomic-write.d.ts +15 -0
- package/dist/core/atomic-write.d.ts.map +1 -0
- package/dist/core/auto-approval-classifier.d.ts +13 -0
- package/dist/core/auto-approval-classifier.d.ts.map +1 -0
- package/dist/core/call-preview.d.ts +8 -0
- package/dist/core/call-preview.d.ts.map +1 -0
- package/dist/core/child-tool-allowlist.d.ts +3 -0
- package/dist/core/child-tool-allowlist.d.ts.map +1 -0
- package/dist/core/compact-controller.d.ts +42 -0
- package/dist/core/compact-controller.d.ts.map +1 -0
- package/dist/core/core-override-guidance.d.ts +7 -0
- package/dist/core/core-override-guidance.d.ts.map +1 -0
- package/dist/core/direct-tool-approval.d.ts +19 -0
- package/dist/core/direct-tool-approval.d.ts.map +1 -0
- package/dist/core/effect-conflict.d.ts +3 -0
- package/dist/core/effect-conflict.d.ts.map +1 -0
- package/dist/core/file-lock.d.ts +12 -0
- package/dist/core/file-lock.d.ts.map +1 -0
- package/dist/core/model-resolution.d.ts +62 -0
- package/dist/core/model-resolution.d.ts.map +1 -0
- package/dist/core/model-usage.d.ts +8 -0
- package/dist/core/model-usage.d.ts.map +1 -0
- package/dist/core/omp-bash-error.d.ts +11 -0
- package/dist/core/omp-bash-error.d.ts.map +1 -0
- package/dist/core/omp-tools.d.ts +9 -0
- package/dist/core/omp-tools.d.ts.map +1 -0
- package/dist/core/provider-bindings.d.ts +47 -0
- package/dist/core/provider-bindings.d.ts.map +1 -0
- package/dist/core/proxy-contract.d.ts +18 -0
- package/dist/core/proxy-contract.d.ts.map +1 -0
- package/dist/core/session-context.d.ts +6 -0
- package/dist/core/session-context.d.ts.map +1 -0
- package/dist/core/skill-block.d.ts +10 -0
- package/dist/core/skill-block.d.ts.map +1 -0
- package/dist/core/skill-dir.d.ts +4 -0
- package/dist/core/skill-dir.d.ts.map +1 -0
- package/dist/core/skill-prompt.d.ts +3 -0
- package/dist/core/skill-prompt.d.ts.map +1 -0
- package/dist/core/skill-references.d.ts +7 -0
- package/dist/core/skill-references.d.ts.map +1 -0
- package/dist/core/stable-hash.d.ts +3 -0
- package/dist/core/stable-hash.d.ts.map +1 -0
- package/dist/core/system-guidance.d.ts +12 -0
- package/dist/core/system-guidance.d.ts.map +1 -0
- package/dist/core/token-math.d.ts +16 -0
- package/dist/core/token-math.d.ts.map +1 -0
- package/dist/core/tool-ownership.d.ts +52 -0
- package/dist/core/tool-ownership.d.ts.map +1 -0
- package/dist/core/tool-result-proxy.d.ts +18 -0
- package/dist/core/tool-result-proxy.d.ts.map +1 -0
- package/dist/entropy/active.d.ts +7 -0
- package/dist/entropy/active.d.ts.map +1 -0
- package/dist/entropy/compiled-store.d.ts +16 -0
- package/dist/entropy/compiled-store.d.ts.map +1 -0
- package/dist/entropy/compiled-surface.d.ts +51 -0
- package/dist/entropy/compiled-surface.d.ts.map +1 -0
- package/dist/entropy/compiler.d.ts +28 -0
- package/dist/entropy/compiler.d.ts.map +1 -0
- package/dist/entropy/corpus.d.ts +22 -0
- package/dist/entropy/corpus.d.ts.map +1 -0
- package/dist/entropy/fingerprint.d.ts +9 -0
- package/dist/entropy/fingerprint.d.ts.map +1 -0
- package/dist/entropy/index.d.ts +15 -0
- package/dist/entropy/index.d.ts.map +1 -0
- package/dist/entropy/index.js +172 -0
- package/dist/entropy/index.js.map +7 -0
- package/dist/entropy/meter.d.ts +10 -0
- package/dist/entropy/meter.d.ts.map +1 -0
- package/dist/entropy/passes.d.ts +13 -0
- package/dist/entropy/passes.d.ts.map +1 -0
- package/dist/entropy/pool-store.d.ts +15 -0
- package/dist/entropy/pool-store.d.ts.map +1 -0
- package/dist/entropy/pool.d.ts +41 -0
- package/dist/entropy/pool.d.ts.map +1 -0
- package/dist/entropy/presentation.d.ts +13 -0
- package/dist/entropy/presentation.d.ts.map +1 -0
- package/dist/entropy/sessions.d.ts +47 -0
- package/dist/entropy/sessions.d.ts.map +1 -0
- package/dist/entropy/surface.d.ts +30 -0
- package/dist/entropy/surface.d.ts.map +1 -0
- package/dist/entropy/trial.d.ts +35 -0
- package/dist/entropy/trial.d.ts.map +1 -0
- package/dist/entropy/types.d.ts +158 -0
- package/dist/entropy/types.d.ts.map +1 -0
- package/dist/execution-service.d.ts +63 -0
- package/dist/execution-service.d.ts.map +1 -0
- package/dist/fabric-exec-arguments.d.ts +5 -0
- package/dist/fabric-exec-arguments.d.ts.map +1 -0
- package/dist/fabric-exec-tool.d.ts +8 -0
- package/dist/fabric-exec-tool.d.ts.map +1 -0
- package/dist/fabric-runtime-state.d.ts +90 -0
- package/dist/fabric-runtime-state.d.ts.map +1 -0
- package/dist/fabric-runtime-state.js +13060 -0
- package/dist/fabric-runtime-state.js.map +7 -0
- package/dist/fabric-state.d.ts +89 -0
- package/dist/fabric-state.d.ts.map +1 -0
- package/dist/failure-progress.d.ts +3 -0
- package/dist/failure-progress.d.ts.map +1 -0
- package/dist/host-compatibility.d.ts +5 -0
- package/dist/host-compatibility.d.ts.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5719 -0
- package/dist/index.js.map +7 -0
- package/dist/lifecycle/broker.d.ts +30 -0
- package/dist/lifecycle/broker.d.ts.map +1 -0
- package/dist/lifecycle/delivery-scheduler.d.ts +30 -0
- package/dist/lifecycle/delivery-scheduler.d.ts.map +1 -0
- package/dist/lifecycle/types.d.ts +91 -0
- package/dist/lifecycle/types.d.ts.map +1 -0
- package/dist/log-tail.d.ts +11 -0
- package/dist/log-tail.d.ts.map +1 -0
- package/dist/main-agent.d.ts +70 -0
- package/dist/main-agent.d.ts.map +1 -0
- package/dist/memory/context.d.ts +112 -0
- package/dist/memory/context.d.ts.map +1 -0
- package/dist/memory/digest.d.ts +48 -0
- package/dist/memory/digest.d.ts.map +1 -0
- package/dist/memory/digest.js +7 -0
- package/dist/memory/digest.js.map +7 -0
- package/dist/memory/discovery.d.ts +43 -0
- package/dist/memory/discovery.d.ts.map +1 -0
- package/dist/memory/discovery.js +23 -0
- package/dist/memory/discovery.js.map +7 -0
- package/dist/memory/index.d.ts +107 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/lineage.d.ts +20 -0
- package/dist/memory/lineage.d.ts.map +1 -0
- package/dist/memory/normalize.d.ts +170 -0
- package/dist/memory/normalize.d.ts.map +1 -0
- package/dist/memory/normalize.js +22 -0
- package/dist/memory/normalize.js.map +7 -0
- package/dist/memory/regex.d.ts +19 -0
- package/dist/memory/regex.d.ts.map +1 -0
- package/dist/memory/search.d.ts +98 -0
- package/dist/memory/search.d.ts.map +1 -0
- package/dist/memory/search.js +22 -0
- package/dist/memory/search.js.map +7 -0
- package/dist/memory/tokenize.d.ts +24 -0
- package/dist/memory/tokenize.d.ts.map +1 -0
- package/dist/mesh/store.d.ts +78 -0
- package/dist/mesh/store.d.ts.map +1 -0
- package/dist/output-budget.d.ts +12 -0
- package/dist/output-budget.d.ts.map +1 -0
- package/dist/prewalk/arm.d.ts +8 -0
- package/dist/prewalk/arm.d.ts.map +1 -0
- package/dist/prewalk/controller.d.ts +60 -0
- package/dist/prewalk/controller.d.ts.map +1 -0
- package/dist/prewalk/fs-drift.d.ts +19 -0
- package/dist/prewalk/fs-drift.d.ts.map +1 -0
- package/dist/prewalk/handoff.d.ts +45 -0
- package/dist/prewalk/handoff.d.ts.map +1 -0
- package/dist/protocol.d.ts +273 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +46 -0
- package/dist/protocol.js.map +7 -0
- package/dist/providers/agents-actions.d.ts +3 -0
- package/dist/providers/agents-actions.d.ts.map +1 -0
- package/dist/providers/agents-provider.d.ts +59 -0
- package/dist/providers/agents-provider.d.ts.map +1 -0
- package/dist/providers/arg-normalization.d.ts +15 -0
- package/dist/providers/arg-normalization.d.ts.map +1 -0
- package/dist/providers/captured-tools-provider.d.ts +23 -0
- package/dist/providers/captured-tools-provider.d.ts.map +1 -0
- package/dist/providers/compact-provider.d.ts +14 -0
- package/dist/providers/compact-provider.d.ts.map +1 -0
- package/dist/providers/components-provider.d.ts +12 -0
- package/dist/providers/components-provider.d.ts.map +1 -0
- package/dist/providers/mcp-descriptor-cache.d.ts +47 -0
- package/dist/providers/mcp-descriptor-cache.d.ts.map +1 -0
- package/dist/providers/mcp-provider.d.ts +27 -0
- package/dist/providers/mcp-provider.d.ts.map +1 -0
- package/dist/providers/memory-provider.d.ts +35 -0
- package/dist/providers/memory-provider.d.ts.map +1 -0
- package/dist/providers/memory-provider.js +16 -0
- package/dist/providers/memory-provider.js.map +7 -0
- package/dist/providers/mesh-provider.d.ts +17 -0
- package/dist/providers/mesh-provider.d.ts.map +1 -0
- package/dist/providers/omp-bash-cwd.d.ts +31 -0
- package/dist/providers/omp-bash-cwd.d.ts.map +1 -0
- package/dist/providers/omp-tools-provider.d.ts +15 -0
- package/dist/providers/omp-tools-provider.d.ts.map +1 -0
- package/dist/providers/schema-provider.d.ts +15 -0
- package/dist/providers/schema-provider.d.ts.map +1 -0
- package/dist/providers/state-provider.d.ts +16 -0
- package/dist/providers/state-provider.d.ts.map +1 -0
- package/dist/providers/write-diff-limits.d.ts +5 -0
- package/dist/providers/write-diff-limits.d.ts.map +1 -0
- package/dist/providers/write-preview.d.ts +3 -0
- package/dist/providers/write-preview.d.ts.map +1 -0
- package/dist/ref-names.d.ts +2 -0
- package/dist/ref-names.d.ts.map +1 -0
- package/dist/repairs/active.d.ts +7 -0
- package/dist/repairs/active.d.ts.map +1 -0
- package/dist/repairs/apply.d.ts +7 -0
- package/dist/repairs/apply.d.ts.map +1 -0
- package/dist/repairs/catalog-digest.d.ts +5 -0
- package/dist/repairs/catalog-digest.d.ts.map +1 -0
- package/dist/repairs/classify.d.ts +10 -0
- package/dist/repairs/classify.d.ts.map +1 -0
- package/dist/repairs/compiler.d.ts +33 -0
- package/dist/repairs/compiler.d.ts.map +1 -0
- package/dist/repairs/promote.d.ts +4 -0
- package/dist/repairs/promote.d.ts.map +1 -0
- package/dist/repairs/store.d.ts +10 -0
- package/dist/repairs/store.d.ts.map +1 -0
- package/dist/repairs/types.d.ts +49 -0
- package/dist/repairs/types.d.ts.map +1 -0
- package/dist/residency/actor-client.d.ts +16 -0
- package/dist/residency/actor-client.d.ts.map +1 -0
- package/dist/residency/actor-client.js +9 -0
- package/dist/residency/actor-client.js.map +7 -0
- package/dist/residency/client.d.ts +44 -0
- package/dist/residency/client.d.ts.map +1 -0
- package/dist/residency/host.d.ts +3 -0
- package/dist/residency/host.d.ts.map +1 -0
- package/dist/residency/host.js +25 -0
- package/dist/residency/host.js.map +7 -0
- package/dist/residency/launcher-owner.d.ts +7 -0
- package/dist/residency/launcher-owner.d.ts.map +1 -0
- package/dist/residency/launcher.d.ts +3 -0
- package/dist/residency/launcher.d.ts.map +1 -0
- package/dist/residency/launcher.js +152 -0
- package/dist/residency/launcher.js.map +7 -0
- package/dist/residency/omp-entry.d.ts +3 -0
- package/dist/residency/omp-entry.d.ts.map +1 -0
- package/dist/residency/omp-entry.js +41 -0
- package/dist/residency/omp-entry.js.map +7 -0
- package/dist/residency/protocol.d.ts +119 -0
- package/dist/residency/protocol.d.ts.map +1 -0
- package/dist/run-display.d.ts +3 -0
- package/dist/run-display.d.ts.map +1 -0
- package/dist/runtime/core-override-guest-types.d.ts +15 -0
- package/dist/runtime/core-override-guest-types.d.ts.map +1 -0
- package/dist/runtime/core-override-guest-types.js +291 -0
- package/dist/runtime/core-override-guest-types.js.map +7 -0
- package/dist/runtime/core-tool-properties.d.ts +6 -0
- package/dist/runtime/core-tool-properties.d.ts.map +1 -0
- package/dist/runtime/dynamic-guest-types.d.ts +3 -0
- package/dist/runtime/dynamic-guest-types.d.ts.map +1 -0
- package/dist/runtime/dynamic-guest-types.js +226 -0
- package/dist/runtime/dynamic-guest-types.js.map +7 -0
- package/dist/runtime/guest-code-repair.d.ts +2 -0
- package/dist/runtime/guest-code-repair.d.ts.map +1 -0
- package/dist/runtime/guest-stack-map.d.ts +11 -0
- package/dist/runtime/guest-stack-map.d.ts.map +1 -0
- package/dist/runtime/guest-types.d.ts +35 -0
- package/dist/runtime/guest-types.d.ts.map +1 -0
- package/dist/runtime/guest-types.js +13 -0
- package/dist/runtime/guest-types.js.map +7 -0
- package/dist/runtime/node-process-child-source.d.ts +2 -0
- package/dist/runtime/node-process-child-source.d.ts.map +1 -0
- package/dist/runtime/node-process-runtime.d.ts +10 -0
- package/dist/runtime/node-process-runtime.d.ts.map +1 -0
- package/dist/runtime/node-process-runtime.js +319 -0
- package/dist/runtime/node-process-runtime.js.map +7 -0
- package/dist/runtime/orchestration.d.ts +3 -0
- package/dist/runtime/orchestration.d.ts.map +1 -0
- package/dist/runtime/quickjs-runtime.d.ts +24 -0
- package/dist/runtime/quickjs-runtime.d.ts.map +1 -0
- package/dist/runtime/quickjs-runtime.js +12 -0
- package/dist/runtime/quickjs-runtime.js.map +7 -0
- package/dist/runtime/type-checker.d.ts +21 -0
- package/dist/runtime/type-checker.d.ts.map +1 -0
- package/dist/runtime/type-checker.js +15 -0
- package/dist/runtime/type-checker.js.map +7 -0
- package/dist/runtime-paths.d.ts +7 -0
- package/dist/runtime-paths.d.ts.map +1 -0
- package/dist/schema/controller.d.ts +35 -0
- package/dist/schema/controller.d.ts.map +1 -0
- package/dist/schema/types.d.ts +86 -0
- package/dist/schema/types.d.ts.map +1 -0
- package/dist/schema/workspace.d.ts +19 -0
- package/dist/schema/workspace.d.ts.map +1 -0
- package/dist/speculation/eligibility.d.ts +22 -0
- package/dist/speculation/eligibility.d.ts.map +1 -0
- package/dist/speculation/freshness.d.ts +10 -0
- package/dist/speculation/freshness.d.ts.map +1 -0
- package/dist/speculation/partial-json.d.ts +9 -0
- package/dist/speculation/partial-json.d.ts.map +1 -0
- package/dist/speculation/scanner.d.ts +13 -0
- package/dist/speculation/scanner.d.ts.map +1 -0
- package/dist/speculation/scanner.js +182 -0
- package/dist/speculation/scanner.js.map +7 -0
- package/dist/speculation/store.d.ts +39 -0
- package/dist/speculation/store.d.ts.map +1 -0
- package/dist/speculation/stream-tap.d.ts +27 -0
- package/dist/speculation/stream-tap.d.ts.map +1 -0
- package/dist/speculation/types.d.ts +44 -0
- package/dist/speculation/types.d.ts.map +1 -0
- package/dist/state/complexity.d.ts +13 -0
- package/dist/state/complexity.d.ts.map +1 -0
- package/dist/state/evidence-runner.d.ts +17 -0
- package/dist/state/evidence-runner.d.ts.map +1 -0
- package/dist/state/store.d.ts +76 -0
- package/dist/state/store.d.ts.map +1 -0
- package/dist/state/types.d.ts +165 -0
- package/dist/state/types.d.ts.map +1 -0
- package/dist/storage/retention.d.ts +22 -0
- package/dist/storage/retention.d.ts.map +1 -0
- package/dist/thinking.d.ts +19 -0
- package/dist/thinking.d.ts.map +1 -0
- package/dist/topology/control-plane.d.ts +58 -0
- package/dist/topology/control-plane.d.ts.map +1 -0
- package/dist/topology/participant-directory.d.ts +33 -0
- package/dist/topology/participant-directory.d.ts.map +1 -0
- package/dist/topology/peer-settle.d.ts +51 -0
- package/dist/topology/peer-settle.d.ts.map +1 -0
- package/dist/topology/records.d.ts +6 -0
- package/dist/topology/records.d.ts.map +1 -0
- package/dist/topology/types.d.ts +89 -0
- package/dist/topology/types.d.ts.map +1 -0
- package/dist/type-error-guidance.d.ts +3 -0
- package/dist/type-error-guidance.d.ts.map +1 -0
- package/dist/ui/arc-group.d.ts +17 -0
- package/dist/ui/arc-group.d.ts.map +1 -0
- package/dist/ui/code-preview-shell.d.ts +26 -0
- package/dist/ui/code-preview-shell.d.ts.map +1 -0
- package/dist/ui/code-preview.d.ts +53 -0
- package/dist/ui/code-preview.d.ts.map +1 -0
- package/dist/ui/controller.d.ts +20 -0
- package/dist/ui/controller.d.ts.map +1 -0
- package/dist/ui/conversation-chrome.d.ts +15 -0
- package/dist/ui/conversation-chrome.d.ts.map +1 -0
- package/dist/ui/conversation-chrome.js +10 -0
- package/dist/ui/conversation-chrome.js.map +7 -0
- package/dist/ui/conversation-native-reader.d.ts +106 -0
- package/dist/ui/conversation-native-reader.d.ts.map +1 -0
- package/dist/ui/conversation-native-reader.js +784 -0
- package/dist/ui/conversation-native-reader.js.map +7 -0
- package/dist/ui/conversation-queue-store.d.ts +12 -0
- package/dist/ui/conversation-queue-store.d.ts.map +1 -0
- package/dist/ui/conversation-queue.d.ts +242 -0
- package/dist/ui/conversation-queue.d.ts.map +1 -0
- package/dist/ui/conversation-render.d.ts +45 -0
- package/dist/ui/conversation-render.d.ts.map +1 -0
- package/dist/ui/conversation-shortcut.d.ts +3 -0
- package/dist/ui/conversation-shortcut.d.ts.map +1 -0
- package/dist/ui/conversation-targets.d.ts +7 -0
- package/dist/ui/conversation-targets.d.ts.map +1 -0
- package/dist/ui/conversation-targets.js +12 -0
- package/dist/ui/conversation-targets.js.map +7 -0
- package/dist/ui/conversation-transcript.d.ts +25 -0
- package/dist/ui/conversation-transcript.d.ts.map +1 -0
- package/dist/ui/conversation.d.ts +170 -0
- package/dist/ui/conversation.d.ts.map +1 -0
- package/dist/ui/conversation.js +1868 -0
- package/dist/ui/conversation.js.map +7 -0
- package/dist/ui/core-tool-render.d.ts +20 -0
- package/dist/ui/core-tool-render.d.ts.map +1 -0
- package/dist/ui/dashboard-detail.d.ts +68 -0
- package/dist/ui/dashboard-detail.d.ts.map +1 -0
- package/dist/ui/dashboard-fabric-graph.d.ts +50 -0
- package/dist/ui/dashboard-fabric-graph.d.ts.map +1 -0
- package/dist/ui/dashboard-model.d.ts +111 -0
- package/dist/ui/dashboard-model.d.ts.map +1 -0
- package/dist/ui/dashboard-presentation.d.ts +6 -0
- package/dist/ui/dashboard-presentation.d.ts.map +1 -0
- package/dist/ui/dashboard.d.ts +188 -0
- package/dist/ui/dashboard.d.ts.map +1 -0
- package/dist/ui/dashboard.js +4604 -0
- package/dist/ui/dashboard.js.map +7 -0
- package/dist/ui/diff-background.d.ts +12 -0
- package/dist/ui/diff-background.d.ts.map +1 -0
- package/dist/ui/dynamic-border.d.ts +8 -0
- package/dist/ui/dynamic-border.d.ts.map +1 -0
- package/dist/ui/escape-halt.d.ts +11 -0
- package/dist/ui/escape-halt.d.ts.map +1 -0
- package/dist/ui/fabric-actor-delivery-selector.d.ts +17 -0
- package/dist/ui/fabric-actor-delivery-selector.d.ts.map +1 -0
- package/dist/ui/fabric-actor-tool-selector.d.ts +22 -0
- package/dist/ui/fabric-actor-tool-selector.d.ts.map +1 -0
- package/dist/ui/fabric-code-parser.d.ts +8 -0
- package/dist/ui/fabric-code-parser.d.ts.map +1 -0
- package/dist/ui/fabric-host-event-selector.d.ts +29 -0
- package/dist/ui/fabric-host-event-selector.d.ts.map +1 -0
- package/dist/ui/fabric-model-selector.d.ts +64 -0
- package/dist/ui/fabric-model-selector.d.ts.map +1 -0
- package/dist/ui/fabric-render.d.ts +113 -0
- package/dist/ui/fabric-render.d.ts.map +1 -0
- package/dist/ui/fabric-thinking-selector.d.ts +26 -0
- package/dist/ui/fabric-thinking-selector.d.ts.map +1 -0
- package/dist/ui/fabric-title-hint.d.ts +2 -0
- package/dist/ui/fabric-title-hint.d.ts.map +1 -0
- package/dist/ui/format.d.ts +9 -0
- package/dist/ui/format.d.ts.map +1 -0
- package/dist/ui/highlight.d.ts +69 -0
- package/dist/ui/highlight.d.ts.map +1 -0
- package/dist/ui/model-picker.d.ts +46 -0
- package/dist/ui/model-picker.d.ts.map +1 -0
- package/dist/ui/model-picker.js +17 -0
- package/dist/ui/model-picker.js.map +7 -0
- package/dist/ui/preview-lines.d.ts +16 -0
- package/dist/ui/preview-lines.d.ts.map +1 -0
- package/dist/ui/row-balance.d.ts +29 -0
- package/dist/ui/row-balance.d.ts.map +1 -0
- package/dist/ui/settings.d.ts +57 -0
- package/dist/ui/settings.d.ts.map +1 -0
- package/dist/ui/settings.js +1908 -0
- package/dist/ui/settings.js.map +7 -0
- package/dist/ui/shiki-language.d.ts +7 -0
- package/dist/ui/shiki-language.d.ts.map +1 -0
- package/dist/ui/shiki-theme.d.ts +7 -0
- package/dist/ui/shiki-theme.d.ts.map +1 -0
- package/dist/ui/snapshot.d.ts +7 -0
- package/dist/ui/snapshot.d.ts.map +1 -0
- package/dist/ui/spinner.d.ts +6 -0
- package/dist/ui/spinner.d.ts.map +1 -0
- package/dist/ui/state-file-preview.d.ts +13 -0
- package/dist/ui/state-file-preview.d.ts.map +1 -0
- package/dist/ui/structured.d.ts +9 -0
- package/dist/ui/structured.d.ts.map +1 -0
- package/dist/ui/symbol-theme.d.ts +3 -0
- package/dist/ui/symbol-theme.d.ts.map +1 -0
- package/dist/ui/tool-call-timing.d.ts +2 -0
- package/dist/ui/tool-call-timing.d.ts.map +1 -0
- package/dist/ui/tool-display.d.ts +8 -0
- package/dist/ui/tool-display.d.ts.map +1 -0
- package/dist/ui/topology.d.ts +162 -0
- package/dist/ui/topology.d.ts.map +1 -0
- package/dist/ui/transcript-parser.d.ts +18 -0
- package/dist/ui/transcript-parser.d.ts.map +1 -0
- package/dist/ui/transcript-reader.d.ts +10 -0
- package/dist/ui/transcript-reader.d.ts.map +1 -0
- package/dist/ui/transcript-sanitization.d.ts +14 -0
- package/dist/ui/transcript-sanitization.d.ts.map +1 -0
- package/dist/ui/transcript.d.ts +52 -0
- package/dist/ui/transcript.d.ts.map +1 -0
- package/dist/ui/types.d.ts +84 -0
- package/dist/ui/types.d.ts.map +1 -0
- package/dist/ui/widget.d.ts +16 -0
- package/dist/ui/widget.d.ts.map +1 -0
- package/dist/ui/word-diff/alignment.d.ts +6 -0
- package/dist/ui/word-diff/alignment.d.ts.map +1 -0
- package/dist/ui/word-diff/change-block.d.ts +18 -0
- package/dist/ui/word-diff/change-block.d.ts.map +1 -0
- package/dist/ui/word-diff/changed-line.d.ts +14 -0
- package/dist/ui/word-diff/changed-line.d.ts.map +1 -0
- package/dist/ui/word-diff/emphasis.d.ts +9 -0
- package/dist/ui/word-diff/emphasis.d.ts.map +1 -0
- package/dist/ui/word-diff/line-emphasis.d.ts +7 -0
- package/dist/ui/word-diff/line-emphasis.d.ts.map +1 -0
- package/dist/ui/word-diff/line-matching.d.ts +10 -0
- package/dist/ui/word-diff/line-matching.d.ts.map +1 -0
- package/dist/ui/word-diff/line-similarity.d.ts +16 -0
- package/dist/ui/word-diff/line-similarity.d.ts.map +1 -0
- package/dist/ui/word-diff/normalize.d.ts +3 -0
- package/dist/ui/word-diff/normalize.d.ts.map +1 -0
- package/dist/ui/word-diff/parse.d.ts +17 -0
- package/dist/ui/word-diff/parse.d.ts.map +1 -0
- package/dist/ui/word-diff/range-refinement.d.ts +5 -0
- package/dist/ui/word-diff/range-refinement.d.ts.map +1 -0
- package/dist/ui/word-diff/ranges.d.ts +11 -0
- package/dist/ui/word-diff/ranges.d.ts.map +1 -0
- package/dist/ui/word-diff/smart-filter.d.ts +3 -0
- package/dist/ui/word-diff/smart-filter.d.ts.map +1 -0
- package/dist/ui/word-diff/sparse-line-matching.d.ts +25 -0
- package/dist/ui/word-diff/sparse-line-matching.d.ts.map +1 -0
- package/dist/ui/word-diff/text-boundaries.d.ts +11 -0
- package/dist/ui/word-diff/text-boundaries.d.ts.map +1 -0
- package/dist/ui/word-diff/token-alignment.d.ts +9 -0
- package/dist/ui/word-diff/token-alignment.d.ts.map +1 -0
- package/dist/ui/word-diff/token-text-refinement.d.ts +4 -0
- package/dist/ui/word-diff/token-text-refinement.d.ts.map +1 -0
- package/dist/ui/word-diff/tokens.d.ts +16 -0
- package/dist/ui/word-diff/tokens.d.ts.map +1 -0
- package/dist/ui/word-diff/types.d.ts +10 -0
- package/dist/ui/word-diff/types.d.ts.map +1 -0
- package/dist/util.d.ts +3 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/worker/options.d.ts +3 -0
- package/dist/worker/options.d.ts.map +1 -0
- package/dist/worker/options.js +104 -0
- package/dist/worker/options.js.map +7 -0
- package/dist/worker/run-record.d.ts +22 -0
- package/dist/worker/run-record.d.ts.map +1 -0
- package/dist/worker/run-record.js +123 -0
- package/dist/worker/run-record.js.map +7 -0
- package/dist/worker/session-export.d.ts +45 -0
- package/dist/worker/session-export.d.ts.map +1 -0
- package/dist/worker/session-export.js +91 -0
- package/dist/worker/session-export.js.map +7 -0
- package/dist/worker.d.ts +3 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +1061 -0
- package/dist/worker.js.map +7 -0
- package/docs/agents.md +564 -0
- package/docs/architecture.md +139 -0
- package/docs/audit-trace.md +116 -0
- package/docs/certification.md +134 -0
- package/docs/compaction.md +332 -0
- package/docs/component-calculus.md +191 -0
- package/docs/components.md +329 -0
- package/docs/configuration.md +478 -0
- package/docs/entropy.md +396 -0
- package/docs/interface.md +149 -0
- package/docs/memory-recall.md +614 -0
- package/docs/programmatic-compaction.md +207 -0
- package/docs/provider-component-calculus.md +378 -0
- package/docs/providers.md +109 -0
- package/docs/repairs.md +69 -0
- package/docs/residency-runtime.md +82 -0
- package/docs/schema-enforcement.md +166 -0
- package/docs/skills.md +48 -0
- package/docs/speculation.md +132 -0
- package/docs/state-layer.md +197 -0
- package/package.json +116 -0
- package/skills/fabric-advisor/SKILL.md +29 -0
- package/skills/fabric-ambient/SKILL.md +44 -0
- package/skills/fabric-ambient/references/setup.md +90 -0
- package/skills/fabric-council/SKILL.md +94 -0
- package/skills/fabric-exec/SKILL.md +123 -0
- package/skills/fabric-exec/references/agents.md +211 -0
- package/skills/fabric-exec/references/mcp.md +49 -0
- package/skills/fabric-exec/references/mesh.md +51 -0
- package/skills/fabric-fusion/SKILL.md +332 -0
- package/skills/fabric-guide/SKILL.md +28 -0
- package/skills/fabric-rlm/SKILL.md +284 -0
- package/skills/fabric-schema/SKILL.md +121 -0
- package/skills/fabric-spec/SKILL.md +42 -0
- package/skills/fabric-supervisor/SKILL.md +37 -0
- package/skills/fabric-swarm/SKILL.md +80 -0
- package/skills/fabric-workflow/SKILL.md +133 -0
|
@@ -0,0 +1,614 @@
|
|
|
1
|
+
# Memory & Recall
|
|
2
|
+
|
|
3
|
+
OMP Fabric's `memory` provider searches OMP session JSONL files. Session JSONL
|
|
4
|
+
forms the source of truth. The memory index holds derived, disposable state.
|
|
5
|
+
|
|
6
|
+
Structural extraction is the only indexing method. Regexes never classify
|
|
7
|
+
goals, preferences, errors, or other prose concepts. Roles, tool names,
|
|
8
|
+
timestamps, entry IDs, operation addresses, exact `ref`/`provider`/`action`
|
|
9
|
+
identities, execution outcomes, tool errors, and tool argument paths all come
|
|
10
|
+
from typed session fields.
|
|
11
|
+
|
|
12
|
+
## Retrieval workflow
|
|
13
|
+
|
|
14
|
+
Treat recall as navigation and expansion as reading:
|
|
15
|
+
|
|
16
|
+
1. `memory.recall` locates ranked, bounded evidence.
|
|
17
|
+
2. Inspect entry snippets directly. Every hit has one copy-ready `follow` call.
|
|
18
|
+
3. Run `await tools.call(hit.follow)` to expand an entry or resolve a cold session.
|
|
19
|
+
4. Continue any paged result with `await tools.call(result.next)` until `next` is `null`.
|
|
20
|
+
5. Use guest-local `memory.walk` when TypeScript should scan, filter, reduce, join,
|
|
21
|
+
or traverse complete normalized records.
|
|
22
|
+
|
|
23
|
+
These calls are the supported session-data API. Consumers should not open,
|
|
24
|
+
scan, or parse OMP session files themselves. Follow calls carry source hashes and
|
|
25
|
+
selected lineages without duplicating that integrity metadata on each hit;
|
|
26
|
+
single-session page continuations preserve the same bindings. Coverage explains
|
|
27
|
+
when indexed absence is not authoritative.
|
|
28
|
+
|
|
29
|
+
## Active branches
|
|
30
|
+
|
|
31
|
+
`memory.recall`, `memory.sessions`, and `memory.expand` accept
|
|
32
|
+
`branches: "active" | "all"`. Every scope defaults to `"active"`, including
|
|
33
|
+
`project`, `global`, and explicit `session:<id-or-path>` scopes. Only records
|
|
34
|
+
carried on each session's active parent-linked path contribute to hot text,
|
|
35
|
+
cold vocabulary, structural addresses, hits, and entry counts, so an
|
|
36
|
+
abandoned sibling cannot match by default. `branches: "all"` asks explicitly
|
|
37
|
+
for every branch. Expansion results and session rows identify their branch
|
|
38
|
+
mode; recall follow calls preserve it.
|
|
39
|
+
|
|
40
|
+
For the current live session, every memory action calls the extension
|
|
41
|
+
context's live `SessionManager.getBranch()` and `getLeafId()` getters.
|
|
42
|
+
These live reads observe `/tree` navigation even when no new record has
|
|
43
|
+
been appended. For another persisted session, Fabric follows the OMP host's
|
|
44
|
+
persisted semantics. The last persisted non-header entry serves as the
|
|
45
|
+
leaf, duplicate IDs resolve to the last record in the ID map, and Fabric
|
|
46
|
+
walks `parentId` links from that leaf to a root. Append order never counts as one transcript. When a parent
|
|
47
|
+
cycle occurs, Fabric stops defensively and marks coverage incomplete with
|
|
48
|
+
`invalid_parent_graph`.
|
|
49
|
+
|
|
50
|
+
Each derived record carries `branches` and a SHA-256 `lineageFingerprint`
|
|
51
|
+
over the selected branch mode, leaf, and active path IDs. Active and all
|
|
52
|
+
caches use separate filenames. Branch mode, lineage fingerprint, and privacy
|
|
53
|
+
settings all feed cache policy, so navigation, an append, or a policy change
|
|
54
|
+
rebuilds the relevant derived record without contaminating the other mode.
|
|
55
|
+
`sourceHash` still covers the complete JSONL source, including off-lineage
|
|
56
|
+
records.
|
|
57
|
+
|
|
58
|
+
## Cache V6
|
|
59
|
+
|
|
60
|
+
Cache records carry `cacheVersion: 6`. Fabric removes older or malformed
|
|
61
|
+
records and rebuilds them from source. Rebuilding from source replaces any
|
|
62
|
+
migration of old records into V6. Refresh also clears orphan records,
|
|
63
|
+
records whose encoded cache path fails to match their source identity, and
|
|
64
|
+
records for deleted source sessions.
|
|
65
|
+
|
|
66
|
+
Every cache record stores the exact session file path, branch mode, lineage
|
|
67
|
+
fingerprint, privacy policy, and a SHA-256 `sourceHash`, along with source
|
|
68
|
+
mtime and size. A same-size rewrite that preserves mtime still invalidates
|
|
69
|
+
the record. Fabric creates cache directories with `0700` permissions and
|
|
70
|
+
cache files with `0600` permissions on a best-effort basis.
|
|
71
|
+
|
|
72
|
+
A hot shard holds bounded normalized entry text plus `indexCoverage`. Each
|
|
73
|
+
cold digest contains:
|
|
74
|
+
|
|
75
|
+
```ts
|
|
76
|
+
{
|
|
77
|
+
cacheVersion: 6,
|
|
78
|
+
kind: "digest",
|
|
79
|
+
sessionId, file, cwd,
|
|
80
|
+
mtime, size, sourceHash,
|
|
81
|
+
branches, lineageFingerprint, policy,
|
|
82
|
+
firstTs, lastTs, entryCount,
|
|
83
|
+
filesTouched, toolHistogram, errorCount,
|
|
84
|
+
vocabulary, // sorted unique canonical strings, no posting lists
|
|
85
|
+
addresses, // structural identity + ref/provider/action/outcome postings
|
|
86
|
+
indexCoverage,
|
|
87
|
+
cacheBytes, cacheSourceRatio
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Cold vocabulary maps each exact lexical term only to the session that
|
|
92
|
+
contains it. The digest keeps no per-term entry indices. Structural address
|
|
93
|
+
tuples separately keep exact entry identity, role/tool/time, and persisted
|
|
94
|
+
`ref`/`provider`/`action`/`outcome` fields. A cold lexical result remains a
|
|
95
|
+
compact session candidate whose `follow` call carries its exact source and
|
|
96
|
+
hash bindings. It never appears as an inferred lexical entry range. Exact
|
|
97
|
+
lexical entry matches come back only after following that call.
|
|
98
|
+
|
|
99
|
+
`maxColdVocabularyBytes` bounds vocabulary construction for each session.
|
|
100
|
+
`maxColdCacheBytes` is a hard per-session cap on the persisted cache.
|
|
101
|
+
Reaching either cap sets `indexCoverage.complete` to false with an explicit
|
|
102
|
+
reason. The cache-size cap can force structural addresses or vocabulary to
|
|
103
|
+
persist as exact prefixes only. Fabric always reports this state as
|
|
104
|
+
`max_cold_cache_bytes` and never treats it as complete. `cacheSourceRatio`
|
|
105
|
+
divides persisted cache bytes by source bytes.
|
|
106
|
+
|
|
107
|
+
## Capability heads and exact structural retrieval
|
|
108
|
+
|
|
109
|
+
Fabric separates capability navigation from memory evidence.
|
|
110
|
+
`tools.catalog()` returns a deterministic current tree:
|
|
111
|
+
|
|
112
|
+
```text
|
|
113
|
+
Fabric capabilities
|
|
114
|
+
└── provider head
|
|
115
|
+
└── action head
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Provider/action names, descriptions, and descriptor hashes describe the
|
|
119
|
+
currently registered catalog. Full schemas stay available through
|
|
120
|
+
`tools.search()` and `tools.describe()`. A caller can use this metadata to
|
|
121
|
+
choose an action ref. Fabric never copies it into session entries.
|
|
122
|
+
Historical evidence comes from session records alone. Catalog descriptor
|
|
123
|
+
changes can shift discovery ranking. Historical structural membership stays
|
|
124
|
+
intact.
|
|
125
|
+
|
|
126
|
+
`memory.recall` accepts exact structural filters:
|
|
127
|
+
|
|
128
|
+
- `ref`, for example `omp.grep`.
|
|
129
|
+
- `provider`, for example `omp`.
|
|
130
|
+
- `action`, for example `grep`.
|
|
131
|
+
- `outcome`: one of `succeeded | failed | aborted | timed_out`.
|
|
132
|
+
- the existing `role`, `tool`, `since`, and `until` filters.
|
|
133
|
+
|
|
134
|
+
With no `query` present, persisted typed fields alone decide membership. A
|
|
135
|
+
`query` value constrains lexical or explicit-regex search with the same exact
|
|
136
|
+
filters. The result does not echo request diagnostics; the call already records
|
|
137
|
+
them. Catalog description text never becomes a lexical match.
|
|
138
|
+
|
|
139
|
+
```ts
|
|
140
|
+
const heads = await tools.search({ query: "search source files" });
|
|
141
|
+
const history = await memory.recall({
|
|
142
|
+
scope: "project",
|
|
143
|
+
ref: heads[0]?.ref,
|
|
144
|
+
});
|
|
145
|
+
const failures = await memory.recall({
|
|
146
|
+
scope: "project",
|
|
147
|
+
query: "timeout",
|
|
148
|
+
ref: "agents.run",
|
|
149
|
+
outcome: "failed",
|
|
150
|
+
});
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
A complete cold structural posting proves that the selected session contains
|
|
154
|
+
a matching typed entry. The cold response remains an integrity-bound session
|
|
155
|
+
candidate. A combined cold lexical + structural candidate cannot prove that
|
|
156
|
+
both conditions occur on the same entry, because cold vocabulary has no
|
|
157
|
+
posting lists. Coverage reports
|
|
158
|
+
`cold_structural_filter_requires_hydration`; follow the candidate before
|
|
159
|
+
claiming entry-level co-location.
|
|
160
|
+
|
|
161
|
+
## Exact lexical queries
|
|
162
|
+
|
|
163
|
+
Callers choose `queryMode` explicitly:
|
|
164
|
+
|
|
165
|
+
- `"literal"` is the default token mode.
|
|
166
|
+
- `"phrase"` performs a case-insensitive contiguous text search after Unicode
|
|
167
|
+
normalization.
|
|
168
|
+
- `"regex"` requires an explicit opt-in.
|
|
169
|
+
|
|
170
|
+
Literal mode does not inspect punctuation to guess whether input is a regular
|
|
171
|
+
expression. It never compiles input with `RegExp`; a path such as `src/foo.ts`
|
|
172
|
+
stays literal text. Quotes are punctuation only in literal mode; quoted words
|
|
173
|
+
still become independent canonical terms and never turn into regex syntax.
|
|
174
|
+
|
|
175
|
+
`tokenize.ts` is the single canonical tokenizer for literal queries, hot BM25
|
|
176
|
+
scoring, and cold vocabulary creation. It applies Unicode NFKC normalization,
|
|
177
|
+
extracts Unicode letters, numbers, and `_` characters, then lowercases them.
|
|
178
|
+
Literal terms match through exact canonical-token equality. Fabric applies no
|
|
179
|
+
stemming, synonym expansion, or semantic regex classification.
|
|
180
|
+
|
|
181
|
+
Multi-term literal queries default to `queryMatch: "any"` so recall does not
|
|
182
|
+
silently lose an answer whose wording differs from the query. BM25 relevance
|
|
183
|
+
is weighted by typed provenance: assistant and user prose ranks ahead of
|
|
184
|
+
tool-call plumbing unless structural filters explicitly request operations.
|
|
185
|
+
Every exact entry is ranked individually; context-segment grouping cannot give
|
|
186
|
+
thousands of neighbors one shared score.
|
|
187
|
+
|
|
188
|
+
The response is still hard-bounded, so broad discovery cannot flood model
|
|
189
|
+
context. Request `queryMatch: "all"` when every canonical term must occur in
|
|
190
|
+
one indexed entry:
|
|
191
|
+
|
|
192
|
+
```ts
|
|
193
|
+
memory.recall({
|
|
194
|
+
query: '"Use CEF" "Stage 1" browser Heddlework',
|
|
195
|
+
queryMatch: "all"
|
|
196
|
+
})
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Use `queryMode: "phrase"` when word order and adjacency are material. The
|
|
200
|
+
request is not echoed in the compact result.
|
|
201
|
+
|
|
202
|
+
In a cold session with complete coverage, every unique canonical token of the
|
|
203
|
+
normalized source text occurs exactly once in the sorted vocabulary. An
|
|
204
|
+
`all` query requires every term in that vocabulary, but the vocabulary cannot
|
|
205
|
+
prove same-entry co-location. Phrase adjacency cannot be proved either. Both
|
|
206
|
+
cases return an explicit incomplete cold-coverage reason until the session is
|
|
207
|
+
resolved. Rare terms stay exactly discoverable as
|
|
208
|
+
long as the configured vocabulary and cache bounds hold. Exceeding a bound
|
|
209
|
+
makes an empty result explicitly non-authoritative.
|
|
210
|
+
|
|
211
|
+
Unicode scalar count sets the hot-text limit. Raw UTF-16 code units play no
|
|
212
|
+
part. A cut cannot split a surrogate pair, and the shard text remains valid
|
|
213
|
+
UTF-8. Hot shards retain no separate complete tail vocabulary, so truncating
|
|
214
|
+
any normalized entry sets shard `indexCoverage.complete: false` with reason
|
|
215
|
+
`max_entry_chars`. A token that occurs only after the cut cannot yield an
|
|
216
|
+
authoritative no-match. Recall returns no hit and reports that reason through
|
|
217
|
+
`coverage`. Expansion still re-reads the complete source record.
|
|
218
|
+
|
|
219
|
+
## Bounded regular expressions
|
|
220
|
+
|
|
221
|
+
Regex mode runs JavaScript regex inside a disposable worker thread. The host
|
|
222
|
+
never evaluates an untrusted pattern. Fabric terminates the worker forcibly
|
|
223
|
+
at the hard timeout, so catastrophic backtracking cannot continue on the
|
|
224
|
+
host thread. Four limits bound regex execution:
|
|
225
|
+
|
|
226
|
+
- UTF-8 pattern byte count.
|
|
227
|
+
- haystack item count.
|
|
228
|
+
- aggregate UTF-8 haystack bytes.
|
|
229
|
+
- wall-clock worker timeout.
|
|
230
|
+
|
|
231
|
+
A hot haystack is normalized entry text. A cold haystack is one bounded
|
|
232
|
+
canonical vocabulary term. Transcript prose never serves as a cold
|
|
233
|
+
haystack. Invalid patterns, oversized patterns, haystack truncation,
|
|
234
|
+
worker failures, and timeouts each return structured query coverage. A timeout, for example, returns `coverage.complete: false`, the
|
|
235
|
+
reason `regex_timeout`, and a structured `coverage.error`. An incomplete
|
|
236
|
+
regex result never counts as an authoritative no-match.
|
|
237
|
+
|
|
238
|
+
## Tiers, refresh, and work budgets
|
|
239
|
+
|
|
240
|
+
The `memory.hotSessions` most recently modified sessions stay hot. Every
|
|
241
|
+
older session is cold. Once a session crosses the boundary, Fabric drops
|
|
242
|
+
the old derived tier record after building the replacement. Explicit
|
|
243
|
+
hydration re-reads source without promoting a cold session.
|
|
244
|
+
|
|
245
|
+
Session count and aggregate source bytes bound cache synchronization.
|
|
246
|
+
Cache cleanup follows budgets on inspected cache files and aggregate
|
|
247
|
+
cache bytes. The cleanup byte budget is shared with
|
|
248
|
+
`maxSyncSourceBytes`. Reaching a work budget stops additional indexing
|
|
249
|
+
and sets `coverage.complete: false`. All eligible sessions remain
|
|
250
|
+
counted. Fabric bounds every background job, and the index needs no
|
|
251
|
+
database dependency.
|
|
252
|
+
|
|
253
|
+
Query mode and no-query browse mode both discover every eligible session.
|
|
254
|
+
`memory.maxSessions` limits session listing only. Search materialization
|
|
255
|
+
works under explicit deterministic per-call budgets: 50,000 filtered hot
|
|
256
|
+
entry candidates, 10,000 cold digest candidates, and 10,000 ranked result
|
|
257
|
+
candidates. Hitting one of these marks coverage incomplete with
|
|
258
|
+
`candidate_entry_budget`, `candidate_digest_budget`, or
|
|
259
|
+
`candidate_item_budget`. Public totals count the retained exact entry hits
|
|
260
|
+
and cold session candidates after filtering. Unknown omitted candidates stay
|
|
261
|
+
outside those totals.
|
|
262
|
+
Coverage reports:
|
|
263
|
+
|
|
264
|
+
```ts
|
|
265
|
+
coverage: {
|
|
266
|
+
complete: boolean,
|
|
267
|
+
indexedSessions: number,
|
|
268
|
+
eligibleSessions: number,
|
|
269
|
+
staleSessions: number,
|
|
270
|
+
incompleteSessions: number,
|
|
271
|
+
reasons: string[],
|
|
272
|
+
error?: { code: string, message: string }
|
|
273
|
+
}
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
An empty `hits` array is authoritative only when cache/index coverage and
|
|
277
|
+
query execution coverage are both complete. Otherwise `coverage.reasons` names
|
|
278
|
+
causes such as source unavailability, `max_entry_chars`, duplicate identities,
|
|
279
|
+
vocabulary, file-metadata, or cache caps, candidate or synchronization budgets,
|
|
280
|
+
or regex limits.
|
|
281
|
+
|
|
282
|
+
## Scopes
|
|
283
|
+
|
|
284
|
+
| Scope | Meaning |
|
|
285
|
+
| --- | --- |
|
|
286
|
+
| `session` | The current session, or the newest session for the current cwd. |
|
|
287
|
+
| `project` | All sessions in the current cwd's OMP session directory. |
|
|
288
|
+
| `global` | Sessions under the agent directory. This scope requires an explicit request and can never be the default. |
|
|
289
|
+
| `session:<id-or-path>` | One source session, resolved explicitly without promotion. |
|
|
290
|
+
|
|
291
|
+
Duplicate session IDs are ambiguous. `session:<id>` and `memory.expand`
|
|
292
|
+
reject an ambiguous ID with `ambiguous_session` and list the candidate paths.
|
|
293
|
+
Normal recall navigation does not require extracting a path: copy the hit
|
|
294
|
+
`follow` call unchanged.
|
|
295
|
+
Duplicate normalized entry IDs and operation addresses also mark index
|
|
296
|
+
coverage incomplete, with `duplicate_entry_id` or
|
|
297
|
+
`duplicate_operation_address`. Stable-address expansion demands exactly one
|
|
298
|
+
record. Zero matches return `address_not_found`. More than one match
|
|
299
|
+
returns `ambiguous_address`. Fabric returns no source records in either case.
|
|
300
|
+
|
|
301
|
+
## Compact results and call tokens
|
|
302
|
+
|
|
303
|
+
`memory.recall` returns one flat, bounded hit stream:
|
|
304
|
+
|
|
305
|
+
```ts
|
|
306
|
+
type FabricCall = {
|
|
307
|
+
ref: "memory.recall" | "memory.expand";
|
|
308
|
+
args: Record<string, unknown>;
|
|
309
|
+
};
|
|
310
|
+
|
|
311
|
+
type RecallPage = {
|
|
312
|
+
total: number;
|
|
313
|
+
hits: MemoryHit[];
|
|
314
|
+
next: FabricCall | null;
|
|
315
|
+
coverage: MemoryCoverage;
|
|
316
|
+
error?: MemoryError;
|
|
317
|
+
};
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
`total` is the retained pre-page count of exact entry hits plus cold session
|
|
321
|
+
candidates. `hits.length` is the returned count. The request already records
|
|
322
|
+
query semantics, so results do not echo query terms, modes, filters, offsets,
|
|
323
|
+
or redundant counts and prose.
|
|
324
|
+
|
|
325
|
+
A hot or explicitly resolved entry hit carries evidence plus one action:
|
|
326
|
+
|
|
327
|
+
```ts
|
|
328
|
+
{
|
|
329
|
+
kind: "entry",
|
|
330
|
+
sessionId,
|
|
331
|
+
tier,
|
|
332
|
+
index,
|
|
333
|
+
entryId,
|
|
334
|
+
parentId,
|
|
335
|
+
operationAddress,
|
|
336
|
+
type,
|
|
337
|
+
role,
|
|
338
|
+
tool,
|
|
339
|
+
ref,
|
|
340
|
+
provider,
|
|
341
|
+
action,
|
|
342
|
+
outcome,
|
|
343
|
+
timestamp,
|
|
344
|
+
isError,
|
|
345
|
+
score,
|
|
346
|
+
snippet,
|
|
347
|
+
truncated,
|
|
348
|
+
follow: { ref: "memory.expand", args: { /* integrity-bound selector */ } }
|
|
349
|
+
}
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
A cold candidate cannot claim an exact source entry. It carries only
|
|
353
|
+
session-level evidence and a recall action:
|
|
354
|
+
|
|
355
|
+
```ts
|
|
356
|
+
{
|
|
357
|
+
kind: "session",
|
|
358
|
+
sessionId,
|
|
359
|
+
tier: "cold",
|
|
360
|
+
cwd,
|
|
361
|
+
lastTimestamp,
|
|
362
|
+
score,
|
|
363
|
+
matchedTerms,
|
|
364
|
+
matchedStructuralEntries,
|
|
365
|
+
follow: { ref: "memory.recall", args: { /* integrity-bound request */ } }
|
|
366
|
+
}
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
The integrity arguments live only inside `follow`; they are not duplicated in
|
|
370
|
+
separate source or action-specific pointer objects. Dispatch either hit without
|
|
371
|
+
branch-specific plumbing:
|
|
372
|
+
|
|
373
|
+
```ts
|
|
374
|
+
const detail = await tools.call(hit.follow);
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
When a statically typed result is useful, discriminate the hit and call the
|
|
378
|
+
known provider method:
|
|
379
|
+
|
|
380
|
+
```ts
|
|
381
|
+
const detail = hit.kind === "entry"
|
|
382
|
+
? await memory.expand(hit.follow.args)
|
|
383
|
+
: await memory.recall(hit.follow.args);
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
Recall ranks one mixed stream and then paginates it. `pageSize` is a request
|
|
387
|
+
ceiling, not permission to exceed the hard 30,000-character JSON envelope.
|
|
388
|
+
If more retained items remain, `next` is another complete call token:
|
|
389
|
+
|
|
390
|
+
```ts
|
|
391
|
+
let page = await memory.recall({ query: "timeout", scope: "project" });
|
|
392
|
+
while (page.next !== null) {
|
|
393
|
+
page = await memory.recall(page.next.args);
|
|
394
|
+
}
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
A single-session continuation includes exact source-hash and lineage bindings;
|
|
398
|
+
an append or branch change returns `stale_pointer`, preventing a silent page
|
|
399
|
+
shift. Each project or global call takes a fresh, nontransactional snapshot.
|
|
400
|
+
Every snippet is independently bounded and reports only whether it was
|
|
401
|
+
truncated.
|
|
402
|
+
|
|
403
|
+
An optional inclusive `entryRange` can bound explicit single-session recall.
|
|
404
|
+
Both endpoints must be valid normalized indices. Out-of-range or negative
|
|
405
|
+
addresses return `index_out_of_bounds`; Fabric never clamps them.
|
|
406
|
+
|
|
407
|
+
## Expansion and guest-local computation
|
|
408
|
+
|
|
409
|
+
`memory.expand` re-reads full, untruncated normalized records. It accepts
|
|
410
|
+
indices, stable entry IDs, operation addresses, or an inclusive range.
|
|
411
|
+
`before` and `after` add adjacent entries around exactly one selected anchor:
|
|
412
|
+
|
|
413
|
+
```ts
|
|
414
|
+
const exact = await memory.expand(hit.follow.args);
|
|
415
|
+
const around = await memory.expand({
|
|
416
|
+
...hit.follow.args,
|
|
417
|
+
before: 2,
|
|
418
|
+
after: 3,
|
|
419
|
+
});
|
|
420
|
+
const operation = await memory.expand({
|
|
421
|
+
session,
|
|
422
|
+
operationAddresses: ["entry-uuid/7"],
|
|
423
|
+
});
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
Expansion results use `entries`. Recall and expansion both call the capability
|
|
427
|
+
field `tool`. Expanded records include OMP's `parentId`, so code can reconstruct
|
|
428
|
+
branch relationships under `branches: "all"`; `parentEntryId` remains the
|
|
429
|
+
separate carrier link for extracted Fabric child records.
|
|
430
|
+
|
|
431
|
+
Expansion never silently slices away a long record. Every returned chunk has
|
|
432
|
+
`textRange: { start, end, total, complete }`. A partial final entry returns a
|
|
433
|
+
non-null `next`; follow it to reconstruct the exact text:
|
|
434
|
+
|
|
435
|
+
```ts
|
|
436
|
+
let chunk = await memory.expand(args);
|
|
437
|
+
while (chunk.next !== null && chunk.next !== undefined) {
|
|
438
|
+
chunk = await memory.expand(chunk.next.args);
|
|
439
|
+
}
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
The default aggregate text budget is 20,000 characters and `maxChars` can
|
|
443
|
+
request a smaller chunk. Valid typed operation and branch-fact payloads stay
|
|
444
|
+
available as bounded structured fields. Oversized structured payloads set
|
|
445
|
+
`structuredTruncated` and stay out of the envelope.
|
|
446
|
+
|
|
447
|
+
For arbitrary filtering, projection, aggregation, joins, and parent traversal,
|
|
448
|
+
the query language is the surrounding TypeScript. `memory.walk` is a
|
|
449
|
+
guest-only combinator, not a fourth host action and not a serialized callback:
|
|
450
|
+
|
|
451
|
+
```ts
|
|
452
|
+
const failedFiles = new Set<string>();
|
|
453
|
+
const parents = new Map<string, string | null>();
|
|
454
|
+
|
|
455
|
+
const walk = await memory.walk(
|
|
456
|
+
{ session, branches: "all" },
|
|
457
|
+
async (entry) => {
|
|
458
|
+
if (entry.entryId) parents.set(entry.entryId, entry.parentId);
|
|
459
|
+
if (entry.outcome === "failed") {
|
|
460
|
+
for (const file of entry.filesTouched ?? []) {
|
|
461
|
+
if (file) failedFiles.add(file);
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
return failedFiles.size < 20; // exactly false stops early
|
|
465
|
+
},
|
|
466
|
+
);
|
|
467
|
+
|
|
468
|
+
return { files: [...failedFiles], visited: walk.visited };
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
With no selector, `memory.walk` obtains an integrity-bound session range and
|
|
472
|
+
visits the whole normalized session. With a selector, it visits only that
|
|
473
|
+
selection and optional context. Start it from an original selection, not a
|
|
474
|
+
continuation with a nonzero `textOffset`, because every callback receives a
|
|
475
|
+
complete entry. The helper follows all expansion pages, validates continuity,
|
|
476
|
+
and reassembles each `textRange` fully before invoking the visitor,
|
|
477
|
+
awaits async visitors and nested tool calls, and returns `{visited, stopped}`.
|
|
478
|
+
A provider error is returned as `walk.error`. Functions remain inside the guest
|
|
479
|
+
runtime, isolated by default; no predicate source or closure crosses the host
|
|
480
|
+
bridge.
|
|
481
|
+
|
|
482
|
+
This is the Python replacement boundary: the host supplies bounded search and
|
|
483
|
+
lossless normalized records; the fabric program supplies callbacks, maps,
|
|
484
|
+
sets, joins, reductions, and the small final `return`. Do not add JSONPath,
|
|
485
|
+
SQL, projection, grouping, or host-evaluated predicate fields, and do not open
|
|
486
|
+
OMP session JSONL directly.
|
|
487
|
+
|
|
488
|
+
During recall follow calls and expansion, Fabric compares the expected source
|
|
489
|
+
hash and lineage fingerprint with the selected live or persisted session. A
|
|
490
|
+
rewrite, append, or active-leaf navigation that changes a binding returns
|
|
491
|
+
`stale_pointer` and no source content. Under active mode, an off-lineage stable
|
|
492
|
+
address returns `address_not_found`; `branches: "all"` is the explicit way to
|
|
493
|
+
read it.
|
|
494
|
+
|
|
495
|
+
A valid `FabricExecutionTraceV1` on an outer `fabric_exec` result emits one
|
|
496
|
+
child record per operation, placed immediately after the outer normalized
|
|
497
|
+
entry. Each child keeps `parentEntryId`, `operationAddress`, the exact
|
|
498
|
+
`tool`, `ref`, `provider`, `action`, typed `filesTouched`, `outcome`, and a
|
|
499
|
+
bounded structured `operation` object. Expansion re-reads and
|
|
500
|
+
re-normalizes source. Fabric never reconstructs operations from output
|
|
501
|
+
prose.
|
|
502
|
+
|
|
503
|
+
Valid `FabricBranchSummaryDetailsV1` and V2 envelopes emit typed child
|
|
504
|
+
records for user, phase, and operation facts. Under V2, they also emit
|
|
505
|
+
children for named `fabricRun` facts. Run children keep the bounded declared
|
|
506
|
+
name and description, the paired aggregate outcome, and the original call
|
|
507
|
+
address. They index as `fabric_exec` and expand by that operation address.
|
|
508
|
+
Other children keep the original fact address, the
|
|
509
|
+
ref/provider/action/tool/outcome/arguments values, and the structurally
|
|
510
|
+
derived paths, plus `carrierEntryId`, `carrierParentId`, and
|
|
511
|
+
`carrierFromId`. Operation facts expand by their original operation address.
|
|
512
|
+
User and phase facts use that address as their stable entry ID. Fabric
|
|
513
|
+
deduplicates repeated nested summaries by exact fact address in source
|
|
514
|
+
order, which keeps the earliest carrier deterministic. Inside each consumed
|
|
515
|
+
details envelope, addresses must be unique. Fabric rejects an envelope with
|
|
516
|
+
a duplicate address and marks coverage incomplete. Unknown or malformed
|
|
517
|
+
details and all branch-summary prose remain non-semantic.
|
|
518
|
+
|
|
519
|
+
## Local-cache privacy and deletion
|
|
520
|
+
|
|
521
|
+
Treat the memory index as local derived state. It sets no encryption or
|
|
522
|
+
semantic-privacy boundary. Depending on configuration and tier, cache JSON
|
|
523
|
+
can retain plaintext lexical vocabulary, cwd and file paths, source
|
|
524
|
+
pointers and hashes, structural tool and capability metadata, selected
|
|
525
|
+
user/assistant/custom-message content, tool arguments, and selected tool
|
|
526
|
+
output when the default `indexToolOutput: true` applies. Cold vocabulary
|
|
527
|
+
holds no posting lists. The exact words still appear in it as plaintext.
|
|
528
|
+
Thinking text stays excluded by default. Enabling it explicitly stores it
|
|
529
|
+
as plaintext. Fabric runs no secret scanning. Privacy here comes from
|
|
530
|
+
structural inclusion or exclusion, and regex classification plays no
|
|
531
|
+
part.
|
|
532
|
+
|
|
533
|
+
Fabric requests `0700` for cache directories and `0600` for cache files.
|
|
534
|
+
These permissions are best effort and inherit the host filesystem, account,
|
|
535
|
+
backup, and administrative trust model. The cache stays unencrypted. Fabric
|
|
536
|
+
reads project configuration only for a project that OMP has marked trusted.
|
|
537
|
+
Otherwise, only global Fabric configuration applies. A `global` memory
|
|
538
|
+
search is an explicit scope, never the default. Under that explicit scope,
|
|
539
|
+
global indexing still creates local derived records for the sessions that
|
|
540
|
+
the call selects.
|
|
541
|
+
|
|
542
|
+
Deleting an OMP session removes the source of truth. A later memory refresh
|
|
543
|
+
removes the orphaned cache records on a best-effort basis. When immediate
|
|
544
|
+
cache removal is required, delete the configured `memory.indexDir` as
|
|
545
|
+
well.
|
|
546
|
+
Removing that directory is safe, because every record is disposable and
|
|
547
|
+
rebuilt from the remaining session JSONL. Cache deletion leaves source
|
|
548
|
+
sessions, filesystem backups, and copies outside the index directory
|
|
549
|
+
untouched.
|
|
550
|
+
|
|
551
|
+
## Benchmarking capability-head retrieval
|
|
552
|
+
|
|
553
|
+
After changes to discovery, structural postings, ranking, or cache layout,
|
|
554
|
+
run the deterministic synthetic benchmark:
|
|
555
|
+
|
|
556
|
+
```sh
|
|
557
|
+
bun run benchmark:memory-heads
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
The benchmark reports catalog head selection separately from source
|
|
561
|
+
retrieval, hot exact operation-address recall, cold session recall, combined
|
|
562
|
+
lexical + structural retrieval, negative controls, the cold digest/source
|
|
563
|
+
ratio, and p50/p95/p99 search latency. The command fails when catalog
|
|
564
|
+
description text leaks into lexical matches, structural provenance is lost,
|
|
565
|
+
cold combined candidates omit the hydration requirement, or a nonexistent
|
|
566
|
+
ref returns history. Repository tests cover source JSONL, branches, staleness, and cache generation.
|
|
567
|
+
The synthetic timing corpus covers the measured search paths.
|
|
568
|
+
|
|
569
|
+
## Configuration
|
|
570
|
+
|
|
571
|
+
```json
|
|
572
|
+
{
|
|
573
|
+
"memory": {
|
|
574
|
+
"enabled": true,
|
|
575
|
+
"indexDir": "<active OMP agent dir>/fabric/memory-index",
|
|
576
|
+
"maxSessions": 500,
|
|
577
|
+
"maxEntryChars": 2000,
|
|
578
|
+
"indexThinking": false,
|
|
579
|
+
"indexToolOutput": true,
|
|
580
|
+
"hotSessions": 50,
|
|
581
|
+
"maxColdVocabularyBytes": 524288,
|
|
582
|
+
"maxColdCacheBytes": 1048576,
|
|
583
|
+
"maxSyncSessions": 10000,
|
|
584
|
+
"maxSyncSourceBytes": 536870912,
|
|
585
|
+
"maxCacheCleanupFiles": 100000,
|
|
586
|
+
"regexMaxPatternBytes": 1024,
|
|
587
|
+
"regexMaxHaystackTerms": 20000,
|
|
588
|
+
"regexMaxHaystackBytes": 2097152,
|
|
589
|
+
"regexTimeoutMs": 250
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
- `maxSessions`: limits session-list discovery only. Candidate and indexing
|
|
595
|
+
budgets control recall.
|
|
596
|
+
- `maxEntryChars`: Unicode-scalar limit for persisted hot entry text. Any
|
|
597
|
+
cut marks lexical coverage incomplete, and expand still re-reads full
|
|
598
|
+
source.
|
|
599
|
+
- `indexThinking`: when true, assistant thinking blocks enter normalized
|
|
600
|
+
text and lexical vocabulary. Default: false.
|
|
601
|
+
- `indexToolOutput`: when true, tool-result bodies, bash output, and typed
|
|
602
|
+
Fabric operation results enter derived text. Default: true. Coding recall then includes tool outputs. When false, typed tool name/ref/action,
|
|
603
|
+
error/outcome, and structurally extracted path metadata stay searchable.
|
|
604
|
+
Output bodies do not.
|
|
605
|
+
- `hotSessions`: count of globally newest sessions that keep hot shards.
|
|
606
|
+
- `maxColdVocabularyBytes`: per-session bound on the canonical vocabulary.
|
|
607
|
+
- `maxColdCacheBytes`: hard per-session bound on the cold cache file.
|
|
608
|
+
- `maxSyncSessions` / `maxSyncSourceBytes`: work budgets for synchronous
|
|
609
|
+
indexing.
|
|
610
|
+
- `maxCacheCleanupFiles`: count budget for synchronous cache-file cleanup.
|
|
611
|
+
Cleanup bytes draw on `maxSyncSourceBytes`.
|
|
612
|
+
- `regexMaxPatternBytes`, `regexMaxHaystackTerms`,
|
|
613
|
+
`regexMaxHaystackBytes`, `regexTimeoutMs`: bounds on isolated regex
|
|
614
|
+
execution.
|