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,291 @@
|
|
|
1
|
+
import {
|
|
2
|
+
OMP_CORE_COMPATIBILITY_ARGUMENT_TYPE_NAMES,
|
|
3
|
+
OMP_CORE_NUMERIC_FIELDS
|
|
4
|
+
} from "../chunks/chunk-JP4LIZFT.js";
|
|
5
|
+
import {
|
|
6
|
+
OMP_CORE_TOOL_NAMES
|
|
7
|
+
} from "../chunks/chunk-6N4XGAZY.js";
|
|
8
|
+
|
|
9
|
+
// src/runtime/core-override-guest-types.ts
|
|
10
|
+
var LOOSE_ARGUMENT_TYPE = "Record<string, unknown>";
|
|
11
|
+
var MAX_SCHEMA_DEPTH = 8;
|
|
12
|
+
var MAX_SCHEMA_MEMBERS = 128;
|
|
13
|
+
var MAX_SCHEMA_SOURCE_CHARS = 32e3;
|
|
14
|
+
var MAX_SCHEMA_OUTPUT_CHARS = 8e3;
|
|
15
|
+
var MAX_DECLARATION_OUTPUT_CHARS = 32e3;
|
|
16
|
+
var MAX_UNION_MEMBERS = 16;
|
|
17
|
+
var IDENTIFIER = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
|
|
18
|
+
var compatibilityArgumentTypeFor = (name) => OMP_CORE_COMPATIBILITY_ARGUMENT_TYPE_NAMES[name];
|
|
19
|
+
var returnTypeFor = (name) => `ReturnType<OmpToolsApi["${name}"]>`;
|
|
20
|
+
var isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
21
|
+
var propertyKey = (name) => IDENTIFIER.test(name) ? name : JSON.stringify(name);
|
|
22
|
+
var literalType = (value) => {
|
|
23
|
+
if (value === null) return "null";
|
|
24
|
+
if (typeof value === "string") return JSON.stringify(value);
|
|
25
|
+
if (typeof value === "number" && Number.isFinite(value)) return JSON.stringify(value);
|
|
26
|
+
if (typeof value === "boolean") return value ? "true" : "false";
|
|
27
|
+
throw new Error("Schema literal is not a JSON primitive");
|
|
28
|
+
};
|
|
29
|
+
var unique = (values) => [...new Set(values)];
|
|
30
|
+
var unionType = (parts) => {
|
|
31
|
+
const members = unique(parts);
|
|
32
|
+
if (members.length === 0) throw new Error("Schema union has no members");
|
|
33
|
+
return members.length === 1 ? members[0] : members.join(" | ");
|
|
34
|
+
};
|
|
35
|
+
var schemaTypes = (schema) => {
|
|
36
|
+
const value = schema.type;
|
|
37
|
+
if (typeof value === "string") return [value];
|
|
38
|
+
if (Array.isArray(value) && value.length > 0 && value.every((entry) => typeof entry === "string")) {
|
|
39
|
+
return unique(value);
|
|
40
|
+
}
|
|
41
|
+
if (value === void 0) return [];
|
|
42
|
+
throw new Error("Schema type is malformed");
|
|
43
|
+
};
|
|
44
|
+
var unsupportedSchemaKeys = /* @__PURE__ */ new Set([
|
|
45
|
+
"$defs",
|
|
46
|
+
"$ref",
|
|
47
|
+
"definitions",
|
|
48
|
+
"dependentRequired",
|
|
49
|
+
"dependentSchemas",
|
|
50
|
+
"dependencies",
|
|
51
|
+
"if",
|
|
52
|
+
"not",
|
|
53
|
+
"patternProperties",
|
|
54
|
+
"propertyNames",
|
|
55
|
+
"then",
|
|
56
|
+
"unevaluatedItems",
|
|
57
|
+
"unevaluatedProperties",
|
|
58
|
+
"unless",
|
|
59
|
+
"when"
|
|
60
|
+
]);
|
|
61
|
+
var countMember = (state) => {
|
|
62
|
+
state.members += 1;
|
|
63
|
+
if (state.members > MAX_SCHEMA_MEMBERS) throw new Error("Schema member budget exceeded");
|
|
64
|
+
};
|
|
65
|
+
var recordSchema = (schema, state) => {
|
|
66
|
+
for (const key of unsupportedSchemaKeys) {
|
|
67
|
+
if (key in schema) throw new Error(`Unsupported schema keyword: ${key}`);
|
|
68
|
+
}
|
|
69
|
+
if (state.active.has(schema)) throw new Error("Recursive schema");
|
|
70
|
+
state.active.add(schema);
|
|
71
|
+
};
|
|
72
|
+
var renderSchema = (value, state, depth) => {
|
|
73
|
+
if (depth > MAX_SCHEMA_DEPTH) throw new Error("Schema depth budget exceeded");
|
|
74
|
+
if (value === true) return "unknown";
|
|
75
|
+
if (value === false) return "never";
|
|
76
|
+
if (!isRecord(value)) throw new Error("Schema is malformed");
|
|
77
|
+
recordSchema(value, state);
|
|
78
|
+
try {
|
|
79
|
+
if (Object.hasOwn(value, "const")) return literalType(value.const);
|
|
80
|
+
if (Object.hasOwn(value, "enum")) {
|
|
81
|
+
if (!Array.isArray(value.enum) || value.enum.length === 0) {
|
|
82
|
+
throw new Error("Schema enum is malformed");
|
|
83
|
+
}
|
|
84
|
+
if (value.enum.length > MAX_UNION_MEMBERS) {
|
|
85
|
+
throw new Error("Schema union budget exceeded");
|
|
86
|
+
}
|
|
87
|
+
return unionType(value.enum.map((entry) => {
|
|
88
|
+
countMember(state);
|
|
89
|
+
return literalType(entry);
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
const alternates = Array.isArray(value.anyOf) ? value.anyOf : Array.isArray(value.oneOf) ? value.oneOf : void 0;
|
|
93
|
+
if (alternates) {
|
|
94
|
+
if (alternates.length === 0 || alternates.length > MAX_UNION_MEMBERS) {
|
|
95
|
+
throw new Error("Schema union is malformed or over budget");
|
|
96
|
+
}
|
|
97
|
+
return unionType(alternates.map((entry) => {
|
|
98
|
+
countMember(state);
|
|
99
|
+
return renderSchema(entry, state, depth + 1);
|
|
100
|
+
}));
|
|
101
|
+
}
|
|
102
|
+
if (Object.hasOwn(value, "allOf")) {
|
|
103
|
+
if (!Array.isArray(value.allOf) || value.allOf.length === 0 || value.allOf.length > MAX_UNION_MEMBERS) {
|
|
104
|
+
throw new Error("Schema intersection is malformed or over budget");
|
|
105
|
+
}
|
|
106
|
+
return value.allOf.map((entry) => {
|
|
107
|
+
countMember(state);
|
|
108
|
+
const rendered2 = renderSchema(entry, state, depth + 1);
|
|
109
|
+
return rendered2.includes(" | ") ? `(${rendered2})` : rendered2;
|
|
110
|
+
}).join(" & ");
|
|
111
|
+
}
|
|
112
|
+
if (Object.hasOwn(value, "nullable") && typeof value.nullable !== "boolean") {
|
|
113
|
+
throw new Error("Schema nullable flag is malformed");
|
|
114
|
+
}
|
|
115
|
+
const types = schemaTypes(value);
|
|
116
|
+
let rendered;
|
|
117
|
+
if (types.length > 1) {
|
|
118
|
+
rendered = unionType(types.map((type) => renderSchema({ ...value, type }, state, depth + 1)));
|
|
119
|
+
} else {
|
|
120
|
+
const type = types[0];
|
|
121
|
+
if (type === void 0) {
|
|
122
|
+
rendered = isRecord(value.properties) || Object.hasOwn(value, "additionalProperties") ? renderObject(value, state, depth) : (() => {
|
|
123
|
+
throw new Error("Schema has no supported type");
|
|
124
|
+
})();
|
|
125
|
+
} else if (type === "object") {
|
|
126
|
+
rendered = renderObject(value, state, depth);
|
|
127
|
+
} else if (type === "string") {
|
|
128
|
+
rendered = "string";
|
|
129
|
+
} else if (type === "number" || type === "integer") {
|
|
130
|
+
rendered = "number";
|
|
131
|
+
} else if (type === "boolean") {
|
|
132
|
+
rendered = "boolean";
|
|
133
|
+
} else if (type === "null") {
|
|
134
|
+
rendered = "null";
|
|
135
|
+
} else if (type === "array") {
|
|
136
|
+
rendered = renderArray(value, state, depth);
|
|
137
|
+
} else {
|
|
138
|
+
throw new Error(`Unsupported schema type: ${type}`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return value.nullable === true && !rendered.split(" | ").includes("null") ? `${rendered} | null` : rendered;
|
|
142
|
+
} finally {
|
|
143
|
+
state.active.delete(value);
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
var renderObject = (schema, state, depth) => {
|
|
147
|
+
const rawProperties = schema.properties;
|
|
148
|
+
if (rawProperties !== void 0 && !isRecord(rawProperties)) {
|
|
149
|
+
throw new Error("Schema properties are malformed");
|
|
150
|
+
}
|
|
151
|
+
const properties = rawProperties;
|
|
152
|
+
const rawRequired = schema.required;
|
|
153
|
+
if (rawRequired !== void 0 && (!Array.isArray(rawRequired) || !rawRequired.every((entry) => typeof entry === "string") || new Set(rawRequired).size !== rawRequired.length)) {
|
|
154
|
+
throw new Error("Schema required fields are malformed");
|
|
155
|
+
}
|
|
156
|
+
const required = new Set(rawRequired ?? []);
|
|
157
|
+
if (properties && [...required].some((key) => !(key in properties))) {
|
|
158
|
+
throw new Error("Schema required field is not a property");
|
|
159
|
+
}
|
|
160
|
+
const members = [];
|
|
161
|
+
for (const key of Object.keys(properties ?? {}).sort()) {
|
|
162
|
+
countMember(state);
|
|
163
|
+
const rendered = renderSchema(properties[key], state, depth + 1);
|
|
164
|
+
const type = depth === 0 && state.numericStringFields.has(key) && rendered === "number" ? "number | string" : rendered;
|
|
165
|
+
members.push(`${propertyKey(key)}${required.has(key) ? "" : "?"}: ${type}`);
|
|
166
|
+
}
|
|
167
|
+
if (Object.hasOwn(schema, "additionalProperties")) {
|
|
168
|
+
const additional = schema.additionalProperties;
|
|
169
|
+
if (additional === false) {
|
|
170
|
+
if (members.length === 0) return "Record<string, never>";
|
|
171
|
+
} else if (additional === true) {
|
|
172
|
+
members.push("[key: string]: unknown");
|
|
173
|
+
} else if (isRecord(additional)) {
|
|
174
|
+
members.push(`[key: string]: ${renderSchema(additional, state, depth + 1)}`);
|
|
175
|
+
} else {
|
|
176
|
+
throw new Error("Schema additionalProperties is malformed");
|
|
177
|
+
}
|
|
178
|
+
} else {
|
|
179
|
+
members.push("[key: string]: unknown");
|
|
180
|
+
}
|
|
181
|
+
return `{ ${members.join("; ")} }`;
|
|
182
|
+
};
|
|
183
|
+
var renderArray = (schema, state, depth) => {
|
|
184
|
+
const items = schema.items;
|
|
185
|
+
if (Array.isArray(items)) {
|
|
186
|
+
if (items.length > MAX_UNION_MEMBERS) throw new Error("Schema tuple budget exceeded");
|
|
187
|
+
return `[${items.map((entry) => {
|
|
188
|
+
countMember(state);
|
|
189
|
+
return renderSchema(entry, state, depth + 1);
|
|
190
|
+
}).join(", ")}]`;
|
|
191
|
+
}
|
|
192
|
+
if (items === void 0 || items === true) return "Array<unknown>";
|
|
193
|
+
return `Array<${renderSchema(items, state, depth + 1)}>`;
|
|
194
|
+
};
|
|
195
|
+
var isObjectArgumentSchema = (value, active = /* @__PURE__ */ new Set()) => {
|
|
196
|
+
if (!isRecord(value)) return false;
|
|
197
|
+
if (active.has(value)) return false;
|
|
198
|
+
active.add(value);
|
|
199
|
+
try {
|
|
200
|
+
const types = schemaTypes(value);
|
|
201
|
+
if (types.length > 0) return types.length === 1 && types[0] === "object";
|
|
202
|
+
const alternates = Array.isArray(value.anyOf) ? value.anyOf : Array.isArray(value.oneOf) ? value.oneOf : void 0;
|
|
203
|
+
if (alternates) return alternates.length > 0 && alternates.every((entry) => isObjectArgumentSchema(entry, active));
|
|
204
|
+
if (Array.isArray(value.allOf)) {
|
|
205
|
+
return value.allOf.length > 0 && value.allOf.every((entry) => isObjectArgumentSchema(entry, active));
|
|
206
|
+
}
|
|
207
|
+
return isRecord(value.properties) || Object.hasOwn(value, "additionalProperties");
|
|
208
|
+
} finally {
|
|
209
|
+
active.delete(value);
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
var renderArgumentType = (schema, numericStringFields) => {
|
|
213
|
+
let serialized;
|
|
214
|
+
try {
|
|
215
|
+
serialized = JSON.stringify(schema);
|
|
216
|
+
} catch {
|
|
217
|
+
throw new Error("Schema cannot be serialized");
|
|
218
|
+
}
|
|
219
|
+
if (!serialized || serialized.length > MAX_SCHEMA_SOURCE_CHARS) {
|
|
220
|
+
throw new Error("Schema source budget exceeded");
|
|
221
|
+
}
|
|
222
|
+
const state = {
|
|
223
|
+
members: 0,
|
|
224
|
+
active: /* @__PURE__ */ new Set(),
|
|
225
|
+
numericStringFields
|
|
226
|
+
};
|
|
227
|
+
if (!isObjectArgumentSchema(schema)) {
|
|
228
|
+
throw new Error("Core override arguments must be an object schema");
|
|
229
|
+
}
|
|
230
|
+
const type = renderSchema(schema, state, 0);
|
|
231
|
+
if (type.length > MAX_SCHEMA_OUTPUT_CHARS) throw new Error("Schema output budget exceeded");
|
|
232
|
+
const required = isRecord(schema) && Array.isArray(schema.required) && schema.required.length > 0;
|
|
233
|
+
return { type, required };
|
|
234
|
+
};
|
|
235
|
+
var normalizedSchema = (schema) => {
|
|
236
|
+
if (typeof schema !== "function" || !("toJsonSchema" in schema)) return schema;
|
|
237
|
+
const toJsonSchema = schema.toJsonSchema;
|
|
238
|
+
return typeof toJsonSchema === "function" ? toJsonSchema.call(schema) : schema;
|
|
239
|
+
};
|
|
240
|
+
var resolveValidCoreOverrideSource = (source) => {
|
|
241
|
+
if (!OMP_CORE_TOOL_NAMES.includes(source.name)) return void 0;
|
|
242
|
+
return { name: source.name, inputSchema: normalizedSchema(source.inputSchema) };
|
|
243
|
+
};
|
|
244
|
+
var buildCoreOverrideGuestDeclarations = (sources) => {
|
|
245
|
+
const byName = /* @__PURE__ */ new Map();
|
|
246
|
+
for (const source of sources) {
|
|
247
|
+
const resolved = resolveValidCoreOverrideSource(source);
|
|
248
|
+
if (resolved && !byName.has(resolved.name)) byName.set(resolved.name, resolved);
|
|
249
|
+
}
|
|
250
|
+
if (byName.size === 0) return void 0;
|
|
251
|
+
const methods = [];
|
|
252
|
+
let outputChars = 0;
|
|
253
|
+
for (const name of OMP_CORE_TOOL_NAMES) {
|
|
254
|
+
const source = byName.get(name);
|
|
255
|
+
if (!source) continue;
|
|
256
|
+
let argumentType = LOOSE_ARGUMENT_TYPE;
|
|
257
|
+
let required = false;
|
|
258
|
+
try {
|
|
259
|
+
const rendered = renderArgumentType(
|
|
260
|
+
source.inputSchema,
|
|
261
|
+
new Set(OMP_CORE_NUMERIC_FIELDS[name])
|
|
262
|
+
);
|
|
263
|
+
argumentType = rendered.type;
|
|
264
|
+
required = rendered.required;
|
|
265
|
+
} catch {
|
|
266
|
+
}
|
|
267
|
+
let compatibility = `Partial<${argumentType}> & (${compatibilityArgumentTypeFor(name)})`;
|
|
268
|
+
let method = ` ${name}(args${required ? "" : "?"}: ${argumentType} | (${compatibility})): ${returnTypeFor(name)};`;
|
|
269
|
+
outputChars += method.length;
|
|
270
|
+
if (outputChars > MAX_DECLARATION_OUTPUT_CHARS) {
|
|
271
|
+
argumentType = LOOSE_ARGUMENT_TYPE;
|
|
272
|
+
required = false;
|
|
273
|
+
compatibility = `Partial<${argumentType}> & (${compatibilityArgumentTypeFor(name)})`;
|
|
274
|
+
method = ` ${name}(args?: ${argumentType} | (${compatibility})): ${returnTypeFor(name)};`;
|
|
275
|
+
}
|
|
276
|
+
methods.push(method);
|
|
277
|
+
}
|
|
278
|
+
if (methods.length === 0) return void 0;
|
|
279
|
+
return [
|
|
280
|
+
"// Generated from the current captured exact-name core overrides for this execution.",
|
|
281
|
+
"type FabricOmpCoreOverrideApi = OmpToolsApi & {",
|
|
282
|
+
...methods,
|
|
283
|
+
"};",
|
|
284
|
+
"declare const omp: FabricOmpCoreOverrideApi;",
|
|
285
|
+
""
|
|
286
|
+
].join("\n");
|
|
287
|
+
};
|
|
288
|
+
export {
|
|
289
|
+
buildCoreOverrideGuestDeclarations
|
|
290
|
+
};
|
|
291
|
+
//# sourceMappingURL=core-override-guest-types.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/runtime/core-override-guest-types.ts"],
|
|
4
|
+
"sourcesContent": ["import { OMP_CORE_TOOL_NAMES, type OmpCoreToolName } from \"../core/omp-tools.js\";\nimport {\n OMP_CORE_COMPATIBILITY_ARGUMENT_TYPE_NAMES,\n OMP_CORE_NUMERIC_FIELDS,\n} from \"./guest-types.js\";\n\n/** The small source shape needed to render a captured core override. */\nexport interface FabricCoreOverrideTypeSource {\n name: string;\n inputSchema: unknown;\n}\n\nconst LOOSE_ARGUMENT_TYPE = \"Record<string, unknown>\";\nconst MAX_SCHEMA_DEPTH = 8;\nconst MAX_SCHEMA_MEMBERS = 128;\nconst MAX_SCHEMA_SOURCE_CHARS = 32_000;\nconst MAX_SCHEMA_OUTPUT_CHARS = 8_000;\nconst MAX_DECLARATION_OUTPUT_CHARS = 32_000;\nconst MAX_UNION_MEMBERS = 16;\n\nconst IDENTIFIER = /^[A-Za-z_$][A-Za-z0-9_$]*$/;\n\n// The extra overload must also accept Fabric's existing built-in forms. In\n// particular, the runtime accepts numeric strings before host validation; the\n// compatibility aliases beside OmpToolsApi keep those forms in the same SSOT.\nconst compatibilityArgumentTypeFor = (name: OmpCoreToolName): string =>\n OMP_CORE_COMPATIBILITY_ARGUMENT_TYPE_NAMES[name];\n\nconst returnTypeFor = (name: OmpCoreToolName): string =>\n `ReturnType<OmpToolsApi[\"${name}\"]>`;\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\nconst propertyKey = (name: string): string =>\n IDENTIFIER.test(name) ? name : JSON.stringify(name);\n\nconst literalType = (value: unknown): string => {\n if (value === null) return \"null\";\n if (typeof value === \"string\") return JSON.stringify(value);\n if (typeof value === \"number\" && Number.isFinite(value)) return JSON.stringify(value);\n if (typeof value === \"boolean\") return value ? \"true\" : \"false\";\n throw new Error(\"Schema literal is not a JSON primitive\");\n};\n\nconst unique = <T>(values: T[]): T[] => [...new Set(values)];\n\nconst unionType = (parts: string[]): string => {\n const members = unique(parts);\n if (members.length === 0) throw new Error(\"Schema union has no members\");\n return members.length === 1 ? members[0]! : members.join(\" | \");\n};\n\nconst schemaTypes = (schema: Record<string, unknown>): string[] => {\n const value = schema.type;\n if (typeof value === \"string\") return [value];\n if (Array.isArray(value) && value.length > 0 && value.every((entry) => typeof entry === \"string\")) {\n return unique(value as string[]);\n }\n if (value === undefined) return [];\n throw new Error(\"Schema type is malformed\");\n};\n\nconst unsupportedSchemaKeys = new Set([\n \"$defs\",\n \"$ref\",\n \"definitions\",\n \"dependentRequired\",\n \"dependentSchemas\",\n \"dependencies\",\n \"if\",\n \"not\",\n \"patternProperties\",\n \"propertyNames\",\n \"then\",\n \"unevaluatedItems\",\n \"unevaluatedProperties\",\n \"unless\",\n \"when\",\n]);\n\ninterface RenderState {\n members: number;\n active: Set<object>;\n numericStringFields: ReadonlySet<string>;\n}\n\nconst countMember = (state: RenderState): void => {\n state.members += 1;\n if (state.members > MAX_SCHEMA_MEMBERS) throw new Error(\"Schema member budget exceeded\");\n};\n\nconst recordSchema = (schema: Record<string, unknown>, state: RenderState): void => {\n for (const key of unsupportedSchemaKeys) {\n if (key in schema) throw new Error(`Unsupported schema keyword: ${key}`);\n }\n if (state.active.has(schema)) throw new Error(\"Recursive schema\");\n state.active.add(schema);\n};\n\nconst renderSchema = (value: unknown, state: RenderState, depth: number): string => {\n if (depth > MAX_SCHEMA_DEPTH) throw new Error(\"Schema depth budget exceeded\");\n if (value === true) return \"unknown\";\n if (value === false) return \"never\";\n if (!isRecord(value)) throw new Error(\"Schema is malformed\");\n\n recordSchema(value, state);\n try {\n if (Object.hasOwn(value, \"const\")) return literalType(value.const);\n\n if (Object.hasOwn(value, \"enum\")) {\n if (!Array.isArray(value.enum) || value.enum.length === 0) {\n throw new Error(\"Schema enum is malformed\");\n }\n if (value.enum.length > MAX_UNION_MEMBERS) {\n throw new Error(\"Schema union budget exceeded\");\n }\n return unionType(value.enum.map((entry) => {\n countMember(state);\n return literalType(entry);\n }));\n }\n\n const alternates = Array.isArray(value.anyOf)\n ? value.anyOf\n : Array.isArray(value.oneOf)\n ? value.oneOf\n : undefined;\n if (alternates) {\n if (alternates.length === 0 || alternates.length > MAX_UNION_MEMBERS) {\n throw new Error(\"Schema union is malformed or over budget\");\n }\n return unionType(alternates.map((entry) => {\n countMember(state);\n return renderSchema(entry, state, depth + 1);\n }));\n }\n\n if (Object.hasOwn(value, \"allOf\")) {\n if (!Array.isArray(value.allOf) || value.allOf.length === 0 || value.allOf.length > MAX_UNION_MEMBERS) {\n throw new Error(\"Schema intersection is malformed or over budget\");\n }\n return value.allOf.map((entry) => {\n countMember(state);\n const rendered = renderSchema(entry, state, depth + 1);\n return rendered.includes(\" | \") ? `(${rendered})` : rendered;\n }).join(\" & \");\n }\n\n if (Object.hasOwn(value, \"nullable\") && typeof value.nullable !== \"boolean\") {\n throw new Error(\"Schema nullable flag is malformed\");\n }\n\n const types = schemaTypes(value);\n let rendered: string;\n if (types.length > 1) {\n rendered = unionType(types.map((type) => renderSchema({ ...value, type }, state, depth + 1)));\n } else {\n const type = types[0];\n if (type === undefined) {\n rendered = isRecord(value.properties) || Object.hasOwn(value, \"additionalProperties\")\n ? renderObject(value, state, depth)\n : (() => { throw new Error(\"Schema has no supported type\"); })();\n } else if (type === \"object\") {\n rendered = renderObject(value, state, depth);\n } else if (type === \"string\") {\n rendered = \"string\";\n } else if (type === \"number\" || type === \"integer\") {\n rendered = \"number\";\n } else if (type === \"boolean\") {\n rendered = \"boolean\";\n } else if (type === \"null\") {\n rendered = \"null\";\n } else if (type === \"array\") {\n rendered = renderArray(value, state, depth);\n } else {\n throw new Error(`Unsupported schema type: ${type}`);\n }\n }\n\n return value.nullable === true && !rendered.split(\" | \").includes(\"null\")\n ? `${rendered} | null`\n : rendered;\n } finally {\n state.active.delete(value);\n }\n};\n\nconst renderObject = (\n schema: Record<string, unknown>,\n state: RenderState,\n depth: number,\n): string => {\n const rawProperties = schema.properties;\n if (rawProperties !== undefined && !isRecord(rawProperties)) {\n throw new Error(\"Schema properties are malformed\");\n }\n const properties = rawProperties as Record<string, unknown> | undefined;\n const rawRequired = schema.required;\n if (rawRequired !== undefined && (\n !Array.isArray(rawRequired) ||\n !rawRequired.every((entry) => typeof entry === \"string\") ||\n new Set(rawRequired).size !== rawRequired.length\n )) {\n throw new Error(\"Schema required fields are malformed\");\n }\n const required = new Set((rawRequired ?? []) as string[]);\n if (properties && [...required].some((key) => !(key in properties))) {\n throw new Error(\"Schema required field is not a property\");\n }\n\n const members: string[] = [];\n for (const key of Object.keys(properties ?? {}).sort()) {\n countMember(state);\n const rendered = renderSchema(properties![key], state, depth + 1);\n const type = depth === 0 && state.numericStringFields.has(key) && rendered === \"number\"\n ? \"number | string\"\n : rendered;\n members.push(`${propertyKey(key)}${required.has(key) ? \"\" : \"?\"}: ${type}`);\n }\n\n if (Object.hasOwn(schema, \"additionalProperties\")) {\n const additional = schema.additionalProperties;\n if (additional === false) {\n // A never-valued index signature keeps an empty closed object strict.\n if (members.length === 0) return \"Record<string, never>\";\n } else if (additional === true) {\n members.push(\"[key: string]: unknown\");\n } else if (isRecord(additional)) {\n members.push(`[key: string]: ${renderSchema(additional, state, depth + 1)}`);\n } else {\n throw new Error(\"Schema additionalProperties is malformed\");\n }\n } else {\n members.push(\"[key: string]: unknown\");\n }\n\n return `{ ${members.join(\"; \")} }`;\n};\n\nconst renderArray = (\n schema: Record<string, unknown>,\n state: RenderState,\n depth: number,\n): string => {\n const items = schema.items;\n if (Array.isArray(items)) {\n if (items.length > MAX_UNION_MEMBERS) throw new Error(\"Schema tuple budget exceeded\");\n return `[${items.map((entry) => {\n countMember(state);\n return renderSchema(entry, state, depth + 1);\n }).join(\", \")}]`;\n }\n if (items === undefined || items === true) return \"Array<unknown>\";\n return `Array<${renderSchema(items, state, depth + 1)}>`;\n};\n\nconst isObjectArgumentSchema = (value: unknown, active = new Set<object>()): boolean => {\n if (!isRecord(value)) return false;\n if (active.has(value)) return false;\n active.add(value);\n try {\n const types = schemaTypes(value);\n if (types.length > 0) return types.length === 1 && types[0] === \"object\";\n const alternates = Array.isArray(value.anyOf)\n ? value.anyOf\n : Array.isArray(value.oneOf)\n ? value.oneOf\n : undefined;\n if (alternates) return alternates.length > 0 && alternates.every((entry) => isObjectArgumentSchema(entry, active));\n if (Array.isArray(value.allOf)) {\n return value.allOf.length > 0 && value.allOf.every((entry) => isObjectArgumentSchema(entry, active));\n }\n return isRecord(value.properties) || Object.hasOwn(value, \"additionalProperties\");\n } finally {\n active.delete(value);\n }\n};\n\nconst renderArgumentType = (\n schema: unknown,\n numericStringFields: ReadonlySet<string>,\n): { type: string; required: boolean } => {\n let serialized: string;\n try {\n serialized = JSON.stringify(schema);\n } catch {\n throw new Error(\"Schema cannot be serialized\");\n }\n if (!serialized || serialized.length > MAX_SCHEMA_SOURCE_CHARS) {\n throw new Error(\"Schema source budget exceeded\");\n }\n const state: RenderState = {\n members: 0,\n active: new Set(),\n numericStringFields,\n };\n if (!isObjectArgumentSchema(schema)) {\n throw new Error(\"Core override arguments must be an object schema\");\n }\n const type = renderSchema(schema, state, 0);\n if (type.length > MAX_SCHEMA_OUTPUT_CHARS) throw new Error(\"Schema output budget exceeded\");\n const required = isRecord(schema) && Array.isArray(schema.required) && schema.required.length > 0;\n return { type, required };\n};\n\nconst normalizedSchema = (schema: unknown): unknown => {\n if (typeof schema !== \"function\" || !(\"toJsonSchema\" in schema)) return schema;\n const toJsonSchema = schema.toJsonSchema;\n return typeof toJsonSchema === \"function\" ? toJsonSchema.call(schema) : schema;\n};\n\nconst resolveValidCoreOverrideSource = (\n source: FabricCoreOverrideTypeSource,\n): { name: OmpCoreToolName; inputSchema: unknown } | undefined => {\n if (!OMP_CORE_TOOL_NAMES.includes(source.name as OmpCoreToolName)) return undefined;\n return { name: source.name as OmpCoreToolName, inputSchema: normalizedSchema(source.inputSchema) };\n};\n\n/**\n * Build the full-code `omp` declaration for the current exact-name overrides.\n *\n * The static OmpToolsApi remains the base interface. Each generated member is\n * an additive overload with the core slot's static result type; a renderer\n * failure intentionally produces a loose object overload so runtime schema\n * validation remains the authority.\n */\nexport const buildCoreOverrideGuestDeclarations = (\n sources: readonly FabricCoreOverrideTypeSource[],\n): string | undefined => {\n const byName = new Map<OmpCoreToolName, FabricCoreOverrideTypeSource>();\n for (const source of sources) {\n const resolved = resolveValidCoreOverrideSource(source);\n if (resolved && !byName.has(resolved.name)) byName.set(resolved.name, resolved);\n }\n if (byName.size === 0) return undefined;\n\n const methods: string[] = [];\n let outputChars = 0;\n for (const name of OMP_CORE_TOOL_NAMES) {\n const source = byName.get(name);\n if (!source) continue;\n let argumentType = LOOSE_ARGUMENT_TYPE;\n let required = false;\n try {\n const rendered = renderArgumentType(\n source.inputSchema,\n new Set(OMP_CORE_NUMERIC_FIELDS[name]),\n );\n argumentType = rendered.type;\n required = rendered.required;\n } catch {\n // A loose overload keeps override-specific calls reachable while the\n // registry still validates the effective schema at dispatch.\n }\n let compatibility = `Partial<${argumentType}> & (${compatibilityArgumentTypeFor(name)})`;\n let method = ` ${name}(args${required ? \"\" : \"?\"}: ${argumentType} | (${compatibility})): ${returnTypeFor(name)};`;\n outputChars += method.length;\n if (outputChars > MAX_DECLARATION_OUTPUT_CHARS) {\n argumentType = LOOSE_ARGUMENT_TYPE;\n required = false;\n compatibility = `Partial<${argumentType}> & (${compatibilityArgumentTypeFor(name)})`;\n method = ` ${name}(args?: ${argumentType} | (${compatibility})): ${returnTypeFor(name)};`;\n }\n methods.push(method);\n }\n\n if (methods.length === 0) return undefined;\n return [\n \"// Generated from the current captured exact-name core overrides for this execution.\",\n \"type FabricOmpCoreOverrideApi = OmpToolsApi & {\",\n ...methods,\n \"};\",\n \"declare const omp: FabricOmpCoreOverrideApi;\",\n \"\",\n ].join(\"\\n\");\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["rendered"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { OMP_CORE_COMPATIBILITY_ARGUMENT_TYPE_NAMES } from "./guest-types.js";
|
|
2
|
+
type CoreToolName = keyof typeof OMP_CORE_COMPATIBILITY_ARGUMENT_TYPE_NAMES;
|
|
3
|
+
export declare const CORE_TOOL_NAMES: readonly CoreToolName[];
|
|
4
|
+
export declare const CORE_TOOL_PROPERTIES: ReadonlyMap<string, readonly CoreToolName[]>;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=core-tool-properties.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-tool-properties.d.ts","sourceRoot":"","sources":["../../src/runtime/core-tool-properties.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,0CAA0C,EAC3C,MAAM,kBAAkB,CAAC;AAI1B,KAAK,YAAY,GAAG,MAAM,OAAO,0CAA0C,CAAC;AAE5E,eAAO,MAAM,eAAe,EAAE,SAAS,YAAY,EAEhC,CAAC;AAwEpB,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic-guest-types.d.ts","sourceRoot":"","sources":["../../src/runtime/dynamic-guest-types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,8BAA8B,EAC9B,sBAAsB,EAEvB,MAAM,gBAAgB,CAAC;AAqSxB,eAAO,MAAM,6BAA6B,GACxC,SAAS,sBAAsB,KAC9B,8BASF,CAAC"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import {
|
|
2
|
+
sanitizeMcpRefPart
|
|
3
|
+
} from "../chunks/chunk-IGVDD2HT.js";
|
|
4
|
+
|
|
5
|
+
// src/runtime/dynamic-guest-types.ts
|
|
6
|
+
var MAX_DEPTH = 6;
|
|
7
|
+
var MAX_UNION_MEMBERS = 12;
|
|
8
|
+
var MAX_SCHEMA_SOURCE_CHARS = 4096;
|
|
9
|
+
var MAX_MEMBER_TYPE_CHARS = 2500;
|
|
10
|
+
var MAX_SECTION_CHARS = 6e4;
|
|
11
|
+
var MAX_MCP_SERVERS = 64;
|
|
12
|
+
var MAX_TOOLS_PER_SERVER = 128;
|
|
13
|
+
var MAX_EXTENSION_TOOLS = 256;
|
|
14
|
+
var IDENTIFIER = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
|
|
15
|
+
var isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
16
|
+
var propertyKey = (name) => IDENTIFIER.test(name) ? name : JSON.stringify(name);
|
|
17
|
+
var literalType = (value) => {
|
|
18
|
+
if (value === null) return "null";
|
|
19
|
+
if (typeof value === "string") return JSON.stringify(value);
|
|
20
|
+
if (typeof value === "number" && Number.isFinite(value)) return JSON.stringify(value);
|
|
21
|
+
if (typeof value === "boolean") return value ? "true" : "false";
|
|
22
|
+
return "unknown";
|
|
23
|
+
};
|
|
24
|
+
var unionType = (parts) => {
|
|
25
|
+
const unique = [...new Set(parts)];
|
|
26
|
+
if (unique.length === 0) return "unknown";
|
|
27
|
+
return unique.length === 1 ? unique[0] : unique.join(" | ");
|
|
28
|
+
};
|
|
29
|
+
var typeList = (value) => {
|
|
30
|
+
if (typeof value === "string") return [value];
|
|
31
|
+
if (Array.isArray(value)) {
|
|
32
|
+
return value.filter((entry) => typeof entry === "string");
|
|
33
|
+
}
|
|
34
|
+
return [];
|
|
35
|
+
};
|
|
36
|
+
var objectType = (schema, depth) => {
|
|
37
|
+
const properties = isRecord(schema.properties) ? schema.properties : {};
|
|
38
|
+
const required = new Set(
|
|
39
|
+
Array.isArray(schema.required) ? schema.required.filter((entry) => typeof entry === "string") : []
|
|
40
|
+
);
|
|
41
|
+
const members = [];
|
|
42
|
+
for (const key of Object.keys(properties).sort()) {
|
|
43
|
+
members.push(
|
|
44
|
+
`${propertyKey(key)}${required.has(key) ? "" : "?"}: ${schemaType(properties[key], depth + 1)}`
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
const additional = schema.additionalProperties;
|
|
48
|
+
if (additional !== false) {
|
|
49
|
+
members.push(
|
|
50
|
+
isRecord(additional) ? `[key: string]: ${schemaType(additional, depth + 1)}` : "[key: string]: unknown"
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
return `{ ${members.join("; ")} }`;
|
|
54
|
+
};
|
|
55
|
+
var schemaType = (schema, depth) => {
|
|
56
|
+
if (depth > MAX_DEPTH) return "unknown";
|
|
57
|
+
if (schema === true || schema === void 0) return "unknown";
|
|
58
|
+
if (schema === false) return "never";
|
|
59
|
+
if (!isRecord(schema)) return "unknown";
|
|
60
|
+
if ("const" in schema) return literalType(schema.const);
|
|
61
|
+
if (Array.isArray(schema.enum) && schema.enum.length > 0) {
|
|
62
|
+
return unionType(schema.enum.slice(0, MAX_UNION_MEMBERS).map(literalType));
|
|
63
|
+
}
|
|
64
|
+
const alternates = Array.isArray(schema.anyOf) ? schema.anyOf : Array.isArray(schema.oneOf) ? schema.oneOf : void 0;
|
|
65
|
+
if (alternates) {
|
|
66
|
+
if (alternates.length === 0) return "unknown";
|
|
67
|
+
return unionType(
|
|
68
|
+
alternates.slice(0, MAX_UNION_MEMBERS).map((entry) => schemaType(entry, depth + 1))
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
if (Array.isArray(schema.allOf) && schema.allOf.length > 0) {
|
|
72
|
+
return schema.allOf.slice(0, MAX_UNION_MEMBERS).map((entry) => {
|
|
73
|
+
const rendered = schemaType(entry, depth + 1);
|
|
74
|
+
return rendered.includes(" | ") ? `(${rendered})` : rendered;
|
|
75
|
+
}).join(" & ");
|
|
76
|
+
}
|
|
77
|
+
const types = typeList(schema.type);
|
|
78
|
+
if (types.length > 1) {
|
|
79
|
+
return unionType(types.map((type2) => schemaType({ ...schema, type: type2 }, depth + 1)));
|
|
80
|
+
}
|
|
81
|
+
const type = types[0];
|
|
82
|
+
if (type === "object" || !type && isRecord(schema.properties)) {
|
|
83
|
+
return objectType(schema, depth);
|
|
84
|
+
}
|
|
85
|
+
if (type === "string") return "string";
|
|
86
|
+
if (type === "number" || type === "integer") return "number";
|
|
87
|
+
if (type === "boolean") return "boolean";
|
|
88
|
+
if (type === "null") return "null";
|
|
89
|
+
if (type === "array") {
|
|
90
|
+
const items = schema.items;
|
|
91
|
+
if (Array.isArray(items)) {
|
|
92
|
+
return `[${items.slice(0, MAX_UNION_MEMBERS).map((entry) => schemaType(entry, depth + 1)).join(", ")}]`;
|
|
93
|
+
}
|
|
94
|
+
return isRecord(items) || items === true ? `Array<${schemaType(items, depth + 1)}>` : "unknown[]";
|
|
95
|
+
}
|
|
96
|
+
return "unknown";
|
|
97
|
+
};
|
|
98
|
+
var spend = (budget, text) => {
|
|
99
|
+
if (budget.chars < text.length) return false;
|
|
100
|
+
budget.chars -= text.length;
|
|
101
|
+
return true;
|
|
102
|
+
};
|
|
103
|
+
var hasRequiredArgs = (source) => Array.isArray(source.inputSchema.required) && source.inputSchema.required.length > 0 && isRecord(source.inputSchema.properties);
|
|
104
|
+
var renderMember = (name, source, resultType) => {
|
|
105
|
+
const loose = `${propertyKey(name)}(args?: Record<string, unknown>): ${resultType};`;
|
|
106
|
+
const schemaJson = JSON.stringify(source.inputSchema);
|
|
107
|
+
if (!schemaJson || schemaJson.length > MAX_SCHEMA_SOURCE_CHARS) return loose;
|
|
108
|
+
const rendered = schemaType(source.inputSchema, 0);
|
|
109
|
+
if (rendered.length > MAX_MEMBER_TYPE_CHARS) return loose;
|
|
110
|
+
return `${propertyKey(name)}(args${hasRequiredArgs(source) ? "" : "?"}: ${rendered}): ${resultType};`;
|
|
111
|
+
};
|
|
112
|
+
var renderMemberBlock = (sources, resultType, limit, budget) => {
|
|
113
|
+
const bySanitized = /* @__PURE__ */ new Map();
|
|
114
|
+
for (const source of sources.slice(0, limit)) {
|
|
115
|
+
const key = sanitizeMcpRefPart(source.name);
|
|
116
|
+
const group = bySanitized.get(key);
|
|
117
|
+
if (group) group.push(source);
|
|
118
|
+
else bySanitized.set(key, [source]);
|
|
119
|
+
}
|
|
120
|
+
const lines = [];
|
|
121
|
+
let dropped = Math.max(0, sources.length - limit);
|
|
122
|
+
const sortedGroups = [...bySanitized.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
123
|
+
for (const [sanitized, group] of sortedGroups) {
|
|
124
|
+
if (group.length > 1) {
|
|
125
|
+
dropped += group.length;
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
const source = group[0];
|
|
129
|
+
const text = source.name === sanitized ? ` ${renderMember(sanitized, source, resultType)}` : ` ${renderMember(sanitized, source, resultType)}
|
|
130
|
+
${renderMember(source.name, source, resultType)}`;
|
|
131
|
+
if (!spend(budget, text)) {
|
|
132
|
+
dropped += 1;
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
lines.push(text);
|
|
136
|
+
}
|
|
137
|
+
return { lines, dropped };
|
|
138
|
+
};
|
|
139
|
+
var renderMcpDeclaration = (sources) => {
|
|
140
|
+
const bySanitized = /* @__PURE__ */ new Map();
|
|
141
|
+
const rawNames = /* @__PURE__ */ new Set();
|
|
142
|
+
for (const source of sources.slice(0, MAX_MCP_SERVERS)) {
|
|
143
|
+
if (rawNames.has(source.server)) continue;
|
|
144
|
+
rawNames.add(source.server);
|
|
145
|
+
const key = sanitizeMcpRefPart(source.server);
|
|
146
|
+
const group = bySanitized.get(key);
|
|
147
|
+
if (group) group.push(source);
|
|
148
|
+
else bySanitized.set(key, [source]);
|
|
149
|
+
}
|
|
150
|
+
const budget = { chars: MAX_SECTION_CHARS };
|
|
151
|
+
const interfaces = [];
|
|
152
|
+
const mapEntries = [];
|
|
153
|
+
let droppedServers = Math.max(0, sources.length - rawNames.size);
|
|
154
|
+
let droppedTools = 0;
|
|
155
|
+
const sortedGroups = [...bySanitized.entries()].sort(([a], [b]) => a.localeCompare(b));
|
|
156
|
+
for (const [sanitized, group] of sortedGroups) {
|
|
157
|
+
if (group.length > 1) {
|
|
158
|
+
droppedServers += group.length;
|
|
159
|
+
droppedTools += group.reduce((total, entry) => total + entry.tools.length, 0);
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
const source = group[0];
|
|
163
|
+
const interfaceName = `FabricMcpServer_${sanitized}`;
|
|
164
|
+
const memberBlock = renderMemberBlock(
|
|
165
|
+
source.tools,
|
|
166
|
+
"Promise<FabricMcpResult | unknown>",
|
|
167
|
+
MAX_TOOLS_PER_SERVER,
|
|
168
|
+
budget
|
|
169
|
+
);
|
|
170
|
+
droppedTools += memberBlock.dropped;
|
|
171
|
+
const header = `interface ${interfaceName} {
|
|
172
|
+
${memberBlock.lines.join("\n")}
|
|
173
|
+
}`;
|
|
174
|
+
if (!spend(budget, header)) {
|
|
175
|
+
droppedServers += 1;
|
|
176
|
+
droppedTools += source.tools.length;
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
interfaces.push(header);
|
|
180
|
+
mapEntries.push(` ${sanitized}: ${interfaceName};`);
|
|
181
|
+
if (source.server !== sanitized) {
|
|
182
|
+
mapEntries.push(` ${propertyKey(source.server)}: ${interfaceName};`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
const notes = [];
|
|
186
|
+
if (droppedServers > 0) notes.push(`${droppedServers} server(s) untyped`);
|
|
187
|
+
if (droppedTools > 0) notes.push(`${droppedTools} tool(s) untyped`);
|
|
188
|
+
const note = notes.length > 0 ? `// Omitted from this surface (${notes.join(", ")}); those calls compile
|
|
189
|
+
// as the loose fallback would and still validate at dispatch.
|
|
190
|
+
` : "";
|
|
191
|
+
return "// Generated from the live MCP descriptor cache for this execution. Known\n// servers and tools carry their schemas so argument-shape mistakes fail\n// type-check before the sandbox runs, like omp.* calls do; anything absent\n// (cold cache, ambiguous sanitized names) compiles as it would with the\n// loose declarations and is validated by the registry at dispatch.\n" + note + interfaces.join("\n") + (interfaces.length > 0 ? "\n" : "") + `declare const mcp: {
|
|
192
|
+
${mapEntries.join("\n")}
|
|
193
|
+
} & FabricMcpManagement;
|
|
194
|
+
`;
|
|
195
|
+
};
|
|
196
|
+
var renderExtensionsDeclaration = (sources) => {
|
|
197
|
+
const budget = { chars: MAX_SECTION_CHARS };
|
|
198
|
+
const memberBlock = renderMemberBlock(
|
|
199
|
+
sources,
|
|
200
|
+
"Promise<FabricCapturedToolResult>",
|
|
201
|
+
MAX_EXTENSION_TOOLS,
|
|
202
|
+
budget
|
|
203
|
+
);
|
|
204
|
+
const note = memberBlock.dropped > 0 ? `// Omitted ${memberBlock.dropped} tool(s) from this surface; those calls
|
|
205
|
+
// compile as the loose fallback would and still validate at dispatch.
|
|
206
|
+
` : "";
|
|
207
|
+
return "// Generated from the captured extension tool catalog for this execution,\n// with the same advisory semantics as the generated mcp surface above.\n" + note + `interface FabricExtensionsApiDynamic {
|
|
208
|
+
${memberBlock.lines.join("\n")}
|
|
209
|
+
}
|
|
210
|
+
declare const extensions: FabricExtensionsApiDynamic;
|
|
211
|
+
`;
|
|
212
|
+
};
|
|
213
|
+
var buildDynamicGuestDeclarations = (sources) => {
|
|
214
|
+
const dynamic = {};
|
|
215
|
+
if (sources.mcpServers && sources.mcpServers.length > 0) {
|
|
216
|
+
dynamic.mcp = renderMcpDeclaration(sources.mcpServers);
|
|
217
|
+
}
|
|
218
|
+
if (sources.extensionTools && sources.extensionTools.length > 0) {
|
|
219
|
+
dynamic.extensions = renderExtensionsDeclaration(sources.extensionTools);
|
|
220
|
+
}
|
|
221
|
+
return dynamic;
|
|
222
|
+
};
|
|
223
|
+
export {
|
|
224
|
+
buildDynamicGuestDeclarations
|
|
225
|
+
};
|
|
226
|
+
//# sourceMappingURL=dynamic-guest-types.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/runtime/dynamic-guest-types.ts"],
|
|
4
|
+
"sourcesContent": ["import { sanitizeMcpRefPart } from \"../ref-names.js\";\nimport type {\n FabricDynamicGuestDeclarations,\n FabricGuestTypeSources,\n FabricNamedActionTypeSource,\n} from \"../protocol.js\";\n\n// Renders guest .d.ts fragments for the dynamic call surfaces\n// (mcp.<server>.<tool> and extensions.<tool>) from live provider descriptors,\n// closing the type-check gap those globals had as Record<string, unknown>\n// callables: argument-shape mistakes surfaced only at dispatch time. The\n// generated surface stays advisory \u2014 the registry still validates every\n// call's args against the action's own inputSchema before invoke, so drift\n// between these declarations and a live server fails at the usual validate\n// stage rather than silently.\n\nconst MAX_DEPTH = 6;\nconst MAX_UNION_MEMBERS = 12;\nconst MAX_SCHEMA_SOURCE_CHARS = 4_096;\nconst MAX_MEMBER_TYPE_CHARS = 2_500;\nconst MAX_SECTION_CHARS = 60_000;\nconst MAX_MCP_SERVERS = 64;\nconst MAX_TOOLS_PER_SERVER = 128;\nconst MAX_EXTENSION_TOOLS = 256;\n\nconst IDENTIFIER = /^[A-Za-z_$][A-Za-z0-9_$]*$/;\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\nconst propertyKey = (name: string): string =>\n IDENTIFIER.test(name) ? name : JSON.stringify(name);\n\nconst literalType = (value: unknown): string => {\n if (value === null) return \"null\";\n if (typeof value === \"string\") return JSON.stringify(value);\n if (typeof value === \"number\" && Number.isFinite(value)) return JSON.stringify(value);\n if (typeof value === \"boolean\") return value ? \"true\" : \"false\";\n return \"unknown\";\n};\n\nconst unionType = (parts: string[]): string => {\n const unique = [...new Set(parts)];\n if (unique.length === 0) return \"unknown\";\n return unique.length === 1 ? unique[0]! : unique.join(\" | \");\n};\n\nconst typeList = (value: unknown): string[] => {\n if (typeof value === \"string\") return [value];\n if (Array.isArray(value)) {\n return value.filter((entry): entry is string => typeof entry === \"string\");\n }\n return [];\n};\n\nconst objectType = (schema: Record<string, unknown>, depth: number): string => {\n const properties = isRecord(schema.properties) ? schema.properties : {};\n const required = new Set(\n Array.isArray(schema.required)\n ? schema.required.filter((entry): entry is string => typeof entry === \"string\")\n : [],\n );\n const members: string[] = [];\n for (const key of Object.keys(properties).sort()) {\n members.push(\n `${propertyKey(key)}${required.has(key) ? \"\" : \"?\"}: ${schemaType(properties[key], depth + 1)}`,\n );\n }\n const additional = schema.additionalProperties;\n if (additional !== false) {\n members.push(\n isRecord(additional)\n ? `[key: string]: ${schemaType(additional, depth + 1)}`\n : \"[key: string]: unknown\",\n );\n }\n return `{ ${members.join(\"; \")} }`;\n};\n\nconst schemaType = (schema: unknown, depth: number): string => {\n if (depth > MAX_DEPTH) return \"unknown\";\n if (schema === true || schema === undefined) return \"unknown\";\n if (schema === false) return \"never\";\n if (!isRecord(schema)) return \"unknown\";\n if (\"const\" in schema) return literalType(schema.const);\n if (Array.isArray(schema.enum) && schema.enum.length > 0) {\n return unionType(schema.enum.slice(0, MAX_UNION_MEMBERS).map(literalType));\n }\n const alternates = Array.isArray(schema.anyOf)\n ? schema.anyOf\n : Array.isArray(schema.oneOf)\n ? schema.oneOf\n : undefined;\n if (alternates) {\n if (alternates.length === 0) return \"unknown\";\n return unionType(\n alternates.slice(0, MAX_UNION_MEMBERS).map((entry) => schemaType(entry, depth + 1)),\n );\n }\n if (Array.isArray(schema.allOf) && schema.allOf.length > 0) {\n return schema.allOf\n .slice(0, MAX_UNION_MEMBERS)\n .map((entry) => {\n const rendered = schemaType(entry, depth + 1);\n return rendered.includes(\" | \") ? `(${rendered})` : rendered;\n })\n .join(\" & \");\n }\n const types = typeList(schema.type);\n if (types.length > 1) {\n return unionType(types.map((type) => schemaType({ ...schema, type }, depth + 1)));\n }\n const type = types[0];\n if (type === \"object\" || (!type && isRecord(schema.properties))) {\n return objectType(schema, depth);\n }\n if (type === \"string\") return \"string\";\n if (type === \"number\" || type === \"integer\") return \"number\";\n if (type === \"boolean\") return \"boolean\";\n if (type === \"null\") return \"null\";\n if (type === \"array\") {\n const items = schema.items;\n if (Array.isArray(items)) {\n return `[${items\n .slice(0, MAX_UNION_MEMBERS)\n .map((entry) => schemaType(entry, depth + 1))\n .join(\", \")}]`;\n }\n return isRecord(items) || items === true\n ? `Array<${schemaType(items, depth + 1)}>`\n : \"unknown[]\";\n }\n return \"unknown\";\n};\n\ninterface FabricRenderBudget {\n chars: number;\n}\n\nconst spend = (budget: FabricRenderBudget, text: string): boolean => {\n if (budget.chars < text.length) return false;\n budget.chars -= text.length;\n return true;\n};\n\nconst hasRequiredArgs = (source: FabricNamedActionTypeSource): boolean =>\n Array.isArray(source.inputSchema.required) &&\n source.inputSchema.required.length > 0 &&\n isRecord(source.inputSchema.properties);\n\nconst renderMember = (\n name: string,\n source: FabricNamedActionTypeSource,\n resultType: string,\n): string => {\n const loose = `${propertyKey(name)}(args?: Record<string, unknown>): ${resultType};`;\n const schemaJson = JSON.stringify(source.inputSchema);\n if (!schemaJson || schemaJson.length > MAX_SCHEMA_SOURCE_CHARS) return loose;\n const rendered = schemaType(source.inputSchema, 0);\n if (rendered.length > MAX_MEMBER_TYPE_CHARS) return loose;\n return `${propertyKey(name)}(args${hasRequiredArgs(source) ? \"\" : \"?\"}: ${rendered}): ${resultType};`;\n};\n\n// Name collisions after sanitization are ambiguous: the MCP provider refuses\n// ambiguous sanitized server names and resolves colliding tools to the first\n// match, so mirrored members would promise a shape dispatch does not\n// guarantee. Unique names render in up to two forms \u2014 the sanitized\n// identifier the model types and a quoted raw alias for bracket access\n// (mcp[\"my-server\"]) \u2014 and ambiguous groups render nothing. A raw alias can\n// never collide with a sanitized member: aliases always contain a character\n// the sanitizer would replace or a leading digit it would prefix.\nconst renderMemberBlock = (\n sources: FabricNamedActionTypeSource[],\n resultType: string,\n limit: number,\n budget: FabricRenderBudget,\n): { lines: string[]; dropped: number } => {\n const bySanitized = new Map<string, FabricNamedActionTypeSource[]>();\n for (const source of sources.slice(0, limit)) {\n const key = sanitizeMcpRefPart(source.name);\n const group = bySanitized.get(key);\n if (group) group.push(source);\n else bySanitized.set(key, [source]);\n }\n const lines: string[] = [];\n let dropped = Math.max(0, sources.length - limit);\n const sortedGroups = [...bySanitized.entries()].sort(([a], [b]) => a.localeCompare(b));\n for (const [sanitized, group] of sortedGroups) {\n if (group.length > 1) {\n dropped += group.length;\n continue;\n }\n const source = group[0]!;\n const text =\n source.name === sanitized\n ? ` ${renderMember(sanitized, source, resultType)}`\n : ` ${renderMember(sanitized, source, resultType)}\\n ${renderMember(source.name, source, resultType)}`;\n if (!spend(budget, text)) {\n dropped += 1;\n continue;\n }\n lines.push(text);\n }\n return { lines, dropped };\n};\n\nconst renderMcpDeclaration = (\n sources: NonNullable<FabricGuestTypeSources[\"mcpServers\"]>,\n): string => {\n const bySanitized = new Map<string, typeof sources>();\n const rawNames = new Set<string>();\n for (const source of sources.slice(0, MAX_MCP_SERVERS)) {\n if (rawNames.has(source.server)) continue;\n rawNames.add(source.server);\n const key = sanitizeMcpRefPart(source.server);\n const group = bySanitized.get(key);\n if (group) group.push(source);\n else bySanitized.set(key, [source]);\n }\n const budget: FabricRenderBudget = { chars: MAX_SECTION_CHARS };\n const interfaces: string[] = [];\n const mapEntries: string[] = [];\n let droppedServers = Math.max(0, sources.length - rawNames.size);\n let droppedTools = 0;\n const sortedGroups = [...bySanitized.entries()].sort(([a], [b]) => a.localeCompare(b));\n for (const [sanitized, group] of sortedGroups) {\n if (group.length > 1) {\n droppedServers += group.length;\n droppedTools += group.reduce((total, entry) => total + entry.tools.length, 0);\n continue;\n }\n const source = group[0]!;\n const interfaceName = `FabricMcpServer_${sanitized}`;\n const memberBlock = renderMemberBlock(\n source.tools,\n \"Promise<FabricMcpResult | unknown>\",\n MAX_TOOLS_PER_SERVER,\n budget,\n );\n droppedTools += memberBlock.dropped;\n const header = `interface ${interfaceName} {\\n${memberBlock.lines.join(\"\\n\")}\\n}`;\n if (!spend(budget, header)) {\n droppedServers += 1;\n droppedTools += source.tools.length;\n break;\n }\n interfaces.push(header);\n mapEntries.push(` ${sanitized}: ${interfaceName};`);\n if (source.server !== sanitized) {\n mapEntries.push(` ${propertyKey(source.server)}: ${interfaceName};`);\n }\n }\n const notes: string[] = [];\n if (droppedServers > 0) notes.push(`${droppedServers} server(s) untyped`);\n if (droppedTools > 0) notes.push(`${droppedTools} tool(s) untyped`);\n const note =\n notes.length > 0\n ? `// Omitted from this surface (${notes.join(\", \")}); those calls compile\\n// as the loose fallback would and still validate at dispatch.\\n`\n : \"\";\n return (\n \"// Generated from the live MCP descriptor cache for this execution. Known\\n\" +\n \"// servers and tools carry their schemas so argument-shape mistakes fail\\n\" +\n \"// type-check before the sandbox runs, like omp.* calls do; anything absent\\n\" +\n \"// (cold cache, ambiguous sanitized names) compiles as it would with the\\n\" +\n \"// loose declarations and is validated by the registry at dispatch.\\n\" +\n note +\n interfaces.join(\"\\n\") +\n (interfaces.length > 0 ? \"\\n\" : \"\") +\n `declare const mcp: {\\n${mapEntries.join(\"\\n\")}\\n} & FabricMcpManagement;\\n`\n );\n};\n\nconst renderExtensionsDeclaration = (\n sources: NonNullable<FabricGuestTypeSources[\"extensionTools\"]>,\n): string => {\n const budget: FabricRenderBudget = { chars: MAX_SECTION_CHARS };\n const memberBlock = renderMemberBlock(\n sources,\n \"Promise<FabricCapturedToolResult>\",\n MAX_EXTENSION_TOOLS,\n budget,\n );\n const note =\n memberBlock.dropped > 0\n ? `// Omitted ${memberBlock.dropped} tool(s) from this surface; those calls\\n// compile as the loose fallback would and still validate at dispatch.\\n`\n : \"\";\n return (\n \"// Generated from the captured extension tool catalog for this execution,\\n\" +\n \"// with the same advisory semantics as the generated mcp surface above.\\n\" +\n note +\n `interface FabricExtensionsApiDynamic {\\n${memberBlock.lines.join(\"\\n\")}\\n}\\n` +\n \"declare const extensions: FabricExtensionsApiDynamic;\\n\"\n );\n};\n\n// Renders replacement `declare const mcp` / `declare const extensions` blocks\n// for guestTypeDeclarations(). Missing or empty sections return undefined so\n// the loose static lines survive, matching cold-cache behavior.\nexport const buildDynamicGuestDeclarations = (\n sources: FabricGuestTypeSources,\n): FabricDynamicGuestDeclarations => {\n const dynamic: FabricDynamicGuestDeclarations = {};\n if (sources.mcpServers && sources.mcpServers.length > 0) {\n dynamic.mcp = renderMcpDeclaration(sources.mcpServers);\n }\n if (sources.extensionTools && sources.extensionTools.length > 0) {\n dynamic.extensions = renderExtensionsDeclaration(sources.extensionTools);\n }\n return dynamic;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["type"]
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guest-code-repair.d.ts","sourceRoot":"","sources":["../../src/runtime/guest-code-repair.ts"],"names":[],"mappings":"AAoUA,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,KAAG,MAUpD,CAAC"}
|