@percepta/kaizen 0.2.0 → 0.2.1

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.
Files changed (29) hide show
  1. package/README.md +10 -2
  2. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/BUILD_ID +1 -1
  3. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/build-manifest.json +2 -2
  4. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/prerender-manifest.json +3 -3
  5. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/404.html +1 -1
  6. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/500.html +1 -1
  7. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[pipeline]/run/[runId].html +1 -1
  8. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/[pipeline].html +1 -1
  9. package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/server/pages/index.html +1 -1
  10. package/dist/commands/init-pipeline.js +18 -3
  11. package/dist/commands/init-pipeline.js.map +1 -1
  12. package/dist/commands/init.js +1 -0
  13. package/dist/commands/init.js.map +1 -1
  14. package/dist/index.js +1 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/langfuse.d.ts +8 -0
  17. package/dist/langfuse.js +9 -0
  18. package/dist/langfuse.js.map +1 -1
  19. package/dist/lib/runner.js +8 -0
  20. package/dist/lib/runner.js.map +1 -1
  21. package/package.json +2 -2
  22. package/templates/pipeline/eval.py +9 -0
  23. package/templates/pipeline/eval.ts +168 -0
  24. package/templates/pipeline/pipeline.md +10 -1
  25. package/templates/workspace/.claude/agents/variant-builder.md +2 -0
  26. package/templates/workspace/.claude/commands/kaizen.md +20 -0
  27. /package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/{SjAC88d3utiBvgy5eS--0 → NipfouxkPumeJ20wdsKlr}/_buildManifest.js +0 -0
  28. /package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/{SjAC88d3utiBvgy5eS--0 → NipfouxkPumeJ20wdsKlr}/_clientMiddlewareManifest.json +0 -0
  29. /package/dashboard/.next/standalone/packages/kaizen/dashboard/.next/static/{SjAC88d3utiBvgy5eS--0 → NipfouxkPumeJ20wdsKlr}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -9,7 +9,7 @@ For a persistent local `kaizen` command:
9
9
  ```bash
10
10
  npm install -g @percepta/kaizen
11
11
  kaizen init
12
- kaizen create pipeline <pipeline-id>
12
+ kaizen create pipeline <pipeline-id> # add --eval-language ts for TypeScript
13
13
  kaizen run --pipeline <pipeline-id> --variant baseline --hypothesis "starting baseline"
14
14
  kaizen studio
15
15
  ```
@@ -96,7 +96,7 @@ The web app (Next.js, pages router) provides:
96
96
  In real use, each target/customer repo owns its own `customers/`, `pipelines/`, `rubrics/`, `eval/`, and optional `views/` directories. Each pipeline is defined in `pipelines/*.md` with YAML frontmatter:
97
97
 
98
98
  ```yaml
99
- run_eval: eval/<pipeline>.py
99
+ run_eval: eval/<pipeline>.ts # or .py
100
100
  eval_version: 1
101
101
  dataset_version: v1
102
102
  eval_style: ground-truth
@@ -104,6 +104,14 @@ primary_metric: score
104
104
  ```
105
105
 
106
106
  The eval script emits NDJSON events to `--out-fd`; the runner owns `.kaizen/runs/`.
107
+ Kaizen runs Python evals with `python3`, JavaScript evals with `node`, and
108
+ TypeScript evals with the package's bundled `tsx` loader. New pipeline scaffolds
109
+ default to Python; pass `--eval-language ts` to create a TypeScript eval.
110
+ For Langfuse-backed production evals, the same script should also link each
111
+ dataset item to the fresh trace produced by that run in a Langfuse dataset run
112
+ and write the primary metric as a trace score. Those writes are for durable
113
+ trace inspection; the NDJSON `complete.score` remains Kaizen's required result
114
+ contract.
107
115
 
108
116
  This repo keeps historical definitions under `examples/legacy-workspace/` only as sample data for local Studio development:
109
117
 
@@ -1 +1 @@
1
- SjAC88d3utiBvgy5eS--0
1
+ NipfouxkPumeJ20wdsKlr
@@ -43,8 +43,8 @@
43
43
  "devFiles": [],
44
44
  "polyfillFiles": [],
45
45
  "lowPriorityFiles": [
46
- "static/SjAC88d3utiBvgy5eS--0/_ssgManifest.js",
47
- "static/SjAC88d3utiBvgy5eS--0/_buildManifest.js"
46
+ "static/NipfouxkPumeJ20wdsKlr/_ssgManifest.js",
47
+ "static/NipfouxkPumeJ20wdsKlr/_buildManifest.js"
48
48
  ],
49
49
  "rootMainFiles": []
50
50
  }
@@ -3,9 +3,9 @@
3
3
  "routes": {},
4
4
  "dynamicRoutes": {},
5
5
  "preview": {
6
- "previewModeId": "f76dea4948d5f48a22c602e0323d24dd",
7
- "previewModeSigningKey": "021c33d490add5b43b266ecf3298258aa37c30e93ce68ecea21f593c3ef7eda2",
8
- "previewModeEncryptionKey": "b135ff1f384fe413ec28a25ed22e74f565e2bffcd1d755877ef5d3cd23e10f5f"
6
+ "previewModeId": "14d2fc42d25999f83d901a6bb9c0bb4e",
7
+ "previewModeSigningKey": "c02fd44ac790fb468aa02132a5d362a652dc3ee4fd0ccf568119192c571c38da",
8
+ "previewModeEncryptionKey": "fcb067da738d6d323243f1a6965618a3d3b75c1dd15ae4e6ea6d6130a58d8a02"
9
9
  },
10
10
  "notFoundRoutes": []
