From 07b5c6ce567588942cc585d15a29d0ab58cc3ab2 Mon Sep 17 00:00:00 2001 From: Drew Stone Date: Mon, 10 Aug 2026 22:56:02 -0600 Subject: [PATCH] chore(release): align Knowledge with Eval 0.144.11 --- CHANGELOG.md | 6 +++ README.md | 2 +- package.json | 6 +-- pnpm-lock.yaml | 10 ++--- ...official-optimizer-resume.contract.test.ts | 38 +++++++++++++++++++ 5 files changed, 53 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 041e085..387d506 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ ## Unreleased +## 7.2.1 + +### Changed + +- Updated the required Eval peer and exact development pin to `0.144.11` so consumers install one current shared cohort. + ## 7.2.0 ### Changed diff --git a/README.md b/README.md index c0c829c..8791bc7 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Supply application callbacks for those decisions, or use `@tangle-network/agent- ## Install ```bash -pnpm add @tangle-network/agent-knowledge@7.2.0 @tangle-network/agent-eval@0.144.10 @tangle-network/agent-interface@0.46.1 +pnpm add @tangle-network/agent-knowledge@7.2.1 @tangle-network/agent-eval@0.144.11 @tangle-network/agent-interface@0.46.1 ``` Requires Node.js 20.19 or later. diff --git a/package.json b/package.json index cc2aa34..15a5e65 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tangle-network/agent-knowledge", - "version": "7.2.0", + "version": "7.2.1", "description": "Build, search, evaluate, and improve source-backed knowledge bases.", "homepage": "https://github.com/tangle-network/agent-knowledge#readme", "repository": { @@ -79,14 +79,14 @@ "zod": "^4.4.3" }, "peerDependencies": { - "@tangle-network/agent-eval": ">=0.144.10 <0.145.0", + "@tangle-network/agent-eval": ">=0.144.11 <0.145.0", "@tangle-network/agent-interface": ">=0.46.1 <0.47.0" }, "devDependencies": { "@arethetypeswrong/cli": "^0.18.5", "@biomejs/biome": "^2.5.5", "@neo4j-labs/agent-memory": "0.4.1", - "@tangle-network/agent-eval": "0.144.10", + "@tangle-network/agent-eval": "0.144.11", "@tangle-network/agent-interface": "0.46.1", "@types/node": "^26.1.1", "@types/proper-lockfile": "4.1.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 10a7e61..91323c3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,8 +32,8 @@ importers: specifier: 0.4.1 version: 0.4.1 '@tangle-network/agent-eval': - specifier: 0.144.10 - version: 0.144.10 + specifier: 0.144.11 + version: 0.144.11 '@tangle-network/agent-interface': specifier: 0.46.1 version: 0.46.1 @@ -627,8 +627,8 @@ packages: '@tangle-network/agent-core@0.5.4': resolution: {integrity: sha512-k6gYv3BlagkfuWrGyTJH6mKUBgsLY6TXxizACqt0QF8a1/5uqy0UYc6R2Wo9nqQVJuaRxDnoiRf8YtsRVqA75g==} - '@tangle-network/agent-eval@0.144.10': - resolution: {integrity: sha512-mDUf902qRCDnEzQ7cyN9ytohyPtho/+Aumw8kMTjMcJo7XoUKeH4bEqpsTS0q4aLMQYgg5R+xH8FRCnN1wt8Jg==} + '@tangle-network/agent-eval@0.144.11': + resolution: {integrity: sha512-rTZn6aRZzr8hZGGxG+iZDjifrQGO9Ghd4GvXdLHgPcwUJ3QHkRdFgp6ImTpjAW6ZVxrJlFv9wdN4OgDtbn5pCw==} engines: {node: '>=20'} hasBin: true @@ -2785,7 +2785,7 @@ snapshots: '@tangle-network/agent-interface': 0.46.1 zod: 4.4.3 - '@tangle-network/agent-eval@0.144.10': + '@tangle-network/agent-eval@0.144.11': dependencies: '@asteasolutions/zod-to-openapi': 9.1.0(zod@4.4.3) '@hono/node-server': 2.0.12(hono@4.12.32) diff --git a/tests/official-optimizer-resume.contract.test.ts b/tests/official-optimizer-resume.contract.test.ts index cdc06b5..8c7fdd2 100644 --- a/tests/official-optimizer-resume.contract.test.ts +++ b/tests/official-optimizer-resume.contract.test.ts @@ -173,6 +173,7 @@ function fakeOfficialOptimizerRunner(optimizer: 'gepa' | 'skillopt') { 'totalEvaluations: 0,', 'recipeKind: input.recipe.kind,', 'proposerCostAccounting: "unavailable",', + 'candidatePopulation,', ] : [ 'bestCandidate: input.seedCandidate,', @@ -183,6 +184,8 @@ function fakeOfficialOptimizerRunner(optimizer: 'gepa' | 'skillopt') { ] const source = [ "const fs = require('node:fs')", + "const crypto = require('node:crypto')", + "const path = require('node:path')", "const inputPath = process.argv[process.argv.indexOf('--input') + 1]", "const outputPath = process.argv[process.argv.indexOf('--output') + 1]", 'const input = JSON.parse(fs.readFileSync(inputPath, "utf8"))', @@ -191,6 +194,41 @@ function fakeOfficialOptimizerRunner(optimizer: 'gepa' | 'skillopt') { ' fs.writeFileSync(outputPath, JSON.stringify({ runtime }))', ' process.exit(0)', '}', + ...(optimizer === 'gepa' + ? [ + 'const populationPath = path.join(input.outputDir, "candidate-population.json")', + 'const scenarioIds = (input.selectionSet.length ? input.selectionSet : input.trainSet).map(({ id }) => id)', + 'const populationContents = JSON.stringify({', + ' schemaVersion: 1,', + ' scope: "gepa-candidate-population",', + ' runId: input.runId,', + ' bestIndex: 0,', + ' candidates: [{', + ' index: 0,', + ' candidate: input.seedCandidate,', + ' parentIndices: [null],', + ' aggregateScore: null,', + ' selectionScores: [],', + ' discoveryEvaluationCount: 0,', + ' }],', + '})', + 'fs.mkdirSync(input.outputDir, { recursive: true })', + 'fs.writeFileSync(populationPath, populationContents)', + 'const candidatePopulation = {', + ' scope: "gepa-candidate-population",', + ' path: populationPath,', + ' sha256: "sha256:" + crypto.createHash("sha256").update(populationContents).digest("hex"),', + ' bytes: Buffer.byteLength(populationContents),', + ' runId: input.runId,', + ' candidates: 1,', + ' bestIndex: 0,', + ' maxCandidates: input.maxPopulationCandidates,', + ' maxCandidateChars: input.maxCandidateChars,', + ' scenarioIds,', + ' surfaceKind: typeof input.seedCandidate === "string" ? "text" : "components",', + '}', + ] + : []), 'fs.writeFileSync(outputPath, JSON.stringify({', ...optimizeResult, 'upstream: runtime.optimizer,',