diff --git a/.tool-versions b/.tool-versions
new file mode 100644
index 0000000..87c4859
--- /dev/null
+++ b/.tool-versions
@@ -0,0 +1 @@
+nodejs 20.15.0
diff --git a/package-lock.json b/package-lock.json
index bd37c99..ea8a652 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,24 +5,310 @@
"packages": {
"": {
"dependencies": {
- "@google-labs/breadboard": "0.11.2",
- "@google-labs/core-kit": "0.4.0",
- "@xenova/transformers": "^2.15.1"
+ "@breadboard-ai/build": "^0.6.0",
+ "@google-labs/breadboard": "0.20.0",
+ "@google-labs/core-kit": "^0.9.0",
+ "@xenova/transformers": "^2.17.2"
},
"devDependencies": {
- "@types/node": "^20.11.20",
- "tsx": "^4.7.1",
- "typescript": "^5.3.3"
+ "@types/node": "^20.14.8",
+ "tsx": "^4.15.7",
+ "typescript": "^5.5.2"
+ },
+ "engines": {
+ "node": ">=20.14.0 <=21"
+ }
+ },
+ "node_modules/@breadboard-ai/build": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@breadboard-ai/build/-/build-0.6.0.tgz",
+ "integrity": "sha512-F7Jl19XVV9qNmZxF2vSXAcqKcIgM2brVsclBLtXY4CKGfBBAzgPI6Do+dmnD0tcjqQgM1M+0fE50hf61LkN0ZA==",
+ "dependencies": {
+ "@google-labs/breadboard": "^0.20.0",
+ "@types/json-schema": "^7.0.15"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
+ "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
+ "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
+ "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
+ "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
+ "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
+ "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
+ "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
+ "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
+ "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
+ "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
+ "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
+ "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
+ "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
+ "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
"node_modules/@esbuild/linux-x64": {
- "version": "0.19.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz",
- "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
+ "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -31,14 +317,100 @@
"node": ">=12"
}
},
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
+ "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
+ "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
+ "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/@esbuild/win32-x64": {
- "version": "0.19.12",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz",
- "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
+ "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"win32"
@@ -48,33 +420,36 @@
}
},
"node_modules/@google-labs/breadboard": {
- "version": "0.11.2",
- "resolved": "https://registry.npmjs.org/@google-labs/breadboard/-/breadboard-0.11.2.tgz",
- "integrity": "sha512-kNDZda2AHezNj+KX5zeImwBhTKJPQbWYGEBSNEa/f88DhSsjXhW6tjyUNN8IQFThPAEdux/d8DH/gHRHf1n5tQ==",
+ "version": "0.20.0",
+ "resolved": "https://registry.npmjs.org/@google-labs/breadboard/-/breadboard-0.20.0.tgz",
+ "integrity": "sha512-dhUe6iZj6vZsmwZIFuDyELHMclTP17bdRl69pFScXsSzOMDSG07THGjY4XJJsneoDskJ2b/6bwgmuLljUlqPaw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@google-labs/breadboard-schema": "^1.3.0"
+ "@google-labs/breadboard-schema": "^1.4.1"
},
"engines": {
"node": ">=19.0.0"
}
},
"node_modules/@google-labs/breadboard-schema": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@google-labs/breadboard-schema/-/breadboard-schema-1.3.0.tgz",
- "integrity": "sha512-zQCjftqxGej4OfYHGoh5jNDwhYYjglPUkC+TL6f5lzhzSKNDBgDuXYy3f5B8g3dzFvqzx1cPnxOi/Ubd536rwg=="
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@google-labs/breadboard-schema/-/breadboard-schema-1.4.1.tgz",
+ "integrity": "sha512-MdovsBImCDMvZvcNnZnNKFzamwOOzCIFYHWKM41O5kskXHL71UgyiYvmgNMPBuKqW473svotuhZEVFlr5Tykyw=="
},
"node_modules/@google-labs/core-kit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/@google-labs/core-kit/-/core-kit-0.4.0.tgz",
- "integrity": "sha512-8ihkKjmUeWRCeK9Z9VvwwYoVkZ80ctclnbxXQ4OCp4I/vR8+EGoFV2BehqTq97vOA/H9xjbh3tWlXuOjGrDt9A==",
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/@google-labs/core-kit/-/core-kit-0.9.0.tgz",
+ "integrity": "sha512-sx4hSGjgN4LyFt/ao8c6vIdPfva0e2rxUPMeNQety3gLsw4qEiddXJlCqvwIExSmIWfQg2eSyhCFhQ+VXNpdkg==",
"dependencies": {
- "@google-labs/breadboard": "^0.11.2"
+ "@breadboard-ai/build": "^0.6.0",
+ "@google-labs/breadboard": "^0.20.0"
}
},
"node_modules/@huggingface/jinja": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.1.3.tgz",
- "integrity": "sha512-9KsiorsdIK8+7VmlamAT7Uh90zxAhC/SeKaKc80v58JhtPYuwaJpmR/ST7XAUxrHAFqHTCoTH5aJnJDwSL6xIQ==",
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.2.2.tgz",
+ "integrity": "sha512-/KPde26khDUIPkTGU82jdtTW9UAuvUTumCAbFs/7giR0SxsvZC4hru51PBvpijH6BVkHcROcvZM/lpy5h1jRRA==",
+ "license": "MIT",
"engines": {
"node": ">=18"
}
@@ -133,25 +508,32 @@
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
},
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
+ },
"node_modules/@types/long": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
"integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA=="
},
"node_modules/@types/node": {
- "version": "20.11.20",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz",
- "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==",
+ "version": "20.14.8",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.8.tgz",
+ "integrity": "sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==",
+ "license": "MIT",
"dependencies": {
"undici-types": "~5.26.4"
}
},
"node_modules/@xenova/transformers": {
- "version": "2.15.1",
- "resolved": "https://registry.npmjs.org/@xenova/transformers/-/transformers-2.15.1.tgz",
- "integrity": "sha512-HX3kUZbr9v90PS/D2SyffGiFYQ6wQMbzwC1uLuCOA6nRSFOdr0TDnOTxfjS0RB6Phn6ThCTE1vX4n+NUsuobQg==",
+ "version": "2.17.2",
+ "resolved": "https://registry.npmjs.org/@xenova/transformers/-/transformers-2.17.2.tgz",
+ "integrity": "sha512-lZmHqzrVIkSvZdKZEx7IYY51TK0WDrC8eR0c5IMnBsO8di8are1zzw8BlLhyO2TklZKLN5UffNGs1IJwT6oOqQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@huggingface/jinja": "^0.1.3",
+ "@huggingface/jinja": "^0.2.2",
"onnxruntime-web": "1.14.0",
"sharp": "^0.32.0"
},
@@ -330,11 +712,12 @@
}
},
"node_modules/esbuild": {
- "version": "0.19.12",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz",
- "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"bin": {
"esbuild": "bin/esbuild"
},
@@ -342,29 +725,29 @@
"node": ">=12"
},
"optionalDependencies": {
- "@esbuild/aix-ppc64": "0.19.12",
- "@esbuild/android-arm": "0.19.12",
- "@esbuild/android-arm64": "0.19.12",
- "@esbuild/android-x64": "0.19.12",
- "@esbuild/darwin-arm64": "0.19.12",
- "@esbuild/darwin-x64": "0.19.12",
- "@esbuild/freebsd-arm64": "0.19.12",
- "@esbuild/freebsd-x64": "0.19.12",
- "@esbuild/linux-arm": "0.19.12",
- "@esbuild/linux-arm64": "0.19.12",
- "@esbuild/linux-ia32": "0.19.12",
- "@esbuild/linux-loong64": "0.19.12",
- "@esbuild/linux-mips64el": "0.19.12",
- "@esbuild/linux-ppc64": "0.19.12",
- "@esbuild/linux-riscv64": "0.19.12",
- "@esbuild/linux-s390x": "0.19.12",
- "@esbuild/linux-x64": "0.19.12",
- "@esbuild/netbsd-x64": "0.19.12",
- "@esbuild/openbsd-x64": "0.19.12",
- "@esbuild/sunos-x64": "0.19.12",
- "@esbuild/win32-arm64": "0.19.12",
- "@esbuild/win32-ia32": "0.19.12",
- "@esbuild/win32-x64": "0.19.12"
+ "@esbuild/aix-ppc64": "0.21.5",
+ "@esbuild/android-arm": "0.21.5",
+ "@esbuild/android-arm64": "0.21.5",
+ "@esbuild/android-x64": "0.21.5",
+ "@esbuild/darwin-arm64": "0.21.5",
+ "@esbuild/darwin-x64": "0.21.5",
+ "@esbuild/freebsd-arm64": "0.21.5",
+ "@esbuild/freebsd-x64": "0.21.5",
+ "@esbuild/linux-arm": "0.21.5",
+ "@esbuild/linux-arm64": "0.21.5",
+ "@esbuild/linux-ia32": "0.21.5",
+ "@esbuild/linux-loong64": "0.21.5",
+ "@esbuild/linux-mips64el": "0.21.5",
+ "@esbuild/linux-ppc64": "0.21.5",
+ "@esbuild/linux-riscv64": "0.21.5",
+ "@esbuild/linux-s390x": "0.21.5",
+ "@esbuild/linux-x64": "0.21.5",
+ "@esbuild/netbsd-x64": "0.21.5",
+ "@esbuild/openbsd-x64": "0.21.5",
+ "@esbuild/sunos-x64": "0.21.5",
+ "@esbuild/win32-arm64": "0.21.5",
+ "@esbuild/win32-ia32": "0.21.5",
+ "@esbuild/win32-x64": "0.21.5"
}
},
"node_modules/expand-template": {
@@ -390,11 +773,27 @@
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
},
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
"node_modules/get-tsconfig": {
- "version": "4.7.2",
- "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz",
- "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==",
+ "version": "4.7.5",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz",
+ "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"resolve-pkg-maps": "^1.0.0"
},
@@ -682,6 +1081,7 @@
"resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
"integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
"dev": true,
+ "license": "MIT",
"funding": {
"url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
}
@@ -844,13 +1244,14 @@
}
},
"node_modules/tsx": {
- "version": "4.7.1",
- "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.7.1.tgz",
- "integrity": "sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==",
+ "version": "4.15.7",
+ "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.15.7.tgz",
+ "integrity": "sha512-u3H0iSFDZM3za+VxkZ1kywdCeHCn+8/qHQS1MNoO2sONDgD95HlWtt8aB23OzeTmFP9IU4/8bZUdg58Uu5J4cg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "esbuild": "~0.19.10",
- "get-tsconfig": "^4.7.2"
+ "esbuild": "~0.21.4",
+ "get-tsconfig": "^4.7.5"
},
"bin": {
"tsx": "dist/cli.mjs"
@@ -874,10 +1275,11 @@
}
},
"node_modules/typescript": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
- "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz",
+ "integrity": "sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==",
"dev": true,
+ "license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
diff --git a/package.json b/package.json
index 2e9edca..335b6c4 100644
--- a/package.json
+++ b/package.json
@@ -1,14 +1,19 @@
{
"dependencies": {
- "@google-labs/breadboard": "0.11.2",
- "@google-labs/core-kit": "0.4.0",
- "@xenova/transformers": "^2.15.1"
+ "@breadboard-ai/build": "^0.6.0",
+ "@google-labs/breadboard": "0.20.0",
+ "@google-labs/core-kit": "^0.9.0",
+ "@xenova/transformers": "^2.17.2"
},
"devDependencies": {
- "@types/node": "^20.11.20",
- "tsx": "^4.7.1",
- "typescript": "^5.3.3"
+ "@types/node": "^20.14.8",
+ "tsx": "^4.15.7",
+ "typescript": "^5.5.2"
},
+ "engines": {
+ "node": ">=20.14.0 <=21"
+ },
+ "engineStrict": true,
"scripts": {
"code-node": "tsx src/examples/code-node/index.ts",
"code-node-dynamic": "tsx src/examples/code-node-dynamic/index.ts",
diff --git a/src/examples/hello-world-new-syntax-harness/index.ts b/src/examples/hello-world-new-syntax-harness/index.ts
new file mode 100644
index 0000000..99152aa
--- /dev/null
+++ b/src/examples/hello-world-new-syntax-harness/index.ts
@@ -0,0 +1,77 @@
+import { board, input, output, serialize } from "@breadboard-ai/build";
+import {
+ BoardRunner,
+ GraphDescriptor,
+ Kit,
+ OutputValues,
+ asRuntimeKit,
+} from "@google-labs/breadboard";
+import { RunConfig, run } from "@google-labs/breadboard/harness";
+import { InputResolveRequest } from "@google-labs/breadboard/remote";
+import Core, { code } from "@google-labs/core-kit";
+
+const text = input({
+ type: "string",
+ title: "Text",
+ description: "The text to output",
+ examples: ["Hello World"],
+ default: "Hello World",
+});
+
+const message = code(
+ {
+ $id: "text",
+ $metadata: {
+ title: "text",
+ description: "my message to return",
+ },
+ text,
+ },
+ {
+ message: "string",
+ },
+ ({ text }) => {
+ return { message: text };
+ }
+);
+
+const boardInstance = board({
+ title: "Hello World board using harness",
+ inputs: { text },
+ outputs: {
+ message: output(message.outputs.message, {
+ title: "Hello World Output",
+ description: "Board Output",
+ }),
+ },
+});
+
+const serialisedBoard: GraphDescriptor = serialize(boardInstance);
+
+const runner: BoardRunner = await BoardRunner.fromGraphDescriptor(
+ serialisedBoard
+);
+
+const runTimeKits: Kit[] = [asRuntimeKit(Core)];
+
+const runConfig: RunConfig = {
+ url: ".",
+ kits: runTimeKits,
+ remote: undefined,
+ proxy: undefined,
+ diagnostics: true,
+ runner: runner,
+};
+
+for await (const runResult of run(runConfig)) {
+ if (runResult.type === "input") {
+ await runResult.reply({
+ inputs: {
+ text: "Hello World",
+ },
+ } satisfies InputResolveRequest);
+ } else if (runResult.type === "output") {
+ const resultOutputs: OutputValues = runResult.data.outputs;
+ console.log("output with Kit", JSON.stringify(resultOutputs, null, 2));
+ }
+}
diff --git a/src/examples/hello-world-new-syntax-no-harness/index.ts b/src/examples/hello-world-new-syntax-no-harness/index.ts
new file mode 100644
index 0000000..5cf094d
--- /dev/null
+++ b/src/examples/hello-world-new-syntax-no-harness/index.ts
@@ -0,0 +1,53 @@
+import { board, input, output, serialize } from "@breadboard-ai/build";
+import {
+ BoardRunner,
+ GraphDescriptor,
+ asRuntimeKit,
+} from "@google-labs/breadboard";
+
+import Core, { code } from "@google-labs/core-kit";
+
+const text = input({
+ type: "string",
+ title: "Text",
+ description: "The text to output",
+ examples: ["Hello World"],
+ default: "Hello World",
+});
+
+const message = code(
+ {
+ $id: "text",
+ $metadata: {
+ title: "text",
+ description: "my message to return",
+ },
+ text,
+ },
+ {
+ message: "string",
+ },
+ ({ text }) => {
+ return { message: text };
+ }
+);
+
+const boardInstance = board({
+ title: "Hello World Board without harness",
+ inputs: { text },
+ outputs: {
+ message: output(message.outputs.message, {
+ title: "Hello World Output",
+ description: "Board Output",
+ }),
+ },
+});
+
+const serialisedBoard: GraphDescriptor = serialize(boardInstance);
+
+const runner: BoardRunner = await BoardRunner.fromGraphDescriptor(
+ serialisedBoard
+);
+
+console.log(JSON.stringify(await runner.runOnce(
+ {text: "Hello World"}, { kits: [asRuntimeKit(Core)] }), null, 2))
\ No newline at end of file
diff --git a/src/examples/kits-new-syntax/README.md b/src/examples/kits-new-syntax/README.md
new file mode 100644
index 0000000..494aefb
--- /dev/null
+++ b/src/examples/kits-new-syntax/README.md
@@ -0,0 +1,76 @@
+## Mermaid
+```mermaid
+%%{init: 'themeVariables': { 'fontFamily': 'Fira Code, monospace' }}%%
+graph TD;
+input0[/"input
id='input-0'"/]:::input -- "inputMessage->message" --> myPassthrough0["myPassthrough
id='myPassthrough-0'"]
+myPassthrough0["myPassthrough
id='myPassthrough-0'"] -- "pOut->message" --> output0{{"output
id='output-0'"}}:::output
+classDef default stroke:#ffab40,fill:#fff2ccff,color:#000
+classDef input stroke:#3c78d8,fill:#c9daf8ff,color:#000
+classDef output stroke:#38761d,fill:#b6d7a8ff,color:#000
+classDef passthrough stroke:#a64d79,fill:#ead1dcff,color:#000
+classDef slot stroke:#a64d79,fill:#ead1dcff,color:#000
+classDef config stroke:#a64d79,fill:#ead1dcff,color:#000
+classDef secrets stroke:#db4437,fill:#f4cccc,color:#000
+classDef slotted stroke:#a64d79
+```
+
+## JSON
+```json
+{
+ "edges": [
+ {
+ "from": "input-0",
+ "to": "myPassthrough-0",
+ "out": "inputMessage",
+ "in": "message"
+ },
+ {
+ "from": "myPassthrough-0",
+ "to": "output-0",
+ "out": "pOut",
+ "in": "message"
+ }
+ ],
+ "nodes": [
+ {
+ "id": "input-0",
+ "type": "input",
+ "configuration": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "inputMessage": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "inputMessage"
+ ]
+ }
+ }
+ },
+ {
+ "id": "output-0",
+ "type": "output",
+ "configuration": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "message"
+ ]
+ }
+ }
+ },
+ {
+ "id": "myPassthrough-0",
+ "type": "myPassthrough",
+ "configuration": {}
+ }
+ ]
+}
+```
\ No newline at end of file
diff --git a/src/examples/kits-new-syntax/graph.json b/src/examples/kits-new-syntax/graph.json
new file mode 100644
index 0000000..767dc6b
--- /dev/null
+++ b/src/examples/kits-new-syntax/graph.json
@@ -0,0 +1,57 @@
+{
+ "edges": [
+ {
+ "from": "input-0",
+ "to": "myPassthrough-0",
+ "out": "inputMessage",
+ "in": "message"
+ },
+ {
+ "from": "myPassthrough-0",
+ "to": "output-0",
+ "out": "pOut",
+ "in": "message"
+ }
+ ],
+ "nodes": [
+ {
+ "id": "input-0",
+ "type": "input",
+ "configuration": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "inputMessage": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "inputMessage"
+ ]
+ }
+ }
+ },
+ {
+ "id": "output-0",
+ "type": "output",
+ "configuration": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "message"
+ ]
+ }
+ }
+ },
+ {
+ "id": "myPassthrough-0",
+ "type": "myPassthrough",
+ "configuration": {}
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/examples/kits-new-syntax/index.ts b/src/examples/kits-new-syntax/index.ts
new file mode 100644
index 0000000..94076b4
--- /dev/null
+++ b/src/examples/kits-new-syntax/index.ts
@@ -0,0 +1,77 @@
+import {
+ board,
+ defineNodeType,
+ input,
+ output,
+ serialize,
+} from "@breadboard-ai/build";
+import {
+ BoardRunner,
+ GraphDescriptor,
+ Kit,
+ asRuntimeKit,
+} from "@google-labs/breadboard";
+import { RunConfig } from "@google-labs/breadboard/harness";
+import { KitBuilder } from "@google-labs/breadboard/kits";
+
+import { Core } from "@google-labs/core-kit";
+import { makeFiles } from "../../util/merMake.js";
+
+
+const myPassthrough = defineNodeType({
+ name: "myPassthrough",
+ inputs: {
+ message: { type: "string" },
+ },
+ outputs: {
+ pOut: { type: "string" },
+ },
+ invoke: (inputs) => { return { pOut: inputs.message } },
+});
+
+const inputMessage = input({ type: "string" });
+
+const passthroughInstance = myPassthrough({ message: inputMessage });
+const boardInstance = board({
+ inputs: { inputMessage },
+
+ outputs: { message: output(passthroughInstance.outputs.pOut) },
+});
+
+const serialisedBoard: GraphDescriptor = serialize(boardInstance);
+await makeFiles({ graph: serialisedBoard });
+
+const runner: BoardRunner = await BoardRunner.fromGraphDescriptor(
+ serialisedBoard
+);
+
+const runTimeKits: Kit[] = [
+ asRuntimeKit(Core),
+ asRuntimeKit(
+ new KitBuilder({
+ url: ".",
+ }).build({ myPassthrough: myPassthrough })
+ ),
+];
+
+const runConfig: RunConfig = {
+ url: ".",
+ kits: runTimeKits,
+ remote: undefined,
+ proxy: undefined,
+ diagnostics: true,
+ runner: runner,
+};
+
+// for await
+for await (const runResult of runner.run(runConfig)) {
+ console.log("RUNNER.RUN");
+ console.log("=".repeat(80));
+ if (runResult.type === "input") {
+ runResult.inputs = {
+ inputMessage: "What is the square root of pi?",
+ };
+ } else if (runResult.type === "output") {
+ console.log("output with Kit", JSON.stringify(runResult.outputs, null, 2));
+ }
+}
diff --git a/src/examples/node-types-kit/README.md b/src/examples/node-types-kit/README.md
new file mode 100644
index 0000000..494aefb
--- /dev/null
+++ b/src/examples/node-types-kit/README.md
@@ -0,0 +1,76 @@
+## Mermaid
+```mermaid
+%%{init: 'themeVariables': { 'fontFamily': 'Fira Code, monospace' }}%%
+graph TD;
+input0[/"input
id='input-0'"/]:::input -- "inputMessage->message" --> myPassthrough0["myPassthrough
id='myPassthrough-0'"]
+myPassthrough0["myPassthrough
id='myPassthrough-0'"] -- "pOut->message" --> output0{{"output
id='output-0'"}}:::output
+classDef default stroke:#ffab40,fill:#fff2ccff,color:#000
+classDef input stroke:#3c78d8,fill:#c9daf8ff,color:#000
+classDef output stroke:#38761d,fill:#b6d7a8ff,color:#000
+classDef passthrough stroke:#a64d79,fill:#ead1dcff,color:#000
+classDef slot stroke:#a64d79,fill:#ead1dcff,color:#000
+classDef config stroke:#a64d79,fill:#ead1dcff,color:#000
+classDef secrets stroke:#db4437,fill:#f4cccc,color:#000
+classDef slotted stroke:#a64d79
+```
+
+## JSON
+```json
+{
+ "edges": [
+ {
+ "from": "input-0",
+ "to": "myPassthrough-0",
+ "out": "inputMessage",
+ "in": "message"
+ },
+ {
+ "from": "myPassthrough-0",
+ "to": "output-0",
+ "out": "pOut",
+ "in": "message"
+ }
+ ],
+ "nodes": [
+ {
+ "id": "input-0",
+ "type": "input",
+ "configuration": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "inputMessage": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "inputMessage"
+ ]
+ }
+ }
+ },
+ {
+ "id": "output-0",
+ "type": "output",
+ "configuration": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "message"
+ ]
+ }
+ }
+ },
+ {
+ "id": "myPassthrough-0",
+ "type": "myPassthrough",
+ "configuration": {}
+ }
+ ]
+}
+```
\ No newline at end of file
diff --git a/src/examples/node-types-kit/graph.json b/src/examples/node-types-kit/graph.json
new file mode 100644
index 0000000..767dc6b
--- /dev/null
+++ b/src/examples/node-types-kit/graph.json
@@ -0,0 +1,57 @@
+{
+ "edges": [
+ {
+ "from": "input-0",
+ "to": "myPassthrough-0",
+ "out": "inputMessage",
+ "in": "message"
+ },
+ {
+ "from": "myPassthrough-0",
+ "to": "output-0",
+ "out": "pOut",
+ "in": "message"
+ }
+ ],
+ "nodes": [
+ {
+ "id": "input-0",
+ "type": "input",
+ "configuration": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "inputMessage": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "inputMessage"
+ ]
+ }
+ }
+ },
+ {
+ "id": "output-0",
+ "type": "output",
+ "configuration": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "message"
+ ]
+ }
+ }
+ },
+ {
+ "id": "myPassthrough-0",
+ "type": "myPassthrough",
+ "configuration": {}
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/examples/node-types-kit/index.ts b/src/examples/node-types-kit/index.ts
new file mode 100644
index 0000000..11eac42
--- /dev/null
+++ b/src/examples/node-types-kit/index.ts
@@ -0,0 +1,81 @@
+import {
+ board,
+ defineNodeType,
+ input,
+ output,
+ serialize,
+} from "@breadboard-ai/build";
+import {
+ BoardRunner,
+ GraphDescriptor,
+ Kit,
+ OutputValues,
+ asRuntimeKit,
+} from "@google-labs/breadboard";
+import { RunConfig, run } from "@google-labs/breadboard/harness";
+import { KitBuilder } from "@google-labs/breadboard/kits";
+
+import { Core } from "@google-labs/core-kit";
+import { makeFiles } from "../../util/merMake.js";
+import { InputResolveRequest } from "@google-labs/breadboard/remote";
+
+
+const myPassthrough = defineNodeType({
+ name: "myPassthrough",
+ inputs: {
+ message: { type: "string" },
+ },
+ outputs: {
+ pOut: { type: "string" },
+ },
+ invoke: (inputs) => { return { pOut: inputs.message } },
+});
+
+const inputMessage = input({ type: "string" });
+
+const passthroughInstance = myPassthrough({ message: inputMessage });
+const boardInstance = board({
+ inputs: { inputMessage },
+
+ outputs: { message: output(passthroughInstance.outputs.pOut) },
+});
+
+const serialisedBoard: GraphDescriptor = serialize(boardInstance);
+
+const runner: BoardRunner = await BoardRunner.fromGraphDescriptor(
+ serialisedBoard
+);
+
+const runTimeKits: Kit[] = [
+ asRuntimeKit(Core),
+ asRuntimeKit(
+ new KitBuilder({
+ url: ".",
+ }).build({ myPassthrough: myPassthrough })
+ ),
+];
+
+const runConfig: RunConfig = {
+ url: ".",
+ kits: runTimeKits,
+ remote: undefined,
+ proxy: undefined,
+ diagnostics: true,
+ runner: runner,
+};
+
+
+for await (const runResult of run(runConfig)) {
+ if (runResult.type === "input") {
+ await runResult.reply({
+ inputs: {
+ inputMessage: "What is the square root of pi?",
+ },
+ } satisfies InputResolveRequest);
+ } else if (runResult.type === "output") {
+ const resultOutputs: OutputValues = runResult.data.outputs;
+ console.log("output with Kit", JSON.stringify(resultOutputs, null, 2));
+ }
+}
+
+await makeFiles({ graph: serialisedBoard });
\ No newline at end of file