11
11
  }
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">404: This page could not be found</title><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="preload" href="/_next/static/chunks/957e4eafeea52721.css" as="style"/><link rel="stylesheet" href="/_next/static/chunks/957e4eafeea52721.css" data-n-g=""/><noscript data-n-css=""></noscript><script src="/_next/static/chunks/e7de444fec87369c.js" defer=""></script><script src="/_next/static/chunks/e39ca73a3364340b.js" defer=""></script><script src="/_next/static/chunks/31c9bc0d82922da1.js" defer=""></script><script src="/_next/static/chunks/turbopack-7c8bece1dcb2a025.js" defer=""></script><script src="/_next/static/chunks/1d3222853e278f3b.js" defer=""></script><script src="/_next/static/chunks/turbopack-2020b4e8396ddd91.js" defer=""></script><script src="/_next/static/SjAC88d3utiBvgy5eS--0/_ssgManifest.js" defer=""></script><script src="/_next/static/SjAC88d3utiBvgy5eS--0/_buildManifest.js" defer=""></script></head><body><div id="__next"><div style="display:flex;height:100vh;overflow:hidden"><div style="flex:1;overflow:hidden;display:flex;flex-direction:column"><div style="flex:1;overflow:auto"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"SjAC88d3utiBvgy5eS--0","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">404: This page could not be found</title><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="preload" href="/_next/static/chunks/957e4eafeea52721.css" as="style"/><link rel="stylesheet" href="/_next/static/chunks/957e4eafeea52721.css" data-n-g=""/><noscript data-n-css=""></noscript><script src="/_next/static/chunks/e7de444fec87369c.js" defer=""></script><script src="/_next/static/chunks/e39ca73a3364340b.js" defer=""></script><script src="/_next/static/chunks/31c9bc0d82922da1.js" defer=""></script><script src="/_next/static/chunks/turbopack-7c8bece1dcb2a025.js" defer=""></script><script src="/_next/static/chunks/1d3222853e278f3b.js" defer=""></script><script src="/_next/static/chunks/turbopack-2020b4e8396ddd91.js" defer=""></script><script src="/_next/static/NipfouxkPumeJ20wdsKlr/_ssgManifest.js" defer=""></script><script src="/_next/static/NipfouxkPumeJ20wdsKlr/_buildManifest.js" defer=""></script></head><body><div id="__next"><div style="display:flex;height:100vh;overflow:hidden"><div style="flex:1;overflow:hidden;display:flex;flex-direction:column"><div style="flex:1;overflow:auto"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"NipfouxkPumeJ20wdsKlr","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="preload" href="/_next/static/chunks/957e4eafeea52721.css" as="style"/><link rel="stylesheet" href="/_next/static/chunks/957e4eafeea52721.css" data-n-g=""/><noscript data-n-css=""></noscript><script src="/_next/static/chunks/e7de444fec87369c.js" defer=""></script><script src="/_next/static/chunks/e39ca73a3364340b.js" defer=""></script><script src="/_next/static/chunks/31c9bc0d82922da1.js" defer=""></script><script src="/_next/static/chunks/turbopack-7c8bece1dcb2a025.js" defer=""></script><script src="/_next/static/chunks/1d3222853e278f3b.js" defer=""></script><script src="/_next/static/chunks/turbopack-2020b4e8396ddd91.js" defer=""></script><script src="/_next/static/SjAC88d3utiBvgy5eS--0/_ssgManifest.js" defer=""></script><script src="/_next/static/SjAC88d3utiBvgy5eS--0/_buildManifest.js" defer=""></script></head><body><div id="__next"><div style="display:flex;height:100vh;overflow:hidden"><div style="flex:1;overflow:hidden;display:flex;flex-direction:column"><div style="flex:1;overflow:auto"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"SjAC88d3utiBvgy5eS--0","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="preload" href="/_next/static/chunks/957e4eafeea52721.css" as="style"/><link rel="stylesheet" href="/_next/static/chunks/957e4eafeea52721.css" data-n-g=""/><noscript data-n-css=""></noscript><script src="/_next/static/chunks/e7de444fec87369c.js" defer=""></script><script src="/_next/static/chunks/e39ca73a3364340b.js" defer=""></script><script src="/_next/static/chunks/31c9bc0d82922da1.js" defer=""></script><script src="/_next/static/chunks/turbopack-7c8bece1dcb2a025.js" defer=""></script><script src="/_next/static/chunks/1d3222853e278f3b.js" defer=""></script><script src="/_next/static/chunks/turbopack-2020b4e8396ddd91.js" defer=""></script><script src="/_next/static/NipfouxkPumeJ20wdsKlr/_ssgManifest.js" defer=""></script><script src="/_next/static/NipfouxkPumeJ20wdsKlr/_buildManifest.js" defer=""></script></head><body><div id="__next"><div style="display:flex;height:100vh;overflow:hidden"><div style="flex:1;overflow:hidden;display:flex;flex-direction:column"><div style="flex:1;overflow:auto"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"NipfouxkPumeJ20wdsKlr","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Kaizen</title><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="preload" href="/_next/static/chunks/957e4eafeea52721.css" as="style"/><link rel="preload" href="/_next/static/chunks/fc08cb52cbbd9486.css" as="style"/><link rel="stylesheet" href="/_next/static/chunks/957e4eafeea52721.css" data-n-g=""/><link rel="stylesheet" href="/_next/static/chunks/fc08cb52cbbd9486.css" data-n-p=""/><noscript data-n-css=""></noscript><script src="/_next/static/chunks/e7de444fec87369c.js" defer=""></script><script src="/_next/static/chunks/e39ca73a3364340b.js" defer=""></script><script src="/_next/static/chunks/31c9bc0d82922da1.js" defer=""></script><script src="/_next/static/chunks/turbopack-7c8bece1dcb2a025.js" defer=""></script><script src="/_next/static/chunks/ea7338704ffb3b75.js" defer=""></script><script src="/_next/static/chunks/0407c34857ed1d44.js" defer=""></script><script src="/_next/static/chunks/turbopack-3ef30666a4876a93.js" defer=""></script><script src="/_next/static/SjAC88d3utiBvgy5eS--0/_buildManifest.js" defer=""></script><script src="/_next/static/SjAC88d3utiBvgy5eS--0/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="display:flex;height:100vh;overflow:hidden"><div style="flex:1;overflow:hidden;display:flex;flex-direction:column"><div style="flex:1;overflow:auto"></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/[pipeline]/run/[runId]","query":{},"buildId":"SjAC88d3utiBvgy5eS--0","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Kaizen</title><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="preload" href="/_next/static/chunks/957e4eafeea52721.css" as="style"/><link rel="preload" href="/_next/static/chunks/fc08cb52cbbd9486.css" as="style"/><link rel="stylesheet" href="/_next/static/chunks/957e4eafeea52721.css" data-n-g=""/><link rel="stylesheet" href="/_next/static/chunks/fc08cb52cbbd9486.css" data-n-p=""/><noscript data-n-css=""></noscript><script src="/_next/static/chunks/e7de444fec87369c.js" defer=""></script><script src="/_next/static/chunks/e39ca73a3364340b.js" defer=""></script><script src="/_next/static/chunks/31c9bc0d82922da1.js" defer=""></script><script src="/_next/static/chunks/turbopack-7c8bece1dcb2a025.js" defer=""></script><script src="/_next/static/chunks/ea7338704ffb3b75.js" defer=""></script><script src="/_next/static/chunks/0407c34857ed1d44.js" defer=""></script><script src="/_next/static/chunks/turbopack-3ef30666a4876a93.js" defer=""></script><script src="/_next/static/NipfouxkPumeJ20wdsKlr/_buildManifest.js" defer=""></script><script src="/_next/static/NipfouxkPumeJ20wdsKlr/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="display:flex;height:100vh;overflow:hidden"><div style="flex:1;overflow:hidden;display:flex;flex-direction:column"><div style="flex:1;overflow:auto"></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/[pipeline]/run/[runId]","query":{},"buildId":"NipfouxkPumeJ20wdsKlr","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Kaizen</title><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="preload" href="/_next/static/chunks/957e4eafeea52721.css" as="style"/><link rel="preload" href="/_next/static/chunks/fc08cb52cbbd9486.css" as="style"/><link rel="stylesheet" href="/_next/static/chunks/957e4eafeea52721.css" data-n-g=""/><link rel="stylesheet" href="/_next/static/chunks/fc08cb52cbbd9486.css" data-n-p=""/><noscript data-n-css=""></noscript><script src="/_next/static/chunks/e7de444fec87369c.js" defer=""></script><script src="/_next/static/chunks/e39ca73a3364340b.js" defer=""></script><script src="/_next/static/chunks/31c9bc0d82922da1.js" defer=""></script><script src="/_next/static/chunks/turbopack-7c8bece1dcb2a025.js" defer=""></script><script src="/_next/static/chunks/ff7d20e97680d2ee.js" defer=""></script><script src="/_next/static/chunks/6f8a28bb54d1476e.js" defer=""></script><script src="/_next/static/chunks/d00ef473c6e5deb6.js" defer=""></script><script src="/_next/static/chunks/turbopack-4ab2e5754ea0dfc2.js" defer=""></script><script src="/_next/static/SjAC88d3utiBvgy5eS--0/_buildManifest.js" defer=""></script><script src="/_next/static/SjAC88d3utiBvgy5eS--0/_ssgManifest.js" defer=""></script></head><body><link rel="preload" as="image" href="/logo-cream.svg"/><div id="__next"><div style="display:flex;height:100vh;overflow:hidden"><div style="flex:1;overflow:hidden;display:flex;flex-direction:column"><div style="flex:1;overflow:auto"><div class="Runs-module__drje5a__container"><div style="display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1.5rem;padding:4rem 2rem;position:relative"><div style="position:absolute;top:1rem;right:1rem"><div class="PipelineSelector-module__xQFfUa__wrapper"><button class="PipelineSelector-module__xQFfUa__trigger"><span class="PipelineSelector-module__xQFfUa__triggerPlaceholder">Select pipeline</span><svg width="10" height="10" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="PipelineSelector-module__xQFfUa__triggerChevron"><polyline points="2,3.5 5,6.5 8,3.5"></polyline></svg></button></div></div><img src="/logo-cream.svg" alt="Kaizen" class="Runs-module__drje5a__heroLogo"/><h1 style="font-size:1.5rem;font-weight:600;color:#fafafa;margin:0">Kaizen</h1><p style="font-size:0.9rem;color:var(--text-secondary);text-align:center;max-width:400px;line-height:1.6">Select a pipeline on the left to investigate traces, build evaluation datasets, record runs, and prepare improvements.</p><div style="display:flex;gap:2rem;margin-top:1rem;font-size:0.75rem;color:var(--text-tertiary)"><span>0<!-- --> pipeline<!-- -->s</span><span>0<!-- --> with eval datasets</span><span>0<!-- --> in progress</span></div></div></div></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/[pipeline]","query":{},"buildId":"SjAC88d3utiBvgy5eS--0","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Kaizen</title><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="preload" href="/_next/static/chunks/957e4eafeea52721.css" as="style"/><link rel="preload" href="/_next/static/chunks/fc08cb52cbbd9486.css" as="style"/><link rel="stylesheet" href="/_next/static/chunks/957e4eafeea52721.css" data-n-g=""/><link rel="stylesheet" href="/_next/static/chunks/fc08cb52cbbd9486.css" data-n-p=""/><noscript data-n-css=""></noscript><script src="/_next/static/chunks/e7de444fec87369c.js" defer=""></script><script src="/_next/static/chunks/e39ca73a3364340b.js" defer=""></script><script src="/_next/static/chunks/31c9bc0d82922da1.js" defer=""></script><script src="/_next/static/chunks/turbopack-7c8bece1dcb2a025.js" defer=""></script><script src="/_next/static/chunks/ff7d20e97680d2ee.js" defer=""></script><script src="/_next/static/chunks/6f8a28bb54d1476e.js" defer=""></script><script src="/_next/static/chunks/d00ef473c6e5deb6.js" defer=""></script><script src="/_next/static/chunks/turbopack-4ab2e5754ea0dfc2.js" defer=""></script><script src="/_next/static/NipfouxkPumeJ20wdsKlr/_buildManifest.js" defer=""></script><script src="/_next/static/NipfouxkPumeJ20wdsKlr/_ssgManifest.js" defer=""></script></head><body><link rel="preload" as="image" href="/logo-cream.svg"/><div id="__next"><div style="display:flex;height:100vh;overflow:hidden"><div style="flex:1;overflow:hidden;display:flex;flex-direction:column"><div style="flex:1;overflow:auto"><div class="Runs-module__drje5a__container"><div style="display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1.5rem;padding:4rem 2rem;position:relative"><div style="position:absolute;top:1rem;right:1rem"><div class="PipelineSelector-module__xQFfUa__wrapper"><button class="PipelineSelector-module__xQFfUa__trigger"><span class="PipelineSelector-module__xQFfUa__triggerPlaceholder">Select pipeline</span><svg width="10" height="10" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="PipelineSelector-module__xQFfUa__triggerChevron"><polyline points="2,3.5 5,6.5 8,3.5"></polyline></svg></button></div></div><img src="/logo-cream.svg" alt="Kaizen" class="Runs-module__drje5a__heroLogo"/><h1 style="font-size:1.5rem;font-weight:600;color:#fafafa;margin:0">Kaizen</h1><p style="font-size:0.9rem;color:var(--text-secondary);text-align:center;max-width:400px;line-height:1.6">Select a pipeline on the left to investigate traces, build evaluation datasets, record runs, and prepare improvements.</p><div style="display:flex;gap:2rem;margin-top:1rem;font-size:0.75rem;color:var(--text-tertiary)"><span>0<!-- --> pipeline<!-- -->s</span><span>0<!-- --> with eval datasets</span><span>0<!-- --> in progress</span></div></div></div></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/[pipeline]","query":{},"buildId":"NipfouxkPumeJ20wdsKlr","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Kaizen</title><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="preload" href="/_next/static/chunks/957e4eafeea52721.css" as="style"/><link rel="preload" href="/_next/static/chunks/fc08cb52cbbd9486.css" as="style"/><link rel="stylesheet" href="/_next/static/chunks/957e4eafeea52721.css" data-n-g=""/><link rel="stylesheet" href="/_next/static/chunks/fc08cb52cbbd9486.css" data-n-p=""/><noscript data-n-css=""></noscript><script src="/_next/static/chunks/e7de444fec87369c.js" defer=""></script><script src="/_next/static/chunks/e39ca73a3364340b.js" defer=""></script><script src="/_next/static/chunks/31c9bc0d82922da1.js" defer=""></script><script src="/_next/static/chunks/turbopack-7c8bece1dcb2a025.js" defer=""></script><script src="/_next/static/chunks/4a52053c5f0b5bd9.js" defer=""></script><script src="/_next/static/chunks/6f8a28bb54d1476e.js" defer=""></script><script src="/_next/static/chunks/d00ef473c6e5deb6.js" defer=""></script><script src="/_next/static/chunks/turbopack-55cc3a90e23138f9.js" defer=""></script><script src="/_next/static/SjAC88d3utiBvgy5eS--0/_ssgManifest.js" defer=""></script><script src="/_next/static/SjAC88d3utiBvgy5eS--0/_buildManifest.js" defer=""></script></head><body><link rel="preload" as="image" href="/logo-cream.svg"/><div id="__next"><div style="display:flex;height:100vh;overflow:hidden"><div style="flex:1;overflow:hidden;display:flex;flex-direction:column"><div style="flex:1;overflow:auto"><div class="Runs-module__drje5a__container"><div style="display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1.5rem;padding:4rem 2rem;position:relative"><div style="position:absolute;top:1rem;right:1rem"><div class="PipelineSelector-module__xQFfUa__wrapper"><button class="PipelineSelector-module__xQFfUa__trigger"><span class="PipelineSelector-module__xQFfUa__triggerPlaceholder">Select pipeline</span><svg width="10" height="10" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="PipelineSelector-module__xQFfUa__triggerChevron"><polyline points="2,3.5 5,6.5 8,3.5"></polyline></svg></button></div></div><img src="/logo-cream.svg" alt="Kaizen" class="Runs-module__drje5a__heroLogo"/><h1 style="font-size:1.5rem;font-weight:600;color:#fafafa;margin:0">Kaizen</h1><p style="font-size:0.9rem;color:var(--text-secondary);text-align:center;max-width:400px;line-height:1.6">Select a pipeline on the left to investigate traces, build evaluation datasets, record runs, and prepare improvements.</p><div style="display:flex;gap:2rem;margin-top:1rem;font-size:0.75rem;color:var(--text-tertiary)"><span>0<!-- --> pipeline<!-- -->s</span><span>0<!-- --> with eval datasets</span><span>0<!-- --> in progress</span></div></div></div></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"SjAC88d3utiBvgy5eS--0","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Kaizen</title><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="preload" href="/_next/static/chunks/957e4eafeea52721.css" as="style"/><link rel="preload" href="/_next/static/chunks/fc08cb52cbbd9486.css" as="style"/><link rel="stylesheet" href="/_next/static/chunks/957e4eafeea52721.css" data-n-g=""/><link rel="stylesheet" href="/_next/static/chunks/fc08cb52cbbd9486.css" data-n-p=""/><noscript data-n-css=""></noscript><script src="/_next/static/chunks/e7de444fec87369c.js" defer=""></script><script src="/_next/static/chunks/e39ca73a3364340b.js" defer=""></script><script src="/_next/static/chunks/31c9bc0d82922da1.js" defer=""></script><script src="/_next/static/chunks/turbopack-7c8bece1dcb2a025.js" defer=""></script><script src="/_next/static/chunks/4a52053c5f0b5bd9.js" defer=""></script><script src="/_next/static/chunks/6f8a28bb54d1476e.js" defer=""></script><script src="/_next/static/chunks/d00ef473c6e5deb6.js" defer=""></script><script src="/_next/static/chunks/turbopack-55cc3a90e23138f9.js" defer=""></script><script src="/_next/static/NipfouxkPumeJ20wdsKlr/_ssgManifest.js" defer=""></script><script src="/_next/static/NipfouxkPumeJ20wdsKlr/_buildManifest.js" defer=""></script></head><body><link rel="preload" as="image" href="/logo-cream.svg"/><div id="__next"><div style="display:flex;height:100vh;overflow:hidden"><div style="flex:1;overflow:hidden;display:flex;flex-direction:column"><div style="flex:1;overflow:auto"><div class="Runs-module__drje5a__container"><div style="display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1.5rem;padding:4rem 2rem;position:relative"><div style="position:absolute;top:1rem;right:1rem"><div class="PipelineSelector-module__xQFfUa__wrapper"><button class="PipelineSelector-module__xQFfUa__trigger"><span class="PipelineSelector-module__xQFfUa__triggerPlaceholder">Select pipeline</span><svg width="10" height="10" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="PipelineSelector-module__xQFfUa__triggerChevron"><polyline points="2,3.5 5,6.5 8,3.5"></polyline></svg></button></div></div><img src="/logo-cream.svg" alt="Kaizen" class="Runs-module__drje5a__heroLogo"/><h1 style="font-size:1.5rem;font-weight:600;color:#fafafa;margin:0">Kaizen</h1><p style="font-size:0.9rem;color:var(--text-secondary);text-align:center;max-width:400px;line-height:1.6">Select a pipeline on the left to investigate traces, build evaluation datasets, record runs, and prepare improvements.</p><div style="display:flex;gap:2rem;margin-top:1rem;font-size:0.75rem;color:var(--text-tertiary)"><span>0<!-- --> pipeline<!-- -->s</span><span>0<!-- --> with eval datasets</span><span>0<!-- --> in progress</span></div></div></div></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"NipfouxkPumeJ20wdsKlr","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -5,6 +5,7 @@ import { boolFlag, parseFlags, strFlag } from "../lib/parse-args.js";
5
5
  import { templatesDir, workspaceRoot } from "../lib/paths.js";
