@tangle-network/starter-foundry 0.7.2 → 0.13.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/LICENSE-APACHE +201 -0
- package/README.md +63 -174
- package/corpus/template-family-mapping.json +0 -1
- package/dist/cli.js +206 -85
- package/dist/cli.js.map +1 -1
- package/dist/eval/diagnoser.d.ts +2 -2
- package/dist/eval/diagnoser.js +28 -7
- package/dist/eval/diagnoser.js.map +1 -1
- package/dist/eval/propose.js +1 -1
- package/dist/eval/propose.js.map +1 -1
- package/dist/eval/replay.d.ts +8 -8
- package/dist/eval/replay.js +44 -21
- package/dist/eval/replay.js.map +1 -1
- package/dist/eval/scaffold-bridge.d.ts +6 -6
- package/dist/eval/scaffold-bridge.js +103 -30
- package/dist/eval/scaffold-bridge.js.map +1 -1
- package/dist/lib/agent-bundle.d.ts +278 -0
- package/dist/lib/agent-bundle.js +411 -0
- package/dist/lib/agent-bundle.js.map +1 -0
- package/dist/lib/agent-context.js +4 -4
- package/dist/lib/agent-context.js.map +1 -1
- package/dist/lib/agent-runners.d.ts +2 -2
- package/dist/lib/agent-runners.js +5 -3
- package/dist/lib/agent-runners.js.map +1 -1
- package/dist/lib/augment.js.map +1 -1
- package/dist/lib/brand/first-turn-flows.js +5 -3
- package/dist/lib/brand/first-turn-flows.js.map +1 -1
- package/dist/lib/brand/i18n.d.ts +2 -2
- package/dist/lib/brand/i18n.js +37 -7
- package/dist/lib/brand/i18n.js.map +1 -1
- package/dist/lib/brand/index.js +43 -8
- package/dist/lib/brand/index.js.map +1 -1
- package/dist/lib/brand/media-manifest.d.ts +2 -2
- package/dist/lib/brand/media-manifest.js +20 -4
- package/dist/lib/brand/media-manifest.js.map +1 -1
- package/dist/lib/brand/user-segments.js +49 -16
- package/dist/lib/brand/user-segments.js.map +1 -1
- package/dist/lib/brand/voice.js.map +1 -1
- package/dist/lib/bridge.d.ts +2 -2
- package/dist/lib/bridge.js +18 -14
- package/dist/lib/bridge.js.map +1 -1
- package/dist/lib/build-plan.d.ts +1 -1
- package/dist/lib/build-plan.js +66 -15
- package/dist/lib/build-plan.js.map +1 -1
- package/dist/lib/buildout-traces.d.ts +3 -3
- package/dist/lib/buildout-traces.js +4 -4
- package/dist/lib/buildout-traces.js.map +1 -1
- package/dist/lib/canary.js.map +1 -1
- package/dist/lib/capability-inferrer.d.ts +2 -2
- package/dist/lib/capability-inferrer.js +1 -1
- package/dist/lib/capability-inferrer.js.map +1 -1
- package/dist/lib/catalog.d.ts +2 -2
- package/dist/lib/cli/export-runs.d.ts +13 -0
- package/dist/lib/cli/export-runs.js +57 -0
- package/dist/lib/cli/export-runs.js.map +1 -0
- package/dist/lib/cli/gate.d.ts +11 -0
- package/dist/lib/cli/gate.js +60 -0
- package/dist/lib/cli/gate.js.map +1 -0
- package/dist/lib/cli/profiles.d.ts +12 -0
- package/dist/lib/cli/profiles.js +63 -0
- package/dist/lib/cli/profiles.js.map +1 -0
- package/dist/lib/cli/refresh-snapshots.d.ts +15 -0
- package/dist/lib/cli/refresh-snapshots.js +40 -0
- package/dist/lib/cli/refresh-snapshots.js.map +1 -0
- package/dist/lib/compose-prompt.d.ts +1 -1
- package/dist/lib/compose-prompt.js +1 -1
- package/dist/lib/compose-prompt.js.map +1 -1
- package/dist/lib/compose.d.ts +1 -1
- package/dist/lib/compose.js +212 -33
- package/dist/lib/compose.js.map +1 -1
- package/dist/lib/context-pack.d.ts +1 -1
- package/dist/lib/context-pack.js +2 -1
- package/dist/lib/context-pack.js.map +1 -1
- package/dist/lib/cost.js +2 -1
- package/dist/lib/cost.js.map +1 -1
- package/dist/lib/domain-packs.d.ts +31 -0
- package/dist/lib/domain-packs.js +261 -0
- package/dist/lib/domain-packs.js.map +1 -0
- package/dist/lib/eval/ab.js.map +1 -0
- package/dist/lib/{audit.d.ts → eval/audit.d.ts} +1 -1
- package/dist/lib/{audit.js → eval/audit.js} +2 -2
- package/dist/lib/eval/audit.js.map +1 -0
- package/dist/lib/{batch-export.js → eval/batch-export.js} +38 -9
- package/dist/lib/eval/batch-export.js.map +1 -0
- package/dist/lib/{benchmark.d.ts → eval/benchmark.d.ts} +1 -1
- package/dist/lib/{benchmark.js → eval/benchmark.js} +4 -4
- package/dist/lib/eval/benchmark.js.map +1 -0
- package/dist/lib/eval/emit-run-record.d.ts +38 -0
- package/dist/lib/eval/emit-run-record.js +37 -0
- package/dist/lib/eval/emit-run-record.js.map +1 -0
- package/dist/lib/{prove.d.ts → eval/prove.d.ts} +2 -2
- package/dist/lib/{prove.js → eval/prove.js} +2 -2
- package/dist/lib/eval/prove.js.map +1 -0
- package/dist/lib/{reproducibility.d.ts → eval/reproducibility.d.ts} +3 -3
- package/dist/lib/eval/reproducibility.js.map +1 -0
- package/dist/lib/{sbom.d.ts → eval/sbom.d.ts} +2 -2
- package/dist/lib/{sbom.js → eval/sbom.js} +5 -2
- package/dist/lib/eval/sbom.js.map +1 -0
- package/dist/lib/fatten.d.ts +2 -2
- package/dist/lib/fatten.js +38 -10
- package/dist/lib/fatten.js.map +1 -1
- package/dist/lib/fs.js +11 -5
- package/dist/lib/fs.js.map +1 -1
- package/dist/lib/held-out-gate.d.ts +88 -0
- package/dist/lib/held-out-gate.js +177 -0
- package/dist/lib/held-out-gate.js.map +1 -0
- package/dist/lib/index.d.ts +24 -13
- package/dist/lib/index.js +17 -8
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/industries.js +2 -2
- package/dist/lib/industries.js.map +1 -1
- package/dist/lib/industry-flows.js +3 -5
- package/dist/lib/industry-flows.js.map +1 -1
- package/dist/lib/keywords.js +31 -21
- package/dist/lib/keywords.js.map +1 -1
- package/dist/lib/llm.js +22 -21
- package/dist/lib/llm.js.map +1 -1
- package/dist/lib/planner/contracts.js +45 -13
- package/dist/lib/planner/contracts.js.map +1 -1
- package/dist/lib/planner/detectors.js +31 -9
- package/dist/lib/planner/detectors.js.map +1 -1
- package/dist/lib/planner/domain-pack-signals.d.ts +6 -0
- package/dist/lib/planner/domain-pack-signals.js +36 -0
- package/dist/lib/planner/domain-pack-signals.js.map +1 -0
- package/dist/lib/planner/implicit-caps.js +12 -2
- package/dist/lib/planner/implicit-caps.js.map +1 -1
- package/dist/lib/planner/partner-first.d.ts +0 -14
- package/dist/lib/planner/partner-first.js +14 -14
- package/dist/lib/planner/partner-first.js.map +1 -1
- package/dist/lib/planner/projects.d.ts +5 -1
- package/dist/lib/planner/projects.js +460 -113
- package/dist/lib/planner/projects.js.map +1 -1
- package/dist/lib/planner/signals.d.ts +9 -0
- package/dist/lib/planner/signals.js +195 -27
- package/dist/lib/planner/signals.js.map +1 -1
- package/dist/lib/product-brief.js +4 -1
- package/dist/lib/product-brief.js.map +1 -1
- package/dist/lib/profile-loader.d.ts +56 -0
- package/dist/lib/profile-loader.js +144 -0
- package/dist/lib/profile-loader.js.map +1 -0
- package/dist/lib/promoter-gates.js +86 -22
- package/dist/lib/promoter-gates.js.map +1 -1
- package/dist/lib/prompt-e2e.d.ts +3 -3
- package/dist/lib/prompt-e2e.js +1 -1
- package/dist/lib/prompt-e2e.js.map +1 -1
- package/dist/lib/prompt-planner.js +428 -88
- package/dist/lib/prompt-planner.js.map +1 -1
- package/dist/lib/prompt-rewriter.d.ts +2 -1
- package/dist/lib/prompt-rewriter.js +6 -3
- package/dist/lib/prompt-rewriter.js.map +1 -1
- package/dist/lib/registry-mirror.d.ts +2 -2
- package/dist/lib/registry-mirror.js +3 -1
- package/dist/lib/registry-mirror.js.map +1 -1
- package/dist/lib/registry.d.ts +6 -6
- package/dist/lib/registry.js +193 -12
- package/dist/lib/registry.js.map +1 -1
- package/dist/lib/release.js +7 -4
- package/dist/lib/release.js.map +1 -1
- package/dist/lib/reviewer-route.js +33 -19
- package/dist/lib/reviewer-route.js.map +1 -1
- package/dist/lib/run-canaries.d.ts +102 -0
- package/dist/lib/run-canaries.js +305 -0
- package/dist/lib/run-canaries.js.map +1 -0
- package/dist/lib/run-record-store.d.ts +21 -0
- package/dist/lib/run-record-store.js +61 -0
- package/dist/lib/run-record-store.js.map +1 -0
- package/dist/lib/run-record.d.ts +105 -0
- package/dist/lib/run-record.js +189 -0
- package/dist/lib/run-record.js.map +1 -0
- package/dist/lib/safety/license-check.js +18 -10
- package/dist/lib/safety/license-check.js.map +1 -1
- package/dist/lib/safety/secret-scan.js +15 -1
- package/dist/lib/safety/secret-scan.js.map +1 -1
- package/dist/lib/selection.d.ts +15 -0
- package/dist/lib/selection.js +138 -17
- package/dist/lib/selection.js.map +1 -1
- package/dist/lib/semantic-router.d.ts +5 -1
- package/dist/lib/semantic-router.js +7 -3
- package/dist/lib/semantic-router.js.map +1 -1
- package/dist/lib/snapshot-resolver.d.ts +94 -0
- package/dist/lib/snapshot-resolver.js +228 -0
- package/dist/lib/snapshot-resolver.js.map +1 -0
- package/dist/lib/synthetic/index.js +4 -2
- package/dist/lib/synthetic/index.js.map +1 -1
- package/dist/lib/telemetry/stream.js +3 -1
- package/dist/lib/telemetry/stream.js.map +1 -1
- package/dist/lib/telemetry.d.ts +2 -1
- package/dist/lib/telemetry.js +8 -2
- package/dist/lib/telemetry.js.map +1 -1
- package/dist/lib/template-quality.d.ts +2 -2
- package/dist/lib/template-quality.js +6 -4
- package/dist/lib/template-quality.js.map +1 -1
- package/dist/lib/validate-plan.js +4 -1
- package/dist/lib/validate-plan.js.map +1 -1
- package/dist/lib/validate.d.ts +5 -1
- package/dist/lib/validate.js +340 -4
- package/dist/lib/validate.js.map +1 -1
- package/dist/lib/vb-outcomes.d.ts +2 -2
- package/dist/lib/vb-outcomes.js.map +1 -1
- package/dist/lib/version-history.js.map +1 -1
- package/dist/lib/visual-regression.d.ts +2 -2
- package/dist/lib/visual-regression.js.map +1 -1
- package/dist/lib/workspace-presets.d.ts +125 -0
- package/dist/lib/workspace-presets.js +364 -0
- package/dist/lib/workspace-presets.js.map +1 -0
- package/dist/lib/workspace.d.ts +6 -6
- package/dist/lib/workspace.js +8 -7
- package/dist/lib/workspace.js.map +1 -1
- package/dist/training/capability_proposer/propose.d.ts +2 -3
- package/dist/training/capability_proposer/propose.js +26 -15
- package/dist/training/capability_proposer/propose.js.map +1 -1
- package/dist/training/family_proposer/propose.d.ts +2 -3
- package/dist/training/family_proposer/propose.js +275 -42
- package/dist/training/family_proposer/propose.js.map +1 -1
- package/dist/training/routing/train.d.ts +2 -2
- package/dist/training/routing/train.js +9 -6
- package/dist/training/routing/train.js.map +1 -1
- package/dist/training/template_v1/audit.js +5 -3
- package/dist/training/template_v1/audit.js.map +1 -1
- package/dist/training/template_v1/correctness.js +10 -11
- package/dist/training/template_v1/correctness.js.map +1 -1
- package/dist/training/template_v1/harvest.d.ts +6 -6
- package/dist/training/template_v1/harvest.js +1 -3
- package/dist/training/template_v1/harvest.js.map +1 -1
- package/dist/training/template_v1/judge.d.ts +1 -1
- package/dist/training/template_v1/judge.js +7 -4
- package/dist/training/template_v1/judge.js.map +1 -1
- package/dist/training/template_v1/multi-propose.d.ts +3 -3
- package/dist/training/template_v1/multi-propose.js +3 -2
- package/dist/training/template_v1/multi-propose.js.map +1 -1
- package/dist/training/template_v1/run.js +34 -17
- package/dist/training/template_v1/run.js.map +1 -1
- package/dist/training/template_v1/synthesize.js +9 -3
- package/dist/training/template_v1/synthesize.js.map +1 -1
- package/dist/training/variant_b/brief-loader.js +32 -12
- package/dist/training/variant_b/brief-loader.js.map +1 -1
- package/dist/training/variant_b/flow.d.ts +2 -2
- package/dist/training/variant_b/flow.js +2 -2
- package/dist/training/variant_b/flow.js.map +1 -1
- package/dist/training/variant_b/generate.js +8 -4
- package/dist/training/variant_b/generate.js.map +1 -1
- package/dist/training/variant_b/judge.d.ts +2 -3
- package/dist/training/variant_b/judge.js.map +1 -1
- package/dist/training/variant_b/nodes/collect.d.ts +2 -2
- package/dist/training/variant_b/nodes/collect.js.map +1 -1
- package/dist/training/variant_b/nodes/generate.js +12 -3
- package/dist/training/variant_b/nodes/generate.js.map +1 -1
- package/dist/training/variant_b/nodes/judge.js.map +1 -1
- package/dist/training/variant_b/nodes/promote.d.ts +2 -2
- package/dist/training/variant_b/nodes/promote.js.map +1 -1
- package/dist/training/variant_b/nodes/rank.js.map +1 -1
- package/dist/training/variant_b/nodes/train.js +13 -7
- package/dist/training/variant_b/nodes/train.js.map +1 -1
- package/dist/training/variant_b/run-flow.js +1 -1
- package/dist/training/variant_b/run-flow.js.map +1 -1
- package/dist/training/variant_b/train.js +1 -1
- package/dist/training/variant_b/train.js.map +1 -1
- package/dist/types/compose.d.ts +126 -0
- package/dist/types/compose.js +5 -0
- package/dist/types/compose.js.map +1 -0
- package/dist/types/eval.d.ts +89 -0
- package/dist/types/eval.js +5 -0
- package/dist/types/eval.js.map +1 -0
- package/dist/types/ids.d.ts +46 -0
- package/dist/types/ids.js +87 -0
- package/dist/types/ids.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.js +10 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/planner.d.ts +64 -0
- package/dist/types/planner.js +4 -0
- package/dist/types/planner.js.map +1 -0
- package/dist/types/registry-schemas.generated.d.ts +96 -1
- package/dist/types/registry-schemas.generated.js +2 -2
- package/dist/types/registry-schemas.generated.js.map +1 -1
- package/dist/types/registry.d.ts +243 -0
- package/dist/types/registry.js +4 -0
- package/dist/types/registry.js.map +1 -0
- package/dist/types.d.ts +1 -444
- package/dist/types.js +6 -1
- package/dist/types.js.map +1 -1
- package/package.json +107 -51
- package/registry/_schemas/agent.schema.json +101 -0
- package/registry/_schemas/family.schema.json +62 -2
- package/registry/_schemas/layer.schema.json +70 -0
- package/registry/families/agent-debug-ui-ts/files/.env.example +13 -0
- package/registry/families/agent-debug-ui-ts/files/README.md +78 -0
- package/registry/families/agent-debug-ui-ts/files/index.html +12 -0
- package/registry/families/agent-debug-ui-ts/files/package.json +28 -0
- package/registry/families/agent-debug-ui-ts/files/src/App.tsx +224 -0
- package/registry/families/agent-debug-ui-ts/files/src/components/ChatPair.tsx +69 -0
- package/registry/families/agent-debug-ui-ts/files/src/components/EventInspector.tsx +36 -0
- package/registry/families/agent-debug-ui-ts/files/src/components/EventStream.tsx +122 -0
- package/registry/families/agent-debug-ui-ts/files/src/components/ReplayScrubber.tsx +59 -0
- package/registry/families/agent-debug-ui-ts/files/src/components/ToolCallTimeline.tsx +136 -0
- package/registry/families/agent-debug-ui-ts/files/src/lib/event-types.ts +115 -0
- package/registry/families/agent-debug-ui-ts/files/src/lib/sandbox-stream.ts +133 -0
- package/registry/families/agent-debug-ui-ts/files/src/main.tsx +13 -0
- package/registry/families/agent-debug-ui-ts/files/src/styles.css +382 -0
- package/registry/families/agent-debug-ui-ts/files/tsconfig.json +25 -0
- package/registry/families/agent-debug-ui-ts/files/tsconfig.node.json +11 -0
- package/registry/families/agent-debug-ui-ts/files/vite.config.ts +15 -0
- package/registry/families/agent-debug-ui-ts/manifest.json +91 -0
- package/registry/families/agent-eval-harness-py/files/.github/workflows/eval.yml +70 -0
- package/registry/families/agent-eval-harness-py/files/AGENTS.md +135 -0
- package/registry/families/agent-eval-harness-py/files/README.md +145 -0
- package/registry/families/agent-eval-harness-py/files/agent.json +30 -0
- package/registry/families/agent-eval-harness-py/files/pyproject.toml +48 -0
- package/registry/families/agent-eval-harness-py/files/requirements.txt +7 -0
- package/registry/families/agent-eval-harness-py/files/scenarios/__init__.py +1 -0
- package/registry/families/agent-eval-harness-py/files/scenarios/example.py +50 -0
- package/registry/families/agent-eval-harness-py/files/src/eval/__init__.py +57 -0
- package/registry/families/agent-eval-harness-py/files/src/eval/__main__.py +10 -0
- package/registry/families/agent-eval-harness-py/files/src/eval/cli.py +281 -0
- package/registry/families/agent-eval-harness-py/files/src/eval/judges/__init__.py +27 -0
- package/registry/families/agent-eval-harness-py/files/src/eval/judges/example_judge.py +52 -0
- package/registry/families/agent-eval-harness-py/files/src/eval/judges/rubric.py +299 -0
- package/registry/families/agent-eval-harness-py/files/src/eval/regression.py +299 -0
- package/registry/families/agent-eval-harness-py/files/src/eval/runner.py +320 -0
- package/registry/families/agent-eval-harness-py/files/src/eval/sandbox_runner.py +194 -0
- package/registry/families/agent-eval-harness-py/files/src/eval/scorecard.py +192 -0
- package/registry/families/agent-eval-harness-py/files/tests/__init__.py +0 -0
- package/registry/families/agent-eval-harness-py/files/tests/test_regression.py +266 -0
- package/registry/families/agent-eval-harness-py/files/tests/test_runner.py +291 -0
- package/registry/families/agent-eval-harness-py/files/tests/test_sandbox.py +258 -0
- package/registry/families/agent-eval-harness-py/manifest.json +209 -0
- package/registry/families/agent-eval-harness-ts/files/.github/workflows/eval.yml +55 -0
- package/registry/families/agent-eval-harness-ts/files/AGENTS.md +114 -0
- package/registry/families/agent-eval-harness-ts/files/README.md +138 -0
- package/registry/families/agent-eval-harness-ts/files/agent.json +32 -0
- package/registry/families/agent-eval-harness-ts/files/judges/example.judge.ts +23 -0
- package/registry/families/agent-eval-harness-ts/files/package.json +24 -0
- package/registry/families/agent-eval-harness-ts/files/scenarios/.gitkeep +0 -0
- package/registry/families/agent-eval-harness-ts/files/scenarios/example.scenario.ts +34 -0
- package/registry/families/agent-eval-harness-ts/files/src/eval/campaign.ts +137 -0
- package/registry/families/agent-eval-harness-ts/files/src/eval/cli.ts +65 -0
- package/registry/families/agent-eval-harness-ts/files/src/eval/runner.ts +384 -0
- package/registry/families/agent-eval-harness-ts/files/src/eval/scorecard.ts +89 -0
- package/registry/families/agent-eval-harness-ts/files/tests/fixtures/scenarios-bad/missing-thesis.scenario.ts +14 -0
- package/registry/families/agent-eval-harness-ts/files/tests/fixtures/scenarios-good/example.scenario.ts +15 -0
- package/registry/families/agent-eval-harness-ts/files/tests/scenario-loader-import.test.ts +63 -0
- package/registry/families/agent-eval-harness-ts/files/tsconfig.json +24 -0
- package/registry/families/agent-eval-harness-ts/manifest.json +123 -0
- package/registry/families/agent-eval-ui-ts/files/.env.example +12 -0
- package/registry/families/agent-eval-ui-ts/files/README.md +66 -0
- package/registry/families/agent-eval-ui-ts/files/index.html +12 -0
- package/registry/families/agent-eval-ui-ts/files/package.json +30 -0
- package/registry/families/agent-eval-ui-ts/files/src/App.tsx +148 -0
- package/registry/families/agent-eval-ui-ts/files/src/components/RunDiff.tsx +91 -0
- package/registry/families/agent-eval-ui-ts/files/src/components/ScoreRadar.tsx +78 -0
- package/registry/families/agent-eval-ui-ts/files/src/components/TraceDetail.tsx +168 -0
- package/registry/families/agent-eval-ui-ts/files/src/components/TraceList.tsx +98 -0
- package/registry/families/agent-eval-ui-ts/files/src/lib/scoring.ts +124 -0
- package/registry/families/agent-eval-ui-ts/files/src/lib/traces.ts +301 -0
- package/registry/families/agent-eval-ui-ts/files/src/main.tsx +16 -0
- package/registry/families/agent-eval-ui-ts/files/src/styles.css +140 -0
- package/registry/families/agent-eval-ui-ts/files/tsconfig.json +24 -0
- package/registry/families/agent-eval-ui-ts/files/vite.config.ts +64 -0
- package/registry/families/agent-eval-ui-ts/manifest.json +101 -0
- package/registry/families/agent-marketplace-ui-ts/files/.env.example +19 -0
- package/registry/families/agent-marketplace-ui-ts/files/README.md +54 -0
- package/registry/families/agent-marketplace-ui-ts/files/next.config.js +18 -0
- package/registry/families/agent-marketplace-ui-ts/files/package.json +31 -0
- package/registry/families/agent-marketplace-ui-ts/files/src/app/bundles/[id]/page.tsx +78 -0
- package/registry/families/agent-marketplace-ui-ts/files/src/app/deploy/[id]/page.tsx +28 -0
- package/registry/families/agent-marketplace-ui-ts/files/src/app/layout.tsx +35 -0
- package/registry/families/agent-marketplace-ui-ts/files/src/app/page-client.tsx +26 -0
- package/registry/families/agent-marketplace-ui-ts/files/src/app/page.tsx +39 -0
- package/registry/families/agent-marketplace-ui-ts/files/src/components/AgentsMdPreview.tsx +132 -0
- package/registry/families/agent-marketplace-ui-ts/files/src/components/BundleCard.tsx +34 -0
- package/registry/families/agent-marketplace-ui-ts/files/src/components/BundleGrid.tsx +23 -0
- package/registry/families/agent-marketplace-ui-ts/files/src/components/DeployFlow.tsx +263 -0
- package/registry/families/agent-marketplace-ui-ts/files/src/components/SearchFilters.tsx +61 -0
- package/registry/families/agent-marketplace-ui-ts/files/src/lib/catalog.ts +208 -0
- package/registry/families/agent-marketplace-ui-ts/files/src/lib/search.ts +54 -0
- package/registry/families/agent-marketplace-ui-ts/files/src/styles/globals.css +244 -0
- package/registry/families/agent-marketplace-ui-ts/files/tsconfig.json +27 -0
- package/registry/families/agent-marketplace-ui-ts/manifest.json +104 -0
- package/registry/families/agent-research-harness-py/files/.github/workflows/research.yml +45 -0
- package/registry/families/agent-research-harness-py/files/AGENTS.md +87 -0
- package/registry/families/agent-research-harness-py/files/README.md +63 -0
- package/registry/families/agent-research-harness-py/files/agent.json +45 -0
- package/registry/families/agent-research-harness-py/files/hypotheses/README.md +45 -0
- package/registry/families/agent-research-harness-py/files/hypotheses/example.json +29 -0
- package/registry/families/agent-research-harness-py/files/hypotheses/queue.json +1 -0
- package/registry/families/agent-research-harness-py/files/pyproject.toml +33 -0
- package/registry/families/agent-research-harness-py/files/requirements.txt +6 -0
- package/registry/families/agent-research-harness-py/files/src/research/__init__.py +37 -0
- package/registry/families/agent-research-harness-py/files/src/research/__main__.py +6 -0
- package/registry/families/agent-research-harness-py/files/src/research/cli.py +146 -0
- package/registry/families/agent-research-harness-py/files/src/research/proposer.py +140 -0
- package/registry/families/agent-research-harness-py/files/src/research/runner.py +230 -0
- package/registry/families/agent-research-harness-py/files/src/research/sandbox_runner.py +180 -0
- package/registry/families/agent-research-harness-py/files/src/research/screener.py +55 -0
- package/registry/families/agent-research-harness-py/files/src/research/types.py +128 -0
- package/registry/families/agent-research-harness-py/files/src/research/validator.py +305 -0
- package/registry/families/agent-research-harness-py/files/tests/__init__.py +0 -0
- package/registry/families/agent-research-harness-py/files/tests/test_sandbox.py +181 -0
- package/registry/families/agent-research-harness-py/files/tests/test_screener.py +74 -0
- package/registry/families/agent-research-harness-py/files/tests/test_validator.py +250 -0
- package/registry/families/agent-research-harness-py/manifest.json +199 -0
- package/registry/families/agent-research-harness-ts/files/.github/workflows/research.yml +65 -0
- package/registry/families/agent-research-harness-ts/files/AGENTS.md +121 -0
- package/registry/families/agent-research-harness-ts/files/README.md +155 -0
- package/registry/families/agent-research-harness-ts/files/agent.json +31 -0
- package/registry/families/agent-research-harness-ts/files/hypotheses/README.md +79 -0
- package/registry/families/agent-research-harness-ts/files/hypotheses/example.json +18 -0
- package/registry/families/agent-research-harness-ts/files/hypotheses/queue.json +3 -0
- package/registry/families/agent-research-harness-ts/files/package.json +35 -0
- package/registry/families/agent-research-harness-ts/files/src/research/cli.ts +160 -0
- package/registry/families/agent-research-harness-ts/files/src/research/proposer.ts +215 -0
- package/registry/families/agent-research-harness-ts/files/src/research/runner.ts +253 -0
- package/registry/families/agent-research-harness-ts/files/src/research/screener.ts +105 -0
- package/registry/families/agent-research-harness-ts/files/src/research/types.ts +143 -0
- package/registry/families/agent-research-harness-ts/files/src/research/validator.ts +310 -0
- package/registry/families/agent-research-harness-ts/files/tests/research-runner.test.ts +422 -0
- package/registry/families/agent-research-harness-ts/files/tests/screener.test.ts +93 -0
- package/registry/families/agent-research-harness-ts/files/tests/validator.test.ts +149 -0
- package/registry/families/agent-research-harness-ts/files/tsconfig.json +19 -0
- package/registry/families/agent-research-harness-ts/manifest.json +108 -0
- package/registry/families/agent-runtime-account-executive-ts/files/AGENTS.md +66 -0
- package/registry/families/agent-runtime-account-executive-ts/files/README.md +25 -0
- package/registry/families/agent-runtime-account-executive-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-account-executive-ts/files/agent.json +40 -0
- package/registry/families/agent-runtime-account-executive-ts/files/methodology/deal-progression.md +40 -0
- package/registry/families/agent-runtime-account-executive-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-account-executive-ts/files/methodology/opportunity-scoring.md +60 -0
- package/registry/families/agent-runtime-account-executive-ts/files/methodology/pipeline-review.md +35 -0
- package/registry/families/agent-runtime-account-executive-ts/manifest.json +151 -0
- package/registry/families/agent-runtime-architect-ts/files/AGENTS.md +66 -0
- package/registry/families/agent-runtime-architect-ts/files/README.md +29 -0
- package/registry/families/agent-runtime-architect-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-architect-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-architect-ts/files/methodology/architecture-decision-record.md +157 -0
- package/registry/families/agent-runtime-architect-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-architect-ts/files/methodology/system-design-canvas.md +33 -0
- package/registry/families/agent-runtime-architect-ts/files/methodology/trade-off-analysis.md +146 -0
- package/registry/families/agent-runtime-architect-ts/manifest.json +146 -0
- package/registry/families/agent-runtime-auditor-ts/files/AGENTS.md +99 -0
- package/registry/families/agent-runtime-auditor-ts/files/README.md +28 -0
- package/registry/families/agent-runtime-auditor-ts/files/agent.json +36 -0
- package/registry/families/agent-runtime-auditor-ts/files/methodology/control-walkthrough.md +80 -0
- package/registry/families/agent-runtime-auditor-ts/files/methodology/deficiency-write-up.md +101 -0
- package/registry/families/agent-runtime-auditor-ts/files/methodology/evidence-request-list.md +84 -0
- package/registry/families/agent-runtime-auditor-ts/files/methodology/index.json +22 -0
- package/registry/families/agent-runtime-auditor-ts/manifest.json +96 -0
- package/registry/families/agent-runtime-biology-research-ts/files/AGENTS.md +85 -0
- package/registry/families/agent-runtime-biology-research-ts/files/README.md +46 -0
- package/registry/families/agent-runtime-biology-research-ts/files/methodology/experimental-design.md +134 -0
- package/registry/families/agent-runtime-biology-research-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-biology-research-ts/files/methodology/literature-search.md +105 -0
- package/registry/families/agent-runtime-biology-research-ts/files/methodology/sequence-analysis.md +109 -0
- package/registry/families/agent-runtime-biology-research-ts/manifest.json +89 -0
- package/registry/families/agent-runtime-business-partner-ts/files/AGENTS.md +129 -0
- package/registry/families/agent-runtime-business-partner-ts/files/README.md +94 -0
- package/registry/families/agent-runtime-business-partner-ts/files/TOOLS.md +32 -0
- package/registry/families/agent-runtime-business-partner-ts/files/agent.json +40 -0
- package/registry/families/agent-runtime-business-partner-ts/files/methodology/decision-journal.md +149 -0
- package/registry/families/agent-runtime-business-partner-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-business-partner-ts/files/methodology/okr-design.md +130 -0
- package/registry/families/agent-runtime-business-partner-ts/files/methodology/weekly-review-protocol.md +103 -0
- package/registry/families/agent-runtime-business-partner-ts/manifest.json +194 -0
- package/registry/families/agent-runtime-career-coach-ts/files/AGENTS.md +62 -0
- package/registry/families/agent-runtime-career-coach-ts/files/README.md +39 -0
- package/registry/families/agent-runtime-career-coach-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-career-coach-ts/files/agent.json +40 -0
- package/registry/families/agent-runtime-career-coach-ts/files/methodology/decision-framework.md +36 -0
- package/registry/families/agent-runtime-career-coach-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-career-coach-ts/files/methodology/market-positioning.md +38 -0
- package/registry/families/agent-runtime-career-coach-ts/files/methodology/self-assessment.md +37 -0
- package/registry/families/agent-runtime-career-coach-ts/manifest.json +142 -0
- package/registry/families/agent-runtime-chef-ts/files/AGENTS.md +75 -0
- package/registry/families/agent-runtime-chef-ts/files/README.md +35 -0
- package/registry/families/agent-runtime-chef-ts/files/TOOLS.md +30 -0
- package/registry/families/agent-runtime-chef-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-chef-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-chef-ts/files/methodology/meal-planning.md +90 -0
- package/registry/families/agent-runtime-chef-ts/files/methodology/recipe-development.md +96 -0
- package/registry/families/agent-runtime-chef-ts/files/methodology/technique-guidance.md +90 -0
- package/registry/families/agent-runtime-chef-ts/manifest.json +148 -0
- package/registry/families/agent-runtime-chemistry-research-ts/files/AGENTS.md +80 -0
- package/registry/families/agent-runtime-chemistry-research-ts/files/README.md +28 -0
- package/registry/families/agent-runtime-chemistry-research-ts/files/TOOLS.md +32 -0
- package/registry/families/agent-runtime-chemistry-research-ts/files/agent.json +39 -0
- package/registry/families/agent-runtime-chemistry-research-ts/files/methodology/compound-data-extraction.md +104 -0
- package/registry/families/agent-runtime-chemistry-research-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-chemistry-research-ts/files/methodology/literature-search.md +101 -0
- package/registry/families/agent-runtime-chemistry-research-ts/files/methodology/reaction-planning.md +125 -0
- package/registry/families/agent-runtime-chemistry-research-ts/manifest.json +156 -0
- package/registry/families/agent-runtime-cmo-advisor-ts/files/AGENTS.md +86 -0
- package/registry/families/agent-runtime-cmo-advisor-ts/files/README.md +52 -0
- package/registry/families/agent-runtime-cmo-advisor-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-cmo-advisor-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-cmo-advisor-ts/files/methodology/channel-experiment-design.md +101 -0
- package/registry/families/agent-runtime-cmo-advisor-ts/files/methodology/icp-deep-dive.md +99 -0
- package/registry/families/agent-runtime-cmo-advisor-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-cmo-advisor-ts/files/methodology/positioning-canvas.md +88 -0
- package/registry/families/agent-runtime-cmo-advisor-ts/manifest.json +184 -0
- package/registry/families/agent-runtime-college-counselor-ts/files/AGENTS.md +66 -0
- package/registry/families/agent-runtime-college-counselor-ts/files/README.md +17 -0
- package/registry/families/agent-runtime-college-counselor-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-college-counselor-ts/files/agent.json +39 -0
- package/registry/families/agent-runtime-college-counselor-ts/files/methodology/application-strategy.md +33 -0
- package/registry/families/agent-runtime-college-counselor-ts/files/methodology/essay-coaching.md +146 -0
- package/registry/families/agent-runtime-college-counselor-ts/files/methodology/financial-aid-navigation.md +153 -0
- package/registry/families/agent-runtime-college-counselor-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-college-counselor-ts/manifest.json +144 -0
- package/registry/families/agent-runtime-cs-research-ts/files/AGENTS.md +62 -0
- package/registry/families/agent-runtime-cs-research-ts/files/README.md +35 -0
- package/registry/families/agent-runtime-cs-research-ts/files/TOOLS.md +33 -0
- package/registry/families/agent-runtime-cs-research-ts/files/agent.json +39 -0
- package/registry/families/agent-runtime-cs-research-ts/files/methodology/citation-graph-exploration.md +36 -0
- package/registry/families/agent-runtime-cs-research-ts/files/methodology/index.json +32 -0
- package/registry/families/agent-runtime-cs-research-ts/files/methodology/literature-survey.md +40 -0
- package/registry/families/agent-runtime-cs-research-ts/files/methodology/paper-summarization.md +120 -0
- package/registry/families/agent-runtime-cs-research-ts/files/methodology/research-question-formulation.md +132 -0
- package/registry/families/agent-runtime-cs-research-ts/manifest.json +157 -0
- package/registry/families/agent-runtime-cs-tutor-ts/files/AGENTS.md +58 -0
- package/registry/families/agent-runtime-cs-tutor-ts/files/README.md +29 -0
- package/registry/families/agent-runtime-cs-tutor-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-cs-tutor-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-cs-tutor-ts/files/methodology/debug-code.md +33 -0
- package/registry/families/agent-runtime-cs-tutor-ts/files/methodology/explain-concept.md +34 -0
- package/registry/families/agent-runtime-cs-tutor-ts/files/methodology/generate-exercise.md +44 -0
- package/registry/families/agent-runtime-cs-tutor-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-cs-tutor-ts/manifest.json +145 -0
- package/registry/families/agent-runtime-customer-success-ts/files/AGENTS.md +64 -0
- package/registry/families/agent-runtime-customer-success-ts/files/README.md +32 -0
- package/registry/families/agent-runtime-customer-success-ts/files/TOOLS.md +24 -0
- package/registry/families/agent-runtime-customer-success-ts/files/agent.json +40 -0
- package/registry/families/agent-runtime-customer-success-ts/files/methodology/escalation-triage.md +44 -0
- package/registry/families/agent-runtime-customer-success-ts/files/methodology/health-score.md +41 -0
- package/registry/families/agent-runtime-customer-success-ts/files/methodology/index.json +32 -0
- package/registry/families/agent-runtime-customer-success-ts/files/methodology/qbr-framework.md +39 -0
- package/registry/families/agent-runtime-customer-success-ts/files/methodology/retention-playbook.md +39 -0
- package/registry/families/agent-runtime-customer-success-ts/manifest.json +156 -0
- package/registry/families/agent-runtime-data-analyst-ts/files/AGENTS.md +62 -0
- package/registry/families/agent-runtime-data-analyst-ts/files/README.md +34 -0
- package/registry/families/agent-runtime-data-analyst-ts/files/TOOLS.md +24 -0
- package/registry/families/agent-runtime-data-analyst-ts/files/agent.json +40 -0
- package/registry/families/agent-runtime-data-analyst-ts/files/methodology/ad-hoc-query.md +39 -0
- package/registry/families/agent-runtime-data-analyst-ts/files/methodology/dashboard-design.md +127 -0
- package/registry/families/agent-runtime-data-analyst-ts/files/methodology/data-quality-audit.md +138 -0
- package/registry/families/agent-runtime-data-analyst-ts/files/methodology/exploratory-analysis.md +33 -0
- package/registry/families/agent-runtime-data-analyst-ts/files/methodology/index.json +32 -0
- package/registry/families/agent-runtime-data-analyst-ts/manifest.json +154 -0
- package/registry/families/agent-runtime-designer-ts/files/AGENTS.md +60 -0
- package/registry/families/agent-runtime-designer-ts/files/README.md +25 -0
- package/registry/families/agent-runtime-designer-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-designer-ts/files/agent.json +39 -0
- package/registry/families/agent-runtime-designer-ts/files/methodology/design-critique.md +140 -0
- package/registry/families/agent-runtime-designer-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-designer-ts/files/methodology/prototyping-guide.md +32 -0
- package/registry/families/agent-runtime-designer-ts/files/methodology/ux-strategy.md +39 -0
- package/registry/families/agent-runtime-designer-ts/manifest.json +143 -0
- package/registry/families/agent-runtime-devops-ts/files/AGENTS.md +66 -0
- package/registry/families/agent-runtime-devops-ts/files/README.md +30 -0
- package/registry/families/agent-runtime-devops-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-devops-ts/files/agent.json +40 -0
- package/registry/families/agent-runtime-devops-ts/files/methodology/iac-review.md +39 -0
- package/registry/families/agent-runtime-devops-ts/files/methodology/incident-response-protocol.md +36 -0
- package/registry/families/agent-runtime-devops-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-devops-ts/files/methodology/runbook-automation.md +32 -0
- package/registry/families/agent-runtime-devops-ts/manifest.json +149 -0
- package/registry/families/agent-runtime-doctor-ts/files/AGENTS.md +70 -0
- package/registry/families/agent-runtime-doctor-ts/files/README.md +33 -0
- package/registry/families/agent-runtime-doctor-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-doctor-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-doctor-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-doctor-ts/files/methodology/medical-reference.md +42 -0
- package/registry/families/agent-runtime-doctor-ts/files/methodology/symptom-explainer.md +34 -0
- package/registry/families/agent-runtime-doctor-ts/files/methodology/treatment-overview.md +36 -0
- package/registry/families/agent-runtime-doctor-ts/manifest.json +143 -0
- package/registry/families/agent-runtime-engineering-manager-ts/files/AGENTS.md +64 -0
- package/registry/families/agent-runtime-engineering-manager-ts/files/README.md +18 -0
- package/registry/families/agent-runtime-engineering-manager-ts/files/TOOLS.md +24 -0
- package/registry/families/agent-runtime-engineering-manager-ts/files/agent.json +41 -0
- package/registry/families/agent-runtime-engineering-manager-ts/files/methodology/incident-postmortem.md +124 -0
- package/registry/families/agent-runtime-engineering-manager-ts/files/methodology/index.json +32 -0
- package/registry/families/agent-runtime-engineering-manager-ts/files/methodology/one-on-one-cadence.md +109 -0
- package/registry/families/agent-runtime-engineering-manager-ts/files/methodology/sprint-planning.md +122 -0
- package/registry/families/agent-runtime-engineering-manager-ts/files/methodology/tech-debt-triage.md +113 -0
- package/registry/families/agent-runtime-engineering-manager-ts/manifest.json +154 -0
- package/registry/families/agent-runtime-essay-coach-ts/files/AGENTS.md +62 -0
- package/registry/families/agent-runtime-essay-coach-ts/files/README.md +24 -0
- package/registry/families/agent-runtime-essay-coach-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-essay-coach-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-essay-coach-ts/files/methodology/argument-structuring.md +30 -0
- package/registry/families/agent-runtime-essay-coach-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-essay-coach-ts/files/methodology/revision-cycle.md +32 -0
- package/registry/families/agent-runtime-essay-coach-ts/files/methodology/thesis-development.md +38 -0
- package/registry/families/agent-runtime-essay-coach-ts/manifest.json +145 -0
- package/registry/families/agent-runtime-financial-analyst-ts/files/AGENTS.md +67 -0
- package/registry/families/agent-runtime-financial-analyst-ts/files/README.md +19 -0
- package/registry/families/agent-runtime-financial-analyst-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-financial-analyst-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-financial-analyst-ts/files/methodology/equity-research.md +145 -0
- package/registry/families/agent-runtime-financial-analyst-ts/files/methodology/financial-modeling.md +132 -0
- package/registry/families/agent-runtime-financial-analyst-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-financial-analyst-ts/files/methodology/investment-memo.md +146 -0
- package/registry/families/agent-runtime-financial-analyst-ts/manifest.json +145 -0
- package/registry/families/agent-runtime-fitness-coach-ts/files/AGENTS.md +141 -0
- package/registry/families/agent-runtime-fitness-coach-ts/files/README.md +76 -0
- package/registry/families/agent-runtime-fitness-coach-ts/files/TOOLS.md +30 -0
- package/registry/families/agent-runtime-fitness-coach-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-fitness-coach-ts/files/methodology/deload-prompt.md +106 -0
- package/registry/families/agent-runtime-fitness-coach-ts/files/methodology/form-check-protocol.md +136 -0
- package/registry/families/agent-runtime-fitness-coach-ts/files/methodology/index.json +26 -0
- package/registry/families/agent-runtime-fitness-coach-ts/files/methodology/weekly-program.md +115 -0
- package/registry/families/agent-runtime-fitness-coach-ts/manifest.json +193 -0
- package/registry/families/agent-runtime-friend-ts/files/AGENTS.md +82 -0
- package/registry/families/agent-runtime-friend-ts/files/README.md +32 -0
- package/registry/families/agent-runtime-friend-ts/files/agent.json +35 -0
- package/registry/families/agent-runtime-friend-ts/files/methodology/check-in-protocol.md +54 -0
- package/registry/families/agent-runtime-friend-ts/files/methodology/index.json +22 -0
- package/registry/families/agent-runtime-friend-ts/files/methodology/rapport-warm.md +50 -0
- package/registry/families/agent-runtime-friend-ts/files/methodology/topic-pivot.md +53 -0
- package/registry/families/agent-runtime-friend-ts/manifest.json +92 -0
- package/registry/families/agent-runtime-game-designer-ts/files/AGENTS.md +56 -0
- package/registry/families/agent-runtime-game-designer-ts/files/README.md +32 -0
- package/registry/families/agent-runtime-game-designer-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-game-designer-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-game-designer-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-game-designer-ts/files/methodology/mechanic-design.md +110 -0
- package/registry/families/agent-runtime-game-designer-ts/files/methodology/narrative-system.md +135 -0
- package/registry/families/agent-runtime-game-designer-ts/files/methodology/player-loop.md +143 -0
- package/registry/families/agent-runtime-game-designer-ts/manifest.json +150 -0
- package/registry/families/agent-runtime-grant-writer-ts/files/AGENTS.md +60 -0
- package/registry/families/agent-runtime-grant-writer-ts/files/README.md +17 -0
- package/registry/families/agent-runtime-grant-writer-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-grant-writer-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-grant-writer-ts/files/methodology/deadline-tracker.md +140 -0
- package/registry/families/agent-runtime-grant-writer-ts/files/methodology/grant-proposal-canvas.md +37 -0
- package/registry/families/agent-runtime-grant-writer-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-grant-writer-ts/files/methodology/reporting-template.md +30 -0
- package/registry/families/agent-runtime-grant-writer-ts/manifest.json +148 -0
- package/registry/families/agent-runtime-history-tutor-ts/files/AGENTS.md +59 -0
- package/registry/families/agent-runtime-history-tutor-ts/files/README.md +22 -0
- package/registry/families/agent-runtime-history-tutor-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-history-tutor-ts/files/agent.json +39 -0
- package/registry/families/agent-runtime-history-tutor-ts/files/methodology/historiographic-debate.md +123 -0
- package/registry/families/agent-runtime-history-tutor-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-history-tutor-ts/files/methodology/source-analysis.md +117 -0
- package/registry/families/agent-runtime-history-tutor-ts/files/methodology/timeline-reasoning.md +134 -0
- package/registry/families/agent-runtime-history-tutor-ts/manifest.json +145 -0
- package/registry/families/agent-runtime-illustrator-ts/files/AGENTS.md +64 -0
- package/registry/families/agent-runtime-illustrator-ts/files/README.md +29 -0
- package/registry/families/agent-runtime-illustrator-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-illustrator-ts/files/agent.json +39 -0
- package/registry/families/agent-runtime-illustrator-ts/files/methodology/art-direction-canvas.md +31 -0
- package/registry/families/agent-runtime-illustrator-ts/files/methodology/composition-guide.md +36 -0
- package/registry/families/agent-runtime-illustrator-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-illustrator-ts/files/methodology/style-development.md +39 -0
- package/registry/families/agent-runtime-illustrator-ts/manifest.json +146 -0
- package/registry/families/agent-runtime-language-tutor-ts/files/AGENTS.md +111 -0
- package/registry/families/agent-runtime-language-tutor-ts/files/README.md +101 -0
- package/registry/families/agent-runtime-language-tutor-ts/files/TOOLS.md +30 -0
- package/registry/families/agent-runtime-language-tutor-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-language-tutor-ts/files/methodology/daily-conversation-prompt.md +103 -0
- package/registry/families/agent-runtime-language-tutor-ts/files/methodology/index.json +27 -0
- package/registry/families/agent-runtime-language-tutor-ts/files/methodology/shadowing-protocol.md +102 -0
- package/registry/families/agent-runtime-language-tutor-ts/files/methodology/vocabulary-drill.md +121 -0
- package/registry/families/agent-runtime-language-tutor-ts/manifest.json +187 -0
- package/registry/families/agent-runtime-legal-counsel-ts/files/AGENTS.md +114 -0
- package/registry/families/agent-runtime-legal-counsel-ts/files/README.md +77 -0
- package/registry/families/agent-runtime-legal-counsel-ts/files/TOOLS.md +24 -0
- package/registry/families/agent-runtime-legal-counsel-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-legal-counsel-ts/files/methodology/contract-redline-protocol.md +111 -0
- package/registry/families/agent-runtime-legal-counsel-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-legal-counsel-ts/files/methodology/msa-checklist.md +190 -0
- package/registry/families/agent-runtime-legal-counsel-ts/files/methodology/nda-checklist.md +122 -0
- package/registry/families/agent-runtime-legal-counsel-ts/manifest.json +178 -0
- package/registry/families/agent-runtime-math-research-ts/files/AGENTS.md +67 -0
- package/registry/families/agent-runtime-math-research-ts/files/README.md +18 -0
- package/registry/families/agent-runtime-math-research-ts/files/TOOLS.md +32 -0
- package/registry/families/agent-runtime-math-research-ts/files/agent.json +39 -0
- package/registry/families/agent-runtime-math-research-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-math-research-ts/files/methodology/literature-review.md +106 -0
- package/registry/families/agent-runtime-math-research-ts/files/methodology/mathematical-reasoning.md +126 -0
- package/registry/families/agent-runtime-math-research-ts/files/methodology/proof-verification.md +140 -0
- package/registry/families/agent-runtime-math-research-ts/manifest.json +150 -0
- package/registry/families/agent-runtime-math-tutor-ts/files/AGENTS.md +70 -0
- package/registry/families/agent-runtime-math-tutor-ts/files/README.md +37 -0
- package/registry/families/agent-runtime-math-tutor-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-math-tutor-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-math-tutor-ts/files/methodology/concept-explanation.md +67 -0
- package/registry/families/agent-runtime-math-tutor-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-math-tutor-ts/files/methodology/problem-generation.md +47 -0
- package/registry/families/agent-runtime-math-tutor-ts/files/methodology/step-by-step-solution.md +58 -0
- package/registry/families/agent-runtime-math-tutor-ts/manifest.json +143 -0
- package/registry/families/agent-runtime-mediator-ts/files/AGENTS.md +75 -0
- package/registry/families/agent-runtime-mediator-ts/files/README.md +30 -0
- package/registry/families/agent-runtime-mediator-ts/files/TOOLS.md +30 -0
- package/registry/families/agent-runtime-mediator-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-mediator-ts/files/methodology/agreement-drafting.md +36 -0
- package/registry/families/agent-runtime-mediator-ts/files/methodology/de-escalation-protocol.md +41 -0
- package/registry/families/agent-runtime-mediator-ts/files/methodology/index.json +26 -0
- package/registry/families/agent-runtime-mediator-ts/files/methodology/structured-dialogue.md +42 -0
- package/registry/families/agent-runtime-mediator-ts/manifest.json +147 -0
- package/registry/families/agent-runtime-meditation-coach-ts/files/AGENTS.md +74 -0
- package/registry/families/agent-runtime-meditation-coach-ts/files/README.md +26 -0
- package/registry/families/agent-runtime-meditation-coach-ts/files/TOOLS.md +30 -0
- package/registry/families/agent-runtime-meditation-coach-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-meditation-coach-ts/files/methodology/guided-session.md +33 -0
- package/registry/families/agent-runtime-meditation-coach-ts/files/methodology/index.json +26 -0
- package/registry/families/agent-runtime-meditation-coach-ts/files/methodology/mindfulness-check.md +139 -0
- package/registry/families/agent-runtime-meditation-coach-ts/files/methodology/technique-cue.md +141 -0
- package/registry/families/agent-runtime-meditation-coach-ts/manifest.json +148 -0
- package/registry/families/agent-runtime-ml-research-ts/files/AGENTS.md +71 -0
- package/registry/families/agent-runtime-ml-research-ts/files/README.md +19 -0
- package/registry/families/agent-runtime-ml-research-ts/files/TOOLS.md +32 -0
- package/registry/families/agent-runtime-ml-research-ts/files/agent.json +39 -0
- package/registry/families/agent-runtime-ml-research-ts/files/methodology/experiment-design.md +141 -0
- package/registry/families/agent-runtime-ml-research-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-ml-research-ts/files/methodology/literature-review.md +115 -0
- package/registry/families/agent-runtime-ml-research-ts/files/methodology/result-interpretation.md +141 -0
- package/registry/families/agent-runtime-ml-research-ts/manifest.json +149 -0
- package/registry/families/agent-runtime-music-producer-ts/files/AGENTS.md +55 -0
- package/registry/families/agent-runtime-music-producer-ts/files/README.md +60 -0
- package/registry/families/agent-runtime-music-producer-ts/files/TOOLS.md +40 -0
- package/registry/families/agent-runtime-music-producer-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-music-producer-ts/files/methodology/arrangement-review.md +83 -0
- package/registry/families/agent-runtime-music-producer-ts/files/methodology/index.json +29 -0
- package/registry/families/agent-runtime-music-producer-ts/files/methodology/listening-prompt.md +78 -0
- package/registry/families/agent-runtime-music-producer-ts/files/methodology/mix-feedback.md +74 -0
- package/registry/families/agent-runtime-music-producer-ts/manifest.json +160 -0
- package/registry/families/agent-runtime-novelist-coach-ts/files/AGENTS.md +109 -0
- package/registry/families/agent-runtime-novelist-coach-ts/files/README.md +76 -0
- package/registry/families/agent-runtime-novelist-coach-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-novelist-coach-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-novelist-coach-ts/files/methodology/beat-sheet-review.md +136 -0
- package/registry/families/agent-runtime-novelist-coach-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-novelist-coach-ts/files/methodology/scene-card-protocol.md +104 -0
- package/registry/families/agent-runtime-novelist-coach-ts/files/methodology/voice-audit.md +123 -0
- package/registry/families/agent-runtime-novelist-coach-ts/manifest.json +194 -0
- package/registry/families/agent-runtime-nutritionist-ts/files/AGENTS.md +73 -0
- package/registry/families/agent-runtime-nutritionist-ts/files/README.md +33 -0
- package/registry/families/agent-runtime-nutritionist-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-nutritionist-ts/files/agent.json +40 -0
- package/registry/families/agent-runtime-nutritionist-ts/files/methodology/dietary-assessment.md +153 -0
- package/registry/families/agent-runtime-nutritionist-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-nutritionist-ts/files/methodology/macro-targets.md +171 -0
- package/registry/families/agent-runtime-nutritionist-ts/files/methodology/meal-plan.md +33 -0
- package/registry/families/agent-runtime-nutritionist-ts/manifest.json +145 -0
- package/registry/families/agent-runtime-pentester-ts/files/AGENTS.md +66 -0
- package/registry/families/agent-runtime-pentester-ts/files/README.md +24 -0
- package/registry/families/agent-runtime-pentester-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-pentester-ts/files/agent.json +39 -0
- package/registry/families/agent-runtime-pentester-ts/files/methodology/ctf-coaching.md +34 -0
- package/registry/families/agent-runtime-pentester-ts/files/methodology/exploit-analysis.md +31 -0
- package/registry/families/agent-runtime-pentester-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-pentester-ts/files/methodology/vulnerability-research.md +35 -0
- package/registry/families/agent-runtime-pentester-ts/manifest.json +152 -0
- package/registry/families/agent-runtime-pharmacist-ts/files/AGENTS.md +77 -0
- package/registry/families/agent-runtime-pharmacist-ts/files/README.md +26 -0
- package/registry/families/agent-runtime-pharmacist-ts/files/TOOLS.md +24 -0
- package/registry/families/agent-runtime-pharmacist-ts/files/agent.json +39 -0
- package/registry/families/agent-runtime-pharmacist-ts/files/methodology/adverse-effect-monitoring.md +155 -0
- package/registry/families/agent-runtime-pharmacist-ts/files/methodology/dosing-guidance.md +41 -0
- package/registry/families/agent-runtime-pharmacist-ts/files/methodology/drug-information.md +47 -0
- package/registry/families/agent-runtime-pharmacist-ts/files/methodology/drug-interaction-check.md +35 -0
- package/registry/families/agent-runtime-pharmacist-ts/files/methodology/index.json +32 -0
- package/registry/families/agent-runtime-pharmacist-ts/manifest.json +156 -0
- package/registry/families/agent-runtime-photographer-ts/files/AGENTS.md +55 -0
- package/registry/families/agent-runtime-photographer-ts/files/README.md +35 -0
- package/registry/families/agent-runtime-photographer-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-photographer-ts/files/agent.json +40 -0
- package/registry/families/agent-runtime-photographer-ts/files/methodology/composition-canvas.md +36 -0
- package/registry/families/agent-runtime-photographer-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-photographer-ts/files/methodology/lighting-setup-design.md +34 -0
- package/registry/families/agent-runtime-photographer-ts/files/methodology/post-production-workflow.md +32 -0
- package/registry/families/agent-runtime-photographer-ts/manifest.json +148 -0
- package/registry/families/agent-runtime-physics-research-ts/files/AGENTS.md +69 -0
- package/registry/families/agent-runtime-physics-research-ts/files/README.md +26 -0
- package/registry/families/agent-runtime-physics-research-ts/files/agent.json +36 -0
- package/registry/families/agent-runtime-physics-research-ts/files/methodology/citation-analysis.md +110 -0
- package/registry/families/agent-runtime-physics-research-ts/files/methodology/experimental-design.md +129 -0
- package/registry/families/agent-runtime-physics-research-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-physics-research-ts/files/methodology/literature-search.md +113 -0
- package/registry/families/agent-runtime-physics-research-ts/files/templates/citation-analysis.md +37 -0
- package/registry/families/agent-runtime-physics-research-ts/files/templates/experimental-design.md +45 -0
- package/registry/families/agent-runtime-physics-research-ts/files/templates/index.json +25 -0
- package/registry/families/agent-runtime-physics-research-ts/files/templates/literature-search.md +32 -0
- package/registry/families/agent-runtime-physics-research-ts/files/wrangler.toml +22 -0
- package/registry/families/agent-runtime-physics-research-ts/manifest.json +162 -0
- package/registry/families/agent-runtime-product-manager-ts/files/AGENTS.md +58 -0
- package/registry/families/agent-runtime-product-manager-ts/files/README.md +30 -0
- package/registry/families/agent-runtime-product-manager-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-product-manager-ts/files/agent.json +39 -0
- package/registry/families/agent-runtime-product-manager-ts/files/methodology/discovery-cycle.md +38 -0
- package/registry/families/agent-runtime-product-manager-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-product-manager-ts/files/methodology/prioritization-framework.md +41 -0
- package/registry/families/agent-runtime-product-manager-ts/files/methodology/product-strategy-canvas.md +42 -0
- package/registry/families/agent-runtime-product-manager-ts/manifest.json +144 -0
- package/registry/families/agent-runtime-real-estate-ts/files/AGENTS.md +162 -0
- package/registry/families/agent-runtime-real-estate-ts/files/README.md +80 -0
- package/registry/families/agent-runtime-real-estate-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-real-estate-ts/files/agent.json +37 -0
- package/registry/families/agent-runtime-real-estate-ts/files/methodology/cap-rate-worksheet.md +180 -0
- package/registry/families/agent-runtime-real-estate-ts/files/methodology/comp-analysis.md +137 -0
- package/registry/families/agent-runtime-real-estate-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-real-estate-ts/files/methodology/offer-strategy.md +169 -0
- package/registry/families/agent-runtime-real-estate-ts/manifest.json +178 -0
- package/registry/families/agent-runtime-recruiter-ts/files/AGENTS.md +128 -0
- package/registry/families/agent-runtime-recruiter-ts/files/README.md +82 -0
- package/registry/families/agent-runtime-recruiter-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-recruiter-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-recruiter-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-recruiter-ts/files/methodology/interview-loop-design.md +135 -0
- package/registry/families/agent-runtime-recruiter-ts/files/methodology/jd-drafting-protocol.md +124 -0
- package/registry/families/agent-runtime-recruiter-ts/files/methodology/screening-rubric.md +118 -0
- package/registry/families/agent-runtime-recruiter-ts/manifest.json +192 -0
- package/registry/families/agent-runtime-relationship-coach-ts/files/AGENTS.md +185 -0
- package/registry/families/agent-runtime-relationship-coach-ts/files/README.md +90 -0
- package/registry/families/agent-runtime-relationship-coach-ts/files/TOOLS.md +30 -0
- package/registry/families/agent-runtime-relationship-coach-ts/files/agent.json +39 -0
- package/registry/families/agent-runtime-relationship-coach-ts/files/methodology/check-in-protocol.md +129 -0
- package/registry/families/agent-runtime-relationship-coach-ts/files/methodology/communication-tool-practice.md +175 -0
- package/registry/families/agent-runtime-relationship-coach-ts/files/methodology/conflict-pattern-naming.md +193 -0
- package/registry/families/agent-runtime-relationship-coach-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-relationship-coach-ts/manifest.json +224 -0
- package/registry/families/agent-runtime-research/files/AGENTS.md +56 -0
- package/registry/families/agent-runtime-research/files/README.md +45 -0
- package/registry/families/agent-runtime-research/files/TOOLS.md +22 -0
- package/registry/families/agent-runtime-research/files/agent.json +37 -0
- package/registry/families/agent-runtime-research/files/methodology/index.json +18 -0
- package/registry/families/agent-runtime-research/files/methodology/literature-survey.md +59 -0
- package/registry/families/agent-runtime-research/files/methodology/proposal-drafting.md +63 -0
- package/registry/families/agent-runtime-research/manifest.json +190 -0
- package/registry/families/agent-runtime-sales-engineer-ts/files/AGENTS.md +63 -0
- package/registry/families/agent-runtime-sales-engineer-ts/files/README.md +37 -0
- package/registry/families/agent-runtime-sales-engineer-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-sales-engineer-ts/files/agent.json +39 -0
- package/registry/families/agent-runtime-sales-engineer-ts/files/methodology/competitive-technical-positioning.md +39 -0
- package/registry/families/agent-runtime-sales-engineer-ts/files/methodology/demo-script.md +36 -0
- package/registry/families/agent-runtime-sales-engineer-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-sales-engineer-ts/files/methodology/poc-design.md +43 -0
- package/registry/families/agent-runtime-sales-engineer-ts/manifest.json +148 -0
- package/registry/families/agent-runtime-screenwriter-ts/files/AGENTS.md +69 -0
- package/registry/families/agent-runtime-screenwriter-ts/files/README.md +25 -0
- package/registry/families/agent-runtime-screenwriter-ts/files/agent.json +34 -0
- package/registry/families/agent-runtime-screenwriter-ts/files/methodology/beat-out-protocol.md +58 -0
- package/registry/families/agent-runtime-screenwriter-ts/files/methodology/index.json +22 -0
- package/registry/families/agent-runtime-screenwriter-ts/files/methodology/logline-sharpener.md +52 -0
- package/registry/families/agent-runtime-screenwriter-ts/files/methodology/scene-rewrite-pass.md +61 -0
- package/registry/families/agent-runtime-screenwriter-ts/manifest.json +90 -0
- package/registry/families/agent-runtime-security-engineer-ts/files/AGENTS.md +70 -0
- package/registry/families/agent-runtime-security-engineer-ts/files/README.md +24 -0
- package/registry/families/agent-runtime-security-engineer-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-security-engineer-ts/files/agent.json +39 -0
- package/registry/families/agent-runtime-security-engineer-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-security-engineer-ts/files/methodology/security-architecture-review.md +138 -0
- package/registry/families/agent-runtime-security-engineer-ts/files/methodology/threat-modeling.md +105 -0
- package/registry/families/agent-runtime-security-engineer-ts/files/methodology/vulnerability-triage.md +121 -0
- package/registry/families/agent-runtime-security-engineer-ts/manifest.json +144 -0
- package/registry/families/agent-runtime-tax-ts/files/AGENTS.md +79 -0
- package/registry/families/agent-runtime-tax-ts/files/README.md +49 -0
- package/registry/families/agent-runtime-tax-ts/files/TOOLS.md +24 -0
- package/registry/families/agent-runtime-tax-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-tax-ts/files/methodology/deadlines.md +91 -0
- package/registry/families/agent-runtime-tax-ts/files/methodology/filing-1040.md +119 -0
- package/registry/families/agent-runtime-tax-ts/files/methodology/index.json +27 -0
- package/registry/families/agent-runtime-tax-ts/files/methodology/refusal-protocol.md +98 -0
- package/registry/families/agent-runtime-tax-ts/manifest.json +185 -0
- package/registry/families/agent-runtime-therapist-ts/files/AGENTS.md +82 -0
- package/registry/families/agent-runtime-therapist-ts/files/README.md +51 -0
- package/registry/families/agent-runtime-therapist-ts/files/TOOLS.md +31 -0
- package/registry/families/agent-runtime-therapist-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-therapist-ts/files/methodology/escalation-protocol.md +146 -0
- package/registry/families/agent-runtime-therapist-ts/files/methodology/index.json +35 -0
- package/registry/families/agent-runtime-therapist-ts/files/methodology/listening-protocol.md +76 -0
- package/registry/families/agent-runtime-therapist-ts/files/methodology/screener-gad7.md +119 -0
- package/registry/families/agent-runtime-therapist-ts/files/methodology/screener-phq9.md +126 -0
- package/registry/families/agent-runtime-therapist-ts/manifest.json +197 -0
- package/registry/families/agent-runtime-travel-planner-ts/files/AGENTS.md +76 -0
- package/registry/families/agent-runtime-travel-planner-ts/files/README.md +15 -0
- package/registry/families/agent-runtime-travel-planner-ts/files/TOOLS.md +23 -0
- package/registry/families/agent-runtime-travel-planner-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-travel-planner-ts/files/methodology/budget-optimization.md +42 -0
- package/registry/families/agent-runtime-travel-planner-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-travel-planner-ts/files/methodology/itinerary-design.md +38 -0
- package/registry/families/agent-runtime-travel-planner-ts/files/methodology/logistics-check.md +54 -0
- package/registry/families/agent-runtime-travel-planner-ts/manifest.json +130 -0
- package/registry/families/agent-runtime-veterinarian-ts/files/AGENTS.md +136 -0
- package/registry/families/agent-runtime-veterinarian-ts/files/README.md +94 -0
- package/registry/families/agent-runtime-veterinarian-ts/files/TOOLS.md +24 -0
- package/registry/families/agent-runtime-veterinarian-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-veterinarian-ts/files/methodology/emergency-triage.md +147 -0
- package/registry/families/agent-runtime-veterinarian-ts/files/methodology/husbandry-reference.md +111 -0
- package/registry/families/agent-runtime-veterinarian-ts/files/methodology/index.json +28 -0
- package/registry/families/agent-runtime-veterinarian-ts/files/methodology/vaccination-framework.md +119 -0
- package/registry/families/agent-runtime-veterinarian-ts/manifest.json +183 -0
- package/registry/families/agent-runtime-wealth-manager-ts/files/AGENTS.md +123 -0
- package/registry/families/agent-runtime-wealth-manager-ts/files/README.md +75 -0
- package/registry/families/agent-runtime-wealth-manager-ts/files/TOOLS.md +24 -0
- package/registry/families/agent-runtime-wealth-manager-ts/files/agent.json +38 -0
- package/registry/families/agent-runtime-wealth-manager-ts/files/methodology/allocation-review.md +147 -0
- package/registry/families/agent-runtime-wealth-manager-ts/files/methodology/index.json +25 -0
- package/registry/families/agent-runtime-wealth-manager-ts/files/methodology/retirement-projection.md +186 -0
- package/registry/families/agent-runtime-wealth-manager-ts/files/methodology/tax-loss-harvest-protocol.md +178 -0
- package/registry/families/agent-runtime-wealth-manager-ts/manifest.json +194 -0
- package/registry/families/agent-service-ts/files/package.json +3 -1
- package/registry/families/agent-swarm-ts/files/package.json +3 -1
- package/registry/families/agent-swarm-ts/manifest.json +1 -1
- package/registry/families/agent-with-ui-ts/files/README.md +107 -0
- package/registry/families/agent-with-ui-ts/files/index.html +12 -0
- package/registry/families/agent-with-ui-ts/files/package.json +31 -0
- package/registry/families/agent-with-ui-ts/files/postcss.config.cjs +6 -0
- package/registry/families/agent-with-ui-ts/files/src/App.tsx +147 -0
- package/registry/families/agent-with-ui-ts/files/src/index.css +12 -0
- package/registry/families/agent-with-ui-ts/files/src/main.tsx +13 -0
- package/registry/families/agent-with-ui-ts/files/tailwind.config.cjs +8 -0
- package/registry/families/agent-with-ui-ts/files/tsconfig.json +24 -0
- package/registry/families/agent-with-ui-ts/files/vite.config.ts +15 -0
- package/registry/families/agent-with-ui-ts/manifest.json +81 -0
- package/registry/families/angular-ts/files/package.json +3 -1
- package/registry/families/api-service/files/package.json +4 -0
- package/registry/families/arkworks-prover/files/Cargo.toml +1 -1
- package/registry/families/astro-static/files/package.json +3 -1
- package/registry/families/browser-extension-ts/files/package.json +4 -0
- package/registry/families/bun-http/files/package.json +3 -1
- package/registry/families/cli-ts/files/package.json +3 -1
- package/registry/families/cloudflare-worker-ts/files/package.json +3 -1
- package/registry/families/crm-backend/files/package.json +10 -2
- package/registry/families/ecommerce-headless/files/package.json +10 -2
- package/registry/families/electron-desktop-ts/files/package.json +3 -1
- package/registry/families/electron-native-os/files/package.json +3 -1
- package/registry/families/eleventy-static/files/package.json +3 -1
- package/registry/families/evm-infra-ts/files/package.json +4 -0
- package/registry/families/expo-react-native-ts/files/package.json +3 -1
- package/registry/families/expo-react-native-ts/manifest.json +17 -2
- package/registry/families/expo-rn-rich/files/package.json +3 -1
- package/registry/families/fhenix-contracts/files/package.json +4 -0
- package/registry/families/fhenix-contracts/manifest.json +53 -0
- package/registry/families/fhenix-foundry/manifest.json +84 -0
- package/registry/families/fhevm-contracts/files/package.json +4 -0
- package/registry/families/fhevm-contracts/manifest.json +53 -0
- package/registry/families/fintech-ledger-backend/files/package.json +3 -1
- package/registry/families/forge-contracts/manifest.json +3 -0
- package/registry/families/fraud-ops-console/files/package.json +3 -1
- package/registry/families/frontend-static/files/package.json +3 -1
- package/registry/families/fullstack-ts/files/package.json +3 -1
- package/registry/families/gdpr-compliance-pack/files/package.json +4 -0
- package/registry/families/hardhat-contracts/files/package.json +3 -1
- package/registry/families/healthcare-hipaa-backend/files/package.json +3 -1
- package/registry/families/hipaa-compliance-pack/files/package.json +4 -0
- package/registry/families/hls-origin/files/package.json +3 -1
- package/registry/families/k12-edtech/files/package.json +10 -2
- package/registry/families/kyc-onboarding/files/package.json +4 -0
- package/registry/families/legal-case-mgmt/files/package.json +10 -2
- package/registry/families/livekit-sfu/files/package.json +3 -1
- package/registry/families/mcp-server-ts/files/package.json +5 -1
- package/registry/families/multi-agent-creative-studio-ts/files/AGENTS.md +367 -0
- package/registry/families/multi-agent-creative-studio-ts/files/README.md +86 -0
- package/registry/families/multi-agent-creative-studio-ts/files/agent.json +71 -0
- package/registry/families/multi-agent-creative-studio-ts/files/agents.json +70 -0
- package/registry/families/multi-agent-creative-studio-ts/files/roles/illustrator/AGENTS.md +168 -0
- package/registry/families/multi-agent-creative-studio-ts/files/roles/illustrator/methodology/color-palette-design.md +180 -0
- package/registry/families/multi-agent-creative-studio-ts/files/roles/illustrator/methodology/composition-canvas.md +145 -0
- package/registry/families/multi-agent-creative-studio-ts/files/roles/illustrator/methodology/storyboard-protocol.md +169 -0
- package/registry/families/multi-agent-creative-studio-ts/files/roles/music-producer/AGENTS.md +141 -0
- package/registry/families/multi-agent-creative-studio-ts/files/roles/music-producer/methodology/arrangement-review.md +122 -0
- package/registry/families/multi-agent-creative-studio-ts/files/roles/music-producer/methodology/mix-feedback.md +110 -0
- package/registry/families/multi-agent-creative-studio-ts/files/roles/music-producer/methodology/needle-drop-suggestions.md +147 -0
- package/registry/families/multi-agent-creative-studio-ts/files/roles/novelist-coach/AGENTS.md +153 -0
- package/registry/families/multi-agent-creative-studio-ts/files/roles/novelist-coach/methodology/scene-card-system.md +133 -0
- package/registry/families/multi-agent-creative-studio-ts/files/roles/novelist-coach/methodology/voice-audit.md +155 -0
- package/registry/families/multi-agent-creative-studio-ts/files/roles/screenwriter/AGENTS.md +147 -0
- package/registry/families/multi-agent-creative-studio-ts/files/roles/screenwriter/methodology/beat-out-protocol.md +123 -0
- package/registry/families/multi-agent-creative-studio-ts/files/roles/screenwriter/methodology/logline-sharpener.md +111 -0
- package/registry/families/multi-agent-creative-studio-ts/files/roles/screenwriter/methodology/scene-rewrite-pass.md +125 -0
- package/registry/families/multi-agent-creative-studio-ts/manifest.json +212 -0
- package/registry/families/multi-agent-legal-ops-ts/files/AGENTS.md +404 -0
- package/registry/families/multi-agent-legal-ops-ts/files/README.md +151 -0
- package/registry/families/multi-agent-legal-ops-ts/files/agent.json +63 -0
- package/registry/families/multi-agent-legal-ops-ts/files/agents.json +53 -0
- package/registry/families/multi-agent-legal-ops-ts/files/roles/auditor/AGENTS.md +187 -0
- package/registry/families/multi-agent-legal-ops-ts/files/roles/auditor/methodology/control-walkthrough.md +142 -0
- package/registry/families/multi-agent-legal-ops-ts/files/roles/auditor/methodology/deficiency-write-up.md +148 -0
- package/registry/families/multi-agent-legal-ops-ts/files/roles/legal-counsel/AGENTS.md +186 -0
- package/registry/families/multi-agent-legal-ops-ts/files/roles/legal-counsel/methodology/contract-redline.md +163 -0
- package/registry/families/multi-agent-legal-ops-ts/files/roles/legal-counsel/methodology/nda-msa-review.md +273 -0
- package/registry/families/multi-agent-legal-ops-ts/files/roles/legal-counsel/methodology/regulatory-research.md +129 -0
- package/registry/families/multi-agent-legal-ops-ts/files/roles/paralegal-intake/AGENTS.md +149 -0
- package/registry/families/multi-agent-legal-ops-ts/files/roles/paralegal-intake/methodology/conflict-check.md +85 -0
- package/registry/families/multi-agent-legal-ops-ts/files/roles/paralegal-intake/methodology/fact-pattern-summary.md +101 -0
- package/registry/families/multi-agent-legal-ops-ts/files/roles/paralegal-intake/methodology/intake-checklist.md +71 -0
- package/registry/families/multi-agent-legal-ops-ts/manifest.json +214 -0
- package/registry/families/multi-agent-product-ops-ts/files/AGENTS.md +325 -0
- package/registry/families/multi-agent-product-ops-ts/files/README.md +66 -0
- package/registry/families/multi-agent-product-ops-ts/files/agent.json +69 -0
- package/registry/families/multi-agent-product-ops-ts/files/agents.json +70 -0
- package/registry/families/multi-agent-product-ops-ts/files/roles/customer-success/AGENTS.md +97 -0
- package/registry/families/multi-agent-product-ops-ts/files/roles/customer-success/methodology/churn-risk-analysis.md +113 -0
- package/registry/families/multi-agent-product-ops-ts/files/roles/customer-success/methodology/qbr-prep.md +103 -0
- package/registry/families/multi-agent-product-ops-ts/files/roles/designer/AGENTS.md +90 -0
- package/registry/families/multi-agent-product-ops-ts/files/roles/designer/methodology/design-critique.md +76 -0
- package/registry/families/multi-agent-product-ops-ts/files/roles/designer/methodology/ux-strategy.md +86 -0
- package/registry/families/multi-agent-product-ops-ts/files/roles/eng-manager/AGENTS.md +99 -0
- package/registry/families/multi-agent-product-ops-ts/files/roles/eng-manager/methodology/sprint-planning.md +102 -0
- package/registry/families/multi-agent-product-ops-ts/files/roles/eng-manager/methodology/tech-feasibility-scoping.md +88 -0
- package/registry/families/multi-agent-product-ops-ts/files/roles/pm/AGENTS.md +87 -0
- package/registry/families/multi-agent-product-ops-ts/files/roles/pm/methodology/discovery-cycle.md +76 -0
- package/registry/families/multi-agent-product-ops-ts/files/roles/pm/methodology/prd-template.md +94 -0
- package/registry/families/multi-agent-product-ops-ts/files/roles/pm/methodology/prioritization-rice.md +94 -0
- package/registry/families/multi-agent-product-ops-ts/manifest.json +188 -0
- package/registry/families/multi-agent-research-lab-ts/files/AGENTS.md +352 -0
- package/registry/families/multi-agent-research-lab-ts/files/README.md +84 -0
- package/registry/families/multi-agent-research-lab-ts/files/agent.json +70 -0
- package/registry/families/multi-agent-research-lab-ts/files/agents.json +70 -0
- package/registry/families/multi-agent-research-lab-ts/files/roles/biology-researcher/AGENTS.md +140 -0
- package/registry/families/multi-agent-research-lab-ts/files/roles/biology-researcher/methodology/bioinformatics-survey.md +207 -0
- package/registry/families/multi-agent-research-lab-ts/files/roles/biology-researcher/methodology/protein-structure-analysis.md +185 -0
- package/registry/families/multi-agent-research-lab-ts/files/roles/chemistry-researcher/AGENTS.md +127 -0
- package/registry/families/multi-agent-research-lab-ts/files/roles/chemistry-researcher/methodology/crossref-literature-search.md +167 -0
- package/registry/families/multi-agent-research-lab-ts/files/roles/chemistry-researcher/methodology/reaction-mechanism-analysis.md +180 -0
- package/registry/families/multi-agent-research-lab-ts/files/roles/lab-director/AGENTS.md +156 -0
- package/registry/families/multi-agent-research-lab-ts/files/roles/lab-director/methodology/cross-domain-synthesis.md +150 -0
- package/registry/families/multi-agent-research-lab-ts/files/roles/lab-director/methodology/literature-triage.md +158 -0
- package/registry/families/multi-agent-research-lab-ts/files/roles/lab-director/methodology/research-question-formulation.md +190 -0
- package/registry/families/multi-agent-research-lab-ts/files/roles/physics-researcher/AGENTS.md +122 -0
- package/registry/families/multi-agent-research-lab-ts/files/roles/physics-researcher/methodology/arxiv-literature-search.md +149 -0
- package/registry/families/multi-agent-research-lab-ts/files/roles/physics-researcher/methodology/experimental-design.md +194 -0
- package/registry/families/multi-agent-research-lab-ts/manifest.json +223 -0
- package/registry/families/multi-agent-startup-team-ts/files/AGENTS.md +360 -0
- package/registry/families/multi-agent-startup-team-ts/files/README.md +200 -0
- package/registry/families/multi-agent-startup-team-ts/files/agent.json +78 -0
- package/registry/families/multi-agent-startup-team-ts/files/agents.json +87 -0
- package/registry/families/multi-agent-startup-team-ts/files/roles/ceo/AGENTS.md +157 -0
- package/registry/families/multi-agent-startup-team-ts/files/roles/ceo/methodology/decision-journal.md +176 -0
- package/registry/families/multi-agent-startup-team-ts/files/roles/ceo/methodology/okr-design.md +181 -0
- package/registry/families/multi-agent-startup-team-ts/files/roles/ceo/methodology/weekly-review.md +150 -0
- package/registry/families/multi-agent-startup-team-ts/files/roles/cfo-advisor/AGENTS.md +176 -0
- package/registry/families/multi-agent-startup-team-ts/files/roles/cfo-advisor/methodology/burn-runway-model.md +203 -0
- package/registry/families/multi-agent-startup-team-ts/files/roles/cfo-advisor/methodology/fundraise-prep.md +192 -0
- package/registry/families/multi-agent-startup-team-ts/files/roles/cmo/AGENTS.md +145 -0
- package/registry/families/multi-agent-startup-team-ts/files/roles/cmo/methodology/channel-experiment-design.md +156 -0
- package/registry/families/multi-agent-startup-team-ts/files/roles/cmo/methodology/positioning-canvas.md +124 -0
- package/registry/families/multi-agent-startup-team-ts/files/roles/cto/AGENTS.md +151 -0
- package/registry/families/multi-agent-startup-team-ts/files/roles/cto/methodology/architecture-decision.md +196 -0
- package/registry/families/multi-agent-startup-team-ts/files/roles/cto/methodology/one-on-one-cadence.md +149 -0
- package/registry/families/multi-agent-startup-team-ts/files/roles/cto/methodology/tech-debt-triage.md +138 -0
- package/registry/families/multi-agent-startup-team-ts/files/roles/hr/AGENTS.md +192 -0
- package/registry/families/multi-agent-startup-team-ts/files/roles/hr/methodology/interview-rubric.md +171 -0
- package/registry/families/multi-agent-startup-team-ts/files/roles/hr/methodology/recruiting-loop-design.md +222 -0
- package/registry/families/multi-agent-startup-team-ts/manifest.json +299 -0
- package/registry/families/multimodal-agent/files/api/README.md +1 -1
- package/registry/families/multimodal-agent/files/package.json +3 -1
- package/registry/families/nextjs-ts/files/package.json +3 -1
- package/registry/families/observable-notebook/files/package.json +3 -1
- package/registry/families/observable-notebook/manifest.json +18 -1
- package/registry/families/ollama-server/files/package.json +4 -0
- package/registry/families/orchestrator-with-ui-ts/files/README.md +137 -0
- package/registry/families/orchestrator-with-ui-ts/files/app/agents/[id]/page.tsx +124 -0
- package/registry/families/orchestrator-with-ui-ts/files/app/globals.css +38 -0
- package/registry/families/orchestrator-with-ui-ts/files/app/layout.tsx +30 -0
- package/registry/families/orchestrator-with-ui-ts/files/app/page.tsx +132 -0
- package/registry/families/orchestrator-with-ui-ts/files/next.config.mjs +21 -0
- package/registry/families/orchestrator-with-ui-ts/files/package.json +34 -0
- package/registry/families/orchestrator-with-ui-ts/files/postcss.config.cjs +6 -0
- package/registry/families/orchestrator-with-ui-ts/files/src/lib/agent-roster.ts +86 -0
- package/registry/families/orchestrator-with-ui-ts/files/tailwind.config.cjs +12 -0
- package/registry/families/orchestrator-with-ui-ts/files/tsconfig.json +27 -0
- package/registry/families/orchestrator-with-ui-ts/manifest.json +91 -0
- package/registry/families/pci-dss-compliance-pack/files/package.json +4 -0
- package/registry/families/phaser-game/files/package.json +4 -0
- package/registry/families/pixijs-game/files/package.json +4 -0
- package/registry/families/playwright-worker/files/package.json +3 -1
- package/registry/families/polymarket-portfolio-hedging/files/package.json +3 -1
- package/registry/families/react-vite-ts/files/package.json +3 -1
- package/registry/families/realtime-audio-ts/files/package.json +3 -1
- package/registry/families/remix-ts/files/package.json +3 -1
- package/registry/families/risczero-zkvm/files/methods/build.rs +31 -0
- package/registry/families/risczero-zkvm/files/methods/guest-Cargo.toml +8 -0
- package/registry/families/sandbox-app-ts/files/README.md +65 -0
- package/registry/families/sandbox-app-ts/files/index.html +12 -0
- package/registry/families/sandbox-app-ts/files/package.json +31 -0
- package/registry/families/sandbox-app-ts/files/postcss.config.cjs +6 -0
- package/registry/families/sandbox-app-ts/files/src/App.tsx +92 -0
- package/registry/families/sandbox-app-ts/files/src/index.css +12 -0
- package/registry/families/sandbox-app-ts/files/src/lib/sandbox-client.ts +182 -0
- package/registry/families/sandbox-app-ts/files/src/main.tsx +13 -0
- package/registry/families/sandbox-app-ts/files/tailwind.config.cjs +8 -0
- package/registry/families/sandbox-app-ts/files/tsconfig.json +24 -0
- package/registry/families/sandbox-app-ts/files/vite.config.ts +15 -0
- package/registry/families/sandbox-app-ts/manifest.json +83 -0
- package/registry/families/soc2-compliance-pack/files/package.json +4 -0
- package/registry/families/sp1-zkvm/files/script/build.rs +63 -0
- package/registry/families/sp1-zkvm/files/script-Cargo.toml +7 -1
- package/registry/families/sp1-zkvm/manifest.json +4 -0
- package/registry/families/stylus-contracts/manifest.json +25 -0
- package/registry/families/sveltekit-ts/files/package.json +3 -1
- package/registry/families/tauri-desktop/files/package.json +4 -0
- package/registry/families/tauri-menubar/files/package.json +3 -1
- package/registry/families/tauri-tray/files/package.json +3 -1
- package/registry/families/threejs-game/files/package.json +3 -1
- package/registry/families/unity-web-proxy/files/package.json +3 -1
- package/registry/families/vision-first-agent/files/api/README.md +1 -1
- package/registry/families/vision-first-agent/files/package.json +3 -1
- package/registry/families/voice-first-agent/files/api/README.md +1 -1
- package/registry/families/voice-first-agent/files/package.json +3 -1
- package/registry/families/vue-ts/files/package.json +3 -1
- package/registry/families/wasm-rust/files/package.json +3 -1
- package/registry/families/wasm-rust/manifest.json +23 -2
- package/registry/families/webgpu-inference/files/package.json +3 -1
- package/registry/families/webgpu-render/files/package.json +3 -1
- package/registry/families/worker-job/files/package.json +4 -0
- package/registry/families/x402-service/files/package.json +5 -1
- package/registry/families/zk-prover-service/files/package.json +5 -1
- package/registry/layers/agent-base/mcp-registry/files/.mcp.json +27 -0
- package/registry/layers/agent-base/mcp-registry/files/lib/mcp/README.md +47 -0
- package/registry/layers/agent-base/mcp-registry/files/lib/mcp/register.ts +130 -0
- package/registry/layers/agent-base/mcp-registry/manifest.json +109 -0
- package/registry/layers/agent-base/memory/files/lib/memory/grep.ts +126 -0
- package/registry/layers/agent-base/memory/files/lib/memory/index.test.ts +216 -0
- package/registry/layers/agent-base/memory/files/lib/memory/index.ts +258 -0
- package/registry/layers/agent-base/memory/files/lib/memory/types.ts +58 -0
- package/registry/layers/agent-base/memory/manifest.json +108 -0
- package/registry/layers/agent-base/privacy/files/lib/privacy/README.md +116 -0
- package/registry/layers/agent-base/privacy/files/lib/privacy/detectors.ts +179 -0
- package/registry/layers/agent-base/privacy/files/lib/privacy/index.test.ts +172 -0
- package/registry/layers/agent-base/privacy/files/lib/privacy/index.ts +150 -0
- package/registry/layers/agent-base/privacy/files/lib/privacy/types.ts +66 -0
- package/registry/layers/agent-base/privacy/manifest.json +74 -0
- package/registry/layers/agent-base/scheduler/files/lib/scheduler/cron-parse.ts +221 -0
- package/registry/layers/agent-base/scheduler/files/lib/scheduler/index.test.ts +296 -0
- package/registry/layers/agent-base/scheduler/files/lib/scheduler/index.ts +175 -0
- package/registry/layers/agent-base/scheduler/files/lib/scheduler/sweep.ts +66 -0
- package/registry/layers/agent-base/scheduler/files/lib/scheduler/types.ts +43 -0
- package/registry/layers/agent-base/scheduler/manifest.json +119 -0
- package/registry/layers/agent-base/secure/files/lib/secure/README.md +95 -0
- package/registry/layers/agent-base/secure/files/lib/secure/audit.ts +166 -0
- package/registry/layers/agent-base/secure/files/lib/secure/identity.ts +110 -0
- package/registry/layers/agent-base/secure/files/lib/secure/index.test.ts +422 -0
- package/registry/layers/agent-base/secure/files/lib/secure/index.ts +16 -0
- package/registry/layers/agent-base/secure/files/lib/secure/schedule.ts +83 -0
- package/registry/layers/agent-base/secure/files/lib/secure/secrets.ts +128 -0
- package/registry/layers/agent-base/secure/files/lib/secure/webhook-in.ts +125 -0
- package/registry/layers/agent-base/secure/files/lib/secure/webhook-out.ts +137 -0
- package/registry/layers/agent-base/secure/files/lib/secure/workspace.ts +123 -0
- package/registry/layers/agent-base/secure/manifest.json +174 -0
- package/registry/layers/agent-base/tangle/files/lib/tangle.ts +56 -0
- package/registry/layers/agent-base/tangle/manifest.json +103 -0
- package/registry/layers/agent-channels/discord/files/channels/discord.env.example +14 -0
- package/registry/layers/agent-channels/discord/files/channels/discord.ts +127 -0
- package/registry/layers/agent-channels/discord/manifest.json +95 -0
- package/registry/layers/agent-channels/gmail/files/channels/gmail.env.example +54 -0
- package/registry/layers/agent-channels/gmail/files/channels/gmail.ts +206 -0
- package/registry/layers/agent-channels/gmail/manifest.json +95 -0
- package/registry/layers/agent-channels/imessage/files/channels/imessage.env.example +31 -0
- package/registry/layers/agent-channels/imessage/files/channels/imessage.ts +123 -0
- package/registry/layers/agent-channels/imessage/manifest.json +102 -0
- package/registry/layers/agent-channels/linear/files/channels/linear.env.example +42 -0
- package/registry/layers/agent-channels/linear/files/channels/linear.ts +163 -0
- package/registry/layers/agent-channels/linear/manifest.json +95 -0
- package/registry/layers/agent-channels/slack/files/channels/slack.env.example +17 -0
- package/registry/layers/agent-channels/slack/files/channels/slack.ts +119 -0
- package/registry/layers/agent-channels/slack/manifest.json +95 -0
- package/registry/layers/agent-channels/telegram/files/channels/telegram.env.example +9 -0
- package/registry/layers/agent-channels/telegram/files/channels/telegram.ts +72 -0
- package/registry/layers/agent-channels/telegram/manifest.json +95 -0
- package/registry/layers/agent-channels/whatsapp/files/channels/whatsapp.env.example +31 -0
- package/registry/layers/agent-channels/whatsapp/files/channels/whatsapp.ts +158 -0
- package/registry/layers/agent-channels/whatsapp/manifest.json +106 -0
- package/registry/layers/agent-eval/auto-research/files/src/eval/auto-research/README.md +95 -0
- package/registry/layers/agent-eval/auto-research/files/src/eval/auto-research/index.ts +49 -0
- package/registry/layers/agent-eval/auto-research/files/src/eval/auto-research/loop.ts +151 -0
- package/registry/layers/agent-eval/auto-research/files/src/eval/auto-research/pareto.ts +60 -0
- package/registry/layers/agent-eval/auto-research/files/src/eval/auto-research/propose-review.ts +36 -0
- package/registry/layers/agent-eval/auto-research/manifest.json +86 -0
- package/registry/layers/agent-eval/judge-pairwise/files/src/eval/judges/README.md +86 -0
- package/registry/layers/agent-eval/judge-pairwise/files/src/eval/judges/pairwise-cli.ts +118 -0
- package/registry/layers/agent-eval/judge-pairwise/files/src/eval/judges/pairwise-runner.ts +249 -0
- package/registry/layers/agent-eval/judge-pairwise/files/src/eval/judges/pairwise.example.ts +100 -0
- package/registry/layers/agent-eval/judge-pairwise/files/tests/pairwise-runner.test.ts +136 -0
- package/registry/layers/agent-eval/judge-pairwise/manifest.json +71 -0
- package/registry/layers/agent-eval/judge-rubric/files/judges/rubric.example.ts +38 -0
- package/registry/layers/agent-eval/judge-rubric/files/src/eval/judges/README.md +83 -0
- package/registry/layers/agent-eval/judge-rubric/files/src/eval/judges/rubric-runner.ts +161 -0
- package/registry/layers/agent-eval/judge-rubric/manifest.json +48 -0
- package/registry/layers/agent-eval/redteam/files/src/eval/redteam/README.md +100 -0
- package/registry/layers/agent-eval/redteam/files/src/eval/redteam/categories.ts +106 -0
- package/registry/layers/agent-eval/redteam/files/src/eval/redteam/cli.ts +106 -0
- package/registry/layers/agent-eval/redteam/files/src/eval/redteam/runner.ts +257 -0
- package/registry/layers/agent-eval/redteam/files/tests/runner.test.ts +82 -0
- package/registry/layers/agent-eval/redteam/manifest.json +81 -0
- package/registry/layers/agent-eval/regression/files/.github/workflows/regression-gate.yml +85 -0
- package/registry/layers/agent-eval/regression/files/src/eval/regression/README.md +93 -0
- package/registry/layers/agent-eval/regression/files/src/eval/regression/cli.ts +106 -0
- package/registry/layers/agent-eval/regression/files/src/eval/regression/gate.ts +260 -0
- package/registry/layers/agent-eval/regression/manifest.json +60 -0
- package/registry/layers/agent-eval/scenarios/files/scenarios/README.md +64 -0
- package/registry/layers/agent-eval/scenarios/files/src/eval/scenario-loader.ts +85 -0
- package/registry/layers/agent-eval/scenarios/files/src/eval/scenario-types.ts +15 -0
- package/registry/layers/agent-eval/scenarios/manifest.json +44 -0
- package/registry/layers/agent-eval/trace-multi-turn/files/src/eval/trace/README.md +75 -0
- package/registry/layers/agent-eval/trace-multi-turn/files/src/eval/trace/example-rubric.ts +105 -0
- package/registry/layers/agent-eval/trace-multi-turn/files/src/eval/trace/per-turn-scorer.ts +230 -0
- package/registry/layers/agent-eval/trace-multi-turn/files/src/eval/trace/trajectory-runner.ts +142 -0
- package/registry/layers/agent-eval/trace-multi-turn/files/tests/per-turn-scorer.test.ts +184 -0
- package/registry/layers/agent-eval/trace-multi-turn/manifest.json +70 -0
- package/registry/layers/agent-output/blocks/files/lib/blocks.ts +57 -0
- package/registry/layers/agent-output/blocks/manifest.json +95 -0
- package/registry/layers/agent-tools/clinical-screeners/files/lib/tools/screeners.ts +61 -0
- package/registry/layers/agent-tools/clinical-screeners/files/templates/escalation-protocol.md +77 -0
- package/registry/layers/agent-tools/clinical-screeners/files/templates/screener-gad7.md +62 -0
- package/registry/layers/agent-tools/clinical-screeners/files/templates/screener-phq9.md +84 -0
- package/registry/layers/agent-tools/clinical-screeners/manifest.json +61 -0
- package/registry/layers/agent-tools/phony-voice/files/lib/tools/voice.ts +38 -0
- package/registry/layers/agent-tools/phony-voice/manifest.json +47 -0
- package/registry/layers/agent-tools/research-corpus/files/lib/tools/research.ts +46 -0
- package/registry/layers/agent-tools/research-corpus/manifest.json +52 -0
- package/registry/layers/capability/agent-eval/manifest.json +2 -1
- package/registry/layers/capability/ai-chat-ui/manifest.json +2 -0
- package/registry/layers/capability/bridge-protocol-api/files/bridge-protocol-config.json +5 -0
- package/registry/layers/capability/bridge-protocol-api/files/bridge-status-routes.ts +31 -0
- package/registry/layers/capability/bridge-protocol-api/manifest.json +92 -0
- package/registry/layers/capability/crypto-bridge-ui/manifest.json +54 -2
- package/registry/layers/capability/defi-bridge/manifest.json +12 -0
- package/registry/layers/capability/evm-layerzero-oft/manifest.json +59 -0
- package/registry/layers/capability/evm-nft-mint-page/manifest.json +1 -0
- package/registry/layers/capability/evm-uniswap-v4-hook/manifest.json +58 -0
- package/registry/layers/capability/fhe-foundry-private-token/files/PrivateToken.sol +58 -0
- package/registry/layers/capability/fhe-foundry-private-token/manifest.json +27 -0
- package/registry/layers/capability/fhe-foundry-private-voting/files/PrivateVoting.sol +54 -0
- package/registry/layers/capability/fhe-foundry-private-voting/manifest.json +27 -0
- package/registry/layers/capability/fhe-foundry-sealed-auction/files/SealedAuction.sol +54 -0
- package/registry/layers/capability/fhe-foundry-sealed-auction/manifest.json +27 -0
- package/registry/layers/capability/fhe-private-token/manifest.json +16 -1
- package/registry/layers/capability/fhe-private-voting/manifest.json +16 -1
- package/registry/layers/capability/fhe-sealed-auction/manifest.json +17 -2
- package/registry/layers/capability/fhevm-private-token/files/PrivateToken.sol +55 -0
- package/registry/layers/capability/fhevm-private-token/manifest.json +27 -0
- package/registry/layers/capability/fhevm-private-voting/files/PrivateVoting.sol +51 -0
- package/registry/layers/capability/fhevm-private-voting/manifest.json +27 -0
- package/registry/layers/capability/fhevm-sealed-auction/files/SealedAuction.sol +55 -0
- package/registry/layers/capability/fhevm-sealed-auction/manifest.json +27 -0
- package/registry/layers/capability/layout-auth/manifest.json +7 -0
- package/registry/layers/capability/layout-chat/manifest.json +3 -0
- package/registry/layers/capability/tangle-remote-provider/files/remote-config.json +1 -1
- package/registry/layers/capability/zk-browser/manifest.json +1 -1
- package/registry/layers/framework/aptos-move/files/package.json +4 -0
- package/registry/layers/framework/crm-backend/files/package.json +4 -0
- package/registry/layers/framework/ecommerce-headless/files/package.json +4 -0
- package/registry/layers/framework/electron-native-os/files/package.json +4 -0
- package/registry/layers/framework/fhenix-foundry/files/Contract.sol +55 -0
- package/registry/layers/framework/fhenix-foundry/files/Contract.t.sol +39 -0
- package/registry/layers/framework/fhenix-foundry/files/Deploy.s.sol +12 -0
- package/registry/layers/framework/fhenix-foundry/files/foundry.toml +25 -0
- package/registry/layers/framework/fhenix-foundry/files/lib/cofhe-contracts/contracts/FHE.sol +94 -0
- package/registry/layers/framework/fhenix-foundry/manifest.json +12 -0
- package/registry/layers/framework/gdpr-compliance-pack/files/package.json +4 -0
- package/registry/layers/framework/godot-web/files/package.json +4 -0
- package/registry/layers/framework/healthcare-hipaa-backend/files/package.json +4 -0
- package/registry/layers/framework/hipaa-compliance-pack/files/package.json +4 -0
- package/registry/layers/framework/hugo-static/files/package.json +4 -0
- package/registry/layers/framework/legal-case-mgmt/files/package.json +4 -0
- package/registry/layers/framework/move-package/files/Move.toml +7 -3
- package/registry/layers/framework/react-vite-ts/files/index.html +6 -6
- package/registry/layers/framework/tangle-blueprint/files/main.rs +2 -17
- package/registry/layers/framework/zola-static/files/package.json +5 -1
- package/registry/layers/ui-adapter/blocks-renderer/files/lib/blocks-to-artifacts.tsx +188 -0
- package/registry/layers/ui-adapter/blocks-renderer/files/lib/parse-blocks.test.ts +58 -0
- package/registry/layers/ui-adapter/blocks-renderer/files/lib/parse-blocks.ts +163 -0
- package/registry/layers/ui-adapter/blocks-renderer/manifest.json +61 -0
- package/registry/seed-list-agent-runtime.json +250 -0
- package/dist/lib/ab.js.map +0 -1
- package/dist/lib/audit.js.map +0 -1
- package/dist/lib/batch-export.js.map +0 -1
- package/dist/lib/benchmark.js.map +0 -1
- package/dist/lib/compose-seed.d.ts +0 -15
- package/dist/lib/compose-seed.js +0 -44
- package/dist/lib/compose-seed.js.map +0 -1
- package/dist/lib/planner/zk-preferences.d.ts +0 -9
- package/dist/lib/planner/zk-preferences.js +0 -91
- package/dist/lib/planner/zk-preferences.js.map +0 -1
- package/dist/lib/prove.js.map +0 -1
- package/dist/lib/reproducibility.js.map +0 -1
- package/dist/lib/sbom.js.map +0 -1
- package/specs/agent-python-research.json +0 -12
- package/specs/agent-rust-runtime.json +0 -11
- package/specs/agent-ts-control-plane.json +0 -13
- package/specs/api-evm-protocol.json +0 -17
- package/specs/api-health.json +0 -14
- package/specs/browser-extension-research.json +0 -12
- package/specs/cli-release-tool.json +0 -9
- package/specs/cloudflare-edge.json +0 -13
- package/specs/coinbase-landing.json +0 -13
- package/specs/dspy-pipeline.json +0 -8
- package/specs/eigenlayer-avs.json +0 -8
- package/specs/electron-ops-console.json +0 -14
- package/specs/evm-infra.json +0 -15
- package/specs/expo-wallet-mobile.json +0 -14
- package/specs/forge-counter.json +0 -10
- package/specs/fullstack-control-plane.json +0 -16
- package/specs/go-api.json +0 -12
- package/specs/go-worker.json +0 -11
- package/specs/hardhat-xlayer-config.json +0 -9
- package/specs/mcp-server.json +0 -8
- package/specs/move-treasury.json +0 -10
- package/specs/multichain-workspace.json +0 -74
- package/specs/nextjs-saas.json +0 -11
- package/specs/playwright-worker.json +0 -11
- package/specs/python-api.json +0 -13
- package/specs/python-data-insights.json +0 -9
- package/specs/react-vite-coinbase.json +0 -11
- package/specs/rust-service.json +0 -13
- package/specs/solana-keeper-worker.json +0 -13
- package/specs/solana-perps.json +0 -12
- package/specs/solana-prediction.json +0 -12
- package/specs/solana-treasury.json +0 -10
- package/specs/stylus-contracts.json +0 -8
- package/specs/tangle-blueprint.json +0 -9
- package/specs/tangle-custody.json +0 -11
- package/specs/tangle-oracle.json +0 -11
- package/specs/tauri-desktop.json +0 -13
- package/specs/trading-worker.json +0 -12
- package/specs/x402-service.json +0 -8
- package/specs/xlayer-aa.json +0 -13
- package/specs/xlayer-foundry-deploy.json +0 -12
- package/specs/xlayer-oft.json +0 -13
- package/specs/xlayer-wallet-dashboard.json +0 -18
- package/specs/zk-prover.json +0 -8
- /package/{LICENSE → LICENSE-MIT} +0 -0
- /package/dist/lib/{ab.d.ts → eval/ab.d.ts} +0 -0
- /package/dist/lib/{ab.js → eval/ab.js} +0 -0
- /package/dist/lib/{batch-export.d.ts → eval/batch-export.d.ts} +0 -0
- /package/dist/lib/{reproducibility.js → eval/reproducibility.js} +0 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
// Eval campaign — opinionated wrapper over `runEvalCampaign` from
|
|
2
|
+
// `@tangle-network/agent-eval@0.22+`. Use this when the eval question is
|
|
3
|
+
// "does variant A beat variant B over scenarios × seeds?" — i.e. a
|
|
4
|
+
// launch-decision-grade sweep, not a smoke test.
|
|
5
|
+
//
|
|
6
|
+
// Why a separate entrypoint from `runHarness`:
|
|
7
|
+
//
|
|
8
|
+
// - `runHarness` (runner.ts) runs each scenario once with no comparator.
|
|
9
|
+
// It's the smoke-test path — operator-facing, fast, no variants.
|
|
10
|
+
//
|
|
11
|
+
// - `runCampaign` (this file) runs (variants × scenarios × seeds) and
|
|
12
|
+
// emits `RunRecord[]` + integrity reports + an optional `researchReport`
|
|
13
|
+
// with paired-evidence verdicts. Capture integrity is wired by
|
|
14
|
+
// construction:
|
|
15
|
+
//
|
|
16
|
+
// - `assertLlmRoute` runs once at preflight.
|
|
17
|
+
// - A per-run `FileSystemRawProviderSink` captures every provider
|
|
18
|
+
// HTTP envelope.
|
|
19
|
+
// - `assertRunCaptured` fires after every `endRun`; the campaign's
|
|
20
|
+
// `onIntegrityFailure` policy decides whether to mark the run
|
|
21
|
+
// failed or admit it with a flag.
|
|
22
|
+
// - Each run is built atop a `TraceEmitter` whose `onRunComplete`
|
|
23
|
+
// hooks fire the trace analyst declaratively.
|
|
24
|
+
//
|
|
25
|
+
// The four directives from `SKILL.md § Capture integrity` are part of
|
|
26
|
+
// the campaign's contract — the caller doesn't wire them, and skipping
|
|
27
|
+
// one isn't possible without rewriting the function.
|
|
28
|
+
//
|
|
29
|
+
// Reference wiring lives in `@tangle-network/agent-eval/src/eval-campaign.ts`.
|
|
30
|
+
|
|
31
|
+
import { join } from 'node:path'
|
|
32
|
+
import {
|
|
33
|
+
runEvalCampaign,
|
|
34
|
+
type CampaignRunContext,
|
|
35
|
+
type CampaignRunOutcome,
|
|
36
|
+
type CampaignScenario,
|
|
37
|
+
type CampaignVariant,
|
|
38
|
+
type EvalCampaignOptions,
|
|
39
|
+
type EvalCampaignResult,
|
|
40
|
+
type LlmClientOptions,
|
|
41
|
+
} from '@tangle-network/agent-eval'
|
|
42
|
+
import {
|
|
43
|
+
FileSystemRawProviderSink,
|
|
44
|
+
type RawProviderSink,
|
|
45
|
+
} from '@tangle-network/agent-eval/traces'
|
|
46
|
+
|
|
47
|
+
export interface CampaignOptions<V> {
|
|
48
|
+
/** Stable campaign id — folded into the campaign fingerprint. */
|
|
49
|
+
campaignId: string
|
|
50
|
+
variants: CampaignVariant<V>[]
|
|
51
|
+
scenarios: CampaignScenario[]
|
|
52
|
+
/** Default `[0, 1, 2]`. */
|
|
53
|
+
seeds?: number[]
|
|
54
|
+
/** Git SHA the sweep runs against — `RunRecord` rejects unset. */
|
|
55
|
+
commitSha: string
|
|
56
|
+
/**
|
|
57
|
+
* The per-run runner. Receives a fully-wired context (TraceEmitter, store,
|
|
58
|
+
* RawProviderSink, llmOpts) and returns a `CampaignRunOutcome`. The
|
|
59
|
+
* runner MUST call `ctx.emitter.startRun` before any work and
|
|
60
|
+
* `ctx.emitter.endRun` / `ctx.emitter.abortRun` before returning.
|
|
61
|
+
*/
|
|
62
|
+
runner: (ctx: CampaignRunContext<V>) => Promise<CampaignRunOutcome>
|
|
63
|
+
/**
|
|
64
|
+
* LLM client config — `assertLlmRoute` runs against this at preflight.
|
|
65
|
+
* Must include `baseUrl` + `apiKey` for the route guard to pass with
|
|
66
|
+
* default `routeRequirements`.
|
|
67
|
+
*/
|
|
68
|
+
llmOpts: LlmClientOptions
|
|
69
|
+
/**
|
|
70
|
+
* Filesystem root for traces + raw events. Defaults to
|
|
71
|
+
* `./.evolve/agent-eval/campaigns/<campaignId>/`.
|
|
72
|
+
*/
|
|
73
|
+
workDir?: string
|
|
74
|
+
/** Optional comparator variant id for paired stats. */
|
|
75
|
+
comparator?: string
|
|
76
|
+
/** Optional preregistration manifest hash (see `pre-registration.ts`). */
|
|
77
|
+
preregistrationHash?: string
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Run a launch-decision-grade eval sweep over (variants × scenarios × seeds).
|
|
82
|
+
*
|
|
83
|
+
* Returns a `RunRecord[]` + integrity reports + (when `comparator` is set)
|
|
84
|
+
* a `researchReport` with paired-bootstrap CIs, anytime-valid sequential
|
|
85
|
+
* verdicts, and a SHA-256 campaign fingerprint.
|
|
86
|
+
*
|
|
87
|
+
* Capture-integrity directives are wired by construction:
|
|
88
|
+
* 1. `RawProviderSink` per run (via the campaign's default `rawSinkFactory`).
|
|
89
|
+
* 2. `assertLlmRoute` at preflight.
|
|
90
|
+
* 3. `assertRunCaptured` after every `endRun` (policy: `'mark_failed'`).
|
|
91
|
+
* 4. `onRunComplete` hooks fire on every run (caller supplies the analyst).
|
|
92
|
+
*
|
|
93
|
+
* Skip this and you're back to writing the same shape ad hoc — at the
|
|
94
|
+
* cost of the bug class 0.22 was designed to eliminate.
|
|
95
|
+
*/
|
|
96
|
+
export async function runCampaign<V>(
|
|
97
|
+
opts: CampaignOptions<V>,
|
|
98
|
+
): Promise<EvalCampaignResult> {
|
|
99
|
+
const workDir =
|
|
100
|
+
opts.workDir ?? join(process.cwd(), '.evolve', 'agent-eval', 'campaigns', opts.campaignId)
|
|
101
|
+
const tracesDir = join(workDir, 'traces')
|
|
102
|
+
|
|
103
|
+
// The store factory hands each cell its own `FileSystemTraceStore` instance
|
|
104
|
+
// rooted in a per-run subdir. We can't construct a FileSystemTraceStore
|
|
105
|
+
// here because the import lives in the main barrel — pull it dynamically
|
|
106
|
+
// so this module stays a stable interface even if upstream re-exports
|
|
107
|
+
// shift between minor versions.
|
|
108
|
+
const { FileSystemTraceStore } = await import('@tangle-network/agent-eval')
|
|
109
|
+
|
|
110
|
+
const fullOpts: EvalCampaignOptions<V> = {
|
|
111
|
+
campaignId: opts.campaignId,
|
|
112
|
+
variants: opts.variants,
|
|
113
|
+
scenarios: opts.scenarios,
|
|
114
|
+
commitSha: opts.commitSha,
|
|
115
|
+
runner: opts.runner,
|
|
116
|
+
llmOpts: opts.llmOpts,
|
|
117
|
+
storeFactory: ({ runId }) =>
|
|
118
|
+
new FileSystemTraceStore({ dir: join(tracesDir, runId) }),
|
|
119
|
+
rawSinkFactory: ({ runId }): RawProviderSink =>
|
|
120
|
+
new FileSystemRawProviderSink({ dir: join(workDir, 'raw-events', runId) }),
|
|
121
|
+
workDir,
|
|
122
|
+
onIntegrityFailure: 'mark_failed',
|
|
123
|
+
...(opts.seeds ? { seeds: opts.seeds } : {}),
|
|
124
|
+
...(opts.preregistrationHash ? { preregistrationHash: opts.preregistrationHash } : {}),
|
|
125
|
+
...(opts.comparator ? { report: { comparator: opts.comparator } } : {}),
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return runEvalCampaign(fullOpts)
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export type {
|
|
132
|
+
CampaignRunContext,
|
|
133
|
+
CampaignRunOutcome,
|
|
134
|
+
CampaignScenario,
|
|
135
|
+
CampaignVariant,
|
|
136
|
+
EvalCampaignResult,
|
|
137
|
+
} from '@tangle-network/agent-eval'
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// eval-harness CLI — `eval-harness run | compare`.
|
|
3
|
+
//
|
|
4
|
+
// `run` invokes the full harness against the configured target.
|
|
5
|
+
// `compare` diffs two scorecards (no statistical gate — for that, use the
|
|
6
|
+
// regression layer's `eval:gate` CLI).
|
|
7
|
+
|
|
8
|
+
import { runHarness } from './runner.js'
|
|
9
|
+
import { readScorecard, diffScorecards } from './scorecard.js'
|
|
10
|
+
|
|
11
|
+
function help(): never {
|
|
12
|
+
console.log(`Usage:
|
|
13
|
+
eval-harness run [--target <url>] [--threshold <0..1>] [--variant <id>]
|
|
14
|
+
eval-harness compare <baseline.json> <head.json>
|
|
15
|
+
`)
|
|
16
|
+
process.exit(2)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async function cmdRun(argv: string[]): Promise<void> {
|
|
20
|
+
const arg = (flag: string): string | undefined => {
|
|
21
|
+
const i = argv.indexOf(flag)
|
|
22
|
+
return i >= 0 && argv[i + 1] ? argv[i + 1] : undefined
|
|
23
|
+
}
|
|
24
|
+
const target = arg('--target')
|
|
25
|
+
const thresholdRaw = arg('--threshold')
|
|
26
|
+
const variantId = arg('--variant')
|
|
27
|
+
const threshold = thresholdRaw !== undefined ? Number(thresholdRaw) : undefined
|
|
28
|
+
if (thresholdRaw !== undefined && Number.isNaN(threshold)) {
|
|
29
|
+
console.error(`eval-harness: --threshold must be a number, got "${thresholdRaw}"`)
|
|
30
|
+
process.exit(2)
|
|
31
|
+
}
|
|
32
|
+
const report = await runHarness({ targetUrl: target, threshold, variantId })
|
|
33
|
+
process.exitCode = report.aggregate < report.threshold ? 1 : 0
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async function cmdCompare(argv: string[]): Promise<void> {
|
|
37
|
+
const [baselinePath, headPath] = argv
|
|
38
|
+
if (!baselinePath || !headPath) help()
|
|
39
|
+
const baseline = await readScorecard(baselinePath)
|
|
40
|
+
const head = await readScorecard(headPath)
|
|
41
|
+
const diff = diffScorecards(baseline, head)
|
|
42
|
+
const arrow = diff.aggregateDelta >= 0 ? '↑' : '↓'
|
|
43
|
+
console.log(
|
|
44
|
+
`aggregate ${baseline.aggregate.toFixed(3)} → ${head.aggregate.toFixed(3)} (${arrow}${Math.abs(diff.aggregateDelta).toFixed(3)})`,
|
|
45
|
+
)
|
|
46
|
+
for (const f of diff.perFlow) {
|
|
47
|
+
const b = f.baseline?.toFixed(3) ?? '—'
|
|
48
|
+
const h = f.head?.toFixed(3) ?? '—'
|
|
49
|
+
const d = f.delta !== null ? `${f.delta >= 0 ? '+' : ''}${f.delta.toFixed(3)}` : ''
|
|
50
|
+
const tag = f.status.padEnd(10, ' ')
|
|
51
|
+
console.log(` ${tag} ${f.name}: ${b} → ${h} ${d}`)
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
async function main(): Promise<void> {
|
|
56
|
+
const [cmd, ...rest] = process.argv.slice(2)
|
|
57
|
+
if (cmd === 'run') return cmdRun(rest)
|
|
58
|
+
if (cmd === 'compare') return cmdCompare(rest)
|
|
59
|
+
help()
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
main().catch((err) => {
|
|
63
|
+
console.error('[eval-harness] fatal:', err)
|
|
64
|
+
process.exit(2)
|
|
65
|
+
})
|
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
// Eval runner — thin shell over @tangle-network/agent-eval primitives.
|
|
2
|
+
//
|
|
3
|
+
// Lifecycle:
|
|
4
|
+
// 1. Load every Scenario exported from `scenarios/*.scenario.ts`.
|
|
5
|
+
// 2. For each scenario, build a TestGradedScenario whose harness.testCommand
|
|
6
|
+
// is a curl-based assertion against the target URL (or skip the test
|
|
7
|
+
// command entirely when running in `judge-only` mode).
|
|
8
|
+
// 3. Delegate to `runTestGradedScenario` from agent-eval — it spawns the
|
|
9
|
+
// command via SubprocessSandboxDriver, emits a Run, persists spans
|
|
10
|
+
// via FileSystemTraceStore.
|
|
11
|
+
// 4. Run every JudgeFn in `judges/*.judge.ts` over the collected
|
|
12
|
+
// ScenarioResult; aggregate via `JudgeRunner` when sandbox-graded.
|
|
13
|
+
// 5. Emit a scorecard via `writeScorecard` (see scorecard.ts).
|
|
14
|
+
//
|
|
15
|
+
// Capture integrity (agent-eval 0.21+):
|
|
16
|
+
// - Allocates a `FileSystemRawProviderSink` per run, rooted under
|
|
17
|
+
// `<tracesDir>/raw-events/<runId>/`. LLM-as-judge call sites that
|
|
18
|
+
// read `globalThis.__agentEvalRawSink` (or that consumers wire
|
|
19
|
+
// explicitly) auto-capture every provider HTTP request/response.
|
|
20
|
+
// - When `EVAL_LLM_BASE_URL` is set the runner calls `assertLlmRoute`
|
|
21
|
+
// at preflight so the sweep fails loud if it would silently fall
|
|
22
|
+
// back to the public router.
|
|
23
|
+
// - After every `runTestGradedScenario` the runner calls
|
|
24
|
+
// `assertRunCaptured` to verify the run wrote the expected spans
|
|
25
|
+
// (and, when judges ran, that every LlmSpan has a matching raw
|
|
26
|
+
// `request` event). Integrity issues are surfaced on the outcome
|
|
27
|
+
// row but only fail the scenario when `EVAL_INTEGRITY=strict`.
|
|
28
|
+
//
|
|
29
|
+
// All primitives come from the published package — this file is the
|
|
30
|
+
// integration glue, not new measurement infra.
|
|
31
|
+
|
|
32
|
+
import { resolve, join, dirname } from 'node:path'
|
|
33
|
+
import { fileURLToPath, pathToFileURL } from 'node:url'
|
|
34
|
+
import {
|
|
35
|
+
FileSystemTraceStore,
|
|
36
|
+
FileSystemExperimentStore,
|
|
37
|
+
SubprocessSandboxDriver,
|
|
38
|
+
assertLlmRoute,
|
|
39
|
+
LlmRouteAssertionError,
|
|
40
|
+
runTestGradedScenario,
|
|
41
|
+
type Scenario,
|
|
42
|
+
type TestGradedScenario,
|
|
43
|
+
type TestGradedRunResult,
|
|
44
|
+
} from '@tangle-network/agent-eval'
|
|
45
|
+
import {
|
|
46
|
+
FileSystemRawProviderSink,
|
|
47
|
+
assertRunCaptured,
|
|
48
|
+
type RawProviderSink,
|
|
49
|
+
type RunIntegrityReport,
|
|
50
|
+
} from '@tangle-network/agent-eval/traces'
|
|
51
|
+
// Single source of truth for scenario loading: the agent-eval:scenarios
|
|
52
|
+
// layer composes `src/eval/scenario-loader.ts` next to this runner. Pre-fix
|
|
53
|
+
// the family re-implemented a weaker loader inline (no shape validation),
|
|
54
|
+
// silently diverging from the layer's strict checks. Per CLAUDE.md
|
|
55
|
+
// "extend, don't duplicate", the runner imports the layer's loader.
|
|
56
|
+
import { loadScenarios, type LoadedScenario } from './scenario-loader.js'
|
|
57
|
+
import { writeScorecard, type ScorecardFlow } from './scorecard.js'
|
|
58
|
+
|
|
59
|
+
export type IntegrityMode = 'off' | 'log' | 'strict'
|
|
60
|
+
|
|
61
|
+
export interface RunnerOptions {
|
|
62
|
+
/** Project root — defaults to cwd of the runner. */
|
|
63
|
+
projectRoot?: string
|
|
64
|
+
/** HTTP target URL the test commands hit. */
|
|
65
|
+
targetUrl?: string
|
|
66
|
+
/** Pass threshold for the aggregate. CI gate uses this. */
|
|
67
|
+
threshold?: number
|
|
68
|
+
/** Override scenarios dir (default: <root>/scenarios). */
|
|
69
|
+
scenariosDir?: string
|
|
70
|
+
/** Override judges dir (default: <root>/judges). */
|
|
71
|
+
judgesDir?: string
|
|
72
|
+
/** Override traces dir (default: <root>/.evolve/agent-eval/traces). */
|
|
73
|
+
tracesDir?: string
|
|
74
|
+
/** Override experiments dir (default: <root>/.evolve/agent-eval/experiments). */
|
|
75
|
+
experimentsDir?: string
|
|
76
|
+
/**
|
|
77
|
+
* Root for per-run `FileSystemRawProviderSink` directories. Default:
|
|
78
|
+
* `<tracesDir>/../raw-events`. Disabled when `integrityMode` is `'off'`.
|
|
79
|
+
*/
|
|
80
|
+
rawEventsDir?: string
|
|
81
|
+
/** Where the project-level scorecard.json lands. */
|
|
82
|
+
scorecardPath?: string
|
|
83
|
+
/** Variant label tagged onto every Run for A/B compares. */
|
|
84
|
+
variantId?: string
|
|
85
|
+
/**
|
|
86
|
+
* Capture-integrity behaviour after each `runTestGradedScenario`:
|
|
87
|
+
*
|
|
88
|
+
* - `'off'` — skip raw-sink wiring and `assertRunCaptured`.
|
|
89
|
+
* - `'log'` — assert and surface issues on the outcome row, but do
|
|
90
|
+
* NOT downgrade the scenario verdict. (default)
|
|
91
|
+
* - `'strict'`— integrity issues mark the scenario as failed with
|
|
92
|
+
* `failureClass='integrity'`.
|
|
93
|
+
*
|
|
94
|
+
* Honours `EVAL_INTEGRITY` env var when unset.
|
|
95
|
+
*/
|
|
96
|
+
integrityMode?: IntegrityMode
|
|
97
|
+
/**
|
|
98
|
+
* Optional LLM client options carried only for the preflight route guard.
|
|
99
|
+
* When `baseUrl` is set the runner calls `assertLlmRoute` once before any
|
|
100
|
+
* scenario runs so the sweep fails loud if it would silently fall back
|
|
101
|
+
* to the public router. Mirrors the `LlmClientOptions` shape from
|
|
102
|
+
* agent-eval; pass `{ baseUrl, provider, apiKey }` for the LLM judge
|
|
103
|
+
* route you actually want to exercise.
|
|
104
|
+
*/
|
|
105
|
+
llmOpts?: {
|
|
106
|
+
baseUrl?: string
|
|
107
|
+
provider?: string
|
|
108
|
+
apiKey?: string
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
interface ScenarioOutcome {
|
|
113
|
+
scenarioId: string
|
|
114
|
+
pass: boolean
|
|
115
|
+
score: number
|
|
116
|
+
durationMs: number
|
|
117
|
+
failureClass: string | null
|
|
118
|
+
filePath: string
|
|
119
|
+
runId: string
|
|
120
|
+
/**
|
|
121
|
+
* Capture-integrity issues observed at run-end. Empty in the common
|
|
122
|
+
* happy-path case. Surfaced on the row so a launch reviewer can spot
|
|
123
|
+
* runs that completed structurally but lost their forensic evidence.
|
|
124
|
+
*/
|
|
125
|
+
integrityIssues?: string[]
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Lightweight RawProviderSink handle exposed on `globalThis` for ad-hoc
|
|
130
|
+
* LLM-judge wiring. A judge call site can read this to pass `rawSink`
|
|
131
|
+
* into `callLlm` without the runner having to know about the judge. The
|
|
132
|
+
* canonical pattern is to wire `rawSink` explicitly via dependency
|
|
133
|
+
* injection — this hook exists so the example judge auto-captures.
|
|
134
|
+
*/
|
|
135
|
+
declare global {
|
|
136
|
+
// eslint-disable-next-line no-var
|
|
137
|
+
var __agentEvalRawSink: RawProviderSink | undefined
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
const HERE = dirname(fileURLToPath(import.meta.url))
|
|
141
|
+
const DEFAULT_ROOT = resolve(HERE, '..', '..')
|
|
142
|
+
|
|
143
|
+
function shQuote(s: string): string {
|
|
144
|
+
return `'${String(s).replace(/'/g, `'\\''`)}'`
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// Translate a Scenario into a TestGradedScenario — the bridge between
|
|
148
|
+
// the conversational scenario shape and the test-graded-runner shape.
|
|
149
|
+
//
|
|
150
|
+
// Default policy: every scenario's first turn is POST-ed at the target
|
|
151
|
+
// URL's /chat route, and the response is checked for non-empty content.
|
|
152
|
+
// Override by editing the testCommand in your scenario file's tags.
|
|
153
|
+
function toTestGraded(scenario: Scenario, targetUrl: string): TestGradedScenario {
|
|
154
|
+
const customTestCommand = (scenario as Scenario & { testCommand?: string }).testCommand
|
|
155
|
+
const firstTurn = scenario.turns[0]
|
|
156
|
+
const userMessage = firstTurn?.user ?? ''
|
|
157
|
+
const defaultTest =
|
|
158
|
+
`curl -sS -o /tmp/eval-body -w '%{http_code}' -X POST -H 'content-type: application/json' ` +
|
|
159
|
+
`--data ${shQuote(JSON.stringify({ message: userMessage, scenarioId: scenario.id }))} ` +
|
|
160
|
+
`${shQuote(`${targetUrl}/chat`)} | grep -E '^(200|201)$' >/dev/null && ` +
|
|
161
|
+
`test $(wc -c < /tmp/eval-body) -ge 1`
|
|
162
|
+
return {
|
|
163
|
+
id: scenario.id,
|
|
164
|
+
description: scenario.label ?? scenario.thesis ?? scenario.id,
|
|
165
|
+
harness: {
|
|
166
|
+
testCommand: customTestCommand ?? defaultTest,
|
|
167
|
+
timeoutMs: 30_000,
|
|
168
|
+
},
|
|
169
|
+
passThreshold: 1.0,
|
|
170
|
+
tags: { persona: scenario.persona, dimensions: scenario.dimensions.join(',') },
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export interface RunReport {
|
|
175
|
+
timestamp: string
|
|
176
|
+
variantId?: string
|
|
177
|
+
scenarioCount: number
|
|
178
|
+
passCount: number
|
|
179
|
+
aggregate: number
|
|
180
|
+
threshold: number
|
|
181
|
+
outcomes: ScenarioOutcome[]
|
|
182
|
+
tracesDir: string
|
|
183
|
+
rawEventsDir: string | null
|
|
184
|
+
scorecardPath: string
|
|
185
|
+
integrityMode: IntegrityMode
|
|
186
|
+
/** Per-run integrity reports, indexed by runId. */
|
|
187
|
+
integrityReports: Record<string, RunIntegrityReport>
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
function resolveIntegrityMode(opt: IntegrityMode | undefined): IntegrityMode {
|
|
191
|
+
if (opt) return opt
|
|
192
|
+
const env = (process.env.EVAL_INTEGRITY ?? '').toLowerCase()
|
|
193
|
+
if (env === 'off' || env === 'log' || env === 'strict') return env
|
|
194
|
+
return 'log'
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
export async function runHarness(opts: RunnerOptions = {}): Promise<RunReport> {
|
|
198
|
+
const projectRoot = opts.projectRoot ?? process.cwd()
|
|
199
|
+
const targetUrl = opts.targetUrl ?? process.env.EVAL_TARGET_BASE_URL ?? 'http://127.0.0.1:8787'
|
|
200
|
+
const threshold = opts.threshold ?? Number(process.env.EVAL_THRESHOLD ?? '0.7')
|
|
201
|
+
const scenariosDir = opts.scenariosDir ?? join(projectRoot, 'scenarios')
|
|
202
|
+
const tracesDir = opts.tracesDir ?? join(projectRoot, '.evolve', 'agent-eval', 'traces')
|
|
203
|
+
const experimentsDir =
|
|
204
|
+
opts.experimentsDir ?? join(projectRoot, '.evolve', 'agent-eval', 'experiments')
|
|
205
|
+
const rawEventsDir =
|
|
206
|
+
opts.rawEventsDir ?? join(projectRoot, '.evolve', 'agent-eval', 'raw-events')
|
|
207
|
+
const scorecardPath = opts.scorecardPath ?? join(projectRoot, '.evolve', 'scorecard.json')
|
|
208
|
+
const variantId = opts.variantId ?? process.env.EVAL_VARIANT_ID
|
|
209
|
+
const integrityMode = resolveIntegrityMode(opts.integrityMode)
|
|
210
|
+
|
|
211
|
+
// ── 0.21 Directive 2: assert the route at preflight ───────────────────
|
|
212
|
+
// Pure function; no I/O. Only runs when a baseUrl is supplied (env or
|
|
213
|
+
// opts) — the eval-harness ships with no LLM judge by default, so we
|
|
214
|
+
// don't want to block users who never call an LLM. When a route IS
|
|
215
|
+
// declared, fail loud before any scenario runs.
|
|
216
|
+
const llmBaseUrl = opts.llmOpts?.baseUrl ?? process.env.EVAL_LLM_BASE_URL
|
|
217
|
+
const llmApiKey = opts.llmOpts?.apiKey ?? process.env.EVAL_LLM_API_KEY ?? process.env.TANGLE_API_KEY
|
|
218
|
+
const llmProvider = opts.llmOpts?.provider ?? process.env.EVAL_LLM_PROVIDER
|
|
219
|
+
if (llmBaseUrl) {
|
|
220
|
+
try {
|
|
221
|
+
assertLlmRoute(
|
|
222
|
+
{ baseUrl: llmBaseUrl, apiKey: llmApiKey, provider: llmProvider },
|
|
223
|
+
{ requireExplicitBaseUrl: true, requireAuth: true },
|
|
224
|
+
)
|
|
225
|
+
} catch (err) {
|
|
226
|
+
if (err instanceof LlmRouteAssertionError) {
|
|
227
|
+
throw new Error(
|
|
228
|
+
`eval-harness: preflight route check failed (code=${err.code}). ` +
|
|
229
|
+
`Set EVAL_LLM_BASE_URL + auth, or unset to skip the check. ${err.message}`,
|
|
230
|
+
)
|
|
231
|
+
}
|
|
232
|
+
throw err
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
const traceStore = new FileSystemTraceStore({ dir: tracesDir })
|
|
237
|
+
// Experiment store is created so callers can persist experiment metadata
|
|
238
|
+
// alongside traces; its mere existence ensures the dir is created.
|
|
239
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
240
|
+
const _experimentStore = new FileSystemExperimentStore({ dir: experimentsDir })
|
|
241
|
+
const driver = new SubprocessSandboxDriver({ cwd: projectRoot })
|
|
242
|
+
|
|
243
|
+
const loaded: LoadedScenario[] = await loadScenarios(scenariosDir)
|
|
244
|
+
if (loaded.length === 0) {
|
|
245
|
+
throw new Error(
|
|
246
|
+
`eval-harness: no scenarios loaded from ${scenariosDir}. Drop a *.scenario.ts file with a default-exported Scenario.`,
|
|
247
|
+
)
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
const integrityReports: Record<string, RunIntegrityReport> = {}
|
|
251
|
+
const outcomes: ScenarioOutcome[] = []
|
|
252
|
+
for (const { scenario, filePath } of loaded) {
|
|
253
|
+
const tgs = toTestGraded(scenario, targetUrl)
|
|
254
|
+
const startedAt = Date.now()
|
|
255
|
+
|
|
256
|
+
// ── 0.21 Directive 1: per-run RawProviderSink ──────────────────────
|
|
257
|
+
// Allocated even when no LLM judge runs — the cost is one (possibly
|
|
258
|
+
// empty) NDJSON file per scenario, and the alternative is a silent
|
|
259
|
+
// partial-capture bug the next time someone wires in an LLM judge.
|
|
260
|
+
// Exposed via globalThis so the ad-hoc judge call sites in this
|
|
261
|
+
// template's `judges/` dir pick it up without explicit plumbing.
|
|
262
|
+
let rawSink: RawProviderSink | undefined
|
|
263
|
+
if (integrityMode !== 'off') {
|
|
264
|
+
rawSink = new FileSystemRawProviderSink({
|
|
265
|
+
dir: join(rawEventsDir, scenario.id),
|
|
266
|
+
})
|
|
267
|
+
globalThis.__agentEvalRawSink = rawSink
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
let result: TestGradedRunResult
|
|
271
|
+
try {
|
|
272
|
+
result = await runTestGradedScenario(tgs, traceStore, { driver, variantId })
|
|
273
|
+
} catch (err) {
|
|
274
|
+
outcomes.push({
|
|
275
|
+
scenarioId: scenario.id,
|
|
276
|
+
pass: false,
|
|
277
|
+
score: 0,
|
|
278
|
+
durationMs: Date.now() - startedAt,
|
|
279
|
+
failureClass: 'harness_error',
|
|
280
|
+
filePath,
|
|
281
|
+
runId: '',
|
|
282
|
+
})
|
|
283
|
+
console.error(` ✗ ${scenario.id} — harness error: ${(err as Error).message}`)
|
|
284
|
+
continue
|
|
285
|
+
} finally {
|
|
286
|
+
// Always drop the global handle so the next scenario gets its own
|
|
287
|
+
// sink (or none, when integrity is off).
|
|
288
|
+
globalThis.__agentEvalRawSink = undefined
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
// ── 0.21 Directive 3: assert the run captured before declaring done ─
|
|
292
|
+
// Read-only. We do NOT set `requireRawCoverageOfLlmSpans` because
|
|
293
|
+
// the test-graded path may not call any LLM at all (the default
|
|
294
|
+
// testCommand is a curl). When an LLM judge IS wired the sink will
|
|
295
|
+
// be populated and consumers can tighten this in `runIntegrityExpect`.
|
|
296
|
+
let integrityIssues: string[] | undefined
|
|
297
|
+
if (integrityMode !== 'off' && result.runId) {
|
|
298
|
+
const report = await assertRunCaptured(traceStore, result.runId, {
|
|
299
|
+
rawSink,
|
|
300
|
+
// requireOutcome: the harness always sets pass/score, so this is
|
|
301
|
+
// a cheap belt-and-suspenders check.
|
|
302
|
+
requireOutcome: true,
|
|
303
|
+
})
|
|
304
|
+
integrityReports[result.runId] = report
|
|
305
|
+
if (!report.ok) {
|
|
306
|
+
integrityIssues = report.issues.map((i) => i.code)
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
const integrityFailed = integrityMode === 'strict' && integrityIssues !== undefined
|
|
311
|
+
outcomes.push({
|
|
312
|
+
scenarioId: scenario.id,
|
|
313
|
+
pass: integrityFailed ? false : result.pass,
|
|
314
|
+
score: integrityFailed ? 0 : result.score,
|
|
315
|
+
durationMs: Date.now() - startedAt,
|
|
316
|
+
failureClass: integrityFailed ? 'integrity' : (result.failureClass ?? null),
|
|
317
|
+
filePath,
|
|
318
|
+
runId: result.runId,
|
|
319
|
+
...(integrityIssues ? { integrityIssues } : {}),
|
|
320
|
+
})
|
|
321
|
+
const mark = integrityFailed ? '✗' : result.pass ? '✓' : '✗'
|
|
322
|
+
const integritySuffix = integrityIssues ? ` (integrity: ${integrityIssues.join(', ')})` : ''
|
|
323
|
+
console.log(
|
|
324
|
+
` ${mark} ${scenario.id} — score=${result.score.toFixed(3)}${integritySuffix}`,
|
|
325
|
+
)
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
const passCount = outcomes.filter((o) => o.pass).length
|
|
329
|
+
const aggregate = outcomes.reduce((a, o) => a + o.score, 0) / Math.max(outcomes.length, 1)
|
|
330
|
+
|
|
331
|
+
const flows: ScorecardFlow[] = outcomes.map((o) => ({
|
|
332
|
+
name: o.scenarioId,
|
|
333
|
+
value: o.score,
|
|
334
|
+
target: 1.0,
|
|
335
|
+
status: o.pass ? 'pass' : 'fail',
|
|
336
|
+
direction: 'higher-better',
|
|
337
|
+
productValueClaim: `Scenario "${o.scenarioId}" — pass rate against the agent under test.`,
|
|
338
|
+
}))
|
|
339
|
+
const report: RunReport = {
|
|
340
|
+
timestamp: new Date().toISOString(),
|
|
341
|
+
variantId,
|
|
342
|
+
scenarioCount: outcomes.length,
|
|
343
|
+
passCount,
|
|
344
|
+
aggregate,
|
|
345
|
+
threshold,
|
|
346
|
+
outcomes,
|
|
347
|
+
tracesDir,
|
|
348
|
+
rawEventsDir: integrityMode === 'off' ? null : rawEventsDir,
|
|
349
|
+
scorecardPath,
|
|
350
|
+
integrityMode,
|
|
351
|
+
integrityReports,
|
|
352
|
+
}
|
|
353
|
+
await writeScorecard(scorecardPath, {
|
|
354
|
+
product: process.env.EVAL_PRODUCT_NAME ?? 'eval-harness',
|
|
355
|
+
timestamp: report.timestamp,
|
|
356
|
+
aggregate,
|
|
357
|
+
coverage: `${passCount}/${outcomes.length} scenarios passed`,
|
|
358
|
+
flows,
|
|
359
|
+
})
|
|
360
|
+
const integritySummary =
|
|
361
|
+
integrityMode === 'off'
|
|
362
|
+
? 'integrity=off'
|
|
363
|
+
: `integrity=${integrityMode} ` +
|
|
364
|
+
`${Object.values(integrityReports).filter((r) => !r.ok).length}/${
|
|
365
|
+
Object.keys(integrityReports).length
|
|
366
|
+
} flagged`
|
|
367
|
+
console.log(
|
|
368
|
+
`\naggregate=${aggregate.toFixed(3)} pass=${passCount}/${outcomes.length} threshold=${threshold} ${integritySummary}`,
|
|
369
|
+
)
|
|
370
|
+
return report
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
// CLI-friendly default — invoked from `pnpm eval` when this file is the entry.
|
|
374
|
+
if (import.meta.url === pathToFileURL(process.argv[1] ?? '').href) {
|
|
375
|
+
const projectRoot = process.env.EVAL_PROJECT_ROOT ?? DEFAULT_ROOT
|
|
376
|
+
runHarness({ projectRoot })
|
|
377
|
+
.then((r) => {
|
|
378
|
+
process.exitCode = r.aggregate < r.threshold ? 1 : 0
|
|
379
|
+
})
|
|
380
|
+
.catch((err) => {
|
|
381
|
+
console.error('[runner] fatal:', err)
|
|
382
|
+
process.exit(2)
|
|
383
|
+
})
|
|
384
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// Scorecard emitter — writes scorecard.json in the shape consumed by the
|
|
2
|
+
// project-level dashboard (.evolve/scorecard.json).
|
|
3
|
+
//
|
|
4
|
+
// The shape is intentionally a subset of the parent-repo scorecard so a
|
|
5
|
+
// composed eval harness drops into an existing .evolve workflow without
|
|
6
|
+
// translation. Extra dashboard fields (sourceMtime, stale, etc.) are
|
|
7
|
+
// only relevant when the parent repo aggregates multiple inputs — for a
|
|
8
|
+
// standalone harness, the runner's outputs are the single source.
|
|
9
|
+
|
|
10
|
+
import { writeFile, mkdir } from 'node:fs/promises'
|
|
11
|
+
import { dirname } from 'node:path'
|
|
12
|
+
|
|
13
|
+
export type FlowDirection = 'higher-better' | 'lower-better'
|
|
14
|
+
export type FlowStatus = 'pass' | 'fail' | 'skip'
|
|
15
|
+
|
|
16
|
+
export interface ScorecardFlow {
|
|
17
|
+
name: string
|
|
18
|
+
value: number
|
|
19
|
+
target: number
|
|
20
|
+
status: FlowStatus
|
|
21
|
+
productValueClaim: string
|
|
22
|
+
direction: FlowDirection
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface Scorecard {
|
|
26
|
+
product: string
|
|
27
|
+
timestamp: string
|
|
28
|
+
aggregate: number
|
|
29
|
+
coverage: string
|
|
30
|
+
flows: ScorecardFlow[]
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export async function writeScorecard(path: string, scorecard: Scorecard): Promise<void> {
|
|
34
|
+
await mkdir(dirname(path), { recursive: true })
|
|
35
|
+
await writeFile(path, JSON.stringify(scorecard, null, 2) + '\n', 'utf8')
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export async function readScorecard(path: string): Promise<Scorecard> {
|
|
39
|
+
const { readFile } = await import('node:fs/promises')
|
|
40
|
+
const raw = await readFile(path, 'utf8')
|
|
41
|
+
return JSON.parse(raw) as Scorecard
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface ScorecardDiff {
|
|
45
|
+
baseline: Scorecard
|
|
46
|
+
head: Scorecard
|
|
47
|
+
aggregateDelta: number
|
|
48
|
+
perFlow: Array<{
|
|
49
|
+
name: string
|
|
50
|
+
baseline: number | null
|
|
51
|
+
head: number | null
|
|
52
|
+
delta: number | null
|
|
53
|
+
status: 'improved' | 'regressed' | 'stable' | 'introduced' | 'removed'
|
|
54
|
+
}>
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const STABILITY_EPSILON = 0.005
|
|
58
|
+
|
|
59
|
+
export function diffScorecards(baseline: Scorecard, head: Scorecard): ScorecardDiff {
|
|
60
|
+
const baselineByName = new Map<string, ScorecardFlow>()
|
|
61
|
+
for (const f of baseline.flows) baselineByName.set(f.name, f)
|
|
62
|
+
const headByName = new Map<string, ScorecardFlow>()
|
|
63
|
+
for (const f of head.flows) headByName.set(f.name, f)
|
|
64
|
+
const allNames = new Set<string>([...baselineByName.keys(), ...headByName.keys()])
|
|
65
|
+
const perFlow: ScorecardDiff['perFlow'] = []
|
|
66
|
+
for (const name of allNames) {
|
|
67
|
+
const b = baselineByName.get(name)
|
|
68
|
+
const h = headByName.get(name)
|
|
69
|
+
if (b && h) {
|
|
70
|
+
const delta = h.value - b.value
|
|
71
|
+
let status: ScorecardDiff['perFlow'][number]['status'] = 'stable'
|
|
72
|
+
if (Math.abs(delta) >= STABILITY_EPSILON) {
|
|
73
|
+
const better = h.direction === 'higher-better' ? delta > 0 : delta < 0
|
|
74
|
+
status = better ? 'improved' : 'regressed'
|
|
75
|
+
}
|
|
76
|
+
perFlow.push({ name, baseline: b.value, head: h.value, delta, status })
|
|
77
|
+
} else if (b) {
|
|
78
|
+
perFlow.push({ name, baseline: b.value, head: null, delta: null, status: 'removed' })
|
|
79
|
+
} else if (h) {
|
|
80
|
+
perFlow.push({ name, baseline: null, head: h.value, delta: null, status: 'introduced' })
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
baseline,
|
|
85
|
+
head,
|
|
86
|
+
aggregateDelta: head.aggregate - baseline.aggregate,
|
|
87
|
+
perFlow,
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Fixture: scenario missing the required `thesis` field. The layer's
|
|
2
|
+
// strict loader must reject this; the family's pre-fix loader silently
|
|
3
|
+
// accepted it.
|
|
4
|
+
const scenario = {
|
|
5
|
+
id: 'fixture-bad',
|
|
6
|
+
persona: 'developer',
|
|
7
|
+
label: 'missing-thesis',
|
|
8
|
+
// NB: thesis intentionally omitted to trigger the strict validator.
|
|
9
|
+
dimensions: ['success'],
|
|
10
|
+
turns: [{ user: 'hi' }],
|
|
11
|
+
artifactChecks: [],
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default scenario
|