@warlock.js/ai 4.3.0 → 4.5.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 +52 -48
- package/cjs/index.cjs +221 -14144
- package/cjs/src-C02yzsLs.cjs +22991 -0
- package/cjs/src-C02yzsLs.cjs.map +1 -0
- package/cjs/src-DFibP2FQ.cjs +30 -0
- package/esm/agent/agent-config.type.d.mts +90 -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 +203 -30
- 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/ai-openai/src/embedder.mjs +4 -0
- package/esm/ai-openai/src/index.mjs +4 -0
- package/esm/ai-openai/src/model.mjs +5 -0
- package/esm/ai-openai/src/sdk.mjs +6 -0
- package/esm/ai-openai/src/utils/index.mjs +4 -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 +119 -53
- package/esm/ai.d.mts.map +1 -1
- package/esm/ai.mjs +43 -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 +11 -3
- package/esm/contracts/agent/agent-options.type.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/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/index.d.mts +6 -4
- 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 +1 -1
- package/esm/contracts/planner/planner-config.type.d.mts +31 -0
- package/esm/contracts/planner/planner-config.type.d.mts.map +1 -1
- package/esm/contracts/planner/planner-execute-options.type.d.mts +48 -1
- package/esm/contracts/planner/planner-execute-options.type.d.mts.map +1 -1
- package/esm/contracts/planner/planner-result.type.d.mts +19 -5
- package/esm/contracts/planner/planner-result.type.d.mts.map +1 -1
- package/esm/contracts/planner/planner.contract.d.mts +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/orchestrator-result.type.d.mts +15 -11
- package/esm/contracts/result/orchestrator-result.type.d.mts.map +1 -1
- package/esm/contracts/result/supervisor-result.type.d.mts +13 -1
- package/esm/contracts/result/supervisor-result.type.d.mts.map +1 -1
- package/esm/contracts/result/tool-call.type.d.mts +2 -2
- package/esm/contracts/result/tool-call.type.d.mts.map +1 -1
- package/esm/contracts/result/workflow-result.type.d.mts +1 -0
- package/esm/contracts/result/workflow-result.type.d.mts.map +1 -1
- 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/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/error-code.type.d.mts +1 -1
- package/esm/errors/index.d.mts +1 -0
- package/esm/errors/index.mjs +1 -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/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/index.d.mts +113 -22
- package/esm/index.mjs +82 -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/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/plan-schema.mjs +17 -14
- package/esm/planner/plan-schema.mjs.map +1 -1
- package/esm/planner/planner-run.d.mts.map +1 -1
- package/esm/planner/planner-run.mjs +300 -29
- package/esm/planner/planner-run.mjs.map +1 -1
- package/esm/planner/planner.mjs +1 -1
- package/esm/planner/planner.mjs.map +1 -1
- 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 +15 -0
- package/esm/rag/index.mjs +11 -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/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/supervisor/as-tool.mjs +2 -2
- package/esm/supervisor/as-tool.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/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 +1683 -68
- package/llms.txt +16 -4
- package/package.json +7 -3
- package/skills/README.md +40 -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-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/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/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/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
|
@@ -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"}
|
|
@@ -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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ExecutableContract } from "../executable.contract.mjs";
|
|
2
2
|
import { WorkflowResult } from "../result/workflow-result.type.mjs";
|
|
3
3
|
import { ToolContract } from "../../tool/tool.mjs";
|
|
4
|
+
import { FlowObserveOption } from "../../observe/resolve-observers.mjs";
|
|
4
5
|
import { SnapshotStore } from "../orchestrator/snapshot-store.contract.mjs";
|
|
5
6
|
import { NextStepResult } from "./next-step-result.type.mjs";
|
|
6
7
|
import { RetryConfig } from "./retry-config.type.mjs";
|
|
@@ -99,6 +100,21 @@ type WorkflowDefinition<TInput = unknown, TOutput = unknown, TState = Record<str
|
|
|
99
100
|
nextStep?: (stepName: string, ctx: WorkflowContext<TInput, TState, TContext>) => NextStepResult | Promise<NextStepResult>;
|
|
100
101
|
output?: StepOutputSpec<TOutput, TInput, TState, TContext>;
|
|
101
102
|
on?: WorkflowEventHandlers;
|
|
103
|
+
/**
|
|
104
|
+
* Observability for this workflow. Additive and gated — when omitted,
|
|
105
|
+
* the workflow follows the global observe-all flag (off unless an
|
|
106
|
+
* observability tool turned it on), so behavior is unchanged by
|
|
107
|
+
* default.
|
|
108
|
+
*
|
|
109
|
+
* - `true` → route this run's completed report to the globally
|
|
110
|
+
* registered observers, even when observe-all is off.
|
|
111
|
+
* - `false` → opt this workflow out entirely, even when observe-all is on.
|
|
112
|
+
* - an `Observer` object → a flow-local collector receiving only this
|
|
113
|
+
* workflow's report. Typed as the structural `Observer` so core stays
|
|
114
|
+
* panoptic-agnostic; a panoptic flow-local collector can be passed
|
|
115
|
+
* directly. Observer errors are swallowed — they never break the run.
|
|
116
|
+
*/
|
|
117
|
+
observe?: FlowObserveOption;
|
|
102
118
|
};
|
|
103
119
|
/**
|
|
104
120
|
* Runtime handle returned by `ai.workflow(def)`. Implements the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.contract.d.mts","names":[],"sources":["../../../../../../../../@warlock.js/ai/src/contracts/workflow/workflow.contract.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"workflow.contract.d.mts","names":[],"sources":["../../../../../../../../@warlock.js/ai/src/contracts/workflow/workflow.contract.ts"],"mappings":";;;;;;;;;;;;;;KAaY,oBAAA,iBAAqC,gBAAA,KAC/C,OAAA,EAAS,gBAAA,CAAiB,CAAA;AAAA,KAGhB,qBAAA,GAAwB,OAAA,eACtB,gBAAA,GAAmB,oBAAA,CAAqB,CAAA;;;;;KAO1C,kBAAA;EAXiB,sEAa3B,KAAA,WAd+C;EAgB/C,MAAA,GAAS,WAAA,EAfiB;EAiB1B,EAAA,GAAK,qBAAA;EAjBuB;AAAA;AAG9B;;;;;EAsBE,OAAA,GAAU,QAAA;EAtBwB;;;;;;;EA8BlC,SAAA;AAAA;AA7BqD;AAOvD;;;;AAPuD,KAqC3C,sBAAA,yCAGR,kBAAA,CAAmB,QAAA;EACrB,KAAA,EAAO,MAAA;AAAA;AAAA,KAGG,qBAAA,uBACV,kBAAkB,CAAC,QAAA;EAtCU;;EAyC3B,KAAA;AAAA;AAAA,KAGQ,kBAAA,+CAGD,MAAA;EAGT,IAAA;EApCA;;;;AAQS;EAkCT,WAAA;EA1BgC;;;;;;;;;;EAqChC,WAAA,GAAc,gBAAA,CAAiB,MAAA;EAC/B,OAAA;EACA,KAAA,EAAO,cAAA,CAAe,MAAA,EAAQ,MAAA,EAAQ,QAAA;EAnCzB;AAAA;AAGf;;;;;;;;;EA4CE,aAAA,GAAgB,aAAA,CAAc,gBAAA;EArCpB;;;;;;;;;EA+CV,YAAA,GAAe,WAAA;EACf,QAAA;EACA,aAAA;EACA,QAAA,IACE,QAAA,UACA,GAAA,EAAK,eAAA,CAAgB,MAAA,EAAQ,MAAA,EAAQ,QAAA,MAClC,cAAA,GAAiB,OAAA,CAAQ,cAAA;EAC9B,MAAA,GAAS,cAAA,CAAe,OAAA,EAAS,MAAA,EAAQ,MAAA,EAAQ,QAAA;EACjD,EAAA,GAAK,qBAAA;EAHkC;;;;;;;;;;;;;;EAkBvC,OAAA,GAAU,iBAAA;AAAA;;;;;;;UASK,gBAAA,+CAGN,MAAA,+CAED,kBAAA,CACR,MAAA,EACA,kBAAA,CAAmB,QAAA,GACnB,cAAA,CAAe,OAAA;EAAA,SAEN,IAAA;EAAA,SACA,WAAA;EAjET;;;;;;EAAA,SAwES,WAAA,GAAc,gBAAA,CAAiB,MAAA;EAAA,SAC/B,SAAA;EAAA,SACA,OAAA;EApDM;;;;;;;;;;;;;;EAoEf,OAAA,CACE,KAAA,EAAO,MAAA,EACP,OAAA,GAAU,kBAAA,CAAmB,QAAA,IAC5B,OAAA,CAAQ,cAAA,CAAe,OAAA;EAC1B,OAAA,CACE,OAAA,EAAS,sBAAA,CAAuB,MAAA,EAAQ,QAAA,IACvC,OAAA,CAAQ,cAAA,CAAe,OAAA;EAE1B,MAAA,CACE,KAAA,UACA,OAAA,GAAU,qBAAA,CAAsB,QAAA,IAC/B,OAAA,CAAQ,cAAA,CAAe,OAAA;EAE1B,EAAA,iBAAmB,gBAAA,EAAkB,KAAA,EAAO,CAAA,EAAG,OAAA,EAAS,oBAAA,CAAqB,CAAA;EAC7E,GAAA,iBAAoB,gBAAA,EAAkB,KAAA,EAAO,CAAA,EAAG,OAAA,EAAS,oBAAA,CAAqB,CAAA;EA1E9E;;;;;AAe2B;AAS7B;;;;;;;;;;EAoEE,MAAA,cAAoB,MAAA,EAAQ,OAAA;IAC1B,WAAA;IACA,WAAA,EAAa,gBAAA,CAAiB,UAAA;EAAA,IAC5B,YAAA,CAAa,UAAA,EAAY,OAAA;AAAA"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* return agent.execute(input);
|
|
14
14
|
* }
|
|
15
15
|
*/
|
|
16
|
-
type AIErrorCode = "AGENT_EXEC_FAILED" | "AGENT_CANCELLED" | "AGENT_MAX_TRIPS" | "SCHEMA_VALIDATION_FAILED" | "TOOL_EXEC_FAILED" | "PROVIDER_ERROR" | "PROVIDER_RATE_LIMIT" | "PROVIDER_QUOTA_EXCEEDED" | "PROVIDER_TIMEOUT" | "CONTEXT_LENGTH_EXCEEDED" | "CONTENT_FILTER" | "PROVIDER_INVALID_REQUEST" | "PROVIDER_AUTH" | "BUDGET_EXCEEDED" | "GUARDRAIL_VIOLATION" | "WORKFLOW_ERROR" | "STEP_FAILED" | "WORKFLOW_DRIFT" | "WORKFLOW_CANCELLED" | "WORKFLOW_MAX_STEPS" | "WORKFLOW_INVALID_GOTO" | "SUPERVISOR_FAILED" | "SUPERVISOR_MAX_ITERATIONS" | "SUPERVISOR_INVALID_ROUTE" | "SUPERVISOR_CANCELLED" | "SUPERVISOR_DRIFT" | "SUPERVISOR_INTENT_DESCRIPTION_REQUIRED" | "SUPERVISOR_INTENT_MIXED_DISPATCH" | "SUPERVISOR_INTENT_STREAM_AND_OUTPUT" | "SUPERVISOR_INTENT_STREAM_TO_REQUIRED" | "SUPERVISOR_INTENT_STREAM_ON_WORKFLOW" | "SUPERVISOR_DISPATCH_CYCLE" | "ORCHESTRATOR_FAILED" | "ORCHESTRATOR_DRIFT" | "ORCHESTRATOR_CONFIG" | "ORCHESTRATOR_CANCELLED" | "PLANNER_FAILED" | "PLANNER_PLAN_INVALID" | "PLANNER_CANCELLED";
|
|
16
|
+
type AIErrorCode = "AGENT_EXEC_FAILED" | "AGENT_CANCELLED" | "AGENT_MAX_TRIPS" | "SCHEMA_VALIDATION_FAILED" | "TOOL_EXEC_FAILED" | "PROVIDER_ERROR" | "PROVIDER_RATE_LIMIT" | "PROVIDER_QUOTA_EXCEEDED" | "PROVIDER_TIMEOUT" | "CONTEXT_LENGTH_EXCEEDED" | "CONTENT_FILTER" | "PROVIDER_INVALID_REQUEST" | "PROVIDER_AUTH" | "BUDGET_EXCEEDED" | "GUARDRAIL_VIOLATION" | "WORKFLOW_ERROR" | "STEP_FAILED" | "WORKFLOW_DRIFT" | "WORKFLOW_CANCELLED" | "WORKFLOW_MAX_STEPS" | "WORKFLOW_INVALID_GOTO" | "SUPERVISOR_FAILED" | "SUPERVISOR_MAX_ITERATIONS" | "SUPERVISOR_INVALID_ROUTE" | "SUPERVISOR_CANCELLED" | "SUPERVISOR_DRIFT" | "SUPERVISOR_INTENT_DESCRIPTION_REQUIRED" | "SUPERVISOR_INTENT_MIXED_DISPATCH" | "SUPERVISOR_INTENT_STREAM_AND_OUTPUT" | "SUPERVISOR_INTENT_STREAM_TO_REQUIRED" | "SUPERVISOR_INTENT_STREAM_ON_WORKFLOW" | "SUPERVISOR_DISPATCH_CYCLE" | "ORCHESTRATOR_FAILED" | "ORCHESTRATOR_DRIFT" | "ORCHESTRATOR_CONFIG" | "ORCHESTRATOR_CANCELLED" | "PLANNER_FAILED" | "PLANNER_PLAN_INVALID" | "PLANNER_CANCELLED" | "VCR_CASSETTE_MISS" | "OUTBOUND_POLICY_BLOCKED";
|
|
17
17
|
//#endregion
|
|
18
18
|
export { AIErrorCode };
|
|
19
19
|
//# sourceMappingURL=error-code.type.d.mts.map
|
package/esm/errors/index.d.mts
CHANGED
|
@@ -18,6 +18,7 @@ import { OrchestratorFailedError } from "./orchestrator-failed-error.mjs";
|
|
|
18
18
|
import { OrchestratorCancelledError, OrchestratorCancelledErrorOptions } from "./orchestrator-cancelled-error.mjs";
|
|
19
19
|
import { OrchestratorConfigError } from "./orchestrator-config-error.mjs";
|
|
20
20
|
import { OrchestratorDriftError, OrchestratorDriftErrorOptions } from "./orchestrator-drift-error.mjs";
|
|
21
|
+
import { OutboundPolicyError } from "./outbound-policy-error.mjs";
|
|
21
22
|
import { PlannerFailedError } from "./planner-failed-error.mjs";
|
|
22
23
|
import { PlannerCancelledError, PlannerCancelledErrorOptions } from "./planner-cancelled-error.mjs";
|
|
23
24
|
import { PlannerPlanInvalidError } from "./planner-plan-invalid-error.mjs";
|
package/esm/errors/index.mjs
CHANGED
|
@@ -16,6 +16,7 @@ import { OrchestratorFailedError } from "./orchestrator-failed-error.mjs";
|
|
|
16
16
|
import { OrchestratorCancelledError } from "./orchestrator-cancelled-error.mjs";
|
|
17
17
|
import { OrchestratorConfigError } from "./orchestrator-config-error.mjs";
|
|
18
18
|
import { OrchestratorDriftError } from "./orchestrator-drift-error.mjs";
|
|
19
|
+
import { OutboundPolicyError } from "./outbound-policy-error.mjs";
|
|
19
20
|
import { PlannerFailedError } from "./planner-failed-error.mjs";
|
|
20
21
|
import { PlannerCancelledError } from "./planner-cancelled-error.mjs";
|
|
21
22
|
import { PlannerPlanInvalidError } from "./planner-plan-invalid-error.mjs";
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ErrorCategory } from "./error-category.type.mjs";
|
|
2
|
+
import { AIError, AIErrorOptions } from "./ai-error.mjs";
|
|
3
|
+
|
|
4
|
+
//#region ../@warlock.js/ai/src/errors/outbound-policy-error.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* A server-side outbound request (attachment fetch, URL skill manifest,
|
|
7
|
+
* RAG loader, …) was blocked by the shared `OutboundPolicy` before it
|
|
8
|
+
* left the process — a disallowed scheme, a host outside the allowlist, a
|
|
9
|
+
* private / loopback / link-local / cloud-metadata address resolved after
|
|
10
|
+
* DNS, an oversized body, or a timeout.
|
|
11
|
+
*
|
|
12
|
+
* This is the framework's SSRF / resource-exhaustion guard surfacing: the
|
|
13
|
+
* request was refused on purpose, not a provider failure. `context`
|
|
14
|
+
* carries the offending `url` / `host` / `reason` for logs.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* if (error instanceof OutboundPolicyError) {
|
|
18
|
+
* logger.warn("blocked outbound fetch", { context: error.context });
|
|
19
|
+
* }
|
|
20
|
+
*/
|
|
21
|
+
declare class OutboundPolicyError extends AIError {
|
|
22
|
+
static readonly defaultCategory: ErrorCategory;
|
|
23
|
+
constructor(message: string, options?: AIErrorOptions);
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { OutboundPolicyError };
|
|
27
|
+
//# sourceMappingURL=outbound-policy-error.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbound-policy-error.d.mts","names":[],"sources":["../../../../../../../@warlock.js/ai/src/errors/outbound-policy-error.ts"],"mappings":";;;;;;AAmBA;;;;;;;;;;;;;;cAAa,mBAAA,SAA4B,OAAA;EAAA,gBAChB,eAAA,EAAiB,aAAA;cAErB,OAAA,UAAiB,OAAA,GAAU,cAAA;AAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { AIError } from "./ai-error.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../@warlock.js/ai/src/errors/outbound-policy-error.ts
|
|
4
|
+
/**
|
|
5
|
+
* A server-side outbound request (attachment fetch, URL skill manifest,
|
|
6
|
+
* RAG loader, …) was blocked by the shared `OutboundPolicy` before it
|
|
7
|
+
* left the process — a disallowed scheme, a host outside the allowlist, a
|
|
8
|
+
* private / loopback / link-local / cloud-metadata address resolved after
|
|
9
|
+
* DNS, an oversized body, or a timeout.
|
|
10
|
+
*
|
|
11
|
+
* This is the framework's SSRF / resource-exhaustion guard surfacing: the
|
|
12
|
+
* request was refused on purpose, not a provider failure. `context`
|
|
13
|
+
* carries the offending `url` / `host` / `reason` for logs.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* if (error instanceof OutboundPolicyError) {
|
|
17
|
+
* logger.warn("blocked outbound fetch", { context: error.context });
|
|
18
|
+
* }
|
|
19
|
+
*/
|
|
20
|
+
var OutboundPolicyError = class extends AIError {
|
|
21
|
+
static {
|
|
22
|
+
this.defaultCategory = "validation";
|
|
23
|
+
}
|
|
24
|
+
constructor(message, options) {
|
|
25
|
+
super("OUTBOUND_POLICY_BLOCKED", message, options);
|
|
26
|
+
this.name = "OutboundPolicyError";
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
//#endregion
|
|
31
|
+
export { OutboundPolicyError };
|
|
32
|
+
//# sourceMappingURL=outbound-policy-error.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbound-policy-error.mjs","names":[],"sources":["../../../../../../../@warlock.js/ai/src/errors/outbound-policy-error.ts"],"sourcesContent":["import { AIError, type AIErrorOptions } from \"./ai-error\";\nimport type { ErrorCategory } from \"./error-category.type\";\n\n/**\n * A server-side outbound request (attachment fetch, URL skill manifest,\n * RAG loader, …) was blocked by the shared `OutboundPolicy` before it\n * left the process — a disallowed scheme, a host outside the allowlist, a\n * private / loopback / link-local / cloud-metadata address resolved after\n * DNS, an oversized body, or a timeout.\n *\n * This is the framework's SSRF / resource-exhaustion guard surfacing: the\n * request was refused on purpose, not a provider failure. `context`\n * carries the offending `url` / `host` / `reason` for logs.\n *\n * @example\n * if (error instanceof OutboundPolicyError) {\n * logger.warn(\"blocked outbound fetch\", { context: error.context });\n * }\n */\nexport class OutboundPolicyError extends AIError {\n public static readonly defaultCategory: ErrorCategory = \"validation\";\n\n public constructor(message: string, options?: AIErrorOptions) {\n super(\"OUTBOUND_POLICY_BLOCKED\", message, options);\n this.name = \"OutboundPolicyError\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAmBA,IAAa,sBAAb,cAAyC,QAAQ;;yBACS;;CAExD,AAAO,YAAY,SAAiB,SAA0B;EAC5D,MAAM,2BAA2B,SAAS,OAAO;EACjD,KAAK,OAAO;CACd;AACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { DatasetContract, DatasetOptions } from "./dataset.type.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../@warlock.js/ai/src/eval/dataset.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Create an immutable evaluation dataset that feeds `agent.eval({ cases })`
|
|
6
|
+
* directly.
|
|
7
|
+
*
|
|
8
|
+
* **Role.** A taggable, filterable, shardable wrapper around a list of
|
|
9
|
+
* {@link DatasetEntry} rows. `agent.eval` accepts a `DatasetContract` in
|
|
10
|
+
* place of a raw `EvalCase[]`, reading `.cases` off it.
|
|
11
|
+
*
|
|
12
|
+
* Sources (combinable — file entries append after inline `cases`):
|
|
13
|
+
* - `cases` → inline entries.
|
|
14
|
+
* - `fromFile` → a JSONL file read once, synchronously, at construction
|
|
15
|
+
* (one JSON object per line). A malformed line throws an
|
|
16
|
+
* `InvalidRequestError` naming the 1-based line number.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* const ds = dataset({ name: "support", fromFile: "./eval/support.jsonl" });
|
|
20
|
+
* const smoke = ds.filter((entry) => entry.tags?.includes("smoke"));
|
|
21
|
+
* const shard = ds.shard(0, 4); // first of four parallel CI shards
|
|
22
|
+
*
|
|
23
|
+
* const report = await agent.eval({ cases: ds, scorers: [contains()] });
|
|
24
|
+
*/
|
|
25
|
+
declare function dataset<TOutput = unknown>(options: DatasetOptions<TOutput>): DatasetContract<TOutput>;
|
|
26
|
+
//#endregion
|
|
27
|
+
export { dataset };
|
|
28
|
+
//# sourceMappingURL=dataset.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataset.d.mts","names":[],"sources":["../../../../../../../@warlock.js/ai/src/eval/dataset.ts"],"mappings":";;;;;AAkIA;;;;;;;;;;;;;;;;AAE0B;;;iBAFV,OAAA,oBACd,OAAA,EAAS,cAAA,CAAe,OAAA,IACvB,eAAA,CAAgB,OAAA"}
|