@warlock.js/ai 4.4.0 → 4.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +63 -52
- package/cjs/index.cjs +240 -14147
- package/cjs/src-Bmajk4Qg.cjs +30 -0
- package/cjs/src-OZyDYHxm.cjs +25089 -0
- package/cjs/src-OZyDYHxm.cjs.map +1 -0
- package/esm/agent/agent-config.type.d.mts +119 -1
- package/esm/agent/agent-config.type.d.mts.map +1 -1
- package/esm/agent/agent-input-builder.mjs +27 -6
- package/esm/agent/agent-input-builder.mjs.map +1 -1
- package/esm/agent/agent.d.mts +40 -1
- package/esm/agent/agent.d.mts.map +1 -1
- package/esm/agent/agent.mjs +328 -36
- package/esm/agent/agent.mjs.map +1 -1
- package/esm/agent/index.d.mts +2 -1
- package/esm/agent/index.mjs +1 -0
- package/esm/agent/judge-config.type.d.mts +33 -0
- package/esm/agent/judge-config.type.d.mts.map +1 -0
- package/esm/agent/judge-config.type.mjs +13 -0
- package/esm/agent/judge-config.type.mjs.map +1 -0
- package/esm/agent/signature.mjs +57 -0
- package/esm/agent/signature.mjs.map +1 -0
- package/esm/agent/snapshot.mjs +101 -0
- package/esm/agent/snapshot.mjs.map +1 -0
- package/esm/ai-openai/src/embedder.mjs +4 -0
- package/esm/ai-openai/src/image.mjs +5 -0
- package/esm/ai-openai/src/index.mjs +7 -0
- package/esm/ai-openai/src/model.mjs +5 -0
- package/esm/ai-openai/src/sdk.mjs +9 -0
- package/esm/ai-openai/src/speech.mjs +5 -0
- package/esm/ai-openai/src/transcription.mjs +6 -0
- package/esm/ai-openai/src/utils/index.mjs +5 -0
- package/esm/ai-openai/src/utils/to-openai-messages.mjs +3 -0
- package/esm/ai-openai/src/utils/to-openai-tools.mjs +3 -0
- package/esm/ai-openai/src/utils/wrap-openai-error.mjs +4 -0
- package/esm/ai.d.mts +164 -53
- package/esm/ai.d.mts.map +1 -1
- package/esm/ai.mjs +79 -8
- package/esm/ai.mjs.map +1 -1
- package/esm/batch/batch.d.mts.map +1 -1
- package/esm/batch/batch.mjs +21 -1
- package/esm/batch/batch.mjs.map +1 -1
- package/esm/batch/batch.type.d.mts +11 -4
- package/esm/batch/batch.type.d.mts.map +1 -1
- package/esm/config.d.mts +39 -3
- package/esm/config.d.mts.map +1 -1
- package/esm/config.mjs +26 -2
- package/esm/config.mjs.map +1 -1
- package/esm/contracts/agent/agent-options.type.d.mts +33 -5
- package/esm/contracts/agent/agent-options.type.d.mts.map +1 -1
- package/esm/contracts/agent/agent-snapshot.type.d.mts +90 -0
- package/esm/contracts/agent/agent-snapshot.type.d.mts.map +1 -0
- package/esm/contracts/agent/agent.contract.d.mts +29 -1
- package/esm/contracts/agent/agent.contract.d.mts.map +1 -1
- package/esm/contracts/agent/eval.type.d.mts +43 -2
- package/esm/contracts/agent/eval.type.d.mts.map +1 -1
- package/esm/contracts/agent/index.d.mts +2 -1
- package/esm/contracts/attachment-policy.type.d.mts +51 -0
- package/esm/contracts/attachment-policy.type.d.mts.map +1 -0
- package/esm/contracts/attachment.type.d.mts +16 -7
- package/esm/contracts/attachment.type.d.mts.map +1 -1
- package/esm/contracts/content-part.type.d.mts +14 -5
- package/esm/contracts/content-part.type.d.mts.map +1 -1
- package/esm/contracts/events/supervisor-events.type.d.mts.map +1 -1
- package/esm/contracts/image-model.contract.d.mts +156 -0
- package/esm/contracts/image-model.contract.d.mts.map +1 -0
- package/esm/contracts/index.d.mts +13 -6
- package/esm/contracts/model.contract.d.mts +11 -8
- package/esm/contracts/model.contract.d.mts.map +1 -1
- package/esm/contracts/orchestrator/index.d.mts +1 -0
- package/esm/contracts/orchestrator/orchestrator-config.type.d.mts +31 -2
- package/esm/contracts/orchestrator/orchestrator-config.type.d.mts.map +1 -1
- package/esm/contracts/orchestrator/session-lock.contract.d.mts +47 -0
- package/esm/contracts/orchestrator/session-lock.contract.d.mts.map +1 -0
- package/esm/contracts/planner/index.d.mts +3 -2
- package/esm/contracts/planner/planner-config.type.d.mts +61 -0
- package/esm/contracts/planner/planner-config.type.d.mts.map +1 -1
- package/esm/contracts/planner/planner-execute-options.type.d.mts +60 -1
- package/esm/contracts/planner/planner-execute-options.type.d.mts.map +1 -1
- package/esm/contracts/planner/planner-result.type.d.mts +8 -0
- package/esm/contracts/planner/planner-result.type.d.mts.map +1 -1
- package/esm/contracts/planner/planner-snapshot.type.d.mts +77 -0
- package/esm/contracts/planner/planner-snapshot.type.d.mts.map +1 -0
- package/esm/contracts/planner/planner.contract.d.mts +21 -1
- package/esm/contracts/planner/planner.contract.d.mts.map +1 -1
- package/esm/contracts/result/agent-result.type.d.mts +6 -4
- package/esm/contracts/result/agent-result.type.d.mts.map +1 -1
- package/esm/contracts/result/base-report.type.d.mts +21 -3
- package/esm/contracts/result/base-report.type.d.mts.map +1 -1
- package/esm/contracts/result/base-report.type.mjs.map +1 -1
- package/esm/contracts/result/execution-report.type.d.mts +53 -1
- package/esm/contracts/result/execution-report.type.d.mts.map +1 -1
- package/esm/contracts/result/supervisor-result.type.d.mts +14 -2
- package/esm/contracts/result/supervisor-result.type.d.mts.map +1 -1
- package/esm/contracts/result/workflow-result.type.d.mts +2 -1
- package/esm/contracts/result/workflow-result.type.d.mts.map +1 -1
- package/esm/contracts/sdk-adapter.contract.d.mts +37 -0
- package/esm/contracts/sdk-adapter.contract.d.mts.map +1 -1
- package/esm/contracts/speech-model.contract.d.mts +97 -0
- package/esm/contracts/speech-model.contract.d.mts.map +1 -0
- package/esm/contracts/supervisor/supervisor-config.type.d.mts +29 -0
- package/esm/contracts/supervisor/supervisor-config.type.d.mts.map +1 -1
- package/esm/contracts/system-prompt.contract.d.mts +103 -1
- package/esm/contracts/system-prompt.contract.d.mts.map +1 -1
- package/esm/contracts/team/index.d.mts +1 -0
- package/esm/contracts/team/team-config.type.d.mts +127 -0
- package/esm/contracts/team/team-config.type.d.mts.map +1 -0
- package/esm/contracts/tool.contract.d.mts +4 -2
- package/esm/contracts/tool.contract.d.mts.map +1 -1
- package/esm/contracts/transcription-model.contract.d.mts +101 -0
- package/esm/contracts/transcription-model.contract.d.mts.map +1 -0
- package/esm/contracts/workflow/step.contract.d.mts +30 -5
- package/esm/contracts/workflow/step.contract.d.mts.map +1 -1
- package/esm/contracts/workflow/workflow.contract.d.mts +16 -0
- package/esm/contracts/workflow/workflow.contract.d.mts.map +1 -1
- package/esm/errors/agent-drift-error.d.mts +32 -0
- package/esm/errors/agent-drift-error.d.mts.map +1 -0
- package/esm/errors/agent-drift-error.mjs +31 -0
- package/esm/errors/agent-drift-error.mjs.map +1 -0
- package/esm/errors/error-code.type.d.mts +1 -1
- package/esm/errors/index.d.mts +3 -0
- package/esm/errors/index.mjs +3 -0
- package/esm/errors/outbound-policy-error.d.mts +27 -0
- package/esm/errors/outbound-policy-error.d.mts.map +1 -0
- package/esm/errors/outbound-policy-error.mjs +32 -0
- package/esm/errors/outbound-policy-error.mjs.map +1 -0
- package/esm/errors/planner-drift-error.d.mts +34 -0
- package/esm/errors/planner-drift-error.d.mts.map +1 -0
- package/esm/errors/planner-drift-error.mjs +33 -0
- package/esm/errors/planner-drift-error.mjs.map +1 -0
- package/esm/eval/dataset.d.mts +28 -0
- package/esm/eval/dataset.d.mts.map +1 -0
- package/esm/eval/dataset.mjs +112 -0
- package/esm/eval/dataset.mjs.map +1 -0
- package/esm/eval/dataset.type.d.mts +53 -0
- package/esm/eval/dataset.type.d.mts.map +1 -0
- package/esm/eval/eval-runner.d.mts.map +1 -1
- package/esm/eval/eval-runner.mjs +16 -2
- package/esm/eval/eval-runner.mjs.map +1 -1
- package/esm/eval/index.d.mts +20 -1
- package/esm/eval/index.d.mts.map +1 -1
- package/esm/eval/index.mjs +20 -2
- package/esm/eval/index.mjs.map +1 -1
- package/esm/eval/regression.d.mts +30 -0
- package/esm/eval/regression.d.mts.map +1 -0
- package/esm/eval/regression.mjs +51 -0
- package/esm/eval/regression.mjs.map +1 -0
- package/esm/eval/report-json.d.mts +30 -0
- package/esm/eval/report-json.d.mts.map +1 -0
- package/esm/eval/report-json.mjs +33 -0
- package/esm/eval/report-json.mjs.map +1 -0
- package/esm/eval/report-junit.d.mts +22 -0
- package/esm/eval/report-junit.d.mts.map +1 -0
- package/esm/eval/report-junit.mjs +60 -0
- package/esm/eval/report-junit.mjs.map +1 -0
- package/esm/guard/contracts/guard-options.type.d.mts +165 -0
- package/esm/guard/contracts/guard-options.type.d.mts.map +1 -0
- package/esm/guard/contracts/guardrail.contract.d.mts +78 -0
- package/esm/guard/contracts/guardrail.contract.d.mts.map +1 -0
- package/esm/guard/contracts/index.d.mts +4 -0
- package/esm/guard/contracts/openai-client.contract.d.mts +51 -0
- package/esm/guard/contracts/openai-client.contract.d.mts.map +1 -0
- package/esm/guard/contracts/verdict.type.d.mts +76 -0
- package/esm/guard/contracts/verdict.type.d.mts.map +1 -0
- package/esm/guard/detectors/index.d.mts +4 -0
- package/esm/guard/detectors/index.mjs +6 -0
- package/esm/guard/detectors/injection.d.mts +34 -0
- package/esm/guard/detectors/injection.d.mts.map +1 -0
- package/esm/guard/detectors/injection.mjs +254 -0
- package/esm/guard/detectors/injection.mjs.map +1 -0
- package/esm/guard/detectors/moderation.d.mts +32 -0
- package/esm/guard/detectors/moderation.d.mts.map +1 -0
- package/esm/guard/detectors/moderation.mjs +134 -0
- package/esm/guard/detectors/moderation.mjs.map +1 -0
- package/esm/guard/detectors/pii.d.mts +41 -0
- package/esm/guard/detectors/pii.d.mts.map +1 -0
- package/esm/guard/detectors/pii.mjs +199 -0
- package/esm/guard/detectors/pii.mjs.map +1 -0
- package/esm/guard/detectors/topic.d.mts +29 -0
- package/esm/guard/detectors/topic.d.mts.map +1 -0
- package/esm/guard/detectors/topic.mjs +99 -0
- package/esm/guard/detectors/topic.mjs.map +1 -0
- package/esm/guard/errors.d.mts +12 -0
- package/esm/guard/errors.d.mts.map +1 -0
- package/esm/guard/errors.mjs +18 -0
- package/esm/guard/errors.mjs.map +1 -0
- package/esm/guard/guard.d.mts +67 -0
- package/esm/guard/guard.d.mts.map +1 -0
- package/esm/guard/guard.mjs +209 -0
- package/esm/guard/guard.mjs.map +1 -0
- package/esm/guard/guardrail.d.mts +39 -0
- package/esm/guard/guardrail.d.mts.map +1 -0
- package/esm/guard/guardrail.mjs +22 -0
- package/esm/guard/guardrail.mjs.map +1 -0
- package/esm/human/contracts/approval.type.d.mts +154 -0
- package/esm/human/contracts/approval.type.d.mts.map +1 -0
- package/esm/human/contracts/human-approval.type.d.mts +38 -0
- package/esm/human/contracts/human-approval.type.d.mts.map +1 -0
- package/esm/human/contracts/index.d.mts +4 -0
- package/esm/human/contracts/interrupt-store.contract.d.mts +112 -0
- package/esm/human/contracts/interrupt-store.contract.d.mts.map +1 -0
- package/esm/human/contracts/resume.type.d.mts +77 -0
- package/esm/human/contracts/resume.type.d.mts.map +1 -0
- package/esm/human/errors.d.mts +84 -0
- package/esm/human/errors.d.mts.map +1 -0
- package/esm/human/errors.mjs +60 -0
- package/esm/human/errors.mjs.map +1 -0
- package/esm/human/human-approval.d.mts +57 -0
- package/esm/human/human-approval.d.mts.map +1 -0
- package/esm/human/human-approval.mjs +170 -0
- package/esm/human/human-approval.mjs.map +1 -0
- package/esm/human/policy.d.mts +55 -0
- package/esm/human/policy.d.mts.map +1 -0
- package/esm/human/policy.mjs +67 -0
- package/esm/human/policy.mjs.map +1 -0
- package/esm/human/register.mjs +37 -0
- package/esm/human/register.mjs.map +1 -0
- package/esm/human/resume-seed.mjs +53 -0
- package/esm/human/resume-seed.mjs.map +1 -0
- package/esm/human/resume.d.mts +54 -0
- package/esm/human/resume.d.mts.map +1 -0
- package/esm/human/resume.mjs +121 -0
- package/esm/human/resume.mjs.map +1 -0
- package/esm/human/stores/index.mjs +5 -0
- package/esm/human/stores/memory.d.mts +30 -0
- package/esm/human/stores/memory.d.mts.map +1 -0
- package/esm/human/stores/memory.mjs +91 -0
- package/esm/human/stores/memory.mjs.map +1 -0
- package/esm/human/stores/pg.d.mts +59 -0
- package/esm/human/stores/pg.d.mts.map +1 -0
- package/esm/human/stores/pg.mjs +220 -0
- package/esm/human/stores/pg.mjs.map +1 -0
- package/esm/human/stores/redis.d.mts +56 -0
- package/esm/human/stores/redis.d.mts.map +1 -0
- package/esm/human/stores/redis.mjs +201 -0
- package/esm/human/stores/redis.mjs.map +1 -0
- package/esm/image/image-cost.d.mts +32 -0
- package/esm/image/image-cost.d.mts.map +1 -0
- package/esm/image/image-cost.mjs +55 -0
- package/esm/image/image-cost.mjs.map +1 -0
- package/esm/image/image.d.mts +92 -0
- package/esm/image/image.d.mts.map +1 -0
- package/esm/image/image.mjs +113 -0
- package/esm/image/image.mjs.map +1 -0
- package/esm/image/index.mjs +4 -0
- package/esm/index.d.mts +137 -24
- package/esm/index.mjs +101 -11
- package/esm/middleware/builtins/budget.mjs +6 -2
- package/esm/middleware/builtins/budget.mjs.map +1 -1
- package/esm/middleware/utils/extract-user-text.d.mts +8 -1
- package/esm/middleware/utils/extract-user-text.d.mts.map +1 -1
- package/esm/middleware/utils/extract-user-text.mjs +8 -1
- package/esm/middleware/utils/extract-user-text.mjs.map +1 -1
- package/esm/mock/index.d.mts +3 -0
- package/esm/mock/index.mjs +3 -0
- package/esm/mock/mock-config.type.d.mts +22 -0
- package/esm/mock/mock-config.type.d.mts.map +1 -1
- package/esm/mock/mock-image-model.d.mts +41 -0
- package/esm/mock/mock-image-model.d.mts.map +1 -0
- package/esm/mock/mock-image-model.mjs +52 -0
- package/esm/mock/mock-image-model.mjs.map +1 -0
- package/esm/mock/mock-sdk.d.mts +7 -1
- package/esm/mock/mock-sdk.d.mts.map +1 -1
- package/esm/mock/mock-sdk.mjs +27 -0
- package/esm/mock/mock-sdk.mjs.map +1 -1
- package/esm/mock/mock-speech-model.d.mts +31 -0
- package/esm/mock/mock-speech-model.d.mts.map +1 -0
- package/esm/mock/mock-speech-model.mjs +39 -0
- package/esm/mock/mock-speech-model.mjs.map +1 -0
- package/esm/mock/mock-transcription-model.d.mts +32 -0
- package/esm/mock/mock-transcription-model.d.mts.map +1 -0
- package/esm/mock/mock-transcription-model.mjs +36 -0
- package/esm/mock/mock-transcription-model.mjs.map +1 -0
- package/esm/object-stream/index.d.mts +2 -0
- package/esm/object-stream/index.mjs +4 -0
- package/esm/object-stream/parse-partial-json.d.mts +22 -0
- package/esm/object-stream/parse-partial-json.d.mts.map +1 -0
- package/esm/object-stream/parse-partial-json.mjs +78 -0
- package/esm/object-stream/parse-partial-json.mjs.map +1 -0
- package/esm/object-stream/stream-object.d.mts +68 -0
- package/esm/object-stream/stream-object.d.mts.map +1 -0
- package/esm/object-stream/stream-object.mjs +104 -0
- package/esm/object-stream/stream-object.mjs.map +1 -0
- package/esm/observe/index.mjs +4 -0
- package/esm/observe/observer-registry.d.mts +30 -0
- package/esm/observe/observer-registry.d.mts.map +1 -0
- package/esm/observe/observer-registry.mjs +51 -0
- package/esm/observe/observer-registry.mjs.map +1 -0
- package/esm/observe/observer.contract.d.mts +40 -0
- package/esm/observe/observer.contract.d.mts.map +1 -0
- package/esm/observe/resolve-observers.d.mts +40 -0
- package/esm/observe/resolve-observers.d.mts.map +1 -0
- package/esm/observe/resolve-observers.mjs +73 -0
- package/esm/observe/resolve-observers.mjs.map +1 -0
- package/esm/orchestrator/execution.d.mts.map +1 -1
- package/esm/orchestrator/execution.mjs +5 -2
- package/esm/orchestrator/execution.mjs.map +1 -1
- package/esm/orchestrator/index.d.mts +1 -0
- package/esm/orchestrator/index.mjs +1 -0
- package/esm/orchestrator/orchestrator.d.mts.map +1 -1
- package/esm/orchestrator/orchestrator.mjs +39 -6
- package/esm/orchestrator/orchestrator.mjs.map +1 -1
- package/esm/orchestrator/session-lock.d.mts +25 -0
- package/esm/orchestrator/session-lock.d.mts.map +1 -0
- package/esm/orchestrator/session-lock.mjs +83 -0
- package/esm/orchestrator/session-lock.mjs.map +1 -0
- package/esm/planner/dag-scheduler.mjs +97 -0
- package/esm/planner/dag-scheduler.mjs.map +1 -0
- package/esm/planner/plan-prompt.d.mts +1 -1
- package/esm/planner/plan-prompt.d.mts.map +1 -1
- package/esm/planner/plan-prompt.mjs +2 -1
- package/esm/planner/plan-prompt.mjs.map +1 -1
- package/esm/planner/planner-run.d.mts +8 -0
- package/esm/planner/planner-run.d.mts.map +1 -1
- package/esm/planner/planner-run.mjs +457 -31
- package/esm/planner/planner-run.mjs.map +1 -1
- package/esm/planner/planner.d.mts.map +1 -1
- package/esm/planner/planner.mjs +26 -2
- package/esm/planner/planner.mjs.map +1 -1
- package/esm/planner/snapshot.mjs +95 -0
- package/esm/planner/snapshot.mjs.map +1 -0
- package/esm/prompt/errors.d.mts +57 -0
- package/esm/prompt/errors.d.mts.map +1 -0
- package/esm/prompt/errors.mjs +73 -0
- package/esm/prompt/errors.mjs.map +1 -0
- package/esm/prompt/index.d.mts +3 -0
- package/esm/prompt/index.mjs +4 -0
- package/esm/prompt/prompt-langfuse-sync.mjs +104 -0
- package/esm/prompt/prompt-langfuse-sync.mjs.map +1 -0
- package/esm/prompt/prompt-langfuse-sync.type.d.mts +32 -0
- package/esm/prompt/prompt-langfuse-sync.type.d.mts.map +1 -0
- package/esm/prompt/prompt-validate.mjs +170 -0
- package/esm/prompt/prompt-validate.mjs.map +1 -0
- package/esm/prompt/prompt.d.mts +54 -0
- package/esm/prompt/prompt.d.mts.map +1 -0
- package/esm/prompt/prompt.mjs +218 -0
- package/esm/prompt/prompt.mjs.map +1 -0
- package/esm/prompt/prompt.type.d.mts +174 -0
- package/esm/prompt/prompt.type.d.mts.map +1 -0
- package/esm/prompts/index.d.mts +3 -0
- package/esm/prompts/index.mjs +3 -0
- package/esm/prompts/prompts-manager.contract.d.mts +154 -0
- package/esm/prompts/prompts-manager.contract.d.mts.map +1 -0
- package/esm/prompts/prompts-manager.d.mts +38 -0
- package/esm/prompts/prompts-manager.d.mts.map +1 -0
- package/esm/prompts/prompts-manager.mjs +410 -0
- package/esm/prompts/prompts-manager.mjs.map +1 -0
- package/esm/prompts/prompts-manager.type.d.mts +172 -0
- package/esm/prompts/prompts-manager.type.d.mts.map +1 -0
- package/esm/prompts/prompts-validate.mjs +200 -0
- package/esm/prompts/prompts-validate.mjs.map +1 -0
- package/esm/rag/as-tool.mjs +48 -0
- package/esm/rag/as-tool.mjs.map +1 -0
- package/esm/rag/chunk/chunk.d.mts +24 -0
- package/esm/rag/chunk/chunk.d.mts.map +1 -0
- package/esm/rag/chunk/chunk.mjs +44 -0
- package/esm/rag/chunk/chunk.mjs.map +1 -0
- package/esm/rag/chunk/fixed.mjs +32 -0
- package/esm/rag/chunk/fixed.mjs.map +1 -0
- package/esm/rag/chunk/markdown.mjs +75 -0
- package/esm/rag/chunk/markdown.mjs.map +1 -0
- package/esm/rag/chunk/recursive.mjs +132 -0
- package/esm/rag/chunk/recursive.mjs.map +1 -0
- package/esm/rag/chunk/sentence.mjs +73 -0
- package/esm/rag/chunk/sentence.mjs.map +1 -0
- package/esm/rag/contracts/chunk-options.type.d.mts +35 -0
- package/esm/rag/contracts/chunk-options.type.d.mts.map +1 -0
- package/esm/rag/contracts/citation.type.d.mts +35 -0
- package/esm/rag/contracts/citation.type.d.mts.map +1 -0
- package/esm/rag/contracts/index.d.mts +4 -0
- package/esm/rag/contracts/rag-config.type.d.mts +68 -0
- package/esm/rag/contracts/rag-config.type.d.mts.map +1 -0
- package/esm/rag/contracts/rag-document.type.d.mts +21 -0
- package/esm/rag/contracts/rag-document.type.d.mts.map +1 -0
- package/esm/rag/hybrid/bm25.d.mts +23 -0
- package/esm/rag/hybrid/bm25.d.mts.map +1 -0
- package/esm/rag/hybrid/bm25.mjs +51 -0
- package/esm/rag/hybrid/bm25.mjs.map +1 -0
- package/esm/rag/hybrid/hybrid-rank.d.mts +33 -0
- package/esm/rag/hybrid/hybrid-rank.d.mts.map +1 -0
- package/esm/rag/hybrid/hybrid-rank.mjs +29 -0
- package/esm/rag/hybrid/hybrid-rank.mjs.map +1 -0
- package/esm/rag/hybrid/rrf.d.mts +25 -0
- package/esm/rag/hybrid/rrf.d.mts.map +1 -0
- package/esm/rag/hybrid/rrf.mjs +30 -0
- package/esm/rag/hybrid/rrf.mjs.map +1 -0
- package/esm/rag/index.d.mts +22 -0
- package/esm/rag/index.mjs +18 -0
- package/esm/rag/loaders/errors.d.mts +19 -0
- package/esm/rag/loaders/errors.d.mts.map +1 -0
- package/esm/rag/loaders/errors.mjs +25 -0
- package/esm/rag/loaders/errors.mjs.map +1 -0
- package/esm/rag/loaders/index.mjs +7 -0
- package/esm/rag/loaders/load-html.d.mts +26 -0
- package/esm/rag/loaders/load-html.d.mts.map +1 -0
- package/esm/rag/loaders/load-html.mjs +138 -0
- package/esm/rag/loaders/load-html.mjs.map +1 -0
- package/esm/rag/loaders/load-pdf.d.mts +38 -0
- package/esm/rag/loaders/load-pdf.d.mts.map +1 -0
- package/esm/rag/loaders/load-pdf.mjs +150 -0
- package/esm/rag/loaders/load-pdf.mjs.map +1 -0
- package/esm/rag/loaders/load-text.d.mts +47 -0
- package/esm/rag/loaders/load-text.d.mts.map +1 -0
- package/esm/rag/loaders/load-text.mjs +60 -0
- package/esm/rag/loaders/load-text.mjs.map +1 -0
- package/esm/rag/loaders/load-web.d.mts +42 -0
- package/esm/rag/loaders/load-web.d.mts.map +1 -0
- package/esm/rag/loaders/load-web.mjs +89 -0
- package/esm/rag/loaders/load-web.mjs.map +1 -0
- package/esm/rag/loaders/loader.type.d.mts +89 -0
- package/esm/rag/loaders/loader.type.d.mts.map +1 -0
- package/esm/rag/rag.d.mts +38 -0
- package/esm/rag/rag.d.mts.map +1 -0
- package/esm/rag/rag.mjs +126 -0
- package/esm/rag/rag.mjs.map +1 -0
- package/esm/rag/rerank/keyword-reranker.d.mts +32 -0
- package/esm/rag/rerank/keyword-reranker.d.mts.map +1 -0
- package/esm/rag/rerank/keyword-reranker.mjs +58 -0
- package/esm/rag/rerank/keyword-reranker.mjs.map +1 -0
- package/esm/rag/rerank/llm-reranker.d.mts +36 -0
- package/esm/rag/rerank/llm-reranker.d.mts.map +1 -0
- package/esm/rag/rerank/llm-reranker.mjs +85 -0
- package/esm/rag/rerank/llm-reranker.mjs.map +1 -0
- package/esm/rag/rerank/reranker.contract.d.mts +28 -0
- package/esm/rag/rerank/reranker.contract.d.mts.map +1 -0
- package/esm/rag/retrieve.mjs +68 -0
- package/esm/rag/retrieve.mjs.map +1 -0
- package/esm/rag/store/cache-vector-store.d.mts +27 -0
- package/esm/rag/store/cache-vector-store.d.mts.map +1 -0
- package/esm/rag/store/cache-vector-store.mjs +48 -0
- package/esm/rag/store/cache-vector-store.mjs.map +1 -0
- package/esm/rag/store/pg-vector-store.d.mts +139 -0
- package/esm/rag/store/pg-vector-store.d.mts.map +1 -0
- package/esm/rag/store/pg-vector-store.mjs +328 -0
- package/esm/rag/store/pg-vector-store.mjs.map +1 -0
- package/esm/rag/store/vector-store.contract.d.mts +38 -0
- package/esm/rag/store/vector-store.contract.d.mts.map +1 -0
- package/esm/rag/transforms/multi-query.d.mts +27 -0
- package/esm/rag/transforms/multi-query.d.mts.map +1 -0
- package/esm/rag/transforms/multi-query.mjs +41 -0
- package/esm/rag/transforms/multi-query.mjs.map +1 -0
- package/esm/security/index.mjs +5 -0
- package/esm/security/outbound-policy.d.mts +46 -0
- package/esm/security/outbound-policy.d.mts.map +1 -0
- package/esm/security/outbound-policy.mjs +187 -0
- package/esm/security/outbound-policy.mjs.map +1 -0
- package/esm/security/outbound-policy.type.d.mts +74 -0
- package/esm/security/outbound-policy.type.d.mts.map +1 -0
- package/esm/security/private-ip.d.mts +15 -0
- package/esm/security/private-ip.d.mts.map +1 -0
- package/esm/security/private-ip.mjs +48 -0
- package/esm/security/private-ip.mjs.map +1 -0
- package/esm/security/redact.d.mts +59 -0
- package/esm/security/redact.d.mts.map +1 -0
- package/esm/security/redact.mjs +122 -0
- package/esm/security/redact.mjs.map +1 -0
- package/esm/serve/serve.d.mts +50 -0
- package/esm/serve/serve.d.mts.map +1 -0
- package/esm/serve/serve.mjs +90 -0
- package/esm/serve/serve.mjs.map +1 -0
- package/esm/serve/sse.d.mts +20 -0
- package/esm/serve/sse.d.mts.map +1 -0
- package/esm/serve/sse.mjs +25 -0
- package/esm/serve/sse.mjs.map +1 -0
- package/esm/serve/stream-to-sse.d.mts +29 -0
- package/esm/serve/stream-to-sse.d.mts.map +1 -0
- package/esm/serve/stream-to-sse.mjs +37 -0
- package/esm/serve/stream-to-sse.mjs.map +1 -0
- package/esm/skills/catalog.d.mts +49 -0
- package/esm/skills/catalog.d.mts.map +1 -0
- package/esm/skills/catalog.mjs +140 -0
- package/esm/skills/catalog.mjs.map +1 -0
- package/esm/skills/contracts/skill-record.type.d.mts +37 -0
- package/esm/skills/contracts/skill-record.type.d.mts.map +1 -0
- package/esm/skills/contracts/skills-config.type.d.mts +108 -0
- package/esm/skills/contracts/skills-config.type.d.mts.map +1 -0
- package/esm/skills/contracts/skills-store.contract.d.mts +28 -0
- package/esm/skills/contracts/skills-store.contract.d.mts.map +1 -0
- package/esm/skills/contracts/skills.contract.d.mts +43 -0
- package/esm/skills/contracts/skills.contract.d.mts.map +1 -0
- package/esm/skills/index.d.mts +16 -0
- package/esm/skills/index.mjs +14 -0
- package/esm/skills/load-skill-tool.d.mts +38 -0
- package/esm/skills/load-skill-tool.d.mts.map +1 -0
- package/esm/skills/load-skill-tool.mjs +65 -0
- package/esm/skills/load-skill-tool.mjs.map +1 -0
- package/esm/skills/review-gate.d.mts +33 -0
- package/esm/skills/review-gate.d.mts.map +1 -0
- package/esm/skills/review-gate.mjs +60 -0
- package/esm/skills/review-gate.mjs.map +1 -0
- package/esm/skills/save-skill-tool.d.mts +39 -0
- package/esm/skills/save-skill-tool.d.mts.map +1 -0
- package/esm/skills/save-skill-tool.mjs +65 -0
- package/esm/skills/save-skill-tool.mjs.map +1 -0
- package/esm/skills/skills.d.mts +33 -0
- package/esm/skills/skills.d.mts.map +1 -0
- package/esm/skills/skills.mjs +109 -0
- package/esm/skills/skills.mjs.map +1 -0
- package/esm/skills/sources/directory-source.d.mts +19 -0
- package/esm/skills/sources/directory-source.d.mts.map +1 -0
- package/esm/skills/sources/directory-source.mjs +108 -0
- package/esm/skills/sources/directory-source.mjs.map +1 -0
- package/esm/skills/sources/index.d.mts +18 -0
- package/esm/skills/sources/index.d.mts.map +1 -0
- package/esm/skills/sources/index.mjs +27 -0
- package/esm/skills/sources/index.mjs.map +1 -0
- package/esm/skills/sources/parse-frontmatter.d.mts +27 -0
- package/esm/skills/sources/parse-frontmatter.d.mts.map +1 -0
- package/esm/skills/sources/parse-frontmatter.mjs +46 -0
- package/esm/skills/sources/parse-frontmatter.mjs.map +1 -0
- package/esm/skills/sources/store-source.d.mts +14 -0
- package/esm/skills/sources/store-source.d.mts.map +1 -0
- package/esm/skills/sources/store-source.mjs +15 -0
- package/esm/skills/sources/store-source.mjs.map +1 -0
- package/esm/skills/sources/url-source.d.mts +29 -0
- package/esm/skills/sources/url-source.d.mts.map +1 -0
- package/esm/skills/sources/url-source.mjs +117 -0
- package/esm/skills/sources/url-source.mjs.map +1 -0
- package/esm/skills/store/mock-skills-store.d.mts +57 -0
- package/esm/skills/store/mock-skills-store.d.mts.map +1 -0
- package/esm/skills/store/mock-skills-store.mjs +100 -0
- package/esm/skills/store/mock-skills-store.mjs.map +1 -0
- package/esm/skills/store/procedural-skill-store.d.mts +30 -0
- package/esm/skills/store/procedural-skill-store.d.mts.map +1 -0
- package/esm/skills/store/procedural-skill-store.mjs +125 -0
- package/esm/skills/store/procedural-skill-store.mjs.map +1 -0
- package/esm/speech/index.mjs +3 -0
- package/esm/speech/speech.d.mts +65 -0
- package/esm/speech/speech.d.mts.map +1 -0
- package/esm/speech/speech.mjs +123 -0
- package/esm/speech/speech.mjs.map +1 -0
- package/esm/supervisor/as-tool.mjs +2 -2
- package/esm/supervisor/as-tool.mjs.map +1 -1
- package/esm/supervisor/entries.mjs +2 -2
- package/esm/supervisor/entries.mjs.map +1 -1
- package/esm/supervisor/execution.d.mts.map +1 -1
- package/esm/supervisor/execution.mjs +31 -28
- package/esm/supervisor/execution.mjs.map +1 -1
- package/esm/supervisor/supervisor.d.mts.map +1 -1
- package/esm/supervisor/supervisor.mjs +8 -3
- package/esm/supervisor/supervisor.mjs.map +1 -1
- package/esm/system-prompt/index.d.mts +4 -0
- package/esm/system-prompt/system-prompt.d.mts +68 -4
- package/esm/system-prompt/system-prompt.d.mts.map +1 -1
- package/esm/system-prompt/system-prompt.mjs +89 -5
- package/esm/system-prompt/system-prompt.mjs.map +1 -1
- package/esm/team/gates.mjs +48 -0
- package/esm/team/gates.mjs.map +1 -0
- package/esm/team/index.d.mts +1 -0
- package/esm/team/index.mjs +3 -0
- package/esm/team/team.d.mts +42 -0
- package/esm/team/team.d.mts.map +1 -0
- package/esm/team/team.mjs +94 -0
- package/esm/team/team.mjs.map +1 -0
- package/esm/tool/executable-as-tool.d.mts.map +1 -1
- package/esm/tool/executable-as-tool.mjs +2 -2
- package/esm/tool/executable-as-tool.mjs.map +1 -1
- package/esm/tool/tool.d.mts.map +1 -1
- package/esm/tool/tool.mjs +2 -2
- package/esm/tool/tool.mjs.map +1 -1
- package/esm/transcribe/audio-input.d.mts +47 -0
- package/esm/transcribe/audio-input.d.mts.map +1 -0
- package/esm/transcribe/audio-input.mjs +84 -0
- package/esm/transcribe/audio-input.mjs.map +1 -0
- package/esm/transcribe/index.mjs +4 -0
- package/esm/transcribe/transcribe.d.mts +64 -0
- package/esm/transcribe/transcribe.d.mts.map +1 -0
- package/esm/transcribe/transcribe.mjs +128 -0
- package/esm/transcribe/transcribe.mjs.map +1 -0
- package/esm/utils/compute-cost.d.mts +17 -1
- package/esm/utils/compute-cost.d.mts.map +1 -1
- package/esm/utils/compute-cost.mjs +26 -1
- package/esm/utils/compute-cost.mjs.map +1 -1
- package/esm/utils/extract-json-lenient.d.mts +42 -0
- package/esm/utils/extract-json-lenient.d.mts.map +1 -0
- package/esm/utils/extract-json-lenient.mjs +97 -0
- package/esm/utils/extract-json-lenient.mjs.map +1 -0
- package/esm/utils/index.d.mts +4 -2
- package/esm/utils/index.mjs +3 -1
- package/esm/utils/json-schema.d.mts +1 -1
- package/esm/utils/prepare-attachment-part.d.mts +10 -1
- package/esm/utils/prepare-attachment-part.d.mts.map +1 -1
- package/esm/utils/prepare-attachment-part.mjs +103 -11
- package/esm/utils/prepare-attachment-part.mjs.map +1 -1
- package/esm/utils/resolve-attachment.d.mts +4 -3
- package/esm/utils/resolve-attachment.d.mts.map +1 -1
- package/esm/utils/resolve-attachment.mjs +4 -3
- package/esm/utils/resolve-attachment.mjs.map +1 -1
- package/esm/utils/run-context.d.mts +94 -0
- package/esm/utils/run-context.d.mts.map +1 -0
- package/esm/utils/run-context.mjs +98 -0
- package/esm/utils/run-context.mjs.map +1 -0
- package/esm/vcr/cassette-io.mjs +57 -0
- package/esm/vcr/cassette-io.mjs.map +1 -0
- package/esm/vcr/errors.d.mts +42 -0
- package/esm/vcr/errors.d.mts.map +1 -0
- package/esm/vcr/errors.mjs +37 -0
- package/esm/vcr/errors.mjs.map +1 -0
- package/esm/vcr/hash-request.d.mts +28 -0
- package/esm/vcr/hash-request.d.mts.map +1 -0
- package/esm/vcr/hash-request.mjs +118 -0
- package/esm/vcr/hash-request.mjs.map +1 -0
- package/esm/vcr/index.d.mts +4 -0
- package/esm/vcr/index.mjs +5 -0
- package/esm/vcr/vcr.d.mts +32 -0
- package/esm/vcr/vcr.d.mts.map +1 -0
- package/esm/vcr/vcr.mjs +248 -0
- package/esm/vcr/vcr.mjs.map +1 -0
- package/esm/vcr/vcr.type.d.mts +118 -0
- package/esm/vcr/vcr.type.d.mts.map +1 -0
- package/esm/workflow/as-tool.mjs +2 -2
- package/esm/workflow/as-tool.mjs.map +1 -1
- package/esm/workflow/engine.mjs +1 -0
- package/esm/workflow/engine.mjs.map +1 -1
- package/esm/workflow/step-runner.mjs +19 -20
- package/esm/workflow/step-runner.mjs.map +1 -1
- package/esm/workflow/workflow.d.mts.map +1 -1
- package/esm/workflow/workflow.mjs +8 -3
- package/esm/workflow/workflow.mjs.map +1 -1
- package/llms-full.txt +2572 -204
- package/llms.txt +21 -4
- package/package.json +7 -3
- package/skills/README.md +44 -4
- package/skills/ai-dx-helpers/SKILL.md +2 -2
- package/skills/approve-tool-calls/SKILL.md +134 -0
- package/skills/attach-ai-middleware/SKILL.md +1 -1
- package/skills/detect-and-redact-pii/SKILL.md +104 -0
- package/skills/durable-agent-runs/SKILL.md +135 -0
- package/skills/durable-resume/SKILL.md +128 -0
- package/skills/escalate-block-to-human/SKILL.md +85 -0
- package/skills/eval-datasets-and-ci/SKILL.md +117 -0
- package/skills/generate-images/SKILL.md +138 -0
- package/skills/generate-speech/SKILL.md +139 -0
- package/skills/guard-input-output/SKILL.md +117 -0
- package/skills/manage-prompts/SKILL.md +186 -0
- package/skills/observe-ai-flows/SKILL.md +94 -0
- package/skills/rag-loaders-and-stores/SKILL.md +164 -0
- package/skills/record-replay-llm/SKILL.md +92 -0
- package/skills/run-ai-agent/SKILL.md +26 -1
- package/skills/run-ai-rag/SKILL.md +139 -0
- package/skills/run-ai-team/SKILL.md +107 -0
- package/skills/run-orchestrator/SKILL.md +2 -0
- package/skills/run-planner/SKILL.md +73 -8
- package/skills/run-supervisor/SKILL.md +20 -1
- package/skills/transcribe-audio/SKILL.md +157 -0
- package/skills/use-runtime-skills/SKILL.md +106 -0
- package/skills/write-system-prompt/SKILL.md +30 -1
- package/cjs/index.cjs.map +0 -1
- package/esm/contracts/result/index.d.mts +0 -15
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { Usage } from "./result/usage.type.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../@warlock.js/ai/src/contracts/speech-model.contract.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* USD pricing for a text-to-speech model. TTS providers meter one of
|
|
6
|
+
* two ways, and this single shape covers both so the cost folds into
|
|
7
|
+
* the same `Usage.cost` rollup the text + image paths use:
|
|
8
|
+
*
|
|
9
|
+
* - **Per-character** (OpenAI `tts-1` / `tts-1-hd`): billed per input
|
|
10
|
+
* character. Set `perMillionCharacters` (USD per 1,000,000 chars).
|
|
11
|
+
* - **Token-metered** (OpenAI `gpt-4o-mini-tts`): billed per input/output
|
|
12
|
+
* token like a chat model. Set `input` / `output` (USD per 1M tokens).
|
|
13
|
+
*
|
|
14
|
+
* Per-character wins when both are set. Nothing set → `Usage.cost`
|
|
15
|
+
* stays `undefined` (honest "cost unknown", not a false zero).
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* const pricing: SpeechModelPricing = { perMillionCharacters: 15 }; // tts-1
|
|
19
|
+
*/
|
|
20
|
+
type SpeechModelPricing = {
|
|
21
|
+
/** USD per 1M input characters — per-character-metered TTS. */perMillionCharacters?: number; /** USD per 1M input tokens — token-metered TTS. */
|
|
22
|
+
input?: number; /** USD per 1M output (audio) tokens — token-metered TTS. */
|
|
23
|
+
output?: number;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Generated audio, normalized to a discriminated shape (mirrors
|
|
27
|
+
* {@link GeneratedImage}). TTS providers return raw audio bytes, so the
|
|
28
|
+
* `base64` variant is the only one today; the union leaves room for a
|
|
29
|
+
* future hosted-`url` variant without a breaking change.
|
|
30
|
+
*/
|
|
31
|
+
type GeneratedAudio = {
|
|
32
|
+
type: "base64"; /** Base64-encoded audio bytes. */
|
|
33
|
+
base64: string; /** IANA media type (e.g. `"audio/mpeg"`, `"audio/wav"`). */
|
|
34
|
+
mediaType: string;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Options for a single {@link SpeechModelContract.generate} request.
|
|
38
|
+
* Provider-neutral; each adapter maps the ones its API supports.
|
|
39
|
+
*/
|
|
40
|
+
type SpeechOptions = {
|
|
41
|
+
/** Voice id/name (e.g. OpenAI `"alloy"`, `"verse"`). Defaults per model config. */voice?: string; /** Output container (`"mp3"` / `"opus"` / `"aac"` / `"flac"` / `"wav"` / `"pcm"`). */
|
|
42
|
+
format?: string; /** Playback speed multiplier (provider range, e.g. OpenAI `0.25`–`4.0`). */
|
|
43
|
+
speed?: number; /** Extra steering of tone/delivery (OpenAI `gpt-4o-mini-tts` `instructions`). */
|
|
44
|
+
instructions?: string; /** Cancellation handle wired into the provider request where supported. */
|
|
45
|
+
signal?: AbortSignal; /** Provider-specific escape hatch — forwarded verbatim. */
|
|
46
|
+
[key: string]: unknown;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Raw result of a {@link SpeechModelContract.generate} call — low-level
|
|
50
|
+
* (like `EmbedderContract.embed`): returns the audio + usage and THROWS
|
|
51
|
+
* a typed `AIError` on failure. The never-throws `{ data, error, usage,
|
|
52
|
+
* report }` envelope is added by the `ai.speech()` facade verb.
|
|
53
|
+
*/
|
|
54
|
+
type SpeechGenerationResponse = {
|
|
55
|
+
audio: GeneratedAudio;
|
|
56
|
+
/**
|
|
57
|
+
* Token usage when the provider meters per token (gpt-4o-mini-tts);
|
|
58
|
+
* `{ input: 0, output: 0, total: 0 }` for per-character-metered models,
|
|
59
|
+
* whose spend is priced from {@link characters}.
|
|
60
|
+
*/
|
|
61
|
+
usage: Usage; /** Number of input characters synthesized — drives per-character cost. */
|
|
62
|
+
characters: number;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Provider-neutral contract for a text-to-speech model — the audio
|
|
66
|
+
* sibling of {@link ImageModelContract}. Produced by an adapter's
|
|
67
|
+
* optional `speech?(config)` factory and consumed by `ai.speech()`.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* const tts = openai.speech({ name: "tts-1", voice: "alloy" });
|
|
71
|
+
* const { audio } = await tts.generate("Welcome aboard.");
|
|
72
|
+
*/
|
|
73
|
+
interface SpeechModelContract {
|
|
74
|
+
/** Model identifier (e.g. `"tts-1"`, `"gpt-4o-mini-tts"`). */
|
|
75
|
+
readonly name: string;
|
|
76
|
+
/** Provider this model belongs to (e.g. `"openai"`). */
|
|
77
|
+
readonly provider: string;
|
|
78
|
+
/** Per-character or per-token USD pricing; folded into `Usage.cost` by `ai.speech()`. */
|
|
79
|
+
readonly pricing?: SpeechModelPricing;
|
|
80
|
+
/** Synthesize speech from text. Throws a typed `AIError` on failure. */
|
|
81
|
+
generate(text: string, options?: SpeechOptions): Promise<SpeechGenerationResponse>;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Configuration passed to an adapter's `speech()` factory. Mirrors
|
|
85
|
+
* {@link ImageModelConfig}: `name` + an optional per-model `pricing`
|
|
86
|
+
* override + a default `voice`, with provider-specific keys on the
|
|
87
|
+
* index signature.
|
|
88
|
+
*/
|
|
89
|
+
type SpeechModelConfig = {
|
|
90
|
+
name: string; /** Per-model USD pricing override; wins over the SDK-level registry. */
|
|
91
|
+
pricing?: SpeechModelPricing; /** Default voice when a call omits `options.voice`. */
|
|
92
|
+
voice?: string;
|
|
93
|
+
[key: string]: unknown;
|
|
94
|
+
};
|
|
95
|
+
//#endregion
|
|
96
|
+
export { GeneratedAudio, SpeechGenerationResponse, SpeechModelConfig, SpeechModelContract, SpeechModelPricing, SpeechOptions };
|
|
97
|
+
//# sourceMappingURL=speech-model.contract.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speech-model.contract.d.mts","names":[],"sources":["../../../../../../../@warlock.js/ai/src/contracts/speech-model.contract.ts"],"mappings":";;;;;AAkBA;;;;;;;;AAMQ;AASR;;;;;KAfY,kBAAA;EAoBV,+DAlBA,oBAAA,WAkBS;EAhBT,KAAA,WAuBuB;EArBvB,MAAA;AAAA;;;;;;;KASU,cAAA;EACV,IAAA,YAuBY;EArBZ,MAAA,UA8BkC;EA5BlC,SAAA;AAAA;;;;;KAOU,aAAA;EA8BA,mFA5BV,KAAA,WAwCe;EAtCf,MAAA;EAEA,KAAA,WA6CiC;EA3CjC,YAAA,WA2CiD;EAzCjD,MAAA,GAAS,WAAW,EAyCoC;EAAA,CAvCvD,GAAA;AAAA;;;;;;;KASS,wBAAA;EACV,KAAA,EAAO,cAAA;EA6B0E;AAAA;AASnF;;;EAhCE,KAAA,EAAO,KAAK,EAiCZ;EA/BA,UAAA;AAAA;;;;AAoCY;;;;;;UAxBG,mBAAA;;WAEN,IAAA;;WAEA,QAAA;;WAEA,OAAA,GAAU,kBAAA;;EAGnB,QAAA,CAAS,IAAA,UAAc,OAAA,GAAU,aAAA,GAAgB,OAAA,CAAQ,wBAAA;AAAA;;;;;;;KAS/C,iBAAA;EACV,IAAA;EAEA,OAAA,GAAU,kBAAkB;EAE5B,KAAA;EAAA,CACC,GAAA;AAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Message } from "../conversation-message.type.mjs";
|
|
2
2
|
import { AgentContract } from "../agent/agent.contract.mjs";
|
|
3
|
+
import { FlowObserveOption } from "../../observe/resolve-observers.mjs";
|
|
3
4
|
import { SupervisorInput } from "./supervisor-input.type.mjs";
|
|
4
5
|
import { SnapshotStore } from "../orchestrator/snapshot-store.contract.mjs";
|
|
5
6
|
import { AgentMiddleware } from "../middleware/middleware.contract.mjs";
|
|
@@ -70,6 +71,15 @@ type SupervisorConfig<TOutput = unknown, TState = TOutput, TIntents extends Reco
|
|
|
70
71
|
* independent.
|
|
71
72
|
*/
|
|
72
73
|
version?: string;
|
|
74
|
+
/**
|
|
75
|
+
* INTERNAL — the report-type discriminator stamped on this run's root
|
|
76
|
+
* report + result envelope. Defaults to `"supervisor"`. `ai.team` sets
|
|
77
|
+
* `"team"` so its runs are distinguishable on the wire (group/filter as
|
|
78
|
+
* their own type) while reusing the supervisor engine wholesale. Not
|
|
79
|
+
* part of the public supervisor surface — plain `ai.supervisor` callers
|
|
80
|
+
* leave it unset.
|
|
81
|
+
*/
|
|
82
|
+
reportType?: "supervisor" | "team";
|
|
73
83
|
/**
|
|
74
84
|
* Opt-in Standard Schema describing this supervisor's input. Purely
|
|
75
85
|
* additive — when set, the supervisor can be dropped straight into an
|
|
@@ -392,6 +402,25 @@ type SupervisorConfig<TOutput = unknown, TState = TOutput, TIntents extends Reco
|
|
|
392
402
|
* }),
|
|
393
403
|
*/
|
|
394
404
|
finalizeArtifacts?: (state: TState, artifacts: TArtifacts) => TState;
|
|
405
|
+
/**
|
|
406
|
+
* Observability for this supervisor. Additive and gated — when
|
|
407
|
+
* omitted, the supervisor follows the global observe-all flag (off
|
|
408
|
+
* unless an observability tool turned it on), so behavior is unchanged
|
|
409
|
+
* by default.
|
|
410
|
+
*
|
|
411
|
+
* - `true` → route this run's completed report to the globally
|
|
412
|
+
* registered observers, even when observe-all is off.
|
|
413
|
+
* - `false` → opt this supervisor out entirely, even when observe-all is on.
|
|
414
|
+
* - an `Observer` object → a flow-local collector receiving only this
|
|
415
|
+
* supervisor's report. Typed as the structural `Observer` so core
|
|
416
|
+
* stays panoptic-agnostic; a panoptic flow-local collector can be
|
|
417
|
+
* passed directly. Observer errors are swallowed — they never break
|
|
418
|
+
* the run.
|
|
419
|
+
*
|
|
420
|
+
* `ai.team(...)` forwards its `observe` here verbatim so a team
|
|
421
|
+
* inherits supervisor observability with no extra wiring.
|
|
422
|
+
*/
|
|
423
|
+
observe?: FlowObserveOption;
|
|
395
424
|
};
|
|
396
425
|
//#endregion
|
|
397
426
|
export { SupervisorConfig, SupervisorEventHandler, SupervisorEventHandlers };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor-config.type.d.mts","names":[],"sources":["../../../../../../../../@warlock.js/ai/src/contracts/supervisor/supervisor-config.type.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"supervisor-config.type.d.mts","names":[],"sources":["../../../../../../../../@warlock.js/ai/src/contracts/supervisor/supervisor-config.type.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;AAqBA;;KAAY,sBAAA,iBAAuC,kBAAA,KACjD,OAAA,EAAS,kBAAA,CAAmB,CAAA;AAAA,KAGlB,uBAAA,GAA0B,OAAA,eACxB,kBAAA,GAAqB,sBAAA,CAAuB,CAAA;;;;;;;;;AAJ1B;AAGhC;;;;;;;;;;;;;;;AAC2D;AAyC3D;;;;;;;;;;;;;KAAY,gBAAA,6BAED,OAAA,mBACQ,MAAA,SAAe,qBAAA,IAAyB,MAAA,SAAe,qBAAA,gBAC3D,MAAA;EAiHJ,sEA9GT,IAAA;EA8GkC;;;;;;;;EApGlC,OAAA;EAiI6C;;;;;;;;EAvH7C,UAAA;EAuMM;;;;;;;;;;;EA1LN,WAAA,GAAc,gBAAA,CAAiB,eAAA;EAvC/B;;;;;EA8CA,YAAA,GAAe,oBAAA;EA5C0C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmFzD,IAAA,YAAgB,oBAAA;EAmFhB;;;;;;;;;;;;;;;;;;;EA9DA,OAAA,GAAU,OAAA;EAiNQ;;;;;;;;EAvMlB,MAAA,GAAS,aAAA,YAAyB,WAAA,CAAY,MAAA;EA2PgB;;;;EArP9D,KAAA,IAAS,GAAA,EAAK,YAAA,CAAa,MAAA,MAAY,IAAA,GAAO,OAAA,CAAQ,IAAA;;;;;;;;;;;EAYtD,OAAA,EAAS,QAAA;;;;;;;;;;EAWT,QAAA,IAAY,GAAA,EAAK,eAAA,CAAgB,MAAA,MAAY,cAAA,GAAiB,OAAA,CAAQ,cAAA;;;;;;;;;;;;;;;;EAiBtE,KAAA,GAAQ,MAAA;;;;;EAMR,aAAA;;;;;EAMA,YAAA;;;;;;;;;;;EAYA,MAAA,GAAS,gBAAA,CAAiB,OAAA;;;;;;;;;;;;;EAc1B,aAAA,GAAgB,aAAA;;;;;;EAOhB,EAAA,GAAK,uBAAA;;;;;;;;;;;;;;;;;EAkBL,GAAA,GAAM,SAAA,CAAU,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwChB,UAAA,GAAa,gBAAA,CAAiB,MAAA;;;;;;;;;;;;;;;;;;;;;;EAsB9B,aAAA;IACE,MAAA;IACA,MAAA;IACA,GAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;EAyBF,eAAA,GAAkB,gBAAA,CAAiB,UAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BnC,UAAA,GAAa,eAAA;;;;;;;;;;;;;;;;;;;;;;;EAwBb,iBAAA,IAAqB,KAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,UAAA,KAAe,MAAA;;;;;;;;;;;;;;;;;;;EAoB9D,OAAA,GAAU,iBAAA;AAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Placeholders } from "./placeholders.type.mjs";
|
|
2
|
+
import { PromptValidationResult, PromptsValidateOptions } from "../prompts/prompts-manager.type.mjs";
|
|
2
3
|
|
|
3
4
|
//#region ../@warlock.js/ai/src/contracts/system-prompt.contract.d.ts
|
|
4
5
|
/**
|
|
@@ -53,6 +54,53 @@ interface PersonaContract extends SystemPromptBlockContract {
|
|
|
53
54
|
interface InstructionContract extends SystemPromptBlockContract {
|
|
54
55
|
readonly type: "instruction";
|
|
55
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Identity + provenance metadata attached to a `SystemPromptContract`.
|
|
59
|
+
*
|
|
60
|
+
* A prompt that carries a `name` becomes addressable in the `ai.prompts`
|
|
61
|
+
* registry (keyed by `name@version`); anonymous prompts (no `name`) are never
|
|
62
|
+
* registered and exist only for inline composition / display.
|
|
63
|
+
*
|
|
64
|
+
* `composedFrom` records the deterministic source labels a prompt was merged
|
|
65
|
+
* from (e.g. `["base@2", "global-instructions@1"]`) — provenance with no
|
|
66
|
+
* random suffixes, so the same merge always yields the same labels.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* const base = ai.systemPrompt("You are support.", {
|
|
70
|
+
* name: "support",
|
|
71
|
+
* version: "1",
|
|
72
|
+
* description: "Tier-1 support persona.",
|
|
73
|
+
* });
|
|
74
|
+
*/
|
|
75
|
+
interface SystemPromptMeta {
|
|
76
|
+
/** Registry name. When present the prompt auto-registers in `ai.prompts`. */
|
|
77
|
+
readonly name?: string;
|
|
78
|
+
/** Registry version label. Defaults to the next integer when omitted. */
|
|
79
|
+
readonly version?: string;
|
|
80
|
+
/** Human-readable description of the prompt's purpose. */
|
|
81
|
+
readonly description?: string;
|
|
82
|
+
/** Deterministic source labels this prompt was composed from (e.g. `["base@2"]`). */
|
|
83
|
+
readonly composedFrom?: readonly string[];
|
|
84
|
+
/** Placeholder keys callers must supply when resolving this prompt. */
|
|
85
|
+
readonly required?: readonly string[];
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Options for the registry-aware overload of {@link SystemPromptContract.merge}
|
|
89
|
+
* that folds in a named prompt resolved from `ai.prompts`.
|
|
90
|
+
*/
|
|
91
|
+
interface SystemPromptMergeOptions {
|
|
92
|
+
/**
|
|
93
|
+
* Which registered version to fold in when merging by name. Defaults to the
|
|
94
|
+
* latest registered version. Ignored when merging a contract instance.
|
|
95
|
+
*/
|
|
96
|
+
readonly fromVersion?: string;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* A source that {@link SystemPromptContract.merge} can fold in: a pre-built
|
|
100
|
+
* block, another prompt contract (its blocks are folded — persona replaces,
|
|
101
|
+
* instructions append), or a registered prompt name resolved from `ai.prompts`.
|
|
102
|
+
*/
|
|
103
|
+
type SystemPromptMergeSource = SystemPromptBlockContract | SystemPromptContract | string;
|
|
56
104
|
/**
|
|
57
105
|
* Immutable builder for composing a layered system prompt out of persona and
|
|
58
106
|
* instruction blocks. Every mutating method returns a fresh builder — the
|
|
@@ -92,6 +140,29 @@ interface InstructionContract extends SystemPromptBlockContract {
|
|
|
92
140
|
interface SystemPromptContract {
|
|
93
141
|
/** All blocks in render order. Read-only snapshot — use `persona()` / `instruction()` to derive a new builder. */
|
|
94
142
|
readonly blocks: readonly SystemPromptBlockContract[];
|
|
143
|
+
/**
|
|
144
|
+
* Identity + provenance metadata. Read it via the no-argument
|
|
145
|
+
* {@link SystemPromptContract.meta} accessor (`prompt.meta()`); it is
|
|
146
|
+
* present when the prompt was given a name (via `systemPrompt(input, meta)`
|
|
147
|
+
* or `.meta({ name })`) or acquired `composedFrom` provenance through a
|
|
148
|
+
* `merge`, and `undefined` for a bare anonymous prompt.
|
|
149
|
+
*
|
|
150
|
+
* Exposed as a method (not a bare field) because the same `meta` identifier
|
|
151
|
+
* also serves as the immutable updater — see the call signatures below.
|
|
152
|
+
*/
|
|
153
|
+
/**
|
|
154
|
+
* No-argument form: read the current metadata snapshot (or `undefined` when
|
|
155
|
+
* the prompt is anonymous and carries no provenance).
|
|
156
|
+
*/
|
|
157
|
+
meta(): SystemPromptMeta | undefined;
|
|
158
|
+
/**
|
|
159
|
+
* Updater form: return a new builder with `meta` merged onto the current
|
|
160
|
+
* metadata (shallow). Immutable — the original is untouched. Giving the
|
|
161
|
+
* result a `name` registers it in `ai.prompts` under `name@version`
|
|
162
|
+
* (version defaults to the next integer); renaming a forked prompt creates
|
|
163
|
+
* a new registry key while the original entry stays put.
|
|
164
|
+
*/
|
|
165
|
+
meta(meta: SystemPromptMeta): SystemPromptContract;
|
|
95
166
|
/**
|
|
96
167
|
* Set (or replace) the persona block. Returns a new builder. If a persona
|
|
97
168
|
* already exists it's replaced in place (preserving its position);
|
|
@@ -103,6 +174,30 @@ interface SystemPromptContract {
|
|
|
103
174
|
* accumulate — instructions render in the order they were added.
|
|
104
175
|
*/
|
|
105
176
|
instruction(instruction: InstructionContract | string): SystemPromptContract;
|
|
177
|
+
/**
|
|
178
|
+
* Merge N predefined blocks into the prompt in one call. Each block is
|
|
179
|
+
* folded in order through the same per-type rules as `persona()` /
|
|
180
|
+
* `instruction()`: a `persona` block sets/replaces the single, leading
|
|
181
|
+
* persona; every other block is appended in order. Accepts pre-built
|
|
182
|
+
* `ai.persona()` / `ai.instruction()` blocks (or any `SystemPromptBlockContract`)
|
|
183
|
+
* for reuse across prompts. Returns a new builder; the original is untouched.
|
|
184
|
+
*/
|
|
185
|
+
merge(...blocks: readonly SystemPromptBlockContract[]): SystemPromptContract;
|
|
186
|
+
/**
|
|
187
|
+
* Fold in another prompt's blocks. A persona block replaces this prompt's
|
|
188
|
+
* persona; instruction (and any other) blocks append in order. The result's
|
|
189
|
+
* `meta.composedFrom` records the deterministic source labels of both this
|
|
190
|
+
* prompt and the folded one (e.g. `["base@2", "global-instructions@1"]`).
|
|
191
|
+
* Returns a new builder; the original is untouched.
|
|
192
|
+
*/
|
|
193
|
+
merge(source: SystemPromptContract): SystemPromptContract;
|
|
194
|
+
/**
|
|
195
|
+
* Fold in a prompt resolved from the `ai.prompts` registry by name. Uses the
|
|
196
|
+
* latest registered version unless `options.fromVersion` selects another.
|
|
197
|
+
* Throws `InvalidRequestError` when the name (or requested version) is not
|
|
198
|
+
* registered. Provenance is recorded in `meta.composedFrom`.
|
|
199
|
+
*/
|
|
200
|
+
merge(name: string, options?: SystemPromptMergeOptions): SystemPromptContract;
|
|
106
201
|
/**
|
|
107
202
|
* Resolve all placeholders across every block, producing the final system
|
|
108
203
|
* prompt string. Blocks render in insertion order, separated by a blank line.
|
|
@@ -112,7 +207,14 @@ interface SystemPromptContract {
|
|
|
112
207
|
* @param placeholders - Values to inject into `{{mustache}}` slots.
|
|
113
208
|
*/
|
|
114
209
|
resolve(placeholders?: Placeholders): string;
|
|
210
|
+
/**
|
|
211
|
+
* Sugar over `ai.prompts.validate(this, options)`. Runs the deterministic
|
|
212
|
+
* placeholder check (missing required `{{keys}}`) and, when `options.judge`
|
|
213
|
+
* is a model, the Nova-safe LLM-as-judge quality pass. The result's `ok`
|
|
214
|
+
* reflects the deterministic verdict alone; a flaky judge never flips it.
|
|
215
|
+
*/
|
|
216
|
+
validate(options?: PromptsValidateOptions): Promise<PromptValidationResult>;
|
|
115
217
|
}
|
|
116
218
|
//#endregion
|
|
117
|
-
export { InstructionContract, PersonaContract, SystemPromptBlockContract, SystemPromptContract };
|
|
219
|
+
export { InstructionContract, PersonaContract, SystemPromptBlockContract, SystemPromptContract, SystemPromptMergeOptions, SystemPromptMergeSource, SystemPromptMeta };
|
|
118
220
|
//# sourceMappingURL=system-prompt.contract.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.contract.d.mts","names":[],"sources":["../../../../../../../@warlock.js/ai/src/contracts/system-prompt.contract.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"system-prompt.contract.d.mts","names":[],"sources":["../../../../../../../@warlock.js/ai/src/contracts/system-prompt.contract.ts"],"mappings":";;;;;;AAqBA;;;;;;;;;;AAQqC;AAarC;;UArBiB,yBAAA;EAqBwB;EAAA,SAnB9B,IAAA;EAoCM;EAAA,SAjCN,IAAA;;EAGT,OAAA,CAAQ,YAAA,GAAe,YAAY;AAAA;AAoDrC;;;;;;;;;;AAAA,UAvCiB,eAAA,SAAwB,yBAAyB;EAAA,SACvD,IAAI;AAAA;;;AAgEO;AAQtB;;;;AAEwB;AAuCxB;;;;;UAjGiB,mBAAA,SAA4B,yBAAyB;EAAA,SAC3D,IAAI;AAAA;;;;;;;;;;;;;;;;;;;UAqBE,gBAAA;EAuGf;EAAA,SArGS,IAAA;EAqGJ;EAAA,SAlGI,OAAA;EAyGT;EAAA,SAtGS,WAAA;EAsGD;EAAA,SAnGC,YAAA;EAyGT;EAAA,SAtGS,QAAA;AAAA;;;;;UAOM,wBAAA;EAkHf;;;;EAAA,SA7GS,WAAW;AAAA;;;;;;KAQV,uBAAA,GACR,yBAAA,GACA,oBAAoB;;;;;;;AAgIoD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAzF3D,oBAAA;;WAEN,MAAA,WAAiB,yBAAA;;;;;;;;;;;;;;;EAiB1B,IAAA,IAAQ,gBAAA;;;;;;;;EASR,IAAA,CAAK,IAAA,EAAM,gBAAA,GAAmB,oBAAA;;;;;;EAO9B,OAAA,CAAQ,OAAA,EAAS,eAAA,YAA2B,oBAAA;;;;;EAM5C,WAAA,CAAY,WAAA,EAAa,mBAAA,YAA+B,oBAAA;;;;;;;;;EAUxD,KAAA,IAAS,MAAA,WAAiB,yBAAA,KAA8B,oBAAA;;;;;;;;EASxD,KAAA,CAAM,MAAA,EAAQ,oBAAA,GAAuB,oBAAA;;;;;;;EAQrC,KAAA,CACE,IAAA,UACA,OAAA,GAAU,wBAAA,GACT,oBAAA;;;;;;;;;EAUH,OAAA,CAAQ,YAAA,GAAe,YAAA;;;;;;;EAQvB,QAAA,CAAS,OAAA,GAAU,sBAAA,GAAyB,OAAA,CAAQ,sBAAA;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { TeamConfig, TeamGate, TeamGateFn, TeamMemberValue } from "./team-config.type.mjs";
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { AgentContract } from "../agent/agent.contract.mjs";
|
|
2
|
+
import { FlowObserveOption } from "../../observe/resolve-observers.mjs";
|
|
3
|
+
import { SnapshotStore } from "../orchestrator/snapshot-store.contract.mjs";
|
|
4
|
+
import { WorkflowInstance } from "../workflow/workflow.contract.mjs";
|
|
5
|
+
import { SystemPromptContract } from "../system-prompt.contract.mjs";
|
|
6
|
+
import { RouterEntry } from "../supervisor/router-entry.type.mjs";
|
|
7
|
+
import { SupervisorConfig, SupervisorEventHandlers } from "../supervisor/supervisor-config.type.mjs";
|
|
8
|
+
import { EvaluateContext, EvaluateResult } from "../supervisor/evaluate-context.type.mjs";
|
|
9
|
+
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
10
|
+
|
|
11
|
+
//#region ../@warlock.js/ai/src/contracts/team/team-config.type.d.ts
|
|
12
|
+
/**
|
|
13
|
+
* A role member — an agent or a workflow. The same shorthand the
|
|
14
|
+
* supervisor accepts on each `intents` value, narrowed to the two
|
|
15
|
+
* dispatchable unit shapes `team()` forwards verbatim. (Callback /
|
|
16
|
+
* full-entry intent shapes still work when forwarded — this alias is
|
|
17
|
+
* the documented, autocomplete-friendly subset for the common case.)
|
|
18
|
+
*/
|
|
19
|
+
type TeamMemberValue = AgentContract<unknown> | WorkflowInstance<unknown, unknown>;
|
|
20
|
+
/**
|
|
21
|
+
* The built-in quality-gate strategies. Each desugars to a concrete
|
|
22
|
+
* {@link SupervisorConfig.evaluate} callback — no new loop or
|
|
23
|
+
* termination code; both lean entirely on the already-shipped
|
|
24
|
+
* {@link EvaluateResult} semantics (`satisfied` terminates,
|
|
25
|
+
* `reassignTo` re-dispatches the fixer, `feedback` threads forward).
|
|
26
|
+
*
|
|
27
|
+
* - `"quality"` — review-then-fix loop. After members settle, read the
|
|
28
|
+
* reviewer's verdict slice (`state.approved` by default); if not
|
|
29
|
+
* approved, `reassignTo` the fixer with the reviewer feedback
|
|
30
|
+
* (`state.notes`) threaded forward. Terminates on approval.
|
|
31
|
+
* - `"verify"` — test-then-fix loop. Same shape but keyed on the
|
|
32
|
+
* tester's pass/fail slice (`state.passed` by default) instead of a
|
|
33
|
+
* subjective reviewer score.
|
|
34
|
+
*/
|
|
35
|
+
type TeamGate = "quality" | "verify";
|
|
36
|
+
/**
|
|
37
|
+
* Fully-custom gate — an escape hatch identical to
|
|
38
|
+
* {@link SupervisorConfig.evaluate}. Supplying a function instead of a
|
|
39
|
+
* {@link TeamGate} string opts out of the sugar entirely while keeping
|
|
40
|
+
* the rest of `team()`'s wiring. Forwarded straight through as
|
|
41
|
+
* `evaluate` with zero wrapping.
|
|
42
|
+
*/
|
|
43
|
+
type TeamGateFn<TState> = (ctx: EvaluateContext<TState>) => EvaluateResult | Promise<EvaluateResult>;
|
|
44
|
+
/**
|
|
45
|
+
* Config for `ai.team(config)` — thin, transparent sugar over
|
|
46
|
+
* {@link SupervisorConfig}. `team()` builds a `SupervisorConfig` from
|
|
47
|
+
* these fields and calls `supervisor(...)`, returning the **unchanged**
|
|
48
|
+
* `SupervisorContract<TOutput>`. It owns no loop: the manager becomes
|
|
49
|
+
* `route`/`router`, the members become `intents`, and the gate becomes
|
|
50
|
+
* `evaluate`. Everything else passes through 1:1.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* const codeTeam = ai.team({
|
|
54
|
+
* name: "code-team",
|
|
55
|
+
* goal: "Ship a tested module that passes review.",
|
|
56
|
+
* manager: techLeadRouter,
|
|
57
|
+
* members: { builder, reviewer, fixer },
|
|
58
|
+
* gate: "quality",
|
|
59
|
+
* output: v.object({ code: v.string() }),
|
|
60
|
+
* maxIterations: 6,
|
|
61
|
+
* });
|
|
62
|
+
*/
|
|
63
|
+
type TeamConfig<TOutput = unknown, TState = TOutput, TMembers extends Record<string, TeamMemberValue> = Record<string, TeamMemberValue>> = {
|
|
64
|
+
/** Stable identifier — forwarded verbatim to `SupervisorConfig.name`. */name: string; /** Optional dev-curated version string — forwarded to `SupervisorConfig.version`. */
|
|
65
|
+
version?: string;
|
|
66
|
+
/**
|
|
67
|
+
* The manager. Drives dispatch each iteration. Two forms:
|
|
68
|
+
* - an `AgentContract` / `RouterEntry` → becomes `SupervisorConfig.router`
|
|
69
|
+
* (LLM-driven manager).
|
|
70
|
+
* - `{ route }` → becomes `SupervisorConfig.route` (deterministic manager).
|
|
71
|
+
* Exactly one is forwarded; mutually exclusive (mirrors the
|
|
72
|
+
* supervisor's own `router` XOR `route` rule).
|
|
73
|
+
*/
|
|
74
|
+
manager: AgentContract<unknown> | RouterEntry<TState> | {
|
|
75
|
+
route: NonNullable<SupervisorConfig<TOutput, TState>["route"]>;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Role members keyed by role name (e.g. `builder`, `reviewer`,
|
|
79
|
+
* `tester`, `fixer`). Forwarded verbatim as `SupervisorConfig.intents`.
|
|
80
|
+
* The keys are the role names the manager routes to AND the keys
|
|
81
|
+
* `ctx.intents.<role>` exposes (escape hatch preserved).
|
|
82
|
+
*/
|
|
83
|
+
members: TMembers;
|
|
84
|
+
/**
|
|
85
|
+
* The quality gate. A {@link TeamGate} string selects a pre-built
|
|
86
|
+
* `evaluate` strategy; a function is forwarded straight to
|
|
87
|
+
* `SupervisorConfig.evaluate` (full escape hatch). Required — a team
|
|
88
|
+
* without a gate is just a supervisor.
|
|
89
|
+
*/
|
|
90
|
+
gate: TeamGate | TeamGateFn<TState>;
|
|
91
|
+
/**
|
|
92
|
+
* Role-name mapping for the built-in string gates. Only consulted
|
|
93
|
+
* when `gate` is a {@link TeamGate} string. Defaults:
|
|
94
|
+
* `{ reviewer: "reviewer", fixer: "fixer", tester: "tester" }`.
|
|
95
|
+
* Override when your `members` keys differ from the canonical role
|
|
96
|
+
* names.
|
|
97
|
+
*/
|
|
98
|
+
roles?: {
|
|
99
|
+
reviewer?: keyof TMembers & string;
|
|
100
|
+
fixer?: keyof TMembers & string;
|
|
101
|
+
tester?: keyof TMembers & string;
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* State key the gate reads to decide satisfaction. Defaults to
|
|
105
|
+
* `"approved"` for `gate: "quality"` and `"passed"` for
|
|
106
|
+
* `gate: "verify"`. The named member's `output` schema must write a
|
|
107
|
+
* boolean into this key.
|
|
108
|
+
*/
|
|
109
|
+
gateKey?: string; /** Natural-language objective — forwarded verbatim to `SupervisorConfig.goal`. */
|
|
110
|
+
goal?: string | SystemPromptContract; /** Final-state schema — forwarded verbatim to `SupervisorConfig.output`. */
|
|
111
|
+
output?: StandardSchemaV1<TOutput>; /** Initial state seed — forwarded verbatim to `SupervisorConfig.state`. */
|
|
112
|
+
state?: TState; /** Hard iteration cap — forwarded verbatim; defaults to the supervisor's `10`. */
|
|
113
|
+
maxIterations?: number; /** Durable snapshot store — forwarded verbatim to `SupervisorConfig.snapshotStore`. */
|
|
114
|
+
snapshotStore?: SnapshotStore; /** Definition-level event handlers — forwarded verbatim to `SupervisorConfig.on`. */
|
|
115
|
+
on?: SupervisorEventHandlers;
|
|
116
|
+
/**
|
|
117
|
+
* Observability for this team — forwarded verbatim to
|
|
118
|
+
* `SupervisorConfig.observe`, so the underlying supervisor routes its
|
|
119
|
+
* completed report through the same generic `Observer` seam every
|
|
120
|
+
* other flow uses. Additive and gated; see `SupervisorConfig.observe`
|
|
121
|
+
* for the value semantics (`true` / `false` / a flow-local `Observer`).
|
|
122
|
+
*/
|
|
123
|
+
observe?: FlowObserveOption;
|
|
124
|
+
};
|
|
125
|
+
//#endregion
|
|
126
|
+
export { TeamConfig, TeamGate, TeamGateFn, TeamMemberValue };
|
|
127
|
+
//# sourceMappingURL=team-config.type.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-config.type.d.mts","names":[],"sources":["../../../../../../../../@warlock.js/ai/src/contracts/team/team-config.type.ts"],"mappings":";;;;;;;;;;;;;AAiBA;;;;AAEoB;KAFR,eAAA,GACR,aAAA,YACA,gBAAgB;;;;AAiBA;AASpB;;;;;;;;;;;KATY,QAAA;;;;;;;AAWgC;KAFhC,UAAA,YACV,GAAA,EAAK,eAAA,CAAgB,MAAA,MAClB,cAAA,GAAiB,OAAA,CAAQ,cAAA;;;;;;;;;;;;;;;;;;;;KAqBlB,UAAA,6BAED,OAAA,mBACQ,MAAA,SAAe,eAAA,IAAmB,MAAA,SAAe,eAAA;EA+CjD,yEA5CjB,IAAA,UA6D0B;EA1D1B,OAAA;EA6DQ;;;;;;;;EAnDR,OAAA,EACI,aAAA,YACA,WAAA,CAAY,MAAA;IACV,KAAA,EAAO,WAAA,CAAY,gBAAA,CAAiB,OAAA,EAAS,MAAA;EAAA;EAnBnB;;;;;;EA2BhC,OAAA,EAAS,QAAA;EATL;;;;;;EAiBJ,IAAA,EAAM,QAAA,GAAW,UAAA,CAAW,MAAA;EAR5B;;;;;;;EAiBA,KAAA;IACE,QAAA,SAAiB,QAAA;IACjB,KAAA,SAAc,QAAA;IACd,MAAA,SAAe,QAAA;EAAA;EAAA;;;;;;EASjB,OAAA,WAWA;EANA,IAAA,YAAgB,oBAAA,EAShB;EANA,MAAA,GAAS,gBAAA,CAAiB,OAAA,GASV;EANhB,KAAA,GAAQ,MAAA,EASH;EANL,aAAA,WAeU;EAZV,aAAA,GAAgB,aAAA,EAYW;EAT3B,EAAA,GAAK,uBAAA;;;;;;;;EASL,OAAA,GAAU,iBAAA;AAAA"}
|
|
@@ -121,8 +121,10 @@ interface ToolConfig<TInput = unknown, TOutput = unknown> {
|
|
|
121
121
|
*
|
|
122
122
|
* Two forms:
|
|
123
123
|
* - **string** — static, used as-is.
|
|
124
|
-
* - **function** — receives the
|
|
125
|
-
*
|
|
124
|
+
* - **function** — receives the model's **raw, pre-validation**
|
|
125
|
+
* input (resolved at the dispatch boundary, before `execute`'s
|
|
126
|
+
* schema validation runs) and returns a string, so callers can
|
|
127
|
+
* include input data
|
|
126
128
|
* (`(input) => \`Searching for "${input.query}"\``).
|
|
127
129
|
*
|
|
128
130
|
* Resolved at the framework boundary; consumers receive a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.contract.d.mts","names":[],"sources":["../../../../../../../@warlock.js/ai/src/contracts/tool.contract.ts"],"mappings":";;;;;AAQA;;;;KAAY,QAAA,GAAW,MAAM;AAoC7B;;;;AAAoB;AAmCpB;;;;;;;;;;;;;;;AASsB;AAiBtB;;;;;;;;;;;;;AA7DA,KAAY,QAAA;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"tool.contract.d.mts","names":[],"sources":["../../../../../../../@warlock.js/ai/src/contracts/tool.contract.ts"],"mappings":";;;;;AAQA;;;;KAAY,QAAA,GAAW,MAAM;AAoC7B;;;;AAAoB;AAmCpB;;;;;;;;;;;;;;;AASsB;AAiBtB;;;;;;;;;;;;;AA7DA,KAAY,QAAA;;;;;;;;;;;;;;;;;;;;;;;;AAqHgD;;;;;;;;;;KAlFhD,WAAA,cAAyB,MAAA;;;;;;;EAOnC,SAAA,EAAW,UAAA;EAEX,MAAA,GAAS,WAAA;AAAA;;;;;;;;;;;;;;;UAiBM,UAAA;;EAEf,IAAA;;EAEA,WAAA;;;;;;;;EAQA,OAAA;;;;;;;;;;;;;;;;;;EAkBA,MAAA,cAAoB,KAAA,EAAO,MAAA;;EAE3B,IAAA,GAAO,QAAA;;;;;;;EAOP,IAAA,GAAO,QAAA;;;;;;EAMP,KAAA,GAAQ,gBAAA,CAAiB,MAAA;;;;;;;;;;;EAWzB,OAAA,CAAQ,KAAA,EAAO,MAAA,EAAQ,GAAA,GAAM,WAAA,GAAc,OAAA,CAAQ,OAAA;AAAA"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { Usage } from "./result/usage.type.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../@warlock.js/ai/src/contracts/transcription-model.contract.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* USD pricing for a speech-to-text (transcription) model. STT providers
|
|
6
|
+
* meter one of two ways; this single shape covers both so the cost
|
|
7
|
+
* folds into the same `Usage.cost` rollup as text / image / speech:
|
|
8
|
+
*
|
|
9
|
+
* - **Per-minute** (OpenAI `whisper-1`): billed per minute of input
|
|
10
|
+
* audio. Set `perMinute` (USD per audio-minute).
|
|
11
|
+
* - **Token-metered** (OpenAI `gpt-4o-transcribe`): billed per
|
|
12
|
+
* input/output token. Set `input` / `output` (USD per 1M tokens).
|
|
13
|
+
*
|
|
14
|
+
* Per-minute wins when both are set. Nothing set → `Usage.cost` stays
|
|
15
|
+
* `undefined`.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* const pricing: TranscriptionModelPricing = { perMinute: 0.006 }; // whisper-1
|
|
19
|
+
*/
|
|
20
|
+
type TranscriptionModelPricing = {
|
|
21
|
+
/** USD per minute of input audio — per-minute-metered STT. */perMinute?: number; /** USD per 1M input (audio) tokens — token-metered STT. */
|
|
22
|
+
input?: number; /** USD per 1M output (text) tokens — token-metered STT. */
|
|
23
|
+
output?: number;
|
|
24
|
+
};
|
|
25
|
+
/** One timestamped segment of a transcription (when the provider returns segments). */
|
|
26
|
+
type TranscriptionSegment = {
|
|
27
|
+
text: string; /** Segment start time in seconds. */
|
|
28
|
+
start?: number; /** Segment end time in seconds. */
|
|
29
|
+
end?: number;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* The audio to transcribe — inlined base64 bytes with an explicit IANA
|
|
33
|
+
* media type, plus an optional filename (some providers infer the codec
|
|
34
|
+
* from the extension). Read a file to base64 before calling, or pass
|
|
35
|
+
* in-memory bytes; this keeps the verb provider-neutral and
|
|
36
|
+
* serializable (no `fs` coupling in core).
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* const audio: AudioInput = { base64: buf.toString("base64"), mediaType: "audio/mpeg", filename: "note.mp3" };
|
|
40
|
+
*/
|
|
41
|
+
type AudioInput = {
|
|
42
|
+
base64: string;
|
|
43
|
+
mediaType: string;
|
|
44
|
+
filename?: string;
|
|
45
|
+
};
|
|
46
|
+
/** Options for a single {@link TranscriptionModelContract.transcribe} request. */
|
|
47
|
+
type TranscribeOptions = {
|
|
48
|
+
/** BCP-47 language hint (e.g. `"en"`) — improves accuracy + latency. */language?: string; /** Optional priming prompt (spelling/style hints). */
|
|
49
|
+
prompt?: string; /** Provider response format override (e.g. `"verbose_json"` for segments + duration). */
|
|
50
|
+
format?: string; /** Cancellation handle wired into the provider request where supported. */
|
|
51
|
+
signal?: AbortSignal; /** Provider-specific escape hatch — forwarded verbatim. */
|
|
52
|
+
[key: string]: unknown;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Raw result of a {@link TranscriptionModelContract.transcribe} call —
|
|
56
|
+
* low-level (throws a typed `AIError` on failure). The never-throws
|
|
57
|
+
* envelope is added by the `ai.transcribe()` facade verb.
|
|
58
|
+
*/
|
|
59
|
+
type TranscriptionResponse = {
|
|
60
|
+
/** The full transcript text. */text: string; /** Timestamped segments when the provider returns them (verbose mode). */
|
|
61
|
+
segments?: TranscriptionSegment[]; /** Input audio duration in seconds — drives per-minute cost when present. */
|
|
62
|
+
durationSeconds?: number;
|
|
63
|
+
/**
|
|
64
|
+
* Token usage when the provider meters per token (gpt-4o-transcribe);
|
|
65
|
+
* `{ input: 0, output: 0, total: 0 }` for per-minute-metered models,
|
|
66
|
+
* whose spend is priced from {@link durationSeconds}.
|
|
67
|
+
*/
|
|
68
|
+
usage: Usage;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Provider-neutral contract for a speech-to-text model — the inverse of
|
|
72
|
+
* {@link SpeechModelContract}. Produced by an adapter's optional
|
|
73
|
+
* `transcribe?(config)` factory and consumed by `ai.transcribe()`.
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* const stt = openai.transcribe({ name: "whisper-1" });
|
|
77
|
+
* const { text } = await stt.transcribe({ base64, mediaType: "audio/mpeg" });
|
|
78
|
+
*/
|
|
79
|
+
interface TranscriptionModelContract {
|
|
80
|
+
/** Model identifier (e.g. `"whisper-1"`, `"gpt-4o-transcribe"`). */
|
|
81
|
+
readonly name: string;
|
|
82
|
+
/** Provider this model belongs to (e.g. `"openai"`). */
|
|
83
|
+
readonly provider: string;
|
|
84
|
+
/** Per-minute or per-token USD pricing; folded into `Usage.cost` by `ai.transcribe()`. */
|
|
85
|
+
readonly pricing?: TranscriptionModelPricing;
|
|
86
|
+
/** Transcribe audio to text. Throws a typed `AIError` on failure. */
|
|
87
|
+
transcribe(audio: AudioInput, options?: TranscribeOptions): Promise<TranscriptionResponse>;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Configuration passed to an adapter's `transcribe()` factory. Mirrors
|
|
91
|
+
* {@link SpeechModelConfig}: `name` + an optional per-model `pricing`
|
|
92
|
+
* override, with provider-specific keys on the index signature.
|
|
93
|
+
*/
|
|
94
|
+
type TranscriptionModelConfig = {
|
|
95
|
+
name: string; /** Per-model USD pricing override; wins over the SDK-level registry. */
|
|
96
|
+
pricing?: TranscriptionModelPricing;
|
|
97
|
+
[key: string]: unknown;
|
|
98
|
+
};
|
|
99
|
+
//#endregion
|
|
100
|
+
export { AudioInput, TranscribeOptions, TranscriptionModelConfig, TranscriptionModelContract, TranscriptionModelPricing, TranscriptionResponse, TranscriptionSegment };
|
|
101
|
+
//# sourceMappingURL=transcription-model.contract.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcription-model.contract.d.mts","names":[],"sources":["../../../../../../../@warlock.js/ai/src/contracts/transcription-model.contract.ts"],"mappings":";;;;;AAkBA;;;;;;;;AAMQ;AAIR;;;;;KAVY,yBAAA;EAeV,8DAbA,SAAA,WAaG;EAXH,KAAA,WAwBoB;EAtBpB,MAAA;AAAA;;KAIU,oBAAA;EACV,IAAA,UAoBQ;EAlBR,KAAA,WAsBU;EApBV,GAAA;AAAA;;;;;;;;;AA8BY;AAQd;KAzBY,UAAA;EACV,MAAA;EACA,SAAA;EACA,QAAA;AAAA;;KAIU,iBAAA;EA8BV,wEA5BA,QAAA,WA4BY;EA1BZ,MAAA,WAsCe;EApCf,MAAA;EAEA,MAAA,GAAS,WAAW,EA2CF;EAAA,CAzCjB,GAAA;AAAA;;;;;;KAQS,qBAAA;EA8BS,gCA5BnB,IAAA,UA+BkB;EA7BlB,QAAA,GAAW,oBAAA,IA6B6B;EA3BxC,eAAA;EA2B4D;;;AAA6B;AAQ3F;EA7BE,KAAA,EAAO,KAAK;AAAA;;;;;;;AAiCA;;;UArBG,0BAAA;;WAEN,IAAA;;WAEA,QAAA;;WAEA,OAAA,GAAU,yBAAA;;EAGnB,UAAA,CAAW,KAAA,EAAO,UAAA,EAAY,OAAA,GAAU,iBAAA,GAAoB,OAAA,CAAQ,qBAAA;AAAA;;;;;;KAQ1D,wBAAA;EACV,IAAA;EAEA,OAAA,GAAU,yBAAyB;EAAA,CAClC,GAAA;AAAA"}
|
|
@@ -169,13 +169,38 @@ type StepDefinition<TInput = unknown, TState = Record<string, unknown>, TContext
|
|
|
169
169
|
*/
|
|
170
170
|
retry?: RetryConfig | false;
|
|
171
171
|
/**
|
|
172
|
-
* Parallel children — run concurrently,
|
|
173
|
-
*
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
*
|
|
172
|
+
* Parallel children — run concurrently, each starting from a snapshot
|
|
173
|
+
* of the parent `ctx.state`. After every child settles, their
|
|
174
|
+
* resulting states are merged back into the parent in **declaration
|
|
175
|
+
* order** (the order children appear in this array), so a key written
|
|
176
|
+
* by more than one child deterministically resolves to the
|
|
177
|
+
* **last-declared** child's value — regardless of which child finished
|
|
178
|
+
* first. Supply {@link mergeState} to customize conflict resolution
|
|
179
|
+
* (e.g. sum counters, concat arrays). Mutually exclusive with `run`
|
|
180
|
+
* and `agent`. The parent's snapshot is atomic: written only after
|
|
181
|
+
* every child settles. Children are addressable at both
|
|
182
|
+
* `ctx.steps.<child>` and `ctx.steps.<parent>.steps.<child>`.
|
|
177
183
|
*/
|
|
178
184
|
parallel?: StepDefinition<TInput, TState, TContext>[];
|
|
185
|
+
/**
|
|
186
|
+
* Conflict resolver for {@link parallel} children that write the same
|
|
187
|
+
* `ctx.state` keys. Called once per child, in **declaration order**,
|
|
188
|
+
* with the accumulator (the parent state being built up), that child's
|
|
189
|
+
* resolved state, and the child's name. Mutate `acc` in place.
|
|
190
|
+
*
|
|
191
|
+
* Omit it to keep the deterministic default (last-declared child wins
|
|
192
|
+
* per key — a plain `Object.assign` in declaration order). Supply it
|
|
193
|
+
* for advanced merges:
|
|
194
|
+
*
|
|
195
|
+
* ```ts
|
|
196
|
+
* mergeState: (acc, childState) => {
|
|
197
|
+
* acc.total = (acc.total ?? 0) + (childState.total ?? 0); // sum
|
|
198
|
+
* }
|
|
199
|
+
* ```
|
|
200
|
+
*
|
|
201
|
+
* Only consulted for parallel steps; ignored otherwise.
|
|
202
|
+
*/
|
|
203
|
+
mergeState?: (acc: TState, childState: TState, childName: string) => void;
|
|
179
204
|
/**
|
|
180
205
|
* Per-step event handlers — fires alongside the workflow-level
|
|
181
206
|
* `workflow.step.*` events. Scope is step-local (no `workflow.`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step.contract.d.mts","names":[],"sources":["../../../../../../../../@warlock.js/ai/src/contracts/workflow/step.contract.ts"],"mappings":";;;;;;;;;;;;AAaA;;KAAY,eAAA;EAAe,yEAEzB,QAAA;IAAY,IAAA;EAAA,GAGV;EADF,QAAA;IACE,IAAA;IACA,OAAA;IACA,aAAA;IACA,SAAA;EAAA,GAGsC;EAAxC,MAAA;IAAU,IAAA;IAAc,KAAA;IAAgB,QAAA;EAAA,GAEY;EAApD,SAAA;IAAa,IAAA;IAAc,MAAA;IAAiB,QAAA;EAAA;AAAA;;;;;;KAQlC,cAAA,GAAiB,mBAAmB;EAqBvC,8DAnBP,MAAM;AAAA;;;;;;;;;;KAYI,cAAA,+CAGD,MAAA;EAGT,OAAA,GACE,GAAA,EAAK,eAAA,CAAgB,MAAA,EAAQ,MAAA,EAAQ,QAAA,MAClC,OAAA,GAAU,OAAA,CAAQ,OAAA;EACvB,MAAA,GAAS,gBAAA,CAAiB,OAAA;AAAA;;;;;;;;;;;AAAO;AAoBnC;;;;;;KAAY,cAAA,4BAED,MAAA;EAkBI;;;;;;EATb,IAAA;EAwB4B;;;;;;;EAf5B,IAAA,IAAQ,GAAA,EAAK,eAAA,CAAgB,MAAA,EAAQ,MAAA,EAAQ,QAAA,gBAAwB,OAAA;EAgCvD;;;;;;EAxBd,MAAA,IAAU,GAAA,EAAK,eAAA,CAAgB,MAAA,EAAQ,MAAA,EAAQ,QAAA,aAAqB,OAAA;EA+B3D;;;;;EAxBT,GAAA,IAAO,GAAA,EAAK,eAAA,CAAgB,MAAA,EAAQ,MAAA,EAAQ,QAAA;EA4CX;;;;;;;EAnCjC,KAAA,GAAQ,aAAA;EAoDuB;;;;;;EA5C/B,KAAA,IAAS,GAAA,EAAK,eAAA,CAAgB,MAAA,EAAQ,MAAA,EAAQ,QAAA,MAAc,cAAA,GAAiB,OAAA,CAAQ,cAAA;EAsDpD;;;;;EA/CjC,MAAA,GAAS,cAAA,UAAwB,MAAA,EAAQ,MAAA,EAAQ,QAAA;
|
|
1
|
+
{"version":3,"file":"step.contract.d.mts","names":[],"sources":["../../../../../../../../@warlock.js/ai/src/contracts/workflow/step.contract.ts"],"mappings":";;;;;;;;;;;;AAaA;;KAAY,eAAA;EAAe,yEAEzB,QAAA;IAAY,IAAA;EAAA,GAGV;EADF,QAAA;IACE,IAAA;IACA,OAAA;IACA,aAAA;IACA,SAAA;EAAA,GAGsC;EAAxC,MAAA;IAAU,IAAA;IAAc,KAAA;IAAgB,QAAA;EAAA,GAEY;EAApD,SAAA;IAAa,IAAA;IAAc,MAAA;IAAiB,QAAA;EAAA;AAAA;;;;;;KAQlC,cAAA,GAAiB,mBAAmB;EAqBvC,8DAnBP,MAAM;AAAA;;;;;;;;;;KAYI,cAAA,+CAGD,MAAA;EAGT,OAAA,GACE,GAAA,EAAK,eAAA,CAAgB,MAAA,EAAQ,MAAA,EAAQ,QAAA,MAClC,OAAA,GAAU,OAAA,CAAQ,OAAA;EACvB,MAAA,GAAS,gBAAA,CAAiB,OAAA;AAAA;;;;;;;;;;;AAAO;AAoBnC;;;;;;KAAY,cAAA,4BAED,MAAA;EAkBI;;;;;;EATb,IAAA;EAwB4B;;;;;;;EAf5B,IAAA,IAAQ,GAAA,EAAK,eAAA,CAAgB,MAAA,EAAQ,MAAA,EAAQ,QAAA,gBAAwB,OAAA;EAgCvD;;;;;;EAxBd,MAAA,IAAU,GAAA,EAAK,eAAA,CAAgB,MAAA,EAAQ,MAAA,EAAQ,QAAA,aAAqB,OAAA;EA+B3D;;;;;EAxBT,GAAA,IAAO,GAAA,EAAK,eAAA,CAAgB,MAAA,EAAQ,MAAA,EAAQ,QAAA;EA4CX;;;;;;;EAnCjC,KAAA,GAAQ,aAAA;EAoDuB;;;;;;EA5C/B,KAAA,IAAS,GAAA,EAAK,eAAA,CAAgB,MAAA,EAAQ,MAAA,EAAQ,QAAA,MAAc,cAAA,GAAiB,OAAA,CAAQ,cAAA;EAsDpD;;;;;EA/CjC,MAAA,GAAS,cAAA,UAAwB,MAAA,EAAQ,MAAA,EAAQ,QAAA;EAsEvB;;;;;;EA9D1B,KAAA,IAAS,GAAA,EAAK,eAAA,CAAgB,MAAA,EAAQ,MAAA,EAAQ,QAAA,aAAqB,OAAA;EA2FzB;;;;;;;;;;EA/E1C,QAAA,IAAY,GAAA,EAAK,eAAA,CAAgB,MAAA,EAAQ,MAAA,EAAQ,QAAA,MAAc,cAAA,GAAiB,OAAA,CAAQ,cAAA;EA3D3E;;;;;;;;;;;;;;EA2Eb,SAAA,IACE,GAAA,EAAK,eAAA,CAAgB,MAAA,EAAQ,MAAA,EAAQ,QAAA,GACrC,KAAA,EAAO,OAAA,KACJ,cAAA,GAAiB,OAAA,CAAQ,cAAA;EA/DF;;;;;;EAuE5B,QAAA,IAAY,GAAA,EAAK,eAAA,CAAgB,MAAA,EAAQ,MAAA,EAAQ,QAAA,aAAqB,OAAA;EAtDxD;;;;;;EA8Dd,KAAA,GAAQ,WAAA;EA9D6E;;;;;;;;;;;;;EA6ErF,QAAA,GAAW,cAAA,CAAe,MAAA,EAAQ,MAAA,EAAQ,QAAA;EAlDzB;;;;;;;;;;;;;;;;;;EAsEjB,UAAA,IAAc,GAAA,EAAK,MAAA,EAAQ,UAAA,EAAY,MAAA,EAAQ,SAAA;EA3C/C;;;;;;EAmDA,EAAA,GAAK,OAAA,eACS,eAAA,IAAmB,OAAA,EAAS,eAAA,CAAgB,CAAA;AAAA"}
|