@actrun_ai/tastekit-core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/compiler/compiler.d.ts +24 -0
- package/dist/compiler/compiler.d.ts.map +1 -0
- package/dist/compiler/compiler.js +153 -0
- package/dist/compiler/compiler.js.map +1 -0
- package/dist/compiler/constitution-compiler.d.ts +11 -0
- package/dist/compiler/constitution-compiler.d.ts.map +1 -0
- package/dist/compiler/constitution-compiler.js +154 -0
- package/dist/compiler/constitution-compiler.js.map +1 -0
- package/dist/compiler/derivation.d.ts +125 -0
- package/dist/compiler/derivation.d.ts.map +1 -0
- package/dist/compiler/derivation.js +109 -0
- package/dist/compiler/derivation.js.map +1 -0
- package/dist/compiler/guardrails-compiler.d.ts +11 -0
- package/dist/compiler/guardrails-compiler.d.ts.map +1 -0
- package/dist/compiler/guardrails-compiler.js +362 -0
- package/dist/compiler/guardrails-compiler.js.map +1 -0
- package/dist/compiler/index.d.ts +13 -0
- package/dist/compiler/index.d.ts.map +1 -0
- package/dist/compiler/index.js +13 -0
- package/dist/compiler/index.js.map +1 -0
- package/dist/compiler/memory-compiler.d.ts +12 -0
- package/dist/compiler/memory-compiler.d.ts.map +1 -0
- package/dist/compiler/memory-compiler.js +293 -0
- package/dist/compiler/memory-compiler.js.map +1 -0
- package/dist/compiler/playbook-compiler.d.ts +15 -0
- package/dist/compiler/playbook-compiler.d.ts.map +1 -0
- package/dist/compiler/playbook-compiler.js +1143 -0
- package/dist/compiler/playbook-compiler.js.map +1 -0
- package/dist/compiler/skills-compiler.d.ts +15 -0
- package/dist/compiler/skills-compiler.d.ts.map +1 -0
- package/dist/compiler/skills-compiler.js +203 -0
- package/dist/compiler/skills-compiler.js.map +1 -0
- package/dist/domains/development-agent/domain.d.ts +8 -0
- package/dist/domains/development-agent/domain.d.ts.map +1 -0
- package/dist/domains/development-agent/domain.js +35 -0
- package/dist/domains/development-agent/domain.js.map +1 -0
- package/dist/domains/development-agent/index.d.ts +3 -0
- package/dist/domains/development-agent/index.d.ts.map +1 -0
- package/dist/domains/development-agent/index.js +3 -0
- package/dist/domains/development-agent/index.js.map +1 -0
- package/dist/domains/development-agent/rubric.d.ts +13 -0
- package/dist/domains/development-agent/rubric.d.ts.map +1 -0
- package/dist/domains/development-agent/rubric.js +451 -0
- package/dist/domains/development-agent/rubric.js.map +1 -0
- package/dist/domains/development-agent/skills/code-review.d.ts +25 -0
- package/dist/domains/development-agent/skills/code-review.d.ts.map +1 -0
- package/dist/domains/development-agent/skills/code-review.js +146 -0
- package/dist/domains/development-agent/skills/code-review.js.map +1 -0
- package/dist/domains/development-agent/skills/debugging-issues.d.ts +25 -0
- package/dist/domains/development-agent/skills/debugging-issues.d.ts.map +1 -0
- package/dist/domains/development-agent/skills/debugging-issues.js +155 -0
- package/dist/domains/development-agent/skills/debugging-issues.js.map +1 -0
- package/dist/domains/development-agent/skills/documenting-code.d.ts +19 -0
- package/dist/domains/development-agent/skills/documenting-code.d.ts.map +1 -0
- package/dist/domains/development-agent/skills/documenting-code.js +92 -0
- package/dist/domains/development-agent/skills/documenting-code.js.map +1 -0
- package/dist/domains/development-agent/skills/index.d.ts +55 -0
- package/dist/domains/development-agent/skills/index.d.ts.map +1 -0
- package/dist/domains/development-agent/skills/index.js +19 -0
- package/dist/domains/development-agent/skills/index.js.map +1 -0
- package/dist/domains/development-agent/skills/refactor-plan.d.ts +19 -0
- package/dist/domains/development-agent/skills/refactor-plan.d.ts.map +1 -0
- package/dist/domains/development-agent/skills/refactor-plan.js +117 -0
- package/dist/domains/development-agent/skills/refactor-plan.js.map +1 -0
- package/dist/domains/development-agent/skills/writing-tests.d.ts +20 -0
- package/dist/domains/development-agent/skills/writing-tests.d.ts.map +1 -0
- package/dist/domains/development-agent/skills/writing-tests.js +93 -0
- package/dist/domains/development-agent/skills/writing-tests.js.map +1 -0
- package/dist/domains/general-agent/domain.d.ts +9 -0
- package/dist/domains/general-agent/domain.d.ts.map +1 -0
- package/dist/domains/general-agent/domain.js +36 -0
- package/dist/domains/general-agent/domain.js.map +1 -0
- package/dist/domains/general-agent/index.d.ts +4 -0
- package/dist/domains/general-agent/index.d.ts.map +1 -0
- package/dist/domains/general-agent/index.js +4 -0
- package/dist/domains/general-agent/index.js.map +1 -0
- package/dist/domains/general-agent/rubric.d.ts +8 -0
- package/dist/domains/general-agent/rubric.d.ts.map +1 -0
- package/dist/domains/general-agent/rubric.js +332 -0
- package/dist/domains/general-agent/rubric.js.map +1 -0
- package/dist/domains/general-agent/skills/context-synthesis.d.ts +19 -0
- package/dist/domains/general-agent/skills/context-synthesis.d.ts.map +1 -0
- package/dist/domains/general-agent/skills/context-synthesis.js +94 -0
- package/dist/domains/general-agent/skills/context-synthesis.js.map +1 -0
- package/dist/domains/general-agent/skills/index.d.ts +32 -0
- package/dist/domains/general-agent/skills/index.d.ts.map +1 -0
- package/dist/domains/general-agent/skills/index.js +11 -0
- package/dist/domains/general-agent/skills/index.js.map +1 -0
- package/dist/domains/general-agent/skills/task-orchestration.d.ts +19 -0
- package/dist/domains/general-agent/skills/task-orchestration.d.ts.map +1 -0
- package/dist/domains/general-agent/skills/task-orchestration.js +101 -0
- package/dist/domains/general-agent/skills/task-orchestration.js.map +1 -0
- package/dist/domains/index.d.ts +21 -0
- package/dist/domains/index.d.ts.map +1 -0
- package/dist/domains/index.js +37 -0
- package/dist/domains/index.js.map +1 -0
- package/dist/domains/types.d.ts +22 -0
- package/dist/domains/types.d.ts.map +1 -0
- package/dist/domains/types.js +2 -0
- package/dist/domains/types.js.map +1 -0
- package/dist/drift/consolidator.d.ts +47 -0
- package/dist/drift/consolidator.d.ts.map +1 -0
- package/dist/drift/consolidator.js +116 -0
- package/dist/drift/consolidator.js.map +1 -0
- package/dist/drift/detector.d.ts +79 -0
- package/dist/drift/detector.d.ts.map +1 -0
- package/dist/drift/detector.js +424 -0
- package/dist/drift/detector.js.map +1 -0
- package/dist/drift/index.d.ts +9 -0
- package/dist/drift/index.d.ts.map +1 -0
- package/dist/drift/index.js +9 -0
- package/dist/drift/index.js.map +1 -0
- package/dist/drift/proposal.d.ts +108 -0
- package/dist/drift/proposal.d.ts.map +1 -0
- package/dist/drift/proposal.js +2 -0
- package/dist/drift/proposal.js.map +1 -0
- package/dist/eval/index.d.ts +9 -0
- package/dist/eval/index.d.ts.map +1 -0
- package/dist/eval/index.js +9 -0
- package/dist/eval/index.js.map +1 -0
- package/dist/eval/judge.d.ts +33 -0
- package/dist/eval/judge.d.ts.map +1 -0
- package/dist/eval/judge.js +209 -0
- package/dist/eval/judge.js.map +1 -0
- package/dist/eval/replay.d.ts +23 -0
- package/dist/eval/replay.d.ts.map +1 -0
- package/dist/eval/replay.js +42 -0
- package/dist/eval/replay.js.map +1 -0
- package/dist/eval/runner.d.ts +35 -0
- package/dist/eval/runner.d.ts.map +1 -0
- package/dist/eval/runner.js +52 -0
- package/dist/eval/runner.js.map +1 -0
- package/dist/generators/agents-md-generator.d.ts +9 -0
- package/dist/generators/agents-md-generator.d.ts.map +1 -0
- package/dist/generators/agents-md-generator.js +71 -0
- package/dist/generators/agents-md-generator.js.map +1 -0
- package/dist/generators/blocks/domain-context.d.ts +7 -0
- package/dist/generators/blocks/domain-context.d.ts.map +1 -0
- package/dist/generators/blocks/domain-context.js +26 -0
- package/dist/generators/blocks/domain-context.js.map +1 -0
- package/dist/generators/blocks/drift-awareness.d.ts +6 -0
- package/dist/generators/blocks/drift-awareness.d.ts.map +1 -0
- package/dist/generators/blocks/drift-awareness.js +28 -0
- package/dist/generators/blocks/drift-awareness.js.map +1 -0
- package/dist/generators/blocks/evaluation-criteria.d.ts +7 -0
- package/dist/generators/blocks/evaluation-criteria.d.ts.map +1 -0
- package/dist/generators/blocks/evaluation-criteria.js +18 -0
- package/dist/generators/blocks/evaluation-criteria.js.map +1 -0
- package/dist/generators/blocks/guardrails.d.ts +6 -0
- package/dist/generators/blocks/guardrails.d.ts.map +1 -0
- package/dist/generators/blocks/guardrails.js +44 -0
- package/dist/generators/blocks/guardrails.js.map +1 -0
- package/dist/generators/blocks/identity.d.ts +6 -0
- package/dist/generators/blocks/identity.d.ts.map +1 -0
- package/dist/generators/blocks/identity.js +36 -0
- package/dist/generators/blocks/identity.js.map +1 -0
- package/dist/generators/blocks/memory-policy.d.ts +6 -0
- package/dist/generators/blocks/memory-policy.d.ts.map +1 -0
- package/dist/generators/blocks/memory-policy.js +34 -0
- package/dist/generators/blocks/memory-policy.js.map +1 -0
- package/dist/generators/blocks/playbook-index.d.ts +7 -0
- package/dist/generators/blocks/playbook-index.d.ts.map +1 -0
- package/dist/generators/blocks/playbook-index.js +14 -0
- package/dist/generators/blocks/playbook-index.js.map +1 -0
- package/dist/generators/blocks/session-rhythm.d.ts +6 -0
- package/dist/generators/blocks/session-rhythm.d.ts.map +1 -0
- package/dist/generators/blocks/session-rhythm.js +11 -0
- package/dist/generators/blocks/session-rhythm.js.map +1 -0
- package/dist/generators/blocks/skills-index.d.ts +6 -0
- package/dist/generators/blocks/skills-index.d.ts.map +1 -0
- package/dist/generators/blocks/skills-index.js +36 -0
- package/dist/generators/blocks/skills-index.js.map +1 -0
- package/dist/generators/blocks/tool-usage.d.ts +6 -0
- package/dist/generators/blocks/tool-usage.d.ts.map +1 -0
- package/dist/generators/blocks/tool-usage.js +31 -0
- package/dist/generators/blocks/tool-usage.js.map +1 -0
- package/dist/generators/blocks/vocabulary.d.ts +7 -0
- package/dist/generators/blocks/vocabulary.d.ts.map +1 -0
- package/dist/generators/blocks/vocabulary.js +27 -0
- package/dist/generators/blocks/vocabulary.js.map +1 -0
- package/dist/generators/claude-hooks-compat.d.ts +33 -0
- package/dist/generators/claude-hooks-compat.d.ts.map +1 -0
- package/dist/generators/claude-hooks-compat.js +322 -0
- package/dist/generators/claude-hooks-compat.js.map +1 -0
- package/dist/generators/claude-md-generator.d.ts +12 -0
- package/dist/generators/claude-md-generator.d.ts.map +1 -0
- package/dist/generators/claude-md-generator.js +60 -0
- package/dist/generators/claude-md-generator.js.map +1 -0
- package/dist/generators/index.d.ts +11 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +11 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/soul-md-generator.d.ts +9 -0
- package/dist/generators/soul-md-generator.d.ts.map +1 -0
- package/dist/generators/soul-md-generator.js +104 -0
- package/dist/generators/soul-md-generator.js.map +1 -0
- package/dist/generators/types.d.ts +55 -0
- package/dist/generators/types.d.ts.map +1 -0
- package/dist/generators/types.js +7 -0
- package/dist/generators/types.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/interview/index.d.ts +11 -0
- package/dist/interview/index.d.ts.map +1 -0
- package/dist/interview/index.js +11 -0
- package/dist/interview/index.js.map +1 -0
- package/dist/interview/interviewer.d.ts +94 -0
- package/dist/interview/interviewer.d.ts.map +1 -0
- package/dist/interview/interviewer.js +516 -0
- package/dist/interview/interviewer.js.map +1 -0
- package/dist/interview/questions.d.ts +15 -0
- package/dist/interview/questions.d.ts.map +1 -0
- package/dist/interview/questions.js +86 -0
- package/dist/interview/questions.js.map +1 -0
- package/dist/interview/rubric.d.ts +265 -0
- package/dist/interview/rubric.d.ts.map +1 -0
- package/dist/interview/rubric.js +74 -0
- package/dist/interview/rubric.js.map +1 -0
- package/dist/interview/session.d.ts +9 -0
- package/dist/interview/session.d.ts.map +1 -0
- package/dist/interview/session.js +33 -0
- package/dist/interview/session.js.map +1 -0
- package/dist/interview/universal-rubric.d.ts +11 -0
- package/dist/interview/universal-rubric.d.ts.map +1 -0
- package/dist/interview/universal-rubric.js +165 -0
- package/dist/interview/universal-rubric.js.map +1 -0
- package/dist/llm/index.d.ts +8 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +8 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/provider.d.ts +62 -0
- package/dist/llm/provider.d.ts.map +1 -0
- package/dist/llm/provider.js +24 -0
- package/dist/llm/provider.js.map +1 -0
- package/dist/llm/providers/anthropic.d.ts +18 -0
- package/dist/llm/providers/anthropic.d.ts.map +1 -0
- package/dist/llm/providers/anthropic.js +56 -0
- package/dist/llm/providers/anthropic.js.map +1 -0
- package/dist/llm/providers/ollama.d.ts +17 -0
- package/dist/llm/providers/ollama.d.ts.map +1 -0
- package/dist/llm/providers/ollama.js +45 -0
- package/dist/llm/providers/ollama.js.map +1 -0
- package/dist/llm/providers/openai.d.ts +19 -0
- package/dist/llm/providers/openai.d.ts.map +1 -0
- package/dist/llm/providers/openai.js +52 -0
- package/dist/llm/providers/openai.js.map +1 -0
- package/dist/llm/resolve.d.ts +11 -0
- package/dist/llm/resolve.d.ts.map +1 -0
- package/dist/llm/resolve.js +56 -0
- package/dist/llm/resolve.js.map +1 -0
- package/dist/mcp/binder.d.ts +28 -0
- package/dist/mcp/binder.d.ts.map +1 -0
- package/dist/mcp/binder.js +87 -0
- package/dist/mcp/binder.js.map +1 -0
- package/dist/mcp/client.d.ts +99 -0
- package/dist/mcp/client.d.ts.map +1 -0
- package/dist/mcp/client.js +196 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/index.d.ts +9 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +9 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/inspector.d.ts +29 -0
- package/dist/mcp/inspector.d.ts.map +1 -0
- package/dist/mcp/inspector.js +44 -0
- package/dist/mcp/inspector.js.map +1 -0
- package/dist/schemas/bindings.d.ts +248 -0
- package/dist/schemas/bindings.d.ts.map +1 -0
- package/dist/schemas/bindings.js +34 -0
- package/dist/schemas/bindings.js.map +1 -0
- package/dist/schemas/constitution.d.ts +229 -0
- package/dist/schemas/constitution.d.ts.map +1 -0
- package/dist/schemas/constitution.js +47 -0
- package/dist/schemas/constitution.js.map +1 -0
- package/dist/schemas/evalpack.d.ts +322 -0
- package/dist/schemas/evalpack.d.ts.map +1 -0
- package/dist/schemas/evalpack.js +43 -0
- package/dist/schemas/evalpack.js.map +1 -0
- package/dist/schemas/guardrails.d.ts +171 -0
- package/dist/schemas/guardrails.d.ts.map +1 -0
- package/dist/schemas/guardrails.js +35 -0
- package/dist/schemas/guardrails.js.map +1 -0
- package/dist/schemas/index.d.ts +18 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +18 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/memory.d.ts +277 -0
- package/dist/schemas/memory.d.ts.map +1 -0
- package/dist/schemas/memory.js +42 -0
- package/dist/schemas/memory.js.map +1 -0
- package/dist/schemas/playbook.d.ts +270 -0
- package/dist/schemas/playbook.d.ts.map +1 -0
- package/dist/schemas/playbook.js +52 -0
- package/dist/schemas/playbook.js.map +1 -0
- package/dist/schemas/skills.d.ts +320 -0
- package/dist/schemas/skills.d.ts.map +1 -0
- package/dist/schemas/skills.js +84 -0
- package/dist/schemas/skills.js.map +1 -0
- package/dist/schemas/trace.d.ts +126 -0
- package/dist/schemas/trace.d.ts.map +1 -0
- package/dist/schemas/trace.js +70 -0
- package/dist/schemas/trace.js.map +1 -0
- package/dist/schemas/trust.d.ts +142 -0
- package/dist/schemas/trust.d.ts.map +1 -0
- package/dist/schemas/trust.js +30 -0
- package/dist/schemas/trust.js.map +1 -0
- package/dist/schemas/validators.d.ts +26 -0
- package/dist/schemas/validators.d.ts.map +1 -0
- package/dist/schemas/validators.js +79 -0
- package/dist/schemas/validators.js.map +1 -0
- package/dist/schemas/workspace.d.ts +725 -0
- package/dist/schemas/workspace.d.ts.map +1 -0
- package/dist/schemas/workspace.js +119 -0
- package/dist/schemas/workspace.js.map +1 -0
- package/dist/skills/constraints.d.ts +19 -0
- package/dist/skills/constraints.d.ts.map +1 -0
- package/dist/skills/constraints.js +91 -0
- package/dist/skills/constraints.js.map +1 -0
- package/dist/skills/generator.d.ts +13 -0
- package/dist/skills/generator.d.ts.map +1 -0
- package/dist/skills/generator.js +126 -0
- package/dist/skills/generator.js.map +1 -0
- package/dist/skills/graph.d.ts +42 -0
- package/dist/skills/graph.d.ts.map +1 -0
- package/dist/skills/graph.js +217 -0
- package/dist/skills/graph.js.map +1 -0
- package/dist/skills/index.d.ts +13 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +13 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/linter.d.ts +22 -0
- package/dist/skills/linter.d.ts.map +1 -0
- package/dist/skills/linter.js +201 -0
- package/dist/skills/linter.js.map +1 -0
- package/dist/skills/packer.d.ts +27 -0
- package/dist/skills/packer.d.ts.map +1 -0
- package/dist/skills/packer.js +72 -0
- package/dist/skills/packer.js.map +1 -0
- package/dist/skills/tracker.d.ts +27 -0
- package/dist/skills/tracker.d.ts.map +1 -0
- package/dist/skills/tracker.js +131 -0
- package/dist/skills/tracker.js.map +1 -0
- package/dist/skills/versioner.d.ts +19 -0
- package/dist/skills/versioner.d.ts.map +1 -0
- package/dist/skills/versioner.js +76 -0
- package/dist/skills/versioner.js.map +1 -0
- package/dist/tracing/index.d.ts +8 -0
- package/dist/tracing/index.d.ts.map +1 -0
- package/dist/tracing/index.js +8 -0
- package/dist/tracing/index.js.map +1 -0
- package/dist/tracing/reader.d.ts +18 -0
- package/dist/tracing/reader.d.ts.map +1 -0
- package/dist/tracing/reader.js +34 -0
- package/dist/tracing/reader.js.map +1 -0
- package/dist/tracing/tracer.d.ts +22 -0
- package/dist/tracing/tracer.d.ts.map +1 -0
- package/dist/tracing/tracer.js +105 -0
- package/dist/tracing/tracer.js.map +1 -0
- package/dist/trust/auditor.d.ts +35 -0
- package/dist/trust/auditor.d.ts.map +1 -0
- package/dist/trust/auditor.js +78 -0
- package/dist/trust/auditor.js.map +1 -0
- package/dist/trust/index.d.ts +8 -0
- package/dist/trust/index.d.ts.map +1 -0
- package/dist/trust/index.js +8 -0
- package/dist/trust/index.js.map +1 -0
- package/dist/trust/manager.d.ts +18 -0
- package/dist/trust/manager.d.ts.map +1 -0
- package/dist/trust/manager.js +60 -0
- package/dist/trust/manager.js.map +1 -0
- package/dist/utils/filesystem.d.ts +15 -0
- package/dist/utils/filesystem.d.ts.map +1 -0
- package/dist/utils/filesystem.js +53 -0
- package/dist/utils/filesystem.js.map +1 -0
- package/dist/utils/hash.d.ts +7 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/hash.js +15 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/yaml.d.ts +6 -0
- package/dist/utils/yaml.d.ts.map +1 -0
- package/dist/utils/yaml.js +14 -0
- package/dist/utils/yaml.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"judge.d.ts","sourceRoot":"","sources":["../../eval/judge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAmB,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE5F;;;;;;GAMG;AAEH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,WAAW,CAAC,CAAmB;gBAE3B,WAAW,CAAC,EAAE,gBAAgB;IAIpC,YAAY,CAChB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,cAAc,EAAE,CAAC;YAWd,SAAS;IAwBvB,OAAO,CAAC,sBAAsB;IA+C9B,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,eAAe;YAoCT,aAAa;IAyD3B;;OAEG;IACH,OAAO,CAAC,eAAe;CAsBxB"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export class Judge {
|
|
3
|
+
llmProvider;
|
|
4
|
+
constructor(llmProvider) {
|
|
5
|
+
this.llmProvider = llmProvider;
|
|
6
|
+
}
|
|
7
|
+
async judgeOutputs(outputs, judging, expected) {
|
|
8
|
+
const results = [];
|
|
9
|
+
for (const rule of judging.rules) {
|
|
10
|
+
const result = await this.applyRule(rule, outputs, expected);
|
|
11
|
+
results.push(result);
|
|
12
|
+
}
|
|
13
|
+
return results;
|
|
14
|
+
}
|
|
15
|
+
async applyRule(rule, outputs, expected) {
|
|
16
|
+
switch (rule.type) {
|
|
17
|
+
case 'deterministic':
|
|
18
|
+
return this.applyDeterministicRule(rule, outputs, expected);
|
|
19
|
+
case 'regex':
|
|
20
|
+
return this.applyRegexRule(rule, outputs);
|
|
21
|
+
case 'schema':
|
|
22
|
+
return this.applySchemaRule(rule, outputs);
|
|
23
|
+
case 'llm_judge':
|
|
24
|
+
return this.applyLLMJudge(rule, outputs);
|
|
25
|
+
default:
|
|
26
|
+
return {
|
|
27
|
+
rule_id: rule.rule_id,
|
|
28
|
+
passed: false,
|
|
29
|
+
score: 0,
|
|
30
|
+
reason: `Unknown rule type: ${rule.type}`,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
applyDeterministicRule(rule, outputs, expected) {
|
|
35
|
+
const outputStr = typeof outputs === 'string' ? outputs : JSON.stringify(outputs);
|
|
36
|
+
// Check required outputs are present
|
|
37
|
+
if (expected.required_outputs && expected.required_outputs.length > 0) {
|
|
38
|
+
const missing = expected.required_outputs.filter(field => {
|
|
39
|
+
if (typeof outputs === 'object' && outputs !== null) {
|
|
40
|
+
return !(field in outputs);
|
|
41
|
+
}
|
|
42
|
+
return !outputStr.includes(field);
|
|
43
|
+
});
|
|
44
|
+
if (missing.length > 0) {
|
|
45
|
+
return {
|
|
46
|
+
rule_id: rule.rule_id,
|
|
47
|
+
passed: false,
|
|
48
|
+
score: 0,
|
|
49
|
+
reason: `Missing required outputs: ${missing.join(', ')}`,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Check rubric thresholds if pattern specifies a rubric to check
|
|
54
|
+
if (rule.pattern && expected.thresholds) {
|
|
55
|
+
const rubricId = rule.pattern;
|
|
56
|
+
const threshold = expected.thresholds[rubricId];
|
|
57
|
+
if (threshold !== undefined) {
|
|
58
|
+
const present = outputStr.toLowerCase().includes(rubricId.toLowerCase());
|
|
59
|
+
return {
|
|
60
|
+
rule_id: rule.rule_id,
|
|
61
|
+
passed: present,
|
|
62
|
+
score: present ? 1.0 : 0.0,
|
|
63
|
+
reason: present ? undefined : `Rubric "${rubricId}" not satisfied in output`,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Default: check output is non-empty
|
|
68
|
+
const hasContent = outputStr.length > 0 && outputStr !== '{}' && outputStr !== 'null';
|
|
69
|
+
return {
|
|
70
|
+
rule_id: rule.rule_id,
|
|
71
|
+
passed: hasContent,
|
|
72
|
+
score: hasContent ? 1.0 : 0.0,
|
|
73
|
+
reason: hasContent ? undefined : 'Output is empty',
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
applyRegexRule(rule, outputs) {
|
|
77
|
+
if (!rule.pattern) {
|
|
78
|
+
return {
|
|
79
|
+
rule_id: rule.rule_id,
|
|
80
|
+
passed: false,
|
|
81
|
+
score: 0,
|
|
82
|
+
reason: 'No pattern specified',
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
const regex = new RegExp(rule.pattern);
|
|
86
|
+
const outputStr = typeof outputs === 'string' ? outputs : JSON.stringify(outputs);
|
|
87
|
+
const matches = regex.test(outputStr);
|
|
88
|
+
return {
|
|
89
|
+
rule_id: rule.rule_id,
|
|
90
|
+
passed: matches,
|
|
91
|
+
score: matches ? 1.0 : 0.0,
|
|
92
|
+
reason: matches ? undefined : `Pattern /${rule.pattern}/ did not match output`,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
applySchemaRule(rule, outputs) {
|
|
96
|
+
if (!rule.pattern) {
|
|
97
|
+
return {
|
|
98
|
+
rule_id: rule.rule_id,
|
|
99
|
+
passed: false,
|
|
100
|
+
score: 0,
|
|
101
|
+
reason: 'No schema pattern specified',
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
const schemaDesc = JSON.parse(rule.pattern);
|
|
106
|
+
const zodSchema = this.jsonToZodSchema(schemaDesc);
|
|
107
|
+
const result = zodSchema.safeParse(outputs);
|
|
108
|
+
if (result.success) {
|
|
109
|
+
return { rule_id: rule.rule_id, passed: true, score: 1.0 };
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
const issues = result.error.issues.map(i => `${i.path.join('.')}: ${i.message}`);
|
|
113
|
+
return {
|
|
114
|
+
rule_id: rule.rule_id,
|
|
115
|
+
passed: false,
|
|
116
|
+
score: 0,
|
|
117
|
+
reason: `Schema validation failed: ${issues.join('; ')}`,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
return {
|
|
123
|
+
rule_id: rule.rule_id,
|
|
124
|
+
passed: false,
|
|
125
|
+
score: 0,
|
|
126
|
+
reason: `Schema parse error: ${err.message}`,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
async applyLLMJudge(rule, outputs) {
|
|
131
|
+
if (!this.llmProvider) {
|
|
132
|
+
return {
|
|
133
|
+
rule_id: rule.rule_id,
|
|
134
|
+
passed: false,
|
|
135
|
+
score: 0,
|
|
136
|
+
reason: 'LLM judge requires an LLMJudgeProvider. Pass one to the Judge constructor.',
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
if (!rule.template) {
|
|
140
|
+
return {
|
|
141
|
+
rule_id: rule.rule_id,
|
|
142
|
+
passed: false,
|
|
143
|
+
score: 0,
|
|
144
|
+
reason: 'LLM judge rule requires a template',
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
const outputStr = typeof outputs === 'string' ? outputs : JSON.stringify(outputs, null, 2);
|
|
148
|
+
const prompt = rule.template.replace('{{output}}', outputStr);
|
|
149
|
+
try {
|
|
150
|
+
const response = await this.llmProvider.complete(prompt);
|
|
151
|
+
// Parse score from LLM response (expects "score: 0.X" or similar)
|
|
152
|
+
const scoreMatch = response.match(/(?:score|rating)[\s:]*([0-9]*\.?[0-9]+)/i);
|
|
153
|
+
const score = scoreMatch ? Math.min(1, Math.max(0, parseFloat(scoreMatch[1]))) : 0;
|
|
154
|
+
const passSignals = /\b(pass|passed|yes|good|correct|acceptable)\b/i;
|
|
155
|
+
const failSignals = /\b(fail|failed|no|bad|incorrect|unacceptable)\b/i;
|
|
156
|
+
let passed;
|
|
157
|
+
if (scoreMatch) {
|
|
158
|
+
passed = score >= 0.7;
|
|
159
|
+
}
|
|
160
|
+
else if (passSignals.test(response)) {
|
|
161
|
+
passed = !failSignals.test(response);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
passed = false;
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
rule_id: rule.rule_id,
|
|
168
|
+
passed,
|
|
169
|
+
score: scoreMatch ? score : (passed ? 0.8 : 0.2),
|
|
170
|
+
reason: response.slice(0, 500),
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
catch (err) {
|
|
174
|
+
return {
|
|
175
|
+
rule_id: rule.rule_id,
|
|
176
|
+
passed: false,
|
|
177
|
+
score: 0,
|
|
178
|
+
reason: `LLM judge error: ${err.message}`,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Convert a simple JSON schema description to a Zod schema for validation.
|
|
184
|
+
*/
|
|
185
|
+
jsonToZodSchema(desc) {
|
|
186
|
+
if (!desc || !desc.type)
|
|
187
|
+
return z.any();
|
|
188
|
+
switch (desc.type) {
|
|
189
|
+
case 'string': return z.string();
|
|
190
|
+
case 'number': return z.number();
|
|
191
|
+
case 'boolean': return z.boolean();
|
|
192
|
+
case 'array':
|
|
193
|
+
return z.array(desc.items ? this.jsonToZodSchema(desc.items) : z.any());
|
|
194
|
+
case 'object': {
|
|
195
|
+
if (!desc.properties)
|
|
196
|
+
return z.object({}).passthrough();
|
|
197
|
+
const shape = {};
|
|
198
|
+
const required = new Set(desc.required ?? []);
|
|
199
|
+
for (const [key, propDesc] of Object.entries(desc.properties)) {
|
|
200
|
+
const propSchema = this.jsonToZodSchema(propDesc);
|
|
201
|
+
shape[key] = required.has(key) ? propSchema : propSchema.optional();
|
|
202
|
+
}
|
|
203
|
+
return z.object(shape).passthrough();
|
|
204
|
+
}
|
|
205
|
+
default: return z.any();
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=judge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"judge.js","sourceRoot":"","sources":["../../eval/judge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TraceEvent } from '../schemas/trace.js';
|
|
2
|
+
import { ConstitutionV1 } from '../schemas/constitution.js';
|
|
3
|
+
/**
|
|
4
|
+
* Replay
|
|
5
|
+
*
|
|
6
|
+
* Replays traces against updated profiles for regression testing.
|
|
7
|
+
*/
|
|
8
|
+
export interface ReplayResult {
|
|
9
|
+
trace_path: string;
|
|
10
|
+
profile_version: string;
|
|
11
|
+
violations: Array<{
|
|
12
|
+
event: TraceEvent;
|
|
13
|
+
violation_type: string;
|
|
14
|
+
reason: string;
|
|
15
|
+
}>;
|
|
16
|
+
passed: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare class Replay {
|
|
19
|
+
private reader;
|
|
20
|
+
constructor();
|
|
21
|
+
replayTrace(tracePath: string, constitution: ConstitutionV1): ReplayResult;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=replay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../eval/replay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D;;;;GAIG;AAEH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,KAAK,CAAC;QAChB,KAAK,EAAE,UAAU,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAc;;IAM5B,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,GAAG,YAAY;CAsC3E"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { TraceReader } from '../tracing/reader.js';
|
|
2
|
+
export class Replay {
|
|
3
|
+
reader;
|
|
4
|
+
constructor() {
|
|
5
|
+
this.reader = new TraceReader();
|
|
6
|
+
}
|
|
7
|
+
replayTrace(tracePath, constitution) {
|
|
8
|
+
const events = this.reader.readTrace(tracePath);
|
|
9
|
+
const violations = [];
|
|
10
|
+
// Check each event against current constitution
|
|
11
|
+
for (const event of events) {
|
|
12
|
+
// Check for forbidden phrases in outputs
|
|
13
|
+
if (event.event_type === 'tool_result' && event.data?.output) {
|
|
14
|
+
const output = JSON.stringify(event.data.output).toLowerCase();
|
|
15
|
+
for (const phrase of constitution.tone.forbidden_phrases) {
|
|
16
|
+
if (output.includes(phrase.toLowerCase())) {
|
|
17
|
+
violations.push({
|
|
18
|
+
event,
|
|
19
|
+
violation_type: 'forbidden_phrase',
|
|
20
|
+
reason: `Output contains forbidden phrase: "${phrase}"`,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
// Check for principle violations
|
|
26
|
+
if (event.event_type === 'error' && event.principle_refs) {
|
|
27
|
+
violations.push({
|
|
28
|
+
event,
|
|
29
|
+
violation_type: 'principle_violation',
|
|
30
|
+
reason: `Error occurred while following principles: ${event.principle_refs.join(', ')}`,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
trace_path: tracePath,
|
|
36
|
+
profile_version: constitution.generator_version,
|
|
37
|
+
violations,
|
|
38
|
+
passed: violations.length === 0,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=replay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../../eval/replay.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAmBnD,MAAM,OAAO,MAAM;IACT,MAAM,CAAc;IAE5B;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,CAAC;IAED,WAAW,CAAC,SAAiB,EAAE,YAA4B;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,UAAU,GAA+B,EAAE,CAAC;QAElD,gDAAgD;QAChD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,yCAAyC;YACzC,IAAI,KAAK,CAAC,UAAU,KAAK,aAAa,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;gBAE/D,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACzD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;wBAC1C,UAAU,CAAC,IAAI,CAAC;4BACd,KAAK;4BACL,cAAc,EAAE,kBAAkB;4BAClC,MAAM,EAAE,sCAAsC,MAAM,GAAG;yBACxD,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,iCAAiC;YACjC,IAAI,KAAK,CAAC,UAAU,KAAK,OAAO,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACzD,UAAU,CAAC,IAAI,CAAC;oBACd,KAAK;oBACL,cAAc,EAAE,qBAAqB;oBACrC,MAAM,EAAE,8CAA8C,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBACxF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO;YACL,UAAU,EAAE,SAAS;YACrB,eAAe,EAAE,YAAY,CAAC,iBAAiB;YAC/C,UAAU;YACV,MAAM,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;SAChC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { EvalPackV1, EvalScenario } from '../schemas/evalpack.js';
|
|
2
|
+
import { JudgmentResult, LLMJudgeProvider } from './judge.js';
|
|
3
|
+
/**
|
|
4
|
+
* Eval Runner
|
|
5
|
+
*
|
|
6
|
+
* Runs evaluation packs and produces reports.
|
|
7
|
+
* Accepts an optional executor function for running scenarios against a real agent.
|
|
8
|
+
*/
|
|
9
|
+
export interface EvalResult {
|
|
10
|
+
scenario_id: string;
|
|
11
|
+
passed: boolean;
|
|
12
|
+
score: number;
|
|
13
|
+
judgments: JudgmentResult[];
|
|
14
|
+
outputs: any;
|
|
15
|
+
}
|
|
16
|
+
export interface EvalReport {
|
|
17
|
+
evalpack_id: string;
|
|
18
|
+
timestamp: string;
|
|
19
|
+
results: EvalResult[];
|
|
20
|
+
overall_score: number;
|
|
21
|
+
passed: boolean;
|
|
22
|
+
}
|
|
23
|
+
/** Function that executes a scenario and returns the agent's output */
|
|
24
|
+
export type ScenarioExecutor = (scenario: EvalScenario) => Promise<any>;
|
|
25
|
+
export declare class EvalRunner {
|
|
26
|
+
private judge;
|
|
27
|
+
private executor?;
|
|
28
|
+
constructor(opts?: {
|
|
29
|
+
llmProvider?: LLMJudgeProvider;
|
|
30
|
+
executor?: ScenarioExecutor;
|
|
31
|
+
});
|
|
32
|
+
runEvalPack(evalPack: EvalPackV1): Promise<EvalReport>;
|
|
33
|
+
private runScenario;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../eval/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAS,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAErE;;;;;GAKG;AAEH,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,OAAO,EAAE,GAAG,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,uEAAuE;AACvE,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,YAAY,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAExE,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAC,CAAmB;gBAExB,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,gBAAgB,CAAC;QAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAA;KAAE;IAK5E,WAAW,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YAsB9C,WAAW;CA+B1B"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Judge } from './judge.js';
|
|
2
|
+
export class EvalRunner {
|
|
3
|
+
judge;
|
|
4
|
+
executor;
|
|
5
|
+
constructor(opts) {
|
|
6
|
+
this.judge = new Judge(opts?.llmProvider);
|
|
7
|
+
this.executor = opts?.executor;
|
|
8
|
+
}
|
|
9
|
+
async runEvalPack(evalPack) {
|
|
10
|
+
const results = [];
|
|
11
|
+
for (const scenario of evalPack.scenarios) {
|
|
12
|
+
const result = await this.runScenario(scenario, evalPack);
|
|
13
|
+
results.push(result);
|
|
14
|
+
}
|
|
15
|
+
const overallScore = results.length > 0
|
|
16
|
+
? results.reduce((sum, r) => sum + r.score, 0) / results.length
|
|
17
|
+
: 0;
|
|
18
|
+
const passed = results.length > 0 && results.every(r => r.passed);
|
|
19
|
+
return {
|
|
20
|
+
evalpack_id: evalPack.id,
|
|
21
|
+
timestamp: new Date().toISOString(),
|
|
22
|
+
results,
|
|
23
|
+
overall_score: overallScore,
|
|
24
|
+
passed,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
async runScenario(scenario, evalPack) {
|
|
28
|
+
let outputs;
|
|
29
|
+
if (this.executor) {
|
|
30
|
+
// Use the provided executor to run the scenario against a real agent
|
|
31
|
+
outputs = await this.executor(scenario);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
// Without an executor, use the scenario's setup inputs as a passthrough.
|
|
35
|
+
// This allows judging static outputs (e.g., from trace replay or manual testing).
|
|
36
|
+
outputs = scenario.setup.inputs;
|
|
37
|
+
}
|
|
38
|
+
const judgments = await this.judge.judgeOutputs(outputs, evalPack.judging, scenario.expected);
|
|
39
|
+
const totalScore = judgments.length > 0
|
|
40
|
+
? judgments.reduce((sum, j) => sum + j.score, 0) / judgments.length
|
|
41
|
+
: 0;
|
|
42
|
+
const passed = judgments.length > 0 && judgments.every(j => j.passed);
|
|
43
|
+
return {
|
|
44
|
+
scenario_id: scenario.scenario_id,
|
|
45
|
+
passed,
|
|
46
|
+
score: totalScore,
|
|
47
|
+
judgments,
|
|
48
|
+
outputs,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../eval/runner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAoC,MAAM,YAAY,CAAC;AA4BrE,MAAM,OAAO,UAAU;IACb,KAAK,CAAQ;IACb,QAAQ,CAAoB;IAEpC,YAAY,IAAsE;QAChF,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAoB;QACpC,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;YACrC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM;YAC/D,CAAC,CAAC,CAAC,CAAC;QACN,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAElE,OAAO;YACL,WAAW,EAAE,QAAQ,CAAC,EAAE;YACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,OAAO;YACP,aAAa,EAAE,YAAY;YAC3B,MAAM;SACP,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,QAAsB,EAAE,QAAoB;QACpE,IAAI,OAAY,CAAC;QAEjB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,qEAAqE;YACrE,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,yEAAyE;YACzE,kFAAkF;YAClF,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QAClC,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAC7C,OAAO,EACP,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,QAAQ,CAClB,CAAC;QAEF,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;YACrC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM;YACnE,CAAC,CAAC,CAAC,CAAC;QACN,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAEtE,OAAO;YACL,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,MAAM;YACN,KAAK,EAAE,UAAU;YACjB,SAAS;YACT,OAAO;SACR,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AGENTS.md Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates an AGENTS.md from compiled TasteKit artifacts.
|
|
5
|
+
* AGENTS.md is the AAIF standard for agent operational config.
|
|
6
|
+
*/
|
|
7
|
+
import type { GeneratorContext } from './types.js';
|
|
8
|
+
export declare function generateAgentsMd(ctx: GeneratorContext): string;
|
|
9
|
+
//# sourceMappingURL=agents-md-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents-md-generator.d.ts","sourceRoot":"","sources":["../../generators/agents-md-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAwE9D"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AGENTS.md Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates an AGENTS.md from compiled TasteKit artifacts.
|
|
5
|
+
* AGENTS.md is the AAIF standard for agent operational config.
|
|
6
|
+
*/
|
|
7
|
+
export function generateAgentsMd(ctx) {
|
|
8
|
+
const lines = [];
|
|
9
|
+
lines.push('# AGENTS.md');
|
|
10
|
+
lines.push(`<!-- Generated by TasteKit v${ctx.generator_version}. Re-run \`tastekit compile\` to regenerate. -->`);
|
|
11
|
+
lines.push('');
|
|
12
|
+
if (ctx.constitution?.principles && ctx.constitution.principles.length > 0) {
|
|
13
|
+
lines.push('## Principles');
|
|
14
|
+
lines.push('');
|
|
15
|
+
for (const p of ctx.constitution.principles) {
|
|
16
|
+
lines.push(`- **${p.id}**: ${p.statement}`);
|
|
17
|
+
}
|
|
18
|
+
lines.push('');
|
|
19
|
+
}
|
|
20
|
+
if (ctx.guardrails?.permissions) {
|
|
21
|
+
lines.push('## Guardrails');
|
|
22
|
+
lines.push('');
|
|
23
|
+
for (const perm of ctx.guardrails.permissions) {
|
|
24
|
+
lines.push(`- ${perm.action}: ${perm.allowed ? 'allowed' : 'denied'}${perm.requires_approval ? ' (requires approval)' : ''}`);
|
|
25
|
+
}
|
|
26
|
+
lines.push('');
|
|
27
|
+
}
|
|
28
|
+
if (ctx.constitution?.tone) {
|
|
29
|
+
const tone = ctx.constitution.tone;
|
|
30
|
+
lines.push('## Tone & Voice');
|
|
31
|
+
lines.push('');
|
|
32
|
+
if (tone.voice_keywords && tone.voice_keywords.length > 0) {
|
|
33
|
+
lines.push(`Voice: ${tone.voice_keywords.join(', ')}`);
|
|
34
|
+
}
|
|
35
|
+
if (tone.forbidden_phrases && tone.forbidden_phrases.length > 0) {
|
|
36
|
+
lines.push('');
|
|
37
|
+
lines.push('Avoid:');
|
|
38
|
+
for (const phrase of tone.forbidden_phrases) {
|
|
39
|
+
lines.push(`- "${phrase}"`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
lines.push('');
|
|
43
|
+
}
|
|
44
|
+
if (ctx.constitution?.tradeoffs?.autonomy_level !== undefined) {
|
|
45
|
+
lines.push('## Behavior');
|
|
46
|
+
lines.push('');
|
|
47
|
+
lines.push(`Autonomy level: ${ctx.constitution.tradeoffs.autonomy_level}`);
|
|
48
|
+
lines.push('');
|
|
49
|
+
}
|
|
50
|
+
if (ctx.constitution?.taboos?.never_do && ctx.constitution.taboos.never_do.length > 0) {
|
|
51
|
+
lines.push('## Restrictions');
|
|
52
|
+
lines.push('');
|
|
53
|
+
for (const taboo of ctx.constitution.taboos.never_do) {
|
|
54
|
+
lines.push(`- ${taboo}`);
|
|
55
|
+
}
|
|
56
|
+
lines.push('');
|
|
57
|
+
}
|
|
58
|
+
if (ctx.skills?.skills && ctx.skills.skills.length > 0) {
|
|
59
|
+
lines.push('## Skills');
|
|
60
|
+
lines.push('');
|
|
61
|
+
for (const skill of ctx.skills.skills) {
|
|
62
|
+
lines.push(`- **${skill.name}** (\`${skill.skill_id}\`): ${skill.description}`);
|
|
63
|
+
}
|
|
64
|
+
lines.push('');
|
|
65
|
+
}
|
|
66
|
+
lines.push('---');
|
|
67
|
+
lines.push(`*Generated by TasteKit v${ctx.generator_version} on ${new Date().toISOString().split('T')[0]}*`);
|
|
68
|
+
lines.push('');
|
|
69
|
+
return lines.join('\n');
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=agents-md-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents-md-generator.js","sourceRoot":"","sources":["../../generators/agents-md-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-context.d.ts","sourceRoot":"","sources":["../../../generators/blocks/domain-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAoBlD,eAAO,MAAM,kBAAkB,EAAE,cAQhC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const DOMAIN_GUIDANCE = {
|
|
2
|
+
'development-agent': [
|
|
3
|
+
'This agent specializes in software development.',
|
|
4
|
+
'- Review code against engineering standards before suggesting changes',
|
|
5
|
+
'- Prioritize correctness and security over cleverness',
|
|
6
|
+
'- Follow existing codebase patterns and conventions',
|
|
7
|
+
'- Write tests for new functionality',
|
|
8
|
+
].join('\n'),
|
|
9
|
+
'general-agent': [
|
|
10
|
+
'This agent specializes in general-purpose execution across mixed workflows.',
|
|
11
|
+
'- Synthesize context before acting when the task is ambiguous',
|
|
12
|
+
'- Prefer explicit plans and checkpoints for multi-step work',
|
|
13
|
+
'- Balance research, execution, and reporting based on user goals',
|
|
14
|
+
'- Escalate when uncertainty or risk exceeds the configured autonomy level',
|
|
15
|
+
].join('\n'),
|
|
16
|
+
};
|
|
17
|
+
export const domainContextBlock = (ctx) => {
|
|
18
|
+
if (!ctx.domain_id)
|
|
19
|
+
return null;
|
|
20
|
+
const guidance = DOMAIN_GUIDANCE[ctx.domain_id];
|
|
21
|
+
if (!guidance)
|
|
22
|
+
return null;
|
|
23
|
+
const lines = ['## Domain Context', '', guidance];
|
|
24
|
+
return lines.join('\n');
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=domain-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-context.js","sourceRoot":"","sources":["../../../generators/blocks/domain-context.ts"],"names":[],"mappings":"AAMA,MAAM,eAAe,GAA2B;IAC9C,mBAAmB,EAAE;QACnB,iDAAiD;QACjD,uEAAuE;QACvE,uDAAuD;QACvD,qDAAqD;QACrD,qCAAqC;KACtC,CAAC,IAAI,CAAC,IAAI,CAAC;IAEZ,eAAe,EAAE;QACf,6EAA6E;QAC7E,+DAA+D;QAC/D,6DAA6D;QAC7D,kEAAkE;QAClE,2EAA2E;KAC5E,CAAC,IAAI,CAAC,IAAI,CAAC;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAmB,CAAC,GAAG,EAAE,EAAE;IACxD,IAAI,CAAC,GAAG,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAEhC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,KAAK,GAAa,CAAC,mBAAmB,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drift-awareness.d.ts","sourceRoot":"","sources":["../../../generators/blocks/drift-awareness.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,mBAAmB,EAAE,cA4BjC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export const driftAwarenessBlock = (ctx) => {
|
|
2
|
+
const driftVerb = ctx.vocabulary?.drift_verb ?? 'Drift';
|
|
3
|
+
const lines = [
|
|
4
|
+
`## ${driftVerb} Awareness`,
|
|
5
|
+
'',
|
|
6
|
+
'Monitor your own behavior against the principles above. When you notice:',
|
|
7
|
+
'',
|
|
8
|
+
'- **Repeated user corrections** → log as observation (category: friction)',
|
|
9
|
+
'- **Contradictions between principles and actions** → log as tension',
|
|
10
|
+
'- **Unexpected outcomes** → log as observation (category: surprise)',
|
|
11
|
+
'- **Process bottlenecks** → log as observation (category: process)',
|
|
12
|
+
'',
|
|
13
|
+
'Review triggers: 10+ observations or 5+ unresolved tensions → suggest a drift review.',
|
|
14
|
+
];
|
|
15
|
+
// Evidence policy from constitution
|
|
16
|
+
if (ctx.constitution?.evidence_policy) {
|
|
17
|
+
const ep = ctx.constitution.evidence_policy;
|
|
18
|
+
if (ep.require_citations_for.length > 0) {
|
|
19
|
+
lines.push('');
|
|
20
|
+
lines.push(`**Citation required for:** ${ep.require_citations_for.join(', ')}`);
|
|
21
|
+
}
|
|
22
|
+
if (ep.uncertainty_language_rules.length > 0) {
|
|
23
|
+
lines.push(`**Uncertainty language:** ${ep.uncertainty_language_rules.join('. ')}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return lines.join('\n');
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=drift-awareness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drift-awareness.js","sourceRoot":"","sources":["../../../generators/blocks/drift-awareness.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,mBAAmB,GAAmB,CAAC,GAAG,EAAE,EAAE;IACzD,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,EAAE,UAAU,IAAI,OAAO,CAAC;IACxD,MAAM,KAAK,GAAa;QACtB,MAAM,SAAS,YAAY;QAC3B,EAAE;QACF,0EAA0E;QAC1E,EAAE;QACF,2EAA2E;QAC3E,sEAAsE;QACtE,qEAAqE;QACrE,oEAAoE;QACpE,EAAE;QACF,uFAAuF;KACxF,CAAC;IAEF,oCAAoC;IACpC,IAAI,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,eAAe,CAAC;QAC5C,IAAI,EAAE,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,8BAA8B,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,EAAE,CAAC,0BAA0B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Evaluation Criteria Block — Self-evaluation instructions.
|
|
3
|
+
* Included only when an evalpack exists.
|
|
4
|
+
*/
|
|
5
|
+
import type { GeneratorBlock } from '../types.js';
|
|
6
|
+
export declare const evaluationCriteriaBlock: GeneratorBlock;
|
|
7
|
+
//# sourceMappingURL=evaluation-criteria.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluation-criteria.d.ts","sourceRoot":"","sources":["../../../generators/blocks/evaluation-criteria.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,uBAAuB,EAAE,cAiBrC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export const evaluationCriteriaBlock = (ctx) => {
|
|
2
|
+
if (!ctx.has_evalpack)
|
|
3
|
+
return null;
|
|
4
|
+
const lines = [
|
|
5
|
+
'## Evaluation Criteria',
|
|
6
|
+
'',
|
|
7
|
+
'An evaluation pack is configured for this workspace. After completing tasks, self-evaluate:',
|
|
8
|
+
'',
|
|
9
|
+
'1. **Principle alignment** — Does the output follow the principles above?',
|
|
10
|
+
'2. **Quality gates** — Does the output pass the skill-specific quality checks?',
|
|
11
|
+
'3. **Tone consistency** — Does the output match the voice and formatting rules?',
|
|
12
|
+
'4. **Guardrail compliance** — Were all approval rules and rate limits respected?',
|
|
13
|
+
'',
|
|
14
|
+
'Run `tastekit eval` to execute the full evaluation suite against recent traces.',
|
|
15
|
+
];
|
|
16
|
+
return lines.join('\n');
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=evaluation-criteria.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluation-criteria.js","sourceRoot":"","sources":["../../../generators/blocks/evaluation-criteria.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,uBAAuB,GAAmB,CAAC,GAAG,EAAE,EAAE;IAC7D,IAAI,CAAC,GAAG,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,KAAK,GAAa;QACtB,wBAAwB;QACxB,EAAE;QACF,6FAA6F;QAC7F,EAAE;QACF,2EAA2E;QAC3E,gFAAgF;QAChF,iFAAiF;QACjF,kFAAkF;QAClF,EAAE;QACF,iFAAiF;KAClF,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrails.d.ts","sourceRoot":"","sources":["../../../generators/blocks/guardrails.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,eAAe,EAAE,cA8C7B,CAAC"}
|