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,207 @@
|
|
|
1
|
+
# Programmatic compaction
|
|
2
|
+
|
|
3
|
+
A model, skill, or peer can **ask** the host to compact its context at a safe
|
|
4
|
+
boundary. The request also works on a running agent's context.
|
|
5
|
+
|
|
6
|
+
One gated channel carries the request to the host. The host selects the safe
|
|
7
|
+
time. Fabric performs deterministic compaction without another model call,
|
|
8
|
+
which keeps repeated results testable. Each request records a labeled
|
|
9
|
+
**advisory** intent. The host later performs the **committed** context change.
|
|
10
|
+
|
|
11
|
+
## Advisory and committed steps
|
|
12
|
+
|
|
13
|
+
The model runs inside the context that it requests to compact. A direct change
|
|
14
|
+
during the active turn could race with in-flight tool work or unresolved state.
|
|
15
|
+
Fabric records the request through a typed, validated write path. An open status
|
|
16
|
+
path reports its state.
|
|
17
|
+
|
|
18
|
+
1. **Advisory.** `compact.request` (host) or `agents.compact` (child) only
|
|
19
|
+
*records an intent*. The request never touches the context. It is a
|
|
20
|
+
write-risk, schema-validated declaration: "Compact this context with these
|
|
21
|
+
instructions. Reason: <reason>."
|
|
22
|
+
|
|
23
|
+
2. **Committed.** At a boundary it knows to be safe, the host forwards the
|
|
24
|
+
intent to `ExtensionContext.compact()` for the host session, or to the
|
|
25
|
+
child OMP's `compact` RPC frame for a child. The host boundary is
|
|
26
|
+
`agent_end`: the handler awaits OMP's callback completion or error
|
|
27
|
+
before OMP publishes its public settled event. For a child, the worker waits
|
|
28
|
+
for the child's own `agent_end`. It then sends a correlated compact
|
|
29
|
+
request and keeps the RPC channel open until it observes the correlated
|
|
30
|
+
response, which the host sends for an explicit compact. An
|
|
31
|
+
`auto_compaction_end` from the host's automatic pass only records an abort or
|
|
32
|
+
error on the outcome. The worker never sends compact while the child turn is
|
|
33
|
+
active.
|
|
34
|
+
|
|
35
|
+
Exactly one write path leads from intent to action. The model cannot compact
|
|
36
|
+
the running context directly. It can only ask. The controller stores one replaceable
|
|
37
|
+
request. A new request replaces the pending one, so the slot always holds the
|
|
38
|
+
latest instructions.
|
|
39
|
+
|
|
40
|
+
## Compaction properties
|
|
41
|
+
|
|
42
|
+
| Property | Fabric behavior |
|
|
43
|
+
| --- | --- |
|
|
44
|
+
| The context is a cache for the store. | Compaction changes the cache through an explicit, labeled transition. `status()` records the intent and last commit outside the context, where they survive compaction. |
|
|
45
|
+
| Derived views are pure functions of the log. | `CompactStatus` reads the controller's recorded intents and commits. It never reads the compacted context itself. |
|
|
46
|
+
| The host enforces transition boundaries. | The model requests compaction. The host commits at `agent_end`. `maybeCommit` and the `agent_end` handler contain the boundary gate. |
|
|
47
|
+
| A task boundary can carry a compaction request. | The model selects the request time and instructions. The host selects a safe commit time. OMP core keeps its token-threshold trigger. |
|
|
48
|
+
|
|
49
|
+
## API surface
|
|
50
|
+
|
|
51
|
+
### Host session: the `compact` provider
|
|
52
|
+
|
|
53
|
+
The provider is always available, with no config guard. Fabric exposes it
|
|
54
|
+
through `fabric_exec` as `compact.request`, `compact.status`, and
|
|
55
|
+
`compact.cancel`.
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
// Record an advisory intent. Replaces any pending one and returns
|
|
59
|
+
// immediately. The host commits it at the next agent_end boundary.
|
|
60
|
+
await compact.request({
|
|
61
|
+
reason: "the file map and the failing test are the only live state",
|
|
62
|
+
instructions: "Keep the failing test name and the file map; drop the rest.",
|
|
63
|
+
preserve: ["Auth regression is still open", "tests/auth.test.ts"], // optional
|
|
64
|
+
requestedBy: "model", // optional, default "model"
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
// Read the pending intent and the last committed/failed compaction info.
|
|
68
|
+
const status = await compact.status();
|
|
69
|
+
// { pending?: { reason?, instructions?, preserve?, requestedBy, requestedAt },
|
|
70
|
+
// last?: { at, requestedBy, status: "committed"|"cancelled"|"failed",
|
|
71
|
+
// summary?, tokensBefore?, estimatedTokensAfter?, error? } }
|
|
72
|
+
|
|
73
|
+
// Clear a pending intent before the host commits it.
|
|
74
|
+
await compact.cancel();
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Risk classes: `request` is `write` (it mutates host session state). `status`
|
|
78
|
+
and `cancel` are `read`.
|
|
79
|
+
|
|
80
|
+
With only `instructions` present, Fabric forwards it as ordinary OMP
|
|
81
|
+
`customInstructions`. Manual `/compact` text and programmatic requests then
|
|
82
|
+
get the same Fabric rendering. When `preserve` is present, the controller
|
|
83
|
+
encodes `{version: 1, instructions?, preserve}` behind an exact versioned
|
|
84
|
+
prefix plus JSON. The compaction and branch hooks strictly decode that shape
|
|
85
|
+
and render valid bounded values under `[Compaction Request]`. On tree
|
|
86
|
+
navigation, OMP's explicit `replaceInstructions: true` mode delegates to
|
|
87
|
+
OMP/default summarization. Fabric cannot execute an arbitrary replacement
|
|
88
|
+
summarizer prompt, so it produces no typed Fabric branch details in that mode.
|
|
89
|
+
|
|
90
|
+
The prefix is reserved. Malformed JSON or scalars, duplicate decoded protocol
|
|
91
|
+
keys (including escaped aliases), unknown fields or versions, invalid types,
|
|
92
|
+
unpaired UTF-16 surrogates, excessive structure, or exceeded limits return a
|
|
93
|
+
structured decode error and cancel the operation. Fabric never falls back to
|
|
94
|
+
prose for such a payload. A bounded structural parser performs these checks
|
|
95
|
+
before canonicalization, and it never uses regex to recover protocol
|
|
96
|
+
data. Fabric never renders a rejected payload. A context with UI/RPC notification support
|
|
97
|
+
receives a bounded error. Ordinary manual and OMP instructions remain explicit text and
|
|
98
|
+
never gain routing semantics.
|
|
99
|
+
|
|
100
|
+
`compact.request` validates its input with a bounded TypeBox schema before
|
|
101
|
+
argument mapping. Instructions cap at 8192 characters and 8192 UTF-8 bytes.
|
|
102
|
+
`preserve` accepts at most 16 items, and each item caps at 2048 characters and
|
|
103
|
+
2048 UTF-8 bytes. The complete encoded prefix-plus-JSON request must fit
|
|
104
|
+
within 16 KiB. The decoder checks aggregate source bytes before structural
|
|
105
|
+
parsing, then validates duplicate keys, scalars, and surrogate pairing while
|
|
106
|
+
parsing. It checks the preserve count before iterating or canonicalizing
|
|
107
|
+
items. Ordinary manual and OMP instructions remain bounded explicit text and
|
|
108
|
+
never become typed protocol input.
|
|
109
|
+
|
|
110
|
+
#### Commit semantics
|
|
111
|
+
|
|
112
|
+
- The host's `agent_end` handler awaits `maybeCommit(context)`. It never
|
|
113
|
+
runs mid-turn or while a turn is in flight. The returned Promise settles on
|
|
114
|
+
`onComplete`, `onError`, a synchronous startup throw, or a pre-start abort.
|
|
115
|
+
- The call is a no-op when nothing is pending. Reentrant calls share the
|
|
116
|
+
in-flight Promise and never start a second compaction.
|
|
117
|
+
- Fabric accepts a new `request()` during an in-flight commit, and that
|
|
118
|
+
request replaces the pending intent. The in-flight commit proceeds with the
|
|
119
|
+
intent it captured.
|
|
120
|
+
On completion it clears *that* intent by identity, and any newer intent
|
|
121
|
+
waits for the next settled boundary.
|
|
122
|
+
- On OMP's `onComplete`, Fabric clears the intent and `last` records
|
|
123
|
+
`status: "committed"` with the summary and token counts.
|
|
124
|
+
- On OMP's `onError` with `"Compaction cancelled"` or `"Already compacted"`,
|
|
125
|
+
Fabric clears the intent and `last` records `status: "cancelled"` with the
|
|
126
|
+
raw OMP message in `error`. No compaction happened, and the outcome stays
|
|
127
|
+
observable without being silently dropped.
|
|
128
|
+
- On any other error, Fabric clears the intent and `last` records
|
|
129
|
+
`status: "failed"` with the message. A synchronous throw from `compact()`
|
|
130
|
+
itself follows the same failure path.
|
|
131
|
+
|
|
132
|
+
### Agent compaction: `agents.compact`
|
|
133
|
+
|
|
134
|
+
```ts
|
|
135
|
+
const handle = await agents.spawn({
|
|
136
|
+
task: "Audit auth flows.",
|
|
137
|
+
tools: ["read", "grep", "find", "ls"],
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
// Advisory: the worker queues this until the child is fully settled.
|
|
141
|
+
await agents.compact({ id: handle.id, instructions: "Keep the finding list." });
|
|
142
|
+
|
|
143
|
+
return await agents.wait({ id: handle.id });
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
- Fabric appends the request to the same `<runDir>/steer.jsonl` channel as
|
|
147
|
+
`agents.steer`. The orchestrator, or any peer through the mesh relay, can
|
|
148
|
+
request a child compaction without stopping or respawning the child, and the
|
|
149
|
+
child keeps its accumulated context.
|
|
150
|
+
- The worker tails `steer.jsonl` and never forwards compact during an active
|
|
151
|
+
child turn. It waits for `agent_end`, then sends
|
|
152
|
+
`{"id":"...","type":"compact","customInstructions":"..."}`, with the
|
|
153
|
+
instructions field omitted when absent. This matches OMP's RPC `compact` frame.
|
|
154
|
+
- The worker correlates the compact response by `id`. It observes the matching
|
|
155
|
+
compaction lifecycle through `auto_compaction_end`, records queued, in-flight,
|
|
156
|
+
completed, or failed status, and only then closes stdin for one-shot
|
|
157
|
+
shutdown. The worker records a rejected response, an aborted compaction,
|
|
158
|
+
or an `auto_compaction_end.errorMessage` as failed, and the child turn keeps
|
|
159
|
+
running.
|
|
160
|
+
- Multiple requests that wait before the boundary coalesce into one request
|
|
161
|
+
with the latest instructions. Requests that arrive during an in-flight
|
|
162
|
+
compaction merge into one deterministic follow-on request before shutdown.
|
|
163
|
+
- Fabric **rejects Claude-runner children** with a clear error. The official
|
|
164
|
+
Claude Code CLI exposes no compact RPC, so a fresh run is the only way to
|
|
165
|
+
reset a Claude child's context. Compaction is an OMP-runner primitive.
|
|
166
|
+
- Risk class: `agent`.
|
|
167
|
+
|
|
168
|
+
## Audit and observability
|
|
169
|
+
|
|
170
|
+
- **Activity surface**: `compact.request` and `agents.compact` emit
|
|
171
|
+
`context.activity` updates (entity + progress) inside the `fabric_exec` call
|
|
172
|
+
that issued them, following the existing provider pattern. Host commits and
|
|
173
|
+
child enqueues show up in the dashboard and widget.
|
|
174
|
+
- **Mesh**: when the mesh is enabled, the host controller publishes
|
|
175
|
+
best-effort events to the durable `fabric.compact` topic on each transition.
|
|
176
|
+
Recorded intents publish `kind: "requested"`, and settled intents publish
|
|
177
|
+
`kind: "committed" | "cancelled" | "failed"`. OMP's benign
|
|
178
|
+
`"Compaction cancelled"` and `"Already compacted"` outcomes publish with
|
|
179
|
+
`kind: "cancelled"`. Other Fabric participants, such as persistent actors
|
|
180
|
+
and peer sessions, can subscribe to observe compaction transitions.
|
|
181
|
+
Activity-only sessions with the mesh disabled silently skip this step.
|
|
182
|
+
- **Status query**: `compact.status()` gives the context-independent,
|
|
183
|
+
in-memory record of the pending intent and the last commit for the current
|
|
184
|
+
initialized extension session. The record survives compaction itself.
|
|
185
|
+
Extension reload, session replacement, process restart, and shutdown clear
|
|
186
|
+
it.
|
|
187
|
+
|
|
188
|
+
## Configuration
|
|
189
|
+
|
|
190
|
+
None required. Programmatic compaction is a first-principles primitive and
|
|
191
|
+
always available. Fabric defines no `compact` config block. The
|
|
192
|
+
model decides when and how to ask, and the host decides when to commit, so
|
|
193
|
+
safety needs no configuration.
|
|
194
|
+
|
|
195
|
+
## Files
|
|
196
|
+
|
|
197
|
+
| File | Role |
|
|
198
|
+
| --- | --- |
|
|
199
|
+
| `src/core/compact-controller.ts` | Pending-intent controller with `request`, `cancel`, `status`, and `maybeCommit`. Uses a single replaceable slot, typed preserve encoding, an in-flight guard, and a quiet clear on cancelled or already-compacted outcomes. |
|
|
200
|
+
| `src/providers/compact-provider.ts` | Fabric provider that exposes a bounded TypeBox-validated `request` (write, including optional `preserve: string[]`), `status` (read), and `cancel` (read). Registered always, with activity audit. |
|
|
201
|
+
| `src/fabric-state.ts` | Constructs the controller with mesh-publish hooks, registers the provider, and resets on re-init or shutdown. |
|
|
202
|
+
| `src/index.ts` | Invokes `state.compact.maybeCommit(context)` in the existing `agent_end` handler. |
|
|
203
|
+
| `src/agents/types.ts` | Extends `AgentSteerEntry["type"]` with `"compact"` and adds the optional `instructions` field. |
|
|
204
|
+
| `src/agents/manager.ts` | `compact(id, instructions?)` appends a compact entry through the steer channel and rejects Claude-runner children. |
|
|
205
|
+
| `src/worker.ts` | Feeds compact controls into the child boundary coordinator and observes OMP RPC lifecycle events. |
|
|
206
|
+
| `src/agents/compact-control.ts` | Coalesces child requests, waits for `agent_end`, correlates the compact response with `auto_compaction_end`, records the outcome, and gates one-shot stdin close. |
|
|
207
|
+
| `src/providers/agents-provider.ts` | `agents.compact({id, instructions?})` action (risk: agent) with activity audit. |
|
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
# Provider component calculus
|
|
2
|
+
|
|
3
|
+
Component ownership preserves the names and action refs of every non-kernel first-party provider. The component plane then controls provider lifetime through staged publication and rolling replacement.
|
|
4
|
+
|
|
5
|
+
This calculus extends the [component calculus](component-calculus.md). It applies DeepSeek's component and fiber rules to provider namespaces that `fabric_exec` can call.
|
|
6
|
+
|
|
7
|
+
## 1. Objects
|
|
8
|
+
|
|
9
|
+
Let $N$ be the finite set of provider names. Let $A_n$ be the action names under $n \in N$. A public ref is the pair $n.a$, where $a \in A_n$.
|
|
10
|
+
|
|
11
|
+
### Definition 1. Provider
|
|
12
|
+
|
|
13
|
+
A provider is the tuple
|
|
14
|
+
|
|
15
|
+
$$
|
|
16
|
+
P = \langle n, \delta, D, I, Q \rangle
|
|
17
|
+
$$
|
|
18
|
+
|
|
19
|
+
with these fields:
|
|
20
|
+
|
|
21
|
+
- $n \in N$ is the public namespace.
|
|
22
|
+
- $\delta$ is the public provider description.
|
|
23
|
+
- $D : A_n \rightharpoonup \mathrm{Descriptor}$ maps each action to its public descriptor.
|
|
24
|
+
- $I : A_n \times \mathrm{Args} \times \mathrm{Invocation} \to \mathrm{Result}$ invokes an action.
|
|
25
|
+
- $Q$ closes provider-owned resources.
|
|
26
|
+
|
|
27
|
+
A descriptor contains its description, input schema, output schema, risk, namespace metadata, and effect metadata. Write $H(D(a))$ for its stable descriptor hash.
|
|
28
|
+
|
|
29
|
+
### Definition 2. Provider equivalence
|
|
30
|
+
|
|
31
|
+
Two provider instances are semantically equivalent, written $P \simeq_p P'$, when they satisfy these conditions:
|
|
32
|
+
|
|
33
|
+
$$
|
|
34
|
+
\begin{aligned}
|
|
35
|
+
&\mathrm{name}(P) = \mathrm{name}(P') \\
|
|
36
|
+
&\mathrm{description}(P) = \mathrm{description}(P') \\
|
|
37
|
+
&A_{\mathrm{name}}(P) = A_{\mathrm{name}}(P') \\
|
|
38
|
+
&\forall a.\ H(D_P(a)) = H(D_{P'}(a)) \\
|
|
39
|
+
&\forall a, x, c.\ I_P(a, x, c) \simeq_{\mathrm{obs}} I_{P'}(a, x, c)
|
|
40
|
+
\end{aligned}
|
|
41
|
+
$$
|
|
42
|
+
|
|
43
|
+
The provider author chooses the relation $\simeq_{\mathrm{obs}}$. It covers every value and event produced by the action call.
|
|
44
|
+
|
|
45
|
+
### Definition 3. Provider componentization
|
|
46
|
+
|
|
47
|
+
The componentization map $C$ sends a provider factory $F$ to
|
|
48
|
+
|
|
49
|
+
$$
|
|
50
|
+
C(F) = \langle d, p, e \rangle
|
|
51
|
+
$$
|
|
52
|
+
|
|
53
|
+
where
|
|
54
|
+
|
|
55
|
+
$$
|
|
56
|
+
\begin{aligned}
|
|
57
|
+
d &= \text{declared action requirements} \\
|
|
58
|
+
p &= \{ \mathrm{name}(F()) \} \\
|
|
59
|
+
e &= \text{create} \to \text{stage} \to \text{commit}
|
|
60
|
+
\end{aligned}
|
|
61
|
+
$$
|
|
62
|
+
|
|
63
|
+
The inverse of $e$ retires the staged or active binding and releases its owner lease. $Q$ runs after owner release when the binding has zero retainers and zero in-flight calls.
|
|
64
|
+
|
|
65
|
+
The direct and component-owned mount paths form this square:
|
|
66
|
+
|
|
67
|
+
```text
|
|
68
|
+
provider factory F ──create──▶ provider P
|
|
69
|
+
│ │
|
|
70
|
+
│ C │ register
|
|
71
|
+
▼ ▼
|
|
72
|
+
component C(F) ──activate──▶ ActionRegistry
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
The square commutes when $C(F)$ publishes the same $P$ that direct registration would publish.
|
|
76
|
+
|
|
77
|
+
### Definition 4. Binding
|
|
78
|
+
|
|
79
|
+
A binding is
|
|
80
|
+
|
|
81
|
+
$$
|
|
82
|
+
b = \langle \mathrm{id}, n, \mathrm{generation}, P, \mathrm{state}, \mathrm{owner}, \mathrm{retainers}, \mathrm{inFlight} \rangle
|
|
83
|
+
$$
|
|
84
|
+
|
|
85
|
+
The state belongs to
|
|
86
|
+
|
|
87
|
+
$$
|
|
88
|
+
\{ \mathrm{staged},\ \mathrm{active},\ \mathrm{retiring},\ \mathrm{closed} \}
|
|
89
|
+
$$
|
|
90
|
+
|
|
91
|
+
The binding ID is a fresh atom. Generation increases for each new binding under the same namespace.
|
|
92
|
+
|
|
93
|
+
### Definition 5. Live provider projection
|
|
94
|
+
|
|
95
|
+
For runtime state $\gamma$, define
|
|
96
|
+
|
|
97
|
+
$$
|
|
98
|
+
\Sigma_\gamma : N \rightharpoonup \mathrm{Binding}
|
|
99
|
+
$$
|
|
100
|
+
|
|
101
|
+
where $\Sigma_\gamma(n) = b$ exactly when $b$ is the current active binding for $n$.
|
|
102
|
+
|
|
103
|
+
$\Sigma_\gamma$ contains current active bindings. A retained committed view can address a retiring binding by its ID.
|
|
104
|
+
|
|
105
|
+
### Definition 6. Public action projection
|
|
106
|
+
|
|
107
|
+
The public projection is
|
|
108
|
+
|
|
109
|
+
$$
|
|
110
|
+
\OMP(\gamma) = \{ n.a \mapsto \langle D_b(a), H(D_b(a)) \rangle \mid \Sigma_\gamma(n) = b \}
|
|
111
|
+
$$
|
|
112
|
+
|
|
113
|
+
The public projection omits binding IDs, generations, component IDs, and lifecycle states. The `components.*` surface can expose component state as a control-plane value.
|
|
114
|
+
|
|
115
|
+
### Definition 7. Pinned manifest
|
|
116
|
+
|
|
117
|
+
A pinned manifest is a finite map
|
|
118
|
+
|
|
119
|
+
$$
|
|
120
|
+
B : \mathrm{ComponentId} \rightharpoonup \mathrm{ComponentName}
|
|
121
|
+
$$
|
|
122
|
+
|
|
123
|
+
Pinned manifest entries remain in the loader target across user configuration reconciliation. Built-in entries use names of the form `fabric.provider.<namespace>`. The host reserves this definition prefix at the eager and discovery registration boundaries.
|
|
124
|
+
|
|
125
|
+
The complete loader target is
|
|
126
|
+
|
|
127
|
+
$$
|
|
128
|
+
T = B \uplus U
|
|
129
|
+
$$
|
|
130
|
+
|
|
131
|
+
where $U$ is the user component map. The disjoint union requires unique IDs. Both collision checks run inside the loader serialization queue.
|
|
132
|
+
|
|
133
|
+
### Definition 8. Catalog revision
|
|
134
|
+
|
|
135
|
+
The component catalog maps each component name to
|
|
136
|
+
|
|
137
|
+
$$
|
|
138
|
+
\rho(\mathrm{name}) = \langle \mathrm{definition}, \mathrm{revision} \rangle
|
|
139
|
+
$$
|
|
140
|
+
|
|
141
|
+
Registering a replacement increments `revision`. Every enabled pinned or user entry that names the definition becomes a replacement target.
|
|
142
|
+
|
|
143
|
+
## 2. Operational rules
|
|
144
|
+
|
|
145
|
+
### Rule P-Insert
|
|
146
|
+
|
|
147
|
+
A pinned entry enters $B$ when its ID is fresh and its provision is disjoint from every admitted fiber provision.
|
|
148
|
+
|
|
149
|
+
$$
|
|
150
|
+
\frac{\mathrm{id} \notin \mathrm{dom}(T) \qquad p \cap \mathrm{provisions}(T) = \varnothing}{T \mapsto T[\, \mathrm{id} \mapsto \mathrm{component} \,]} \quad \text{P-Insert}
|
|
151
|
+
$$
|
|
152
|
+
|
|
153
|
+
### Rule P-Begin
|
|
154
|
+
|
|
155
|
+
Activation creates a provider and mounts its binding as `staged`.
|
|
156
|
+
|
|
157
|
+
$$
|
|
158
|
+
\frac{F() = P \qquad \mathrm{name}(P) \in p \qquad \mathrm{target}(\mathrm{id}, \gamma) \neq \bot}{\gamma \mapsto \gamma[\, b.\mathrm{state} \mapsto \mathrm{staged} \,]} \quad \text{P-Begin}
|
|
159
|
+
$$
|
|
160
|
+
|
|
161
|
+
A factory that returns another namespace closes that provider and fails the transition.
|
|
162
|
+
|
|
163
|
+
### Rule P-Commit
|
|
164
|
+
|
|
165
|
+
The component commits all staged provider bindings together after activation settles and the target remains equal to its committed view.
|
|
166
|
+
|
|
167
|
+
$$
|
|
168
|
+
\frac{\mathrm{allDeclaredMounted} \qquad \mathrm{target}(\mathrm{id}, \gamma) = \omega}{b.\mathrm{state} \mapsto \mathrm{active} \qquad \Sigma_\gamma(\mathrm{name}(b)) \mapsto b} \quad \text{P-Commit}
|
|
169
|
+
$$
|
|
170
|
+
|
|
171
|
+
$\OMP(\gamma)$ contains active provider actions.
|
|
172
|
+
|
|
173
|
+
### Rule P-Leave
|
|
174
|
+
|
|
175
|
+
Retirement removes the provider from the live namespace before its inverse runs. A target change, explicit reload, replacement, or stop request can start this rule.
|
|
176
|
+
|
|
177
|
+
$$
|
|
178
|
+
\frac{\mathrm{current}(\mathrm{name}(b)) = b \qquad \mathrm{leaveRequested}(\mathrm{id}, \gamma)}{\Sigma_\gamma \mapsto \Sigma_\gamma \setminus \mathrm{name}(b) \qquad b.\mathrm{state} \mapsto \mathrm{retiring}} \quad \text{P-Leave}
|
|
179
|
+
$$
|
|
180
|
+
|
|
181
|
+
$\mathrm{leaveRequested}$ covers target drift, explicit reload, replacement, and stop. Dependent fibers see their target change and unload first.
|
|
182
|
+
|
|
183
|
+
### Rule P-Close
|
|
184
|
+
|
|
185
|
+
A retiring provider closes after all ownership and use counts reach zero.
|
|
186
|
+
|
|
187
|
+
$$
|
|
188
|
+
\frac{\mathrm{state} = \mathrm{retiring} \qquad \mathrm{owner} = \mathrm{released} \qquad \mathrm{retainers} = 0 \qquad \mathrm{inFlight} = 0}{Q(P) \qquad \mathrm{state} \mapsto \mathrm{closed}} \quad \text{P-Close}
|
|
189
|
+
$$
|
|
190
|
+
|
|
191
|
+
### Rule P-Revise
|
|
192
|
+
|
|
193
|
+
A catalog revision retires the active fiber and starts the new definition under the same component ID.
|
|
194
|
+
|
|
195
|
+
$$
|
|
196
|
+
\frac{\rho(\mathrm{name}) = \langle \mathrm{definition}_v, v \rangle \qquad \rho'(\mathrm{name}) = \langle \mathrm{definition}_{v+1}, v+1 \rangle}{\mathrm{fiber}_v \mapsto \mathrm{unloading} \mapsto \mathrm{fiber}_{v+1}} \quad \text{P-Revise}
|
|
197
|
+
$$
|
|
198
|
+
|
|
199
|
+
The provider namespace stays equal by the provision declaration.
|
|
200
|
+
|
|
201
|
+
### Rule P-Restore
|
|
202
|
+
|
|
203
|
+
A failed candidate with successful cleanup restores the prior definition.
|
|
204
|
+
|
|
205
|
+
$$
|
|
206
|
+
\frac{\mathrm{activate}(v+1) = \mathrm{failure} \qquad \mathrm{cleanup}(v+1) = \mathrm{success}}{\mathrm{fiber}_{v+1} \mapsto \mathrm{fiber}_{v+2}\ \text{using}\ \mathrm{definition}_v} \quad \text{P-Restore}
|
|
207
|
+
$$
|
|
208
|
+
|
|
209
|
+
The revision increases again because restoration is a new lifecycle episode. Cleanup failure enters `quarantined` state and reports the inverse failure as its final outcome.
|
|
210
|
+
|
|
211
|
+
## 3. Rolling replacement
|
|
212
|
+
|
|
213
|
+
Let $b_v$ be the active provider binding for definition revision $v$. A rolling replacement follows this path:
|
|
214
|
+
|
|
215
|
+
```text
|
|
216
|
+
catalog revision v+1
|
|
217
|
+
│
|
|
218
|
+
▼
|
|
219
|
+
retire b_v ──▶ unload dependents ──▶ run inverse_v
|
|
220
|
+
│
|
|
221
|
+
│ retained by committed views
|
|
222
|
+
▼
|
|
223
|
+
create b_v+1 ──▶ stage ──▶ commit ──▶ reload dependents
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
A committed view $\omega_v$ keeps $b_v$ callable during retirement. Uncommitted resolution follows $\Sigma_\gamma$, which moves to $b_{v+1}$ at commit. `P-Commit` publishes the full binding set in one synchronous operation. A commit observer may request immediate retirement, which yields a short complete episode. The public projection contains complete binding sets.
|
|
227
|
+
|
|
228
|
+
These rules govern rolling replacement. During the interval between retirement and candidate commit, an uncommitted concurrent call reports that the provider is unavailable. A `fabric_exec` call that invokes `components.reload` waits for the replacement result.
|
|
229
|
+
|
|
230
|
+
## 4. Theorems
|
|
231
|
+
|
|
232
|
+
### Theorem 1. Namespace preservation
|
|
233
|
+
|
|
234
|
+
Let $\gamma_d$ be a quiet runtime that directly registers provider family $(P_i)$. Let $\gamma_c$ be a quiet runtime that activates $(C(F_i))$, with $F_i() \simeq_p P_i$. Then
|
|
235
|
+
|
|
236
|
+
$$
|
|
237
|
+
\begin{aligned}
|
|
238
|
+
\mathrm{dom}(\OMP(\gamma_d)) &= \mathrm{dom}(\OMP(\gamma_c)) \\
|
|
239
|
+
\forall r \in \mathrm{dom}(\OMP).\ \mathrm{descriptor}_d(r) &= \mathrm{descriptor}_c(r) \\
|
|
240
|
+
\forall r \in \mathrm{dom}(\OMP).\ \mathrm{hash}_d(r) &= \mathrm{hash}_c(r)
|
|
241
|
+
\end{aligned}
|
|
242
|
+
$$
|
|
243
|
+
|
|
244
|
+
Proof sketch: `P-Begin` keeps a staged binding in component state until `P-Commit` inserts it under the declared provider name. Provision disjointness leaves one active binding per name, and provider equivalence supplies equal descriptor maps and hashes.
|
|
245
|
+
|
|
246
|
+
### Theorem 2. `fabric_exec` observational equivalence
|
|
247
|
+
|
|
248
|
+
Take equal guest code, strings, invocation context, policy state, and action arguments. Under the premises of Theorem 1, every call outside `components.*` has equal registry observations:
|
|
249
|
+
|
|
250
|
+
$$
|
|
251
|
+
\begin{aligned}
|
|
252
|
+
\mathrm{providers}_d &= \mathrm{providers}_c \\
|
|
253
|
+
\mathrm{catalog}_d &= \mathrm{catalog}_c \\
|
|
254
|
+
\mathrm{search}_d &= \mathrm{search}_c \\
|
|
255
|
+
\mathrm{describe}_d &= \mathrm{describe}_c \\
|
|
256
|
+
\mathrm{invoke}_d &\simeq_{\mathrm{obs}} \mathrm{invoke}_c
|
|
257
|
+
\end{aligned}
|
|
258
|
+
$$
|
|
259
|
+
|
|
260
|
+
Proof sketch: discovery and invocation read `ActionRegistry` through $\OMP$ and the provider descriptions $\delta$. Component fields belong to the control plane. After binding resolution, each call uses the same registry pipeline and host policy.
|
|
261
|
+
|
|
262
|
+
### Theorem 3. Committed-view continuity
|
|
263
|
+
|
|
264
|
+
If $\omega_v$ retains $b_v$, then `P-Leave` preserves that binding until $\omega_v$ releases it during normal runtime operation. Calls through $\omega_v$ resolve to the same binding atom and descriptor hash during a replacement.
|
|
265
|
+
|
|
266
|
+
Proof sketch: committed view acquisition increments $\mathrm{retainers}$, which keeps `P-Close` blocked. Invocation increments $\mathrm{inFlight}$, and descriptor drift fails before the provider call. Final registry shutdown releases view retainers and owner retention. The in-flight gate remains active until the last settling call closes its binding. Host shutdown quiescence lies outside the rolling lifecycle relation.
|
|
267
|
+
|
|
268
|
+
### Theorem 4. Rolling replacement safety
|
|
269
|
+
|
|
270
|
+
Assume the old and candidate factories satisfy the declared namespace and every transition settles. `P-Revise` reaches one of these explicit outcomes:
|
|
271
|
+
|
|
272
|
+
$$
|
|
273
|
+
\begin{cases}
|
|
274
|
+
\text{candidate active under the same namespace} \\
|
|
275
|
+
\text{prior definition restored under the same namespace after clean candidate recovery} \\
|
|
276
|
+
\text{failed or quarantined status with an explicit replacement and rollback error}
|
|
277
|
+
\end{cases}
|
|
278
|
+
$$
|
|
279
|
+
|
|
280
|
+
The public projection contains a complete candidate binding set.
|
|
281
|
+
|
|
282
|
+
Proof sketch: candidate bindings stay staged through activation, then `P-Commit` publishes the full set. Failure applies the candidate inverse and releases its provider. `P-Restore` runs the previous definition as another guarded episode. A failed restoration reports its final state through the component status.
|
|
283
|
+
|
|
284
|
+
### Theorem 5. Dependency withdrawal order
|
|
285
|
+
|
|
286
|
+
If component $m$ commits a view that maps requirement $n.a$ to provider component $k$, then $m$ unloads before $k$ runs its provider inverse.
|
|
287
|
+
|
|
288
|
+
Proof sketch: retiring $k$ removes its provision from the live target, so the supervisor finds committed views that name $k$'s binding and awaits their unload. `P-Close` then applies the residual lease and invocation guard.
|
|
289
|
+
|
|
290
|
+
### Theorem 6. Startup quiescence
|
|
291
|
+
|
|
292
|
+
Runtime initialization installs every enabled pinned provider component before it creates the execution service and emits provider discovery. When initialization resolves, each enabled built-in namespace is active or initialization has failed.
|
|
293
|
+
|
|
294
|
+
Proof sketch: `installPinned` uses the serialized loader queue and awaits supervisor reconciliation. Runtime construction awaits each manifest extension, then the completeness guard requires an active registry binding for every enabled namespace. The runtime creates the execution service after that guard passes.
|
|
295
|
+
|
|
296
|
+
### Theorem 7. Terminal confluence
|
|
297
|
+
|
|
298
|
+
For finite fibers, disjoint provisions, settling transitions, pairwise independent effects, and conforming managed-provider factories, any fair lifecycle schedule reaches the same quiet public projection for one catalog and one target manifest.
|
|
299
|
+
|
|
300
|
+
Proof sketch: independent activation steps commute under the stated premise, and provision uniqueness removes namespace races. Target comparison withdraws stale fibers before reload, so the final catalog revision and manifest determine the quiet bindings. A conforming factory reports its provisions and obeys the effect-independence premise. The runtime checks provision collisions and accepts effect independence as the author's witness.
|
|
301
|
+
|
|
302
|
+
## 5. Runtime correspondence
|
|
303
|
+
|
|
304
|
+
| Calculus object | Runtime object |
|
|
305
|
+
| --- | --- |
|
|
306
|
+
| $P$ | `FabricProvider` |
|
|
307
|
+
| $C(F)$ | `createProviderComponent(spec)` |
|
|
308
|
+
| $B$ | `FabricComponentLoader.#pinned` |
|
|
309
|
+
| $U$ | configured `components` entries |
|
|
310
|
+
| $\rho$ | `FabricComponentCatalog` revision |
|
|
311
|
+
| $b$ | `FabricProviderBinding` |
|
|
312
|
+
| $\Sigma_\gamma$ | `FabricProviderBindings.#current` |
|
|
313
|
+
| $\OMP(\gamma)$ | ActionRegistry providers, descriptors, and hashes |
|
|
314
|
+
| $\omega$ | `FabricCommittedCapabilityView` |
|
|
315
|
+
| P-Commit | `activateProviderBindings()` |
|
|
316
|
+
| P-Revise | catalog event followed by `supervisor.replace()` |
|
|
317
|
+
| P-Restore | loader and supervisor transactional rollback |
|
|
318
|
+
|
|
319
|
+
## 6. Kernel boundary
|
|
320
|
+
|
|
321
|
+
The component system depends on a finite kernel:
|
|
322
|
+
|
|
323
|
+
- `ActionRegistry` and provider bindings.
|
|
324
|
+
- Component catalog, loader, supervisor, and effect scopes.
|
|
325
|
+
- Execution validation, authorization, approval, audit, and output bounds.
|
|
326
|
+
- Trusted host configuration and package discovery.
|
|
327
|
+
- The `components.*` diagnostics provider.
|
|
328
|
+
|
|
329
|
+
The pinned first-party provider set is
|
|
330
|
+
|
|
331
|
+
$$
|
|
332
|
+
\{ \text{omp},\ \text{extensions},\ \text{mcp},\ \text{mesh},\ \text{state},\ \text{schema},\ \text{compact},\ \text{agents},\ \text{memory} \}
|
|
333
|
+
$$
|
|
334
|
+
|
|
335
|
+
Configuration gates can omit `omp`, `extensions`, `mesh`, `state`, or `memory`. The registry keeps explicit unavailable-provider messages for gated `mesh`, `state`, and `memory` namespaces. Full-code gating controls the guest visibility of `omp` and `extensions`.
|
|
336
|
+
|
|
337
|
+
Fabric treats host managers for mesh storage and participant control as trusted kernel services. Actor scheduling and schema state use the same boundary. Each provider component controls its public action surface and its provider's resource lifetime.
|
|
338
|
+
|
|
339
|
+
## 7. Compatibility boundary
|
|
340
|
+
|
|
341
|
+
The model-visible compatibility condition is
|
|
342
|
+
|
|
343
|
+
$$
|
|
344
|
+
\begin{aligned}
|
|
345
|
+
\OMP_{\mathrm{before}} &= \OMP_{\mathrm{after}} \\
|
|
346
|
+
\delta_{\mathrm{before}} &= \delta_{\mathrm{after}}
|
|
347
|
+
\end{aligned}
|
|
348
|
+
$$
|
|
349
|
+
|
|
350
|
+
Under this condition, provider descriptions and ref names stay stable. Action descriptors, guest globals, discovery results, result shapes, error shapes, and the policy path keep the same values.
|
|
351
|
+
|
|
352
|
+
`components.*` adds lifecycle diagnostics to the surface. The component graph includes each built-in provider component.
|
|
353
|
+
|
|
354
|
+
After startup, ordinary action calls use the direct `ActionRegistry` branch. Component work runs at initialization, reload, provider change, and shutdown boundaries.
|
|
355
|
+
|
|
356
|
+
## 8. Verification anchors
|
|
357
|
+
|
|
358
|
+
| Law | Source check | Test |
|
|
359
|
+
| --- | --- | --- |
|
|
360
|
+
| Pinned entries survive config reconciliation | `FabricComponentLoader.#targetEntries()` | `component-loader.test.ts` |
|
|
361
|
+
| Pinned and configured IDs stay disjoint under concurrency | loader serialization queue | `component-loader.test.ts` |
|
|
362
|
+
| Catalog revision rolls a pinned fiber | catalog subscription and `supervisor.replace()` | `component-loader.test.ts` |
|
|
363
|
+
| Provider namespace stays stable | `createProviderComponent()` name check | `provider-components.test.ts` |
|
|
364
|
+
| Staged providers stay hidden | `FabricProviderBindings.mount()` | `provider-bindings.test.ts` |
|
|
365
|
+
| Committed calls retain old generation | binding retainers | `provider-components.test.ts` |
|
|
366
|
+
| In-flight calls delay rolling close | binding in-flight count | `provider-components.test.ts` |
|
|
367
|
+
| Dependency withdrawal precedes provider inverse | supervisor dependent scan | `component-supervisor.test.ts` |
|
|
368
|
+
| Dependents repin after provider replacement | supervisor reconciliation | `provider-components.test.ts` |
|
|
369
|
+
| Failed provider candidates restore their namespace | `supervisor.replace()` | `provider-components.test.ts` |
|
|
370
|
+
| Commit diversion withdraws the short provider episode | post-commit epoch check | `provider-components.test.ts` |
|
|
371
|
+
| Startup manifest requires active namespaces | `FabricProviderComponentManifest.assertActive()` | `provider-components.test.ts` |
|
|
372
|
+
| Execution and discovery follow active built-ins | `FabricRuntimeState.initialize()` | `fabric-runtime-components.test.ts` |
|
|
373
|
+
| Discovery rejects a reserved built-in definition | `registerExternalComponent()` | `fabric-runtime-components.test.ts` |
|
|
374
|
+
| Independent insertion reaches one projection | supervisor reconciliation | `component-laws.test.ts` |
|
|
375
|
+
| `components.reload` reaches pinned fibers | loader `#loaded` map | `components-provider.test.ts` |
|
|
376
|
+
| `components.reload` reports rollback and preserves the namespace | loader reload diagnostics | `components-provider.test.ts` |
|
|
377
|
+
| Default descriptors and hashes stay fixed | `actionDescriptorHash()` | `default-path-compatibility.test.ts` |
|
|
378
|
+
| Full runtime behavior stays green | package quality gate | `bun run check` |
|