6
6
  import { prompt, promptChoice } from "../lib/prompt.js";
7
7
  const EVAL_STYLES = ["ground-truth", "llm-as-judge", "hybrid"];
8
+ const EVAL_LANGUAGES = ["python", "typescript"];
8
9
  export async function runInitPipeline(argv) {
9
10
  const { positional, flags } = parseFlags(argv);
10
11
  const root = workspaceRoot();
@@ -24,6 +25,11 @@ export async function runInitPipeline(argv) {
24
25
  (await prompt("one-line description", `${name} pipeline`));
25
26
  const evalStyle = (strFlag(flags, "eval-style") ??
26
27
  (await promptChoice("eval style", [...EVAL_STYLES], "ground-truth")));
28
+ const evalLanguage = normalizeEvalLanguage(strFlag(flags, "eval-language") ?? strFlag(flags, "language") ?? "python");
29
+ if (!evalLanguage) {
30
+ process.stderr.write(`invalid eval language. use one of: ${EVAL_LANGUAGES.join(", ")}, py, ts.\n`);
31
+ return 1;
32
+ }
27
33
  const primaryMetric = strFlag(flags, "metric") ??
28
34
  (await prompt("primary metric name", evalStyle === "ground-truth" ? "accuracy" : "score"));
29
35
  const target = strFlag(flags, "target") ?? (await prompt("target score (0-1)", "0.90"));
@@ -33,10 +39,11 @@ export async function runInitPipeline(argv) {
33
39
  eval_style: evalStyle,
34
40
  primary_metric: primaryMetric,
35
41
  target,
42
+ eval_ext: evalLanguage === "typescript" ? "ts" : "py",
36
43
  iso_now: new Date().toISOString(),
37
44
  };
38
45
  const pipelinePath = join(root, "pipelines", `${name}.md`);
39
- const evalPath = join(root, "eval", `${name}.py`);
46
+ const evalPath = join(root, "eval", `${name}.${vars.eval_ext}`);
40
47
  const rubricPath = join(root, "rubrics", `${name}.md`);
41
48
  if (!force) {
42
49
  for (const p of [pipelinePath, evalPath]) {
@@ -50,14 +57,14 @@ export async function runInitPipeline(argv) {
50
57
  ensureDir(join(root, "eval"));
51
58
  const tpl = templatesDir();
52
59
  writeFileSafely(pipelinePath, applyVars(readFileSync(join(tpl, "pipeline", "pipeline.md"), "utf-8"), vars), { overwrite: force });
53
- writeFileSafely(evalPath, applyVars(readFileSync(join(tpl, "pipeline", "eval.py"), "utf-8"), vars), { overwrite: force });
60
+ writeFileSafely(evalPath, applyVars(readFileSync(join(tpl, "pipeline", evalLanguage === "typescript" ? "eval.ts" : "eval.py"), "utf-8"), vars), { overwrite: force });
54
61
  if (evalStyle !== "ground-truth") {
55
62
  ensureDir(join(root, "rubrics"));
56
63
  writeFileSafely(rubricPath, applyVars(readFileSync(join(tpl, "pipeline", "rubric.md"), "utf-8"), vars), { overwrite: force });
57
64
  }
58
65
  process.stdout.write(`scaffolded pipeline "${name}":\n`);
59
66
  process.stdout.write(` pipelines/${name}.md\n`);
60
- process.stdout.write(` eval/${name}.py\n`);
67
+ process.stdout.write(` eval/${name}.${vars.eval_ext}\n`);
61
68
  if (evalStyle !== "ground-truth")
62
69
  process.stdout.write(` rubrics/${name}.md\n`);
63
70
  process.stdout.write([
@@ -70,4 +77,12 @@ export async function runInitPipeline(argv) {
70
77
  ].join("\n"));
71
78
  return 0;
72
79
  }
80
+ function normalizeEvalLanguage(raw) {
81
+ const normalized = raw.toLowerCase();
82
+ if (normalized === "python" || normalized === "py")
83
+ return "python";
84
+ if (normalized === "typescript" || normalized === "ts")
85
+ return "typescript";
86
+ return null;
87
+ }
73
88
  //# sourceMappingURL=init-pipeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init-pipeline.js","sourceRoot":"","sources":["../../src/commands/init-pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-pipeline.js","sourceRoot":"","sources":["../../src/commands/init-pipeline.ts"],"names":[],"mappings":"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"}
@@ -108,6 +108,7 @@ function appendClaudeSection(path, vars) {
108
108
  "",
109
109
  "- Pipeline definitions live in `pipelines/*.md`.",
110
110
  "- Each pipeline has an eval script under `eval/` that emits NDJSON events.",
111
+ "- Real Langfuse-backed eval scripts should also link each dataset item to the fresh run trace in a Langfuse dataset run and write the primary metric as a trace score.",
111
112
  "- Record runs via the supervisor: `kaizen run --pipeline <p> --variant <v>`.",
112
113
  "- Open the dashboard with `kaizen studio` (default port 6789).",
113
114
  "- Custom per-pipeline UIs go in `views/<pipeline>/index.tsx`.",
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAc;IAC1C,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAElD,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sCAAsC,UAAU,IAAI;YAClD,iGAAiG,CACpG,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAElE,MAAM,QAAQ,GACZ,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC;QAC1B,CAAC,MAAM,MAAM,CACX,qCAAqC,EACrC,iBAAiB,CAAC,IAAI,CAAC,CACxB,CAAC,CAAC;IACL,MAAM,YAAY,GAChB,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC;QAC/B,CAAC,MAAM,MAAM,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpD,MAAM,YAAY,GAChB,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC;QAC/B,CAAC,MAAM,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC,CAAC,CAAC;IAEtE,MAAM,IAAI,GAA2B;QACnC,QAAQ;QACR,aAAa,EAAE,YAAY;QAC3B,aAAa,EAAE,YAAY;KAC5B,CAAC;IAEF,sBAAsB;IACtB,eAAe,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAEtE,oBAAoB;IACpB,KAAK,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QAC5D,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3B,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAEjC,4CAA4C;IAC5C,MAAM,aAAa,GAAG,iBAAiB,CACrC,IAAI,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,EAC5C,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,EACrB,IAAI,CACL,CAAC;IAEF,mFAAmF;IACnF,eAAe,CACb,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,EACnC;QACE,gGAAgG;QAChG,OAAO;QACP,OAAO;QACP,cAAc;QACd,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IAEF,kCAAkC;IAClC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC;IACtD,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,eAAe,CAAC,CAAC;IAC3D,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,eAAe,CAAC,CAAC;IAE3D,8DAA8D;IAC9D,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;IAEnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,aAAa;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAExE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB;QACE,EAAE;QACF,OAAO;QACP,gEAAgE;QAChE,2DAA2D;QAC3D,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IAEF,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IACzC,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC;AACtE,CAAC;AAED,SAAS,GAAG,CAAC,IAAY,EAAE,CAAS;IAClC,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,YAAY,CAAC,IAA4B;IAChD,6EAA6E;IAC7E,uEAAuE;IACvE,sBAAsB;IACtB,OAAO;;;;YAIG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;;;YAGlC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;;;;;;;;;;;CAW7C,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY,EAAE,IAA4B;IACrE,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,CAAC,+BAA+B;IACtE,MAAM,OAAO,GAAG;QACd,WAAW;QACX,EAAE;QACF,yFAAyF;QACzF,EAAE;QACF,kDAAkD;QAClD,4EAA4E;QAC5E,8EAA8E;QAC9E,gEAAgE;QAChE,+DAA+D;QAC/D,uDAAuD;QACvD,kFAAkF;QAClF,EAAE;QACF,aAAa,IAAI,CAAC,aAAa,aAAa,IAAI,CAAC,QAAQ,KAAK;QAC9D,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -9,6 +9,7 @@ const HELP = `kaizen — automated AI researcher
9
9
  human-facing:
10
10
  kaizen init scaffold a Kaizen workspace (run once per repo)
11
11
  kaizen create pipeline [name] add a pipeline definition + starter eval
12
+ [--eval-language py|ts]
12
13
  kaizen studio [--port 6789] [--state-dir <dir>]
13
14
  open the local Kaizen dashboard against this workspace
14
15
 
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBZ,CAAC;AAEF,KAAK,UAAU,IAAI,CAAC,IAAc;IAChC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAEjC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;QACjD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,QAAQ;YACX,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,eAAe,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBACvB,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,eAAe,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACzD,KAAK,MAAM;YACT,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBACvB,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAChD,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAChD,KAAK,SAAS;YACZ,OAAO,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACpD,KAAK,QAAQ;YACX,OAAO,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD;YACE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,GAAG,OAAO,IAAI,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAC9B,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAC5B,CAAC,GAAG,EAAE,EAAE;IACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC;IACxD,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,13 @@ export interface LangfuseScoreInput {
25
25
  comment?: string;
26
26
  metadata?: Record<string, unknown>;
27
27
  }
28
+ export interface LangfuseDatasetRunItemInput {
29
+ datasetItemId: string;
30
+ traceId: string;
31
+ runName: string;
32
+ runDescription?: string;
33
+ metadata?: Record<string, unknown>;
34
+ }
28
35
  export declare function langfuseConfigFromEnv(env?: NodeJS.ProcessEnv): LangfuseConfig;
29
36
  export declare class LangfuseApiClient {
30
37
  private readonly host;
@@ -35,6 +42,7 @@ export declare class LangfuseApiClient {
35
42
  }): Promise<LangfuseDatasetItem[]>;
36
43
  getTrace(traceId: string): Promise<LangfuseTrace>;
37
44
  createScore(input: LangfuseScoreInput): Promise<unknown>;
45
+ createDatasetRunItem(input: LangfuseDatasetRunItemInput): Promise<unknown>;
38
46
  private get;
39
47
  private post;
40
48
  private request;
package/dist/langfuse.js CHANGED
@@ -50,6 +50,15 @@ export class LangfuseApiClient {
50
50
  metadata: input.metadata,
51
51
  });
52
52
  }
53
+ async createDatasetRunItem(input) {
54
+ return this.post("/api/public/dataset-run-items", {
55
+ datasetItemId: input.datasetItemId,
56
+ traceId: input.traceId,
57
+ runName: input.runName,
58
+ runDescription: input.runDescription,
59
+ metadata: input.metadata,
60
+ });
61
+ }
53
62
  async get(path) {
54
63
  return this.request(path, { method: "GET" });
55
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"langfuse.js","sourceRoot":"","sources":["../src/langfuse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"langfuse.js","sourceRoot":"","sources":["../src/langfuse.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { execSync, spawn } from "node:child_process";
2
2
  import { createWriteStream, existsSync, writeFileSync } from "node:fs";
3
+ import { createRequire } from "node:module";
3
4
  import { arch, hostname, platform } from "node:os";
4
5
  import { extname, join } from "node:path";
5
6
  import { NdjsonReader, } from "./events.js";
@@ -8,6 +9,7 @@ import { loadPipeline, resolveEvalPath } from "./pipeline.js";
8
9
  import { decidePromotion } from "./promotion.js";
9
10
  import { appendNdjsonLine, clearLock, ensureDir, generateRunId, hypothesesPath, isPidAlive, pipelineRunsDir, readJsonIfExists, readLock, runDir, writeJsonAtomic, writeLock, } from "./run-dir.js";
10
11
  const FAILURE_K = 10;
12
+ const require = createRequire(import.meta.url);
11
13
  export async function runExperiment(opts) {
12
14
  const stateDir = opts.stateDir ?? join(opts.workspace, ".kaizen");
13
15
  // 0. Reap stale runs across this pipeline (lock present, PID dead, no terminal event).
@@ -273,6 +275,12 @@ function detectInterpreter(evalPath) {
273
275
  return { cmd: "python3", preArgs: [] };
274
276
  if (ext === ".js" || ext === ".mjs" || ext === ".cjs")
275
277
  return { cmd: "node", preArgs: [] };
278
+ if (ext === ".ts" || ext === ".tsx" || ext === ".mts" || ext === ".cts") {
279
+ return {
280
+ cmd: process.execPath,
281
+ preArgs: ["--import", require.resolve("tsx")],
282
+ };
283
+ }
276
284
  // Default: assume executable with shebang.
277
285
  return { cmd: evalPath, preArgs: [] };
278
286
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAKL,YAAY,GAEb,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,eAAe,EACf,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAoB,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,aAAa,EACb,cAAc,EACd,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACN,eAAe,EACf,SAAS,GACV,MAAM,cAAc,CAAC;AAuBtB,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAgB;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAElE,uFAAuF;IACvF,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAEzC,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,4BAA4B,OAAO,2BAA2B,QAAQ,CAAC,WAAW,CAAC,QAAQ,iBAAiB,IAAI,CAAC,UAAU,MAAM,CAClI,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE1C,6DAA6D;IAC7D,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACrD,SAAS,CAAC,GAAG,CAAC,CAAC;IACf,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAiB;QAC7B,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,IAAI,CAAC,UAAU;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,MAAM;QACtB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAC/B,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;QACrC,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1C,cAAc,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;QAC5C,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,YAAY;QAC/C,eAAe,EAAE,QAAQ,CAAC,WAAW,CAAC,eAAe;QACrD,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,GAAG,QAAQ,EAAE,IAAI,IAAI,EAAE,KAAK,QAAQ,EAAE,GAAG;QAC/C,cAAc,EAAE,IAAI,CAAC,aAAa;QAClC,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC;IACF,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,EAAE,QAAQ,CAAC,CAAC;IACtD,SAAS,CAAC,GAAG,CAAC,CAAC;IAEf,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAE3C,uCAAuC;IACvC,MAAM,KAAK,GAQP;QACF,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,IAAI,CAAC,UAAU;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,CAAC;QACT,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,YAAY;QAC/C,eAAe,EAAE,QAAQ,CAAC,WAAW,CAAC,eAAe;KACtD,CAAC;IACF,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;IAEhD,gDAAgD;IAChD,yEAAyE;IACzE,wEAAwE;IACxE,8DAA8D;IAC9D,MAAM,QAAQ,GAAG;QACf,GAAG,MAAM,CAAC,OAAO;QACjB,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC5C,WAAW;QACX,IAAI,CAAC,OAAO;QACZ,WAAW;QACX,QAAQ,CAAC,WAAW,CAAC,eAAe;QACpC,UAAU;QACV,GAAG;KACJ,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IACzD,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QACxD,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,SAAS,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,UAAU,GAAG,EAAE,CAAC;IAEpB,MAAM,KAAK,GAAiB,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE;QACtD,GAAG,EAAE,IAAI,CAAC,SAAS;QACnB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QACzC,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IAEH,qFAAqF;IACrF,KAAK,CAAC,MAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,KAAK,CAAC,MAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QACzC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,UAAU,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,gGAAgG;IAChG,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAa,CAAC;IAC7C,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,IAAI,WAAW,GAAyB,IAAI,CAAC;IAC7C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,MAAM,MAAM,GAAG,IAAI,YAAY,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EACjB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACZ,WAAW,EAAE,CAAC;QACd,SAAS,CAAC,KAAK,CACb,mCAAmC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAC1D,CAAC;QACF,SAAS,CAAC,KAAK,CACb,YAAY,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CACjE,CAAC;IACJ,CAAC,CACF,CAAC;IACF,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAwB,CAAC,CAAC,CAAC;IACvE,wEAAwE;IACxE,sEAAsE;IACtE,mEAAmE;IACnE,yEAAyE;IACzE,uDAAuD;IACvD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACvB,MAAM,CAAC,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACzB,MAAM,CAAC,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,SAAS,OAAO,CAAC,CAAQ;QACvB,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,CAAC;YACZ,IAAI,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;gBACzD,cAAc,EAAE,CAAC;gBACjB,SAAS,CAAC,KAAK,CACb,+BAA+B,CAAC,CAAC,YAAY,yCAAyC,QAAQ,CAAC,WAAW,CAAC,YAAY,IAAI,CAC5H,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,CAAC,eAAe,KAAK,QAAQ,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;gBAC/D,cAAc,EAAE,CAAC;gBACjB,SAAS,CAAC,KAAK,CACb,kCAAkC,CAAC,CAAC,eAAe,4CAA4C,QAAQ,CAAC,WAAW,CAAC,eAAe,IAAI,CACxI,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;YACpB,KAAK,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC5C,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,CAAC,CAAC;YACb,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpB,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACvC,KAAK,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC5C,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACjC,uEAAuE;YACvE,KAAK,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC5C,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACjC,WAAW,GAAG,CAAC,CAAC;YAChB,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,WAAW,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC9D,cAAc,EAAE,CAAC;gBACjB,SAAS,CAAC,KAAK,CACb,uBAAuB,WAAW,CAAC,CAAC,2BAA2B,KAAK,CAAC,OAAO,IAAI,CACjF,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;YAChC,KAAK,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC5C,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;QACD,gDAAgD;IAClD,CAAC;IAED,2EAA2E;IAC3E,wEAAwE;IACxE,oEAAoE;IACpE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,cAAc,CAAC;IAErB,cAAc;IACd,SAAS,CAAC,GAAG,EAAE,CAAC;IAChB,SAAS,CAAC,GAAG,EAAE,CAAC;IAChB,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;KAC3D,CAAC,CAAC;IAEH,4BAA4B;IAC5B,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzC,IACE,IAAI,KAAK,CAAC;QACV,WAAW,KAAK,IAAI;QACpB,WAAW,KAAK,CAAC;QACjB,cAAc,KAAK,CAAC,EACpB,CAAC;QACD,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;QAC1B,KAAK,CAAC,KAAK,GAAI,WAA6B,CAAC,KAAK,CAAC;QACnD,8DAA8D;IAChE,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAiB;YAC5B,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,MAAM,IAAI,IAAI;YACtB,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;YACpC,MAAM,EACJ,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI;gBACzB,CAAC,CAAC,yBAAyB,IAAI,EAAE;gBACjC,CAAC,CAAC,MAAM;oBACN,CAAC,CAAC,6BAA6B,MAAM,EAAE;oBACvC,CAAC,CAAC,WAAW,GAAG,CAAC;wBACf,CAAC,CAAC,gBAAgB,WAAW,qBAAqB;wBAClD,CAAC,CAAC,cAAc,GAAG,CAAC;4BAClB,CAAC,CAAC,gBAAgB,cAAc,8BAA8B;4BAC9D,CAAC,CAAC,WAAW;gCACX,CAAC,CAAC,2CAA2C;gCAC7C,CAAC,CAAC,6CAA6C;YAC3D,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;SACtB,CAAC;QACF,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACtC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;IAC3B,CAAC;IACD,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;IACzB,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC;IAE3B,qCAAqC;IACrC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,MAAM,IAAI,GACR,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAChD,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7B,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,4CAA4C;IAC5C,IAAI,cAAc,GAA0B,IAAI,CAAC;IACjD,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CACxD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAC1B,CAAC;QACF,MAAM,WAAW,GAAG,eAAe,CACjC,OAAO,EACP,QAAQ,CAAC,WAAW,CAAC,YAAY,EACjC,QAAQ,CAAC,WAAW,CAAC,eAAe,CACrC,CAAC;QACF,MAAM,QAAQ,GAAG,WAAW;YAC1B,CAAC,CAAC;gBACE,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,KAAK,EAAE,WAAW,CAAC,KAAM;gBACzB,WAAW,EAAE,WAAW,CAAC,WAAW;aACrC;YACH,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,QAAQ,GAAG,eAAe,CAC9B,YAAY,CAAC,UAAU,CAAC,EACxB,UAAU,EACV,QAAQ,EACR,EAAE,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CACzC,CAAC;QACF,cAAc,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC3E,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC7C,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACrC,CAAC;SAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9B,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;IAEhD,iEAAiE;IACjE,MAAM,QAAQ,GAAG;QACf,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,IAAI,CAAC,UAAU;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,MAAM;QACtB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,OAAO;QACjB,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,YAAY;QAC/C,eAAe,EAAE,QAAQ,CAAC,WAAW,CAAC,eAAe;KACtD,CAAC;IACF,gBAAgB,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEtE,kBAAkB;IAClB,SAAS,CAAC,GAAG,CAAC,CAAC;IAEf,KAAK,WAAW,CAAC,CAAC,yCAAyC;IAE3D,OAAO;QACL,KAAK;QACL,MAAM,EAAE,KAAK,CAAC,MAA4C;QAC1D,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;QAChC,QAAQ,EAAE,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9C,CAAC;AACJ,CAAC;AASD,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC1D,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM;QACnD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACtC,2CAA2C;IAC3C,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,WAAW,CAClB,KAAmB;IAEnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAmB,EAAE,MAA6B,EAAE,EAAE,CACtE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAC1B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,MAAM,CAAC,GAAW;IACzB,IAAI,CAAC;QACH,OAAO,CACL,QAAQ,CAAC,oBAAoB,EAAE;YAC7B,GAAG;YACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC;aACC,QAAQ,EAAE;aACV,IAAI,EAAE,IAAI,IAAI,CAClB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC;QACH,OAAO,CACL,QAAQ,CAAC,iCAAiC,EAAE;YAC1C,GAAG;YACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC;aACC,QAAQ,EAAE;aACV,IAAI,EAAE,IAAI,IAAI,CAClB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC;QACH,OAAO,CACL,QAAQ,CAAC,+BAA+B,EAAE;YACxC,GAAG;YACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC;aACC,QAAQ,EAAE;aACV,IAAI,EAAE,IAAI,IAAI,CAClB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,CAAC;QACH,OAAO,CACL,QAAQ,CAAC,gCAAgC,EAAE;YACzC,GAAG;YACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC;aACC,QAAQ,EAAE;aACV,IAAI,EAAE,IAAI,IAAI,CAClB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAkB;IACtC,MAAM,CAAC,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpC,KAAK,MAAM,EAAE,IAAI,KAAK;QAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,YAAY,CAAC,QAAqB;IACzC,MAAM,EAAE,GACN,QAAQ,CAAC,WAGV,CAAC,SAAS,CAAC;IACZ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,UAAkB;IAChE,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO;IAC7B,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;QACjD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;YAAE,SAAS;QACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,SAAS;QACnC,MAAM,WAAW,GAAiB;YAChC,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,cAAc,IAAI,CAAC,GAAG,gDAAgD;YAC9E,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;SACtB,CAAC;QACF,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAE/C,MAAM,KAAK,GAAG,gBAAgB,CAAY,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;YACzB,KAAK,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC1C,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@percepta/kaizen",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Automated AI researcher that improves AI pipelines",
5
5
  "keywords": [
6
6
  "ai",
@@ -37,6 +37,7 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "node-pty": "^1.1.0",
40
+ "tsx": "^4.21.0",
40
41
  "ws": "^8.20.0",
41
42
  "yaml": "^2.8.2"
42
43
  },
@@ -59,7 +60,6 @@
59
60
  "react-dom": "19.2.3",
60
61
  "react-markdown": "^10.1.0",
61
62
  "rimraf": "^5.0.5",
62
- "tsx": "^4.21.0",
63
63
  "typescript": "^6.0.3",
64
64
  "vitest": "^4.0.17",
65
65
  "zod": "4.1.4",
@@ -14,6 +14,13 @@ The supervisor will record the run as `crashed` if no `complete` event is seen.
14
14
 
15
15
  This template runs against 3 dummy items so you can verify the event stream end-to-end
16
16
  before plugging in real data. Replace `iter_items` and `score_one` with your logic.
17
+
18
+ For production evals backed by Langfuse, keep the NDJSON stream as the required
19
+ Kaizen contract and also persist results back to Langfuse as a best-effort side
20
+ effect: load the versioned dataset, run the pipeline to create a fresh trace for
21
+ each item, link that trace to the dataset item in a dataset run, and write the
22
+ primary metric as a score on the trace. Include that fresh trace id in the
23
+ Kaizen item event so failure analysis can jump directly to Langfuse.
17
24
  """
18
25
  from __future__ import annotations
19
26
 
@@ -53,6 +60,8 @@ def score_one(item: dict[str, Any], variant: str) -> dict[str, Any]:
53
60
  Returns a dict with at minimum: {"score": float, "breakdown": dict, "trace_id": str | None}.
54
61
  """
55
62
  # TODO: call your actual pipeline here, then compare to ground truth.
63
+ # TODO: for Langfuse-backed evals, create/link a dataset-run item and
64
+ # write the primary metric as a Langfuse score on the fresh trace.
56
65
  # The dummy logic below produces a deterministic score so the supervisor sees real numbers.
57
66
  expected = item.get("expected", "")
58
67
  actual = item.get("input", "") # placeholder
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Eval script for the {{name}} pipeline.
3
+ *
4
+ * The Kaizen supervisor invokes this script and consumes NDJSON events from
5
+ * its `--out-fd` (or stdout if no fd is given). Your only job is to emit a
6
+ * well-formed event stream:
7
+ *
8
+ * {"type":"start","n":<int>,"eval_version":<int>,"dataset_version":"<str>"}
9
+ * {"type":"item","id":"<str>","score":<float in [0,1]>,"breakdown":{},"trace_id":"<str|null>"}
10
+ * ... one item event per dataset item ...
11
+ * {"type":"complete","score":<float>,"breakdown":{},"worst_traces":[]}
12
+ *
13
+ * For Langfuse-backed production evals, keep the NDJSON stream as the required
14
+ * Kaizen contract and also persist results back to Langfuse as a best-effort
15
+ * side effect: load the versioned dataset, run the pipeline to create a fresh
16
+ * trace for each item, link that trace to the dataset item in a dataset run,
17
+ * and write the primary metric as a score on the trace. Include that fresh
18
+ * trace id in the Kaizen item event so failure analysis can jump to Langfuse.
19
+ */
20
+ import { closeSync, writeSync } from "node:fs";
21
+
22
+ const EVAL_VERSION = 1;
23
+ const DATASET_VERSION = "v1";
24
+
25
+ interface EvalArgs {
26
+ variant: string;
27
+ dataset: string;
28
+ maxItems: number | null;
29
+ outFd: number | null;
30
+ }
31
+
32
+ interface DemoItem {
33
+ id: string;
34
+ input: string;
35
+ expected: string;
36
+ }
37
+
38
+ interface ScoreResult {
39
+ score: number;
40
+ breakdown: Record<string, number>;
41
+ trace_id: string | null;
42
+ }
43
+
44
+ function emit(outFd: number | null, event: Record<string, unknown>): void {
45
+ const line = `${JSON.stringify(event)}\n`;
46
+ if (outFd === null) {
47
+ process.stdout.write(line);
48
+ return;
49
+ }
50
+ writeSync(outFd, line);
51
+ }
52
+
53
+ function parseArgs(argv: string[]): EvalArgs {
54
+ const args: EvalArgs = {
55
+ variant: "",
56
+ dataset: DATASET_VERSION,
57
+ maxItems: null,
58
+ outFd: null,
59
+ };
60
+
61
+ for (let i = 0; i < argv.length; i++) {
62
+ const arg = argv[i];
63
+ const next = argv[i + 1];
64
+ if (arg === "--variant" && next) {
65
+ args.variant = next;
66
+ i++;
67
+ } else if (arg === "--dataset" && next) {
68
+ args.dataset = next;
69
+ i++;
70
+ } else if (arg === "--max-items" && next) {
71
+ args.maxItems = Number.parseInt(next, 10);
72
+ i++;
73
+ } else if (arg === "--out-fd" && next) {
74
+ args.outFd = Number.parseInt(next, 10);
75
+ i++;
76
+ }
77
+ }
78
+
79
+ if (!args.variant) {
80
+ throw new Error("missing required --variant");
81
+ }
82
+ return args;
83
+ }
84
+
85
+ function iterItems(maxItems: number | null): DemoItem[] {
86
+ const items = [
87
+ { id: "demo-1", input: "hello", expected: "hi" },
88
+ { id: "demo-2", input: "world", expected: "world" },
89
+ { id: "demo-3", input: "foo", expected: "bar" },
90
+ ];
91
+ return maxItems === null ? items : items.slice(0, maxItems);
92
+ }
93
+
94
+ function scoreOne(item: DemoItem, _variant: string): ScoreResult {
95
+ // TODO: call your actual pipeline here, then compare to ground truth.
96
+ // TODO: for Langfuse-backed evals, create/link a dataset-run item and
97
+ // write the primary metric as a Langfuse score on the fresh trace.
98
+ const exact = item.input === item.expected ? 1 : 0;
99
+ return {
100
+ score: exact,
101
+ breakdown: { exact_match: exact },
102
+ trace_id: null,
103
+ };
104
+ }
105
+
106
+ function average(values: number[]): number {
107
+ return (
108
+ values.reduce((sum, value) => sum + value, 0) / Math.max(values.length, 1)
109
+ );
110
+ }
111
+
112
+ async function main(): Promise<void> {
113
+ const args = parseArgs(process.argv.slice(2));
114
+ const items = iterItems(args.maxItems);
115
+
116
+ emit(args.outFd, {
117
+ type: "start",
118
+ n: items.length,
119
+ eval_version: EVAL_VERSION,
120
+ dataset_version: args.dataset,
121
+ variant: args.variant,
122
+ ts: Date.now() / 1000,
123
+ });
124
+
125
+ const scored = items.map((item) => {
126
+ const result = scoreOne(item, args.variant);
127
+ const event = {
128
+ type: "item",
129
+ id: item.id,
130
+ score: result.score,
131
+ breakdown: result.breakdown,
132
+ trace_id: result.trace_id,
133
+ ts: Date.now() / 1000,
134
+ };
135
+ emit(args.outFd, event);
136
+ return event;
137
+ });
138
+
139
+ const breakdown = {
140
+ exact_match: average(scored.map((item) => item.breakdown.exact_match)),
141
+ };
142
+ const worst = [...scored]
143
+ .sort((a, b) => a.score - b.score)
144
+ .slice(0, 3)
145
+ .map((item) => ({
146
+ id: item.id,
147
+ score: item.score,
148
+ trace_id: item.trace_id,
149
+ }));
150
+
151
+ emit(args.outFd, {
152
+ type: "complete",
153
+ score: average(scored.map((item) => item.score)),
154
+ breakdown,
155
+ n: scored.length,
156
+ worst_traces: worst,
157
+ ts: Date.now() / 1000,
158
+ });
159
+
160
+ if (args.outFd !== null) closeSync(args.outFd);
161
+ }
162
+
163
+ main().catch((error: unknown) => {
164
+ process.stderr.write(
165
+ `${error instanceof Error ? error.message : String(error)}\n`,
166
+ );
167
+ process.exit(1);
168
+ });
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: {{name}}
3
3
  description: {{description}}
4
- run_eval: eval/{{name}}.py
4
+ run_eval: eval/{{name}}.{{eval_ext}}
5
5
  eval_version: 1
6
6
  dataset_version: v1
7
7
  eval_style: {{eval_style}}
@@ -33,6 +33,15 @@ created_at: {{iso_now}}
33
33
  - set env vars
34
34
  - fetch fixtures -->
35
35
 
36
+ ## Eval persistence
37
+
38
+ <!-- For Langfuse-backed production evals:
39
+ - Load dataset items from the `dataset_version` named in frontmatter.
40
+ - For each item, run the candidate pipeline and capture the fresh Langfuse trace id.
41
+ - Link the dataset item to that trace in a Langfuse dataset run named for the Kaizen run.
42
+ - Write the primary metric as a Langfuse score on the fresh trace, with secondary metrics in metadata.
43
+ - Emit the same score through Kaizen's required NDJSON `item` / `complete` events. -->
44
+
36
45
  ## Architecture
37
46
 
38
47
  <!-- Mermaid diagram of the current best variant. Update when the leaderboard moves. -->
@@ -38,6 +38,8 @@ kaizen run \
38
38
 
39
39
  The `kaizen run` runner is plain code, not an agent. It handles everything: writes manifest, tails NDJSON events into `events.jsonl`, atomically updates `state.json`, dumps worst items to `failures.jsonl`, decides promotion via paired-bootstrap statistical test, prints the score.
40
40
 
41
+ The eval script may also write Langfuse dataset-run links and trace scores. Treat those writes as diagnostic persistence only. The authoritative run result for this loop is still the `complete.score` that `kaizen run` records from the NDJSON stream.
42
+
41
43
  You do **not** write `.kaizen/` files. You do **not** call any status CLI. The single `kaizen run` invocation is the whole interaction.
42
44
 
43
45
  ## After the run
@@ -30,6 +30,26 @@ Truth lives on disk under `.kaizen/runs/<pipeline>/<run_id>/`:
30
30
  The hypothesis log is `.kaizen/hypotheses/<pipeline>.jsonl` — every run leaves a line, success or failure.
31
31
  The promoted baseline is derived on demand: the latest run that beat the previous promoted baseline with statistical confidence under matching `eval_version` / `dataset_version`. The leaderboard still shows the best raw score. `kaizen log --pipeline <p>` shows the promoted baseline in the header alongside recent runs.
32
32
 
33
+ ## Eval script contract
34
+
35
+ The pipeline's `run_eval` script is the single eval entrypoint. `kaizen run` invokes it as:
36
+
37
+ ```bash
38
+ <run_eval> --variant <variant_id> --dataset <dataset_version> --out-fd 3 [--max-items <n>]
39
+ ```
40
+
41
+ The required contract is the NDJSON stream on `--out-fd`: emit `start`, one `item` per dataset item, and one terminal `complete` with a numeric `score` in `[0,1]`. The `complete.score` is what Kaizen records, compares, and returns to you in the CLI summary.
42
+
43
+ For real customer pipelines, the eval script should also persist results back to Langfuse as a best-effort side effect:
44
+
45
+ - Load the versioned Langfuse dataset named by `--dataset`.
46
+ - Run the candidate pipeline for each dataset item, producing a fresh Langfuse trace for that item.
47
+ - Link each dataset item to that fresh trace in a Langfuse dataset run named for the Kaizen experiment or variant.
48
+ - Write the primary metric as a Langfuse score on the fresh trace, with useful secondary metrics in score metadata or dataset-run metadata.
49
+ - Include the fresh trace id in each Kaizen `item.trace_id` and in `complete.worst_traces`.
50
+
51
+ Langfuse writes make traces, dataset runs, and scores durable for inspection. They must not replace the NDJSON stream; `.kaizen/runs/` remains Kaizen's local source of truth for experiment state and promotion.
52
+
33
53
  ## Loop
34
54
 
35
55
  1. **Read state** — `kaizen log --pipeline <p> -n 10` gives both the promoted baseline (header) and recent runs (body) in one call.