modelrig 0.0.1 → 0.2.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/CHANGELOG.md +94 -0
- package/LICENSE +201 -0
- package/README.md +145 -8
- package/data/PROVENANCE.md +19 -0
- package/data/pricing-manual.json +22 -0
- package/data/pricing-map.json +46362 -0
- package/data/pricing-overlay.json +419 -0
- package/dist/adapters/anthropic.d.ts +90 -0
- package/dist/adapters/anthropic.d.ts.map +1 -0
- package/dist/adapters/anthropic.js +296 -0
- package/dist/adapters/build-adapters.d.ts +11 -0
- package/dist/adapters/build-adapters.d.ts.map +1 -0
- package/dist/adapters/build-adapters.js +45 -0
- package/dist/adapters/deepseek.d.ts +47 -0
- package/dist/adapters/deepseek.d.ts.map +1 -0
- package/dist/adapters/deepseek.js +216 -0
- package/dist/adapters/gemini.d.ts +44 -0
- package/dist/adapters/gemini.d.ts.map +1 -0
- package/dist/adapters/gemini.js +262 -0
- package/dist/adapters/grok.d.ts +53 -0
- package/dist/adapters/grok.d.ts.map +1 -0
- package/dist/adapters/grok.js +232 -0
- package/dist/adapters/openai-compat.d.ts +80 -0
- package/dist/adapters/openai-compat.d.ts.map +1 -0
- package/dist/adapters/openai-compat.js +244 -0
- package/dist/adapters/openai-stream.d.ts +58 -0
- package/dist/adapters/openai-stream.d.ts.map +1 -0
- package/dist/adapters/openai-stream.js +120 -0
- package/dist/adapters/openai.d.ts +55 -0
- package/dist/adapters/openai.d.ts.map +1 -0
- package/dist/adapters/openai.js +281 -0
- package/dist/adapters/sampling.d.ts +28 -0
- package/dist/adapters/sampling.d.ts.map +1 -0
- package/dist/adapters/sampling.js +34 -0
- package/dist/adapters/tool-mapping.d.ts +92 -0
- package/dist/adapters/tool-mapping.d.ts.map +1 -0
- package/dist/adapters/tool-mapping.js +143 -0
- package/dist/artifacts/artifact.d.ts +137 -0
- package/dist/artifacts/artifact.d.ts.map +1 -0
- package/dist/artifacts/artifact.js +377 -0
- package/dist/artifacts/content-uploader.d.ts +87 -0
- package/dist/artifacts/content-uploader.d.ts.map +1 -0
- package/dist/artifacts/content-uploader.js +124 -0
- package/dist/artifacts/index.d.ts +63 -0
- package/dist/artifacts/index.d.ts.map +1 -0
- package/dist/artifacts/index.js +80 -0
- package/dist/artifacts/run-context.d.ts +129 -0
- package/dist/artifacts/run-context.d.ts.map +1 -0
- package/dist/artifacts/run-context.js +208 -0
- package/dist/artifacts/scrub.d.ts +60 -0
- package/dist/artifacts/scrub.d.ts.map +1 -0
- package/dist/artifacts/scrub.js +139 -0
- package/dist/artifacts/step.d.ts +26 -0
- package/dist/artifacts/step.d.ts.map +1 -0
- package/dist/artifacts/step.js +37 -0
- package/dist/artifacts/taint.d.ts +63 -0
- package/dist/artifacts/taint.d.ts.map +1 -0
- package/dist/artifacts/taint.js +76 -0
- package/dist/bakeoff/cache-sim.d.ts +99 -0
- package/dist/bakeoff/cache-sim.d.ts.map +1 -0
- package/dist/bakeoff/cache-sim.js +126 -0
- package/dist/bakeoff/engine.d.ts +52 -0
- package/dist/bakeoff/engine.d.ts.map +1 -0
- package/dist/bakeoff/engine.js +163 -0
- package/dist/bakeoff/eval-cases.d.ts +96 -0
- package/dist/bakeoff/eval-cases.d.ts.map +1 -0
- package/dist/bakeoff/eval-cases.js +105 -0
- package/dist/bakeoff/replay.d.ts +52 -0
- package/dist/bakeoff/replay.d.ts.map +1 -0
- package/dist/bakeoff/replay.js +94 -0
- package/dist/bakeoff/report.d.ts +41 -0
- package/dist/bakeoff/report.d.ts.map +1 -0
- package/dist/bakeoff/report.js +142 -0
- package/dist/bakeoff/samples.d.ts +77 -0
- package/dist/bakeoff/samples.d.ts.map +1 -0
- package/dist/bakeoff/samples.js +148 -0
- package/dist/bakeoff/stats.d.ts +13 -0
- package/dist/bakeoff/stats.d.ts.map +1 -0
- package/dist/bakeoff/stats.js +48 -0
- package/dist/bakeoff/types.d.ts +37 -0
- package/dist/bakeoff/types.d.ts.map +1 -0
- package/dist/bakeoff/types.js +10 -0
- package/dist/cli.d.ts +25 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +590 -0
- package/dist/config.d.ts +204 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +252 -0
- package/dist/deprecations.d.ts +32 -0
- package/dist/deprecations.d.ts.map +1 -0
- package/dist/deprecations.js +59 -0
- package/dist/feedback/coverage.d.ts +32 -0
- package/dist/feedback/coverage.d.ts.map +1 -0
- package/dist/feedback/coverage.js +95 -0
- package/dist/feedback/feedback.d.ts +35 -0
- package/dist/feedback/feedback.d.ts.map +1 -0
- package/dist/feedback/feedback.js +39 -0
- package/dist/gateway/http-protocol.d.ts +175 -0
- package/dist/gateway/http-protocol.d.ts.map +1 -0
- package/dist/gateway/http-protocol.js +105 -0
- package/dist/index.d.ts +242 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +576 -0
- package/dist/init/finder.d.ts +94 -0
- package/dist/init/finder.d.ts.map +1 -0
- package/dist/init/finder.js +343 -0
- package/dist/init/init-cli.d.ts +10 -0
- package/dist/init/init-cli.d.ts.map +1 -0
- package/dist/init/init-cli.js +86 -0
- package/dist/init/observe-cli.d.ts +19 -0
- package/dist/init/observe-cli.d.ts.map +1 -0
- package/dist/init/observe-cli.js +73 -0
- package/dist/init/observe.d.ts +81 -0
- package/dist/init/observe.d.ts.map +1 -0
- package/dist/init/observe.js +245 -0
- package/dist/init/run.d.ts +99 -0
- package/dist/init/run.d.ts.map +1 -0
- package/dist/init/run.js +281 -0
- package/dist/init/signatures.d.ts +39 -0
- package/dist/init/signatures.d.ts.map +1 -0
- package/dist/init/signatures.js +116 -0
- package/dist/matrix/aggregate.d.ts +89 -0
- package/dist/matrix/aggregate.d.ts.map +1 -0
- package/dist/matrix/aggregate.js +186 -0
- package/dist/query/grammar.d.ts +35 -0
- package/dist/query/grammar.d.ts.map +1 -0
- package/dist/query/grammar.js +279 -0
- package/dist/query/run.d.ts +8 -0
- package/dist/query/run.d.ts.map +1 -0
- package/dist/query/run.js +21 -0
- package/dist/registry/build.d.ts +219 -0
- package/dist/registry/build.d.ts.map +1 -0
- package/dist/registry/build.js +313 -0
- package/dist/registry/cache-policy.d.ts +94 -0
- package/dist/registry/cache-policy.d.ts.map +1 -0
- package/dist/registry/cache-policy.js +238 -0
- package/dist/registry/call-notes.d.ts +11 -0
- package/dist/registry/call-notes.d.ts.map +1 -0
- package/dist/registry/call-notes.js +110 -0
- package/dist/registry/claims.d.ts +63 -0
- package/dist/registry/claims.d.ts.map +1 -0
- package/dist/registry/claims.js +107 -0
- package/dist/registry/effective-rate.d.ts +151 -0
- package/dist/registry/effective-rate.d.ts.map +1 -0
- package/dist/registry/effective-rate.js +156 -0
- package/dist/registry/facts.d.ts +32 -0
- package/dist/registry/facts.d.ts.map +1 -0
- package/dist/registry/facts.js +136 -0
- package/dist/registry/fingerprint.d.ts +20 -0
- package/dist/registry/fingerprint.d.ts.map +1 -0
- package/dist/registry/fingerprint.js +150 -0
- package/dist/registry/parity.d.ts +52 -0
- package/dist/registry/parity.d.ts.map +1 -0
- package/dist/registry/parity.js +82 -0
- package/dist/registry/pricing-shape.d.ts +113 -0
- package/dist/registry/pricing-shape.d.ts.map +1 -0
- package/dist/registry/pricing-shape.js +123 -0
- package/dist/registry/pricing.d.ts +43 -0
- package/dist/registry/pricing.d.ts.map +1 -0
- package/dist/registry/pricing.js +127 -0
- package/dist/registry/rows.d.ts +16 -0
- package/dist/registry/rows.d.ts.map +1 -0
- package/dist/registry/rows.js +57 -0
- package/dist/registry/seed.d.ts +43 -0
- package/dist/registry/seed.d.ts.map +1 -0
- package/dist/registry/seed.js +97 -0
- package/dist/registry/select.d.ts +68 -0
- package/dist/registry/select.d.ts.map +1 -0
- package/dist/registry/select.js +141 -0
- package/dist/registry/staleness.d.ts +18 -0
- package/dist/registry/staleness.d.ts.map +1 -0
- package/dist/registry/staleness.js +39 -0
- package/dist/rigindex/bootstrap.d.ts +36 -0
- package/dist/rigindex/bootstrap.d.ts.map +1 -0
- package/dist/rigindex/bootstrap.js +97 -0
- package/dist/rigindex/fit.d.ts +24 -0
- package/dist/rigindex/fit.d.ts.map +1 -0
- package/dist/rigindex/fit.js +76 -0
- package/dist/rigindex/gates.d.ts +52 -0
- package/dist/rigindex/gates.d.ts.map +1 -0
- package/dist/rigindex/gates.js +109 -0
- package/dist/rigindex/graph.d.ts +31 -0
- package/dist/rigindex/graph.d.ts.map +1 -0
- package/dist/rigindex/graph.js +120 -0
- package/dist/rigindex/index.d.ts +23 -0
- package/dist/rigindex/index.d.ts.map +1 -0
- package/dist/rigindex/index.js +112 -0
- package/dist/rigindex/types.d.ts +76 -0
- package/dist/rigindex/types.d.ts.map +1 -0
- package/dist/rigindex/types.js +8 -0
- package/dist/routes/cache-lint.d.ts +41 -0
- package/dist/routes/cache-lint.d.ts.map +1 -0
- package/dist/routes/cache-lint.js +81 -0
- package/dist/routes/draft.d.ts +83 -0
- package/dist/routes/draft.d.ts.map +1 -0
- package/dist/routes/draft.js +135 -0
- package/dist/routes/loader.d.ts +63 -0
- package/dist/routes/loader.d.ts.map +1 -0
- package/dist/routes/loader.js +574 -0
- package/dist/routes/manifest.d.ts +24 -0
- package/dist/routes/manifest.d.ts.map +1 -0
- package/dist/routes/manifest.js +118 -0
- package/dist/routes/resolved-bundle.d.ts +79 -0
- package/dist/routes/resolved-bundle.d.ts.map +1 -0
- package/dist/routes/resolved-bundle.js +148 -0
- package/dist/routes/sampling-config.d.ts +32 -0
- package/dist/routes/sampling-config.d.ts.map +1 -0
- package/dist/routes/sampling-config.js +91 -0
- package/dist/routes/serveability.d.ts +52 -0
- package/dist/routes/serveability.d.ts.map +1 -0
- package/dist/routes/serveability.js +73 -0
- package/dist/routes/template.d.ts +18 -0
- package/dist/routes/template.d.ts.map +1 -0
- package/dist/routes/template.js +94 -0
- package/dist/run/ajv.d.ts +22 -0
- package/dist/run/ajv.d.ts.map +1 -0
- package/dist/run/ajv.js +32 -0
- package/dist/run/cache-handle.d.ts +58 -0
- package/dist/run/cache-handle.d.ts.map +1 -0
- package/dist/run/cache-handle.js +54 -0
- package/dist/run/cache-stamp.d.ts +65 -0
- package/dist/run/cache-stamp.d.ts.map +1 -0
- package/dist/run/cache-stamp.js +0 -0
- package/dist/run/capture-write.d.ts +33 -0
- package/dist/run/capture-write.d.ts.map +1 -0
- package/dist/run/capture-write.js +55 -0
- package/dist/run/cost.d.ts +26 -0
- package/dist/run/cost.d.ts.map +1 -0
- package/dist/run/cost.js +41 -0
- package/dist/run/dispatch.d.ts +99 -0
- package/dist/run/dispatch.d.ts.map +1 -0
- package/dist/run/dispatch.js +191 -0
- package/dist/run/envelope.d.ts +21 -0
- package/dist/run/envelope.d.ts.map +1 -0
- package/dist/run/envelope.js +45 -0
- package/dist/run/grounding.d.ts +56 -0
- package/dist/run/grounding.d.ts.map +1 -0
- package/dist/run/grounding.js +89 -0
- package/dist/run/raw.d.ts +88 -0
- package/dist/run/raw.d.ts.map +1 -0
- package/dist/run/raw.js +286 -0
- package/dist/run/record-attempt.d.ts +40 -0
- package/dist/run/record-attempt.d.ts.map +1 -0
- package/dist/run/record-attempt.js +99 -0
- package/dist/run/repair.d.ts +36 -0
- package/dist/run/repair.d.ts.map +1 -0
- package/dist/run/repair.js +61 -0
- package/dist/run/resolve.d.ts +99 -0
- package/dist/run/resolve.d.ts.map +1 -0
- package/dist/run/resolve.js +203 -0
- package/dist/run/retry.d.ts +19 -0
- package/dist/run/retry.d.ts.map +1 -0
- package/dist/run/retry.js +50 -0
- package/dist/run/run.d.ts +55 -0
- package/dist/run/run.d.ts.map +1 -0
- package/dist/run/run.js +540 -0
- package/dist/run/stream.d.ts +49 -0
- package/dist/run/stream.d.ts.map +1 -0
- package/dist/run/stream.js +87 -0
- package/dist/run/validate.d.ts +15 -0
- package/dist/run/validate.d.ts.map +1 -0
- package/dist/run/validate.js +55 -0
- package/dist/savings/cache-ledger.d.ts +108 -0
- package/dist/savings/cache-ledger.d.ts.map +1 -0
- package/dist/savings/cache-ledger.js +174 -0
- package/dist/savings/cache-reconcile.d.ts +64 -0
- package/dist/savings/cache-reconcile.d.ts.map +1 -0
- package/dist/savings/cache-reconcile.js +59 -0
- package/dist/savings/cache-stats.d.ts +63 -0
- package/dist/savings/cache-stats.d.ts.map +1 -0
- package/dist/savings/cache-stats.js +108 -0
- package/dist/savings/emit.d.ts +38 -0
- package/dist/savings/emit.d.ts.map +1 -0
- package/dist/savings/emit.js +100 -0
- package/dist/savings/odometer.d.ts +32 -0
- package/dist/savings/odometer.d.ts.map +1 -0
- package/dist/savings/odometer.js +70 -0
- package/dist/savings/swap-execute.d.ts +58 -0
- package/dist/savings/swap-execute.d.ts.map +1 -0
- package/dist/savings/swap-execute.js +130 -0
- package/dist/savings/swaps-client.d.ts +55 -0
- package/dist/savings/swaps-client.d.ts.map +1 -0
- package/dist/savings/swaps-client.js +95 -0
- package/dist/settings/api-fetcher.d.ts +39 -0
- package/dist/settings/api-fetcher.d.ts.map +1 -0
- package/dist/settings/api-fetcher.js +92 -0
- package/dist/settings/index.d.ts +10 -0
- package/dist/settings/index.d.ts.map +1 -0
- package/dist/settings/index.js +15 -0
- package/dist/settings/task-settings.d.ts +91 -0
- package/dist/settings/task-settings.d.ts.map +1 -0
- package/dist/settings/task-settings.js +116 -0
- package/dist/status.d.ts +77 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +113 -0
- package/dist/telemetry/artifact-store.d.ts +48 -0
- package/dist/telemetry/artifact-store.d.ts.map +1 -0
- package/dist/telemetry/artifact-store.js +189 -0
- package/dist/telemetry/cache-miss-streak.d.ts +79 -0
- package/dist/telemetry/cache-miss-streak.d.ts.map +1 -0
- package/dist/telemetry/cache-miss-streak.js +99 -0
- package/dist/telemetry/capture.d.ts +31 -0
- package/dist/telemetry/capture.d.ts.map +1 -0
- package/dist/telemetry/capture.js +81 -0
- package/dist/telemetry/exporter-setup.d.ts +28 -0
- package/dist/telemetry/exporter-setup.d.ts.map +1 -0
- package/dist/telemetry/exporter-setup.js +34 -0
- package/dist/telemetry/exporter.d.ts +137 -0
- package/dist/telemetry/exporter.d.ts.map +1 -0
- package/dist/telemetry/exporter.js +510 -0
- package/dist/telemetry/health.d.ts +76 -0
- package/dist/telemetry/health.d.ts.map +1 -0
- package/dist/telemetry/health.js +92 -0
- package/dist/telemetry/ingest-protocol.d.ts +310 -0
- package/dist/telemetry/ingest-protocol.d.ts.map +1 -0
- package/dist/telemetry/ingest-protocol.js +363 -0
- package/dist/telemetry/load-error-report.d.ts +24 -0
- package/dist/telemetry/load-error-report.d.ts.map +1 -0
- package/dist/telemetry/load-error-report.js +50 -0
- package/dist/telemetry/otel-map.d.ts +121 -0
- package/dist/telemetry/otel-map.d.ts.map +1 -0
- package/dist/telemetry/otel-map.js +224 -0
- package/dist/telemetry/otel-normalize.d.ts +104 -0
- package/dist/telemetry/otel-normalize.d.ts.map +1 -0
- package/dist/telemetry/otel-normalize.js +530 -0
- package/dist/telemetry/otlp-emitter.d.ts +52 -0
- package/dist/telemetry/otlp-emitter.d.ts.map +1 -0
- package/dist/telemetry/otlp-emitter.js +144 -0
- package/dist/telemetry/otlp-proto.d.ts +29 -0
- package/dist/telemetry/otlp-proto.d.ts.map +1 -0
- package/dist/telemetry/otlp-proto.js +266 -0
- package/dist/telemetry/sinks.d.ts +90 -0
- package/dist/telemetry/sinks.d.ts.map +1 -0
- package/dist/telemetry/sinks.js +180 -0
- package/dist/telemetry/store.d.ts +65 -0
- package/dist/telemetry/store.d.ts.map +1 -0
- package/dist/telemetry/store.js +547 -0
- package/dist/tenancy/api-key-format.d.ts +77 -0
- package/dist/tenancy/api-key-format.d.ts.map +1 -0
- package/dist/tenancy/api-key-format.js +110 -0
- package/dist/tenancy/constants.d.ts +23 -0
- package/dist/tenancy/constants.d.ts.map +1 -0
- package/dist/tenancy/constants.js +25 -0
- package/dist/tenancy/scrub.d.ts +47 -0
- package/dist/tenancy/scrub.d.ts.map +1 -0
- package/dist/tenancy/scrub.js +85 -0
- package/dist/types/config-teaching.d.ts +62 -0
- package/dist/types/config-teaching.d.ts.map +1 -0
- package/dist/types/config-teaching.js +183 -0
- package/dist/types/failures-teaching.d.ts +56 -0
- package/dist/types/failures-teaching.d.ts.map +1 -0
- package/dist/types/failures-teaching.js +177 -0
- package/dist/types/failures.d.ts +27 -0
- package/dist/types/failures.d.ts.map +1 -0
- package/dist/types/failures.js +41 -0
- package/dist/types/provider.d.ts +200 -0
- package/dist/types/provider.d.ts.map +1 -0
- package/dist/types/provider.js +40 -0
- package/dist/types/route.d.ts +205 -0
- package/dist/types/route.d.ts.map +1 -0
- package/dist/types/route.js +6 -0
- package/dist/types/telemetry.d.ts +206 -0
- package/dist/types/telemetry.d.ts.map +1 -0
- package/dist/types/telemetry.js +6 -0
- package/dist/validate-cli.d.ts +12 -0
- package/dist/validate-cli.d.ts.map +1 -0
- package/dist/validate-cli.js +57 -0
- package/dist/verify/capture.d.ts +66 -0
- package/dist/verify/capture.d.ts.map +1 -0
- package/dist/verify/capture.js +180 -0
- package/dist/verify/cli-run.d.ts +23 -0
- package/dist/verify/cli-run.d.ts.map +1 -0
- package/dist/verify/cli-run.js +57 -0
- package/dist/verify/diff.d.ts +48 -0
- package/dist/verify/diff.d.ts.map +1 -0
- package/dist/verify/diff.js +157 -0
- package/dist/verify/index.d.ts +17 -0
- package/dist/verify/index.d.ts.map +1 -0
- package/dist/verify/index.js +24 -0
- package/dist/verify/report.d.ts +14 -0
- package/dist/verify/report.d.ts.map +1 -0
- package/dist/verify/report.js +88 -0
- package/dist/verify/types.d.ts +101 -0
- package/dist/verify/types.d.ts.map +1 -0
- package/dist/verify/types.js +17 -0
- package/dist/verify/verify.d.ts +29 -0
- package/dist/verify/verify.d.ts.map +1 -0
- package/dist/verify/verify.js +148 -0
- package/dist/watch/budget.d.ts +19 -0
- package/dist/watch/budget.d.ts.map +1 -0
- package/dist/watch/budget.js +35 -0
- package/dist/watch/evaluate.d.ts +225 -0
- package/dist/watch/evaluate.d.ts.map +1 -0
- package/dist/watch/evaluate.js +155 -0
- package/dist/watch/monitor.d.ts +116 -0
- package/dist/watch/monitor.d.ts.map +1 -0
- package/dist/watch/monitor.js +199 -0
- package/dist/watch/proposals.d.ts +89 -0
- package/dist/watch/proposals.d.ts.map +1 -0
- package/dist/watch/proposals.js +197 -0
- package/dist/watch/run-record.d.ts +64 -0
- package/dist/watch/run-record.d.ts.map +1 -0
- package/dist/watch/run-record.js +86 -0
- package/dist/watch/run-reported.d.ts +20 -0
- package/dist/watch/run-reported.d.ts.map +1 -0
- package/dist/watch/run-reported.js +53 -0
- package/dist/watch/run.d.ts +73 -0
- package/dist/watch/run.d.ts.map +1 -0
- package/dist/watch/run.js +83 -0
- package/dist/watch/state-store.d.ts +48 -0
- package/dist/watch/state-store.d.ts.map +1 -0
- package/dist/watch/state-store.js +86 -0
- package/dist/watch/state.d.ts +21 -0
- package/dist/watch/state.d.ts.map +1 -0
- package/dist/watch/state.js +93 -0
- package/package.json +56 -14
- package/registry/LICENSE +20 -0
- package/registry/leaderboard.json +3639 -0
- package/registry/registry.json +7263 -0
- package/index.js +0 -3
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build-and-start the telemetry exporter from resolved config. Extracted from
|
|
3
|
+
* index.ts (the SDK entrypoint) so that file stays under the LOC cap while
|
|
4
|
+
* Phase 2 adds the settings resolver + boot banner beside it — the exporter
|
|
5
|
+
* wiring is mechanical and has one caller, so it lives here rather than inline.
|
|
6
|
+
*/
|
|
7
|
+
import type { RigManifest } from "../routes/manifest";
|
|
8
|
+
import type { ServeabilityWarning } from "../routes/serveability";
|
|
9
|
+
import type { ApiExportConfig, DirectExportConfig } from "../config";
|
|
10
|
+
import type { Exporter, ExportedRouteMirror } from "./exporter";
|
|
11
|
+
import type { ArtifactStore } from "./artifact-store";
|
|
12
|
+
import type { ExportableTelemetryStore } from "./store";
|
|
13
|
+
export interface ExporterSetupExtras {
|
|
14
|
+
readonly routes: readonly ExportedRouteMirror[];
|
|
15
|
+
readonly manifest: RigManifest | null;
|
|
16
|
+
readonly serveability: readonly ServeabilityWarning[];
|
|
17
|
+
/** v2 wire + runs/steps/artifact streams only when the namespace is enabled. */
|
|
18
|
+
readonly artifactsEnabled: boolean;
|
|
19
|
+
readonly artifactStore: ArtifactStore | null;
|
|
20
|
+
/** E4 chunk 0: retry 404'd content after a confirmed artifacts flush. */
|
|
21
|
+
readonly onArtifactsFlushed?: () => Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Construct the sink for the configured mode, wire the exporter, and start its
|
|
25
|
+
* flush loop. Returns the running exporter (the caller stops it on close()).
|
|
26
|
+
*/
|
|
27
|
+
export declare function startTelemetryExporter(telemetry: ExportableTelemetryStore, exportConfig: ApiExportConfig | DirectExportConfig, extras: ExporterSetupExtras): Exporter;
|
|
28
|
+
//# sourceMappingURL=exporter-setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exporter-setup.d.ts","sourceRoot":"","sources":["../../src/telemetry/exporter-setup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAErE,OAAO,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACtD,gFAAgF;IAChF,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7C,yEAAyE;IACzE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,wBAAwB,EACnC,YAAY,EAAE,eAAe,GAAG,kBAAkB,EAClD,MAAM,EAAE,mBAAmB,GAC1B,QAAQ,CAiBV"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Build-and-start the telemetry exporter from resolved config. Extracted from
|
|
4
|
+
* index.ts (the SDK entrypoint) so that file stays under the LOC cap while
|
|
5
|
+
* Phase 2 adds the settings resolver + boot banner beside it — the exporter
|
|
6
|
+
* wiring is mechanical and has one caller, so it lives here rather than inline.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.startTelemetryExporter = startTelemetryExporter;
|
|
10
|
+
const node_os_1 = require("node:os");
|
|
11
|
+
const exporter_1 = require("./exporter");
|
|
12
|
+
const sinks_1 = require("./sinks");
|
|
13
|
+
/**
|
|
14
|
+
* Construct the sink for the configured mode, wire the exporter, and start its
|
|
15
|
+
* flush loop. Returns the running exporter (the caller stops it on close()).
|
|
16
|
+
*/
|
|
17
|
+
function startTelemetryExporter(telemetry, exportConfig, extras) {
|
|
18
|
+
const sourceId = exportConfig.sourceId ?? (0, node_os_1.hostname)();
|
|
19
|
+
const sink = (0, sinks_1.buildTelemetrySink)(exportConfig, sourceId);
|
|
20
|
+
const exporter = (0, exporter_1.createTelemetryExporter)(telemetry, {
|
|
21
|
+
sink,
|
|
22
|
+
sourceId,
|
|
23
|
+
...(exportConfig.batchSize !== undefined ? { batchSize: exportConfig.batchSize } : {}),
|
|
24
|
+
...(exportConfig.intervalMs !== undefined ? { intervalMs: exportConfig.intervalMs } : {}),
|
|
25
|
+
routes: extras.routes,
|
|
26
|
+
manifest: extras.manifest,
|
|
27
|
+
serveability: extras.serveability,
|
|
28
|
+
artifacts: extras.artifactsEnabled,
|
|
29
|
+
...(extras.artifactStore !== null ? { artifactStore: extras.artifactStore } : {}),
|
|
30
|
+
...(extras.onArtifactsFlushed !== undefined ? { onArtifactsFlushed: extras.onArtifactsFlushed } : {}),
|
|
31
|
+
});
|
|
32
|
+
exporter.start();
|
|
33
|
+
return exporter;
|
|
34
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Async batch exporter: SQLite telemetry → wherever this rig's telemetry goes.
|
|
3
|
+
* Spec §5 (cloud sink) + §6 criteria 8–9. Fire-and-forget from the run loop:
|
|
4
|
+
* the inference path NEVER blocks on, or fails because of, this sink.
|
|
5
|
+
* At-least-once delivery with idempotent ids; unexported rows queue locally in
|
|
6
|
+
* SQLite (the inferences table itself, behind a rowid watermark) and flush on
|
|
7
|
+
* recovery; watermark bookkeeping per source instance.
|
|
8
|
+
*
|
|
9
|
+
* ── ONE LOOP, TWO TRANSPORTS (Phase 6 WS2) ───────────────────────────────
|
|
10
|
+
* Everything below is transport-agnostic. Batching, watermarks, backoff,
|
|
11
|
+
* once-per-process mirrors — all of it runs identically whether the batch
|
|
12
|
+
* leaves as a service-role PostgREST write (self-host) or as a `rig_sk_`-
|
|
13
|
+
* authenticated POST to api.modelrig.ai (hosted). That is not a tidiness
|
|
14
|
+
* preference: telemetry-ingestion-boundary.md §4 makes it a requirement, so
|
|
15
|
+
* that moving between self-host and hosted is a config change rather than a
|
|
16
|
+
* data-model change. `sinks.ts` holds the two transports; `ingest-protocol.ts`
|
|
17
|
+
* holds the one mapper both of them write rows through.
|
|
18
|
+
*/
|
|
19
|
+
import type { RigManifest } from "../routes/manifest";
|
|
20
|
+
import type { ResolvedRouteBundle } from "../routes/resolved-bundle";
|
|
21
|
+
import type { RouteBundle } from "../types/route";
|
|
22
|
+
import type { ServeabilityWarning } from "../routes/serveability";
|
|
23
|
+
import type { ConfigFailedState } from "../types/config-teaching";
|
|
24
|
+
import type { IngestBatch } from "./ingest-protocol";
|
|
25
|
+
import type { TelemetrySink } from "./sinks";
|
|
26
|
+
import type { ArtifactStore } from "./artifact-store";
|
|
27
|
+
import type { ExportableTelemetryStore } from "./store";
|
|
28
|
+
export interface ExportedRouteMirror {
|
|
29
|
+
readonly route: string;
|
|
30
|
+
readonly version: number;
|
|
31
|
+
readonly candidates: ReadonlyArray<{
|
|
32
|
+
readonly provider: string;
|
|
33
|
+
readonly model: string;
|
|
34
|
+
}>;
|
|
35
|
+
/** Capture opt-in FLAG (Phase 3 WS4) — status only; capture content never
|
|
36
|
+
* has a cloud surface. */
|
|
37
|
+
readonly capture?: boolean;
|
|
38
|
+
/** Phase D (spec §13): the RESOLVED bundle (schema + prompt template inlined)
|
|
39
|
+
* the hosted gateway serves, and its content hash. Built by `index.ts` from
|
|
40
|
+
* the already-loaded (file-resolved) bundle via `resolveRouteBundle`. */
|
|
41
|
+
readonly bundle?: ResolvedRouteBundle;
|
|
42
|
+
readonly bundleSha?: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Build the `routes` mirror payload from loaded bundles (Phase D, spec §13).
|
|
46
|
+
* Each `b` is ALREADY file-resolved — the loader inlined the schema + prompt
|
|
47
|
+
* files at createRig() and FAILED THERE (teaching RouteConfigError) if one was
|
|
48
|
+
* missing, so nothing unresolved reaches here and the gateway never needs the
|
|
49
|
+
* customer's filesystem (§13.1 rule 6). Lives here rather than in index.ts to
|
|
50
|
+
* keep that file under the LOC cap.
|
|
51
|
+
*/
|
|
52
|
+
export declare function buildExportedRouteMirrors(bundles: readonly RouteBundle[]): ExportedRouteMirror[];
|
|
53
|
+
export interface ExporterConfig {
|
|
54
|
+
/** Where batches go. `sinks.ts` builds one of these from config. */
|
|
55
|
+
readonly sink: TelemetrySink;
|
|
56
|
+
readonly sourceId: string;
|
|
57
|
+
readonly batchSize?: number;
|
|
58
|
+
readonly intervalMs?: number;
|
|
59
|
+
/** Loaded route bundles, mirrored to the `routes` table for the console. */
|
|
60
|
+
readonly routes?: readonly ExportedRouteMirror[];
|
|
61
|
+
/** Rig manifest, mirrored to the `rig_manifests` table for the console
|
|
62
|
+
* (dimension NAMES only — tag values never leave the telemetry rows). */
|
|
63
|
+
readonly manifest?: RigManifest | null;
|
|
64
|
+
/** Inert-candidate warnings for THIS deployment (F1) — mirrored onto the
|
|
65
|
+
* manifest row so console /setup can say "2 candidates inert here, set
|
|
66
|
+
* XAI_API_KEY" instead of the fact living only in a boot log. Names only:
|
|
67
|
+
* route, provider, model, env var. */
|
|
68
|
+
readonly serveability?: readonly ServeabilityWarning[];
|
|
69
|
+
/** Load-time RouteConfigError diagnostics for THIS deployment (follow-up #2)
|
|
70
|
+
* — mirrored onto the manifest row so /setup's "Define your first route" step
|
|
71
|
+
* renders `failed` with what we looked for and found, instead of silence.
|
|
72
|
+
* Absent/empty means the load was clean, and sending `[]` clears a stale
|
|
73
|
+
* failure from a prior broken deploy. */
|
|
74
|
+
readonly loadErrors?: readonly ConfigFailedState[];
|
|
75
|
+
/**
|
|
76
|
+
* Artifact / execution-graph namespace active (Expansion E2). When true the
|
|
77
|
+
* exporter announces protocol v2 and ships the `runs`/`steps` streams; when
|
|
78
|
+
* false (the default) it announces v1 and ships nothing new — byte-identical
|
|
79
|
+
* to before v2 existed (spec §1.3/§1.4). The wire version is a property of the
|
|
80
|
+
* EXPORTER, not the batch: once artifacts are on, every batch is v2, so an old
|
|
81
|
+
* server 422s loudly rather than silently dropping artifact sections.
|
|
82
|
+
*/
|
|
83
|
+
readonly artifacts?: boolean;
|
|
84
|
+
/** The local artifact-metadata buffer (chunk B). A SEPARATE handle from the
|
|
85
|
+
* telemetry store; present only when the namespace is enabled. Its rows ride
|
|
86
|
+
* the `:artifacts`/`:edges`/`:evals` watermark streams (watermarks live in the
|
|
87
|
+
* main store's export_state, rows are read from here). */
|
|
88
|
+
readonly artifactStore?: ArtifactStore;
|
|
89
|
+
/**
|
|
90
|
+
* Post-flush hook fired AFTER a confirmed export of the artifacts stream (E4
|
|
91
|
+
* chunk 0, flag 2). The artifact api wires this to `retryPendingContent`: a
|
|
92
|
+
* content upload that 404'd because it raced its own metadata export is now
|
|
93
|
+
* safe to re-attempt, because the metadata row just landed in the control
|
|
94
|
+
* plane. It runs only once the artifact drains have all returned (a throw in
|
|
95
|
+
* any of them aborts the flush before this, so "confirmed export" holds), and
|
|
96
|
+
* it must never throw — a rejection here is swallowed like any flush failure.
|
|
97
|
+
*/
|
|
98
|
+
readonly onArtifactsFlushed?: () => Promise<void>;
|
|
99
|
+
}
|
|
100
|
+
/** Poison-pill counters (E2 hardening Phase 2, spec §2.3.5): per-stream row
|
|
101
|
+
* counts the exporter has SKIPPED past because the batch was rejected
|
|
102
|
+
* deterministically K times running. In-memory, per instance; empty `{}` on a
|
|
103
|
+
* healthy exporter. Mirrors the `IngestOutcome.reasons` map shape. */
|
|
104
|
+
export interface ExporterStats {
|
|
105
|
+
readonly poisonSkipped: Readonly<Record<string, number>>;
|
|
106
|
+
}
|
|
107
|
+
export interface Exporter {
|
|
108
|
+
/** Which lane this rig's telemetry is travelling in. Read by the boot
|
|
109
|
+
* banner — WS1's lesson was that a mode nobody can observe gets asked
|
|
110
|
+
* about instead of answered. */
|
|
111
|
+
readonly mode: "direct" | "api";
|
|
112
|
+
start(): void;
|
|
113
|
+
/** Flush pending rows now (used by tests and process-exit hooks). */
|
|
114
|
+
flush(): Promise<void>;
|
|
115
|
+
stop(): Promise<void>;
|
|
116
|
+
/** Poison batches this exporter has skipped past, per stream (additive; E2
|
|
117
|
+
* hardening Phase 2). The `/status` snapshot and any operator dashboard read
|
|
118
|
+
* it; a healthy exporter returns `{ poisonSkipped: {} }`. */
|
|
119
|
+
stats(): ExporterStats;
|
|
120
|
+
}
|
|
121
|
+
/** The flush cadence. Exported so the settings resolver (§1.5) can beat on the
|
|
122
|
+
* SAME interval — "refreshes on the exporter interval" without a second knob. */
|
|
123
|
+
export declare const DEFAULT_INTERVAL_MS = 10000;
|
|
124
|
+
export declare function createTelemetryExporter(store: ExportableTelemetryStore, config: ExporterConfig): Exporter;
|
|
125
|
+
/**
|
|
126
|
+
* The one-shot manifest batch that carries a load-time config failure to the
|
|
127
|
+
* console (follow-up #2), for the case `createRig` throws BEFORE the exporter
|
|
128
|
+
* loop exists (a route bundle that fails to load never reaches the loop).
|
|
129
|
+
*
|
|
130
|
+
* It is a manifest-only batch: no inferences, no watermark. The manifest carries
|
|
131
|
+
* whatever `rig.yaml` could still provide (name/dimensions/contribution — the
|
|
132
|
+
* routes failing to load does not stop rig.yaml loading) plus the load errors;
|
|
133
|
+
* `serveability` is `[]` because it cannot be computed without loaded routes.
|
|
134
|
+
* A caller sends it fire-and-forget through the same sink the run loop uses.
|
|
135
|
+
*/
|
|
136
|
+
export declare function buildLoadErrorBatch(sourceId: string, manifest: Pick<RigManifest, "name" | "dimensions" | "contribution"> | null, loadErrors: readonly ConfigFailedState[]): IngestBatch;
|
|
137
|
+
//# sourceMappingURL=exporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../../src/telemetry/exporter.ts"],"names":[],"mappings":"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"}
|