@vauban-org/agent-sdk 0.16.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/CONTRACT.md +6968 -0
- package/README.md +205 -0
- package/dist/adapters/hitl/memory-state-store.d.ts +23 -0
- package/dist/adapters/hitl/memory-state-store.d.ts.map +1 -0
- package/dist/adapters/hitl/memory-state-store.js +72 -0
- package/dist/adapters/hitl/memory-state-store.js.map +1 -0
- package/dist/adapters/hitl/postgres-state-store.d.ts +29 -0
- package/dist/adapters/hitl/postgres-state-store.d.ts.map +1 -0
- package/dist/adapters/hitl/postgres-state-store.js +103 -0
- package/dist/adapters/hitl/postgres-state-store.js.map +1 -0
- package/dist/adapters/llm/anthropic-direct.d.ts +28 -0
- package/dist/adapters/llm/anthropic-direct.d.ts.map +1 -0
- package/dist/adapters/llm/anthropic-direct.js +163 -0
- package/dist/adapters/llm/anthropic-direct.js.map +1 -0
- package/dist/adapters/llm/cascade.d.ts +27 -0
- package/dist/adapters/llm/cascade.d.ts.map +1 -0
- package/dist/adapters/llm/cascade.js +88 -0
- package/dist/adapters/llm/cascade.js.map +1 -0
- package/dist/adapters/llm/litellm.d.ts +28 -0
- package/dist/adapters/llm/litellm.d.ts.map +1 -0
- package/dist/adapters/llm/litellm.js +239 -0
- package/dist/adapters/llm/litellm.js.map +1 -0
- package/dist/adapters/messaging/console.d.ts +32 -0
- package/dist/adapters/messaging/console.d.ts.map +1 -0
- package/dist/adapters/messaging/console.js +47 -0
- package/dist/adapters/messaging/console.js.map +1 -0
- package/dist/adapters/messaging/discord.d.ts +34 -0
- package/dist/adapters/messaging/discord.d.ts.map +1 -0
- package/dist/adapters/messaging/discord.js +86 -0
- package/dist/adapters/messaging/discord.js.map +1 -0
- package/dist/adapters/messaging/mcp.d.ts +53 -0
- package/dist/adapters/messaging/mcp.d.ts.map +1 -0
- package/dist/adapters/messaging/mcp.js +43 -0
- package/dist/adapters/messaging/mcp.js.map +1 -0
- package/dist/adapters/messaging/slack.d.ts +21 -0
- package/dist/adapters/messaging/slack.d.ts.map +1 -0
- package/dist/adapters/messaging/slack.js +71 -0
- package/dist/adapters/messaging/slack.js.map +1 -0
- package/dist/adapters/messaging/telegram.d.ts +31 -0
- package/dist/adapters/messaging/telegram.d.ts.map +1 -0
- package/dist/adapters/messaging/telegram.js +85 -0
- package/dist/adapters/messaging/telegram.js.map +1 -0
- package/dist/adapters/registry/memory.d.ts +40 -0
- package/dist/adapters/registry/memory.d.ts.map +1 -0
- package/dist/adapters/registry/memory.js +71 -0
- package/dist/adapters/registry/memory.js.map +1 -0
- package/dist/adapters/registry/postgres.d.ts +39 -0
- package/dist/adapters/registry/postgres.d.ts.map +1 -0
- package/dist/adapters/registry/postgres.js +124 -0
- package/dist/adapters/registry/postgres.js.map +1 -0
- package/dist/agents/index.d.ts +2 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +3 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/trading.d.ts +99 -0
- package/dist/agents/trading.d.ts.map +1 -0
- package/dist/agents/trading.js +39 -0
- package/dist/agents/trading.js.map +1 -0
- package/dist/auth/errors.d.ts +38 -0
- package/dist/auth/errors.d.ts.map +1 -0
- package/dist/auth/errors.js +57 -0
- package/dist/auth/errors.js.map +1 -0
- package/dist/auth/nonce-store.d.ts +52 -0
- package/dist/auth/nonce-store.d.ts.map +1 -0
- package/dist/auth/nonce-store.js +55 -0
- package/dist/auth/nonce-store.js.map +1 -0
- package/dist/auth/sign-event.d.ts +28 -0
- package/dist/auth/sign-event.d.ts.map +1 -0
- package/dist/auth/sign-event.js +42 -0
- package/dist/auth/sign-event.js.map +1 -0
- package/dist/auth/verify-event.d.ts +36 -0
- package/dist/auth/verify-event.d.ts.map +1 -0
- package/dist/auth/verify-event.js +78 -0
- package/dist/auth/verify-event.js.map +1 -0
- package/dist/boot/init-sdk.d.ts +69 -0
- package/dist/boot/init-sdk.d.ts.map +1 -0
- package/dist/boot/init-sdk.js +53 -0
- package/dist/boot/init-sdk.js.map +1 -0
- package/dist/boot/load-agent-context.d.ts +82 -0
- package/dist/boot/load-agent-context.d.ts.map +1 -0
- package/dist/boot/load-agent-context.js +90 -0
- package/dist/boot/load-agent-context.js.map +1 -0
- package/dist/boot/load-recent-memory.d.ts +47 -0
- package/dist/boot/load-recent-memory.d.ts.map +1 -0
- package/dist/boot/load-recent-memory.js +56 -0
- package/dist/boot/load-recent-memory.js.map +1 -0
- package/dist/budget/budget-state.d.ts +88 -0
- package/dist/budget/budget-state.d.ts.map +1 -0
- package/dist/budget/budget-state.js +172 -0
- package/dist/budget/budget-state.js.map +1 -0
- package/dist/budget/index.d.ts +3 -0
- package/dist/budget/index.d.ts.map +1 -0
- package/dist/budget/index.js +2 -0
- package/dist/budget/index.js.map +1 -0
- package/dist/clients/agents.d.ts +40 -0
- package/dist/clients/agents.d.ts.map +1 -0
- package/dist/clients/agents.js +85 -0
- package/dist/clients/agents.js.map +1 -0
- package/dist/clients/index.d.ts +7 -0
- package/dist/clients/index.d.ts.map +1 -0
- package/dist/clients/index.js +7 -0
- package/dist/clients/index.js.map +1 -0
- package/dist/clients/messaging-adapters.d.ts +51 -0
- package/dist/clients/messaging-adapters.d.ts.map +1 -0
- package/dist/clients/messaging-adapters.js +118 -0
- package/dist/clients/messaging-adapters.js.map +1 -0
- package/dist/clients/pipelines.d.ts +43 -0
- package/dist/clients/pipelines.d.ts.map +1 -0
- package/dist/clients/pipelines.js +96 -0
- package/dist/clients/pipelines.js.map +1 -0
- package/dist/compute/strategies/best-of-n.d.ts +46 -0
- package/dist/compute/strategies/best-of-n.d.ts.map +1 -0
- package/dist/compute/strategies/best-of-n.js +112 -0
- package/dist/compute/strategies/best-of-n.js.map +1 -0
- package/dist/compute/strategies/bon-mav.d.ts +65 -0
- package/dist/compute/strategies/bon-mav.d.ts.map +1 -0
- package/dist/compute/strategies/bon-mav.js +154 -0
- package/dist/compute/strategies/bon-mav.js.map +1 -0
- package/dist/compute/strategies/single-shot.d.ts +17 -0
- package/dist/compute/strategies/single-shot.d.ts.map +1 -0
- package/dist/compute/strategies/single-shot.js +36 -0
- package/dist/compute/strategies/single-shot.js.map +1 -0
- package/dist/compute/types.d.ts +30 -0
- package/dist/compute/types.d.ts.map +1 -0
- package/dist/compute/types.js +8 -0
- package/dist/compute/types.js.map +1 -0
- package/dist/compute/verifier.d.ts +55 -0
- package/dist/compute/verifier.d.ts.map +1 -0
- package/dist/compute/verifier.js +35 -0
- package/dist/compute/verifier.js.map +1 -0
- package/dist/compute/with-compute.d.ts +50 -0
- package/dist/compute/with-compute.d.ts.map +1 -0
- package/dist/compute/with-compute.js +69 -0
- package/dist/compute/with-compute.js.map +1 -0
- package/dist/constitution/axioms.d.ts +65 -0
- package/dist/constitution/axioms.d.ts.map +1 -0
- package/dist/constitution/axioms.js +496 -0
- package/dist/constitution/axioms.js.map +1 -0
- package/dist/constitution/gate.d.ts +47 -0
- package/dist/constitution/gate.d.ts.map +1 -0
- package/dist/constitution/gate.js +143 -0
- package/dist/constitution/gate.js.map +1 -0
- package/dist/constitution/index.d.ts +20 -0
- package/dist/constitution/index.d.ts.map +1 -0
- package/dist/constitution/index.js +15 -0
- package/dist/constitution/index.js.map +1 -0
- package/dist/constitution/scorer.d.ts +67 -0
- package/dist/constitution/scorer.d.ts.map +1 -0
- package/dist/constitution/scorer.js +111 -0
- package/dist/constitution/scorer.js.map +1 -0
- package/dist/constitution/signal.d.ts +41 -0
- package/dist/constitution/signal.d.ts.map +1 -0
- package/dist/constitution/signal.js +61 -0
- package/dist/constitution/signal.js.map +1 -0
- package/dist/constitution/types.d.ts +295 -0
- package/dist/constitution/types.d.ts.map +1 -0
- package/dist/constitution/types.js +59 -0
- package/dist/constitution/types.js.map +1 -0
- package/dist/counterfactual/index.d.ts +11 -0
- package/dist/counterfactual/index.d.ts.map +1 -0
- package/dist/counterfactual/index.js +10 -0
- package/dist/counterfactual/index.js.map +1 -0
- package/dist/counterfactual/replay-with-alt.d.ts +137 -0
- package/dist/counterfactual/replay-with-alt.d.ts.map +1 -0
- package/dist/counterfactual/replay-with-alt.js +191 -0
- package/dist/counterfactual/replay-with-alt.js.map +1 -0
- package/dist/dataops/index.d.ts +5 -0
- package/dist/dataops/index.d.ts.map +1 -0
- package/dist/dataops/index.js +3 -0
- package/dist/dataops/index.js.map +1 -0
- package/dist/dataops/starkscan.d.ts +13 -0
- package/dist/dataops/starkscan.d.ts.map +1 -0
- package/dist/dataops/starkscan.js +12 -0
- package/dist/dataops/starkscan.js.map +1 -0
- package/dist/dataops/voyager.d.ts +58 -0
- package/dist/dataops/voyager.d.ts.map +1 -0
- package/dist/dataops/voyager.js +146 -0
- package/dist/dataops/voyager.js.map +1 -0
- package/dist/deprecation.d.ts +49 -0
- package/dist/deprecation.d.ts.map +1 -0
- package/dist/deprecation.js +84 -0
- package/dist/deprecation.js.map +1 -0
- package/dist/durable/bullmq-runner.d.ts +138 -0
- package/dist/durable/bullmq-runner.d.ts.map +1 -0
- package/dist/durable/bullmq-runner.js +378 -0
- package/dist/durable/bullmq-runner.js.map +1 -0
- package/dist/durable/index.d.ts +3 -0
- package/dist/durable/index.d.ts.map +1 -0
- package/dist/durable/index.js +2 -0
- package/dist/durable/index.js.map +1 -0
- package/dist/economy/circuit-breaker.d.ts +37 -0
- package/dist/economy/circuit-breaker.d.ts.map +1 -0
- package/dist/economy/circuit-breaker.js +104 -0
- package/dist/economy/circuit-breaker.js.map +1 -0
- package/dist/economy/economy-router.d.ts +103 -0
- package/dist/economy/economy-router.d.ts.map +1 -0
- package/dist/economy/economy-router.js +176 -0
- package/dist/economy/economy-router.js.map +1 -0
- package/dist/economy/index.d.ts +16 -0
- package/dist/economy/index.d.ts.map +1 -0
- package/dist/economy/index.js +11 -0
- package/dist/economy/index.js.map +1 -0
- package/dist/economy/outcome-tracker.d.ts +90 -0
- package/dist/economy/outcome-tracker.d.ts.map +1 -0
- package/dist/economy/outcome-tracker.js +172 -0
- package/dist/economy/outcome-tracker.js.map +1 -0
- package/dist/economy/router.d.ts +97 -0
- package/dist/economy/router.d.ts.map +1 -0
- package/dist/economy/router.js +181 -0
- package/dist/economy/router.js.map +1 -0
- package/dist/economy/tier-policy.d.ts +46 -0
- package/dist/economy/tier-policy.d.ts.map +1 -0
- package/dist/economy/tier-policy.js +76 -0
- package/dist/economy/tier-policy.js.map +1 -0
- package/dist/errors.d.ts +102 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +135 -0
- package/dist/errors.js.map +1 -0
- package/dist/evals/datasets/index.d.ts +27 -0
- package/dist/evals/datasets/index.d.ts.map +1 -0
- package/dist/evals/datasets/index.js +279 -0
- package/dist/evals/datasets/index.js.map +1 -0
- package/dist/evals/harness.d.ts +52 -0
- package/dist/evals/harness.d.ts.map +1 -0
- package/dist/evals/harness.js +108 -0
- package/dist/evals/harness.js.map +1 -0
- package/dist/evals/index.d.ts +5 -0
- package/dist/evals/index.d.ts.map +1 -0
- package/dist/evals/index.js +3 -0
- package/dist/evals/index.js.map +1 -0
- package/dist/factory/agent-factory.d.ts +86 -0
- package/dist/factory/agent-factory.d.ts.map +1 -0
- package/dist/factory/agent-factory.js +119 -0
- package/dist/factory/agent-factory.js.map +1 -0
- package/dist/hitl/api.d.ts +38 -0
- package/dist/hitl/api.d.ts.map +1 -0
- package/dist/hitl/api.js +58 -0
- package/dist/hitl/api.js.map +1 -0
- package/dist/hitl/approval-channel.d.ts +84 -0
- package/dist/hitl/approval-channel.d.ts.map +1 -0
- package/dist/hitl/approval-channel.js +59 -0
- package/dist/hitl/approval-channel.js.map +1 -0
- package/dist/hitl/callback-handlers.d.ts +21 -0
- package/dist/hitl/callback-handlers.d.ts.map +1 -0
- package/dist/hitl/callback-handlers.js +30 -0
- package/dist/hitl/callback-handlers.js.map +1 -0
- package/dist/hitl/index.d.ts +3 -0
- package/dist/hitl/index.d.ts.map +1 -0
- package/dist/hitl/index.js +2 -0
- package/dist/hitl/index.js.map +1 -0
- package/dist/hitl/slack.d.ts +76 -0
- package/dist/hitl/slack.d.ts.map +1 -0
- package/dist/hitl/slack.js +243 -0
- package/dist/hitl/slack.js.map +1 -0
- package/dist/hitl/telegram.d.ts +74 -0
- package/dist/hitl/telegram.d.ts.map +1 -0
- package/dist/hitl/telegram.js +227 -0
- package/dist/hitl/telegram.js.map +1 -0
- package/dist/index.d.ts +173 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +147 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/parse-structured-output.d.ts +55 -0
- package/dist/llm/parse-structured-output.d.ts.map +1 -0
- package/dist/llm/parse-structured-output.js +80 -0
- package/dist/llm/parse-structured-output.js.map +1 -0
- package/dist/loop/index.d.ts +7 -0
- package/dist/loop/index.d.ts.map +1 -0
- package/dist/loop/index.js +5 -0
- package/dist/loop/index.js.map +1 -0
- package/dist/loop/minimal-loop.d.ts +81 -0
- package/dist/loop/minimal-loop.d.ts.map +1 -0
- package/dist/loop/minimal-loop.js +318 -0
- package/dist/loop/minimal-loop.js.map +1 -0
- package/dist/loop/sdk-loop.d.ts +103 -0
- package/dist/loop/sdk-loop.d.ts.map +1 -0
- package/dist/loop/sdk-loop.js +344 -0
- package/dist/loop/sdk-loop.js.map +1 -0
- package/dist/mcp/index.d.ts +38 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +113 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/metrics/create-agent-metrics.d.ts +78 -0
- package/dist/metrics/create-agent-metrics.d.ts.map +1 -0
- package/dist/metrics/create-agent-metrics.js +115 -0
- package/dist/metrics/create-agent-metrics.js.map +1 -0
- package/dist/orchestration/bulkhead.d.ts +70 -0
- package/dist/orchestration/bulkhead.d.ts.map +1 -0
- package/dist/orchestration/bulkhead.js +99 -0
- package/dist/orchestration/bulkhead.js.map +1 -0
- package/dist/orchestration/idempotency.d.ts +52 -0
- package/dist/orchestration/idempotency.d.ts.map +1 -0
- package/dist/orchestration/idempotency.js +93 -0
- package/dist/orchestration/idempotency.js.map +1 -0
- package/dist/orchestration/index.d.ts +16 -0
- package/dist/orchestration/index.d.ts.map +1 -0
- package/dist/orchestration/index.js +15 -0
- package/dist/orchestration/index.js.map +1 -0
- package/dist/orchestration/ooda/agent-config-loader.d.ts +67 -0
- package/dist/orchestration/ooda/agent-config-loader.d.ts.map +1 -0
- package/dist/orchestration/ooda/agent-config-loader.js +65 -0
- package/dist/orchestration/ooda/agent-config-loader.js.map +1 -0
- package/dist/orchestration/ooda/agent.d.ts +54 -0
- package/dist/orchestration/ooda/agent.d.ts.map +1 -0
- package/dist/orchestration/ooda/agent.js +730 -0
- package/dist/orchestration/ooda/agent.js.map +1 -0
- package/dist/orchestration/ooda/audit-log.d.ts +26 -0
- package/dist/orchestration/ooda/audit-log.d.ts.map +1 -0
- package/dist/orchestration/ooda/audit-log.js +41 -0
- package/dist/orchestration/ooda/audit-log.js.map +1 -0
- package/dist/orchestration/ooda/brain-context.d.ts +121 -0
- package/dist/orchestration/ooda/brain-context.d.ts.map +1 -0
- package/dist/orchestration/ooda/brain-context.js +149 -0
- package/dist/orchestration/ooda/brain-context.js.map +1 -0
- package/dist/orchestration/ooda/child-agent.d.ts +55 -0
- package/dist/orchestration/ooda/child-agent.d.ts.map +1 -0
- package/dist/orchestration/ooda/child-agent.js +16 -0
- package/dist/orchestration/ooda/child-agent.js.map +1 -0
- package/dist/orchestration/ooda/cron-schedule.d.ts +26 -0
- package/dist/orchestration/ooda/cron-schedule.d.ts.map +1 -0
- package/dist/orchestration/ooda/cron-schedule.js +94 -0
- package/dist/orchestration/ooda/cron-schedule.js.map +1 -0
- package/dist/orchestration/ooda/debate.d.ts +68 -0
- package/dist/orchestration/ooda/debate.d.ts.map +1 -0
- package/dist/orchestration/ooda/debate.js +39 -0
- package/dist/orchestration/ooda/debate.js.map +1 -0
- package/dist/orchestration/ooda/economic-observer.d.ts +50 -0
- package/dist/orchestration/ooda/economic-observer.d.ts.map +1 -0
- package/dist/orchestration/ooda/economic-observer.js +36 -0
- package/dist/orchestration/ooda/economic-observer.js.map +1 -0
- package/dist/orchestration/ooda/errors.d.ts +21 -0
- package/dist/orchestration/ooda/errors.d.ts.map +1 -0
- package/dist/orchestration/ooda/errors.js +30 -0
- package/dist/orchestration/ooda/errors.js.map +1 -0
- package/dist/orchestration/ooda/execution-mode-guard.d.ts +24 -0
- package/dist/orchestration/ooda/execution-mode-guard.d.ts.map +1 -0
- package/dist/orchestration/ooda/execution-mode-guard.js +31 -0
- package/dist/orchestration/ooda/execution-mode-guard.js.map +1 -0
- package/dist/orchestration/ooda/factory.d.ts +12 -0
- package/dist/orchestration/ooda/factory.d.ts.map +1 -0
- package/dist/orchestration/ooda/factory.js +27 -0
- package/dist/orchestration/ooda/factory.js.map +1 -0
- package/dist/orchestration/ooda/guardrails.d.ts +65 -0
- package/dist/orchestration/ooda/guardrails.d.ts.map +1 -0
- package/dist/orchestration/ooda/guardrails.js +127 -0
- package/dist/orchestration/ooda/guardrails.js.map +1 -0
- package/dist/orchestration/ooda/guards/always-on.d.ts +15 -0
- package/dist/orchestration/ooda/guards/always-on.d.ts.map +1 -0
- package/dist/orchestration/ooda/guards/always-on.js +19 -0
- package/dist/orchestration/ooda/guards/always-on.js.map +1 -0
- package/dist/orchestration/ooda/guards/business-hours.d.ts +46 -0
- package/dist/orchestration/ooda/guards/business-hours.d.ts.map +1 -0
- package/dist/orchestration/ooda/guards/business-hours.js +78 -0
- package/dist/orchestration/ooda/guards/business-hours.js.map +1 -0
- package/dist/orchestration/ooda/guards/index.d.ts +14 -0
- package/dist/orchestration/ooda/guards/index.d.ts.map +1 -0
- package/dist/orchestration/ooda/guards/index.js +14 -0
- package/dist/orchestration/ooda/guards/index.js.map +1 -0
- package/dist/orchestration/ooda/guards/redis-circuit-breaker.d.ts +84 -0
- package/dist/orchestration/ooda/guards/redis-circuit-breaker.d.ts.map +1 -0
- package/dist/orchestration/ooda/guards/redis-circuit-breaker.js +96 -0
- package/dist/orchestration/ooda/guards/redis-circuit-breaker.js.map +1 -0
- package/dist/orchestration/ooda/guards/rth-session.d.ts +27 -0
- package/dist/orchestration/ooda/guards/rth-session.d.ts.map +1 -0
- package/dist/orchestration/ooda/guards/rth-session.js +95 -0
- package/dist/orchestration/ooda/guards/rth-session.js.map +1 -0
- package/dist/orchestration/ooda/handoff.d.ts +82 -0
- package/dist/orchestration/ooda/handoff.d.ts.map +1 -0
- package/dist/orchestration/ooda/handoff.js +86 -0
- package/dist/orchestration/ooda/handoff.js.map +1 -0
- package/dist/orchestration/ooda/hitl-gate.d.ts +57 -0
- package/dist/orchestration/ooda/hitl-gate.d.ts.map +1 -0
- package/dist/orchestration/ooda/hitl-gate.js +107 -0
- package/dist/orchestration/ooda/hitl-gate.js.map +1 -0
- package/dist/orchestration/ooda/index.d.ts +48 -0
- package/dist/orchestration/ooda/index.d.ts.map +1 -0
- package/dist/orchestration/ooda/index.js +33 -0
- package/dist/orchestration/ooda/index.js.map +1 -0
- package/dist/orchestration/ooda/inner-monologue.d.ts +69 -0
- package/dist/orchestration/ooda/inner-monologue.d.ts.map +1 -0
- package/dist/orchestration/ooda/inner-monologue.js +69 -0
- package/dist/orchestration/ooda/inner-monologue.js.map +1 -0
- package/dist/orchestration/ooda/learn.d.ts +60 -0
- package/dist/orchestration/ooda/learn.d.ts.map +1 -0
- package/dist/orchestration/ooda/learn.js +94 -0
- package/dist/orchestration/ooda/learn.js.map +1 -0
- package/dist/orchestration/ooda/multimodal.d.ts +91 -0
- package/dist/orchestration/ooda/multimodal.d.ts.map +1 -0
- package/dist/orchestration/ooda/multimodal.js +88 -0
- package/dist/orchestration/ooda/multimodal.js.map +1 -0
- package/dist/orchestration/ooda/phase-routing.d.ts +41 -0
- package/dist/orchestration/ooda/phase-routing.d.ts.map +1 -0
- package/dist/orchestration/ooda/phase-routing.js +43 -0
- package/dist/orchestration/ooda/phase-routing.js.map +1 -0
- package/dist/orchestration/ooda/plan-execute.d.ts +55 -0
- package/dist/orchestration/ooda/plan-execute.d.ts.map +1 -0
- package/dist/orchestration/ooda/plan-execute.js +41 -0
- package/dist/orchestration/ooda/plan-execute.js.map +1 -0
- package/dist/orchestration/ooda/react-loop.d.ts +96 -0
- package/dist/orchestration/ooda/react-loop.d.ts.map +1 -0
- package/dist/orchestration/ooda/react-loop.js +90 -0
- package/dist/orchestration/ooda/react-loop.js.map +1 -0
- package/dist/orchestration/ooda/reflexion.d.ts +56 -0
- package/dist/orchestration/ooda/reflexion.d.ts.map +1 -0
- package/dist/orchestration/ooda/reflexion.js +58 -0
- package/dist/orchestration/ooda/reflexion.js.map +1 -0
- package/dist/orchestration/ooda/resource-limits.d.ts +63 -0
- package/dist/orchestration/ooda/resource-limits.d.ts.map +1 -0
- package/dist/orchestration/ooda/resource-limits.js +107 -0
- package/dist/orchestration/ooda/resource-limits.js.map +1 -0
- package/dist/orchestration/ooda/run-step-persistence.d.ts +50 -0
- package/dist/orchestration/ooda/run-step-persistence.d.ts.map +1 -0
- package/dist/orchestration/ooda/run-step-persistence.js +89 -0
- package/dist/orchestration/ooda/run-step-persistence.js.map +1 -0
- package/dist/orchestration/ooda/skills.d.ts +58 -0
- package/dist/orchestration/ooda/skills.d.ts.map +1 -0
- package/dist/orchestration/ooda/skills.js +19 -0
- package/dist/orchestration/ooda/skills.js.map +1 -0
- package/dist/orchestration/ooda/structured-output.d.ts +46 -0
- package/dist/orchestration/ooda/structured-output.d.ts.map +1 -0
- package/dist/orchestration/ooda/structured-output.js +60 -0
- package/dist/orchestration/ooda/structured-output.js.map +1 -0
- package/dist/orchestration/ooda/types.d.ts +463 -0
- package/dist/orchestration/ooda/types.d.ts.map +1 -0
- package/dist/orchestration/ooda/types.js +38 -0
- package/dist/orchestration/ooda/types.js.map +1 -0
- package/dist/otel/attributes.d.ts +71 -0
- package/dist/otel/attributes.d.ts.map +1 -0
- package/dist/otel/attributes.js +56 -0
- package/dist/otel/attributes.js.map +1 -0
- package/dist/otel/index.d.ts +5 -0
- package/dist/otel/index.d.ts.map +1 -0
- package/dist/otel/index.js +5 -0
- package/dist/otel/index.js.map +1 -0
- package/dist/otel/ingest.d.ts +99 -0
- package/dist/otel/ingest.d.ts.map +1 -0
- package/dist/otel/ingest.js +192 -0
- package/dist/otel/ingest.js.map +1 -0
- package/dist/otel/trace-context.d.ts +48 -0
- package/dist/otel/trace-context.d.ts.map +1 -0
- package/dist/otel/trace-context.js +137 -0
- package/dist/otel/trace-context.js.map +1 -0
- package/dist/otel/types.d.ts +54 -0
- package/dist/otel/types.d.ts.map +1 -0
- package/dist/otel/types.js +12 -0
- package/dist/otel/types.js.map +1 -0
- package/dist/outcomes/client.d.ts +81 -0
- package/dist/outcomes/client.d.ts.map +1 -0
- package/dist/outcomes/client.js +98 -0
- package/dist/outcomes/client.js.map +1 -0
- package/dist/outcomes/compute-roi.d.ts +40 -0
- package/dist/outcomes/compute-roi.d.ts.map +1 -0
- package/dist/outcomes/compute-roi.js +58 -0
- package/dist/outcomes/compute-roi.js.map +1 -0
- package/dist/outcomes/index.d.ts +4 -0
- package/dist/outcomes/index.d.ts.map +1 -0
- package/dist/outcomes/index.js +4 -0
- package/dist/outcomes/index.js.map +1 -0
- package/dist/outcomes/meter.d.ts +73 -0
- package/dist/outcomes/meter.d.ts.map +1 -0
- package/dist/outcomes/meter.js +140 -0
- package/dist/outcomes/meter.js.map +1 -0
- package/dist/outcomes/trajectory.d.ts +53 -0
- package/dist/outcomes/trajectory.d.ts.map +1 -0
- package/dist/outcomes/trajectory.js +110 -0
- package/dist/outcomes/trajectory.js.map +1 -0
- package/dist/outcomes/types.d.ts +93 -0
- package/dist/outcomes/types.d.ts.map +1 -0
- package/dist/outcomes/types.js +8 -0
- package/dist/outcomes/types.js.map +1 -0
- package/dist/patterns/_shared/brain-logger.d.ts +12 -0
- package/dist/patterns/_shared/brain-logger.d.ts.map +1 -0
- package/dist/patterns/_shared/brain-logger.js +6 -0
- package/dist/patterns/_shared/brain-logger.js.map +1 -0
- package/dist/patterns/circuit-breaker/index.d.ts +3 -0
- package/dist/patterns/circuit-breaker/index.d.ts.map +1 -0
- package/dist/patterns/circuit-breaker/index.js +2 -0
- package/dist/patterns/circuit-breaker/index.js.map +1 -0
- package/dist/patterns/circuit-breaker/session-cb.d.ts +3 -0
- package/dist/patterns/circuit-breaker/session-cb.d.ts.map +1 -0
- package/dist/patterns/circuit-breaker/session-cb.js +175 -0
- package/dist/patterns/circuit-breaker/session-cb.js.map +1 -0
- package/dist/patterns/circuit-breaker/types.d.ts +68 -0
- package/dist/patterns/circuit-breaker/types.d.ts.map +1 -0
- package/dist/patterns/circuit-breaker/types.js +2 -0
- package/dist/patterns/circuit-breaker/types.js.map +1 -0
- package/dist/patterns/escalation/index.d.ts +3 -0
- package/dist/patterns/escalation/index.d.ts.map +1 -0
- package/dist/patterns/escalation/index.js +2 -0
- package/dist/patterns/escalation/index.js.map +1 -0
- package/dist/patterns/escalation/pyramid.d.ts +3 -0
- package/dist/patterns/escalation/pyramid.d.ts.map +1 -0
- package/dist/patterns/escalation/pyramid.js +86 -0
- package/dist/patterns/escalation/pyramid.js.map +1 -0
- package/dist/patterns/escalation/types.d.ts +46 -0
- package/dist/patterns/escalation/types.d.ts.map +1 -0
- package/dist/patterns/escalation/types.js +2 -0
- package/dist/patterns/escalation/types.js.map +1 -0
- package/dist/patterns/quality-gate/gate.d.ts +3 -0
- package/dist/patterns/quality-gate/gate.d.ts.map +1 -0
- package/dist/patterns/quality-gate/gate.js +73 -0
- package/dist/patterns/quality-gate/gate.js.map +1 -0
- package/dist/patterns/quality-gate/index.d.ts +3 -0
- package/dist/patterns/quality-gate/index.d.ts.map +1 -0
- package/dist/patterns/quality-gate/index.js +2 -0
- package/dist/patterns/quality-gate/index.js.map +1 -0
- package/dist/patterns/quality-gate/types.d.ts +41 -0
- package/dist/patterns/quality-gate/types.d.ts.map +1 -0
- package/dist/patterns/quality-gate/types.js +2 -0
- package/dist/patterns/quality-gate/types.js.map +1 -0
- package/dist/permissions/capability-gate.d.ts +57 -0
- package/dist/permissions/capability-gate.d.ts.map +1 -0
- package/dist/permissions/capability-gate.js +26 -0
- package/dist/permissions/capability-gate.js.map +1 -0
- package/dist/permissions/index.d.ts +3 -0
- package/dist/permissions/index.d.ts.map +1 -0
- package/dist/permissions/index.js +2 -0
- package/dist/permissions/index.js.map +1 -0
- package/dist/permissions/renewal-manager.d.ts +49 -0
- package/dist/permissions/renewal-manager.d.ts.map +1 -0
- package/dist/permissions/renewal-manager.js +60 -0
- package/dist/permissions/renewal-manager.js.map +1 -0
- package/dist/permissions/sdk-permissions.d.ts +48 -0
- package/dist/permissions/sdk-permissions.d.ts.map +1 -0
- package/dist/permissions/sdk-permissions.js +94 -0
- package/dist/permissions/sdk-permissions.js.map +1 -0
- package/dist/ports/agent-registry.d.ts +95 -0
- package/dist/ports/agent-registry.d.ts.map +1 -0
- package/dist/ports/agent-registry.js +16 -0
- package/dist/ports/agent-registry.js.map +1 -0
- package/dist/ports/brain.d.ts +147 -0
- package/dist/ports/brain.d.ts.map +1 -0
- package/dist/ports/brain.js +105 -0
- package/dist/ports/brain.js.map +1 -0
- package/dist/ports/db.d.ts +8 -0
- package/dist/ports/db.d.ts.map +1 -0
- package/dist/ports/db.js +2 -0
- package/dist/ports/db.js.map +1 -0
- package/dist/ports/event-bus.d.ts +167 -0
- package/dist/ports/event-bus.d.ts.map +1 -0
- package/dist/ports/event-bus.js +25 -0
- package/dist/ports/event-bus.js.map +1 -0
- package/dist/ports/eviction-policy.d.ts +92 -0
- package/dist/ports/eviction-policy.d.ts.map +1 -0
- package/dist/ports/eviction-policy.js +120 -0
- package/dist/ports/eviction-policy.js.map +1 -0
- package/dist/ports/hitl.contract.test.d.ts +9 -0
- package/dist/ports/hitl.contract.test.d.ts.map +1 -0
- package/dist/ports/hitl.contract.test.js +100 -0
- package/dist/ports/hitl.contract.test.js.map +1 -0
- package/dist/ports/hitl.d.ts +91 -0
- package/dist/ports/hitl.d.ts.map +1 -0
- package/dist/ports/hitl.js +76 -0
- package/dist/ports/hitl.js.map +1 -0
- package/dist/ports/index.d.ts +19 -0
- package/dist/ports/index.d.ts.map +1 -0
- package/dist/ports/index.js +4 -0
- package/dist/ports/index.js.map +1 -0
- package/dist/ports/key-provider.d.ts +113 -0
- package/dist/ports/key-provider.d.ts.map +1 -0
- package/dist/ports/key-provider.js +119 -0
- package/dist/ports/key-provider.js.map +1 -0
- package/dist/ports/llm-provider.contract.d.ts +24 -0
- package/dist/ports/llm-provider.contract.d.ts.map +1 -0
- package/dist/ports/llm-provider.contract.js +111 -0
- package/dist/ports/llm-provider.contract.js.map +1 -0
- package/dist/ports/llm-provider.d.ts +63 -0
- package/dist/ports/llm-provider.d.ts.map +1 -0
- package/dist/ports/llm-provider.js +13 -0
- package/dist/ports/llm-provider.js.map +1 -0
- package/dist/ports/logger.d.ts +18 -0
- package/dist/ports/logger.d.ts.map +1 -0
- package/dist/ports/logger.js +10 -0
- package/dist/ports/logger.js.map +1 -0
- package/dist/ports/messaging.contract.test.d.ts +22 -0
- package/dist/ports/messaging.contract.test.d.ts.map +1 -0
- package/dist/ports/messaging.contract.test.js +296 -0
- package/dist/ports/messaging.contract.test.js.map +1 -0
- package/dist/ports/messaging.d.ts +47 -0
- package/dist/ports/messaging.d.ts.map +1 -0
- package/dist/ports/messaging.js +24 -0
- package/dist/ports/messaging.js.map +1 -0
- package/dist/ports/outcome.d.ts +25 -0
- package/dist/ports/outcome.d.ts.map +1 -0
- package/dist/ports/outcome.js +9 -0
- package/dist/ports/outcome.js.map +1 -0
- package/dist/ports/timestamp.d.ts +53 -0
- package/dist/ports/timestamp.d.ts.map +1 -0
- package/dist/ports/timestamp.js +28 -0
- package/dist/ports/timestamp.js.map +1 -0
- package/dist/privacy/channel.d.ts +137 -0
- package/dist/privacy/channel.d.ts.map +1 -0
- package/dist/privacy/channel.js +196 -0
- package/dist/privacy/channel.js.map +1 -0
- package/dist/privacy/composition.d.ts +140 -0
- package/dist/privacy/composition.d.ts.map +1 -0
- package/dist/privacy/composition.js +182 -0
- package/dist/privacy/composition.js.map +1 -0
- package/dist/privacy/delegation.d.ts +87 -0
- package/dist/privacy/delegation.d.ts.map +1 -0
- package/dist/privacy/delegation.js +67 -0
- package/dist/privacy/delegation.js.map +1 -0
- package/dist/privacy/index.d.ts +25 -0
- package/dist/privacy/index.d.ts.map +1 -0
- package/dist/privacy/index.js +21 -0
- package/dist/privacy/index.js.map +1 -0
- package/dist/privacy/nullifier.d.ts +59 -0
- package/dist/privacy/nullifier.d.ts.map +1 -0
- package/dist/privacy/nullifier.js +70 -0
- package/dist/privacy/nullifier.js.map +1 -0
- package/dist/privacy/poseidon-felt252.d.ts +35 -0
- package/dist/privacy/poseidon-felt252.d.ts.map +1 -0
- package/dist/privacy/poseidon-felt252.js +93 -0
- package/dist/privacy/poseidon-felt252.js.map +1 -0
- package/dist/privacy/uar.d.ts +170 -0
- package/dist/privacy/uar.d.ts.map +1 -0
- package/dist/privacy/uar.js +150 -0
- package/dist/privacy/uar.js.map +1 -0
- package/dist/prompts/build-orient-prompt.d.ts +41 -0
- package/dist/prompts/build-orient-prompt.d.ts.map +1 -0
- package/dist/prompts/build-orient-prompt.js +40 -0
- package/dist/prompts/build-orient-prompt.js.map +1 -0
- package/dist/proof/chain.d.ts +90 -0
- package/dist/proof/chain.d.ts.map +1 -0
- package/dist/proof/chain.js +177 -0
- package/dist/proof/chain.js.map +1 -0
- package/dist/proof/fallback-adapter.d.ts +50 -0
- package/dist/proof/fallback-adapter.d.ts.map +1 -0
- package/dist/proof/fallback-adapter.js +99 -0
- package/dist/proof/fallback-adapter.js.map +1 -0
- package/dist/proof/index.d.ts +35 -0
- package/dist/proof/index.d.ts.map +1 -0
- package/dist/proof/index.js +161 -0
- package/dist/proof/index.js.map +1 -0
- package/dist/proof/load.d.ts +27 -0
- package/dist/proof/load.d.ts.map +1 -0
- package/dist/proof/load.js +44 -0
- package/dist/proof/load.js.map +1 -0
- package/dist/proof/otel.d.ts +25 -0
- package/dist/proof/otel.d.ts.map +1 -0
- package/dist/proof/otel.js +57 -0
- package/dist/proof/otel.js.map +1 -0
- package/dist/proof/receipt-queue.d.ts +97 -0
- package/dist/proof/receipt-queue.d.ts.map +1 -0
- package/dist/proof/receipt-queue.js +131 -0
- package/dist/proof/receipt-queue.js.map +1 -0
- package/dist/proof/sha256.d.ts +27 -0
- package/dist/proof/sha256.d.ts.map +1 -0
- package/dist/proof/sha256.js +65 -0
- package/dist/proof/sha256.js.map +1 -0
- package/dist/proof/types.d.ts +55 -0
- package/dist/proof/types.d.ts.map +1 -0
- package/dist/proof/types.js +10 -0
- package/dist/proof/types.js.map +1 -0
- package/dist/proof/verify.d.ts +28 -0
- package/dist/proof/verify.d.ts.map +1 -0
- package/dist/proof/verify.js +70 -0
- package/dist/proof/verify.js.map +1 -0
- package/dist/registry/agent-capability.d.ts +29 -0
- package/dist/registry/agent-capability.d.ts.map +1 -0
- package/dist/registry/agent-capability.js +21 -0
- package/dist/registry/agent-capability.js.map +1 -0
- package/dist/registry/agent-card.d.ts +86 -0
- package/dist/registry/agent-card.d.ts.map +1 -0
- package/dist/registry/agent-card.js +80 -0
- package/dist/registry/agent-card.js.map +1 -0
- package/dist/registry/agent-ids.d.ts +30 -0
- package/dist/registry/agent-ids.d.ts.map +1 -0
- package/dist/registry/agent-ids.js +46 -0
- package/dist/registry/agent-ids.js.map +1 -0
- package/dist/registry/agent-registry.d.ts +104 -0
- package/dist/registry/agent-registry.d.ts.map +1 -0
- package/dist/registry/agent-registry.js +277 -0
- package/dist/registry/agent-registry.js.map +1 -0
- package/dist/registry/index.d.ts +7 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +4 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/replay/clock.d.ts +69 -0
- package/dist/replay/clock.d.ts.map +1 -0
- package/dist/replay/clock.js +84 -0
- package/dist/replay/clock.js.map +1 -0
- package/dist/replay/cross-cycle.d.ts +143 -0
- package/dist/replay/cross-cycle.d.ts.map +1 -0
- package/dist/replay/cross-cycle.js +271 -0
- package/dist/replay/cross-cycle.js.map +1 -0
- package/dist/replay/http-vcr.d.ts +46 -0
- package/dist/replay/http-vcr.d.ts.map +1 -0
- package/dist/replay/http-vcr.js +87 -0
- package/dist/replay/http-vcr.js.map +1 -0
- package/dist/replay/index.d.ts +18 -0
- package/dist/replay/index.d.ts.map +1 -0
- package/dist/replay/index.js +18 -0
- package/dist/replay/index.js.map +1 -0
- package/dist/replay/llm-cache.d.ts +126 -0
- package/dist/replay/llm-cache.d.ts.map +1 -0
- package/dist/replay/llm-cache.js +114 -0
- package/dist/replay/llm-cache.js.map +1 -0
- package/dist/replay/random.d.ts +114 -0
- package/dist/replay/random.d.ts.map +1 -0
- package/dist/replay/random.js +183 -0
- package/dist/replay/random.js.map +1 -0
- package/dist/replay/replay.d.ts +160 -0
- package/dist/replay/replay.d.ts.map +1 -0
- package/dist/replay/replay.js +115 -0
- package/dist/replay/replay.js.map +1 -0
- package/dist/resilience/bulkhead.d.ts +37 -0
- package/dist/resilience/bulkhead.d.ts.map +1 -0
- package/dist/resilience/bulkhead.js +65 -0
- package/dist/resilience/bulkhead.js.map +1 -0
- package/dist/resilience/circuit-breaker.d.ts +56 -0
- package/dist/resilience/circuit-breaker.d.ts.map +1 -0
- package/dist/resilience/circuit-breaker.js +93 -0
- package/dist/resilience/circuit-breaker.js.map +1 -0
- package/dist/resilience/idempotent.d.ts +61 -0
- package/dist/resilience/idempotent.d.ts.map +1 -0
- package/dist/resilience/idempotent.js +103 -0
- package/dist/resilience/idempotent.js.map +1 -0
- package/dist/resilience/index.d.ts +28 -0
- package/dist/resilience/index.d.ts.map +1 -0
- package/dist/resilience/index.js +25 -0
- package/dist/resilience/index.js.map +1 -0
- package/dist/router/index.d.ts +3 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +2 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/provider-router.d.ts +61 -0
- package/dist/router/provider-router.d.ts.map +1 -0
- package/dist/router/provider-router.js +214 -0
- package/dist/router/provider-router.js.map +1 -0
- package/dist/runs/health.d.ts +24 -0
- package/dist/runs/health.d.ts.map +1 -0
- package/dist/runs/health.js +52 -0
- package/dist/runs/health.js.map +1 -0
- package/dist/runs/index.d.ts +4 -0
- package/dist/runs/index.d.ts.map +1 -0
- package/dist/runs/index.js +4 -0
- package/dist/runs/index.js.map +1 -0
- package/dist/runs/subscribe.d.ts +34 -0
- package/dist/runs/subscribe.d.ts.map +1 -0
- package/dist/runs/subscribe.js +228 -0
- package/dist/runs/subscribe.js.map +1 -0
- package/dist/runs/types.d.ts +53 -0
- package/dist/runs/types.d.ts.map +1 -0
- package/dist/runs/types.js +11 -0
- package/dist/runs/types.js.map +1 -0
- package/dist/safety/immune.d.ts +62 -0
- package/dist/safety/immune.d.ts.map +1 -0
- package/dist/safety/immune.js +109 -0
- package/dist/safety/immune.js.map +1 -0
- package/dist/safety/index.d.ts +3 -0
- package/dist/safety/index.d.ts.map +1 -0
- package/dist/safety/index.js +2 -0
- package/dist/safety/index.js.map +1 -0
- package/dist/safety/sanitize.d.ts +71 -0
- package/dist/safety/sanitize.d.ts.map +1 -0
- package/dist/safety/sanitize.js +139 -0
- package/dist/safety/sanitize.js.map +1 -0
- package/dist/sdk-permission-mapping.d.ts +41 -0
- package/dist/sdk-permission-mapping.d.ts.map +1 -0
- package/dist/sdk-permission-mapping.js +96 -0
- package/dist/sdk-permission-mapping.js.map +1 -0
- package/dist/skills/_otel.d.ts +2 -0
- package/dist/skills/_otel.d.ts.map +1 -0
- package/dist/skills/_otel.js +29 -0
- package/dist/skills/_otel.js.map +1 -0
- package/dist/skills/alpaca-quote.d.ts +30 -0
- package/dist/skills/alpaca-quote.d.ts.map +1 -0
- package/dist/skills/alpaca-quote.js +70 -0
- package/dist/skills/alpaca-quote.js.map +1 -0
- package/dist/skills/base-skills.d.ts +30 -0
- package/dist/skills/base-skills.d.ts.map +1 -0
- package/dist/skills/base-skills.js +26 -0
- package/dist/skills/base-skills.js.map +1 -0
- package/dist/skills/brain-query.d.ts +34 -0
- package/dist/skills/brain-query.d.ts.map +1 -0
- package/dist/skills/brain-query.js +46 -0
- package/dist/skills/brain-query.js.map +1 -0
- package/dist/skills/brain-store.d.ts +44 -0
- package/dist/skills/brain-store.d.ts.map +1 -0
- package/dist/skills/brain-store.js +55 -0
- package/dist/skills/brain-store.js.map +1 -0
- package/dist/skills/calendar-check.d.ts +37 -0
- package/dist/skills/calendar-check.d.ts.map +1 -0
- package/dist/skills/calendar-check.js +87 -0
- package/dist/skills/calendar-check.js.map +1 -0
- package/dist/skills/cboe-vix-spot.d.ts +24 -0
- package/dist/skills/cboe-vix-spot.d.ts.map +1 -0
- package/dist/skills/cboe-vix-spot.js +70 -0
- package/dist/skills/cboe-vix-spot.js.map +1 -0
- package/dist/skills/errors.d.ts +33 -0
- package/dist/skills/errors.d.ts.map +1 -0
- package/dist/skills/errors.js +50 -0
- package/dist/skills/errors.js.map +1 -0
- package/dist/skills/hitl-request.d.ts +39 -0
- package/dist/skills/hitl-request.d.ts.map +1 -0
- package/dist/skills/hitl-request.js +55 -0
- package/dist/skills/hitl-request.js.map +1 -0
- package/dist/skills/http-fetch.d.ts +32 -0
- package/dist/skills/http-fetch.d.ts.map +1 -0
- package/dist/skills/http-fetch.js +82 -0
- package/dist/skills/http-fetch.js.map +1 -0
- package/dist/skills/index.d.ts +46 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +32 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/record-outcome.d.ts +49 -0
- package/dist/skills/record-outcome.d.ts.map +1 -0
- package/dist/skills/record-outcome.js +104 -0
- package/dist/skills/record-outcome.js.map +1 -0
- package/dist/skills/run-sql-query.d.ts +33 -0
- package/dist/skills/run-sql-query.d.ts.map +1 -0
- package/dist/skills/run-sql-query.js +78 -0
- package/dist/skills/run-sql-query.js.map +1 -0
- package/dist/skills/send-email.d.ts +39 -0
- package/dist/skills/send-email.d.ts.map +1 -0
- package/dist/skills/send-email.js +100 -0
- package/dist/skills/send-email.js.map +1 -0
- package/dist/skills/skill-ledger.d.ts +62 -0
- package/dist/skills/skill-ledger.d.ts.map +1 -0
- package/dist/skills/skill-ledger.js +40 -0
- package/dist/skills/skill-ledger.js.map +1 -0
- package/dist/skills/skill-registry-builder.d.ts +91 -0
- package/dist/skills/skill-registry-builder.d.ts.map +1 -0
- package/dist/skills/skill-registry-builder.js +173 -0
- package/dist/skills/skill-registry-builder.js.map +1 -0
- package/dist/skills/slack-notify.d.ts +43 -0
- package/dist/skills/slack-notify.d.ts.map +1 -0
- package/dist/skills/slack-notify.js +70 -0
- package/dist/skills/slack-notify.js.map +1 -0
- package/dist/skills/starknet-balance.d.ts +34 -0
- package/dist/skills/starknet-balance.d.ts.map +1 -0
- package/dist/skills/starknet-balance.js +91 -0
- package/dist/skills/starknet-balance.js.map +1 -0
- package/dist/skills/telegram-notify.d.ts +44 -0
- package/dist/skills/telegram-notify.d.ts.map +1 -0
- package/dist/skills/telegram-notify.js +71 -0
- package/dist/skills/telegram-notify.js.map +1 -0
- package/dist/skills/web-search.d.ts +32 -0
- package/dist/skills/web-search.d.ts.map +1 -0
- package/dist/skills/web-search.js +84 -0
- package/dist/skills/web-search.js.map +1 -0
- package/dist/templates/complex-agent.d.ts +105 -0
- package/dist/templates/complex-agent.d.ts.map +1 -0
- package/dist/templates/complex-agent.js +94 -0
- package/dist/templates/complex-agent.js.map +1 -0
- package/dist/templates/index.d.ts +17 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +14 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/reasoning-agent.d.ts +160 -0
- package/dist/templates/reasoning-agent.d.ts.map +1 -0
- package/dist/templates/reasoning-agent.js +119 -0
- package/dist/templates/reasoning-agent.js.map +1 -0
- package/dist/templates/simple-agent.d.ts +108 -0
- package/dist/templates/simple-agent.d.ts.map +1 -0
- package/dist/templates/simple-agent.js +84 -0
- package/dist/templates/simple-agent.js.map +1 -0
- package/dist/testing/brain-conformance.d.ts +45 -0
- package/dist/testing/brain-conformance.d.ts.map +1 -0
- package/dist/testing/brain-conformance.js +68 -0
- package/dist/testing/brain-conformance.js.map +1 -0
- package/dist/testing/chaos.d.ts +126 -0
- package/dist/testing/chaos.d.ts.map +1 -0
- package/dist/testing/chaos.js +176 -0
- package/dist/testing/chaos.js.map +1 -0
- package/dist/testing/contracts/brain-port.contract.d.ts +23 -0
- package/dist/testing/contracts/brain-port.contract.d.ts.map +1 -0
- package/dist/testing/contracts/brain-port.contract.js +79 -0
- package/dist/testing/contracts/brain-port.contract.js.map +1 -0
- package/dist/testing/contracts/economic-observer.contract.d.ts +23 -0
- package/dist/testing/contracts/economic-observer.contract.d.ts.map +1 -0
- package/dist/testing/contracts/economic-observer.contract.js +71 -0
- package/dist/testing/contracts/economic-observer.contract.js.map +1 -0
- package/dist/testing/contracts/event-bus.contract.d.ts +30 -0
- package/dist/testing/contracts/event-bus.contract.d.ts.map +1 -0
- package/dist/testing/contracts/event-bus.contract.js +216 -0
- package/dist/testing/contracts/event-bus.contract.js.map +1 -0
- package/dist/testing/db-conformance.d.ts +22 -0
- package/dist/testing/db-conformance.d.ts.map +1 -0
- package/dist/testing/db-conformance.js +25 -0
- package/dist/testing/db-conformance.js.map +1 -0
- package/dist/testing/eval.d.ts +61 -0
- package/dist/testing/eval.d.ts.map +1 -0
- package/dist/testing/eval.js +98 -0
- package/dist/testing/eval.js.map +1 -0
- package/dist/testing/index.d.ts +32 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +38 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/integration-harness.d.ts +45 -0
- package/dist/testing/integration-harness.d.ts.map +1 -0
- package/dist/testing/integration-harness.js +57 -0
- package/dist/testing/integration-harness.js.map +1 -0
- package/dist/testing/logger-conformance.d.ts +16 -0
- package/dist/testing/logger-conformance.d.ts.map +1 -0
- package/dist/testing/logger-conformance.js +43 -0
- package/dist/testing/logger-conformance.js.map +1 -0
- package/dist/testing/outcome-conformance.d.ts +17 -0
- package/dist/testing/outcome-conformance.d.ts.map +1 -0
- package/dist/testing/outcome-conformance.js +50 -0
- package/dist/testing/outcome-conformance.js.map +1 -0
- package/dist/testing/runner.d.ts +19 -0
- package/dist/testing/runner.d.ts.map +1 -0
- package/dist/testing/runner.js +9 -0
- package/dist/testing/runner.js.map +1 -0
- package/dist/testing/test-brain-port.d.ts +25 -0
- package/dist/testing/test-brain-port.d.ts.map +1 -0
- package/dist/testing/test-brain-port.js +54 -0
- package/dist/testing/test-brain-port.js.map +1 -0
- package/dist/testing/test-child-agent.d.ts +32 -0
- package/dist/testing/test-child-agent.d.ts.map +1 -0
- package/dist/testing/test-child-agent.js +59 -0
- package/dist/testing/test-child-agent.js.map +1 -0
- package/dist/testing/test-event-bus.d.ts +57 -0
- package/dist/testing/test-event-bus.d.ts.map +1 -0
- package/dist/testing/test-event-bus.js +191 -0
- package/dist/testing/test-event-bus.js.map +1 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/registry.d.ts +20 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +102 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/types.d.ts +85 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +13 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/zod-to-json-schema.d.ts +11 -0
- package/dist/tools/zod-to-json-schema.d.ts.map +1 -0
- package/dist/tools/zod-to-json-schema.js +92 -0
- package/dist/tools/zod-to-json-schema.js.map +1 -0
- package/dist/trace/canonical.d.ts +37 -0
- package/dist/trace/canonical.d.ts.map +1 -0
- package/dist/trace/canonical.js +139 -0
- package/dist/trace/canonical.js.map +1 -0
- package/dist/trace/policy.d.ts +103 -0
- package/dist/trace/policy.d.ts.map +1 -0
- package/dist/trace/policy.js +137 -0
- package/dist/trace/policy.js.map +1 -0
- package/dist/trace/schema.d.ts +195 -0
- package/dist/trace/schema.d.ts.map +1 -0
- package/dist/trace/schema.js +18 -0
- package/dist/trace/schema.js.map +1 -0
- package/dist/trace/strict-pii-detector.d.ts +28 -0
- package/dist/trace/strict-pii-detector.d.ts.map +1 -0
- package/dist/trace/strict-pii-detector.js +144 -0
- package/dist/trace/strict-pii-detector.js.map +1 -0
- package/dist/tracing/traced-port.d.ts +50 -0
- package/dist/tracing/traced-port.d.ts.map +1 -0
- package/dist/tracing/traced-port.js +108 -0
- package/dist/tracing/traced-port.js.map +1 -0
- package/dist/tracking/agent-run-tracker.d.ts +63 -0
- package/dist/tracking/agent-run-tracker.d.ts.map +1 -0
- package/dist/tracking/agent-run-tracker.js +132 -0
- package/dist/tracking/agent-run-tracker.js.map +1 -0
- package/dist/tracking/gen-ai.d.ts +54 -0
- package/dist/tracking/gen-ai.d.ts.map +1 -0
- package/dist/tracking/gen-ai.js +101 -0
- package/dist/tracking/gen-ai.js.map +1 -0
- package/dist/tracking/index.d.ts +4 -0
- package/dist/tracking/index.d.ts.map +1 -0
- package/dist/tracking/index.js +3 -0
- package/dist/tracking/index.js.map +1 -0
- package/dist/types/agent.d.ts +84 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +13 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/agent.test.d.ts +11 -0
- package/dist/types/agent.test.d.ts.map +1 -0
- package/dist/types/agent.test.js +144 -0
- package/dist/types/agent.test.js.map +1 -0
- package/dist/types/escalation-mapping.d.ts +30 -0
- package/dist/types/escalation-mapping.d.ts.map +1 -0
- package/dist/types/escalation-mapping.js +32 -0
- package/dist/types/escalation-mapping.js.map +1 -0
- package/docs/byom.md +106 -0
- package/docs/contributing.md +139 -0
- package/docs/economy.md +159 -0
- package/docs/getting-started.md +179 -0
- package/docs/index.md +57 -0
- package/docs/migration/0.15-to-0.17.md +227 -0
- package/docs/papers/bon-mav-notes.md +36 -0
- package/docs/patterns.md +138 -0
- package/docs/platforms.md +137 -0
- package/docs/ports/agent-registry.md +100 -0
- package/docs/ports/event-bus.md +131 -0
- package/docs/ports/hitl.md +105 -0
- package/docs/ports/llm-provider.md +125 -0
- package/docs/ports/messaging.md +94 -0
- package/docs/templates.md +165 -0
- package/package.json +160 -0
- package/src/adapters/hitl/memory-state-store.ts +96 -0
- package/src/adapters/hitl/postgres-state-store.ts +147 -0
- package/src/adapters/llm/anthropic-direct.ts +212 -0
- package/src/adapters/llm/cascade.ts +109 -0
- package/src/adapters/llm/litellm.ts +300 -0
- package/src/adapters/messaging/console.ts +73 -0
- package/src/adapters/messaging/discord.ts +125 -0
- package/src/adapters/messaging/mcp.ts +84 -0
- package/src/adapters/messaging/slack.ts +109 -0
- package/src/adapters/messaging/telegram.ts +134 -0
- package/src/adapters/registry/memory.ts +84 -0
- package/src/adapters/registry/postgres.ts +166 -0
- package/src/agents/index.ts +2 -0
- package/src/agents/trading.ts +114 -0
- package/src/auth/errors.ts +66 -0
- package/src/auth/nonce-store.ts +79 -0
- package/src/auth/sign-event.ts +51 -0
- package/src/auth/verify-event.ts +112 -0
- package/src/boot/init-sdk.ts +92 -0
- package/src/boot/load-agent-context.ts +164 -0
- package/src/boot/load-recent-memory.ts +92 -0
- package/src/budget/budget-state.ts +234 -0
- package/src/budget/index.ts +11 -0
- package/src/clients/agents.ts +140 -0
- package/src/clients/index.ts +6 -0
- package/src/clients/messaging-adapters.ts +173 -0
- package/src/clients/pipelines.ts +160 -0
- package/src/compute/strategies/best-of-n.ts +162 -0
- package/src/compute/strategies/bon-mav.ts +221 -0
- package/src/compute/strategies/single-shot.ts +45 -0
- package/src/compute/types.ts +36 -0
- package/src/compute/verifier.ts +84 -0
- package/src/compute/with-compute.ts +108 -0
- package/src/constitution/axioms.ts +548 -0
- package/src/constitution/gate.ts +180 -0
- package/src/constitution/index.ts +53 -0
- package/src/constitution/scorer.ts +170 -0
- package/src/constitution/signal.ts +114 -0
- package/src/constitution/types.ts +195 -0
- package/src/counterfactual/index.ts +20 -0
- package/src/counterfactual/replay-with-alt.ts +357 -0
- package/src/dataops/index.ts +4 -0
- package/src/dataops/starkscan.ts +13 -0
- package/src/dataops/voyager.ts +215 -0
- package/src/deprecation.ts +102 -0
- package/src/durable/bullmq-runner.ts +560 -0
- package/src/durable/index.ts +11 -0
- package/src/economy/circuit-breaker.ts +130 -0
- package/src/economy/economy-router.ts +242 -0
- package/src/economy/index.ts +28 -0
- package/src/economy/outcome-tracker.ts +228 -0
- package/src/economy/router.ts +246 -0
- package/src/economy/tier-policy.ts +116 -0
- package/src/errors.ts +159 -0
- package/src/evals/datasets/index.ts +343 -0
- package/src/evals/harness.ts +171 -0
- package/src/evals/index.ts +4 -0
- package/src/factory/agent-factory.ts +261 -0
- package/src/hitl/api.ts +78 -0
- package/src/hitl/approval-channel.ts +128 -0
- package/src/hitl/callback-handlers.ts +61 -0
- package/src/hitl/index.ts +9 -0
- package/src/hitl/slack.ts +358 -0
- package/src/hitl/telegram.ts +342 -0
- package/src/index.ts +710 -0
- package/src/llm/parse-structured-output.ts +116 -0
- package/src/loop/index.ts +26 -0
- package/src/loop/minimal-loop.ts +448 -0
- package/src/loop/sdk-loop.ts +505 -0
- package/src/mcp/index.ts +146 -0
- package/src/metrics/create-agent-metrics.ts +231 -0
- package/src/orchestration/bulkhead.ts +145 -0
- package/src/orchestration/idempotency.ts +137 -0
- package/src/orchestration/index.ts +24 -0
- package/src/orchestration/ooda/agent-config-loader.ts +118 -0
- package/src/orchestration/ooda/agent.ts +1009 -0
- package/src/orchestration/ooda/audit-log.ts +57 -0
- package/src/orchestration/ooda/brain-context.ts +269 -0
- package/src/orchestration/ooda/child-agent.ts +60 -0
- package/src/orchestration/ooda/cron-schedule.ts +115 -0
- package/src/orchestration/ooda/debate.ts +100 -0
- package/src/orchestration/ooda/economic-observer.ts +77 -0
- package/src/orchestration/ooda/errors.ts +32 -0
- package/src/orchestration/ooda/execution-mode-guard.ts +37 -0
- package/src/orchestration/ooda/factory.ts +48 -0
- package/src/orchestration/ooda/guardrails.ts +172 -0
- package/src/orchestration/ooda/guards/always-on.ts +21 -0
- package/src/orchestration/ooda/guards/business-hours.ts +134 -0
- package/src/orchestration/ooda/guards/cme-holidays-2026.json +1 -0
- package/src/orchestration/ooda/guards/index.ts +27 -0
- package/src/orchestration/ooda/guards/redis-circuit-breaker.ts +172 -0
- package/src/orchestration/ooda/guards/rth-session.ts +133 -0
- package/src/orchestration/ooda/handoff.ts +150 -0
- package/src/orchestration/ooda/hitl-gate.ts +166 -0
- package/src/orchestration/ooda/index.ts +163 -0
- package/src/orchestration/ooda/inner-monologue.ts +99 -0
- package/src/orchestration/ooda/learn.ts +146 -0
- package/src/orchestration/ooda/multimodal.ts +174 -0
- package/src/orchestration/ooda/phase-routing.ts +74 -0
- package/src/orchestration/ooda/plan-execute.ts +87 -0
- package/src/orchestration/ooda/react-loop.ts +192 -0
- package/src/orchestration/ooda/reflexion.ts +98 -0
- package/src/orchestration/ooda/resource-limits.ts +123 -0
- package/src/orchestration/ooda/run-step-persistence.ts +137 -0
- package/src/orchestration/ooda/skills.ts +60 -0
- package/src/orchestration/ooda/structured-output.ts +93 -0
- package/src/orchestration/ooda/types.ts +508 -0
- package/src/otel/attributes.ts +104 -0
- package/src/otel/index.ts +4 -0
- package/src/otel/ingest.ts +294 -0
- package/src/otel/trace-context.ts +197 -0
- package/src/otel/types.ts +49 -0
- package/src/outcomes/client.ts +194 -0
- package/src/outcomes/compute-roi.ts +89 -0
- package/src/outcomes/index.ts +3 -0
- package/src/outcomes/meter.ts +217 -0
- package/src/outcomes/trajectory.ts +170 -0
- package/src/outcomes/types.ts +88 -0
- package/src/patterns/_shared/brain-logger.ts +18 -0
- package/src/patterns/circuit-breaker/index.ts +8 -0
- package/src/patterns/circuit-breaker/session-cb.ts +198 -0
- package/src/patterns/circuit-breaker/types.ts +72 -0
- package/src/patterns/escalation/index.ts +8 -0
- package/src/patterns/escalation/pyramid.ts +125 -0
- package/src/patterns/escalation/types.ts +62 -0
- package/src/patterns/quality-gate/gate.ts +102 -0
- package/src/patterns/quality-gate/index.ts +8 -0
- package/src/patterns/quality-gate/types.ts +45 -0
- package/src/permissions/capability-gate.ts +63 -0
- package/src/permissions/index.ts +11 -0
- package/src/permissions/renewal-manager.ts +89 -0
- package/src/permissions/sdk-permissions.ts +124 -0
- package/src/ports/agent-registry.ts +104 -0
- package/src/ports/brain.ts +255 -0
- package/src/ports/db.ts +7 -0
- package/src/ports/event-bus.ts +199 -0
- package/src/ports/eviction-policy.ts +179 -0
- package/src/ports/hitl.contract.test.ts +131 -0
- package/src/ports/hitl.ts +153 -0
- package/src/ports/index.ts +48 -0
- package/src/ports/key-provider.ts +179 -0
- package/src/ports/llm-provider.contract.ts +132 -0
- package/src/ports/llm-provider.ts +68 -0
- package/src/ports/logger.ts +23 -0
- package/src/ports/messaging.contract.test.ts +422 -0
- package/src/ports/messaging.ts +53 -0
- package/src/ports/outcome.ts +26 -0
- package/src/ports/timestamp.ts +64 -0
- package/src/privacy/channel.ts +283 -0
- package/src/privacy/composition.ts +289 -0
- package/src/privacy/delegation.ts +128 -0
- package/src/privacy/index.ts +64 -0
- package/src/privacy/nullifier.ts +79 -0
- package/src/privacy/poseidon-felt252.ts +104 -0
- package/src/privacy/uar.ts +234 -0
- package/src/prompts/build-orient-prompt.ts +78 -0
- package/src/proof/chain.ts +249 -0
- package/src/proof/fallback-adapter.ts +117 -0
- package/src/proof/index.ts +207 -0
- package/src/proof/load.ts +61 -0
- package/src/proof/otel.ts +74 -0
- package/src/proof/receipt-queue.ts +235 -0
- package/src/proof/sha256.ts +80 -0
- package/src/proof/types.ts +58 -0
- package/src/proof/verify.ts +89 -0
- package/src/registry/agent-capability.ts +48 -0
- package/src/registry/agent-card.ts +162 -0
- package/src/registry/agent-ids.ts +56 -0
- package/src/registry/agent-registry.ts +378 -0
- package/src/registry/index.ts +23 -0
- package/src/replay/clock.ts +104 -0
- package/src/replay/cross-cycle.ts +406 -0
- package/src/replay/http-vcr.ts +123 -0
- package/src/replay/index.ts +62 -0
- package/src/replay/llm-cache.ts +199 -0
- package/src/replay/random.ts +249 -0
- package/src/replay/replay.ts +271 -0
- package/src/resilience/bulkhead.ts +95 -0
- package/src/resilience/circuit-breaker.ts +129 -0
- package/src/resilience/idempotent.ts +126 -0
- package/src/resilience/index.ts +51 -0
- package/src/router/index.ts +11 -0
- package/src/router/provider-router.ts +319 -0
- package/src/runs/health.ts +84 -0
- package/src/runs/index.ts +3 -0
- package/src/runs/subscribe.ts +263 -0
- package/src/runs/types.ts +63 -0
- package/src/safety/immune.ts +145 -0
- package/src/safety/index.ts +6 -0
- package/src/safety/sanitize.ts +183 -0
- package/src/sdk-permission-mapping.ts +123 -0
- package/src/skills/_otel.ts +31 -0
- package/src/skills/alpaca-quote.ts +82 -0
- package/src/skills/base-skills.ts +38 -0
- package/src/skills/brain-query.ts +62 -0
- package/src/skills/brain-store.ts +69 -0
- package/src/skills/calendar-check.ts +111 -0
- package/src/skills/cboe-vix-spot.ts +89 -0
- package/src/skills/errors.ts +59 -0
- package/src/skills/hitl-request.ts +68 -0
- package/src/skills/http-fetch.ts +92 -0
- package/src/skills/index.ts +71 -0
- package/src/skills/record-outcome.ts +125 -0
- package/src/skills/run-sql-query.ts +87 -0
- package/src/skills/send-email.ts +111 -0
- package/src/skills/skill-ledger.ts +92 -0
- package/src/skills/skill-registry-builder.ts +264 -0
- package/src/skills/slack-notify.ts +90 -0
- package/src/skills/starknet-balance.ts +106 -0
- package/src/skills/telegram-notify.ts +88 -0
- package/src/skills/web-search.ts +108 -0
- package/src/templates/complex-agent.ts +187 -0
- package/src/templates/index.ts +27 -0
- package/src/templates/reasoning-agent.ts +251 -0
- package/src/templates/simple-agent.ts +173 -0
- package/src/testing/brain-conformance.ts +105 -0
- package/src/testing/chaos.ts +266 -0
- package/src/testing/contracts/brain-port.contract.ts +91 -0
- package/src/testing/contracts/economic-observer.contract.ts +87 -0
- package/src/testing/contracts/event-bus.contract.ts +324 -0
- package/src/testing/db-conformance.ts +43 -0
- package/src/testing/eval.ts +161 -0
- package/src/testing/index.ts +59 -0
- package/src/testing/integration-harness.ts +75 -0
- package/src/testing/logger-conformance.ts +57 -0
- package/src/testing/outcome-conformance.ts +62 -0
- package/src/testing/runner.ts +19 -0
- package/src/testing/test-brain-port.ts +69 -0
- package/src/testing/test-child-agent.ts +70 -0
- package/src/testing/test-event-bus.ts +247 -0
- package/src/tools/index.ts +11 -0
- package/src/tools/registry.ts +122 -0
- package/src/tools/types.ts +114 -0
- package/src/tools/zod-to-json-schema.ts +112 -0
- package/src/trace/canonical.ts +158 -0
- package/src/trace/policy.ts +242 -0
- package/src/trace/schema.ts +245 -0
- package/src/trace/strict-pii-detector.ts +156 -0
- package/src/tracing/traced-port.ts +149 -0
- package/src/tracking/agent-run-tracker.ts +228 -0
- package/src/tracking/gen-ai.ts +153 -0
- package/src/tracking/index.ts +19 -0
- package/src/types/agent.ts +93 -0
- package/src/types/escalation-mapping.ts +48 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prometheus metrics factory for SDK agents.
|
|
3
|
+
*
|
|
4
|
+
* Promoted from forge/src/agents/shared/metrics.ts (Vague 1.B.4).
|
|
5
|
+
*
|
|
6
|
+
* prom-client is an optional peer dependency. If absent, all metrics are
|
|
7
|
+
* no-op stubs so consumers that do not use Prometheus can still import this
|
|
8
|
+
* module without errors.
|
|
9
|
+
*
|
|
10
|
+
* @public @since 0.18.0
|
|
11
|
+
*/
|
|
12
|
+
type Registry = import("prom-client").Registry;
|
|
13
|
+
type Counter<L extends string> = import("prom-client").Counter<L>;
|
|
14
|
+
type Histogram<L extends string> = import("prom-client").Histogram<L>;
|
|
15
|
+
/**
|
|
16
|
+
* Standard metrics exposed by every SDK agent.
|
|
17
|
+
*
|
|
18
|
+
* Label sets follow Prometheus conventions: snake_case, no spaces.
|
|
19
|
+
*
|
|
20
|
+
* @public
|
|
21
|
+
*/
|
|
22
|
+
export interface AgentMetrics {
|
|
23
|
+
/** Incremented when an OODA cycle begins. */
|
|
24
|
+
cycleStarted: Counter<"agent_id">;
|
|
25
|
+
/** Incremented when an OODA cycle finishes; `outcome` = "success" | "error" | "skipped". */
|
|
26
|
+
cycleCompleted: Counter<"agent_id" | "outcome">;
|
|
27
|
+
/** Duration of an OODA cycle by phase ("observe"|"orient"|"decide"|"act"|"total"). */
|
|
28
|
+
cycleDuration: Histogram<"agent_id" | "phase">;
|
|
29
|
+
/** Incremented when a HITL approval request is sent. */
|
|
30
|
+
hitlRequested: Counter<"agent_id">;
|
|
31
|
+
/** Incremented when a HITL request resolves; `decision` = "approved" | "rejected" | "timeout". */
|
|
32
|
+
hitlResolved: Counter<"agent_id" | "decision">;
|
|
33
|
+
/** Incremented for every LLM API call attempted. */
|
|
34
|
+
llmCallCount: Counter<"agent_id" | "provider">;
|
|
35
|
+
/** Total tokens used; `direction` = "input" | "output". */
|
|
36
|
+
llmTokensUsed: Counter<"agent_id" | "provider" | "direction">;
|
|
37
|
+
/** Cumulative LLM cost in USD (Counter, never resets). */
|
|
38
|
+
llmCostUsd: Counter<"agent_id" | "provider">;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Options for `createAgentMetrics`.
|
|
42
|
+
*
|
|
43
|
+
* @public
|
|
44
|
+
*/
|
|
45
|
+
export interface CreateAgentMetricsOptions {
|
|
46
|
+
/**
|
|
47
|
+
* prom-client Registry to register metrics on.
|
|
48
|
+
* Defaults to a fresh isolated Registry per call so multiple consumers do
|
|
49
|
+
* not collide on the global default registry.
|
|
50
|
+
* Pass your own Registry to aggregate with other metrics.
|
|
51
|
+
*/
|
|
52
|
+
registry?: Registry;
|
|
53
|
+
/**
|
|
54
|
+
* Metric name prefix (must end with `_`).
|
|
55
|
+
* @default "agent_"
|
|
56
|
+
* @example "forge_"
|
|
57
|
+
*/
|
|
58
|
+
prefix?: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Create a set of standard Prometheus metrics for an SDK agent.
|
|
62
|
+
*
|
|
63
|
+
* If prom-client is not installed (optional peer dependency), returns no-op
|
|
64
|
+
* stubs so the call site does not need to handle `null`.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```ts
|
|
68
|
+
* import { createAgentMetrics } from "@vauban-org/agent-sdk/metrics";
|
|
69
|
+
*
|
|
70
|
+
* const m = createAgentMetrics({ prefix: "forge_" });
|
|
71
|
+
* m.cycleStarted.inc({ agent_id: "my-agent" });
|
|
72
|
+
* ```
|
|
73
|
+
*
|
|
74
|
+
* @public
|
|
75
|
+
*/
|
|
76
|
+
export declare function createAgentMetrics(opts?: CreateAgentMetricsOptions): AgentMetrics;
|
|
77
|
+
export type { Registry };
|
|
78
|
+
//# sourceMappingURL=create-agent-metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-agent-metrics.d.ts","sourceRoot":"","sources":["../../src/metrics/create-agent-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,KAAK,QAAQ,GAAG,OAAO,aAAa,EAAE,QAAQ,CAAC;AAC/C,KAAK,OAAO,CAAC,CAAC,SAAS,MAAM,IAAI,OAAO,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI,OAAO,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAiDtE;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,6CAA6C;IAC7C,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAClC,4FAA4F;IAC5F,cAAc,EAAE,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IAChD,sFAAsF;IACtF,aAAa,EAAE,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC;IAC/C,wDAAwD;IACxD,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,kGAAkG;IAClG,YAAY,EAAE,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC;IAC/C,oDAAoD;IACpD,YAAY,EAAE,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC;IAC/C,2DAA2D;IAC3D,aAAa,EAAE,OAAO,CAAC,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC,CAAC;IAC9D,0DAA0D;IAC1D,UAAU,EAAE,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC;CAC9C;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,GAAE,yBAA8B,GACnC,YAAY,CAyFd;AAID,YAAY,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prometheus metrics factory for SDK agents.
|
|
3
|
+
*
|
|
4
|
+
* Promoted from forge/src/agents/shared/metrics.ts (Vague 1.B.4).
|
|
5
|
+
*
|
|
6
|
+
* prom-client is an optional peer dependency. If absent, all metrics are
|
|
7
|
+
* no-op stubs so consumers that do not use Prometheus can still import this
|
|
8
|
+
* module without errors.
|
|
9
|
+
*
|
|
10
|
+
* @public @since 0.18.0
|
|
11
|
+
*/
|
|
12
|
+
import { createRequire } from "node:module";
|
|
13
|
+
// ─── Lazy prom-client loader ──────────────────────────────────────────────────
|
|
14
|
+
let _prom;
|
|
15
|
+
/**
|
|
16
|
+
* Load prom-client synchronously once, cache result.
|
|
17
|
+
* Returns null if prom-client is not installed.
|
|
18
|
+
*/
|
|
19
|
+
function loadPromClient() {
|
|
20
|
+
if (_prom !== undefined)
|
|
21
|
+
return _prom;
|
|
22
|
+
try {
|
|
23
|
+
const req = createRequire(import.meta.url);
|
|
24
|
+
_prom = req("prom-client");
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
_prom = null;
|
|
28
|
+
}
|
|
29
|
+
return _prom;
|
|
30
|
+
}
|
|
31
|
+
// ─── No-op stubs ──────────────────────────────────────────────────────────────
|
|
32
|
+
/** Minimal no-op counter. Safe to call `.inc()` / `.labels()` without effect. */
|
|
33
|
+
function noopCounter() {
|
|
34
|
+
const stub = {
|
|
35
|
+
inc: () => undefined,
|
|
36
|
+
labels: () => stub,
|
|
37
|
+
reset: () => undefined,
|
|
38
|
+
remove: () => undefined,
|
|
39
|
+
};
|
|
40
|
+
return stub;
|
|
41
|
+
}
|
|
42
|
+
/** Minimal no-op histogram. Safe to call `.observe()` / `.startTimer()` without effect. */
|
|
43
|
+
function noopHistogram() {
|
|
44
|
+
const stub = {
|
|
45
|
+
observe: () => undefined,
|
|
46
|
+
startTimer: () => () => 0,
|
|
47
|
+
labels: () => stub,
|
|
48
|
+
reset: () => undefined,
|
|
49
|
+
remove: () => undefined,
|
|
50
|
+
zero: () => undefined,
|
|
51
|
+
};
|
|
52
|
+
return stub;
|
|
53
|
+
}
|
|
54
|
+
// ─── Factory ──────────────────────────────────────────────────────────────────
|
|
55
|
+
/**
|
|
56
|
+
* Create a set of standard Prometheus metrics for an SDK agent.
|
|
57
|
+
*
|
|
58
|
+
* If prom-client is not installed (optional peer dependency), returns no-op
|
|
59
|
+
* stubs so the call site does not need to handle `null`.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* import { createAgentMetrics } from "@vauban-org/agent-sdk/metrics";
|
|
64
|
+
*
|
|
65
|
+
* const m = createAgentMetrics({ prefix: "forge_" });
|
|
66
|
+
* m.cycleStarted.inc({ agent_id: "my-agent" });
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* @public
|
|
70
|
+
*/
|
|
71
|
+
export function createAgentMetrics(opts = {}) {
|
|
72
|
+
const prefix = opts.prefix ?? "agent_";
|
|
73
|
+
const prom = loadPromClient();
|
|
74
|
+
if (prom === null) {
|
|
75
|
+
return {
|
|
76
|
+
cycleStarted: noopCounter(),
|
|
77
|
+
cycleCompleted: noopCounter(),
|
|
78
|
+
cycleDuration: noopHistogram(),
|
|
79
|
+
hitlRequested: noopCounter(),
|
|
80
|
+
hitlResolved: noopCounter(),
|
|
81
|
+
llmCallCount: noopCounter(),
|
|
82
|
+
llmTokensUsed: noopCounter(),
|
|
83
|
+
llmCostUsd: noopCounter(),
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
const registry = opts.registry ?? new prom.Registry();
|
|
87
|
+
function counter(name, help, labelNames) {
|
|
88
|
+
return new prom.Counter({
|
|
89
|
+
name: `${prefix}${name}`,
|
|
90
|
+
help,
|
|
91
|
+
labelNames,
|
|
92
|
+
registers: [registry],
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
function histogram(name, help, labelNames, buckets) {
|
|
96
|
+
return new prom.Histogram({
|
|
97
|
+
name: `${prefix}${name}`,
|
|
98
|
+
help,
|
|
99
|
+
labelNames,
|
|
100
|
+
buckets: buckets ?? prom.linearBuckets(0, 500, 12),
|
|
101
|
+
registers: [registry],
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
cycleStarted: counter("cycle_started_total", "OODA cycles started", ["agent_id"]),
|
|
106
|
+
cycleCompleted: counter("cycle_completed_total", "OODA cycles completed", ["agent_id", "outcome"]),
|
|
107
|
+
cycleDuration: histogram("cycle_duration_ms", "OODA cycle duration in milliseconds", ["agent_id", "phase"]),
|
|
108
|
+
hitlRequested: counter("hitl_requested_total", "HITL requests sent", ["agent_id"]),
|
|
109
|
+
hitlResolved: counter("hitl_resolved_total", "HITL requests resolved", ["agent_id", "decision"]),
|
|
110
|
+
llmCallCount: counter("llm_calls_total", "LLM API calls", ["agent_id", "provider"]),
|
|
111
|
+
llmTokensUsed: counter("llm_tokens_total", "LLM tokens consumed", ["agent_id", "provider", "direction"]),
|
|
112
|
+
llmCostUsd: counter("llm_cost_usd_total", "Cumulative LLM cost in USD", ["agent_id", "provider"]),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=create-agent-metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-agent-metrics.js","sourceRoot":"","sources":["../../src/metrics/create-agent-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAW5C,iFAAiF;AAEjF,IAAI,KAAoC,CAAC;AAEzC;;;GAGG;AACH,SAAS,cAAc;IACrB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,KAAK,GAAG,GAAG,CAAC,aAAa,CAAe,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iFAAiF;AAEjF,iFAAiF;AACjF,SAAS,WAAW;IAClB,MAAM,IAAI,GAAG;QACX,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS;QACpB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAmD;QACjE,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS;QACtB,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;KACxB,CAAC;IACF,OAAO,IAA6B,CAAC;AACvC,CAAC;AAED,2FAA2F;AAC3F,SAAS,aAAa;IACpB,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;QACxB,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAW;QACnC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAqD;QACnE,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS;QACtB,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;QACvB,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;KACtB,CAAC;IACF,OAAO,IAA+B,CAAC;AACzC,CAAC;AAmDD,iFAAiF;AAEjF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAkC,EAAE;IAEpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC;IACvC,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAE9B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO;YACL,YAAY,EAAE,WAAW,EAAc;YACvC,cAAc,EAAE,WAAW,EAA0B;YACrD,aAAa,EAAE,aAAa,EAAwB;YACpD,aAAa,EAAE,WAAW,EAAc;YACxC,YAAY,EAAE,WAAW,EAA2B;YACpD,YAAY,EAAE,WAAW,EAA2B;YACpD,aAAa,EAAE,WAAW,EAAyC;YACnE,UAAU,EAAE,WAAW,EAA2B;SACnD,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;IAEtD,SAAS,OAAO,CACd,IAAY,EACZ,IAAY,EACZ,UAAe;QAEf,OAAO,IAAI,IAAK,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,GAAG,MAAM,GAAG,IAAI,EAAE;YACxB,IAAI;YACJ,UAAU;YACV,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;IAED,SAAS,SAAS,CAChB,IAAY,EACZ,IAAY,EACZ,UAAe,EACf,OAAkB;QAElB,OAAO,IAAI,IAAK,CAAC,SAAS,CAAC;YACzB,IAAI,EAAE,GAAG,MAAM,GAAG,IAAI,EAAE;YACxB,IAAI;YACJ,UAAU;YACV,OAAO,EAAE,OAAO,IAAI,IAAK,CAAC,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;YACnD,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,YAAY,EAAE,OAAO,CACnB,qBAAqB,EACrB,qBAAqB,EACrB,CAAC,UAAU,CAAC,CACb;QACD,cAAc,EAAE,OAAO,CACrB,uBAAuB,EACvB,uBAAuB,EACvB,CAAC,UAAU,EAAE,SAAS,CAAC,CACxB;QACD,aAAa,EAAE,SAAS,CACtB,mBAAmB,EACnB,qCAAqC,EACrC,CAAC,UAAU,EAAE,OAAO,CAAC,CACtB;QACD,aAAa,EAAE,OAAO,CACpB,sBAAsB,EACtB,oBAAoB,EACpB,CAAC,UAAU,CAAC,CACb;QACD,YAAY,EAAE,OAAO,CACnB,qBAAqB,EACrB,wBAAwB,EACxB,CAAC,UAAU,EAAE,UAAU,CAAC,CACzB;QACD,YAAY,EAAE,OAAO,CACnB,iBAAiB,EACjB,eAAe,EACf,CAAC,UAAU,EAAE,UAAU,CAAC,CACzB;QACD,aAAa,EAAE,OAAO,CACpB,kBAAkB,EAClB,qBAAqB,EACrB,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CACtC;QACD,UAAU,EAAE,OAAO,CACjB,oBAAoB,EACpB,4BAA4B,EAC5B,CAAC,UAAU,EAAE,UAAU,CAAC,CACzB;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bulkhead worker pool — bounded concurrency with FIFO queue and metrics.
|
|
3
|
+
*
|
|
4
|
+
* Sprint-468 (command-center:sprint-468:bulkhead).
|
|
5
|
+
*
|
|
6
|
+
* createBulkhead returns a typed worker-pool object with:
|
|
7
|
+
* - run(fn) — enqueue a zero-argument task; resolves/rejects per task
|
|
8
|
+
* - metrics() — live snapshot: active, queued, rejected, completed
|
|
9
|
+
*
|
|
10
|
+
* This is the orchestration-layer variant of resilience/bulkhead.ts.
|
|
11
|
+
* The key difference is the factory pattern (one pool, many tasks) vs. the
|
|
12
|
+
* resilience variant that wraps a single fixed function. Use this when the
|
|
13
|
+
* pool itself is a resource to manage (e.g. DB connection pool, LLM slots).
|
|
14
|
+
*
|
|
15
|
+
* Queue discipline: FIFO. Tasks enter the queue in submission order and
|
|
16
|
+
* acquire a worker slot in the same order.
|
|
17
|
+
*
|
|
18
|
+
* Fast-reject: when `rejectOnFull` is true (default) and the queue is at
|
|
19
|
+
* `maxQueue` capacity, new submissions throw `BulkheadQueueFullError`
|
|
20
|
+
* synchronously (before awaiting). When `rejectOnFull` is false, callers
|
|
21
|
+
* block indefinitely until a slot opens — useful for back-pressure scenarios.
|
|
22
|
+
*/
|
|
23
|
+
export declare class BulkheadQueueFullError extends Error {
|
|
24
|
+
constructor(active: number, queued: number, maxConcurrent: number, maxQueue: number);
|
|
25
|
+
}
|
|
26
|
+
export interface BulkheadOptions {
|
|
27
|
+
/** Maximum number of concurrently executing tasks. */
|
|
28
|
+
maxConcurrent: number;
|
|
29
|
+
/** Maximum queue depth. Defaults to `maxConcurrent * 10`. */
|
|
30
|
+
maxQueue?: number;
|
|
31
|
+
/**
|
|
32
|
+
* When true (default): reject immediately when the queue is full.
|
|
33
|
+
* When false: block the caller indefinitely (unbounded wait).
|
|
34
|
+
*/
|
|
35
|
+
rejectOnFull?: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface BulkheadMetrics {
|
|
38
|
+
/** Currently executing task count. */
|
|
39
|
+
active: number;
|
|
40
|
+
/** Tasks waiting in the queue. */
|
|
41
|
+
queued: number;
|
|
42
|
+
/** Tasks rejected because the queue was full (lifetime counter). */
|
|
43
|
+
rejected: number;
|
|
44
|
+
/** Tasks that completed successfully or with an error (lifetime counter). */
|
|
45
|
+
completed: number;
|
|
46
|
+
}
|
|
47
|
+
export interface BulkheadPool<T> {
|
|
48
|
+
/**
|
|
49
|
+
* Submit a zero-argument async task to the pool.
|
|
50
|
+
*
|
|
51
|
+
* Returns a Promise that resolves/rejects with the task's outcome.
|
|
52
|
+
* May throw `BulkheadQueueFullError` synchronously when rejectOnFull=true
|
|
53
|
+
* and the queue is at capacity.
|
|
54
|
+
*/
|
|
55
|
+
run(fn: () => Promise<T>): Promise<T>;
|
|
56
|
+
/** Live metrics snapshot (no allocation beyond the returned object). */
|
|
57
|
+
metrics(): BulkheadMetrics;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Create a typed bulkhead worker pool.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```ts
|
|
64
|
+
* const pool = createBulkhead<string>({ maxConcurrent: 3, maxQueue: 10 });
|
|
65
|
+
* const result = await pool.run(() => fetchSomething());
|
|
66
|
+
* console.log(pool.metrics()); // { active: 0, queued: 0, rejected: 0, completed: 1 }
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare function createBulkhead<T>(opts: BulkheadOptions): BulkheadPool<T>;
|
|
70
|
+
//# sourceMappingURL=bulkhead.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bulkhead.d.ts","sourceRoot":"","sources":["../../src/orchestration/bulkhead.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAMpF;AAED,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEtC,wEAAwE;IACxE,OAAO,IAAI,eAAe,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,CAiExE"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bulkhead worker pool — bounded concurrency with FIFO queue and metrics.
|
|
3
|
+
*
|
|
4
|
+
* Sprint-468 (command-center:sprint-468:bulkhead).
|
|
5
|
+
*
|
|
6
|
+
* createBulkhead returns a typed worker-pool object with:
|
|
7
|
+
* - run(fn) — enqueue a zero-argument task; resolves/rejects per task
|
|
8
|
+
* - metrics() — live snapshot: active, queued, rejected, completed
|
|
9
|
+
*
|
|
10
|
+
* This is the orchestration-layer variant of resilience/bulkhead.ts.
|
|
11
|
+
* The key difference is the factory pattern (one pool, many tasks) vs. the
|
|
12
|
+
* resilience variant that wraps a single fixed function. Use this when the
|
|
13
|
+
* pool itself is a resource to manage (e.g. DB connection pool, LLM slots).
|
|
14
|
+
*
|
|
15
|
+
* Queue discipline: FIFO. Tasks enter the queue in submission order and
|
|
16
|
+
* acquire a worker slot in the same order.
|
|
17
|
+
*
|
|
18
|
+
* Fast-reject: when `rejectOnFull` is true (default) and the queue is at
|
|
19
|
+
* `maxQueue` capacity, new submissions throw `BulkheadQueueFullError`
|
|
20
|
+
* synchronously (before awaiting). When `rejectOnFull` is false, callers
|
|
21
|
+
* block indefinitely until a slot opens — useful for back-pressure scenarios.
|
|
22
|
+
*/
|
|
23
|
+
export class BulkheadQueueFullError extends Error {
|
|
24
|
+
constructor(active, queued, maxConcurrent, maxQueue) {
|
|
25
|
+
super(`Bulkhead full — active=${active}/${maxConcurrent}, queued=${queued}/${maxQueue}`);
|
|
26
|
+
this.name = "BulkheadQueueFullError";
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Create a typed bulkhead worker pool.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* const pool = createBulkhead<string>({ maxConcurrent: 3, maxQueue: 10 });
|
|
35
|
+
* const result = await pool.run(() => fetchSomething());
|
|
36
|
+
* console.log(pool.metrics()); // { active: 0, queued: 0, rejected: 0, completed: 1 }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export function createBulkhead(opts) {
|
|
40
|
+
const maxConcurrent = opts.maxConcurrent;
|
|
41
|
+
const maxQueue = opts.maxQueue ?? maxConcurrent * 10;
|
|
42
|
+
const rejectOnFull = opts.rejectOnFull !== false; // default true
|
|
43
|
+
let active = 0;
|
|
44
|
+
let rejected = 0;
|
|
45
|
+
let completed = 0;
|
|
46
|
+
const queue = [];
|
|
47
|
+
function tryDequeue() {
|
|
48
|
+
if (active >= maxConcurrent)
|
|
49
|
+
return;
|
|
50
|
+
const next = queue.shift();
|
|
51
|
+
if (next) {
|
|
52
|
+
active += 1;
|
|
53
|
+
next();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function acquire() {
|
|
57
|
+
if (active < maxConcurrent) {
|
|
58
|
+
active += 1;
|
|
59
|
+
return Promise.resolve();
|
|
60
|
+
}
|
|
61
|
+
if (rejectOnFull && queue.length >= maxQueue) {
|
|
62
|
+
rejected += 1;
|
|
63
|
+
return Promise.reject(new BulkheadQueueFullError(active, queue.length, maxConcurrent, maxQueue));
|
|
64
|
+
}
|
|
65
|
+
// Either not rejectOnFull, or queue has room — enqueue.
|
|
66
|
+
return new Promise((resolve, reject) => {
|
|
67
|
+
if (queue.length >= maxQueue) {
|
|
68
|
+
// Reached here only when rejectOnFull=false but queue just filled
|
|
69
|
+
// concurrently before we could enqueue. Reject as safety valve.
|
|
70
|
+
rejected += 1;
|
|
71
|
+
reject(new BulkheadQueueFullError(active, queue.length, maxConcurrent, maxQueue));
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
queue.push(() => {
|
|
75
|
+
resolve();
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
function release() {
|
|
80
|
+
active -= 1;
|
|
81
|
+
completed += 1;
|
|
82
|
+
tryDequeue();
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
async run(fn) {
|
|
86
|
+
await acquire();
|
|
87
|
+
try {
|
|
88
|
+
return await fn();
|
|
89
|
+
}
|
|
90
|
+
finally {
|
|
91
|
+
release();
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
metrics() {
|
|
95
|
+
return { active, queued: queue.length, rejected, completed };
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=bulkhead.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bulkhead.js","sourceRoot":"","sources":["../../src/orchestration/bulkhead.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,MAAc,EAAE,MAAc,EAAE,aAAqB,EAAE,QAAgB;QACjF,KAAK,CACH,0BAA0B,MAAM,IAAI,aAAa,YAAY,MAAM,IAAI,QAAQ,EAAE,CAClF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAuCD;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAI,IAAqB;IACrD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,aAAa,GAAG,EAAE,CAAC;IACrD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,eAAe;IAEjE,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,KAAK,GAAsB,EAAE,CAAC;IAEpC,SAAS,UAAU;QACjB,IAAI,MAAM,IAAI,aAAa;YAAE,OAAO;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,IAAI,CAAC,CAAC;YACZ,IAAI,EAAE,CAAC;QACT,CAAC;IACH,CAAC;IAED,SAAS,OAAO;QACd,IAAI,MAAM,GAAG,aAAa,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,CAAC;YACZ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,YAAY,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC7C,QAAQ,IAAI,CAAC,CAAC;YACd,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,CAC1E,CAAC;QACJ,CAAC;QACD,wDAAwD;QACxD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAC7B,kEAAkE;gBAClE,gEAAgE;gBAChE,QAAQ,IAAI,CAAC,CAAC;gBACd,MAAM,CAAC,IAAI,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAClF,OAAO;YACT,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;gBACd,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,OAAO;QACd,MAAM,IAAI,CAAC,CAAC;QACZ,SAAS,IAAI,CAAC,CAAC;QACf,UAAU,EAAE,CAAC;IACf,CAAC;IAED,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,EAAoB;YAC5B,MAAM,OAAO,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,EAAE,CAAC;YACpB,CAAC;oBAAS,CAAC;gBACT,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QAC/D,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Idempotency primitives for orchestration-layer deduplication.
|
|
3
|
+
*
|
|
4
|
+
* Sprint-468 (command-center:sprint-468:idempotency-keys).
|
|
5
|
+
*
|
|
6
|
+
* Three utilities:
|
|
7
|
+
* - computeIdempotencyKey — SHA-256 fingerprint of a semantic payload
|
|
8
|
+
* - withIdempotency — in-memory call deduplication by key
|
|
9
|
+
* - addIdempotencyHeader — HTTP header injection for downstream services
|
|
10
|
+
*
|
|
11
|
+
* These operate at the orchestration layer (agent dispatch, pipeline step)
|
|
12
|
+
* rather than at the port level. Use the resilience/idempotent.ts primitive
|
|
13
|
+
* for direct port-wrapping; use these when you need explicit key management
|
|
14
|
+
* or HTTP propagation.
|
|
15
|
+
*/
|
|
16
|
+
export interface IdempotencyKeyPayload {
|
|
17
|
+
content: string;
|
|
18
|
+
author: string;
|
|
19
|
+
category: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Derive a stable SHA-256 hex key from a semantic payload.
|
|
23
|
+
*
|
|
24
|
+
* Fields are ordered deterministically (alphabetical) before hashing so
|
|
25
|
+
* that object construction order does not affect the result.
|
|
26
|
+
*
|
|
27
|
+
* @param payload - Semantic payload with content, author, and category.
|
|
28
|
+
* @returns 64-character lowercase hex string.
|
|
29
|
+
*/
|
|
30
|
+
export declare function computeIdempotencyKey(payload: IdempotencyKeyPayload): string;
|
|
31
|
+
export interface WithIdempotencyOptions {
|
|
32
|
+
/** Entry TTL in ms. Default: 5 minutes. */
|
|
33
|
+
ttlMs?: number;
|
|
34
|
+
}
|
|
35
|
+
interface CacheEntry<T> {
|
|
36
|
+
promise: Promise<T>;
|
|
37
|
+
expiresAt: number;
|
|
38
|
+
}
|
|
39
|
+
export declare function withIdempotency<T>(call: () => Promise<T>, key: string, opts?: WithIdempotencyOptions, store?: Map<string, CacheEntry<unknown>>): Promise<T>;
|
|
40
|
+
/**
|
|
41
|
+
* Inject an `X-Idempotency-Key` header into a plain headers record.
|
|
42
|
+
*
|
|
43
|
+
* Returns a new object — does not mutate the input. Safe to call in a
|
|
44
|
+
* pipeline step that builds the options for a downstream `fetch` call.
|
|
45
|
+
*
|
|
46
|
+
* @param headers - Existing headers object (may be empty).
|
|
47
|
+
* @param key - Idempotency key (from computeIdempotencyKey or any string).
|
|
48
|
+
* @returns New headers object with X-Idempotency-Key added.
|
|
49
|
+
*/
|
|
50
|
+
export declare function addIdempotencyHeader(headers: Record<string, string>, key: string): Record<string, string>;
|
|
51
|
+
export {};
|
|
52
|
+
//# sourceMappingURL=idempotency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idempotency.d.ts","sourceRoot":"","sources":["../../src/orchestration/idempotency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAS5E;AAMD,MAAM,WAAW,sBAAsB;IACrC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU,CAAC,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAwBD,wBAAgB,eAAe,CAAC,CAAC,EAC/B,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,sBAAsB,EAC7B,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,GACvC,OAAO,CAAC,CAAC,CAAC,CA0BZ;AAMD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,GAAG,EAAE,MAAM,GACV,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExB"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Idempotency primitives for orchestration-layer deduplication.
|
|
3
|
+
*
|
|
4
|
+
* Sprint-468 (command-center:sprint-468:idempotency-keys).
|
|
5
|
+
*
|
|
6
|
+
* Three utilities:
|
|
7
|
+
* - computeIdempotencyKey — SHA-256 fingerprint of a semantic payload
|
|
8
|
+
* - withIdempotency — in-memory call deduplication by key
|
|
9
|
+
* - addIdempotencyHeader — HTTP header injection for downstream services
|
|
10
|
+
*
|
|
11
|
+
* These operate at the orchestration layer (agent dispatch, pipeline step)
|
|
12
|
+
* rather than at the port level. Use the resilience/idempotent.ts primitive
|
|
13
|
+
* for direct port-wrapping; use these when you need explicit key management
|
|
14
|
+
* or HTTP propagation.
|
|
15
|
+
*/
|
|
16
|
+
import { createHash } from "node:crypto";
|
|
17
|
+
/**
|
|
18
|
+
* Derive a stable SHA-256 hex key from a semantic payload.
|
|
19
|
+
*
|
|
20
|
+
* Fields are ordered deterministically (alphabetical) before hashing so
|
|
21
|
+
* that object construction order does not affect the result.
|
|
22
|
+
*
|
|
23
|
+
* @param payload - Semantic payload with content, author, and category.
|
|
24
|
+
* @returns 64-character lowercase hex string.
|
|
25
|
+
*/
|
|
26
|
+
export function computeIdempotencyKey(payload) {
|
|
27
|
+
const h = createHash("sha256");
|
|
28
|
+
// Deterministic field order — alphabet: author < category < content
|
|
29
|
+
h.update(payload.author);
|
|
30
|
+
h.update("\x1f");
|
|
31
|
+
h.update(payload.category);
|
|
32
|
+
h.update("\x1f");
|
|
33
|
+
h.update(payload.content);
|
|
34
|
+
return h.digest("hex");
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Deduplicate concurrent or repeated async calls using an in-memory Map.
|
|
38
|
+
*
|
|
39
|
+
* While a call identified by `key` is in-flight, subsequent calls with the
|
|
40
|
+
* same key attach to the same Promise (fan-out dedup). Once the call
|
|
41
|
+
* settles, the result is cached for `ttlMs` ms so that replay requests
|
|
42
|
+
* within the window also receive the same value without re-invoking.
|
|
43
|
+
*
|
|
44
|
+
* Failures are NOT cached: a failed call is immediately evicted so it can
|
|
45
|
+
* be retried.
|
|
46
|
+
*
|
|
47
|
+
* The shared cache Map is module-scoped by default. Pass an explicit Map
|
|
48
|
+
* for per-instance isolation (e.g. in tests or multi-tenant agents).
|
|
49
|
+
*
|
|
50
|
+
* @param call - Zero-argument factory returning a Promise.
|
|
51
|
+
* @param key - Stable deduplication key (from computeIdempotencyKey or any string).
|
|
52
|
+
* @param opts - Optional TTL override.
|
|
53
|
+
* @param store - Optional shared Map (module-level singleton by default).
|
|
54
|
+
*/
|
|
55
|
+
const _defaultStore = new Map();
|
|
56
|
+
export function withIdempotency(call, key, opts, store) {
|
|
57
|
+
const cache = (store ?? _defaultStore);
|
|
58
|
+
const ttlMs = opts?.ttlMs ?? 5 * 60_000;
|
|
59
|
+
const now = Date.now();
|
|
60
|
+
const existing = cache.get(key);
|
|
61
|
+
if (existing !== undefined && existing.expiresAt > now) {
|
|
62
|
+
return existing.promise;
|
|
63
|
+
}
|
|
64
|
+
const promise = call().then((value) => {
|
|
65
|
+
// Refresh TTL on success so replays within window are cheap.
|
|
66
|
+
cache.set(key, { promise: Promise.resolve(value), expiresAt: Date.now() + ttlMs });
|
|
67
|
+
return value;
|
|
68
|
+
}, (err) => {
|
|
69
|
+
// Evict on failure — allow retry.
|
|
70
|
+
cache.delete(key);
|
|
71
|
+
return Promise.reject(err);
|
|
72
|
+
});
|
|
73
|
+
// Store the in-flight promise immediately so concurrent callers attach.
|
|
74
|
+
cache.set(key, { promise, expiresAt: now + ttlMs });
|
|
75
|
+
return promise;
|
|
76
|
+
}
|
|
77
|
+
// ---------------------------------------------------------------------------
|
|
78
|
+
// addIdempotencyHeader
|
|
79
|
+
// ---------------------------------------------------------------------------
|
|
80
|
+
/**
|
|
81
|
+
* Inject an `X-Idempotency-Key` header into a plain headers record.
|
|
82
|
+
*
|
|
83
|
+
* Returns a new object — does not mutate the input. Safe to call in a
|
|
84
|
+
* pipeline step that builds the options for a downstream `fetch` call.
|
|
85
|
+
*
|
|
86
|
+
* @param headers - Existing headers object (may be empty).
|
|
87
|
+
* @param key - Idempotency key (from computeIdempotencyKey or any string).
|
|
88
|
+
* @returns New headers object with X-Idempotency-Key added.
|
|
89
|
+
*/
|
|
90
|
+
export function addIdempotencyHeader(headers, key) {
|
|
91
|
+
return { ...headers, "X-Idempotency-Key": key };
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=idempotency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/orchestration/idempotency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAYzC;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAA8B;IAClE,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC/B,oEAAoE;IACpE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAgBD;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,aAAa,GAAG,IAAI,GAAG,EAA+B,CAAC;AAE7D,MAAM,UAAU,eAAe,CAC7B,IAAsB,EACtB,GAAW,EACX,IAA6B,EAC7B,KAAwC;IAExC,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,aAAa,CAA+B,CAAC;IACrE,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;QACvD,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC,IAAI,CACzB,CAAC,KAAK,EAAE,EAAE;QACR,6DAA6D;QAC7D,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACnF,OAAO,KAAK,CAAC;IACf,CAAC,EACD,CAAC,GAAY,EAAE,EAAE;QACf,kCAAkC;QAClC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClB,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,CACF,CAAC;IAEF,wEAAwE;IACxE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;IACpD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAA+B,EAC/B,GAAW;IAEX,OAAO,EAAE,GAAG,OAAO,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestration primitives — public barrel.
|
|
3
|
+
*
|
|
4
|
+
* Exports:
|
|
5
|
+
* - OODA agent loop (sprint-525 Bloc 5a)
|
|
6
|
+
* - Idempotency key utilities (sprint-468:idempotency-keys)
|
|
7
|
+
* - Bulkhead worker pool (sprint-468:bulkhead)
|
|
8
|
+
*
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export * from "./ooda/index.js";
|
|
12
|
+
export type { IdempotencyKeyPayload, WithIdempotencyOptions } from "./idempotency.js";
|
|
13
|
+
export { computeIdempotencyKey, withIdempotency, addIdempotencyHeader, } from "./idempotency.js";
|
|
14
|
+
export { BulkheadQueueFullError, createBulkhead } from "./bulkhead.js";
|
|
15
|
+
export type { BulkheadOptions as OrchestrationBulkheadOptions, BulkheadMetrics, BulkheadPool } from "./bulkhead.js";
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestration/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,iBAAiB,CAAC;AAGhC,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACvE,YAAY,EAAE,eAAe,IAAI,4BAA4B,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestration primitives — public barrel.
|
|
3
|
+
*
|
|
4
|
+
* Exports:
|
|
5
|
+
* - OODA agent loop (sprint-525 Bloc 5a)
|
|
6
|
+
* - Idempotency key utilities (sprint-468:idempotency-keys)
|
|
7
|
+
* - Bulkhead worker pool (sprint-468:bulkhead)
|
|
8
|
+
*
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export * from "./ooda/index.js";
|
|
12
|
+
export { computeIdempotencyKey, withIdempotency, addIdempotencyHeader, } from "./idempotency.js";
|
|
13
|
+
// Bulkhead worker pool (sprint-468:bulkhead)
|
|
14
|
+
export { BulkheadQueueFullError, createBulkhead } from "./bulkhead.js";
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestration/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,iBAAiB,CAAC;AAIhC,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,6CAA6C;AAC7C,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentConfigLoader — hot-reload config cache for OODA agents.
|
|
3
|
+
*
|
|
4
|
+
* Reads per-agent runtime configuration from the `agent_config` table with an
|
|
5
|
+
* in-memory TTL cache (default 30s). Each OODA cycle calls `get(agentId)` at
|
|
6
|
+
* the start; after the TTL expires the next call transparently re-fetches from
|
|
7
|
+
* the DB. No restart required for config changes.
|
|
8
|
+
*
|
|
9
|
+
* Column strategy:
|
|
10
|
+
* - `config` (new schema) — preferred when present.
|
|
11
|
+
* - `extra` (sprint-472 legacy) — backward-compat fallback.
|
|
12
|
+
*
|
|
13
|
+
* The `columnName` option allows the host to pin the column explicitly.
|
|
14
|
+
*
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
import type { DbClient } from "../../tracking/agent-run-tracker.js";
|
|
18
|
+
/**
|
|
19
|
+
* Minimal contract for a hot-reload config cache.
|
|
20
|
+
*
|
|
21
|
+
* @typeParam T - Shape of the agent configuration object.
|
|
22
|
+
*/
|
|
23
|
+
export interface AgentConfigLoader<T = Record<string, unknown>> {
|
|
24
|
+
/**
|
|
25
|
+
* Return config for `agentId`. Serves from cache when within TTL;
|
|
26
|
+
* otherwise fetches from `agent_config` table and refreshes the cache.
|
|
27
|
+
*
|
|
28
|
+
* If no row exists for `agentId`, returns `defaultConfig` (or `{}` if
|
|
29
|
+
* none was provided).
|
|
30
|
+
*/
|
|
31
|
+
get(agentId: string): Promise<T>;
|
|
32
|
+
/**
|
|
33
|
+
* Evict `agentId` from the cache. The next `get` call will re-fetch
|
|
34
|
+
* from the database regardless of TTL.
|
|
35
|
+
*/
|
|
36
|
+
invalidate(agentId: string): void;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Create a hot-reload config loader backed by the `agent_config` table.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const loader = createAgentConfigLoader<MyConfig>({
|
|
44
|
+
* db,
|
|
45
|
+
* ttlMs: 30_000,
|
|
46
|
+
* defaultConfig: { kelly_cap: 0.2, conviction_min: 0.6 },
|
|
47
|
+
* });
|
|
48
|
+
*
|
|
49
|
+
* // At cycle start:
|
|
50
|
+
* const cfg = await loader.get(agentId);
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare function createAgentConfigLoader<T = Record<string, unknown>>(opts: {
|
|
54
|
+
/** Postgres-compatible DB client (pg.Pool, pg.Client, or test mock). */
|
|
55
|
+
db: DbClient;
|
|
56
|
+
/** Cache TTL in milliseconds. Default: 30 000 (30s). */
|
|
57
|
+
ttlMs?: number;
|
|
58
|
+
/** Returned when no row exists for the requested agentId. */
|
|
59
|
+
defaultConfig?: T;
|
|
60
|
+
/**
|
|
61
|
+
* Which JSONB column to read from `agent_config`.
|
|
62
|
+
* - `'extra'` — sprint-472 legacy column (default when omitted).
|
|
63
|
+
* - `'config'` — new column (set if schema was migrated to add it).
|
|
64
|
+
*/
|
|
65
|
+
columnName?: "config" | "extra";
|
|
66
|
+
}): AgentConfigLoader<T>;
|
|
67
|
+
//# sourceMappingURL=agent-config-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-config-loader.d.ts","sourceRoot":"","sources":["../../../src/orchestration/ooda/agent-config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAIpE;;;;GAIG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5D;;;;;;OAMG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEjC;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAWD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE;IACzE,wEAAwE;IACxE,EAAE,EAAE,QAAQ,CAAC;IACb,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB;;;;OAIG;IACH,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CACjC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAqCvB"}
|