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
package/docs/entropy.md
ADDED
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
# Tool entropy
|
|
2
|
+
|
|
3
|
+
Tool entropy is the corrective freedom a tool surface leaves open per unit of
|
|
4
|
+
work: the number of distinct ways a call can be non-canonical, weighted by
|
|
5
|
+
how often models exercise them. The [catalog repair table](repairs.md)
|
|
6
|
+
is the running profile of that freedom: every promoted row is one dimension
|
|
7
|
+
the surface exposed and a model hit. The entropy meter turns the repairs KPI
|
|
8
|
+
(*repeat invocation fingerprints → 0*) into a measured quantity, and the
|
|
9
|
+
compiler loop drives it down and keeps it there.
|
|
10
|
+
|
|
11
|
+
Everything is deterministic by construction. The meter is a pure function over
|
|
12
|
+
typed artifacts Fabric already persists: trace V1 operations, live JSON
|
|
13
|
+
schemas, and the repair table. No model judges anything, no prose is parsed,
|
|
14
|
+
and the same inputs plus the same `ENTROPY_METRIC_VERSION` always produce the
|
|
15
|
+
same report, which is what makes the score bisectable and CI-gateable.
|
|
16
|
+
|
|
17
|
+
## Inputs
|
|
18
|
+
|
|
19
|
+
- **Traces**: `FabricExecutionTraceV1` operations (`ref`, projected `args`,
|
|
20
|
+
`outcome`, `failureStage`, `sequence`) extracted from session JSONL tool
|
|
21
|
+
result details. Trace V1 is deliberately prose-free, which is exactly what
|
|
22
|
+
makes deterministic measurement possible.
|
|
23
|
+
- **Surface**: an optional snapshot of `{ ref, inputSchema }` actions. When
|
|
24
|
+
present the meter adds static freedom; without it the report covers
|
|
25
|
+
behavioral terms only.
|
|
26
|
+
- **Repairs**: the normalized catalog repair table (`keyAlias` /
|
|
27
|
+
`actionAlias` rows). Each row is a standing lexicon tax on its target ref.
|
|
28
|
+
- **Audits**: persisted verbatim call arguments (`details.audits`). They are
|
|
29
|
+
the value corpus for enum-tighten: trace V1 projects values away per ref,
|
|
30
|
+
while audits carry every argument the call used. They stay local to the
|
|
31
|
+
session record, and the machine-wide observation pool accumulates their
|
|
32
|
+
counts across windows with exact per-session deltas, so sparse parameters
|
|
33
|
+
still reach the derivation thresholds.
|
|
34
|
+
|
|
35
|
+
## The metric
|
|
36
|
+
|
|
37
|
+
`measureEntropy({ traces, surface?, repairs?, catalogDigest? })` returns a
|
|
38
|
+
report with per-ref and global terms, all rounded to 1e-6:
|
|
39
|
+
|
|
40
|
+
| Term | Formula | Weight |
|
|
41
|
+
| --- | --- | --- |
|
|
42
|
+
| Shape entropy | Shannon entropy (bits) over canonical argument-shape signatures per ref, calls-weighted | 1 |
|
|
43
|
+
| Failure-stage entropy | Entropy over `failureStage` among failed ops per ref, failed-weighted | 1 |
|
|
44
|
+
| Retry churn | Mean normalized Levenshtein distance between a failed op's signature and the next same-ref signature | 4 |
|
|
45
|
+
| Navigation | `fabric.discovery.*` operations per action operation | 4 |
|
|
46
|
+
| Flow entropy | Occurrence-weighted entropy over action-ref sequences per task key | 1 |
|
|
47
|
+
| Lexicon tax | Repair rows targeting the ref | 2 |
|
|
48
|
+
| Static freedom | Per-schema freedom score (below) for called refs | 0.25 |
|
|
49
|
+
|
|
50
|
+
The global `score` is `(Σ per-ref scores + navigation + flow) / max(1,
|
|
51
|
+
succeeded action operations)`. Lower is better; the compiler's contract is
|
|
52
|
+
that it never increases. The report decomposes it into `staticScore` (the
|
|
53
|
+
surface share: static freedom of the refs the corpus used) and
|
|
54
|
+
`behavioralScore` (everything models exercised: wobble, churn, rejections,
|
|
55
|
+
navigation, flow, lexicon tax).
|
|
56
|
+
|
|
57
|
+
Additional totals: `invocationRejections` counts failures at `resolve`,
|
|
58
|
+
`prepare`, or `validate`: the offline residue class behind repair
|
|
59
|
+
fingerprints. `invocationRejectionsPer1k` is that rate per 1,000 action
|
|
60
|
+
operations and is the entropy production signal: it should trend to zero as
|
|
61
|
+
the surface converges, and it spikes when a new model or tool arrives.
|
|
62
|
+
|
|
63
|
+
Reports also carry `byModel`: per-model behavioral attribution. Traces stamp
|
|
64
|
+
the producing model from the session scan (`model_change` records and the
|
|
65
|
+
assistant turn's provider/model), and each model's behavioral terms measure
|
|
66
|
+
against the same surface. The surface share is global truth about the
|
|
67
|
+
schema, while behavioral entropy is attributable to the model that
|
|
68
|
+
exercised it: a slipping ratchet with every model's slope up means the
|
|
69
|
+
surface regressed, while one model's slope up names the entropy producer.
|
|
70
|
+
Unstamped traces (older corpora, synthetic fixtures) contribute to the
|
|
71
|
+
global report only.
|
|
72
|
+
|
|
73
|
+
### Fingerprints
|
|
74
|
+
|
|
75
|
+
- **Shape signature**: sorted parameter names with a bounded value-type tag
|
|
76
|
+
(`(limit:num,path:str)`), nested objects to depth 3, at most 32 keys. Key
|
|
77
|
+
order and value contents never matter, only the shape the model chose.
|
|
78
|
+
- **Static freedom**: per JSON Schema parameter: free string 1.0, enum
|
|
79
|
+
`min(1, log2(k)/6)`, literal/const 0, number 0.5, boolean 0.1, arrays
|
|
80
|
+
`0.5 + 0.5·items`, objects recursed; optional parameters add 0.25,
|
|
81
|
+
`additionalProperties !== false` adds 0.5, free-form objects score 1.0.
|
|
82
|
+
Computable with an empty corpus, which is what lets the compiler score
|
|
83
|
+
candidate surfaces before deployment.
|
|
84
|
+
|
|
85
|
+
### What good means
|
|
86
|
+
|
|
87
|
+
- **Behavioral entropy → 0.** The bits of freedom models exercised, per
|
|
88
|
+
successful call. Zero means no call in the corpus needed correcting. This
|
|
89
|
+
is the primary target and the general form of the repairs KPI (repeat
|
|
90
|
+
invocation fingerprints → 0).
|
|
91
|
+
- **Surface share shrinks by compilation, never by behavior.** It is the
|
|
92
|
+
priced potential of the refs the corpus used. It falls only when
|
|
93
|
+
a compiled surface (enum tightening, splits, or quarantines) removes real
|
|
94
|
+
freedom; track it across surface releases, bounded by function.
|
|
95
|
+
- **Slope ≤ 0.** The per-session least-squares slope is the ratchet line:
|
|
96
|
+
flat means the surface converged, negative means it is compiling down,
|
|
97
|
+
positive means something regressed (a new model, a new tool, or a schema
|
|
98
|
+
change).
|
|
99
|
+
- `/fabric entropy` prints `ratchet holding` when the latest session logged
|
|
100
|
+
zero invocation rejections and the slope is at or below zero, and
|
|
101
|
+
`ratchet slipping` otherwise.
|
|
102
|
+
|
|
103
|
+
## Proposals
|
|
104
|
+
|
|
105
|
+
`proposeEntropyReductions({ report, traces, surface?, repairs? })` emits
|
|
106
|
+
reviewable, evidence-carrying proposals with fixed thresholds:
|
|
107
|
+
|
|
108
|
+
- `enum-tighten`: a closed-domain parameter with ≥ 8 observations, 2–8
|
|
109
|
+
distinct values, and a ≥ 50% top share tightens beneath the enum its
|
|
110
|
+
schema already declares, removing values the corpus never uses. The
|
|
111
|
+
closed-domain rule is the guard rail: the auto loop may only subtract
|
|
112
|
+
freedom the schema claimed is bounded, never invent a domain. Value
|
|
113
|
+
observations come from the verbatim audits when supplied
|
|
114
|
+
(`entropyValueObservationsFromSessionJsonl`); the projected trace args
|
|
115
|
+
are the fallback. Boolean-typed parameters never propose: they are
|
|
116
|
+
already closed, and a two-value enum prices above the declared boolean.
|
|
117
|
+
A declared or previously compiled enum is a floor: observed values
|
|
118
|
+
outside it are pre-birth evidence (recorded before the overlay existed,
|
|
119
|
+
or after a digest proof fell) and are dropped, never re-proposed, so a
|
|
120
|
+
converged surface stops contesting its own tightness every turn. Later
|
|
121
|
+
compiles may tighten beneath the floor but never widen past it; widening
|
|
122
|
+
resets only when the base schema drifts (the digest proof drops the
|
|
123
|
+
overlay) or through review. Validate-rejected attempts record as
|
|
124
|
+
failed-call audits carrying only values the live schema's own enums
|
|
125
|
+
declare, so nothing a validator refused enters the durable record: the
|
|
126
|
+
refused value is already the author's public vocabulary, and typos or
|
|
127
|
+
out-of-domain payloads drop at the boundary. The attempt stays pre-birth
|
|
128
|
+
while the overlay holds, and the reset re-derives with it included, so a
|
|
129
|
+
refused in-domain value un-locks at the first drift and survives in the
|
|
130
|
+
corpus.
|
|
131
|
+
- `declare-enum`: observations over an open parameter do not establish a
|
|
132
|
+
finite domain. A schema author must first mark a declared property with
|
|
133
|
+
`"x-fabric-enum-candidate": true`; only then does the same ≥ 8 observation,
|
|
134
|
+
2–8 value, and ≥ 50% top-share evidence surface a review signal naming the
|
|
135
|
+
observed vocabulary. Ordinary free strings, numeric ranges, undeclared
|
|
136
|
+
keys, and refs absent from the surface produce no enum suggestion. Once
|
|
137
|
+
the author replaces the annotation with a declared enum, later compiles
|
|
138
|
+
can tighten beneath it automatically. The auto loop never applies an enum
|
|
139
|
+
declaration.
|
|
140
|
+
|
|
141
|
+
- `overload-split`: a ref with ≥ 1.0 bits of shape entropy and ≥ 2 disjoint
|
|
142
|
+
key-set clusters with ≥ 2 calls each splits into separate actions.
|
|
143
|
+
- `sequence-fuse`: a contiguous sequence of 3–6 successful high-level
|
|
144
|
+
action refs, all distinct, that recurs in at least three independent
|
|
145
|
+
`fabric_exec` executions can become a composite action or skill. Core
|
|
146
|
+
`omp.*` primitives are excluded because they are implementation steps to
|
|
147
|
+
batch, not domain actions to fuse; failed and excluded operations break
|
|
148
|
+
contiguity.
|
|
149
|
+
- `noise-quarantine`: a ref with ≥ 3 calls, more failures than successes,
|
|
150
|
+
and ≥ 1.0 bits of failure-stage entropy hides from the model-facing
|
|
151
|
+
catalog.
|
|
152
|
+
|
|
153
|
+
Repair rows do not produce proposals. They are already guarded compatibility
|
|
154
|
+
aliases from a spilled key or action spelling to its canonical declaration.
|
|
155
|
+
An alias hit proves the compatibility map is useful, not that the alias should
|
|
156
|
+
replace the canonical public name. `/fabric repairs` shows the mappings and
|
|
157
|
+
`/fabric entropy` reports their count and hits separately.
|
|
158
|
+
|
|
159
|
+
`applyProposalsToSurface` applies the mechanical subset (enum-tighten and
|
|
160
|
+
noise-quarantine) as a pure surface rewrite. Declare-enum, overload-split, and
|
|
161
|
+
sequence-fuse stay review-only.
|
|
162
|
+
|
|
163
|
+
## The gate (ratchet)
|
|
164
|
+
|
|
165
|
+
`evaluateGate(before, after)` passes only when the compiled surface does not
|
|
166
|
+
increase the score. `compileEntropySurface` adds the second half of the
|
|
167
|
+
contract: replay preservation. Every successful call to a ref the compile
|
|
168
|
+
touched must still parse against the candidate surface, checked with the
|
|
169
|
+
same TypeBox validation the registry's validate stage runs. When a
|
|
170
|
+
touched ref has verbatim audit calls, they are the replay corpus: trace
|
|
171
|
+
V1 projects values away per ref, so projected trace args cannot judge a
|
|
172
|
+
candidate. Audits the declared surface already rejected are not
|
|
173
|
+
protected, because those calls never executed. The compile step
|
|
174
|
+
is measure → propose → apply → re-measure → gate; a gate failure keeps the
|
|
175
|
+
old surface and records the rejection. Monotonicity and preservation are
|
|
176
|
+
measured, never argued. A converged surface stops proposing, which the
|
|
177
|
+
certification proves by requiring an empty second round.
|
|
178
|
+
|
|
179
|
+
The autonomous loop applies only the mechanically safe kinds
|
|
180
|
+
(`enum-tighten` and `noise-quarantine`), and only beneath a domain the
|
|
181
|
+
declared schema already bounds. `overload-split` and `sequence-fuse` author
|
|
182
|
+
new composite definitions, while `declare-enum` requires explicit author
|
|
183
|
+
intent, so all three stay surfaced for review and never auto-apply. Review
|
|
184
|
+
notifications describe the suggestions in plain language and emit each
|
|
185
|
+
distinct suggestion set once per session. Evidence
|
|
186
|
+
counts changing underneath the same suggestion do not repeat it; a changed
|
|
187
|
+
vocabulary, split, or sequence does.
|
|
188
|
+
|
|
189
|
+
## The compile loop
|
|
190
|
+
|
|
191
|
+
The reducer is autonomous, mirroring the repair loop: no command, no
|
|
192
|
+
approval, machine-checked bounds replace review. Every turn that invoked
|
|
193
|
+
`fabric_exec` may have produced new action evidence, so at `turn_end` Fabric
|
|
194
|
+
enqueues a background compile and returns the hook immediately. A 250 ms grace
|
|
195
|
+
period lets OMP finish appending the turn; triggers that arrive during a compile
|
|
196
|
+
coalesce into one follow-up using the newest context. The worker reads the live
|
|
197
|
+
session window, snapshots the declared surface through the discovery path, and
|
|
198
|
+
runs measure → propose → apply → gate against it. Directory discovery, stat,
|
|
199
|
+
JSONL scanning, lock waits, and atomic persistence use asynchronous I/O;
|
|
200
|
+
scoring, safety replay, evidence hashing, and observation pooling yield in fixed deterministic chunks. Session
|
|
201
|
+
files stream line by line with bounded concurrency. A bounded metadata-keyed
|
|
202
|
+
cache reuses unchanged evidence; when the active JSONL grows, the scanner reads
|
|
203
|
+
only the appended byte range and carries its model-attribution cursor forward.
|
|
204
|
+
Replacement, truncation, or an incomplete trailing record falls back safely.
|
|
205
|
+
Large logs therefore no longer impose one whole-window synchronous read/parse
|
|
206
|
+
stall on every turn, and a lock held by another OMP
|
|
207
|
+
process no longer blocks TUI timers while compilation proceeds.
|
|
208
|
+
|
|
209
|
+
The window is machine-wide, covering the newest sessions across every project
|
|
210
|
+
under the agent dir, so evidence breadth matches enforcement breadth: the
|
|
211
|
+
artifact governs the whole machine, so it learns from the whole machine. The
|
|
212
|
+
current project's newest session is always included so the live session that
|
|
213
|
+
produced this turn's evidence is never crowded out. The snapshot keeps
|
|
214
|
+
quarantined refs visible because digest proofs and artifact carry-forward read
|
|
215
|
+
the declared schema; the model-facing catalog keeps hiding them. Session
|
|
216
|
+
shutdown awaits the queued final compile for durability, but all of that work
|
|
217
|
+
remains cooperative with the event loop.
|
|
218
|
+
|
|
219
|
+
A notification appears only when a newly persisted artifact changes the live
|
|
220
|
+
surface. It starts with `background optimization complete`, includes elapsed
|
|
221
|
+
work time, names up to three concrete targets and values, prints enough decimal
|
|
222
|
+
places to distinguish the before/after scores (with an explicit signed delta),
|
|
223
|
+
states that lower is better, and says that the safety checks passed. An equal
|
|
224
|
+
score is labeled `entropy score unchanged`. Review suggestions point to
|
|
225
|
+
`/fabric entropy`; internal proposal-kind jargon stays out of user-facing
|
|
226
|
+
notices.
|
|
227
|
+
|
|
228
|
+
Value observations pool machine-wide with exact per-session deltas:
|
|
229
|
+
`<agent dir>/fabric/entropy/observation-pool.json` accumulates per-value
|
|
230
|
+
counts across every window the compiler reads, so a sparse closed domain
|
|
231
|
+
(a parameter used once or twice per session) still reaches the ≥ 8
|
|
232
|
+
observation threshold without widening the gate-local window. A session
|
|
233
|
+
contributes exactly once per content: unchanged files skip by digest,
|
|
234
|
+
growing files contribute only their delta, and evicted sessions bake with
|
|
235
|
+
their digest remembered, so no evidence can inflate by re-reading. The
|
|
236
|
+
pool is bounded (16 tracked values per parameter, above the 8-value
|
|
237
|
+
eligibility guard, so an overflowed domain stays provably open) and is
|
|
238
|
+
pure derived evidence: damage surfaces and blocks the merge, never
|
|
239
|
+
silently rebuilds.
|
|
240
|
+
|
|
241
|
+
A passing compile persists the compiled surface to
|
|
242
|
+
`<agent dir>/fabric/entropy/compiled.json` beside the repair table: overlay
|
|
243
|
+
entries and quarantines, the applied-proposal ledger, the gate record, and
|
|
244
|
+
the evidence digest. The artifact is clock-free, so identical evidence
|
|
245
|
+
compiles to identical bytes and saving them is a no-op. The runtime loads it at session start, a passing compile
|
|
246
|
+
activates the new artifact immediately, and enforcement is live:
|
|
247
|
+
|
|
248
|
+
- the compiled schema overlays the declared schema at the registry's prepare
|
|
249
|
+
and validate stages, so enum-tightened parameters reject off-modal
|
|
250
|
+
values;
|
|
251
|
+
- quarantined refs resolve as unknown actions and disappear from the
|
|
252
|
+
model-facing catalog, exactly like retired actions;
|
|
253
|
+
- every consult re-proves the recorded base digest against the live declared
|
|
254
|
+
schema, so a surface that changed underneath a compile drops its overlay
|
|
255
|
+
and never mis-enforces.
|
|
256
|
+
|
|
257
|
+
Failure modes stay visible, never silent: a gate rejection keeps the old
|
|
258
|
+
surface and notifies once per distinct reason set; a damaged
|
|
259
|
+
`compiled.json` surfaces in `/fabric entropy`, blocks compiles from
|
|
260
|
+
overwriting it, and keeps enforcement off. `entropy.compile: false` in the
|
|
261
|
+
Fabric config disables the loop and the enforcement entirely.
|
|
262
|
+
|
|
263
|
+
## On-demand measurement
|
|
264
|
+
|
|
265
|
+
Session JSONL is the source of truth, so nothing is recorded. `/fabric
|
|
266
|
+
entropy` asynchronously discovers the newest machine sessions (window of 8
|
|
267
|
+
files total, newest first by mtime, spanning every project under the agent dir
|
|
268
|
+
with the current project's newest session guaranteed), streams each file
|
|
269
|
+
against the live surface snapshot, and reports the latest session's score plus
|
|
270
|
+
the least-squares slope across the window's session scores
|
|
271
|
+
(`trendFromScores`). The command shares the bounded evidence cache with the
|
|
272
|
+
background compiler. Lines without a trace envelope are skipped by a cheap
|
|
273
|
+
substring filter before parsing. The repair table, the compiled entropy
|
|
274
|
+
surface, and the machine-wide observation pool remain the only durable derived
|
|
275
|
+
artifacts; only the first two change runtime behavior, the pool only moves
|
|
276
|
+
thresholds.
|
|
277
|
+
|
|
278
|
+
## Commands and certification
|
|
279
|
+
|
|
280
|
+
```text
|
|
281
|
+
/fabric entropy # live surface freedom + observed session entropy trend
|
|
282
|
+
/fabric entropy export [path] # write the live surface snapshot (default <agent dir>/fabric/entropy/surface.json)
|
|
283
|
+
/fabric entropy export-artifact [path] # write the compiled artifact (default <agent dir>/fabric/entropy/artifact.json)
|
|
284
|
+
/fabric entropy import <path> # merge a peer artifact (digest-proven entries only)
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Repo-side only (development and CI; these scripts are not part of the
|
|
288
|
+
installed package):
|
|
289
|
+
|
|
290
|
+
```text
|
|
291
|
+
bun run certify:entropy # offline fixtures, exact math, ratchet proof, ingestion
|
|
292
|
+
bun run certify:entropy --sessions <dir> --surface <snap> # measure an arbitrary session corpus
|
|
293
|
+
bun run certify:entropy --sessions <dir> --surface <snap> --trial # also run the held-out trial
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
`/fabric entropy` measures on demand: the newest machine sessions are read
|
|
297
|
+
from the session logs (all projects; `--project` scopes to the current
|
|
298
|
+
project's window), measured against the effective surface (live plus
|
|
299
|
+
the compiled overlay), and the trend is the per-session slope; the display
|
|
300
|
+
carries a `compiled:` line with the artifact's applied proposals and last
|
|
301
|
+
gate outcome, and a `review:` line listing the signals the compiler declined
|
|
302
|
+
to apply (opted-in enum vocabularies, overload splits, and high-level
|
|
303
|
+
sequence fusions), derived read-only from the current window and the
|
|
304
|
+
observation pool. Repair rows appear separately as aliases; they are already
|
|
305
|
+
active compatibility mappings and are not review suggestions. Gate rejections
|
|
306
|
+
are silent by design: the ratchet kept the old surface, and the display shows
|
|
307
|
+
the compiled state on demand. `/fabric entropy export [path]` snapshots the
|
|
308
|
+
live registry through the discovery path (read-only, authorization-free),
|
|
309
|
+
defaulting to `<agent dir>/fabric/entropy/surface.json` beside the repair table, as
|
|
310
|
+
`{ version: 1, actions: [{ ref, inputSchema }] }`, sorted by ref so it
|
|
311
|
+
hashes stably. Pass an exported snapshot with `--surface` to measure a
|
|
312
|
+
copied corpus against the surface it ran on; the report then carries the
|
|
313
|
+
surface hash as its catalog digest, so scores compare like against like.
|
|
314
|
+
|
|
315
|
+
## Federation
|
|
316
|
+
|
|
317
|
+
The compiled artifact is the shareable unit of improvement:
|
|
318
|
+
`/fabric entropy export-artifact [path]` writes the machine's compiled
|
|
319
|
+
surface, and `/fabric entropy import <path>` merges a peer's artifact into
|
|
320
|
+
the local one. Merging is digest-proven, never trusted: an incoming entry
|
|
321
|
+
earns a slot only while its recorded base digest matches the live declared
|
|
322
|
+
schema, and only where the local artifact has nothing to say about that ref
|
|
323
|
+
(conflicts skip; local wins). Unproven entries are dropped and counted in
|
|
324
|
+
the import notification. The applied ledgers union by identity, local
|
|
325
|
+
first, capped at the store's maximum. A merged artifact saves through the
|
|
326
|
+
locked store and activates immediately when compiles are enabled, and every
|
|
327
|
+
consult keeps re-proving entries against the live schema, so an import can
|
|
328
|
+
tighten the local surface but never reshape it. One machine's head start
|
|
329
|
+
becomes every machine's.
|
|
330
|
+
|
|
331
|
+
## Held-out trials
|
|
332
|
+
|
|
333
|
+
The trial is the falsifiable half of the compiler: with `--trial` (plus
|
|
334
|
+
`--sessions` and `--surface`), every recorded call in the corpus replays
|
|
335
|
+
against both the declared surface and the compiled artifact (`--artifact
|
|
336
|
+
<path>` overrides the agent dir's `compiled.json`), and each divergence is
|
|
337
|
+
classified deterministically. Calls the declared schema already rejected
|
|
338
|
+
credit nothing. Refs with verbatim audit calls replay from the audit
|
|
339
|
+
arguments, never the projected trace args; audits record executed calls
|
|
340
|
+
without outcomes, so a compiled rejection of an audited call counts as a
|
|
341
|
+
tightening cost, never a win. The falsifier stays pessimistic where the
|
|
342
|
+
record is silent. Succeeded calls the compiled schema would reject count as
|
|
343
|
+
tightening costs: the compile overfit its window, and the certification
|
|
344
|
+
fails on any of them, because the in-loop replay gate promised exactly
|
|
345
|
+
that. Calls that failed anyway count as wins when the artifact would have
|
|
346
|
+
rejected them: a cheap typed rejection replaces an expensive failure. A
|
|
347
|
+
quarantined ref's succeeded calls count as quarantine costs and are
|
|
348
|
+
reported without failing, because retiring a ref that once succeeded is
|
|
349
|
+
what a quarantine is allowed to do. The report carries the verdict
|
|
350
|
+
(`clean`, `costly`, or `no-evidence`), both window scores, and the
|
|
351
|
+
per-ref divergence counts.
|
|
352
|
+
|
|
353
|
+
The certification harness exits nonzero on any failed check, mirroring
|
|
354
|
+
`certify:context`: determinism (double-run hash equality), exact metric math
|
|
355
|
+
on fixed corpora, the full ratchet loop with convergence, the compile loop
|
|
356
|
+
with a gate-rejected round and a converged second pass, surface-apply
|
|
357
|
+
purity, synthetic session-JSONL ingestion, and audit-derived value
|
|
358
|
+
observations. The `Entropy` GitHub workflow runs the certification on every
|
|
359
|
+
push to `main` and weekly, uploading the JSON report as an artifact; a red
|
|
360
|
+
certification fails the build, so the metric and ratchet stay verified per
|
|
361
|
+
commit.
|
|
362
|
+
|
|
363
|
+
## Determinism contract
|
|
364
|
+
|
|
365
|
+
- Fixed canonicalization, fixed thresholds, fixed weights; changes bump
|
|
366
|
+
`ENTROPY_METRIC_VERSION` so ledger trends never mix formulas.
|
|
367
|
+
- No clocks, randomness, or model calls inside measured values.
|
|
368
|
+
- Only typed records are consumed; prose is never classified, the same
|
|
369
|
+
discipline as [schema enforcement](schema-enforcement.md).
|
|
370
|
+
- Metric v2 adds `byModel` attribution; every v1 weight and formula is
|
|
371
|
+
unchanged.
|
|
372
|
+
- The report hashes stably (`entropyReportHash`), so per-commit scores are
|
|
373
|
+
bisectable.
|
|
374
|
+
|
|
375
|
+
## Limitations
|
|
376
|
+
|
|
377
|
+
- Trace V1 projects arguments per ref (grep patterns, edit contents, and
|
|
378
|
+
external arguments are dropped), so shape signatures see the projected
|
|
379
|
+
key sets. Value-level passes read the verbatim audits through
|
|
380
|
+
`entropyValueObservationsFromSessionJsonl`, which keeps enum-tighten
|
|
381
|
+
working for value-dropped parameters as long as the session record (or an
|
|
382
|
+
exported corpus) travels with the measurement.
|
|
383
|
+
- The gate proves score monotonicity on the retained corpus, not equivalence
|
|
384
|
+
of future behavior. Quarantine preconditions (more failures than
|
|
385
|
+
successes) carry the replay-safety argument for retired refs.
|
|
386
|
+
- Flow entropy groups executions by the persisted first workflow phase (or
|
|
387
|
+
`(none)`), which is a coarse task key.
|
|
388
|
+
- The on-demand trend covers the newest machine sessions only (mtime
|
|
389
|
+
ordered, machine-wide window of 8): sessions the user prunes leave the
|
|
390
|
+
trend, and the slope is only as strong as the window. Widening the corpus
|
|
391
|
+
scope shifts measured scores, so certification baselines recorded against
|
|
392
|
+
a per-project corpus must be re-recorded once against the machine window.
|
|
393
|
+
- The compile trigger is per-turn, but pooled observations outlive the
|
|
394
|
+
window: evidence stays eligible until the schema beneath it changes. The
|
|
395
|
+
gate and the replay stay scoped to the current window, so a pooled
|
|
396
|
+
proposal still has to keep every recorded call parsing.
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Interface & commands
|
|
2
|
+
|
|
3
|
+
Fabric builds its UI on the public `pi-code-previews` cooperative shell and on a general-purpose, theme-aware activity surface. You do not need to install `pi-code-previews` separately.
|
|
4
|
+
|
|
5
|
+
## Code previews
|
|
6
|
+
|
|
7
|
+
`fabric_exec` inherits the user's border/background mode, collapsed-result behavior, error styling, and tool-call timing. It does not take ownership of OMP's built-in tool renderers. Its renderer adds a numbered TypeScript preview, live phase and call activity, and compact phase and nested-call summaries. Preview settings live in the unified Fabric configuration: the `codePreview` section of `<active OMP agent dir>/fabric.json` (global) or `.omp/fabric.json` (trusted project). You can edit them live under `/fabric settings` → **Code previews**. Fabric no longer reads the standalone `code-previews.json` file or the `codePreview` keys in OMP settings. `codePreview.shikiTheme` defaults to `"auto"`. That value tracks OMP's resolved light/dark variant (GitHub Light on light terminals, Dark+ on dark) as OMP auto-switches. A `"<light>/<dark>"` value pins both variants. Any other value fixes one shiki theme.
|
|
8
|
+
|
|
9
|
+
Nested `omp.read`, `omp.bash`, `omp.grep`, `omp.find`, `omp.ls`, `omp.write`, and `omp.edit` calls share the preview settings and presentation vocabulary of `pi-code-previews`: offset-aware read gutters, syntax and secret warnings, grouped and highlighted grep matches, iconized path trees, bash warnings and output metadata, and proposed or applied edit and overwrite diffs with compact context, line gutters, full-row backgrounds, and word-level emphasis. Large inputs fall back to escaped plain text with an explicit notice. The same layer renders in-memory Activity call details. Fabric keeps rich call data only in current-session renderer and activity state. Durable traces keep their existing bounded confidentiality projection.
|
|
10
|
+
|
|
11
|
+
Fabric keeps its orchestration-specific behavior around those previews. Multi-call rows stay compact, and live write composition with phase/call progress stays visible during the run. Agent and actor audits can expose their current child tools directly in the parent card, with owner, runner, and run metadata. One execution-wide throttle coalesces parallel nested-call updates before they reach OMP, and continuous streams are not starved. Long ANSI rows are bounded without clearing the enclosing tool background. The widget lease plus result-to-source row transfer keep completion height stable. The highlighter initializes lazily and falls back to plain text until it is ready. When OMP switches between its light and dark variants, the highlighter swaps themes live. Collapsed previews use the configured expand keybinding, for example `Ctrl-O`.
|
|
12
|
+
|
|
13
|
+
## Focused conversations
|
|
14
|
+
|
|
15
|
+
Press **Ctrl+Shift+A** or run **`/fabric chat`** to open a full-screen conversation without going through the dashboard. `/fabric chat <id-or-name>` opens a specific agent or actor; Tab completes exact participant IDs, including nested agents. Ambiguous names or ID prefixes are rejected; use an exact participant ID to select the intended target. In the dashboard, **Shift+C** opens the selected participant.
|
|
16
|
+
|
|
17
|
+
The first implicit open prefers a currently active child over stale history; later opens remember a valid selection. The view keeps a lossless native OMP transcript and a multiline OMP editor together, independently of the dashboard’s bounded transcript projection. It uses OMP’s real user, assistant, thinking, tool, skill, custom-message, and summary components, including registered tool renderers such as `fabric_exec`, with complete tool details and native expansion behavior. User backgrounds and editor rules span the terminal width. Fabric reads only `terminal.showImages` and `hideThinkingBlock` from OMP’s global settings plus a trusted project layer; untrusted sessions use an in-memory OMP instance with schema defaults (`terminal.showImages: true`, `hideThinkingBlock: false`). Removed appearance keys keep explicit compatibility defaults: `editorPaddingX: 0`, `outputPad: 0`, and `codeBlockIndent: " "`. Markdown and tool previews use the configured Shiki theme. The footer below the editor shows the selected participant’s directory, known branch, model, thinking level, and run-scoped token/cache/cost statistics. Unknown usage and context occupancy are marked explicitly; Main’s statistics are never substituted. Breadcrumbs preserve `Main → child → grandchild` lineage. Main and other participants keep running: opening, navigating, and closing the view never calls OMP’s session-replacement API or starts another worker. Selecting Main restores the original OMP conversation, including its editor. Child drafts and scroll positions survive switching targets and reopening the view for the lifetime of this OMP session.
|
|
18
|
+
|
|
19
|
+
| Control | Action |
|
|
20
|
+
| --- | --- |
|
|
21
|
+
| Enter | Send a steering message to the selected live participant |
|
|
22
|
+
| Follow-up key (Alt+Enter by default; Ctrl+Q on Windows) | Queue a follow-up for the selected participant |
|
|
23
|
+
| Shift+Enter | Insert a newline |
|
|
24
|
+
| Ctrl+N or `/agents` | Open the searchable participant picker |
|
|
25
|
+
| Alt+Left / Alt+Right at an empty editor | Navigate to parent / first child |
|
|
26
|
+
| Ctrl+Tab / Ctrl+Shift+Tab | Cycle conversations |
|
|
27
|
+
| Mouse wheel / configured OMP scroll keys | Scroll locally and fetch older history; prompt, line, and page jumps work in both TUI modes |
|
|
28
|
+
| End | Follow the latest output |
|
|
29
|
+
| OMP's tool-expand key (Ctrl+O by default) | Toggle tool details |
|
|
30
|
+
| `/stop` | Explicitly stop the selected participant after confirmation |
|
|
31
|
+
| Esc or `/back` | Return to Main without interrupting any agent |
|
|
32
|
+
|
|
33
|
+
Direct actor messages appear as normal user text, with paired RPC start/end events shown once. Session branches and compaction remain authoritative over overlapping RPC history. Native message errors remain visible. Use `/fabric log <id>` to inspect worker startup diagnostics. The widget advertises `Ctrl+Shift+A chat` only while an agent or actor is active, and removes the hint when work settles. The command and shortcut remain available for idle and historical conversations.
|
|
34
|
+
|
|
35
|
+
Pending messages use OMP’s native labels and spacing. When a compatible loaded `pi-queue-steer` provides `queue-steer:conversation-queue:request:v1`, the view uses its actual per-target queue, execution-outline widget, and inline editor. A stopped actor’s Alt+Enter input is parked for editing or explicit Enter release. Accepted sends remain visible until native delivery is observed; they cannot be retracted or edited locally. Queues stay isolated from Main and other targets, survive preview close/reopen within the session, and are cleared on session reset. Older queue-extension releases without the bridge use the native display.
|
|
36
|
+
|
|
37
|
+
Messages use the same ownership-aware route as `agents.steer` / `agents.followUp`. A failed delivery keeps the draft. Capability and lifecycle checks run again at dispatch, so a child that finishes while you type cannot silently receive a message in Main or be respawned. Persistent actors accept subsequent mailbox messages, including while idle. Finished one-shot runs remain readable but cannot continue; Veda one-shot runs do not support mid-run messaging. A remote participant without an accessible transcript shows an explicit transcript-unavailable notice.
|
|
38
|
+
|
|
39
|
+
This is a focused view over the existing worker, not a second native OMP runtime. Other OMP slash commands, shell shortcuts (`!`), and child extension dialogs are not routed through this view. Unsupported commands are rejected visibly, never forwarded to Main. Native image attachment and full command/extension parity require a separate worker attachment protocol. The existing dashboard retains model, actor-policy, and configuration controls.
|
|
40
|
+
|
|
41
|
+
## Activity surface
|
|
42
|
+
|
|
43
|
+
Fabric ships a general-purpose, theme-aware activity surface that works with any agent setup:
|
|
44
|
+
|
|
45
|
+
- A compact widget above the chat (like `pi-supervisor`) follows the current phase in its header. It lists active and completed one-shot agents plus active actor workers. Their recent or running child tools nest beneath the owner, with compact edit/write change lines and owner metadata. Extensions, custom items, and shared tasks/state stay summarized by the header or appear in the dashboard, so they never occupy widget rows. The widget retains completed agent rows and a per-run high-water height, which stops tool finalization from pulling the chat upward. It resets that lease when a newer run starts, and the latest completed summary stays visible until that newer run replaces it. Snapshot bounds first preserve every active local agent, then local history, and only then admit remote project records. When a collapsed Fabric result becomes shorter at completion, the card reveals a bounded number of otherwise hidden TypeScript source lines. Those lines replace the removed rows without blank padding, and any residual deficit shrinks naturally.
|
|
46
|
+
- `/fabric` (or `/fabric dashboard`) opens a responsive interactive overlay with two views: **Activity** and a unified **Topology**. Press `1` for Activity and `2` for Topology.
|
|
47
|
+
- **Activity** lays out the workflow phase sidebar on the left and the selected phase's activity on the right. The user-facing OMP agent is always present as **Main**, including when no Fabric child exists and regardless of the status filter. Main remains an actionable queue target. The right pane orders entities under type headings for agents, actors, tools, extensions, tasks, custom items, and shared state, with a blank row between groups. The selectable order matches the rendered group order. One-shot agents stay stable in creation order. Attention-priority work keeps the default focus, so Main does not steal it.
|
|
48
|
+
- **Topology** merges the selected retained run with the live project mesh in one graph rooted at **Main**. It deduplicates agents observed through both run and participant data, and it separates execution membership from coordination infrastructure:
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
Main
|
|
52
|
+
├─ Participants
|
|
53
|
+
│ ├─ Sessions peers and remote root OMP sessions
|
|
54
|
+
│ ├─ Agents local, remote, and recursively owned agents
|
|
55
|
+
│ └─ Actors local and remote persistent actors
|
|
56
|
+
└─ Mesh
|
|
57
|
+
├─ Topics
|
|
58
|
+
│ ├─ Fabric fabric.state, fabric.schema, and fabric.<family>.*
|
|
59
|
+
│ └─ Project arbitrary topics grouped by their first namespace
|
|
60
|
+
└─ State
|
|
61
|
+
├─ World state
|
|
62
|
+
│ ├─ current
|
|
63
|
+
│ ├─ goal
|
|
64
|
+
│ └─ Complexity
|
|
65
|
+
│ └─ <project directories> → <file ledger>
|
|
66
|
+
├─ Schema
|
|
67
|
+
│ ├─ workspace
|
|
68
|
+
│ ├─ Hypotheses → <id>
|
|
69
|
+
│ ├─ Certificates → <token hash>
|
|
70
|
+
│ └─ <future schema namespaces>
|
|
71
|
+
└─ Project state
|
|
72
|
+
└─ <key directories> → <entry>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Explicit ownership stays intact below those categories. Recursive agents nest under their parents. Actor workers remain under their actor, and remote descendants keep their place under the remote root. State ownership uses a mesh relationship. Owned state remains in the State tree. A state entry that identifies a project-relative file (including every `state/complexity/<file>` ledger) exposes a bounded, line-numbered Shiki source preview in both the topology inspector and full dashboard detail. The preview resolver rejects absolute paths, traversal, symlink escapes, non-files, and binary content. It caches by real path, mtime, and size. Internal membership and control keys (`topology/*`, legacy `sessions/*`, and actor registry `actors/*`) are filtered from shared state, because their canonical entities already appear under Participants. Global actor templates are absent because they are not running project nodes.
|
|
76
|
+
- Topic names accept `.`, `:`, and `/`. A `fabric.*` topic uses the Fabric branch. Every other name uses Project topics, grouped by its first namespace. Built-in host traffic includes `fabric.actor.*`, `fabric.control.*`, `fabric.participant.lifecycle`, `fabric.steer`, and `fabric.compact`. System-only topics stay suppressed as standalone nodes unless someone explicitly subscribes to them, and their traffic can still appear in the bounded event feed. State keys preserve `/` hierarchy. The known durable families are `state/current`, `state/goal`, `state/complexity/<file>`, `schema/workspace`, `schema/hypothesis/<id>`, and `schema/certificate/<hash>`. Every other visible mesh key falls back to Project state without losing its directory structure.
|
|
77
|
+
- The graph renders status-coloured node shapes, orthogonal connectors, animated traffic, an optional fixed-width selected-node inspector, and directional off-canvas summaries. Traffic follows the same structural branches through the source/target lowest common ancestor. It never draws direct lines through unrelated subtrees. A large or deeply recursive graph opens around the attention-priority node. When you move between nodes, a damped spring camera retargets smoothly and the viewport does not snap. Live and replay animation drives renders only while the dashboard is open. Narrow terminals keep the centred graph and drop the inspector.
|
|
78
|
+
- Retained-run selection works as a lens over the same topology. Pressing `[` or `]` changes the highlighted run and its phase context, and live actors and remote project participants stay visible. Route records remain selectable, and they aggregate repeated traffic by source, target, topic, and kind. The recent event feed is a bounded live window. It does not replace audit history.
|
|
79
|
+
- **Inspection and control** work the same way in both views. Agent detail includes Markdown-rendered tasks and results, highlighted YAML values, model, current tool, usage, worktree, and attach metadata. Tool-call details show highlighted command, file, and edit inputs, with Markdown or YAML outputs. Persisted bash calls keep their command text. Space peeks at an agent or actor transcript. `t` toggles between summary and transcript detail. The initial bounded tail is paged directly from OMP RPC, OMP session, and Claude stream-JSON logs. At the loaded top, `k` or Up fetches one older page, `g` loads and jumps to the true beginning, and `G` jumps to the growing tail and resumes follow mode. Assistant text uses native Markdown. Tool calls retain structured arguments and results, so they get the same read, bash, search, edit, and write previews as the parent card. Credential and token redaction applies before rendering. You can steer Main and active one-shot agents or queue them a follow-up, and one-shot agents can also be stopped safely. Persistent actors accept `s` mailbox messages. Where configured, they expose model (`m`), thinking (`e`), the complete session-bound OMP host-event catalog (`v`), instructions (`i`), mailbox clearing (`c`), and export (`x`). Remote participants expose only their advertised capabilities. Control resolves their owner and reports success after acknowledgement. From Activity, global templates stay available for import (`p`), instruction editing (`i`), and deletion (`d`).
|
|
80
|
+
- `/fabric settings` opens an inline settings view that mirrors OMP core's `/settings`, with top and bottom borders, fuzzy search, and section submenus, and it writes changes to `fabric.json`. Trusted projects default to `<project>/.omp/fabric.json`. Pressing **Ctrl+G** anywhere in the view switches both the displayed configuration layer and the save destination between project and global `<active OMP agent dir>/fabric.json`. The global view keeps global edits visible even when a project override remains effective, and its scope banner states that precedence explicitly. Untrusted sessions stay global-only. In RPC hosts, the same hierarchy is exposed through recursive select/input dialogs; a root save-scope action replaces the Ctrl+G shortcut, while Back returns one section at a time. Full code mode, capture, executor, approvals, and UI changes apply immediately when they change the effective configuration. Mesh, agent, retention, and MCP changes persist and take effect on the next `/fabric reload`. The UI section includes **Tool display** (`full` by default or `compact`), a default-on **Agent tool preview** toggle, and a global **Update debounce** (`0`/Off through `1000ms`, default `100ms`); all apply immediately. Compact display makes the declared Fabric display name/description the card header, hides outer TypeScript at every expansion level, and retains bounded nested tool details. The Agents section selects the default runner, keeps independent OMP and runtime-enumerated Claude model pickers, and exposes free-text Veda backend, persona, and model fields for the Veda runner. List editors for `agents.defaultTools` and `capture.keepVisible` toggle known tools on and off. The `keepVisible` candidates include `fabric_exec` plus every captured extension tool.
|
|
81
|
+
|
|
82
|
+
### Keybindings
|
|
83
|
+
|
|
84
|
+
- In `/fabric settings`, **Ctrl+G** switches the displayed values and the save destination between project overrides and global defaults. Untrusted sessions remain global-only.
|
|
85
|
+
- Press `1` for Activity and `2` for the unified Topology. In Topology, arrow keys move spatially between graph nodes, `h`/`l` mirror left and right, `j`/`k` follow deterministic entity order, and Tab advances to the next node. In Activity, arrows or Tab switch panes and select rows. `g` and `G` jump to the first and last selectable entity, Enter inspects, `f` cycles status filters, `[`/`]` change the retained-run lens, and `?` opens contextual help.
|
|
86
|
+
- On Main, `s` sends a user-authored message or steer, and `u` queues a user-authored follow-up through OMP's host queue.
|
|
87
|
+
- On agents and actors, Space peeks at the transcript and `t` toggles transcript/summary detail. Inside a transcript, `g` loads and jumps to the true top, and `G` jumps to the bottom and follows new output. On active one-shot agents, `s` opens a steer editor, `u` queues a follow-up, and pressing `x` twice stops the run. Remote participants expose capability-aware, owner-acknowledged `s`, `u`, and `x` controls.
|
|
88
|
+
- On actors, `s` queues a serial mailbox message. Lowercase `m` and `e` change this OMP session's model and thinking. Uppercase `M` and `E` change the shared project defaults and appear only on the owner. Actor detail shows both layers, the effective values, and the live owner.
|
|
89
|
+
- Owner views also expose `v` for host events, `i` for instructions, and other shared actor settings. Passive views hide those controls but keep session bindings, messaging, reads, and `x` export. `p` imports a global template, `d` deletes one, and Esc backs out or closes.
|
|
90
|
+
|
|
91
|
+
## Data-driven activity
|
|
92
|
+
|
|
93
|
+
The surface is data-driven. Fabric automatically instruments nested provider calls, agents, persistent actors, and task-shaped mesh entries. A workflow can add domain-specific labels and arbitrary progress, and it needs no extension UI code:
|
|
94
|
+
|
|
95
|
+
```ts
|
|
96
|
+
await workflow.configure({ name: "Release train", description: "Build, verify, and publish" });
|
|
97
|
+
await phase("Build", { total: packages.length });
|
|
98
|
+
await workflow.item({
|
|
99
|
+
id: "docs",
|
|
100
|
+
label: "Documentation",
|
|
101
|
+
status: "running",
|
|
102
|
+
completed: 2,
|
|
103
|
+
total: 5,
|
|
104
|
+
});
|
|
105
|
+
await workflow.event({ message: "Canary passed", level: "success" });
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
External Fabric providers can emit structured `context.activity()` updates for an entity, a progress message, or metrics. The TUI stays generic, and a virtual provider can still expose richer live state.
|
|
109
|
+
|
|
110
|
+
```ts
|
|
111
|
+
async invoke(actionName, args, context) {
|
|
112
|
+
context.activity?.({ type: "entity", id: job.id, kind: "custom", name: job.name });
|
|
113
|
+
context.activity?.({ type: "progress", message: "Indexing package 3/12" });
|
|
114
|
+
context.activity?.({ type: "metrics", tokens: 4200, toolCalls: 9 });
|
|
115
|
+
return job.result;
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Commands
|
|
120
|
+
|
|
121
|
+
```text
|
|
122
|
+
/fabric status
|
|
123
|
+
/fabric dashboard
|
|
124
|
+
/fabric chat [participant-id-or-name]
|
|
125
|
+
/fabric settings
|
|
126
|
+
/fabric reload
|
|
127
|
+
/fabric providers
|
|
128
|
+
/fabric captured [query]
|
|
129
|
+
/fabric agents
|
|
130
|
+
/fabric actors
|
|
131
|
+
/fabric messages <actor-id>
|
|
132
|
+
/fabric attach <agent-id>
|
|
133
|
+
/fabric stop <actor-or-agent-id>
|
|
134
|
+
/fabric repairs
|
|
135
|
+
/fabric entropy
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Actor slash commands mirror the [global template API](agents.md#global-actor-templates). `/fabric global` lists templates. `/fabric import <name> [as <new>]` stamps one into the project. `/fabric export <id> [--overwrite]` promotes a project actor. `/fabric log <id>` previews an actor or run transcript, and `/fabric export-log <id> [path]` writes the raw `session.jsonl` plus retained `runs/` to disk.
|
|
139
|
+
|
|
140
|
+
## Headless focused agents
|
|
141
|
+
|
|
142
|
+
OMP already runs one-shot, non-interactive agents with `omp -p` (`--print`), and it reads piped stdin as part of the prompt. A focused agent composes with pipes, cron, git hooks, and CI like a Unix program, and it needs no wrapper:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
git diff | omp -p --no-session --tools read,grep "Review this diff for concrete defects."
|
|
146
|
+
omp -p --no-session --mode json -e <path-to-omp-fabric> "Map the persistence layer."
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
`--no-session` keeps the run ephemeral. `--tools` restricts the tool allowlist. `--mode json` emits a structured event stream for scripting through `| jq`. `-e <omp-fabric>` loads Fabric so the agent can use `fabric_exec`. The process exits non-zero on failure. Run `omp --help` for the full flag list.
|