nodedex 0.1.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/adapters/claude-code-watcher.mjs +336 -0
- package/adapters/hermes-statedb-watcher.mjs +234 -0
- package/adapters/nodedex-capture-core.mjs +129 -0
- package/adapters/nodedex-capture.mjs +169 -0
- package/dist/agent-protocol.d.ts +7 -0
- package/dist/agent-protocol.d.ts.map +1 -0
- package/dist/agent-protocol.js +38 -0
- package/dist/agent-protocol.js.map +1 -0
- package/dist/api-server.d.ts +5 -0
- package/dist/api-server.d.ts.map +1 -0
- package/dist/api-server.js +351 -0
- package/dist/api-server.js.map +1 -0
- package/dist/boot-env.d.ts +2 -0
- package/dist/boot-env.d.ts.map +1 -0
- package/dist/boot-env.js +12 -0
- package/dist/boot-env.js.map +1 -0
- package/dist/engine/__tests__/search-core.test.d.ts +2 -0
- package/dist/engine/__tests__/search-core.test.d.ts.map +1 -0
- package/dist/engine/__tests__/search-core.test.js +139 -0
- package/dist/engine/__tests__/search-core.test.js.map +1 -0
- package/dist/engine/ai-provider.d.ts +45 -0
- package/dist/engine/ai-provider.d.ts.map +1 -0
- package/dist/engine/ai-provider.js +5 -0
- package/dist/engine/ai-provider.js.map +1 -0
- package/dist/engine/embeddings.d.ts +51 -0
- package/dist/engine/embeddings.d.ts.map +1 -0
- package/dist/engine/embeddings.js +89 -0
- package/dist/engine/embeddings.js.map +1 -0
- package/dist/engine/providers/__tests__/failure-policy.test.d.ts +2 -0
- package/dist/engine/providers/__tests__/failure-policy.test.d.ts.map +1 -0
- package/dist/engine/providers/__tests__/failure-policy.test.js +134 -0
- package/dist/engine/providers/__tests__/failure-policy.test.js.map +1 -0
- package/dist/engine/providers/__tests__/model-caps.test.d.ts +2 -0
- package/dist/engine/providers/__tests__/model-caps.test.d.ts.map +1 -0
- package/dist/engine/providers/__tests__/model-caps.test.js +38 -0
- package/dist/engine/providers/__tests__/model-caps.test.js.map +1 -0
- package/dist/engine/providers/__tests__/openai-structured.test.d.ts +2 -0
- package/dist/engine/providers/__tests__/openai-structured.test.d.ts.map +1 -0
- package/dist/engine/providers/__tests__/openai-structured.test.js +73 -0
- package/dist/engine/providers/__tests__/openai-structured.test.js.map +1 -0
- package/dist/engine/providers/__tests__/usage-ledger.test.d.ts +2 -0
- package/dist/engine/providers/__tests__/usage-ledger.test.d.ts.map +1 -0
- package/dist/engine/providers/__tests__/usage-ledger.test.js +108 -0
- package/dist/engine/providers/__tests__/usage-ledger.test.js.map +1 -0
- package/dist/engine/providers/anthropic.d.ts +17 -0
- package/dist/engine/providers/anthropic.d.ts.map +1 -0
- package/dist/engine/providers/anthropic.js +125 -0
- package/dist/engine/providers/anthropic.js.map +1 -0
- package/dist/engine/providers/failure-policy.d.ts +56 -0
- package/dist/engine/providers/failure-policy.d.ts.map +1 -0
- package/dist/engine/providers/failure-policy.js +120 -0
- package/dist/engine/providers/failure-policy.js.map +1 -0
- package/dist/engine/providers/gemini.d.ts +22 -0
- package/dist/engine/providers/gemini.d.ts.map +1 -0
- package/dist/engine/providers/gemini.js +180 -0
- package/dist/engine/providers/gemini.js.map +1 -0
- package/dist/engine/providers/index.d.ts +8 -0
- package/dist/engine/providers/index.d.ts.map +1 -0
- package/dist/engine/providers/index.js +67 -0
- package/dist/engine/providers/index.js.map +1 -0
- package/dist/engine/providers/local.d.ts +12 -0
- package/dist/engine/providers/local.d.ts.map +1 -0
- package/dist/engine/providers/local.js +46 -0
- package/dist/engine/providers/local.js.map +1 -0
- package/dist/engine/providers/model-caps.d.ts +6 -0
- package/dist/engine/providers/model-caps.d.ts.map +1 -0
- package/dist/engine/providers/model-caps.js +49 -0
- package/dist/engine/providers/model-caps.js.map +1 -0
- package/dist/engine/providers/openai.d.ts +30 -0
- package/dist/engine/providers/openai.d.ts.map +1 -0
- package/dist/engine/providers/openai.js +309 -0
- package/dist/engine/providers/openai.js.map +1 -0
- package/dist/engine/providers/usage-ledger.d.ts +69 -0
- package/dist/engine/providers/usage-ledger.d.ts.map +1 -0
- package/dist/engine/providers/usage-ledger.js +209 -0
- package/dist/engine/providers/usage-ledger.js.map +1 -0
- package/dist/engine/search-core.d.ts +40 -0
- package/dist/engine/search-core.d.ts.map +1 -0
- package/dist/engine/search-core.js +109 -0
- package/dist/engine/search-core.js.map +1 -0
- package/dist/engine/vector-math.d.ts +5 -0
- package/dist/engine/vector-math.d.ts.map +1 -0
- package/dist/engine/vector-math.js +25 -0
- package/dist/engine/vector-math.js.map +1 -0
- package/dist/home-env.d.ts +26 -0
- package/dist/home-env.d.ts.map +1 -0
- package/dist/home-env.js +87 -0
- package/dist/home-env.js.map +1 -0
- package/dist/mcp-server.d.ts +13 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +79 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/middleware/auth.d.ts +23 -0
- package/dist/middleware/auth.d.ts.map +1 -0
- package/dist/middleware/auth.js +104 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/auto-recall.d.ts +7 -0
- package/dist/middleware/auto-recall.d.ts.map +1 -0
- package/dist/middleware/auto-recall.js +257 -0
- package/dist/middleware/auto-recall.js.map +1 -0
- package/dist/middleware/auto-reflect.d.ts +4 -0
- package/dist/middleware/auto-reflect.d.ts.map +1 -0
- package/dist/middleware/auto-reflect.js +5 -0
- package/dist/middleware/auto-reflect.js.map +1 -0
- package/dist/middleware/reflect/apply-flag-verdict.d.ts +27 -0
- package/dist/middleware/reflect/apply-flag-verdict.d.ts.map +1 -0
- package/dist/middleware/reflect/apply-flag-verdict.js +57 -0
- package/dist/middleware/reflect/apply-flag-verdict.js.map +1 -0
- package/dist/middleware/reflect/arc-entity-resolve.d.ts +29 -0
- package/dist/middleware/reflect/arc-entity-resolve.d.ts.map +1 -0
- package/dist/middleware/reflect/arc-entity-resolve.js +356 -0
- package/dist/middleware/reflect/arc-entity-resolve.js.map +1 -0
- package/dist/middleware/reflect/arc-inactivity-timer.d.ts +47 -0
- package/dist/middleware/reflect/arc-inactivity-timer.d.ts.map +1 -0
- package/dist/middleware/reflect/arc-inactivity-timer.js +175 -0
- package/dist/middleware/reflect/arc-inactivity-timer.js.map +1 -0
- package/dist/middleware/reflect/arc-pipeline.d.ts +33 -0
- package/dist/middleware/reflect/arc-pipeline.d.ts.map +1 -0
- package/dist/middleware/reflect/arc-pipeline.js +498 -0
- package/dist/middleware/reflect/arc-pipeline.js.map +1 -0
- package/dist/middleware/reflect/comprehend-pergroup.d.ts +100 -0
- package/dist/middleware/reflect/comprehend-pergroup.d.ts.map +1 -0
- package/dist/middleware/reflect/comprehend-pergroup.js +610 -0
- package/dist/middleware/reflect/comprehend-pergroup.js.map +1 -0
- package/dist/middleware/reflect/comprehend.d.ts +237 -0
- package/dist/middleware/reflect/comprehend.d.ts.map +1 -0
- package/dist/middleware/reflect/comprehend.js +706 -0
- package/dist/middleware/reflect/comprehend.js.map +1 -0
- package/dist/middleware/reflect/config.d.ts +34 -0
- package/dist/middleware/reflect/config.d.ts.map +1 -0
- package/dist/middleware/reflect/config.js +131 -0
- package/dist/middleware/reflect/config.js.map +1 -0
- package/dist/middleware/reflect/context.d.ts +138 -0
- package/dist/middleware/reflect/context.d.ts.map +1 -0
- package/dist/middleware/reflect/context.js +619 -0
- package/dist/middleware/reflect/context.js.map +1 -0
- package/dist/middleware/reflect/cost-breakdown.d.ts +69 -0
- package/dist/middleware/reflect/cost-breakdown.d.ts.map +1 -0
- package/dist/middleware/reflect/cost-breakdown.js +63 -0
- package/dist/middleware/reflect/cost-breakdown.js.map +1 -0
- package/dist/middleware/reflect/cost-guard.d.ts +102 -0
- package/dist/middleware/reflect/cost-guard.d.ts.map +1 -0
- package/dist/middleware/reflect/cost-guard.js +243 -0
- package/dist/middleware/reflect/cost-guard.js.map +1 -0
- package/dist/middleware/reflect/cost-pricing.d.ts +54 -0
- package/dist/middleware/reflect/cost-pricing.d.ts.map +1 -0
- package/dist/middleware/reflect/cost-pricing.js +148 -0
- package/dist/middleware/reflect/cost-pricing.js.map +1 -0
- package/dist/middleware/reflect/cross-group-link.d.ts +61 -0
- package/dist/middleware/reflect/cross-group-link.d.ts.map +1 -0
- package/dist/middleware/reflect/cross-group-link.js +212 -0
- package/dist/middleware/reflect/cross-group-link.js.map +1 -0
- package/dist/middleware/reflect/dedup-by-source-and-value.d.ts +70 -0
- package/dist/middleware/reflect/dedup-by-source-and-value.d.ts.map +1 -0
- package/dist/middleware/reflect/dedup-by-source-and-value.js +0 -0
- package/dist/middleware/reflect/dedup-by-source-and-value.js.map +1 -0
- package/dist/middleware/reflect/describe-roots.d.ts +58 -0
- package/dist/middleware/reflect/describe-roots.d.ts.map +1 -0
- package/dist/middleware/reflect/describe-roots.js +266 -0
- package/dist/middleware/reflect/describe-roots.js.map +1 -0
- package/dist/middleware/reflect/flag-reviewer-startup.d.ts +16 -0
- package/dist/middleware/reflect/flag-reviewer-startup.d.ts.map +1 -0
- package/dist/middleware/reflect/flag-reviewer-startup.js +107 -0
- package/dist/middleware/reflect/flag-reviewer-startup.js.map +1 -0
- package/dist/middleware/reflect/flag-reviewer.d.ts +69 -0
- package/dist/middleware/reflect/flag-reviewer.d.ts.map +1 -0
- package/dist/middleware/reflect/flag-reviewer.js +520 -0
- package/dist/middleware/reflect/flag-reviewer.js.map +1 -0
- package/dist/middleware/reflect/inline-dedup.d.ts +26 -0
- package/dist/middleware/reflect/inline-dedup.d.ts.map +1 -0
- package/dist/middleware/reflect/inline-dedup.js +131 -0
- package/dist/middleware/reflect/inline-dedup.js.map +1 -0
- package/dist/middleware/reflect/justify-decisions.d.ts +37 -0
- package/dist/middleware/reflect/justify-decisions.d.ts.map +1 -0
- package/dist/middleware/reflect/justify-decisions.js +159 -0
- package/dist/middleware/reflect/justify-decisions.js.map +1 -0
- package/dist/middleware/reflect/nl-accept.d.ts +35 -0
- package/dist/middleware/reflect/nl-accept.d.ts.map +1 -0
- package/dist/middleware/reflect/nl-accept.js +167 -0
- package/dist/middleware/reflect/nl-accept.js.map +1 -0
- package/dist/middleware/reflect/pass0.d.ts +20 -0
- package/dist/middleware/reflect/pass0.d.ts.map +1 -0
- package/dist/middleware/reflect/pass0.js +423 -0
- package/dist/middleware/reflect/pass0.js.map +1 -0
- package/dist/middleware/reflect/pass1.d.ts +17 -0
- package/dist/middleware/reflect/pass1.d.ts.map +1 -0
- package/dist/middleware/reflect/pass1.js +241 -0
- package/dist/middleware/reflect/pass1.js.map +1 -0
- package/dist/middleware/reflect/pass2-quarantine.d.ts +129 -0
- package/dist/middleware/reflect/pass2-quarantine.d.ts.map +1 -0
- package/dist/middleware/reflect/pass2-quarantine.js +272 -0
- package/dist/middleware/reflect/pass2-quarantine.js.map +1 -0
- package/dist/middleware/reflect/pass2-seams.d.ts +205 -0
- package/dist/middleware/reflect/pass2-seams.d.ts.map +1 -0
- package/dist/middleware/reflect/pass2-seams.js +279 -0
- package/dist/middleware/reflect/pass2-seams.js.map +1 -0
- package/dist/middleware/reflect/pass2-split-orchestrator.d.ts +37 -0
- package/dist/middleware/reflect/pass2-split-orchestrator.d.ts.map +1 -0
- package/dist/middleware/reflect/pass2-split-orchestrator.js +531 -0
- package/dist/middleware/reflect/pass2-split-orchestrator.js.map +1 -0
- package/dist/middleware/reflect/pass2.d.ts +17 -0
- package/dist/middleware/reflect/pass2.d.ts.map +1 -0
- package/dist/middleware/reflect/pass2.js +324 -0
- package/dist/middleware/reflect/pass2.js.map +1 -0
- package/dist/middleware/reflect/pass2a.d.ts +141 -0
- package/dist/middleware/reflect/pass2a.d.ts.map +1 -0
- package/dist/middleware/reflect/pass2a.js +404 -0
- package/dist/middleware/reflect/pass2a.js.map +1 -0
- package/dist/middleware/reflect/pass2b.d.ts +108 -0
- package/dist/middleware/reflect/pass2b.d.ts.map +1 -0
- package/dist/middleware/reflect/pass2b.js +480 -0
- package/dist/middleware/reflect/pass2b.js.map +1 -0
- package/dist/middleware/reflect/pass2c.d.ts +113 -0
- package/dist/middleware/reflect/pass2c.d.ts.map +1 -0
- package/dist/middleware/reflect/pass2c.js +360 -0
- package/dist/middleware/reflect/pass2c.js.map +1 -0
- package/dist/middleware/reflect/pass3-batch.d.ts +62 -0
- package/dist/middleware/reflect/pass3-batch.d.ts.map +1 -0
- package/dist/middleware/reflect/pass3-batch.js +139 -0
- package/dist/middleware/reflect/pass3-batch.js.map +1 -0
- package/dist/middleware/reflect/pass3.d.ts +23 -0
- package/dist/middleware/reflect/pass3.d.ts.map +1 -0
- package/dist/middleware/reflect/pass3.js +371 -0
- package/dist/middleware/reflect/pass3.js.map +1 -0
- package/dist/middleware/reflect/pass4-slice.d.ts +25 -0
- package/dist/middleware/reflect/pass4-slice.d.ts.map +1 -0
- package/dist/middleware/reflect/pass4-slice.js +315 -0
- package/dist/middleware/reflect/pass4-slice.js.map +1 -0
- package/dist/middleware/reflect/pass4.d.ts +30 -0
- package/dist/middleware/reflect/pass4.d.ts.map +1 -0
- package/dist/middleware/reflect/pass4.js +193 -0
- package/dist/middleware/reflect/pass4.js.map +1 -0
- package/dist/middleware/reflect/pass5.d.ts +22 -0
- package/dist/middleware/reflect/pass5.d.ts.map +1 -0
- package/dist/middleware/reflect/pass5.js +178 -0
- package/dist/middleware/reflect/pass5.js.map +1 -0
- package/dist/middleware/reflect/pass_judge.d.ts +44 -0
- package/dist/middleware/reflect/pass_judge.d.ts.map +1 -0
- package/dist/middleware/reflect/pass_judge.js +263 -0
- package/dist/middleware/reflect/pass_judge.js.map +1 -0
- package/dist/middleware/reflect/pipeline-flags.d.ts +140 -0
- package/dist/middleware/reflect/pipeline-flags.d.ts.map +1 -0
- package/dist/middleware/reflect/pipeline-flags.js +314 -0
- package/dist/middleware/reflect/pipeline-flags.js.map +1 -0
- package/dist/middleware/reflect/pipeline.d.ts +237 -0
- package/dist/middleware/reflect/pipeline.d.ts.map +1 -0
- package/dist/middleware/reflect/pipeline.js +3114 -0
- package/dist/middleware/reflect/pipeline.js.map +1 -0
- package/dist/middleware/reflect/promptOverride.d.ts +14 -0
- package/dist/middleware/reflect/promptOverride.d.ts.map +1 -0
- package/dist/middleware/reflect/promptOverride.js +28 -0
- package/dist/middleware/reflect/promptOverride.js.map +1 -0
- package/dist/middleware/reflect/provenance-check.d.ts +48 -0
- package/dist/middleware/reflect/provenance-check.d.ts.map +1 -0
- package/dist/middleware/reflect/provenance-check.js +180 -0
- package/dist/middleware/reflect/provenance-check.js.map +1 -0
- package/dist/middleware/reflect/provenance-reviewer.d.ts +52 -0
- package/dist/middleware/reflect/provenance-reviewer.d.ts.map +1 -0
- package/dist/middleware/reflect/provenance-reviewer.js +253 -0
- package/dist/middleware/reflect/provenance-reviewer.js.map +1 -0
- package/dist/middleware/reflect/prune-collapsed-types.d.ts +11 -0
- package/dist/middleware/reflect/prune-collapsed-types.d.ts.map +1 -0
- package/dist/middleware/reflect/prune-collapsed-types.js +32 -0
- package/dist/middleware/reflect/prune-collapsed-types.js.map +1 -0
- package/dist/middleware/reflect/recognize-root.d.ts +75 -0
- package/dist/middleware/reflect/recognize-root.d.ts.map +1 -0
- package/dist/middleware/reflect/recognize-root.js +204 -0
- package/dist/middleware/reflect/recognize-root.js.map +1 -0
- package/dist/middleware/reflect/render-agent-flag.d.ts +25 -0
- package/dist/middleware/reflect/render-agent-flag.d.ts.map +1 -0
- package/dist/middleware/reflect/render-agent-flag.js +39 -0
- package/dist/middleware/reflect/render-agent-flag.js.map +1 -0
- package/dist/middleware/reflect/retrieve-graph-slice.d.ts +54 -0
- package/dist/middleware/reflect/retrieve-graph-slice.d.ts.map +1 -0
- package/dist/middleware/reflect/retrieve-graph-slice.js +173 -0
- package/dist/middleware/reflect/retrieve-graph-slice.js.map +1 -0
- package/dist/middleware/reflect/root-relatedness.d.ts +31 -0
- package/dist/middleware/reflect/root-relatedness.d.ts.map +1 -0
- package/dist/middleware/reflect/root-relatedness.js +92 -0
- package/dist/middleware/reflect/root-relatedness.js.map +1 -0
- package/dist/middleware/reflect/schema-heal.d.ts +22 -0
- package/dist/middleware/reflect/schema-heal.d.ts.map +1 -0
- package/dist/middleware/reflect/schema-heal.js +119 -0
- package/dist/middleware/reflect/schema-heal.js.map +1 -0
- package/dist/middleware/reflect/schema-validator.d.ts +85 -0
- package/dist/middleware/reflect/schema-validator.d.ts.map +1 -0
- package/dist/middleware/reflect/schema-validator.js +196 -0
- package/dist/middleware/reflect/schema-validator.js.map +1 -0
- package/dist/middleware/reflect/stage-audit-graph.d.ts +115 -0
- package/dist/middleware/reflect/stage-audit-graph.d.ts.map +1 -0
- package/dist/middleware/reflect/stage-audit-graph.js +563 -0
- package/dist/middleware/reflect/stage-audit-graph.js.map +1 -0
- package/dist/middleware/reflect/stage-d-resolve-graph.d.ts +87 -0
- package/dist/middleware/reflect/stage-d-resolve-graph.d.ts.map +1 -0
- package/dist/middleware/reflect/stage-d-resolve-graph.js +256 -0
- package/dist/middleware/reflect/stage-d-resolve-graph.js.map +1 -0
- package/dist/middleware/reflect/synthesizeFromSceneCard.d.ts +15 -0
- package/dist/middleware/reflect/synthesizeFromSceneCard.d.ts.map +1 -0
- package/dist/middleware/reflect/synthesizeFromSceneCard.js +91 -0
- package/dist/middleware/reflect/synthesizeFromSceneCard.js.map +1 -0
- package/dist/middleware/reflect/types.d.ts +261 -0
- package/dist/middleware/reflect/types.d.ts.map +1 -0
- package/dist/middleware/reflect/types.js +3 -0
- package/dist/middleware/reflect/types.js.map +1 -0
- package/dist/middleware/reflect/v2-integrate.d.ts +120 -0
- package/dist/middleware/reflect/v2-integrate.d.ts.map +1 -0
- package/dist/middleware/reflect/v2-integrate.js +388 -0
- package/dist/middleware/reflect/v2-integrate.js.map +1 -0
- package/dist/middleware/reflect/v2-judge.d.ts +44 -0
- package/dist/middleware/reflect/v2-judge.d.ts.map +1 -0
- package/dist/middleware/reflect/v2-judge.js +191 -0
- package/dist/middleware/reflect/v2-judge.js.map +1 -0
- package/dist/relation-sets.d.ts +2 -0
- package/dist/relation-sets.d.ts.map +1 -0
- package/dist/relation-sets.js +35 -0
- package/dist/relation-sets.js.map +1 -0
- package/dist/routes/__tests__/flags.test.d.ts +2 -0
- package/dist/routes/__tests__/flags.test.d.ts.map +1 -0
- package/dist/routes/__tests__/flags.test.js +257 -0
- package/dist/routes/__tests__/flags.test.js.map +1 -0
- package/dist/routes/__tests__/models-catalog.test.d.ts +2 -0
- package/dist/routes/__tests__/models-catalog.test.d.ts.map +1 -0
- package/dist/routes/__tests__/models-catalog.test.js +130 -0
- package/dist/routes/__tests__/models-catalog.test.js.map +1 -0
- package/dist/routes/__tests__/reflect-pause-drain.test.d.ts +2 -0
- package/dist/routes/__tests__/reflect-pause-drain.test.d.ts.map +1 -0
- package/dist/routes/__tests__/reflect-pause-drain.test.js +38 -0
- package/dist/routes/__tests__/reflect-pause-drain.test.js.map +1 -0
- package/dist/routes/__tests__/spend-pause-drain.test.d.ts +2 -0
- package/dist/routes/__tests__/spend-pause-drain.test.d.ts.map +1 -0
- package/dist/routes/__tests__/spend-pause-drain.test.js +38 -0
- package/dist/routes/__tests__/spend-pause-drain.test.js.map +1 -0
- package/dist/routes/admin.d.ts +49 -0
- package/dist/routes/admin.d.ts.map +1 -0
- package/dist/routes/admin.js +471 -0
- package/dist/routes/admin.js.map +1 -0
- package/dist/routes/blocks.d.ts +4 -0
- package/dist/routes/blocks.d.ts.map +1 -0
- package/dist/routes/blocks.js +893 -0
- package/dist/routes/blocks.js.map +1 -0
- package/dist/routes/chat-proxy.d.ts +5 -0
- package/dist/routes/chat-proxy.d.ts.map +1 -0
- package/dist/routes/chat-proxy.js +225 -0
- package/dist/routes/chat-proxy.js.map +1 -0
- package/dist/routes/conversations.d.ts +4 -0
- package/dist/routes/conversations.d.ts.map +1 -0
- package/dist/routes/conversations.js +139 -0
- package/dist/routes/conversations.js.map +1 -0
- package/dist/routes/flags.d.ts +4 -0
- package/dist/routes/flags.d.ts.map +1 -0
- package/dist/routes/flags.js +151 -0
- package/dist/routes/flags.js.map +1 -0
- package/dist/routes/inject.d.ts +4 -0
- package/dist/routes/inject.d.ts.map +1 -0
- package/dist/routes/inject.js +183 -0
- package/dist/routes/inject.js.map +1 -0
- package/dist/routes/mcp-http.d.ts +5 -0
- package/dist/routes/mcp-http.d.ts.map +1 -0
- package/dist/routes/mcp-http.js +94 -0
- package/dist/routes/mcp-http.js.map +1 -0
- package/dist/routes/quarantine.d.ts +4 -0
- package/dist/routes/quarantine.d.ts.map +1 -0
- package/dist/routes/quarantine.js +66 -0
- package/dist/routes/quarantine.js.map +1 -0
- package/dist/routes/recall.d.ts +5 -0
- package/dist/routes/recall.d.ts.map +1 -0
- package/dist/routes/recall.js +573 -0
- package/dist/routes/recall.js.map +1 -0
- package/dist/routes/reflect.d.ts +5 -0
- package/dist/routes/reflect.d.ts.map +1 -0
- package/dist/routes/reflect.js +231 -0
- package/dist/routes/reflect.js.map +1 -0
- package/dist/routes/session.d.ts +4 -0
- package/dist/routes/session.d.ts.map +1 -0
- package/dist/routes/session.js +418 -0
- package/dist/routes/session.js.map +1 -0
- package/dist/routes/state.d.ts +116 -0
- package/dist/routes/state.d.ts.map +1 -0
- package/dist/routes/state.js +621 -0
- package/dist/routes/state.js.map +1 -0
- package/dist/routes/usage.d.ts +3 -0
- package/dist/routes/usage.d.ts.map +1 -0
- package/dist/routes/usage.js +141 -0
- package/dist/routes/usage.js.map +1 -0
- package/dist/routes/workspace.d.ts +5 -0
- package/dist/routes/workspace.d.ts.map +1 -0
- package/dist/routes/workspace.js +435 -0
- package/dist/routes/workspace.js.map +1 -0
- package/dist/server.d.ts +13 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +298 -0
- package/dist/server.js.map +1 -0
- package/dist/store/__tests__/backup.test.d.ts +2 -0
- package/dist/store/__tests__/backup.test.d.ts.map +1 -0
- package/dist/store/__tests__/backup.test.js +53 -0
- package/dist/store/__tests__/backup.test.js.map +1 -0
- package/dist/store/__tests__/quality.test.d.ts +2 -0
- package/dist/store/__tests__/quality.test.d.ts.map +1 -0
- package/dist/store/__tests__/quality.test.js +75 -0
- package/dist/store/__tests__/quality.test.js.map +1 -0
- package/dist/store/backup.d.ts +14 -0
- package/dist/store/backup.d.ts.map +1 -0
- package/dist/store/backup.js +95 -0
- package/dist/store/backup.js.map +1 -0
- package/dist/store/database.d.ts +407 -0
- package/dist/store/database.d.ts.map +1 -0
- package/dist/store/database.js +2004 -0
- package/dist/store/database.js.map +1 -0
- package/dist/store/quality.d.ts +25 -0
- package/dist/store/quality.d.ts.map +1 -0
- package/dist/store/quality.js +48 -0
- package/dist/store/quality.js.map +1 -0
- package/dist/tools/__tests__/assemble-block-chains.test.d.ts +2 -0
- package/dist/tools/__tests__/assemble-block-chains.test.d.ts.map +1 -0
- package/dist/tools/__tests__/assemble-block-chains.test.js +118 -0
- package/dist/tools/__tests__/assemble-block-chains.test.js.map +1 -0
- package/dist/tools/__tests__/filter-roots-by-concepts.test.d.ts +2 -0
- package/dist/tools/__tests__/filter-roots-by-concepts.test.d.ts.map +1 -0
- package/dist/tools/__tests__/filter-roots-by-concepts.test.js +68 -0
- package/dist/tools/__tests__/filter-roots-by-concepts.test.js.map +1 -0
- package/dist/tools/__tests__/flag-surface.test.d.ts +2 -0
- package/dist/tools/__tests__/flag-surface.test.d.ts.map +1 -0
- package/dist/tools/__tests__/flag-surface.test.js +130 -0
- package/dist/tools/__tests__/flag-surface.test.js.map +1 -0
- package/dist/tools/core.d.ts +5 -0
- package/dist/tools/core.d.ts.map +1 -0
- package/dist/tools/core.js +962 -0
- package/dist/tools/core.js.map +1 -0
- package/dist/tools/derive.d.ts +5 -0
- package/dist/tools/derive.d.ts.map +1 -0
- package/dist/tools/derive.js +182 -0
- package/dist/tools/derive.js.map +1 -0
- package/dist/tools/flag-surface.d.ts +26 -0
- package/dist/tools/flag-surface.d.ts.map +1 -0
- package/dist/tools/flag-surface.js +59 -0
- package/dist/tools/flag-surface.js.map +1 -0
- package/dist/tools/helpers.d.ts +99 -0
- package/dist/tools/helpers.d.ts.map +1 -0
- package/dist/tools/helpers.js +243 -0
- package/dist/tools/helpers.js.map +1 -0
- package/dist/tools/projects.d.ts +5 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +175 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/system.d.ts +5 -0
- package/dist/tools/system.d.ts.map +1 -0
- package/dist/tools/system.js +1361 -0
- package/dist/tools/system.js.map +1 -0
- package/dist/tools/tasks.d.ts +5 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +289 -0
- package/dist/tools/tasks.js.map +1 -0
- package/package.json +69 -0
- package/scripts/nodedex-entry.mjs +396 -0
- package/tui-dist/App.js +185 -0
- package/tui-dist/api.js +197 -0
- package/tui-dist/cli.js +53 -0
- package/tui-dist/components.js +63 -0
- package/tui-dist/config.js +242 -0
- package/tui-dist/connect-snippets.js +98 -0
- package/tui-dist/feed.js +51 -0
- package/tui-dist/health.js +465 -0
- package/tui-dist/hooks.js +23 -0
- package/tui-dist/memory.js +220 -0
- package/tui-dist/onboarding.js +498 -0
- package/tui-dist/review.js +193 -0
- package/tui-dist/servers.js +556 -0
- package/tui-dist/smoke.js +15 -0
- package/tui-dist/theme.js +106 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/middleware/reflect/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export type ProviderInfo = {
|
|
2
|
+
model?: string;
|
|
3
|
+
attempts?: Array<{
|
|
4
|
+
model: string;
|
|
5
|
+
outcome: string;
|
|
6
|
+
}>;
|
|
7
|
+
};
|
|
8
|
+
export type PassTokenStats = {
|
|
9
|
+
input: number;
|
|
10
|
+
thinking: number;
|
|
11
|
+
output: number;
|
|
12
|
+
calls: number;
|
|
13
|
+
};
|
|
14
|
+
export type PassCost = {
|
|
15
|
+
ran: boolean;
|
|
16
|
+
model: string | undefined;
|
|
17
|
+
usd: number | null;
|
|
18
|
+
};
|
|
19
|
+
export type CostBreakdownProviders = {
|
|
20
|
+
pass0?: ProviderInfo;
|
|
21
|
+
pass1?: ProviderInfo;
|
|
22
|
+
pass_judge?: ProviderInfo;
|
|
23
|
+
pass2?: ProviderInfo;
|
|
24
|
+
pass3?: ProviderInfo;
|
|
25
|
+
pass4?: ProviderInfo;
|
|
26
|
+
pass5?: ProviderInfo;
|
|
27
|
+
pass_c_resolve?: ProviderInfo;
|
|
28
|
+
pass_reviewer?: ProviderInfo;
|
|
29
|
+
};
|
|
30
|
+
export type CostBreakdownTokenStats = {
|
|
31
|
+
pass0: PassTokenStats;
|
|
32
|
+
pass1: PassTokenStats;
|
|
33
|
+
pass_judge: PassTokenStats;
|
|
34
|
+
pass2: PassTokenStats;
|
|
35
|
+
pass2a: PassTokenStats;
|
|
36
|
+
pass2b: PassTokenStats;
|
|
37
|
+
pass2c: PassTokenStats;
|
|
38
|
+
pass3: PassTokenStats;
|
|
39
|
+
pass4: PassTokenStats;
|
|
40
|
+
pass5: PassTokenStats;
|
|
41
|
+
pass_c_resolve: PassTokenStats;
|
|
42
|
+
pass_reviewer: PassTokenStats;
|
|
43
|
+
};
|
|
44
|
+
export type CostBreakdown = {
|
|
45
|
+
pricing_version: string;
|
|
46
|
+
pass0: PassCost;
|
|
47
|
+
pass1: PassCost;
|
|
48
|
+
pass_judge: PassCost;
|
|
49
|
+
pass2: PassCost;
|
|
50
|
+
pass2a: PassCost;
|
|
51
|
+
pass2b: PassCost;
|
|
52
|
+
pass2c: PassCost;
|
|
53
|
+
pass3: PassCost;
|
|
54
|
+
pass4: PassCost;
|
|
55
|
+
pass5: PassCost;
|
|
56
|
+
pass_c_resolve: PassCost;
|
|
57
|
+
pass_reviewer: PassCost;
|
|
58
|
+
total_usd: number | null;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Build the per-pass cost_breakdown record for the turn log.
|
|
62
|
+
*
|
|
63
|
+
* total_usd accumulates only RAN-passes:
|
|
64
|
+
* - ran:false → skip (non-contribution; was previously poisoning total to null)
|
|
65
|
+
* - ran:true + usd:null → real cost gap, total goes null
|
|
66
|
+
* - ran:true + usd:number → contributes to running total
|
|
67
|
+
*/
|
|
68
|
+
export declare function buildCostBreakdown(providers: CostBreakdownProviders, tokenStats: CostBreakdownTokenStats): CostBreakdown;
|
|
69
|
+
//# sourceMappingURL=cost-breakdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-breakdown.d.ts","sourceRoot":"","sources":["../../../src/middleware/reflect/cost-breakdown.ts"],"names":[],"mappings":"AA0BA,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC;AACpG,MAAM,MAAM,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAChG,MAAM,MAAM,QAAQ,GAAG;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAEvF,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,YAAY,CAAC;IAMrB,cAAc,CAAC,EAAE,YAAY,CAAC;IAM9B,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,cAAc,CAAC;IAC3B,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,cAAc,CAAC;IACtB,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,cAAc,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,QAAQ,CAAC;IAChB,UAAU,EAAE,QAAQ,CAAC;IACrB,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,QAAQ,CAAC;IAChB,cAAc,EAAE,QAAQ,CAAC;IACzB,aAAa,EAAE,QAAQ,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,sBAAsB,EACjC,UAAU,EAAE,uBAAuB,GAClC,aAAa,CA2Bf"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
2
|
+
// COST BREAKDOWN — uniform per-pass turn-log record (debt-4 §3, 2026-05-29)
|
|
3
|
+
//
|
|
4
|
+
// Pure-function extraction of the per-pass cost_breakdown construction that
|
|
5
|
+
// previously lived as an IIFE in pipeline.ts. Extracted so the three meaningful
|
|
6
|
+
// states (ran:false / ran:true+priced / ran:true+null) can be unit-tested
|
|
7
|
+
// directly without the integration-scale fixture cost.
|
|
8
|
+
//
|
|
9
|
+
// THE THREE STATES — each carries a different meaning a reader must distinguish:
|
|
10
|
+
// ran:false + usd:null → pass DID NOT RUN this turn (checkpoint resume
|
|
11
|
+
// skipped it; pipeline.ts:730-733 pre-populates
|
|
12
|
+
// pass1/2 from checkpoint, leaving _passNProvider
|
|
13
|
+
// unset). Non-contribution to total.
|
|
14
|
+
// ran:true + usd:number → ran, priced cleanly. Contributes to total.
|
|
15
|
+
// ran:true + usd:null → ran with UNKNOWN model — audit signal,
|
|
16
|
+
// pricing table doesn't know the model
|
|
17
|
+
// (don't fabricate). Poisons total_usd to null.
|
|
18
|
+
//
|
|
19
|
+
// Pre-debt-4 the per-pass record was just { model, usd } — readers couldn't
|
|
20
|
+
// distinguish "didn't run" (legitimate skip) from "ran but unpriced" (real
|
|
21
|
+
// audit gap). Today's S1.1 finding (turn-08 NULL = checkpoint resume) is the
|
|
22
|
+
// case that motivated this distinction.
|
|
23
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
24
|
+
import { computeCost, COST_PRICING_VERSION } from "./cost-pricing.js";
|
|
25
|
+
/**
|
|
26
|
+
* Build the per-pass cost_breakdown record for the turn log.
|
|
27
|
+
*
|
|
28
|
+
* total_usd accumulates only RAN-passes:
|
|
29
|
+
* - ran:false → skip (non-contribution; was previously poisoning total to null)
|
|
30
|
+
* - ran:true + usd:null → real cost gap, total goes null
|
|
31
|
+
* - ran:true + usd:number → contributes to running total
|
|
32
|
+
*/
|
|
33
|
+
export function buildCostBreakdown(providers, tokenStats) {
|
|
34
|
+
const pass0 = { ran: !!providers.pass0, model: providers.pass0?.model, usd: computeCost(tokenStats.pass0, providers.pass0?.model) };
|
|
35
|
+
const pass1 = { ran: !!providers.pass1, model: providers.pass1?.model, usd: computeCost(tokenStats.pass1, providers.pass1?.model) };
|
|
36
|
+
const pass_judge = { ran: !!providers.pass_judge, model: providers.pass_judge?.model, usd: computeCost(tokenStats.pass_judge, providers.pass_judge?.model) };
|
|
37
|
+
const pass2 = { ran: !!providers.pass2, model: providers.pass2?.model, usd: computeCost(tokenStats.pass2, providers.pass2?.model) };
|
|
38
|
+
const pass2a = { ran: !!providers.pass2, model: providers.pass2?.model, usd: computeCost(tokenStats.pass2a, providers.pass2?.model) };
|
|
39
|
+
const pass2b = { ran: !!providers.pass2, model: providers.pass2?.model, usd: computeCost(tokenStats.pass2b, providers.pass2?.model) };
|
|
40
|
+
const pass2c = { ran: !!providers.pass2, model: providers.pass2?.model, usd: computeCost(tokenStats.pass2c, providers.pass2?.model) };
|
|
41
|
+
const pass3 = { ran: !!providers.pass3, model: providers.pass3?.model, usd: computeCost(tokenStats.pass3, providers.pass3?.model) };
|
|
42
|
+
const pass4 = { ran: !!providers.pass4, model: providers.pass4?.model, usd: computeCost(tokenStats.pass4, providers.pass4?.model) };
|
|
43
|
+
const pass5 = { ran: !!providers.pass5, model: providers.pass5?.model, usd: computeCost(tokenStats.pass5, providers.pass5?.model) };
|
|
44
|
+
const pass_c_resolve = { ran: !!providers.pass_c_resolve, model: providers.pass_c_resolve?.model, usd: computeCost(tokenStats.pass_c_resolve, providers.pass_c_resolve?.model) };
|
|
45
|
+
const pass_reviewer = { ran: !!providers.pass_reviewer, model: providers.pass_reviewer?.model, usd: computeCost(tokenStats.pass_reviewer, providers.pass_reviewer?.model) };
|
|
46
|
+
const passes = [pass0, pass1, pass_judge, pass2, pass2a, pass2b, pass2c, pass3, pass4, pass5, pass_c_resolve, pass_reviewer];
|
|
47
|
+
let total = 0;
|
|
48
|
+
for (const v of passes) {
|
|
49
|
+
if (!v.ran)
|
|
50
|
+
continue;
|
|
51
|
+
if (v.usd === null) {
|
|
52
|
+
total = null;
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
total += v.usd;
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
pricing_version: COST_PRICING_VERSION,
|
|
59
|
+
pass0, pass1, pass_judge, pass2, pass2a, pass2b, pass2c, pass3, pass4, pass5, pass_c_resolve, pass_reviewer,
|
|
60
|
+
total_usd: total,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=cost-breakdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-breakdown.js","sourceRoot":"","sources":["../../../src/middleware/reflect/cost-breakdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
export interface BudgetConfig {
|
|
2
|
+
minCreditUsd: number | null;
|
|
3
|
+
dailyBudgetUsd: number | null;
|
|
4
|
+
}
|
|
5
|
+
export declare function readBudgetConfig(): BudgetConfig;
|
|
6
|
+
export type CreditStatus = {
|
|
7
|
+
kind: "ok";
|
|
8
|
+
remaining: number;
|
|
9
|
+
total_credits: number | null;
|
|
10
|
+
total_usage: number | null;
|
|
11
|
+
} | {
|
|
12
|
+
kind: "unconfigured";
|
|
13
|
+
} | {
|
|
14
|
+
kind: "error";
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Live OpenRouter remaining credits, cached ~60s (the gate runs before every
|
|
18
|
+
* reflect job; we must not hammer the endpoint). Shared by /api/usage/balance
|
|
19
|
+
* and the breaker so both read one source.
|
|
20
|
+
*/
|
|
21
|
+
export declare function fetchOpenRouterCredits(force?: boolean): Promise<CreditStatus>;
|
|
22
|
+
export interface BudgetVerdict {
|
|
23
|
+
tripped: boolean;
|
|
24
|
+
reason: string | null;
|
|
25
|
+
config: BudgetConfig;
|
|
26
|
+
observed: {
|
|
27
|
+
credit: CreditStatus;
|
|
28
|
+
spend24h: number;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* PURE budget evaluation. No guard configured → never trips (default OFF).
|
|
33
|
+
* PRIMARY credit floor is checked first (ground truth + fail-closed), then the
|
|
34
|
+
* SECONDARY rolling-24h cap. Exported for direct unit testing.
|
|
35
|
+
*/
|
|
36
|
+
export declare function evaluateBudget(config: BudgetConfig, observed: {
|
|
37
|
+
credit: CreditStatus;
|
|
38
|
+
spend24h: number;
|
|
39
|
+
}): BudgetVerdict;
|
|
40
|
+
/**
|
|
41
|
+
* Gather the live observed values and evaluate. Short-circuits to a no-op with
|
|
42
|
+
* NO I/O when no guard is configured, so the per-job gate costs nothing by
|
|
43
|
+
* default. Only fetches the balance if the credit floor is set; only reads the
|
|
44
|
+
* ledger window if the daily cap is set.
|
|
45
|
+
*/
|
|
46
|
+
export declare function evaluateBudgetLive(nowMs?: number): Promise<BudgetVerdict>;
|
|
47
|
+
/**
|
|
48
|
+
* Safe budget check for the autonomous background workers (flag-reviewer,
|
|
49
|
+
* stage-audit, describer). Returns the verdict, or null if the breaker itself
|
|
50
|
+
* throws — fail OPEN, because a guard must never break the worker it guards.
|
|
51
|
+
*
|
|
52
|
+
* Unlike the reflect gate, a worker that sees `tripped` just SKIPS its tick
|
|
53
|
+
* (no pause file, no global pause): every spend path self-gates, and a worker
|
|
54
|
+
* re-checks each tick, so it halts while over budget and auto-resumes when the
|
|
55
|
+
* credit/window recovers. Reflect keeps its persistent manual-resume semantics
|
|
56
|
+
* because it's the user-facing pipeline; the workers are background enrichment.
|
|
57
|
+
*/
|
|
58
|
+
export declare function budgetTripped(): Promise<BudgetVerdict | null>;
|
|
59
|
+
export declare function pauseFilePath(): string;
|
|
60
|
+
/**
|
|
61
|
+
* Persist the trip by writing the reflect-pause file the boot path already
|
|
62
|
+
* honors — so a restart can't bypass the budget. Self-documenting content (the
|
|
63
|
+
* reason + timestamp); the boot check only tests existence. Best-effort.
|
|
64
|
+
*/
|
|
65
|
+
export declare function writePauseFile(reason: string): void;
|
|
66
|
+
export interface CreditOutVerdict {
|
|
67
|
+
out: boolean;
|
|
68
|
+
remaining: number | null;
|
|
69
|
+
floor: number;
|
|
70
|
+
reason: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* "Did an extraction just fail because the account is out of credit?" — the REACTIVE
|
|
74
|
+
* backstop the reflect queue calls on a failure, with a FORCE-REFRESHED live balance
|
|
75
|
+
* (no stale cache masking a just-now exhaustion). Out ⟺ the balance is readable AND at
|
|
76
|
+
* or below the effective floor (the user's NODEDEX_MIN_CREDIT_USD when set, else a tiny
|
|
77
|
+
* epsilon so a genuine ~$0 outage is always caught even with the soft floor off).
|
|
78
|
+
*
|
|
79
|
+
* Deliberately conservative on the unknowns: a non-OpenRouter setup ("unconfigured") or
|
|
80
|
+
* an unreadable balance ("error") returns out=false — we do NOT guess credit-out from a
|
|
81
|
+
* network blip; the normal failure path handles those. The DEFINITIVE 402 signal
|
|
82
|
+
* (isInsufficientCreditError on the raw error) is the queue's primary detector; this
|
|
83
|
+
* balance probe is the secondary net for paths where the 402 didn't surface.
|
|
84
|
+
*/
|
|
85
|
+
export declare function creditExhausted(): Promise<CreditOutVerdict>;
|
|
86
|
+
/**
|
|
87
|
+
* "Has credit POSITIVELY recovered?" — the auto-resume gate. Unlike `creditExhausted`,
|
|
88
|
+
* this is conservative the OTHER way: it returns recovered=true ONLY on a readable
|
|
89
|
+
* balance strictly above the floor. An indeterminate balance (non-OpenRouter setup, or
|
|
90
|
+
* an unreadable fetch) is NOT "recovered" — so a spend-pause never auto-lifts on a guess;
|
|
91
|
+
* those setups resume manually (POST /api/reflect/resume). Force-refreshes the balance.
|
|
92
|
+
*/
|
|
93
|
+
export declare function creditRecovered(): Promise<{
|
|
94
|
+
recovered: boolean;
|
|
95
|
+
remaining: number | null;
|
|
96
|
+
}>;
|
|
97
|
+
export declare function spendPauseFilePath(): string;
|
|
98
|
+
export declare function writeSpendPauseFile(reason: string): void;
|
|
99
|
+
export declare function spendPauseFileExists(): boolean;
|
|
100
|
+
export declare function readSpendPauseReason(): string | null;
|
|
101
|
+
export declare function clearSpendPauseFile(): void;
|
|
102
|
+
//# sourceMappingURL=cost-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-guard.d.ts","sourceRoot":"","sources":["../../../src/middleware/reflect/cost-guard.ts"],"names":[],"mappings":"AAmCA,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAQD,wBAAgB,gBAAgB,IAAI,YAAY,CAK/C;AAMD,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC3F;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAItB;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAgCjF;AAID,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAoBxH;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,GAAE,MAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAQ3F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAOnE;AAID,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CASnD;AAID,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAQjE;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAKjG;AAQD,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CASxD;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAEpD;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
// middleware/reflect/cost-guard.ts — cost circuit breaker (production gap 2).
|
|
2
|
+
//
|
|
3
|
+
// TRACK already exists (the usage ledger + the live OpenRouter balance). This is
|
|
4
|
+
// the CONTROL half: read spend, compare to a budget, and TRIP by reusing the
|
|
5
|
+
// reflect-pause lever so a runaway never silently drains credit. Two guards,
|
|
6
|
+
// each DEFAULT OFF (unset = no limit = today's behavior):
|
|
7
|
+
// PRIMARY — live OpenRouter remaining-credit floor (ground truth; catches
|
|
8
|
+
// every call type, incl. the ledger's blind spots). Fail-CLOSED:
|
|
9
|
+
// if the floor is set but the balance can't be read, we trip
|
|
10
|
+
// ("don't spend when we can't confirm budget"). NODEDEX_MIN_CREDIT_USD
|
|
11
|
+
// SECONDARY — ledger rolling-24h spend cap (fast, local, 97.8% real billed).
|
|
12
|
+
// NODEDEX_DAILY_BUDGET_USD
|
|
13
|
+
//
|
|
14
|
+
// Shape: a PURE evaluateBudget(config, observed) so the verdict logic is unit-
|
|
15
|
+
// testable with crafted numbers (no network, no clock), plus a thin async
|
|
16
|
+
// evaluateBudgetLive() that gathers the observed values. No import from
|
|
17
|
+
// routes/state.ts — the wiring point there owns the trip ACTION (setReflectPaused
|
|
18
|
+
// + writePauseFile) so there's no import cycle.
|
|
19
|
+
import { existsSync, mkdirSync, writeFileSync, readFileSync, rmSync } from "fs";
|
|
20
|
+
import { homedir } from "os";
|
|
21
|
+
import path from "path";
|
|
22
|
+
import { getSpendSince } from "../../engine/providers/usage-ledger.js";
|
|
23
|
+
const DAY_MS = 24 * 60 * 60 * 1000;
|
|
24
|
+
const CREDIT_CACHE_TTL_MS = 60_000;
|
|
25
|
+
// When NO floor is configured, a HARD exhaustion (remaining at/below this epsilon) is
|
|
26
|
+
// still caught by the reactive credit-out probe — so a genuine $0 outage always pauses
|
|
27
|
+
// + requeues even with the soft proactive floor left off (its default). A user-set
|
|
28
|
+
// NODEDEX_MIN_CREDIT_USD overrides this for the reactive check too.
|
|
29
|
+
const CREDIT_OUT_EPSILON_USD = 0.01;
|
|
30
|
+
function parseUsd(v) {
|
|
31
|
+
if (v == null || v.trim() === "")
|
|
32
|
+
return null;
|
|
33
|
+
const n = Number(v);
|
|
34
|
+
return Number.isFinite(n) && n >= 0 ? n : null;
|
|
35
|
+
}
|
|
36
|
+
export function readBudgetConfig() {
|
|
37
|
+
return {
|
|
38
|
+
minCreditUsd: parseUsd(process.env.NODEDEX_MIN_CREDIT_USD),
|
|
39
|
+
dailyBudgetUsd: parseUsd(process.env.NODEDEX_DAILY_BUDGET_USD),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
let creditCache = null;
|
|
43
|
+
/**
|
|
44
|
+
* Live OpenRouter remaining credits, cached ~60s (the gate runs before every
|
|
45
|
+
* reflect job; we must not hammer the endpoint). Shared by /api/usage/balance
|
|
46
|
+
* and the breaker so both read one source.
|
|
47
|
+
*/
|
|
48
|
+
export async function fetchOpenRouterCredits(force = false) {
|
|
49
|
+
const baseIsOpenRouter = (process.env.OPENAI_BASE_URL ?? "").includes("openrouter");
|
|
50
|
+
const key = process.env.OPENROUTER_API_KEY ?? process.env.OPENAI_API_KEY;
|
|
51
|
+
if (!baseIsOpenRouter || !key)
|
|
52
|
+
return { kind: "unconfigured" };
|
|
53
|
+
// force bypasses the cache — the reactive credit-out probe must read the LIVE balance
|
|
54
|
+
// right after a failed call, not a stale "ok" read from up to 60s ago that would mask a
|
|
55
|
+
// just-now exhaustion (→ the turn would be dropped instead of paused + requeued).
|
|
56
|
+
if (!force && creditCache && Date.now() - creditCache.at < CREDIT_CACHE_TTL_MS) {
|
|
57
|
+
return creditCache.status;
|
|
58
|
+
}
|
|
59
|
+
let status;
|
|
60
|
+
try {
|
|
61
|
+
const r = await fetch("https://openrouter.ai/api/v1/credits", {
|
|
62
|
+
headers: { Authorization: `Bearer ${key}` },
|
|
63
|
+
signal: AbortSignal.timeout(8000),
|
|
64
|
+
});
|
|
65
|
+
if (!r.ok) {
|
|
66
|
+
status = { kind: "error" };
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const j = await r.json();
|
|
70
|
+
const total_credits = j?.data?.total_credits ?? null;
|
|
71
|
+
const total_usage = j?.data?.total_usage ?? null;
|
|
72
|
+
status = total_credits !== null && total_usage !== null
|
|
73
|
+
? { kind: "ok", remaining: total_credits - total_usage, total_credits, total_usage }
|
|
74
|
+
: { kind: "error" };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
status = { kind: "error" };
|
|
79
|
+
}
|
|
80
|
+
creditCache = { status, at: Date.now() };
|
|
81
|
+
return status;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* PURE budget evaluation. No guard configured → never trips (default OFF).
|
|
85
|
+
* PRIMARY credit floor is checked first (ground truth + fail-closed), then the
|
|
86
|
+
* SECONDARY rolling-24h cap. Exported for direct unit testing.
|
|
87
|
+
*/
|
|
88
|
+
export function evaluateBudget(config, observed) {
|
|
89
|
+
const base = { config, observed };
|
|
90
|
+
if (config.minCreditUsd == null && config.dailyBudgetUsd == null) {
|
|
91
|
+
return { tripped: false, reason: null, ...base };
|
|
92
|
+
}
|
|
93
|
+
// PRIMARY — live remaining-credit floor.
|
|
94
|
+
if (config.minCreditUsd != null) {
|
|
95
|
+
if (observed.credit.kind === "error") {
|
|
96
|
+
return { tripped: true, reason: `live balance unavailable and NODEDEX_MIN_CREDIT_USD=$${config.minCreditUsd} is set — fail-closed (won't spend without confirming budget)`, ...base };
|
|
97
|
+
}
|
|
98
|
+
if (observed.credit.kind === "ok" && observed.credit.remaining < config.minCreditUsd) {
|
|
99
|
+
return { tripped: true, reason: `remaining $${observed.credit.remaining.toFixed(2)} below floor $${config.minCreditUsd.toFixed(2)} (NODEDEX_MIN_CREDIT_USD)`, ...base };
|
|
100
|
+
}
|
|
101
|
+
// "unconfigured" → the floor can't apply here; fall through to the daily cap.
|
|
102
|
+
}
|
|
103
|
+
// SECONDARY — rolling-24h ledger spend.
|
|
104
|
+
if (config.dailyBudgetUsd != null && observed.spend24h >= config.dailyBudgetUsd) {
|
|
105
|
+
return { tripped: true, reason: `24h spend $${observed.spend24h.toFixed(2)} reached budget $${config.dailyBudgetUsd.toFixed(2)} (NODEDEX_DAILY_BUDGET_USD)`, ...base };
|
|
106
|
+
}
|
|
107
|
+
return { tripped: false, reason: null, ...base };
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Gather the live observed values and evaluate. Short-circuits to a no-op with
|
|
111
|
+
* NO I/O when no guard is configured, so the per-job gate costs nothing by
|
|
112
|
+
* default. Only fetches the balance if the credit floor is set; only reads the
|
|
113
|
+
* ledger window if the daily cap is set.
|
|
114
|
+
*/
|
|
115
|
+
export async function evaluateBudgetLive(nowMs = Date.now()) {
|
|
116
|
+
const config = readBudgetConfig();
|
|
117
|
+
if (config.minCreditUsd == null && config.dailyBudgetUsd == null) {
|
|
118
|
+
return { tripped: false, reason: null, config, observed: { credit: { kind: "unconfigured" }, spend24h: 0 } };
|
|
119
|
+
}
|
|
120
|
+
const credit = config.minCreditUsd != null ? await fetchOpenRouterCredits() : { kind: "unconfigured" };
|
|
121
|
+
const spend24h = config.dailyBudgetUsd != null ? getSpendSince(nowMs - DAY_MS) : 0;
|
|
122
|
+
return evaluateBudget(config, { credit, spend24h });
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Safe budget check for the autonomous background workers (flag-reviewer,
|
|
126
|
+
* stage-audit, describer). Returns the verdict, or null if the breaker itself
|
|
127
|
+
* throws — fail OPEN, because a guard must never break the worker it guards.
|
|
128
|
+
*
|
|
129
|
+
* Unlike the reflect gate, a worker that sees `tripped` just SKIPS its tick
|
|
130
|
+
* (no pause file, no global pause): every spend path self-gates, and a worker
|
|
131
|
+
* re-checks each tick, so it halts while over budget and auto-resumes when the
|
|
132
|
+
* credit/window recovers. Reflect keeps its persistent manual-resume semantics
|
|
133
|
+
* because it's the user-facing pipeline; the workers are background enrichment.
|
|
134
|
+
*/
|
|
135
|
+
export async function budgetTripped() {
|
|
136
|
+
try {
|
|
137
|
+
return await evaluateBudgetLive();
|
|
138
|
+
}
|
|
139
|
+
catch (e) {
|
|
140
|
+
console.error("[cost-breaker] worker budget check threw — proceeding WITHOUT skipping:", e);
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// ─── Trip persistence ───────────────────────────────────────────────────────────
|
|
145
|
+
export function pauseFilePath() {
|
|
146
|
+
return path.join(homedir(), ".nodedex", "reflect-pause");
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Persist the trip by writing the reflect-pause file the boot path already
|
|
150
|
+
* honors — so a restart can't bypass the budget. Self-documenting content (the
|
|
151
|
+
* reason + timestamp); the boot check only tests existence. Best-effort.
|
|
152
|
+
*/
|
|
153
|
+
export function writePauseFile(reason) {
|
|
154
|
+
try {
|
|
155
|
+
const p = pauseFilePath();
|
|
156
|
+
const dir = path.dirname(p);
|
|
157
|
+
if (!existsSync(dir))
|
|
158
|
+
mkdirSync(dir, { recursive: true });
|
|
159
|
+
writeFileSync(p, JSON.stringify({ reason, tripped_at: new Date().toISOString(), by: "cost-breaker" }) + "\n", "utf8");
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
/* persistence is best-effort; the in-memory pause still holds this session */
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* "Did an extraction just fail because the account is out of credit?" — the REACTIVE
|
|
167
|
+
* backstop the reflect queue calls on a failure, with a FORCE-REFRESHED live balance
|
|
168
|
+
* (no stale cache masking a just-now exhaustion). Out ⟺ the balance is readable AND at
|
|
169
|
+
* or below the effective floor (the user's NODEDEX_MIN_CREDIT_USD when set, else a tiny
|
|
170
|
+
* epsilon so a genuine ~$0 outage is always caught even with the soft floor off).
|
|
171
|
+
*
|
|
172
|
+
* Deliberately conservative on the unknowns: a non-OpenRouter setup ("unconfigured") or
|
|
173
|
+
* an unreadable balance ("error") returns out=false — we do NOT guess credit-out from a
|
|
174
|
+
* network blip; the normal failure path handles those. The DEFINITIVE 402 signal
|
|
175
|
+
* (isInsufficientCreditError on the raw error) is the queue's primary detector; this
|
|
176
|
+
* balance probe is the secondary net for paths where the 402 didn't surface.
|
|
177
|
+
*/
|
|
178
|
+
export async function creditExhausted() {
|
|
179
|
+
const floor = readBudgetConfig().minCreditUsd ?? CREDIT_OUT_EPSILON_USD;
|
|
180
|
+
const credit = await fetchOpenRouterCredits(true);
|
|
181
|
+
if (credit.kind === "ok") {
|
|
182
|
+
const out = credit.remaining <= floor;
|
|
183
|
+
return { out, remaining: credit.remaining, floor, reason: out ? `remaining $${credit.remaining.toFixed(2)} at/below floor $${floor.toFixed(2)}` : `remaining $${credit.remaining.toFixed(2)} above floor $${floor.toFixed(2)}` };
|
|
184
|
+
}
|
|
185
|
+
return { out: false, remaining: null, floor, reason: credit.kind === "unconfigured" ? "not an OpenRouter setup — balance not checked" : "balance unreadable — not assuming credit-out" };
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* "Has credit POSITIVELY recovered?" — the auto-resume gate. Unlike `creditExhausted`,
|
|
189
|
+
* this is conservative the OTHER way: it returns recovered=true ONLY on a readable
|
|
190
|
+
* balance strictly above the floor. An indeterminate balance (non-OpenRouter setup, or
|
|
191
|
+
* an unreadable fetch) is NOT "recovered" — so a spend-pause never auto-lifts on a guess;
|
|
192
|
+
* those setups resume manually (POST /api/reflect/resume). Force-refreshes the balance.
|
|
193
|
+
*/
|
|
194
|
+
export async function creditRecovered() {
|
|
195
|
+
const floor = readBudgetConfig().minCreditUsd ?? CREDIT_OUT_EPSILON_USD;
|
|
196
|
+
const c = await fetchOpenRouterCredits(true);
|
|
197
|
+
if (c.kind === "ok")
|
|
198
|
+
return { recovered: c.remaining > floor, remaining: c.remaining };
|
|
199
|
+
return { recovered: false, remaining: null };
|
|
200
|
+
}
|
|
201
|
+
// ─── Spend-pause persistence (distinct from the capture reflect-pause) ────────────
|
|
202
|
+
// The cost-breaker + credit-out handler pause SPENDING (the drain), but capture keeps
|
|
203
|
+
// queuing — a different lever from the reflect-pause file (which drops capture). It gets
|
|
204
|
+
// its OWN file so (a) boot restores it as a spend-pause, not a capture-pause, and (b) the
|
|
205
|
+
// auto-resume timer only ever deletes THIS file — never the user's/dogfood reflect-pause.
|
|
206
|
+
export function spendPauseFilePath() {
|
|
207
|
+
return path.join(homedir(), ".nodedex", "spend-pause");
|
|
208
|
+
}
|
|
209
|
+
export function writeSpendPauseFile(reason) {
|
|
210
|
+
try {
|
|
211
|
+
const p = spendPauseFilePath();
|
|
212
|
+
const dir = path.dirname(p);
|
|
213
|
+
if (!existsSync(dir))
|
|
214
|
+
mkdirSync(dir, { recursive: true });
|
|
215
|
+
writeFileSync(p, JSON.stringify({ reason, paused_at: new Date().toISOString(), by: "cost-breaker" }) + "\n", "utf8");
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
/* best-effort; the in-memory spendPaused flag still holds this session */
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
export function spendPauseFileExists() {
|
|
222
|
+
try {
|
|
223
|
+
return existsSync(spendPauseFilePath());
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
return false;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
export function readSpendPauseReason() {
|
|
230
|
+
try {
|
|
231
|
+
return JSON.parse(readFileSync(spendPauseFilePath(), "utf8")).reason ?? null;
|
|
232
|
+
}
|
|
233
|
+
catch {
|
|
234
|
+
return null;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
export function clearSpendPauseFile() {
|
|
238
|
+
try {
|
|
239
|
+
rmSync(spendPauseFilePath(), { force: true });
|
|
240
|
+
}
|
|
241
|
+
catch { /* best-effort */ }
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=cost-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-guard.js","sourceRoot":"","sources":["../../../src/middleware/reflect/cost-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bumped whenever the PRICING table below is re-verified against provider
|
|
3
|
+
* docs / OpenRouter dashboard. Surfaced in the turn log so a future agent
|
|
4
|
+
* (or future me) reading old turn logs can tell if the cost figures used
|
|
5
|
+
* stale rates.
|
|
6
|
+
*/
|
|
7
|
+
export declare const COST_PRICING_VERSION = "2026-06-22";
|
|
8
|
+
/**
|
|
9
|
+
* Per-million-token rates in USD. `thinking_per_million` is optional and
|
|
10
|
+
* defaults to `output_per_million` when absent (most providers bill thinking
|
|
11
|
+
* as output tokens; OpenAI o-series is the notable exception but is not
|
|
12
|
+
* currently routed by this pipeline).
|
|
13
|
+
*/
|
|
14
|
+
export interface ModelRate {
|
|
15
|
+
input_per_million: number;
|
|
16
|
+
output_per_million: number;
|
|
17
|
+
thinking_per_million?: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Pricing table — model name string → per-million-token rates in USD.
|
|
21
|
+
*
|
|
22
|
+
* Add a new model = one entry. The key is the model name as it appears in
|
|
23
|
+
* provider.getName() / GenerateResult.model — these are the strings the
|
|
24
|
+
* pipeline already stamps into the turn log providers[] field. Stay
|
|
25
|
+
* verbatim to what providers emit so lookups are direct.
|
|
26
|
+
*
|
|
27
|
+
* Rates as of 2026-05-25. If you bump these, bump COST_PRICING_VERSION too
|
|
28
|
+
* so old turn-log readers can detect rate drift.
|
|
29
|
+
*/
|
|
30
|
+
export declare const PRICING: Record<string, ModelRate>;
|
|
31
|
+
/**
|
|
32
|
+
* Genuinely-FREE models ($0 at the provider). Kept OUT of PRICING — whose entries must be
|
|
33
|
+
* paid/non-zero (the "no accidental $0 lines" guard) — so a real free model is recognized as a
|
|
34
|
+
* known $0 rather than an "unknown model" (which would render as "?" in the cost panel). owl-alpha
|
|
35
|
+
* (the onboarding free option) is the case this fixes. Both OpenRouter-slug and bare forms.
|
|
36
|
+
*/
|
|
37
|
+
export declare const FREE_MODELS: Set<string>;
|
|
38
|
+
/**
|
|
39
|
+
* Token usage from one (or accumulated) LLM call(s). Matches the shape of
|
|
40
|
+
* `reflectTokenStats.passN` in context.ts so callers can pass the slot
|
|
41
|
+
* directly.
|
|
42
|
+
*/
|
|
43
|
+
export interface TokenUsage {
|
|
44
|
+
input?: number;
|
|
45
|
+
output?: number;
|
|
46
|
+
thinking?: number;
|
|
47
|
+
calls?: number;
|
|
48
|
+
}
|
|
49
|
+
export declare function computeCost(usage: TokenUsage | undefined, model: string | undefined): number | null;
|
|
50
|
+
/**
|
|
51
|
+
* Reset the warn-once memo. Useful for tests; not used in production code.
|
|
52
|
+
*/
|
|
53
|
+
export declare function _resetWarnings(): void;
|
|
54
|
+
//# sourceMappingURL=cost-pricing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-pricing.d.ts","sourceRoot":"","sources":["../../../src/middleware/reflect/cost-pricing.ts"],"names":[],"mappings":"AA+CA;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,iBAAiB,EAAM,MAAM,CAAC;IAC9B,kBAAkB,EAAK,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CA6B7C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,aAGtB,CAAC;AAEH;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAK,MAAM,CAAC;IAClB,MAAM,CAAC,EAAI,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAK,MAAM,CAAC;CACnB;AAcD,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CA+BnG;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
|