From 750e01ddeec5cd82c6f3f23e5512786887143a46 Mon Sep 17 00:00:00 2001 From: EmersonBraun Date: Tue, 6 Oct 2026 18:50:45 -0300 Subject: [PATCH 1/9] feat(memory): add Drizzle PostgreSQL chat memory --- .changeset/chat-memory-postgres.md | 5 + docs/memory-postgres-validation.md | 56 +++ packages/memory/README.md | 78 ++++ packages/memory/package.json | 27 +- packages/memory/src/postgres.ts | 60 +++ packages/memory/tests/postgres-contract.ts | 87 +++++ packages/memory/tests/postgres-worker.ts | 18 + packages/memory/tests/postgres-workerd.mjs | 26 ++ .../memory/tests/postgres.integration.test.ts | 12 + packages/memory/tests/wrangler.postgres.jsonc | 6 + packages/memory/tsup.config.ts | 3 +- pnpm-lock.yaml | 347 ++++++++++++++++++ 12 files changed, 720 insertions(+), 5 deletions(-) create mode 100644 .changeset/chat-memory-postgres.md create mode 100644 docs/memory-postgres-validation.md create mode 100644 packages/memory/src/postgres.ts create mode 100644 packages/memory/tests/postgres-contract.ts create mode 100644 packages/memory/tests/postgres-worker.ts create mode 100644 packages/memory/tests/postgres-workerd.mjs create mode 100644 packages/memory/tests/postgres.integration.test.ts create mode 100644 packages/memory/tests/wrangler.postgres.jsonc diff --git a/.changeset/chat-memory-postgres.md b/.changeset/chat-memory-postgres.md new file mode 100644 index 000000000..66007444e --- /dev/null +++ b/.changeset/chat-memory-postgres.md @@ -0,0 +1,5 @@ +--- +'@agentskit/memory': minor +--- + +Add the optional `@agentskit/memory/postgres` subpath with BYO Drizzle/node-postgres ChatMemory, exported schema and migration SQL, tenant/session isolation, full message-part persistence, and opt-in newest-message retention. Connection lifetime remains host-owned for Node pools and Workers clients. diff --git a/docs/memory-postgres-validation.md b/docs/memory-postgres-validation.md new file mode 100644 index 000000000..d8f16545c --- /dev/null +++ b/docs/memory-postgres-validation.md @@ -0,0 +1,56 @@ +# PostgreSQL ChatMemory task contract and validation + +Intent: implement the existing public ChatMemory contract with BYO Drizzle/pg, +without changing Core contracts. Authorized scope: packages/memory, corresponding +docs/changeset, and pnpm-lock.yaml (coordinator explicitly approved lock changes). +SessionStorage CAS/leases are owned by another task and excluded by coordinator +confirmation. No adapters/core edits, push, PR, release, deployment, real accounts, +or private consumer details. Local commit required; coordinator reviews output. + +Validation budget: local package checks, one disposable PostgreSQL 16 Docker +container, local wrangler/workerd, registry downloads for required optional peers +and dev tools. No CI or external database fixtures. Remove task-owned container +and temporary workerd state; preserve existing files. State: BLOCKED (doc-bridge), pending coordinator evidence review. + +| Criterion | Required evidence | Status | +|---|---|---| +| C1: isolated public subpath/schema/SQL | package build, ESM/CJS imports; migration executed on PG16 | validated: see evidence below | +| C2: CM1–CM6/parts/dates/atomic replace | shared real Postgres contract suite on current sources | validated: see evidence below | +| C3: tenant/session isolation | shared suite tests read/write/clear across both keys | validated: see evidence below | +| C4: explicit history policy and signal | shared suite retention/invalid config/abort; README documents in-flight boundary | validated: see evidence below | +| C5: Node Pool and Workers Client | same suite via Pool and real wrangler dev HTTP with Client/waitUntil | validated: see evidence below | +| C6: package build/lint/test | documented package commands | validated: see evidence below | +| C7: docs/changeset and handoff | current diff, confidentiality scan, local commit, coordinator review | partially validated: artifacts present; coordinator review pending | +| G1: doc bridge handoff/gate | documented query/gate commands | blocked: invalid config analysis.areas | + +RF-12 ChatMemory portion and RF-13/16 map to C1–C5. RF-12 SessionStorage, +RF-14 CAS and RF-15 lease are not analyzed here and explicitly out of scope. +Neon/Hyperdrive, deployment, UI and production performance are not applicable +for this local ChatMemory contract. RLS example is documentation; database role +policy behavior is not validated by the suite. + +Environment blockers: `ORCA_PLAYBOOK.md` absent in this worktree; no agents were +dispatched or resumed by this worker. `pnpm exec ak-docs query package memory +--agent` rejected configuration: `analysis: Unrecognized key: "areas"`. +Harness configuration remains unchanged per coordinator instruction. + +## Current evidence (2026-10-06) + +Base revision: `0e1c1aa92e69f29f41241e49753ecab8ae279119`. +Implementation/config/test/lock digest (paths ordered as recorded below): +`069ee90942dcc4d00754f37455eac4950cedc32e29e505617c7303d885c1b97b`. + +Digest paths: `packages/memory/src/postgres.ts`, `packages/memory/package.json`, `packages/memory/tsup.config.ts`, `packages/memory/tests/postgres-contract.ts`, `packages/memory/tests/postgres.integration.test.ts`, `packages/memory/tests/postgres-worker.ts`, `packages/memory/tests/postgres-workerd.mjs`, `packages/memory/tests/wrangler.postgres.jsonc`, `pnpm-lock.yaml`. + +- C1: ESM and CJS exports imported successfully; the exported SQL created the real PostgreSQL 16 table in both acceptance runners. `src/index.ts` unchanged; Drizzle/pg remain external and optional. +- C2/C3/C4: `AK_POSTGRES_TEST_PORT=55439 pnpm --filter @agentskit/memory test` passed 33 files / 242 tests; the shared suite checks CM1–CM6, independent snapshots, full parts/tools/metadata/date roundtrip, tenant/session read/write/clear isolation, complete concurrent snapshots, empty replacement, newest-N retention, invalid options/records, aborted mutations and recovery. +- C5: Node Pool suite passed against server version 16; real local wrangler dev HTTP returned 200 with every shared contract result passing, using pg.Client per request and waitUntil(client.end()). Final fixture imports the compiled public subpath, not source. +- C6: package build (tsup ESM/CJS/declarations via documented test build chain) and lint passed. `test:coverage` passed 33 files / 242 tests with 93.45% lines overall and 95% lines / 100% branches in postgres.ts (90% package threshold). Standalone fixture strict typecheck passed with TypeScript 6 `--ignoreConfig`. +- Supporting size evidence: local `size-limit packages/memory/dist/index.js --limit "16 KB" --json` passed at 13,406 bytes; the postgres.js file check passed at 796 bytes. These are narrow file checks, not the full repository size/subpath-closure gate or production latency evidence. +- G1 blocked: package handoff rejects `analysis.areas`; `docs:bridge:gate` failed to return after eight minutes and was terminated. pnpm subsequently attempted automatic dependency repair; that task-owned process was terminated too. No harness/config changes were made. + +Validated: C1–C6 local executable artifact behavior. Partially validated: C7 local artifacts/commit ready, pending coordinator review. Not analyzed: SessionStorage CAS/lease, production deployments/performance, RLS role enforcement. Blocked: doc-bridge handoff/gate. Not applicable: UI/browser/visual approval, Neon/Cloudflare accounts, external publication. + +No structural contract decision was introduced: this backend implements ADR 0003 using the existing versioned Core record and validator. No ADR/guardrail was changed. The only default-export exception is Wrangler’s required module entry in the test fixture; public package exports remain named. + +Final reconciliation: current implementation digest rechecked; confidentiality/attribution scan and `git diff --check` passed. Task-owned PostgreSQL container removed; workerd runner removed its temporary persistence directories and exited. Build/declaration and coverage outputs remain local ignored verification artifacts. Local commit includes this report; no push, PR, release, external message, or published artifact was created. Next action: coordinator reviews the diff/evidence and resolves the blocked doc-bridge environment before approving overall completion. diff --git a/packages/memory/README.md b/packages/memory/README.md index ac31db379..10784b94d 100644 --- a/packages/memory/README.md +++ b/packages/memory/README.md @@ -171,3 +171,81 @@ MIT — see [LICENSE](../../LICENSE). ## Contributing See [CONTRIBUTING.md](../../CONTRIBUTING.md) and the monorepo [LICENSE](../../LICENSE). + +### PostgreSQL chat memory (Node and Workers) + +Install `drizzle-orm` and `pg` alongside this package. The optional +`@agentskit/memory/postgres` subpath exports `postgresChatMemory`, +`postgresChatTable` (Drizzle schema), and `postgresChatMigrationSql`. +Neither peer is imported by the main entry. + +```ts +import { Pool } from 'pg' +import { drizzle } from 'drizzle-orm/node-postgres' +import { sql } from 'drizzle-orm' +import { postgresChatMemory, postgresChatMigrationSql } from '@agentskit/memory/postgres' + +const pool = new Pool() // host owns connection configuration and shutdown +const db = drizzle(pool) +// Run once in your migration tooling, not on every request: +await db.execute(sql.raw(postgresChatMigrationSql)) +const memory = postgresChatMemory({ db, tenantId: 'tenant-a', sessionId: 'session-a' }) +await memory.save([]) +await pool.end() +``` + +In Workers, enable `nodejs_compat`; create and connect a `pg.Client` inside each +request, pass `drizzle(client)`, and close it with `ctx.waitUntil(client.end())` +after all memory operations (and any stream using them) have finished. The +package never connects, migrates, or closes your client. A Node `Pool` can be +shared across requests. No Neon, Hyperdrive, or Cloudflare dependency is needed; +the host can supply their connection configuration when appropriate. + +Every query uses both tenant and session, which form the primary key. Derive +these identifiers from trusted authorization context: caller-supplied tenant +names alone are not authorization. Saves atomically replace a versioned JSONB +snapshot, preserving parts, tools, metadata, dates, and message order. Concurrent +saves use last-writer-wins; this ChatMemory does not implement session CAS or +turn leases. Schema migration is explicit; SQL/connection errors propagate and +invalid records fail rather than silently discarding history. + +No truncation is performed by default (CM1–CM6). Opt into `maxMessages: N` to +persist only the last N array entries on each save, in their original order. +This permanently removes older messages; it counts messages, not tokens or +bytes, and can split a tool-call pair or drop a system prompt. For semantic +summarization or complete-turn retention, prepare the history in the host +instead. A positive safe integer is required; empty saves still persist `[]`. + +`signal` rejects already-aborted operations before any SQL is issued. Loads +also check after SQL returns. Drizzle/pg does not cancel in-flight SQL here: +a save/clear already submitted can commit after an abort and will report its +actual SQL outcome. Configure query/statement timeouts on the host connection. + +Optional defense-in-depth RLS (run as migration owner, access through a +non-owner role without BYPASSRLS; set tenant inside a host-managed transaction): + +```sql +ALTER TABLE agentskit_chat_memory ENABLE ROW LEVEL SECURITY; +ALTER TABLE agentskit_chat_memory FORCE ROW LEVEL SECURITY; +CREATE POLICY tenant_isolation ON agentskit_chat_memory + USING (tenant_id = current_setting('app.tenant_id', true)) + WITH CHECK (tenant_id = current_setting('app.tenant_id', true)); +``` + +Do not set a tenant on a shared pool connection outside a transaction. The host +must enforce role permissions and set its trusted tenant with transaction-local +`set_config('app.tenant_id', tenant, true)`. + +Real acceptance checks (local disposable PostgreSQL 16, trust auth on loopback; +no production accounts): + +```sh +docker run -d --name ak-memory-test -p 127.0.0.1:55439:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:16 +AK_POSTGRES_TEST_PORT=55439 pnpm --filter @agentskit/memory test:postgres +AK_POSTGRES_TEST_PORT=55439 pnpm --filter @agentskit/memory test:workerd +docker rm -f ak-memory-test +``` + +`test:postgres` is skipped without its explicit local test port. `test:workerd` +runs `wrangler dev --local`, uses a Client per request and `waitUntil` shutdown, +and exercises the same synthetic contract suite as the Node Pool test. diff --git a/packages/memory/package.json b/packages/memory/package.json index 110851bea..40d2af132 100644 --- a/packages/memory/package.json +++ b/packages/memory/package.json @@ -42,6 +42,11 @@ "types": "./dist/web-storage.d.ts", "import": "./dist/web-storage.js", "require": "./dist/web-storage.cjs" + }, + "./postgres": { + "types": "./dist/postgres.d.ts", + "import": "./dist/postgres.js", + "require": "./dist/postgres.cjs" } }, "files": [ @@ -56,18 +61,28 @@ "test": "pnpm exec turbo run build --filter=@agentskit/memory --concurrency=2 && vitest run", "test:coverage": "pnpm exec turbo run build --filter=@agentskit/memory --concurrency=2 && vitest run --coverage", "lint": "tsc --noEmit", - "dev": "tsup --watch" + "dev": "tsup --watch", + "test:postgres": "pnpm exec turbo run build --filter=@agentskit/memory --concurrency=2 && vitest run tests/postgres.integration.test.ts", + "test:workerd": "pnpm exec turbo run build --filter=@agentskit/memory --concurrency=2 && node tests/postgres-workerd.mjs" }, "dependencies": { "@agentskit/core": "workspace:*", "@agentskit/net": "workspace:*" }, "peerDependencies": { - "vectra": "^0.15.0" + "vectra": "^0.15.0", + "drizzle-orm": "^0.45.3", + "pg": "^8.23.1" }, "peerDependenciesMeta": { "vectra": { "optional": true + }, + "drizzle-orm": { + "optional": true + }, + "pg": { + "optional": true } }, "devDependencies": { @@ -78,11 +93,15 @@ "tsup": "^8.5.1", "typescript": "^6.0.3", "vectra": "^0.15.0", - "vitest": "^4.1.11" + "vitest": "^4.1.11", + "drizzle-orm": "^0.45.3", + "pg": "^8.23.1", + "@types/pg": "^8.15.6", + "wrangler": "^4.148.0" }, "agentskit": { "stability": "beta", - "stabilityNote": "File/SQLite/Redis backends — Memory contract v1." + "stabilityNote": "File/SQLite/Redis backends \u2014 Memory contract v1." }, "license": "MIT", "homepage": "https://www.agentskit.io/docs/reference/packages/memory", diff --git a/packages/memory/src/postgres.ts b/packages/memory/src/postgres.ts new file mode 100644 index 000000000..f65e1d786 --- /dev/null +++ b/packages/memory/src/postgres.ts @@ -0,0 +1,60 @@ +import type { ChatMemory, MemoryRecord } from '@agentskit/core' +import { serializeMessages } from '@agentskit/core' +import { validateMemoryRecord } from '@agentskit/core/memory-validation' +import { and, eq } from 'drizzle-orm' +import type { NodePgDatabase } from 'drizzle-orm/node-postgres' +import { jsonb, pgTable, primaryKey, text } from 'drizzle-orm/pg-core' +import { decodeStoredMessages } from './decode' + +export const postgresChatTable = pgTable('agentskit_chat_memory', { + tenantId: text('tenant_id').notNull(), + sessionId: text('session_id').notNull(), + record: jsonb('record').$type().notNull(), +}, table => [primaryKey({ columns: [table.tenantId, table.sessionId] })]) + +export const postgresChatMigrationSql = `CREATE TABLE IF NOT EXISTS agentskit_chat_memory ( + tenant_id text NOT NULL, + session_id text NOT NULL, + record jsonb NOT NULL, + PRIMARY KEY (tenant_id, session_id) +);` + +export interface PostgresChatMemoryOptions { + db: Pick + tenantId: string + sessionId: string + /** Opt-in retention: keep the newest N messages on save. Default: no truncation. */ + maxMessages?: number +} + +/** BYO Drizzle/pg connection; the caller owns migration and connection lifetime. */ +export function postgresChatMemory({ db, tenantId, sessionId, maxMessages }: PostgresChatMemoryOptions): ChatMemory { + if (typeof tenantId !== 'string' || !tenantId.trim() + || typeof sessionId !== 'string' || !sessionId.trim()) { + throw new TypeError('tenantId and sessionId must be non-empty strings') + } + if (maxMessages !== undefined && (!Number.isSafeInteger(maxMessages) || maxMessages < 1)) { + throw new RangeError('maxMessages must be a positive safe integer') + } + const key = and(eq(postgresChatTable.tenantId, tenantId), eq(postgresChatTable.sessionId, sessionId)) + return { + async load(options) { + options?.signal?.throwIfAborted() + const [row] = await db.select({ record: postgresChatTable.record }).from(postgresChatTable).where(key) + options?.signal?.throwIfAborted() + return row ? decodeStoredMessages(JSON.stringify(row.record), 'postgresChatMemory') : [] + }, + async save(messages, options) { + options?.signal?.throwIfAborted() + const record = validateMemoryRecord(serializeMessages(messages)) + if (maxMessages !== undefined) record.messages = record.messages.slice(-maxMessages) + options?.signal?.throwIfAborted() + await db.insert(postgresChatTable).values({ tenantId, sessionId, record }) + .onConflictDoUpdate({ target: [postgresChatTable.tenantId, postgresChatTable.sessionId], set: { record } }) + }, + async clear(options) { + options?.signal?.throwIfAborted() + await db.delete(postgresChatTable).where(key) + }, + } +} diff --git a/packages/memory/tests/postgres-contract.ts b/packages/memory/tests/postgres-contract.ts new file mode 100644 index 000000000..a4767775f --- /dev/null +++ b/packages/memory/tests/postgres-contract.ts @@ -0,0 +1,87 @@ +import { deepStrictEqual } from 'node:assert/strict' +import type { Message } from '@agentskit/core' +import { sql } from 'drizzle-orm' +import type { NodePgDatabase } from 'drizzle-orm/node-postgres' +import { postgresChatMemory, postgresChatMigrationSql, postgresChatTable } from '@agentskit/memory/postgres' + +function check(value: unknown, label: string): asserts value { + if (!value) throw new Error(label) +} +function equal(a: unknown, b: unknown, label: string) { + deepStrictEqual(a, b, label) +} +async function rejects(run: () => unknown, label: string) { + try { await run() } catch { return } + throw new Error(label) +} + +export async function postgresContract(db: NodePgDatabase, prefix: string) { + await db.execute(sql.raw(postgresChatMigrationSql)) + const options = { db, tenantId: prefix, sessionId: 'shared' } + const memory = postgresChatMemory(options) + const otherTenant = postgresChatMemory({ ...options, tenantId: `${prefix}-other` }) + const otherSession = postgresChatMemory({ ...options, sessionId: 'other' }) + const message: Message = { + id: 'one', role: 'user', content: 'synthetic', status: 'complete', createdAt: new Date('2026-01-01Z'), + parts: [ + { type: 'text', text: 'synthetic' }, + { type: 'image', source: 'https://example.test/image', detail: 'high' }, + { type: 'file', source: 's3://synthetic/file', filename: 'test.pdf', mimeType: 'application/pdf' }, + { type: 'audio', source: 'https://example.test/audio', durationSec: 2 }, + { type: 'video', source: 'https://example.test/video', durationSec: 3 }, + ], + metadata: { synthetic: { nested: true } }, + toolCalls: [{ id: 'call', name: 'synthetic', args: {}, status: 'complete' }], + } + const second: Message = { ...message, id: 'two', role: 'assistant' } + try { + await memory.clear!(); await otherTenant.clear!(); await otherSession.clear!() + equal(await memory.load(), [], 'CM5 empty') + await memory.save([second, message]) + equal(await memory.load(), [second, message], 'CM3 parts/order/metadata roundtrip') + check((await memory.load())[0]!.createdAt instanceof Date, 'Date restored') + const snapshot = await memory.load() + snapshot[0]!.parts![0] = { type: 'text', text: 'mutated' } + equal(await memory.load(), [second, message], 'CM1 independent snapshot') + equal(await otherTenant.load(), [], 'tenant read isolation') + equal(await otherSession.load(), [], 'session read isolation') + await otherTenant.save([second]); await otherSession.save([second]) + await memory.save([message]) + equal(await memory.load(), [message], 'CM2 replace-all') + equal(await otherTenant.load(), [second], 'tenant write isolation') + equal(await otherSession.load(), [second], 'session write isolation') + await memory.clear!() + equal(await memory.load(), [], 'CM6 clear') + equal(await otherTenant.load(), [second], 'tenant clear isolation') + equal(await otherSession.load(), [second], 'session clear isolation') + await Promise.all([memory.save([message]), memory.save([second, message])]) + const concurrent = await memory.load() + check(concurrent.length === 1 || concurrent.length === 2, 'CM4 complete concurrent snapshot') + equal(concurrent, concurrent.length === 1 ? [message] : [second, message], 'CM4 no partial writes') + await memory.save([]) + equal(await memory.load(), [], 'CM2 empty replace') + const bounded = postgresChatMemory({ ...options, maxMessages: 1 }) + await bounded.save([message, second]) + equal(await bounded.load(), [second], 'opt-in newest retention') + const controller = new AbortController(); controller.abort() + await rejects(() => memory.load({ signal: controller.signal }), 'aborted load') + await rejects(() => memory.save([message], { signal: controller.signal }), 'aborted save') + await rejects(() => memory.clear!({ signal: controller.signal }), 'aborted clear') + equal(await memory.load(), [second], 'aborted mutations preserved state') + await rejects(() => memory.save([{ ...message, role: 'invalid' } as unknown as Message]), 'invalid save rejected') + equal(await memory.load(), [second], 'invalid save preserved state') + await db.insert(postgresChatTable).values({ tenantId: options.tenantId, sessionId: options.sessionId, record: { version: 1, messages: [] } }) + .onConflictDoUpdate({ target: [postgresChatTable.tenantId, postgresChatTable.sessionId], set: { record: sql`'{"version":2}'::jsonb` } }) + await rejects(() => memory.load(), 'corrupt record rejected') + await memory.save([message]) + equal(await memory.load(), [message], 'recovery by replace') + for (const maxMessages of [0, -1, 1.5, Infinity]) { + await rejects(() => postgresChatMemory({ ...options, maxMessages }), 'invalid retention config') + } + await rejects(() => postgresChatMemory({ ...options, tenantId: '' }), 'empty tenant rejected') + await rejects(() => postgresChatMemory({ ...options, sessionId: '' }), 'empty session rejected') + return { contract: 'CM1-CM6', isolation: 'tenant/session', parts: 'all five kinds', retention: 'newest N', abort: 'pre-query', recovery: 'passed' } + } finally { + await memory.clear!(); await otherTenant.clear!(); await otherSession.clear!() + } +} diff --git a/packages/memory/tests/postgres-worker.ts b/packages/memory/tests/postgres-worker.ts new file mode 100644 index 000000000..479cb6a1c --- /dev/null +++ b/packages/memory/tests/postgres-worker.ts @@ -0,0 +1,18 @@ +import { Client } from 'pg' +import { drizzle } from 'drizzle-orm/node-postgres' +import { postgresContract } from './postgres-contract' + +const worker = { + async fetch(_request: Request, env: { AK_POSTGRES_TEST_PORT: string }, ctx: { waitUntil(promise: Promise): void }) { + const client = new Client({ host: '127.0.0.1', port: Number(env.AK_POSTGRES_TEST_PORT), user: 'postgres', database: 'postgres' }) + try { + await client.connect() + const result = await postgresContract(drizzle(client), `worker-${crypto.randomUUID()}`) + return Response.json(result) + } catch { + return Response.json({ error: 'Postgres workerd contract failed' }, { status: 500 }) + } finally { ctx.waitUntil(client.end()) } + }, +} +// Wrangler's module entry requires a default export; this is a test-only fixture. +export { worker as default } diff --git a/packages/memory/tests/postgres-workerd.mjs b/packages/memory/tests/postgres-workerd.mjs new file mode 100644 index 000000000..c941c08de --- /dev/null +++ b/packages/memory/tests/postgres-workerd.mjs @@ -0,0 +1,26 @@ +import { spawn } from 'node:child_process' +import { mkdtemp, rm } from 'node:fs/promises' +import { tmpdir } from 'node:os' +import { join } from 'node:path' +import assert from 'node:assert/strict' + +assert(process.env.AK_POSTGRES_TEST_PORT, 'Set AK_POSTGRES_TEST_PORT to a local trust-auth PostgreSQL 16 port') +const state = await mkdtemp(join(tmpdir(), 'ak-memory-workerd-')) +const child = spawn('pnpm', ['exec', 'wrangler', 'dev', '--config', 'tests/wrangler.postgres.jsonc', '--local', '--port', '8799', '--persist-to', state, '--var', `AK_POSTGRES_TEST_PORT:${process.env.AK_POSTGRES_TEST_PORT}`], { stdio: ['ignore', 'pipe', 'pipe'], env: { ...process.env, WRANGLER_SEND_METRICS: 'false' } }) +// Capture subprocess output internally: never publish connection diagnostics. +child.stdout.resume(); child.stderr.resume() +try { + let response + for (let attempt = 0; attempt < 240; attempt++) { + assert(child.exitCode === null, 'wrangler exited before acceptance') + try { response = await fetch('http://127.0.0.1:8799', { signal: AbortSignal.timeout(15000) }); break } catch { await new Promise(resolve => setTimeout(resolve, 500)) } + } + assert(response, 'wrangler readiness timeout') + assert.equal(response.status, 200, 'real workerd/Postgres request') + assert.deepEqual(await response.json(), { contract: 'CM1-CM6', isolation: 'tenant/session', parts: 'all five kinds', retention: 'newest N', abort: 'pre-query', recovery: 'passed' }) + console.log('workerd + PostgreSQL: CM1-CM6, isolation, parts, retention, abort and recovery passed') +} finally { + child.kill('SIGTERM') + if (child.exitCode === null) await new Promise(resolve => child.once('exit', resolve)) + await rm(state, { recursive: true, force: true }) +} diff --git a/packages/memory/tests/postgres.integration.test.ts b/packages/memory/tests/postgres.integration.test.ts new file mode 100644 index 000000000..e53447522 --- /dev/null +++ b/packages/memory/tests/postgres.integration.test.ts @@ -0,0 +1,12 @@ +import { expect, it } from 'vitest' +import { Pool } from 'pg' +import { drizzle } from 'drizzle-orm/node-postgres' +import { postgresContract } from './postgres-contract' + +it.skipIf(!process.env.AK_POSTGRES_TEST_PORT)('ChatMemory contract on real PostgreSQL', async () => { + const pool = new Pool({ host: '127.0.0.1', port: Number(process.env.AK_POSTGRES_TEST_PORT), user: 'postgres', database: 'postgres' }) + try { + expect((await pool.query('SHOW server_version')).rows[0].server_version).toMatch(/^16\./) + expect(await postgresContract(drizzle(pool), `test-${crypto.randomUUID()}`)).toMatchObject({ recovery: 'passed' }) + } finally { await pool.end() } +}, 30_000) diff --git a/packages/memory/tests/wrangler.postgres.jsonc b/packages/memory/tests/wrangler.postgres.jsonc new file mode 100644 index 000000000..52f7e6f0d --- /dev/null +++ b/packages/memory/tests/wrangler.postgres.jsonc @@ -0,0 +1,6 @@ +{ + "name": "agentskit-memory-postgres-test", + "main": "postgres-worker.ts", + "compatibility_date": "2026-10-01", + "compatibility_flags": ["nodejs_compat"] +} diff --git a/packages/memory/tsup.config.ts b/packages/memory/tsup.config.ts index 0ecf98fc1..6af78b90f 100644 --- a/packages/memory/tsup.config.ts +++ b/packages/memory/tsup.config.ts @@ -5,9 +5,10 @@ export default defineConfig({ ...sharedTsupOptions, entry: { index: 'src/index.ts', + postgres: 'src/postgres.ts', personalization: 'src/personalization.ts', 'web-storage': 'src/web-storage.ts', }, clean: false, - external: ['better-sqlite3', 'redis', 'vectra', '@lancedb/lancedb'], + external: ['drizzle-orm', 'pg', 'better-sqlite3', 'redis', 'vectra', '@lancedb/lancedb'], }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ab61ade52..55efaa020 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1227,9 +1227,18 @@ importers: '@types/node': specifier: ^25.9.5 version: 25.9.5 + '@types/pg': + specifier: ^8.15.6 + version: 8.23.1 better-sqlite3: specifier: ^13.0.3 version: 13.0.3 + drizzle-orm: + specifier: ^0.45.3 + version: 0.45.3(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(@types/pg@8.23.1)(@upstash/redis@1.38.4)(better-sqlite3@13.0.3)(pg@8.23.1) + pg: + specifier: ^8.23.1 + version: 8.23.1 redis: specifier: ^6.2.1 version: 6.2.1(@opentelemetry/api@1.9.1) @@ -1245,6 +1254,9 @@ importers: vitest: specifier: ^4.1.11 version: 4.1.11(@opentelemetry/api@1.9.1)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.11)(happy-dom@20.14.5)(jsdom@30.0.1(@noble/hashes@2.2.0))(msw@2.15.0(@types/node@25.9.5)(typescript@6.0.3))(vite@8.3.0(@types/node@25.9.5)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(terser@5.51.2)(tsx@4.23.13)(yaml@2.9.1)) + wrangler: + specifier: ^4.148.0 + version: 4.148.0(@types/node@25.9.5) packages/net: dependencies: @@ -9992,6 +10004,216 @@ packages: zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + + '@cloudflare/kv-asset-handler@0.5.0': + resolution: {integrity: sha512-jxQYkj8dSIzc0cD6cMMNdOc1UVjqSqu8BZdor5s8cGjW2I8BjODt/kWPVdY+u9zj3ms75Q5qaZgnxUad83+eAg==} + engines: {node: '>=22.0.0'} + + '@cloudflare/workerd-darwin-64@1.20261006.1': + resolution: {integrity: sha512-lCX6avJO2It9AyDEYitjmOtJRVp/xmaW0TziyoLAnfxlzozyyRbSFfIIMMCiDx/sTP1++E4VLbV+7BHSD33f0Q==} + engines: {node: '>=16'} + cpu: [x64] + os: [darwin] + + '@cloudflare/workerd-darwin-arm64@1.20261006.1': + resolution: {integrity: sha512-PyFGjOaldtppnLuKsdkoYWXfLVpDjuf8u+uoykX+1Xvxo2EPmCVViq0iDKm+U7c7PRno85ehS3/MPVXyk2HwHw==} + engines: {node: '>=16'} + cpu: [arm64] + os: [darwin] + + '@cloudflare/workerd-linux-64@1.20261006.1': + resolution: {integrity: sha512-Ntf9S8eesmVufdjaT2kzWlz6Ng9XGYTc6cHQVRKAg59lFufwsIabGeMT6U4KkrpEeSIxgHq8aPtuLbZXE19tCA==} + engines: {node: '>=16'} + cpu: [x64] + os: [linux] + + '@cloudflare/workerd-linux-arm64@1.20261006.1': + resolution: {integrity: sha512-JyeDBymVWw5tVRebSsVE8ojDYxd6UlZrAseHU8G+NpIyd5wF61tXlF/axLeCUqu0pOhBFHb8I5QKi0jwrCK41Q==} + engines: {node: '>=16'} + cpu: [arm64] + os: [linux] + + '@cloudflare/workerd-windows-64@1.20261006.1': + resolution: {integrity: sha512-nWP0URNqOBN9fa/gZ7eh/w051DwjOXN8j4lDZDYVXyQPsux6sV3DfyYZT+CjR/rt9nKBSmJT9QE9/bWT18+84w==} + engines: {node: '>=16'} + cpu: [x64] + os: [win32] + + '@types/pg@8.23.1': + resolution: {integrity: sha512-fKVHpikPdg4GKks3JuLEhvwSyvwzF23hnabPy6DD8ljVbC7+6J5dQzdv4arV6jqq57djnMgs1HKBxX4P8aBI3A==} + + drizzle-orm@0.45.3: + resolution: {integrity: sha512-CAloER21cDdcgZ1OmjrZX82EeRNsdP+y0onX/eyoYDaYzki/adrAa91lzM5jWh7zZPK4qUbw/6LGv9J+A+uizA==} + peerDependencies: + '@aws-sdk/client-rds-data': '>=3' + '@cloudflare/workers-types': '>=4' + '@electric-sql/pglite': '>=0.2.0' + '@libsql/client': '>=0.10.0' + '@libsql/client-wasm': '>=0.10.0' + '@neondatabase/serverless': '>=0.10.0' + '@netlify/db': '>=0.4.0' + '@op-engineering/op-sqlite': '>=2' + '@opentelemetry/api': ^1.4.1 + '@planetscale/database': '>=1.13' + '@prisma/client': '*' + '@tidbcloud/serverless': '*' + '@types/better-sqlite3': '*' + '@types/pg': '*' + '@types/sql.js': '*' + '@upstash/redis': '>=1.34.7' + '@vercel/postgres': '>=0.8.0' + '@xata.io/client': '*' + better-sqlite3: '>=7' + bun-types: '*' + expo-sqlite: '>=14.0.0' + gel: '>=2' + knex: '*' + kysely: '*' + mysql2: '>=2' + pg: '>=8' + postgres: '>=3' + prisma: '*' + sql.js: '>=1' + sqlite3: '>=5' + peerDependenciesMeta: + '@aws-sdk/client-rds-data': + optional: true + '@cloudflare/workers-types': + optional: true + '@electric-sql/pglite': + optional: true + '@libsql/client': + optional: true + '@libsql/client-wasm': + optional: true + '@neondatabase/serverless': + optional: true + '@netlify/db': + optional: true + '@op-engineering/op-sqlite': + optional: true + '@opentelemetry/api': + optional: true + '@planetscale/database': + optional: true + '@prisma/client': + optional: true + '@tidbcloud/serverless': + optional: true + '@types/better-sqlite3': + optional: true + '@types/pg': + optional: true + '@types/sql.js': + optional: true + '@upstash/redis': + optional: true + '@vercel/postgres': + optional: true + '@xata.io/client': + optional: true + better-sqlite3: + optional: true + bun-types: + optional: true + expo-sqlite: + optional: true + gel: + optional: true + knex: + optional: true + kysely: + optional: true + mysql2: + optional: true + pg: + optional: true + postgres: + optional: true + prisma: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + + miniflare@5.20261006.0-alpha: + resolution: {integrity: sha512-UP3qIeQKHba59GHxBqD8H2GateacluT4vrjIpqEgH78kCSUxdu8jA0f7MH7ftRSAnnB1oOvEsDtav3xevQDbpQ==} + engines: {node: '>=22.0.0'} + + pg-cloudflare@1.4.1: + resolution: {integrity: sha512-6PQbsFWZcp9EmJEwy5cGQ2La+AMWpP46lgbb8X+U/XsHIUweYDNCpeuKck5RxL2MdVFi7krbbEi5nX4Zh7JhrQ==} + + pg-connection-string@2.14.1: + resolution: {integrity: sha512-qR3kGNPBLpCNtz0evbKA0Y/MRFXwSSdT+pTJvYp/bXTcReZbvX1kzF0IyTc1QnxqF7AZbOeBhNL8R5mYQZV/MA==} + + pg-int8@1.0.1: + resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} + engines: {node: '>=4.0.0'} + + pg-pool@3.14.0: + resolution: {integrity: sha512-gKtPkFdQPU3DksooVLi9LsjZxrsBUZIpa+7aVx+LV5pNh0KzP4Zleud2po+ConrxbuXGBJ6Hfer6hdgpIBpBaw==} + peerDependencies: + pg: '>=8.0' + + pg-protocol@1.16.1: + resolution: {integrity: sha512-p9VOFMiHB/ZbJATetbg+99PxssTVSQRnyuPSQ67mN1+1KBOjZaZ83ZQzltnxPhJwSsC3nwVjJ10DVJlerbFzLg==} + + pg-types@2.2.0: + resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} + engines: {node: '>=4'} + + pg@8.23.1: + resolution: {integrity: sha512-aL96AHANtWjPLDOLqnhx+ngp9+UK7ETEU8VJrDCGvsSSi/mGLcWYsS6Herg7lmaBJe4uwrfqsa7gTEFaSizDoQ==} + engines: {node: '>= 16.0.0'} + peerDependencies: + pg-native: '>=3.0.1' + peerDependenciesMeta: + pg-native: + optional: true + + pgpass@1.0.5: + resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} + + postgres-array@2.0.0: + resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} + engines: {node: '>=4'} + + postgres-bytea@1.0.1: + resolution: {integrity: sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==} + engines: {node: '>=0.10.0'} + + postgres-date@1.0.7: + resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} + engines: {node: '>=0.10.0'} + + postgres-interval@1.2.0: + resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} + engines: {node: '>=0.10.0'} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + workerd@1.20261006.1: + resolution: {integrity: sha512-8MadBuffZ5NdpLwZjUmsqT5QlaKXq4gjgT6wzcKeynZTICNXyePhc+5QVoKiK7+MMhFTLNrRO2KXLlpk8Q6BkA==} + engines: {node: '>=16'} + hasBin: true + + wrangler@4.148.0: + resolution: {integrity: sha512-wgbll8cA/7qOMJSoYQuJrw9M9lmedGzYtg6wvUK2p/7G1KaE88jFmQ/CvtQzVUF9C8PQtC4Y5p9vbpAsJGAlpA==} + engines: {node: '>=22.0.0'} + hasBin: true + peerDependencies: + '@cloudflare/workers-types': ^5.20261006.1 + peerDependenciesMeta: + '@cloudflare/workers-types': + optional: true + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + snapshots: '@adobe/css-tools@4.5.0': {} @@ -20328,3 +20550,128 @@ snapshots: zone.js@0.16.3: {} zwitch@2.0.4: {} + + '@cloudflare/kv-asset-handler@0.5.0': {} + + '@cloudflare/unenv-preset@2.16.2(unenv@2.0.0-rc.24)(workerd@1.20261006.1)': + dependencies: + unenv: 2.0.0-rc.24 + optionalDependencies: + workerd: 1.20261006.1 + + '@cloudflare/workerd-darwin-64@1.20261006.1': + optional: true + + '@cloudflare/workerd-darwin-arm64@1.20261006.1': + optional: true + + '@cloudflare/workerd-linux-64@1.20261006.1': + optional: true + + '@cloudflare/workerd-linux-arm64@1.20261006.1': + optional: true + + '@cloudflare/workerd-windows-64@1.20261006.1': + optional: true + + '@types/pg@8.23.1': + dependencies: + '@types/node': 26.6.1 + pg-protocol: 1.16.1 + pg-types: 2.2.0 + + drizzle-orm@0.45.3(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(@types/pg@8.23.1)(@upstash/redis@1.38.4)(better-sqlite3@13.0.3)(pg@8.23.1): + optionalDependencies: + '@opentelemetry/api': 1.9.1 + '@types/better-sqlite3': 7.6.13 + '@types/pg': 8.23.1 + '@upstash/redis': 1.38.4 + better-sqlite3: 13.0.3 + pg: 8.23.1 + + miniflare@5.20261006.0-alpha(@types/node@25.9.5): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + sharp: 0.35.5(@types/node@25.9.5) + undici: 7.29.1 + workerd: 1.20261006.1 + ws: 8.21.0 + youch: 4.1.0-beta.10 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - utf-8-validate + + pg-cloudflare@1.4.1: + optional: true + + pg-connection-string@2.14.1: {} + + pg-int8@1.0.1: {} + + pg-pool@3.14.0(pg@8.23.1): + dependencies: + pg: 8.23.1 + + pg-protocol@1.16.1: {} + + pg-types@2.2.0: + dependencies: + pg-int8: 1.0.1 + postgres-array: 2.0.0 + postgres-bytea: 1.0.1 + postgres-date: 1.0.7 + postgres-interval: 1.2.0 + + pg@8.23.1: + dependencies: + pg-connection-string: 2.14.1 + pg-pool: 3.14.0(pg@8.23.1) + pg-protocol: 1.16.1 + pg-types: 2.2.0 + pgpass: 1.0.5 + optionalDependencies: + pg-cloudflare: 1.4.1 + + pgpass@1.0.5: + dependencies: + split2: 4.2.0 + + postgres-array@2.0.0: {} + + postgres-bytea@1.0.1: {} + + postgres-date@1.0.7: {} + + postgres-interval@1.2.0: + dependencies: + xtend: 4.0.2 + + split2@4.2.0: {} + + workerd@1.20261006.1: + optionalDependencies: + '@cloudflare/workerd-darwin-64': 1.20261006.1 + '@cloudflare/workerd-darwin-arm64': 1.20261006.1 + '@cloudflare/workerd-linux-64': 1.20261006.1 + '@cloudflare/workerd-linux-arm64': 1.20261006.1 + '@cloudflare/workerd-windows-64': 1.20261006.1 + + wrangler@4.148.0(@types/node@25.9.5): + dependencies: + '@cloudflare/kv-asset-handler': 0.5.0 + '@cloudflare/unenv-preset': 2.16.2(unenv@2.0.0-rc.24)(workerd@1.20261006.1) + blake3-wasm: 2.1.5 + esbuild: 0.28.1 + miniflare: 5.20261006.0-alpha(@types/node@25.9.5) + path-to-regexp: 6.3.0 + unenv: 2.0.0-rc.24 + workerd: 1.20261006.1 + optionalDependencies: + fsevents: 2.3.3 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - utf-8-validate + + xtend@4.0.2: {} From 880c76a4124cb0d79c43929667acb3b52e3dbd97 Mon Sep 17 00:00:00 2001 From: EmersonBraun Date: Tue, 6 Oct 2026 19:39:19 -0300 Subject: [PATCH 2/9] docs: regenerate doc index --- .doc-bridge/capabilities.json | 2 +- .doc-bridge/index.json | 3757 ++++++++++++++++++++++++--------- 2 files changed, 2766 insertions(+), 993 deletions(-) diff --git a/.doc-bridge/capabilities.json b/.doc-bridge/capabilities.json index 12af83459..c74e37132 100644 --- a/.doc-bridge/capabilities.json +++ b/.doc-bridge/capabilities.json @@ -7,7 +7,7 @@ "name": "AgentsKit", "root": "." }, - "contentHash": "83ce51ebe17ccc5b526c6bd48030e713115cb385218ed5c17de3e30e19756316", + "contentHash": "1ae59c3192e5f5dbac0391a56bca95001c9c08bdc6eb7b19fd450c9d2bb509bb", "artifacts": { "index": ".doc-bridge/index.json", "llmsTxt": ".doc-bridge/llms.txt" diff --git a/.doc-bridge/index.json b/.doc-bridge/index.json index e11cdbe0e..bed2776db 100644 --- a/.doc-bridge/index.json +++ b/.doc-bridge/index.json @@ -1,8 +1,8 @@ { "schemaVersion": 1, - "contentHash": "83ce51ebe17ccc5b526c6bd48030e713115cb385218ed5c17de3e30e19756316", + "contentHash": "1ae59c3192e5f5dbac0391a56bca95001c9c08bdc6eb7b19fd450c9d2bb509bb", "contentHashAlgo": "sha256-normalized-v1", - "generatedAt": "2026-10-03T12:37:59.882Z", + "generatedAt": "2026-10-06T22:38:24.385Z", "project": { "name": "AgentsKit", "root": "." @@ -3735,7 +3735,7 @@ "document", "human" ], - "contentHash": "722820fab334813e3ab9ae1382c87d9e2aaa27f874c0f24917427e98378dc99b" + "contentHash": "374df5fb9fe1af9d8511f5f078ea51fae5e2d590eefc531f3c5f4a888131ec76" }, { "id": "document:apps/docs-next/content/docs/reference/packages/eval-braintrust.mdx", @@ -5595,7 +5595,7 @@ "document", "project" ], - "contentHash": "1b1f0dcbfd4593f294031ab43c99b5af93e1ecbd3d0e4186cec50c39f83065cf" + "contentHash": "3077743f11a0f1247886eba780727275a818b99d1cb4abca3febaa84dfb031ca" }, { "id": "document:docs/architecture/adrs/0001-adapter-contract.md", @@ -6485,6 +6485,18 @@ ], "contentHash": "275290371076d15e21d24346859d5b3390722228cea5fae9086a3ddc6c24a865" }, + { + "id": "document:docs/memory-postgres-validation.md", + "type": "document", + "title": "PostgreSQL ChatMemory task contract and validation", + "path": "docs/memory-postgres-validation.md", + "description": "Intent: implement the existing public ChatMemory contract with BYO Drizzle/pg, without changing Core contracts. Authorized scope: packages/memory, corresponding docs/changeset, and pnpm-lock.yaml (coordinator explicitly approved lock changes). SessionStorage CAS/leases are owned by another task and excluded by coordinator confirmation.", + "tags": [ + "document", + "human" + ], + "contentHash": "a8a6d17d5f5d8bf4db2b0ba893dab692dd40a8a94838385bc8a3c3860c471206" + }, { "id": "document:docs/PHASE-0-EXECUTION-PLAN.md", "type": "document", @@ -6557,6 +6569,30 @@ ], "contentHash": "40eddcd3c332ec3d987257b97cb51bfe651abcd586240e479dbe656f1fd1c632" }, + { + "id": "document:docs/qa/ci-timing.md", + "type": "document", + "title": "CI timing report", + "path": "docs/qa/ci-timing.md", + "description": "Run pnpm ci:timing from a checkout with GitHub CLI access and built workspace packages. It summarizes the latest 30 completed ci.yml runs on main and the latest 30 completed pull request runs, including queue and total duration plus job and step p50/p90 durations and sampled failure and rerun rates. Run pnpm build first if packages/cross-platform/dist is absent.", + "tags": [ + "document", + "human" + ], + "contentHash": "64489de48aa73856678229a0102fbec42420fc0f9edc6b54c66f37f146f7a8e4" + }, + { + "id": "document:docs/qa/guardrail-report.md", + "type": "document", + "title": "Periodic guardrail report", + "path": "docs/qa/guardrail-report.md", + "description": "The monthly Periodic guardrail report workflow runs on main and supports manual dispatch on main. It adds the Markdown report to the workflow summary and uploads Markdown and JSON as the guardrail-report artifact. It does not write to the repository or create issues.", + "tags": [ + "document", + "human" + ], + "contentHash": "6e7dd272bcaa28e987e055e16f483ada8618c46ff8b61e57624ae1b4574aa642" + }, { "id": "document:docs/qa/vitepress-starlight-adapters.md", "type": "document", @@ -6927,7 +6963,7 @@ "document", "project" ], - "contentHash": "f9fa2088d8d1a2eb8ebb160f219dc2b6680ee8fd93d218f280c9a202089927a3" + "contentHash": "0ec82bce2e5d6dec7e4c2467c9b88901baa65690bb5b225bdef864a0b96b0470" }, { "id": "document:packages/eval-braintrust/CONVENTIONS.md", @@ -7083,7 +7119,7 @@ "document", "project" ], - "contentHash": "ddfb926a3bb058a47bc74c00ba52260c894f751597691210caef2374676a6d4a" + "contentHash": "bc1f0e4821bc5fc6b6d969dc749bcc834343c2fdd07e0364926f16a4fe6f2a6e" }, { "id": "document:packages/net/CONVENTIONS.md", @@ -7666,12 +7702,12 @@ "type": "document", "title": "scripts/", "path": "scripts/README.md", - "description": "Repo-level CI helpers. Each script is dependency-free Node ESM, runnable from the repo root. They run on every PR + push to main via .github/workflows/ci.yml and a husky pre-push hook.", + "description": "Repo-level CI helpers, runnable from the repo root. Most scripts use only Node ESM; the bundle-size helper also uses the already installed esbuild dependency. They run on every PR + push to main via .github/workflows/ci.yml and a husky pre-push hook.", "tags": [ "document", "project" ], - "contentHash": "eb18ae071d9c61f0d05ca3d25cf1d1681b38c30753431b0062b9dfc0a2cb0970" + "contentHash": "5083faa366e399f18bc8829453e21b881fe98ff06cd539d83304ff72a573f90f" }, { "id": "document:SECURITY.md", @@ -7697,6 +7733,18 @@ ], "contentHash": "762356339ba5e546e7f6d1e52f5416ba97ae0f2edf5e477eec4c03820b14590d" }, + { + "id": "module:.github/scripts/pnpm-bulk-audit.mjs", + "type": "module", + "title": "pnpm-bulk-audit.mjs", + "path": ".github/scripts/pnpm-bulk-audit.mjs", + "tags": [ + "module", + "mjs", + "scripts" + ], + "contentHash": "94073d1102119af54b7847da170f99bb1ab7836b9d9ca9833fa828ec0dc9c4ac" + }, { "id": "module:agents/ecosystem-doc-bridge-corpus-scanner/agent.ts", "type": "module", @@ -10956,6 +11004,22 @@ ], "contentHash": "273b344239525842155c2d30cb208e21d5c16ab1148744463278c5864e3cc251" }, + { + "id": "module:apps/docs-next/lib/rag/frontmatter.ts", + "type": "module", + "title": "frontmatter.ts", + "path": "apps/docs-next/lib/rag/frontmatter.ts", + "symbols": [ + "ParsedFrontmatter", + "parseFrontmatter" + ], + "tags": [ + "module", + "ts", + "rag" + ], + "contentHash": "3f24733ccc7c6ed2bd6bda36bae6a7af6c51be0b7f281be30e326adf3ab71a0f" + }, { "id": "module:apps/docs-next/lib/rag/ingest.ts", "type": "module", @@ -10978,7 +11042,7 @@ "ts", "rag" ], - "contentHash": "f4d5b765ee672670f2fb612b7e209fe3513ea2c3ed7cba69d43e6cf3ee50a831" + "contentHash": "85104d4887e9498a5b6f965d89a3c7c4b1a05709bf1478f977634b4f1f8235a2" }, { "id": "module:apps/docs-next/lib/rag/retrieve.ts", @@ -11515,6 +11579,19 @@ ], "contentHash": "9492dbaa7f0b21a6fbecb831e0160a2550e381636a362a5d1d9366991cc9a3b1" }, + { + "id": "module:apps/docs-next/tests/rag-frontmatter.test.ts", + "type": "module", + "title": "rag-frontmatter.test.ts", + "path": "apps/docs-next/tests/rag-frontmatter.test.ts", + "tags": [ + "module", + "ts", + "test", + "tests" + ], + "contentHash": "c5a11b367f9dd87b1afbb171c53de878b3e97352c3146f9622d239504ec1f44a" + }, { "id": "module:apps/docs-next/tests/seo-surfaces.test.ts", "type": "module", @@ -13936,7 +14013,7 @@ "ts", "src" ], - "contentHash": "fb3ca3d419ae02b01e18aacf3ab500d1788879b093834bb39af1d6cca9ab1d70" + "contentHash": "bb6a07e39c6dbe3f1c6bbcec23e69e7df5b0fa1e6795b521ed7a30971f737fc9" }, { "id": "module:packages/adapters/src/azure-openai.ts", @@ -13953,7 +14030,7 @@ "ts", "src" ], - "contentHash": "4017a1f2f14a212dc0642a8b2313df6484988abfcdee56512eab0be77386f248" + "contentHash": "78cbc4bdb3e81b722f9d3b604b2eadfb2380deaec9bf407389dbe11493460799" }, { "id": "module:packages/adapters/src/bail.ts", @@ -13971,7 +14048,7 @@ "ts", "src" ], - "contentHash": "9cd525a481d4b9d582ed6fa664a017d81a0c144d9195b7668622d85d66c61080" + "contentHash": "239b7e63d87852f1c3565b0e0b5a5cc26936c928a6d82b7072c9621b8f8cf483" }, { "id": "module:packages/adapters/src/bedrock.ts", @@ -13989,7 +14066,7 @@ "ts", "src" ], - "contentHash": "432b0daedd35f2b7b4985a62339794e1dce277a1ebd99b2d8a3db598125f6b9f" + "contentHash": "6f3708b7e3f113334d2544b06c2fbb050c76f25ad8edc5bea78e6916ce302f27" }, { "id": "module:packages/adapters/src/carbon.ts", @@ -14009,7 +14086,7 @@ "ts", "src" ], - "contentHash": "795cccc7924c848ae7c4c401cf0e1eea56e65f99f28ba4f2e1ddd1abdb18ad3f" + "contentHash": "f671a5f27bb157c3066334b6caded7542f46bc1216a933ad2872b370f385cdc2" }, { "id": "module:packages/adapters/src/catalog/dispatch.ts", @@ -14026,7 +14103,7 @@ "ts", "catalog" ], - "contentHash": "9f8c4781b140aba7797ae817cd399e7893b811954e80a74d0d10a659655b245a" + "contentHash": "9f9e345ff56621ebb4522b8bb0eabde563fe9bbfa9c48a8486cc7f44f45d4fe9" }, { "id": "module:packages/adapters/src/catalog/drift.ts", @@ -14045,7 +14122,7 @@ "ts", "catalog" ], - "contentHash": "ac879d8c3c8282e0e9481fe04433dfaa9b1bc2ac016850a76bfd1a68b0fa78f6" + "contentHash": "5cb776fcaa0492fb75619157ffeed497cfde39a3cb4d8d7b374ad70e83fd7f4f" }, { "id": "module:packages/adapters/src/catalog/index.ts", @@ -14143,7 +14220,7 @@ "ts", "catalog" ], - "contentHash": "e8e70bb8874772bfb0b69c09ec49c45ed67586a80b131ff01ff37702936fa4ae" + "contentHash": "036fd52e5713b3b8a8fa45dc23f77ab83073bc51751b6c681af9812f88358226" }, { "id": "module:packages/adapters/src/catalog/schema.ts", @@ -14198,7 +14275,7 @@ "ts", "src" ], - "contentHash": "be5385a938b076992292d132ec5177ac7a49ea6ba1b0b5d63685c116f0e02c34" + "contentHash": "f11613d0d1774507faef2543de5506bddff1cb17d4d9bd8d9dbb803504e13576" }, { "id": "module:packages/adapters/src/cli/claude-code.ts", @@ -14266,7 +14343,7 @@ "ts", "cli" ], - "contentHash": "f2bf8dc1974c016ef3b47a12d33e5cd670b255b0422eb9c5fd6d4fe4d0e26b38" + "contentHash": "192c1e3a9735cec67e448e3bb1f56b3d2123db2c7ef0bbd609436fbbc888cf4d" }, { "id": "module:packages/adapters/src/cli/json.ts", @@ -14283,7 +14360,7 @@ "ts", "cli" ], - "contentHash": "6337382fc624c798c389560ee3dc1a06b1b31e7f5f0c991c8dea78fae8fba66a" + "contentHash": "040922be34ff5dfe1a2715f306acd8bdbe992599204a97bb0d6616681865f177" }, { "id": "module:packages/adapters/src/cli/manifests.ts", @@ -14308,7 +14385,7 @@ "ts", "cli" ], - "contentHash": "73d7fb6bb8b95166474d55896c86e6738f26a7a1d7cef78e018d5210aacf3a37" + "contentHash": "1990d52c3d45ea637784336c0db0ae3a7982f624ca480bec56ff918486f65d39" }, { "id": "module:packages/adapters/src/cli/process.ts", @@ -14332,7 +14409,7 @@ "ts", "cli" ], - "contentHash": "8565c1496bee4ad90bc4a6b0266f31c9a42593a15367e4140d2bcb47dcabd409" + "contentHash": "bfe304240d12144293aa4dc4cb8d690442cde24f71f83eb7f476a20882eb7825" }, { "id": "module:packages/adapters/src/cli/prompt.ts", @@ -14351,7 +14428,7 @@ "ts", "cli" ], - "contentHash": "44bb8db50024458eea63b7d8d6d5acc065cecc78ffd4fcc02f3e3b2c9e21899a" + "contentHash": "d5f2c02ce9ce6bdaa384a2349e7858dc96de8efbdb600c2b696443f430133823" }, { "id": "module:packages/adapters/src/cli/types.ts", @@ -14380,7 +14457,7 @@ "ts", "cli" ], - "contentHash": "b9c7e9a5f2188c3bdbe475446c0db0c6c8a0151b5ca8239639409950006fefd0" + "contentHash": "6a98e2a39cddfbded09b62bdc3d53a3c1b38f36b797c31b5d032187e2376e0ea" }, { "id": "module:packages/adapters/src/cohere.ts", @@ -14397,7 +14474,7 @@ "ts", "src" ], - "contentHash": "6bb8fe82eb59bacf3ac6012b994ab681c000aa7b59411630e5288521714cd1b4" + "contentHash": "65c009fb57c33513f74adea37dd218e8eba5735ebac0ab511f3e7a3d3e2c731a" }, { "id": "module:packages/adapters/src/createAdapter.ts", @@ -14412,7 +14489,7 @@ "ts", "src" ], - "contentHash": "ab8b72ccee8ca85dc74e58ff4915b502e8f24b35841918784b403f48169c0baf" + "contentHash": "395edba22859e7692a8a3687b5b2fd16720b89c4c887ac40542278f063a992d2" }, { "id": "module:packages/adapters/src/deepseek.ts", @@ -14428,7 +14505,7 @@ "ts", "src" ], - "contentHash": "feb9587d2e6e72187257b57fdf4b9a7cd00b17368480cc42927ecd6159ae0521" + "contentHash": "21e4bafb77651a403aea5882244a0615fd9083aa3c99b271409815516d7f5d20" }, { "id": "module:packages/adapters/src/deprecation.ts", @@ -14450,7 +14527,7 @@ "ts", "src" ], - "contentHash": "7e86de1f3935b8aee22112a18877b28cf67c9c88133942ae16fa5fd3d01cd474" + "contentHash": "c4c56377434c4aadee08959303fef37b296e9867e2c48c9a72894e59ad0987e5" }, { "id": "module:packages/adapters/src/embedders/deepseek.ts", @@ -14466,7 +14543,7 @@ "ts", "embedders" ], - "contentHash": "234ee99f7c66aeb10d4e8b7172c56222dc1975ca17d60d03a0c935142611ebf8" + "contentHash": "4770c7ee432e3ea685d68bd4bfbccde3a97eb6d3f02e26ec0b1fd142c5786445" }, { "id": "module:packages/adapters/src/embedders/gemini.ts", @@ -14482,7 +14559,7 @@ "ts", "embedders" ], - "contentHash": "b377361a9035dd481bf3194e2a5aceb18d2574d9ebdfaff60b0ce17df30acf5e" + "contentHash": "972b38b39a719c883baa896c2913fb73317d84f481c879541f1f669de21e9212" }, { "id": "module:packages/adapters/src/embedders/grok.ts", @@ -14498,7 +14575,7 @@ "ts", "embedders" ], - "contentHash": "0099900b24c6f0aa0055fbd64d228bccb05b390e3b2dd49d2382da42c27cc46e" + "contentHash": "e6ec3dccfd1fe5677597b9457b4b1844355bf5026c1314bf72806cf7365f9398" }, { "id": "module:packages/adapters/src/embedders/index.ts", @@ -14542,7 +14619,7 @@ "ts", "embedders" ], - "contentHash": "261e0030febb462dc788aa0e3259005fbb18f1d45466f2442b993b0770378a85" + "contentHash": "2cb42ee1bc7b24446818826f930328d1e3ea5f12cd666026b2beeb75f6a40b13" }, { "id": "module:packages/adapters/src/embedders/ollama.ts", @@ -14558,7 +14635,7 @@ "ts", "embedders" ], - "contentHash": "0bf2bd0a5ecef95dada59b58351e9e9c6e96572f572907f2bfe7babf9d81fd85" + "contentHash": "eee191d70d54d75393e463990288afc6e2ee902989dc7e013eac1fc514f7d556" }, { "id": "module:packages/adapters/src/embedders/openai-compatible.ts", @@ -14574,7 +14651,7 @@ "ts", "embedders" ], - "contentHash": "e795e9dcf1fbcd6548eb1cce78d1cd69a1f0edacf07cc170ab01998011735549" + "contentHash": "cc3b56627aca3e1e8203c289256bb35615b2cb6fa991ab48491c2e0f603f0a1c" }, { "id": "module:packages/adapters/src/embedders/openai.ts", @@ -14590,7 +14667,7 @@ "ts", "embedders" ], - "contentHash": "df747e737d294075f1be831bcb3505b31d407e23f3d0e25ceb599e1cf86e5e72" + "contentHash": "ea7440570ed22fefa420e9d3ba3590dd5a4e4450fd80c3941ac9494cd8021ea0" }, { "id": "module:packages/adapters/src/embedders/shared.ts", @@ -14627,7 +14704,7 @@ "ts", "src" ], - "contentHash": "cfd83f8db7f1985e280c158c72abced84e2e23c8f2a9fb2014fda00d1f84ecda" + "contentHash": "7620958727b941272c710c43dabafc9a6c56edfea753836cbf036f28f3e76a46" }, { "id": "module:packages/adapters/src/fallback.ts", @@ -14644,7 +14721,7 @@ "ts", "src" ], - "contentHash": "3cee2cb7f93c3e61cdc32c017cc9525f9aad0775026cd90161aa08b4dbcce44c" + "contentHash": "433b7b8a02e54b1891ccd9cbf920054f98c5e33e71b815a9b0f98c0d9240bc8c" }, { "id": "module:packages/adapters/src/fireworks.ts", @@ -14660,7 +14737,7 @@ "ts", "src" ], - "contentHash": "6946b285f8ddeaa930630c65b38f389c8b1ff3ba3d74a42e4fc846145af6c4bf" + "contentHash": "711c1be1530a07d1c559d516b08adfe4a65f6a495267da49c486f199b16b3ffa" }, { "id": "module:packages/adapters/src/gemini.ts", @@ -14676,7 +14753,7 @@ "ts", "src" ], - "contentHash": "2556dce4da5abc85f98a40ee83420fdfc3cfedf9e4dc6725104fce9bc3a1215c" + "contentHash": "b698488da5f5c2ba3c23963b3507c81809a881235f9a6b5cffc9a049433da2c8" }, { "id": "module:packages/adapters/src/generic.ts", @@ -14691,7 +14768,7 @@ "ts", "src" ], - "contentHash": "79a1a7b51551ecaa310a0d488975412ac4b73acfad6ea6e5e23a697f601e3f66" + "contentHash": "067f0806520295ef3cd9411c2b618d90b7c4dbd71d98598a925c685ed76200d1" }, { "id": "module:packages/adapters/src/grok.ts", @@ -14707,7 +14784,7 @@ "ts", "src" ], - "contentHash": "d4268220b30c79dbf54ba95ea40d5e6801285b30a88f094fd96a85332ee4eb80" + "contentHash": "8066d1d9dd418415737a23c96521f90dbe99a34390e5d596e53a2828e2800819" }, { "id": "module:packages/adapters/src/groq.ts", @@ -14724,7 +14801,7 @@ "ts", "src" ], - "contentHash": "b0bc17787f73a27b1adbfa23e2caa3ef5de34a6e3413f0c218deae389c7f7024" + "contentHash": "ac97deecaa43db66b678babd9b0120e7c8ec84b282d3d9df799133c54c279dd2" }, { "id": "module:packages/adapters/src/huggingface.ts", @@ -14740,7 +14817,7 @@ "ts", "src" ], - "contentHash": "04446032d7298fce2b2a7550397cd2b5c5562179952f387b0d24578c9586c9d9" + "contentHash": "6114499009e4084e2333def3babd7cdaf4d7bd987ccb90beb04aafaaa0c5e58a" }, { "id": "module:packages/adapters/src/index.ts", @@ -14898,7 +14975,7 @@ "ts", "src" ], - "contentHash": "a33269698e806a1d4e806dea7090aabf7da8f33fa8cc324f3ee345725f1f3845" + "contentHash": "47383ed5ccc0d4e6b26bed21610ad67fb7b5570e1c4af825115c8c98456fe46c" }, { "id": "module:packages/adapters/src/langchain-bridge.ts", @@ -14916,7 +14993,7 @@ "ts", "src" ], - "contentHash": "0f999b869e8e80c3a213af43181571e77ac40d3a56660f59f396f2ce3bc9e91e" + "contentHash": "341ed7c00d9948125ee29b88e010366460f35939c620d1a587b8228544617294" }, { "id": "module:packages/adapters/src/langchain.ts", @@ -14934,7 +15011,7 @@ "ts", "src" ], - "contentHash": "0a7fe77e0926762744ff187368b06407aa1cccb7610b409951ddcb5566f728b2" + "contentHash": "f27caaf163cd265022171e3587e27f5049aa15f175162769a3141763dc0c4361" }, { "id": "module:packages/adapters/src/llamacpp.ts", @@ -14950,7 +15027,7 @@ "ts", "src" ], - "contentHash": "5b21b186b14b5f535bd65009c2d22b8ef8b96836e48b1b5ee7128a44f6cee54b" + "contentHash": "61bb2c1883f5cd2064980b64faea51bfdd9b82de8e802f1fb6c4366f8b998c98" }, { "id": "module:packages/adapters/src/lmstudio.ts", @@ -14966,7 +15043,7 @@ "ts", "src" ], - "contentHash": "205045938e4caf5c858559f89ae39e758471bd1406cfd1bd0b3e1f5abd55badf" + "contentHash": "2615afd4a2b91cdb22dc6cbbf26bebb94e8977cac34a5f952f4ee5d15e40a057" }, { "id": "module:packages/adapters/src/mistral.ts", @@ -14982,7 +15059,7 @@ "ts", "src" ], - "contentHash": "b00e761af0cf646039ef53ed7cce2b63d629fe458e42f9a0df2756a73eec1c83" + "contentHash": "af943f8c2e0ef69ff3ed2a2864ae7b586e14c5d765cbcfc0c8c6211f64df4b44" }, { "id": "module:packages/adapters/src/mock.ts", @@ -15005,7 +15082,7 @@ "ts", "src" ], - "contentHash": "1db143903d47752c31e3da14f0ed7a51050f5ac51c54a9bd8a1ea4566b3c4f02" + "contentHash": "807690c70fae4f72a422807aa099267cfb33e23fe4e365d875b184c544b5ffe0" }, { "id": "module:packages/adapters/src/ollama.ts", @@ -15021,7 +15098,7 @@ "ts", "src" ], - "contentHash": "6858cd78e4ebb801a3ef3d9c36293dd7c9fe34f84683a671497fea45bf72162a" + "contentHash": "3335d32093c3c2e58df7d5ad0c42288a52f9d84d2545ca6352142694c752c6d2" }, { "id": "module:packages/adapters/src/openai-compatible.ts", @@ -15068,7 +15145,7 @@ "ts", "src" ], - "contentHash": "bd6ac4932d5b787e5c63041e1bbe4522d283f13ef418d8c6b6dc40e02c198c28" + "contentHash": "483f7dc8e5e72fd3c6fb9823acc4f563144387927d40cfe9ece59d70d124d3a4" }, { "id": "module:packages/adapters/src/openrouter.ts", @@ -15084,7 +15161,7 @@ "ts", "src" ], - "contentHash": "0c1e0e9e2d93513d83e9a59c5522bc8e74021e4ba1116e1b59229f58d15cf3b5" + "contentHash": "f7ca8a907096b80892536d2e4af51c2d810082e6076f1f04a03ade7924ebc15f" }, { "id": "module:packages/adapters/src/replicate.ts", @@ -15101,7 +15178,7 @@ "ts", "src" ], - "contentHash": "14f2eae03bf1a0008e9ffe8f3c7c9139cee911be170031155c778f91d742891f" + "contentHash": "61ef29176923981427bd21efc5d99d6395c25087057a676e0f7055ae19da1b26" }, { "id": "module:packages/adapters/src/retry.ts", @@ -15135,7 +15212,7 @@ "ts", "src" ], - "contentHash": "ec818e29870ef046998c64f3f9074811d6463c3cae170eb0325e1e2bf6afa481" + "contentHash": "2ef50c99bbd92e9eb004e3a6628382f5549aa40bb16e3a1b1cefb53c22882678" }, { "id": "module:packages/adapters/src/stream-errors.ts", @@ -15217,7 +15294,7 @@ "ts", "src" ], - "contentHash": "841ae88db0a4acf3e5cd1cc4622e4371f3adca75c85832b0189aad516ed99d36" + "contentHash": "4c100f50f729ca893a5ed9763ede784134c696ea26ba9a76cd6a66bbf7fee568" }, { "id": "module:packages/adapters/src/tool-history.ts", @@ -15249,7 +15326,7 @@ "ts", "src" ], - "contentHash": "38f7dc214f0096326a35b9a17256485565659958712b1732713e9cce9a97ffa0" + "contentHash": "60a17d4444f280d8736d1204417088d1af9df438d53c11091427c37d9fa8ca9d" }, { "id": "module:packages/adapters/src/utils.ts", @@ -15292,7 +15369,7 @@ "ts", "src" ], - "contentHash": "8b48cb7b20d30fdb24436be34f93dad356beac31ee9c9f1ee6bf5eb76d6c744a" + "contentHash": "ad64103daf6ca6817f6308f6094fea1bd44ebeda5c27b2f59e53bc08d12a144d" }, { "id": "module:packages/adapters/src/vertex.ts", @@ -15309,7 +15386,7 @@ "ts", "src" ], - "contentHash": "b17e8ea80d0724412e050537b7b4e0db70c6d05d3f9e6cf7f16eec794ef52148" + "contentHash": "52d2f44a51bc1f1e2398cd2a80f023668a27e38fcccc729a4e2596e06aa91445" }, { "id": "module:packages/adapters/src/vllm.ts", @@ -15325,7 +15402,7 @@ "ts", "src" ], - "contentHash": "b078fda67d791cde347012173216c7d9b44ef5972cfa9380d153e78c03d41eb0" + "contentHash": "225abe0df46441de94e039d6ec2772a9317e5a45667c817083dda93bfc311003" }, { "id": "module:packages/adapters/src/webllm.ts", @@ -15343,7 +15420,7 @@ "ts", "src" ], - "contentHash": "1cb42c966799c8290701c06cf60fd1d2be1e08da12d97e38361104cdf44285a3" + "contentHash": "6d9baba959f78b6d3c358d11d625201d2aae6ce7e648bcdccd17d8ac13131ae8" }, { "id": "module:packages/adapters/tests/azure-openai.test.ts", @@ -15545,7 +15622,7 @@ "test", "tests" ], - "contentHash": "7a610015f17a2d6c47a535c0c6a4662f26b2ea79998ee11795495e8535aa3fa5" + "contentHash": "523cf3ca5a8cc0abd4454cf2294c96f895bc33953ec0f1bc5ec855fe4c4f9125" }, { "id": "module:packages/adapters/tests/cohere.test.ts", @@ -16067,7 +16144,7 @@ "ts", "adapters" ], - "contentHash": "714be856737be775b63589b1d3cc320ce859c87d6fc66fdb578a5ee7ec823b47" + "contentHash": "8ea4aa1fc8d9af92c677fdff313f94099dc9d2ef4d800f8908f0a79ed6ac6789" }, { "id": "module:packages/adapters/vitest.config.ts", @@ -16134,7 +16211,7 @@ "ts", "src" ], - "contentHash": "b0aa25ac55d58d63e73d76783f1b77dbd769029f052586599d4acc9663320a47" + "contentHash": "c189feaa2ea89df2eabe317de403ae5e9ca8d89ad3094622f5bfc13112ebae4f" }, { "id": "module:packages/angular/src/index.ts", @@ -16223,7 +16300,7 @@ "ts", "angular" ], - "contentHash": "8602b3e31cf00d72ee52e07a47c40dbfabc2a932fb584bb984d2bb8668f96de6" + "contentHash": "ccfdd4944f8390c7dfd6c61c8e97c48882dfe76a7979089b6d6825dec475625f" }, { "id": "module:packages/angular/vitest.config.ts", @@ -16308,7 +16385,7 @@ "tsx", "app" ], - "contentHash": "8565e5297680f6fb8c0d6c4b5864ca5b5e54ed90dede714edc774a68a60a562b" + "contentHash": "e1abf3598610080b4af842508a5d7e42989defaed0e71cf98dd387851ff0d30e" }, { "id": "module:packages/cli/src/bin.ts", @@ -16489,7 +16566,7 @@ "ts", "commands" ], - "contentHash": "60f000d6cbd432560f0daa2b891c07eeb13e3c6dcd1960c5b5cd4e5836a7d750" + "contentHash": "5745811101852bd20c841d92ff9897bdf98a226109e99771d5201d0c0ee9b6a0" }, { "id": "module:packages/cli/src/commands/init.ts", @@ -16851,7 +16928,7 @@ "ts", "src" ], - "contentHash": "7aefbc94f169e27c0bc45151666aed15cd7b9d6966628a9d3e2aa6bb850fe030" + "contentHash": "d04801210b144c75e2c9236a6a4fed68698aa28680a91234c050a970d9959b99" }, { "id": "module:packages/cli/src/dev.ts", @@ -16869,7 +16946,7 @@ "ts", "src" ], - "contentHash": "472ae1e604a964addf578860cc8613e9fdb0794058e5b64c44a20e01d1755a22" + "contentHash": "afcb978bb6e0b41243849cc717db68cf1f3ef5a6ac51b66a6fcb302e36055a1f" }, { "id": "module:packages/cli/src/doctor.ts", @@ -16896,7 +16973,7 @@ "ts", "src" ], - "contentHash": "707efc2baa54e118a1546478917e55494ed7c9563056ef86a1e62e748f67e9b3" + "contentHash": "436b08aba47962cf6351cc80f22ab40cef9df39738869e5f7d23c274e9afeab3" }, { "id": "module:packages/cli/src/extensibility/hooks/index.ts", @@ -16931,7 +17008,7 @@ "ts", "hooks" ], - "contentHash": "cf2eab1e2cb611cfb8b8caaaf135974a71869cd9f70bc4c070b9802f30d5095c" + "contentHash": "2564db6a1bf83f379fb64c3bc48b2f9b915594905e52f49b14df819fe18da7ba" }, { "id": "module:packages/cli/src/extensibility/hooks/shell-hooks.ts", @@ -16948,7 +17025,7 @@ "ts", "hooks" ], - "contentHash": "f3a1dc4b9b0d9702b2f261d83d4c4b5a6e2667a9195417a9b23fa574cee813b8" + "contentHash": "4214cadb64cd9957a34912bf1353199bc26262f5440ad41a16b2a4d29de619a0" }, { "id": "module:packages/cli/src/extensibility/mcp/bridge.ts", @@ -16965,7 +17042,7 @@ "ts", "mcp" ], - "contentHash": "aa69f3bded8ab431c724564fdb69e5772a3849be4729a1baf2a8480099017ea9" + "contentHash": "e3a1fb7601a3579574648eb194882ccf082924e01e3a03856b5942d0d93a8323" }, { "id": "module:packages/cli/src/extensibility/mcp/client.ts", @@ -16981,7 +17058,7 @@ "ts", "mcp" ], - "contentHash": "289b9f5400817cc36c442bcce810756786446f61eae175869ebf9df206e4a494" + "contentHash": "bd294a8a6d54aaff4de817d9b076c7772b94a1a7fd10fb734e30662e9c05cdf4" }, { "id": "module:packages/cli/src/extensibility/mcp/index.ts", @@ -17044,7 +17121,7 @@ "ts", "permissions" ], - "contentHash": "105b974a3a1105f9f878c1e9bb47a9c9436b4157c59bed6889b20a615bef1893" + "contentHash": "731bc7141b697800a6ad1f82c483fcb41ccc934becd8e0b1d80e9acf98508dd5" }, { "id": "module:packages/cli/src/extensibility/plugins/index.ts", @@ -17078,7 +17155,7 @@ "ts", "plugins" ], - "contentHash": "23ad75fcf3b8e9b7bbf704475c32af2768350156aeec38b9001e192a077dec29" + "contentHash": "6fb38bbeca7c23572f7de287596570a5d74a73f4a3e39fc8afe484f2e01d4be9" }, { "id": "module:packages/cli/src/extensibility/plugins/types.ts", @@ -17102,7 +17179,7 @@ "ts", "plugins" ], - "contentHash": "8fe27734f16df90e4696e34951bd08a8018c53027d65b3116510bc448feacf87" + "contentHash": "19ffbddef4b62f7cd71c166cefc6c1a3d24b265bf22b3ba2a3ebbb7bdea9f8ea" }, { "id": "module:packages/cli/src/extensibility/rag/embedders.ts", @@ -17118,7 +17195,7 @@ "ts", "rag" ], - "contentHash": "36c5ad56faaa9e2b0ca58dc03da90e814b74f535cf47875db2f23bb6890eb1b4" + "contentHash": "adf3b1c45361d8a68c5a1e5990b16e78d55031873c897f2b7fae597c55479d20" }, { "id": "module:packages/cli/src/extensibility/rag/index.ts", @@ -17159,7 +17236,7 @@ "ts", "rag" ], - "contentHash": "7e0cf9f07721e69f0819628994936dc5996c46d7542d6b86596e204efc0f24d1" + "contentHash": "5fafd7ab3bb41006f745f55c1fe8b0143db69b0d050e97bf95de12ba95c2610a" }, { "id": "module:packages/cli/src/extensibility/telemetry/index.ts", @@ -17199,7 +17276,7 @@ "ts", "telemetry" ], - "contentHash": "ca603dfd3f9ddca2e1632ad312e98703ef6c736a08ccf640ac82d35a1f190dbc" + "contentHash": "03c51f0042d5c2e7507fa99233de80147bb225e63a28976aafd44b2647e97684" }, { "id": "module:packages/cli/src/index.ts", @@ -17370,7 +17447,7 @@ "ts", "src" ], - "contentHash": "a776d0f5dcde999f50ae14a9394041861089464964b94d1254bef93c17044b0c" + "contentHash": "c87e9d953d0a9c45e3522f9c13df4e6be118bcc4c7eeafd0f96dc56321d740b0" }, { "id": "module:packages/cli/src/pii.ts", @@ -17427,7 +17504,7 @@ "ts", "src" ], - "contentHash": "fd29a2fac4f9c9471ca4c31934ba8cbd68fdd105dc89dc8daf6e13687f277d44" + "contentHash": "7df066de11b6de2b5f010258344ca8edf56f857469a2bc54d51bd3527ea1312d" }, { "id": "module:packages/cli/src/registry.ts", @@ -17586,7 +17663,7 @@ "ts", "src" ], - "contentHash": "c32f2edf094eca9bea5b38935aeebace9289b289feb1dc985c2cf78ace57ef36" + "contentHash": "20c0122523dd4e994fc26454a1ba144ddc259960646793546e4037245ad95138" }, { "id": "module:packages/cli/src/runtime/use-runtime.ts", @@ -17661,7 +17738,7 @@ "ts", "src" ], - "contentHash": "a085df4057ebf01182b8c51e58bc66a6ed9355c910637b106cd24513b6417b55" + "contentHash": "f7a3750df0a2d81d67b77e77b8de1c4053f07e4df961920922849a39f5c1424d" }, { "id": "module:packages/cli/src/slash-commands.ts", @@ -17699,7 +17776,7 @@ "ts", "src" ], - "contentHash": "7579053f1eb126da9539c3ff3ea7bac62d6143a0f0c5e29e06c27671f77ab0a7" + "contentHash": "ab918ab229b433c63d3d4f31195a6e94539e2a5f6fa8de7fb8f231ec4710de4c" }, { "id": "module:packages/cli/tests/ai.test.ts", @@ -17842,7 +17919,7 @@ "test", "tests" ], - "contentHash": "d5113c960c14c60f0e2f7c14090820cdb1e8e5e5d683d1d8e85e0b8a6d0fb252" + "contentHash": "1bbf192a7ca5f148691c2d962c196b800cab0479e1ef183c9729b27eecb9291d" }, { "id": "module:packages/cli/tests/components-flow.test.ts", @@ -17855,7 +17932,7 @@ "test", "tests" ], - "contentHash": "4fccd2b220daccaa9e1dc90e838216cddbefa048539042967e27de9442892e97" + "contentHash": "1dc3587349bad713146dff7b9d534fd5ecb42db39546dac043832a21f4028d19" }, { "id": "module:packages/cli/tests/components-install.test.ts", @@ -18114,7 +18191,7 @@ "test", "tests" ], - "contentHash": "d6285c0f2e5acd578447403b9e07f6b0a7188aa022895a25796e028a3b94d4c5" + "contentHash": "3e5a025a2c2f30cadfcba1d6f3eadf57a02cd7bf12273064948e98bd1a68cc5d" }, { "id": "module:packages/cli/tests/mcp-extended.test.ts", @@ -18270,7 +18347,7 @@ "test", "tests" ], - "contentHash": "0c6029f53e5a42297475fd01949ea7de310247645ea2a759e897d3a250d43307" + "contentHash": "f55febb7ba121d1262a556733a9f9e11cc666ab21c8657d8085216978b0dc5ff" }, { "id": "module:packages/cli/tests/resolve.test.ts", @@ -18467,7 +18544,7 @@ "ts", "cli" ], - "contentHash": "8e41a9a70c4953b78040576bb678c39c8b87f43f14249a1d20b57ff8e14e5365" + "contentHash": "50b65d25105ae6012fc7c743fe7a8175a994486dc931d656fffddffb84f1d00c" }, { "id": "module:packages/cli/vitest.config.ts", @@ -18518,7 +18595,7 @@ "ts", "src" ], - "contentHash": "e180a9badae77b04069d1994863f982b92768fbcfc6dac28c6c75b3535369f48" + "contentHash": "ee6f1c8ce21515491b5c3ffd61f9d542059a8eb9b470689b61dbb69deb5400cb" }, { "id": "module:packages/core/src/agent-loop.ts", @@ -18539,7 +18616,7 @@ "ts", "src" ], - "contentHash": "ca8f3598ebf14f47f46d412bfda13fb0bcae779a2cc76a2e8871ea8ba27b37b0" + "contentHash": "7cf667360a45fe2d4572a987972fdf8c824589fcf3d105cda64a5f746cc20f8a" }, { "id": "module:packages/core/src/agent-schema.ts", @@ -18561,7 +18638,7 @@ "ts", "src" ], - "contentHash": "0227f4a2fb08c2b2db285e71d02500ab5cc93306cb8357aa44ad7127ca2c7449" + "contentHash": "86d003195129800633e4419755a4348c3dc94b8fab0a0842631ee1ab624a0cd7" }, { "id": "module:packages/core/src/auto-summarize.ts", @@ -18577,7 +18654,7 @@ "ts", "src" ], - "contentHash": "016913ab83641065a823dd3619924afa41c49ec216e416c08fbd0a7bcc2cd66d" + "contentHash": "2218ed6bbe84f3e5f1e6c5ec6fdad937b04e06ab35809f4036703e790d164ded" }, { "id": "module:packages/core/src/budget.ts", @@ -18596,7 +18673,7 @@ "ts", "src" ], - "contentHash": "8e6a6dc971e479c97d14c7be0db8015d44478077047f908a9e03fce87ae0cfee" + "contentHash": "d5271933434bd4e7389a210d8d393f56cb0d4f5a6898e35bdd955f020d4e9508" }, { "id": "module:packages/core/src/compose-tool.ts", @@ -18613,7 +18690,7 @@ "ts", "src" ], - "contentHash": "ad186aa317b9f32992db5c3e2fe6a057bce5199374af2cb01a44cf35288b95c8" + "contentHash": "f6e2b5c6242fa4e720df73a1e45415bbc1e529db94ab302fdbd20970562cbdd3" }, { "id": "module:packages/core/src/controller-helpers.ts", @@ -18682,7 +18759,7 @@ "ts", "src" ], - "contentHash": "01cab9eadbb2cd4e2fef2b9a588dea187779df2fbc21ec6d09f718fe77f5aa99" + "contentHash": "4a90940f2a0f10cb1b7c9e3b0ee12ac3657411bf5bc91418288992a7aac3489b" }, { "id": "module:packages/core/src/errors.ts", @@ -18705,7 +18782,7 @@ "ts", "src" ], - "contentHash": "504be503f3b49d25d42034ab36754ee6908bd5c721194f03b520f916b16fd83e" + "contentHash": "b68b22a0cc976f9288b1dadc2b79aae40d0fa5a883319d292a505dc123f573aa" }, { "id": "module:packages/core/src/eval-format.ts", @@ -18727,7 +18804,7 @@ "ts", "src" ], - "contentHash": "7976a613ff9b833dcd17c51471b2d1b70e6e9f59fce96a0cfb0db115f03c3aa2" + "contentHash": "9eb754992ab7490bf01b1d8545216025d3eae127a67846205fabc816a51dfbf3" }, { "id": "module:packages/core/src/fuzzy-match.ts", @@ -18744,7 +18821,7 @@ "ts", "src" ], - "contentHash": "3a9bc2dd060eb0991450bc4b878760d2c7ebdbd142d1331a8dda17cbcb4acabd" + "contentHash": "5a3d4bf46bc0d44daba392755decfdf8b6faab36bf5b95d6f1f966af1484011c" }, { "id": "module:packages/core/src/generative-ui.ts", @@ -18779,7 +18856,7 @@ "ts", "src" ], - "contentHash": "4e682b62d7cd4f8eb95f80fdaa1cf968da600f73b76a2163ad8d8977b18703a8" + "contentHash": "3b258a20e1cd93fd135a4fb18ef6921c754cf5af4dc206ab2ca01676a1fca26c" }, { "id": "module:packages/core/src/hash.ts", @@ -18816,7 +18893,7 @@ "ts", "src" ], - "contentHash": "8c81554f3aa3f6a8ea19a09d1f91c7a948173ce8f3e3eaaaf24438d787cb581c" + "contentHash": "785bcecd8f541385f53716e7971a5c055695f8af1936c59fbf028f31aa2260ce" }, { "id": "module:packages/core/src/index.ts", @@ -18986,7 +19063,7 @@ "ts", "src" ], - "contentHash": "783749c0079ea70eb48fc93a485d2dba9e5a2bd622bc176f91b5e167054b60ba" + "contentHash": "e36a8ba1acaa3c9670700e8323e29ec711c45efed8251fe94bf85ee89d78a29e" }, { "id": "module:packages/core/src/memory-validation.ts", @@ -19001,7 +19078,7 @@ "ts", "src" ], - "contentHash": "da281f7bc4f91eb945c78861fd72fa2269aca455478df09143152ba725685d0d" + "contentHash": "302d25ad24cc15142905f95c29f469faf709d6b92d48ab925eb9a5d7474c09a5" }, { "id": "module:packages/core/src/memory.ts", @@ -19019,7 +19096,7 @@ "ts", "src" ], - "contentHash": "e4a7b36a64321368582653b85a3b0754b83e085b3cac1f9d3f8d1071d6e112c9" + "contentHash": "f0582d943572f96b15d4e4d134ed594166e6f265aeffcadb93f5084658a71de7" }, { "id": "module:packages/core/src/primitives.ts", @@ -19046,7 +19123,7 @@ "ts", "src" ], - "contentHash": "7f47004238f37b3feccd631c94bd237aa85215f7872424a9f743d6740d8a6469" + "contentHash": "14931bc7dc1f4af3689ba5358cd4c302d9b8278683649632c1fc6f592a894a44" }, { "id": "module:packages/core/src/progressive.ts", @@ -19066,7 +19143,7 @@ "ts", "src" ], - "contentHash": "069825f96bcfa43e34ef8db97147d9e957c1a345e4c032b94c0d6edbe6403584" + "contentHash": "199ad752e7944b3a1eea967ce14db8f519e61b54f916df3771de566aab680456" }, { "id": "module:packages/core/src/prompt-experiments.ts", @@ -19088,7 +19165,7 @@ "ts", "src" ], - "contentHash": "77b1424e912ddba1cfee301f3732619d5a80308e598b7e9028076a7f7ddeccd7" + "contentHash": "938d27a79ce571598a000afa0847b7cee1ceb7e691e175c9451d960e67390b54" }, { "id": "module:packages/core/src/rag.ts", @@ -19105,7 +19182,7 @@ "ts", "src" ], - "contentHash": "b9d56411f70dcd459255a3481479a04183c00fb7c4652647cd931be0bbb20784" + "contentHash": "c9fcb80e65d8c36eea55076fe483f5b6a7de393170bc9df98242cca4db939915" }, { "id": "module:packages/core/src/rules.ts", @@ -19120,7 +19197,7 @@ "ts", "src" ], - "contentHash": "098cc9ac7b315cd90c3a758c465f1666bacf9e8e73431fe3b0f85bad21a66349" + "contentHash": "782839381c7c6b90fba79bfeb5f2dc503d18aa997c7b2cd2b8bb8fec0f38ef44" }, { "id": "module:packages/core/src/security/fence.ts", @@ -19137,7 +19214,7 @@ "ts", "security" ], - "contentHash": "bc1f9fdc4946d33c6ac5127e15fbe0a5b0f7cb0eed84ab06f4fd8c6b35826c66" + "contentHash": "6e732621034845da6140c867a9709e1c8a6bda63560ff802b0da6216ba440e60" }, { "id": "module:packages/core/src/security/index.ts", @@ -19221,7 +19298,7 @@ "ts", "security" ], - "contentHash": "5fbc9fa630fe3303cd2ac752073066a6dc5f1ae40993d3fe0c8449601ee53566" + "contentHash": "f49a66697a9da8f1d7d21bbd8615ec4b31245054ef3d5b125638954d77f43637" }, { "id": "module:packages/core/src/security/pii.ts", @@ -19242,7 +19319,7 @@ "ts", "security" ], - "contentHash": "130d9f5f810536e91fdeefe1747cab7ad00379ca7a863bd1573412b7654ba3f2" + "contentHash": "227a9c33cad070d782326928b5367ba21a6498a1816f4b3f4bda63af7222fae2" }, { "id": "module:packages/core/src/security/rate-limit.ts", @@ -19261,7 +19338,7 @@ "ts", "security" ], - "contentHash": "3df2335f2572d9860ae0978807744dbd9f0d3c4d9dc386f80e335ba54bc0581d" + "contentHash": "8c946fe4b7b2e4282e5678eb851fbe03224d1cb4e4fb891e1369dce497ba086b" }, { "id": "module:packages/core/src/security/read-jwks-body.ts", @@ -19296,7 +19373,7 @@ "ts", "security" ], - "contentHash": "49ce6e314c2ad7aa3b0dc14e15e7a4d4b45f2cf151463772fb9931d7cf920da6" + "contentHash": "04c008acd5c799123f1c7d3ed16e633e74a2fab9f9d69e8b82767f3f6b8e1c15" }, { "id": "module:packages/core/src/security/sso.ts", @@ -19319,7 +19396,7 @@ "ts", "security" ], - "contentHash": "d917a89543ce567cb416f66cf968b5f4127a8bc1b4e0baae51648b5a33588090" + "contentHash": "70451f0cb9c4ec6d98431eee16633475ccc50879c1ae7b55c25de478aea51d34" }, { "id": "module:packages/core/src/security/taxonomy.ts", @@ -19340,7 +19417,7 @@ "ts", "security" ], - "contentHash": "ab0c9e2827576ad11e3a91503117830287c2384e6021b8263d13db46682e88fa" + "contentHash": "bd70616ecf969168193ef01b207afa2ba46a95dec3113b27df9f1353794693c2" }, { "id": "module:packages/core/src/security/vault.ts", @@ -19364,7 +19441,7 @@ "ts", "security" ], - "contentHash": "7567b12701c695ed9aa4a5f54fc1443142d4a7f6a361c0ac4a01952ca0c2c79e" + "contentHash": "962e150d669c58a1eec38aefc3a5ae034f37bf86582645cd9ba1437816b2caca" }, { "id": "module:packages/core/src/self-debug.ts", @@ -19384,7 +19461,7 @@ "ts", "src" ], - "contentHash": "1f3bf9a232a17a3777a7d391bd331b376244a158180ad70fac7112d74f516619" + "contentHash": "cac109bb578adc231741a6e9cc3490d5bba276239a11651494d8e3a68b177512" }, { "id": "module:packages/core/src/tool-authorization-internal.ts", @@ -19429,7 +19506,7 @@ "ts", "src" ], - "contentHash": "9dffd9c3094410ff9b053b03f39492c0640892df697a9dfd04bafaa957e96910" + "contentHash": "7cf01e2f8615f4509db1151cb45c0448af952373627772a38d55f92c966abb52" }, { "id": "module:packages/core/src/types.ts", @@ -19519,7 +19596,7 @@ "ts", "types" ], - "contentHash": "074c96b951ae22092eee7d83d9012f16d9e9d56a3c5a10928e57bca199692a34" + "contentHash": "c6d7a558ae9ea2e3b263ca82a8d5d61745e6beaa03444d7eda256ef9cac90d48" }, { "id": "module:packages/core/src/types/agent.ts", @@ -19536,7 +19613,7 @@ "ts", "types" ], - "contentHash": "cb087a94f1e8822d7e485a682ed28407cd07779773ffa9c3ae76132c3e4212f9" + "contentHash": "fb5c9434e68e667a199ca991c96fdba289a4138bafaf2be7de7e1e8abbd037ef" }, { "id": "module:packages/core/src/types/chat.ts", @@ -19555,7 +19632,7 @@ "ts", "types" ], - "contentHash": "c6e3646f71599d8976c86fd2b3232eef33b4c154bfff743d9a14b4da1dde6489" + "contentHash": "cceb19fff995acdf84293eac2f192c757bfef4e6dc890b1d4d6a3768aeec83b5" }, { "id": "module:packages/core/src/types/common.ts", @@ -19571,7 +19648,7 @@ "ts", "types" ], - "contentHash": "8e06b85da24eff7a81f67df1acc964b7255b4bd4b5b54657eeb301bbaf8d1ff8" + "contentHash": "42d91647b5399d94e01c2998cef53ff1a9809d9096fa989b7bde2c4b5889b1d6" }, { "id": "module:packages/core/src/types/content.ts", @@ -19600,7 +19677,7 @@ "ts", "types" ], - "contentHash": "e99ee97a082342c8da0f7964f4f591819f2c6a00755f24a0b1d23600f33d129f" + "contentHash": "2feb60835eec99ce9af7f9addd63fc224042903b33c996b555208a651e6b3bb9" }, { "id": "module:packages/core/src/types/eval.ts", @@ -19617,7 +19694,7 @@ "ts", "types" ], - "contentHash": "6dac51f9a07fa605b126ac72850ebe42b2da8acdcb1d42a4fdc345050feef5bc" + "contentHash": "1e4948479dea98682b75c2d4568a6d68b330433728e223fc24fff04f08e8460b" }, { "id": "module:packages/core/src/types/finding.ts", @@ -19634,7 +19711,7 @@ "ts", "types" ], - "contentHash": "a759898a0a199fbc89d164980c43c76c8aefd48093b43acecd9cf57e62d14727" + "contentHash": "7b884aecd47165aabae6dc5c8c05e813f6c9b1511a530b9f7a913bc208d23007" }, { "id": "module:packages/core/src/types/index.ts", @@ -19740,7 +19817,7 @@ "ts", "types" ], - "contentHash": "f6991f90f1fccc76d295a298b73d6c750591d5a2c24b8257aa04b505a950a3cb" + "contentHash": "d892080f83035850f512b040328e46612d0cd9fb69be799e61c400b0c419c936" }, { "id": "module:packages/core/src/types/message.ts", @@ -19758,7 +19835,7 @@ "ts", "types" ], - "contentHash": "55504d45cb34c8dd6b8cb578909f751e458db62826064e8b857287b922330020" + "contentHash": "49bf3a34a3b08727881fefd20414d2ff24f4d890b225a86dbd5577025713b9d3" }, { "id": "module:packages/core/src/types/retrieval.ts", @@ -19775,7 +19852,7 @@ "ts", "types" ], - "contentHash": "73fdad4018dda16040a31e840b58bd6ea19acc4add5569524236fa0cca81931e" + "contentHash": "5df2677295a262c062bc3ab396c463aa1f1da2830c4107209576c7f22e2125b9" }, { "id": "module:packages/core/src/types/skill.ts", @@ -19790,7 +19867,7 @@ "ts", "types" ], - "contentHash": "fdaa98a900bfefa5e909f7ada72571c39ca3059f13ef11fecf1325ed7fedbf21" + "contentHash": "930f6fea586f74c8294893d59b38736752d51e91161bb96feac14d3922084bf1" }, { "id": "module:packages/core/src/types/stream.ts", @@ -19811,7 +19888,7 @@ "ts", "types" ], - "contentHash": "7258b55d586c583e2f8acc6e3c1edb3cec1fe18b2fbd0681a3f52c9917242a1d" + "contentHash": "eaa5b4f9ba44dffcd14eee7312aabccf9384e93f2ccdd12c891c8d5afe21e2cd" }, { "id": "module:packages/core/src/types/token-counter.ts", @@ -19857,7 +19934,7 @@ "ts", "types" ], - "contentHash": "8c688366d645f0a157b0887d6a24dd31fa5cb7b31c19fdbc89fa3a7d7ca8c052" + "contentHash": "491135808bcb5aee45409816aee3af5997fbb706c1b47abb01eaf54f91f36377" }, { "id": "module:packages/core/src/virtualized-memory.ts", @@ -19873,7 +19950,7 @@ "ts", "src" ], - "contentHash": "780974f1baed20c7b830630cc1f1575754fd3e086dc2967d532f3635b9f57427" + "contentHash": "fbde250ed0d99e4a9a83cfb7d54c1d6441b4811f4bd8e74e53265e4386769d31" }, { "id": "module:packages/core/tests/a2a.test.ts", @@ -20384,7 +20461,7 @@ "ts", "core" ], - "contentHash": "57517c35e4291f3bf1b9e8b96c30e980acdace443d73d5e7ce4592b6c2171b99" + "contentHash": "5fa0162919dba4b127bead4f60a4cdc6e23f83a189f9aed2f34bc428dfd18765" }, { "id": "module:packages/core/vitest.config.ts", @@ -20468,7 +20545,7 @@ "ts", "src" ], - "contentHash": "4481bf825ecd8bd31aca2b8d47d84bdb5b8444e8a5b28bf6f0363e980d6a089f" + "contentHash": "e41b37b882dee297534bf7804d866a0891491498d0078967d7a5c01998449b3e" }, { "id": "module:packages/cross-platform/src/errors.ts", @@ -20490,7 +20567,7 @@ "ts", "src" ], - "contentHash": "e33ed3c458262e99a3e00a630c208d19666748f4bfbcc7c20c1f8d53c83a0400" + "contentHash": "32e4e7197cd8e40cac09bda3611a36a039290435717d06a10134c9e289c4ab9a" }, { "id": "module:packages/cross-platform/src/file-url.ts", @@ -20531,7 +20608,7 @@ "ts", "src" ], - "contentHash": "790695db9ef6142f4393373c5d90d352a7814a1d2671feffe1e7d00774d7533a" + "contentHash": "29e129c12a4ac5a52998d955d6e7c9136cc70eb27436c7a3a7a3f440fcb4bb19" }, { "id": "module:packages/cross-platform/src/index.ts", @@ -20627,7 +20704,7 @@ "ts", "lint" ], - "contentHash": "953379c9457d89adf2b3842cafb43bc0e9afb92ee9372693622d8dfe6dc73ffb" + "contentHash": "699edf97dce03a5d80302e5d918d5717113059a563e662e8ca55d763f884eae6" }, { "id": "module:packages/cross-platform/src/lint/cli.ts", @@ -20645,7 +20722,7 @@ "ts", "lint" ], - "contentHash": "f7cee6ad8ff14f85d698aa4f0bdd4a9bd3295e373ff8d8021fa09ab659899f20" + "contentHash": "beb5c9b5e75fcb0bc3db45dd920e3711324701abb2bd9a02b1df38511e4abfcb" }, { "id": "module:packages/cross-platform/src/lint/rules.ts", @@ -20662,7 +20739,7 @@ "ts", "lint" ], - "contentHash": "9880a6fa16def4a85e1654f76d9f27816b06931979897c3cb718dbe623da8b1c" + "contentHash": "71c8de02217076b9825738cc3fc45960c0a77dcfc4d0abcadd6a109931cf9224" }, { "id": "module:packages/cross-platform/src/lint/scan.ts", @@ -20680,7 +20757,7 @@ "ts", "lint" ], - "contentHash": "516b16de5ee63101724e6a39e145b442db10e3ce942c755ade3e5531a7a6c14c" + "contentHash": "367931fefa93013a97eb52d7e19fc2a79b18474db935dfddc2c2ab7569aa662a" }, { "id": "module:packages/cross-platform/src/paths.ts", @@ -20707,7 +20784,7 @@ "ts", "src" ], - "contentHash": "e7b1dcaba75e6f00884115885189576eb5e92db7d5e0dd0aea957b0ea8d0a6d9" + "contentHash": "8acb00ce6e1f91f81fba94d1b22b2e5e779bb3e7bb89230d83e42635070f9b0d" }, { "id": "module:packages/cross-platform/src/process/bun-adapter.ts", @@ -20810,7 +20887,7 @@ "ts", "process" ], - "contentHash": "aaba2441ed56787b23d1db205fb1489e6f20dd0e0625b8697244e7d22f251626" + "contentHash": "cb21dcff795be5d840500d5fd23fc8111e34ec50d745777209e1e79b88f5bf86" }, { "id": "module:packages/cross-platform/src/process/run.ts", @@ -20828,7 +20905,7 @@ "ts", "process" ], - "contentHash": "eeec59ee7504524566fec360349b377c4cee0dd969b5ba7ce7053f66e354ef6e" + "contentHash": "178b4a8b42b8e2f4169271fddaabcf3693530c192aaebfbfa9c4be79dd3d17d2" }, { "id": "module:packages/cross-platform/src/process/spawn.ts", @@ -20867,7 +20944,7 @@ "ts", "process" ], - "contentHash": "a99202203823172b45ef79beded061bce931e9e3049e203bbc43f68db521543a" + "contentHash": "5609b42f809050bc4585384dd04cc4901e305721fe7647c04699a6cbece75e82" }, { "id": "module:packages/cross-platform/src/pure.ts", @@ -20933,7 +21010,26 @@ "ts", "src" ], - "contentHash": "fd16aa06870725ec20baed141ba8517c78fa8bea42e9d07129db02babbc57d23" + "contentHash": "396706b24c215e344c85534a0791adf0198103c1a7eb1cb61571782048315304" + }, + { + "id": "module:packages/cross-platform/src/testing.ts", + "type": "module", + "title": "testing.ts", + "path": "packages/cross-platform/src/testing.ts", + "symbols": [ + "FetchStubHandler", + "FetchStubResponses", + "createFetchStub", + "jsonResponse", + "withTempDir" + ], + "tags": [ + "module", + "ts", + "src" + ], + "contentHash": "168020f2e78f35d2da533de3b536396c8fa9b2f94b25cc618536a97a42b5f95d" }, { "id": "module:packages/cross-platform/src/text.ts", @@ -20954,7 +21050,7 @@ "ts", "src" ], - "contentHash": "414a653e2f84a1275553f695bc645222f35788ddf297ae37eb2cc36818ceb702" + "contentHash": "7c015451da2d5b4dfc61f6a5da22f1dc70a232dfc708424c32cfcafa8b05375d" }, { "id": "module:packages/cross-platform/src/vendor.d.ts", @@ -21164,7 +21260,7 @@ "test", "tests" ], - "contentHash": "3dc71a255467bc56c7907341f3cb637a80b843e02dd0ca1b80b0f4161a6d90c1" + "contentHash": "2e201787ceb39038ba64f79bc2491c0b5db1cd043889028c9bc4923208962e0d" }, { "id": "module:packages/cross-platform/tests/paths.test.ts", @@ -21296,6 +21392,19 @@ ], "contentHash": "ecc52e5fc218c927460952bb02891a0d2b272b92d5ca6f17dcb5d1d516d2169a" }, + { + "id": "module:packages/cross-platform/tests/testing.test.ts", + "type": "module", + "title": "testing.test.ts", + "path": "packages/cross-platform/tests/testing.test.ts", + "tags": [ + "module", + "ts", + "test", + "tests" + ], + "contentHash": "411258fbbfbef0df0203d2dea071015ac3d0372b1c64b26df5b1dc60dafcad6e" + }, { "id": "module:packages/cross-platform/tests/text.test.ts", "type": "module", @@ -21322,7 +21431,7 @@ "ts", "cross-platform" ], - "contentHash": "30995ffeda33f54a007c92ce8c4e4074f216fe1011d0826ae76d617c0e6c65d7" + "contentHash": "763d9177b33d704c1bd83b246cdd03fb8c958747202d4fed2ec7f3cd11262930" }, { "id": "module:packages/cross-platform/vitest.config.ts", @@ -21367,7 +21476,7 @@ "ts", "src" ], - "contentHash": "f67845ddc26b88a16b3a0563abf155e305f342e15528af6f090c6da27f344485" + "contentHash": "4fd54f10406ac5f85b7c73365c192d6e91143100a430360663e63d1621c78d42" }, { "id": "module:packages/eval-braintrust/src/index.ts", @@ -21429,7 +21538,7 @@ "ts", "src" ], - "contentHash": "057ccc14c381720f935d8ad65cb9515f99ff4f8f5178f66867a519bd04d13c18" + "contentHash": "f3681ff9a5d64a67820431e93f7b91c9579ccaf42d3f02d44e3d0f912b427138" }, { "id": "module:packages/eval-braintrust/src/scorers/index.ts", @@ -21461,7 +21570,7 @@ "ts", "scorers" ], - "contentHash": "1fbdbd73d19d9fa5c98e430436c509e884dfa49c13733fa3eb6d253c1bed6dd4" + "contentHash": "59c0690a89eca52d0728241f1230adfa5795a53db23ad798d2dbe680720b487e" }, { "id": "module:packages/eval-braintrust/src/scorers/quality.ts", @@ -21482,7 +21591,7 @@ "ts", "scorers" ], - "contentHash": "5b22dbc2c44236112312f67b35e109b54d9b113377604b93d822672d429051e9" + "contentHash": "407a756833a4245357a62a5cd70e4e0e650efc1ceb5373207d46f4683821186b" }, { "id": "module:packages/eval-braintrust/src/scorers/robustness.ts", @@ -21504,7 +21613,7 @@ "ts", "scorers" ], - "contentHash": "b41a663f253e6881f1d5241229b316a4749b122668388dbdeca8f2ed2e597dff" + "contentHash": "72e88b93e748c3065bc9e7d73c3c428298824b0e64fcb0694d2f6c2ba7e71aa3" }, { "id": "module:packages/eval-braintrust/src/types.ts", @@ -21522,7 +21631,7 @@ "ts", "src" ], - "contentHash": "5f2de5dbe888808be6b547720b102e09dbabd24cae398b6d647847fdbdb795f9" + "contentHash": "4c28bd69ce9a44ec2fd4939bd3e3d4896af44726e3fcf38f2463510bb76c7d95" }, { "id": "module:packages/eval-braintrust/tests/ci.test.ts", @@ -21576,7 +21685,7 @@ "ts", "eval-braintrust" ], - "contentHash": "723327aefe23738224ff377452784f29d3ef77ab30df5a3fd9854d6b4e71f3c2" + "contentHash": "16b6bb63d51d00b93e38d16c85d740bbde90ea325ca7e48791222d56bf7f352c" }, { "id": "module:packages/eval-braintrust/vitest.config.ts", @@ -21623,7 +21732,7 @@ "ts", "ci" ], - "contentHash": "c5acd3011977029a113fc954f0bd17e7e1b9624291b92897e5693cfafd7120de" + "contentHash": "d5b4c91c977c2f9719455e2421f9e85b8192d84b44ef5ece3075cde24db77dd0" }, { "id": "module:packages/eval/src/ci/reporters.ts", @@ -21664,7 +21773,7 @@ "ts", "diff" ], - "contentHash": "d27673b34d04ced3b62de30277afbef776fb37c309fc98c2a8471e5dd31082da" + "contentHash": "6dbad11f2285dff8f6f2987b7ac54021f7484e28fbf6a3dde98ee109c2ea4f16" }, { "id": "module:packages/eval/src/diff/index.ts", @@ -21714,7 +21823,7 @@ "ts", "replay" ], - "contentHash": "ffde0d69f15384bcce1e33d97077cfb40383ec3f30456e71be1c75622b7a01ac" + "contentHash": "cb38efe89184780ba1adb81ad2d5de193100d256571af090195caf28f3a8bc22" }, { "id": "module:packages/eval/src/replay/cassette.ts", @@ -21733,7 +21842,7 @@ "ts", "replay" ], - "contentHash": "3b0186d6342ce33a543ff45fca37d394f996de163b547c4030bdd902f249a9fb" + "contentHash": "7088ae8eca5502171999247f3bcde26c0113b9f38214489961115fce8ca9a67a" }, { "id": "module:packages/eval/src/replay/clone.ts", @@ -21796,7 +21905,7 @@ "ts", "replay" ], - "contentHash": "b72468ff576dc0501e98e62600bc29c8cabddc6e2baafc7117e94defc1b0fb3c" + "contentHash": "6c0f9bcc4b652761ac38d2f109d102090732707a2dd06bbe3f17d465ce668b49" }, { "id": "module:packages/eval/src/replay/player.ts", @@ -21811,7 +21920,7 @@ "ts", "replay" ], - "contentHash": "9dc6ed70276c6ad89e4351e32878c5b3b0bbc41e3bc134e9726bf35cf65c33bb" + "contentHash": "853272d9ebdeb3333ffd8c1b6aebbc20654eae64fda3bb418324c914c3fb1e65" }, { "id": "module:packages/eval/src/replay/recorder.ts", @@ -21827,7 +21936,7 @@ "ts", "replay" ], - "contentHash": "af29257ff426519c719f7aa4c3006a37b115971c5ac81583c977b15f747d32ce" + "contentHash": "e375b50880497970de0e01171b054e0d8df4295c48ad80502552cca68d229aa0" }, { "id": "module:packages/eval/src/replay/time-travel.ts", @@ -21843,7 +21952,7 @@ "ts", "replay" ], - "contentHash": "18a29ac6503ebbd612a1c8f256087dc8f02ba0e3712083266e577fea37b450e2" + "contentHash": "e591a434715e9de14bb53ec020723ba24a2d1a4a1b4c43e26940c51fdb8fbfdf" }, { "id": "module:packages/eval/src/replay/types.ts", @@ -21861,7 +21970,7 @@ "ts", "replay" ], - "contentHash": "86d0f5a3f027cdc28fb29122c87dd12fdccc3909edd21f2d0cbcad1c7db99671" + "contentHash": "ee0b4683855a0687f7b09adc35efec82ee5fdc59f12a970e19485e741ea96e48" }, { "id": "module:packages/eval/src/replay/universal.ts", @@ -21909,7 +22018,7 @@ "ts", "src" ], - "contentHash": "724600f4548988b31a437949969e75128c279e6fa63b76773c740da8ef8b3f1d" + "contentHash": "d965059fecc66da84b196f9be85b2cf0c2c715fc8ab9fca10ecc33eec6e152d9" }, { "id": "module:packages/eval/src/snapshot/index.ts", @@ -21945,7 +22054,7 @@ "ts", "snapshot" ], - "contentHash": "002f59368fcd768cc244ac55487603e11ca9f0460810c580f20ea5acc841fa8b" + "contentHash": "9cfc37d7fdd5a61bdb7e386578e56f8277ede5fd7c3a8bc26b9fb2901e1f6db6" }, { "id": "module:packages/eval/src/types.ts", @@ -21964,7 +22073,7 @@ "ts", "src" ], - "contentHash": "1b179b7a3bd97d0e1a406b1710d1b184b475b815c5bfff47d9f58472ececfaed" + "contentHash": "16450430693b0fd0bb0801bb1944e7b2937fba44da912ca4998fedb956a082e9" }, { "id": "module:packages/eval/tests/against.test.ts", @@ -22044,7 +22153,7 @@ "test", "tests" ], - "contentHash": "9885249c83b2b32d3cc2489403bab64887eefb91a3ea33d1f463eed34e775aa9" + "contentHash": "b0c04d63d609aabfaa366832c8252351a9f0d749ee0d896da067c69074f5bd8f" }, { "id": "module:packages/eval/tests/replay.test.ts", @@ -22111,7 +22220,7 @@ "ts", "eval" ], - "contentHash": "ea4aadc8e5b72d419c633b9fa92ebbc885c61a183d0520f78196e9bf0f70613f" + "contentHash": "87717dc1d8d98f1d7e33ff7615a9b60351480587e303514cead4e905bfa2eaa1" }, { "id": "module:packages/eval/vitest.config.ts", @@ -22154,7 +22263,7 @@ "tsx", "components" ], - "contentHash": "0bdca5ed770a22ec467206c71837c142b81e924b347ddac8c6bfabe39fd4e587" + "contentHash": "ad5ad4e99057d04b108ca5c5140526668431f8599eab4edcbbee6ef7220e74d3" }, { "id": "module:packages/ink/src/components/index.ts", @@ -22210,7 +22319,7 @@ "tsx", "components" ], - "contentHash": "d15dbbb959c61ac4fe5987bcf3cf734100c9f4ddc7ac4ddb1c671c743aadb646" + "contentHash": "8ab4ccfb4fb4bd850100611573bbf4595072642d073ce53c5592104827cb2aec" }, { "id": "module:packages/ink/src/components/MarkdownText.tsx", @@ -22226,7 +22335,7 @@ "tsx", "components" ], - "contentHash": "4be4b46deff775418adeb55265fa35221260589c34f6250b1dac97578547955a" + "contentHash": "fb79f71596e4d5dc6a4272f7740c959a812def7f1bdd06a8a5bbc4ca5e77732c" }, { "id": "module:packages/ink/src/components/Message.tsx", @@ -22242,7 +22351,7 @@ "tsx", "components" ], - "contentHash": "606c782dfcb4744275dec11486e862e3fea956de38eeee4c80fab2af707fd950" + "contentHash": "704547f98bba36fe54a8d8b4af9e8eebc271287e9bc64496f0e1a3838061d5d9" }, { "id": "module:packages/ink/src/components/StatusHeader.tsx", @@ -22258,7 +22367,7 @@ "tsx", "components" ], - "contentHash": "fbf57dcacf48eba3d29c35c745d50f8b913bb787e9b2a723be12cf98f07ef694" + "contentHash": "a249e95a386752c5af4a73ad16d3514c6ed4d4b359557f2c918e161f5200847b" }, { "id": "module:packages/ink/src/components/theme.tsx", @@ -22276,7 +22385,7 @@ "tsx", "components" ], - "contentHash": "bfedf5a4caac8024bc26630262695e3a2b3b1288f9438f1de7d99c261ad73aad" + "contentHash": "c00a097812e6169ef7d637c0a95022068b9bc978e11313d20cbce7cb08803341" }, { "id": "module:packages/ink/src/components/ThinkingIndicator.tsx", @@ -22292,7 +22401,7 @@ "tsx", "components" ], - "contentHash": "08ae528fd7722aab7e90c59b0068df52cbda3ecb40b5f649da8d928dfc9fc997" + "contentHash": "f559fdba15dffdfd30bfd056f277c67eeb8d2c9092b50b40c0057e821786d415" }, { "id": "module:packages/ink/src/components/ToolCallView.tsx", @@ -22308,7 +22417,7 @@ "tsx", "components" ], - "contentHash": "edfb9cd82053950f5a9f767984661c53698a5e6df65d2b9c078f98b4fe60e980" + "contentHash": "e544c2eddcf56b30996d9643b90a1cf9f1cbdb8e85a098419a789bb5d2795c34" }, { "id": "module:packages/ink/src/components/ToolConfirmation.tsx", @@ -22324,7 +22433,7 @@ "tsx", "components" ], - "contentHash": "04d473992144afe68e9ea57f3ecad47c59ee8e8de6883d04f870ff8915e75a38" + "contentHash": "51ac48ad13c7a5821e8408a01a562537118eecddc126339ba749c793b2c44685" }, { "id": "module:packages/ink/src/components/TopologyGraphView.tsx", @@ -22344,7 +22453,7 @@ "tsx", "components" ], - "contentHash": "a9e6c1f2ac3fd7e5922668b7ea431c0245779ac90aeeeac67f5e8931c2a33862" + "contentHash": "9643f93b764325cd1387d6cceabc569ea93a2c0510285cce9dfef537f63a66f2" }, { "id": "module:packages/ink/src/index.ts", @@ -22420,7 +22529,7 @@ "ts", "src" ], - "contentHash": "3e3eeac6902761f71e4076a1ce670e4746069cd73619b9cd79561401ef035ebb" + "contentHash": "d6d2ec8d9b21effca2b0271d5bc92f5419e34bd8c6d3de7bd0a913ab0a37ad35" }, { "id": "module:packages/ink/src/progress-observer.ts", @@ -22437,7 +22546,7 @@ "ts", "src" ], - "contentHash": "6783a4072f678da9a90f36f4bc73d7c7392dc483d6cdf0d92d4cffd4f278d510" + "contentHash": "805ff79b8a405cad8e6e6e129c4b294b994f3bee866804a8a0da0ee0dbcc4f68" }, { "id": "module:packages/ink/src/useChat.ts", @@ -22452,7 +22561,7 @@ "ts", "src" ], - "contentHash": "d4995d46dcc58e9cf341f6357a401e8bef31a00d45033f9ac159a5e5021e94c7" + "contentHash": "ad66fb4e66259b54e4172949c480555880c809f63319c12d8e400eb18c920c9d" }, { "id": "module:packages/ink/tests/exports.test.ts", @@ -22662,7 +22771,7 @@ "ts", "ink" ], - "contentHash": "2187180b95aa96eb2b2221d0e4308dfdb03732bbe44bfc8c48a4b0f6fcfb0ec5" + "contentHash": "811b8c6f990a7b91172ac5056e5185a4c88ca8141861dda41ed10342531f3936" }, { "id": "module:packages/ink/vitest.config.ts", @@ -22740,7 +22849,7 @@ "ts", "src" ], - "contentHash": "365a1a7c5659854cdbb38e86be5a73be1f9f7f693bed66aa48ec8793e72a3dc0" + "contentHash": "0be5fa2b614d0ad32941b9b22968a3169a05729d73023cd8185282c7c4d2a9a1" }, { "id": "module:packages/integrations/src/http-body.ts", @@ -22796,7 +22905,7 @@ "ts", "src" ], - "contentHash": "a4d7590d308a6cc574e2434ea5d3ff40c3102afd898394c19ded99ee170d77bd" + "contentHash": "2126243a04eb303d59561ebc01b3341188c0541b79aa4b6b54ae358e6878cdbe" }, { "id": "module:packages/integrations/src/index.ts", @@ -22939,7 +23048,7 @@ "ts", "src" ], - "contentHash": "e3f0f63d5537e7cc1a350ca8ba052f378c33aeac4b4678cc3576d919cbccc3ef" + "contentHash": "a6d46a1df88ccb087715177f1eb5d798f41914acbd0c180ec04e0207908bcfa3" }, { "id": "module:packages/integrations/src/services/_template/actions.ts", @@ -23033,7 +23142,7 @@ "ts", "acuity" ], - "contentHash": "b1e90e38ab5d71bd341d90449b3f186198e7c698568be83d77c7da8c59f717d7" + "contentHash": "975a9a7db7c6a8c8d24e6aba2e3c5efb44cedd5274672a02a056c7443a6317bc" }, { "id": "module:packages/integrations/src/services/airtable/actions.ts", @@ -23065,7 +23174,7 @@ "ts", "airtable" ], - "contentHash": "20dd3cb9320305b2814413c95e7a192aba4af8e2006e9ba12c4ec6f063c480a6" + "contentHash": "38aef20769f357a0f20763f859a8cc76230f883179212425073fdc251e634b7f" }, { "id": "module:packages/integrations/src/services/apollo/actions.ts", @@ -23096,7 +23205,7 @@ "ts", "apollo" ], - "contentHash": "4c14948cecd96401b8052c3ad92fee3c021e71acbc57e66098c138444f729501" + "contentHash": "89591cd186ba005f3bd0ada70c81e3339abc73e72c22e8e4fe0280d0807cf583" }, { "id": "module:packages/integrations/src/services/asana/actions.ts", @@ -23128,7 +23237,7 @@ "ts", "asana" ], - "contentHash": "37c46e81c39e99d486847faed101c151e521a616bec62607a4387889c57212f8" + "contentHash": "99c09eb72378109efc5c487c3caf14aaf2773948321222ec1da630929edb9814" }, { "id": "module:packages/integrations/src/services/assemblyai/actions.ts", @@ -23160,7 +23269,7 @@ "ts", "assemblyai" ], - "contentHash": "0049d061dbfdf74bed533f41a2f83d854631772901486cbed02a665999a07292" + "contentHash": "0b0711fbe34f582dfb6839cbc185e0f9cc26f079b7d17323da15fba3f19c73b6" }, { "id": "module:packages/integrations/src/services/attio/actions.ts", @@ -23192,7 +23301,7 @@ "ts", "attio" ], - "contentHash": "7717ebb10c54aa6070a6720348dfe63775bd6d259906582dbba414a9b4689a4f" + "contentHash": "2233fb4771f4b85f3c48141aaf0d1f405a4050794d4427faf90de180d6ff8b56" }, { "id": "module:packages/integrations/src/services/azure-openai/actions.ts", @@ -23223,7 +23332,7 @@ "ts", "azure-openai" ], - "contentHash": "872012d7f51e61d17059d1485e335d1de73b8c9e9f0fb4a4143f7a8b922f84eb" + "contentHash": "658a3f6177d5ad1c82e57d9264886175de5f85e124a2c85d0f82775727682069" }, { "id": "module:packages/integrations/src/services/baserow/actions.ts", @@ -23255,7 +23364,7 @@ "ts", "baserow" ], - "contentHash": "7a0bab09682f84e8ce93a896328fe4a6530484c676bb9be2173ab5d30e73ece5" + "contentHash": "9de2495887c1bf8de2c916928bfda34960f6379f1ce1bac69672a618dc6f103d" }, { "id": "module:packages/integrations/src/services/bigcommerce/actions.ts", @@ -23287,7 +23396,7 @@ "ts", "bigcommerce" ], - "contentHash": "adc4be6d0323a0090f4c922d33d2101ccd047166b26ab022dec10359159694e7" + "contentHash": "3e4b0ea89eaaa752aa23022cde92bcf3a8f14944f5d685ff7352a164fe7fdaf8" }, { "id": "module:packages/integrations/src/services/box/actions.ts", @@ -23319,7 +23428,7 @@ "ts", "box" ], - "contentHash": "09a04367b7ad893bf001246f35c4270ee93072ae0ed0bb474a4ebef4332c4d72" + "contentHash": "6f094a19a3d02e4842029413d59d9f343e852c5d102d892f244a1ac5c6f66a2f" }, { "id": "module:packages/integrations/src/services/cal-com/actions.ts", @@ -23351,7 +23460,7 @@ "ts", "cal-com" ], - "contentHash": "5f4563868c3f40bd98950d39a68ff4ba7589c737d6e1a6e0cb52762c59669cc0" + "contentHash": "2ea4683b1571b5baab0f7e8659f4f4ae3a6232992c8b8705142a8294295972e4" }, { "id": "module:packages/integrations/src/services/calendly/actions.ts", @@ -23383,7 +23492,7 @@ "ts", "calendly" ], - "contentHash": "21a13c9f88eeb3cc407f447f9e97f3e6d30daefe8a95b25bb4553343d516e669" + "contentHash": "6d920c793d06faf48079bb7bc573d725db682212710bd11371818bad2d82b508" }, { "id": "module:packages/integrations/src/services/coingecko/actions.ts", @@ -23415,7 +23524,7 @@ "ts", "coingecko" ], - "contentHash": "58633d740f6161a2849e873744ecbb76b154af2682ff8b43758d723fffa3be53" + "contentHash": "5c7105ae416d7520b997e17acda8484b7a4936aa7ff19f6d8090b1255efbf41d" }, { "id": "module:packages/integrations/src/services/confluence/actions.ts", @@ -23447,7 +23556,7 @@ "ts", "confluence" ], - "contentHash": "d6d57293cebf416ab2e52ff9e354bfbe4a0524aabe021b83147a998cbe003a65" + "contentHash": "4cc8b3f87dde74f9be9af4d8f8d1858635b2d439010bc7a4014f8dea3d85f5a6" }, { "id": "module:packages/integrations/src/services/deepgram/actions.ts", @@ -23478,7 +23587,7 @@ "ts", "deepgram" ], - "contentHash": "94cb7c69e68b963cb4b9a1acfa36e1fa687ca7ad9696a09157f125a228458504" + "contentHash": "82347b328d51c44f41b34c5265fd68eef42b252f43d20c8e542216ca30f44d71" }, { "id": "module:packages/integrations/src/services/discord/actions.ts", @@ -23509,7 +23618,7 @@ "ts", "discord" ], - "contentHash": "5646a2307dacd52734c4ac1917d206345ff8a622127f39f0b3d5d84fd9a063fa" + "contentHash": "9f1c1dc5a0840963206ed9dc53513732928da5e47d1f3f7366b1138b82c87185" }, { "id": "module:packages/integrations/src/services/discord/triggers.ts", @@ -23557,7 +23666,7 @@ "ts", "dropbox" ], - "contentHash": "09c95f68353b5fb4203606904f1687da8b5b138d142c873142e91d0bdda14e86" + "contentHash": "451347b1bf935a9b4bac22a6df057d9b160d6efa1f18fcfca74c58354aee435f" }, { "id": "module:packages/integrations/src/services/elevenlabs/actions.ts", @@ -23588,7 +23697,7 @@ "ts", "elevenlabs" ], - "contentHash": "cff0e67ed7242681807578b68304a1d25b82156731831a08d9f512c566843e79" + "contentHash": "710b6fac146c80ccecfe5d096d7c958274f932b5b3c44e475912717f219e7873" }, { "id": "module:packages/integrations/src/services/email/actions.ts", @@ -23628,7 +23737,7 @@ "ts", "email" ], - "contentHash": "d944ec91cecdbb119d495374e917fe4122bb375d42ee8f2a26f5ee915905b99a" + "contentHash": "00df9f73426b0d788a5e23e1b3b3ea904efc0badff9fea34498ecb52a2fa1ffe" }, { "id": "module:packages/integrations/src/services/email/types.ts", @@ -23650,7 +23759,7 @@ "ts", "email" ], - "contentHash": "9994e4e63a719954e3541cf3fdbba525a6153cecfedde43ffd6eb9aa2dbf4857" + "contentHash": "97f39d93d6c93a02ba2c3f456ffbf749f0243ddf144aecad27dfef8410faebd3" }, { "id": "module:packages/integrations/src/services/figma/actions.ts", @@ -23682,7 +23791,7 @@ "ts", "figma" ], - "contentHash": "6903e8ed87eedf67c17991bc9ca797705bf6ebbfd2da03f7adba23b88d4e8e3a" + "contentHash": "a7bed6e9d45226d39feb8c0afbb5d50269508adb334f09338d0d00bfa45f96f8" }, { "id": "module:packages/integrations/src/services/firecrawl/actions.ts", @@ -23714,7 +23823,7 @@ "ts", "firecrawl" ], - "contentHash": "796fd080090774817831bf196b2a19c05e708142b80720d796cbe1157a4ef2aa" + "contentHash": "b9818cc33bef3ac49d59857bb010c786f91c04bbb0f03f5e663e0e381d18267a" }, { "id": "module:packages/integrations/src/services/github-actions/actions.ts", @@ -23746,7 +23855,7 @@ "ts", "github-actions" ], - "contentHash": "da120dcad1528f769488b7df90b40e3674081041fe530a874074f082227e0eed" + "contentHash": "9b501d879867be4ccf2ba29f84161d9eb10a4f73d3471c1ee358587b80a0ae91" }, { "id": "module:packages/integrations/src/services/github/actions.ts", @@ -23781,7 +23890,7 @@ "ts", "github" ], - "contentHash": "b6cee39bb677084ae146178bcb6b8b91799d3d5055c37b5e049813bbd61b5015" + "contentHash": "a4327c634914fed5136472fb698ef274a075f9f16657ba92ccf91092492419e4" }, { "id": "module:packages/integrations/src/services/github/triggers.ts", @@ -23829,7 +23938,7 @@ "ts", "gmail" ], - "contentHash": "74d4e570bba14afccd48a1f32f46b1962aecb3a01700edcbd27c9b7357030c23" + "contentHash": "f4b5356f0e84619927fe296783c7ac109e597c8a7c664a43aeb1875e400744fe" }, { "id": "module:packages/integrations/src/services/google-calendar/actions.ts", @@ -23861,7 +23970,7 @@ "ts", "google-calendar" ], - "contentHash": "383264d255a588ef2689b7963aedd99cd13fdf180a3b09a1fe12ff81d5ee20b3" + "contentHash": "64f8c62f238b5c81b7b2e8e317d3b42e2f31044a78cfb74d26c3c1fa14cd029e" }, { "id": "module:packages/integrations/src/services/google-drive/actions.ts", @@ -23893,7 +24002,7 @@ "ts", "google-drive" ], - "contentHash": "490d808a9f91ae775b7927a82222a1882d826a8bca725fbebde7d7e8ef66a9bf" + "contentHash": "d8845c5ac318c50de94d06f27149f199afd75f2f5344e699431ad34c0d12f83b" }, { "id": "module:packages/integrations/src/services/hubspot/actions.ts", @@ -23925,7 +24034,7 @@ "ts", "hubspot" ], - "contentHash": "b5735c0331f5830561b9877421c782f54108b4282eae6254c9ede06c8f643172" + "contentHash": "471440138cb8d7e7f585438ef20316a2dd87a7a9f2746f2fa807de4ca049cbe8" }, { "id": "module:packages/integrations/src/services/index.ts", @@ -24018,7 +24127,7 @@ "ts", "intercom" ], - "contentHash": "38b091dd0d8646a27f264a3be62f0903c09fcc98d51a4246398e0d16d2daded0" + "contentHash": "e800d6be6286d5131b74ce71f2f28ff4447e5a14984a0903699459d3d4fedc63" }, { "id": "module:packages/integrations/src/services/jira/actions.ts", @@ -24050,7 +24159,7 @@ "ts", "jira" ], - "contentHash": "e5f06a65703e955ecbf940ca8f69468d802cf856681d4c2c15b726eac523ded7" + "contentHash": "6616173b07015631708ff25c96b29d062aed85702f3f87ccca4905cf97e0fa84" }, { "id": "module:packages/integrations/src/services/linear-triage/actions.ts", @@ -24082,7 +24191,7 @@ "ts", "linear-triage" ], - "contentHash": "6e52e33e01c6be0b95b549163d83662212e076fa577eee5979687cdb70f53647" + "contentHash": "0e1dbcd71addc450368dbdec8b3e3c81bf390a59e4aa55ef1c46d1e02e06bf0d" }, { "id": "module:packages/integrations/src/services/linear/actions.ts", @@ -24129,7 +24238,7 @@ "ts", "linear" ], - "contentHash": "8a856a80bb616ca945c84bdacdd56b1ab837997f7d84e1998dc587473bee1a12" + "contentHash": "fe23170372586c19b4387ad1f36c7240f9d86cf0b1ab97e1de372a8c581fb685" }, { "id": "module:packages/integrations/src/services/linear/triggers.ts", @@ -24177,7 +24286,7 @@ "ts", "mailchimp" ], - "contentHash": "268e0ee7c35ae6d9d4e70fc353e0cf0782796e5095bb490bcd7f29503e123d97" + "contentHash": "87cdd4e702d5128dc4f69d3fa2f6273fcdabd14821a02d9e46b741332a43771a" }, { "id": "module:packages/integrations/src/services/maps/actions.ts", @@ -24209,7 +24318,7 @@ "ts", "maps" ], - "contentHash": "b140b1efc3306d780ff5dcb9d6e0f877ece63ab02d8f2eb710afef6fdc3217d6" + "contentHash": "6bdc2077a3ca36d375ccbca1f3961084d8a0c8cbf7338dbd0fbb955179115fe3" }, { "id": "module:packages/integrations/src/services/notion/actions.ts", @@ -24241,7 +24350,7 @@ "ts", "notion" ], - "contentHash": "afe2c2b5490ea0f6dfa6f24dc0f1ac0b2a10aca250aa42b9eb3c646fc26b089d" + "contentHash": "c4d7315e8ba467958ad6135e23ff92025b4a5ee0772ad3a7ce3db78b6e00aff0" }, { "id": "module:packages/integrations/src/services/openai-images/actions.ts", @@ -24272,7 +24381,7 @@ "ts", "openai-images" ], - "contentHash": "390097b9f5e04bedb19c9e3192d6a5b57d468fe1d949f368626ecc68abdb173b" + "contentHash": "679d6c010a6b915cba4671dd51f7286b4a4ddfc078fa04a35a636829d7227d12" }, { "id": "module:packages/integrations/src/services/pagerduty/actions.ts", @@ -24307,7 +24416,7 @@ "ts", "pagerduty" ], - "contentHash": "3008ea4a8933dfdca477e207d25d0cc913f50bf7c3edc0273a27ce9c3a87b938" + "contentHash": "e38f3dd113f5a0afa834e4d5916be7752e501440e84072036e604130f11cacd4" }, { "id": "module:packages/integrations/src/services/pagerduty/triggers.ts", @@ -24355,7 +24464,7 @@ "ts", "pipedrive" ], - "contentHash": "9510ebb0bb60b2e2bc234b0cdd7d1a67f0720ea4f84b5d109a4087862fa8e736" + "contentHash": "4537623ddfd2a4333beabeccfdfd7d13658f9ddcd3d904a6fbb87317f42b3c3e" }, { "id": "module:packages/integrations/src/services/reader/actions.ts", @@ -24386,7 +24495,7 @@ "ts", "reader" ], - "contentHash": "2a21bc0a454d4ea775c7d139f729e43c342f30306de326a55cbdbdea1028707f" + "contentHash": "59c410d1f1b59a176cd5b2042c83b53ae79c6e59a72990fa91a204d391e7b54a" }, { "id": "module:packages/integrations/src/services/salesforce/actions.ts", @@ -24418,7 +24527,7 @@ "ts", "salesforce" ], - "contentHash": "a4b5930fcd1b5c6c70a55dab4d061ef089b563c4d190bbca4d9b93dd3d28bb09" + "contentHash": "c4fef3bd401bd0667f2f462a9a17c9fe72a6e7088bf53ead8d9dc37c985f2a62" }, { "id": "module:packages/integrations/src/services/sendgrid/actions.ts", @@ -24449,7 +24558,7 @@ "ts", "sendgrid" ], - "contentHash": "d0f37f5f815a20232d5d67fa778fe4a1a8cb345b429552266750ca635a86e5fa" + "contentHash": "fd2466f28ae9b96c26896c9d1bf55ea006332937166d3424c486c5828f0f99de" }, { "id": "module:packages/integrations/src/services/sentry/actions.ts", @@ -24481,7 +24590,7 @@ "ts", "sentry" ], - "contentHash": "7c5abd23e3e1b7a83e48f7e164ad215d75b3cc8cd2d7ad66cff5f0353f64d7f4" + "contentHash": "98d3c28a9efb6c41fa570f5250548ccd0a10eba6909d7091efdb2fde70ea2916" }, { "id": "module:packages/integrations/src/services/sentry/triggers.ts", @@ -24529,7 +24638,7 @@ "ts", "shopify" ], - "contentHash": "5df4a5485958e47d80dca3198eb6a1ac360d2e77cb57afb35ba899fd83d24dd5" + "contentHash": "f6cf7aa427307fd9c48aea8ca0642fedd26b7e4af1756d56cff0610a53e9fbf0" }, { "id": "module:packages/integrations/src/services/slack/actions.ts", @@ -24576,7 +24685,7 @@ "ts", "slack" ], - "contentHash": "ba769d31250cd12b7210e1fa4df18bddac313130452c9fbc2d5b2f2d4aa2b34e" + "contentHash": "d9c5e0153497b7b78c37d13d73e08e7f012fe7fdb92d60c329ab77d3336c20f2" }, { "id": "module:packages/integrations/src/services/slack/triggers.ts", @@ -24627,7 +24736,7 @@ "ts", "stripe" ], - "contentHash": "7d93559b9e2e661e4e5f1a7ad7813b5bf5afc2dfe2daf44fb358237282c3f18e" + "contentHash": "f1f6bc4ecab4913e9008168418cbac68995eceef0d61533800dec8fcded9530b" }, { "id": "module:packages/integrations/src/services/stripe/webhook.ts", @@ -24683,7 +24792,7 @@ "ts", "teams" ], - "contentHash": "79dc63e5126965322e61607acc7d78b424b95d34d80df32d904fc856ff8e6767" + "contentHash": "69e0e3e6b0431d3cbf2bc71aaf155bd79d2605da60bb0b46296387342d476f80" }, { "id": "module:packages/integrations/src/services/teams/index.ts", @@ -24707,7 +24816,7 @@ "ts", "teams" ], - "contentHash": "cedec38e21edb1212f326b84f6f0d741020bd0f8cb3529d7ce04d9e1e6b0549b" + "contentHash": "565cd516f98e8e1888f4b4391a3471187686202e5a9b86d8b799631d326e5a1b" }, { "id": "module:packages/integrations/src/services/telegram/actions.ts", @@ -24739,7 +24848,7 @@ "ts", "telegram" ], - "contentHash": "4adedd2196e31ecea933114860dd16156e67edf97530af886086d95ac2980716" + "contentHash": "a1b8d6e38c50954fbff41ff45d6f1c6a8a51bf3780bed79d870775f44e3930d2" }, { "id": "module:packages/integrations/src/services/telegram/triggers.ts", @@ -24787,7 +24896,7 @@ "ts", "twilio" ], - "contentHash": "e779b68e351e236983ad8ed3b3098b498a9e0479469eee01d1b2150418653bf3" + "contentHash": "ceeea7bc6c6cf3cef1825db57c3cf5a08d1d2ed68131e66db278d34f02f8f037" }, { "id": "module:packages/integrations/src/services/twilio/triggers.ts", @@ -24834,7 +24943,7 @@ "ts", "weather" ], - "contentHash": "5a5936ac2c5608ebdda33d54f7649404962b5dec178f4624302a1e48d36f576a" + "contentHash": "1f525b31853018c0baaba686c30e4f4c64d8b1b3c55dc7d6e405b914b6ecb91a" }, { "id": "module:packages/integrations/src/services/whatsapp/actions.ts", @@ -24865,7 +24974,7 @@ "ts", "whatsapp" ], - "contentHash": "940f731243be93d88a6905af26a55092545609a2a54024b2d16d3642f74cc956" + "contentHash": "ceeb0005852c1cafe9b16414e1b27cfcdea07db366aa39e57e70ea108e4d641d" }, { "id": "module:packages/integrations/src/services/whatsapp/triggers.ts", @@ -24912,7 +25021,7 @@ "ts", "whisper" ], - "contentHash": "24271f805b1e9968cc117b8018959c02060c22684426738855e3389dc5cc57a2" + "contentHash": "4490a585864cc082312ad1198abce7c9097db7a7aad63217dce8aedda26e2513" }, { "id": "module:packages/integrations/src/testing/index.ts", @@ -24950,7 +25059,7 @@ "ts", "testing" ], - "contentHash": "9f845fa858976d6c56022e63b45aab667da3403b6504bc6a3587355b1bed4908" + "contentHash": "b0f95e4f85925323fa76a4a3c730153f1b08f3edb5123bf2e77ccf0b40231a50" }, { "id": "module:packages/integrations/src/webhook-verify.ts", @@ -25104,7 +25213,7 @@ "test", "tests" ], - "contentHash": "5b1fc409aebb8cc7c12c89bf2fc834584e80d81464206018998595614e6a9021" + "contentHash": "73ff17189c1b7ab586ac963c040b22bd86331cc2a6811d34f4f70f31e3fcb574" }, { "id": "module:packages/integrations/tests/integration-tools.test.ts", @@ -25301,7 +25410,7 @@ "ts", "integrations" ], - "contentHash": "13e5b3b33a1c64cb087d298ffe16caadb368b4515aa3f7a6625c19e24340a105" + "contentHash": "e467ec8eed4d845cc455fbc9b4c4e5b757fc8f8e6bfc032b787d443c4dd8fc6d" }, { "id": "module:packages/integrations/vitest.config.ts", @@ -25387,7 +25496,7 @@ "ts", "src" ], - "contentHash": "c6afb5151227707fdbafec59ba20c448753dbc488dbabaaff60dd9d3f9984df5" + "contentHash": "1cfa0f0c33806a808a28aeb03072ecaa2f069b4756e4b458dd84cdeef4497668" }, { "id": "module:packages/mcp/src/bin.ts", @@ -25449,7 +25558,7 @@ "ts", "src" ], - "contentHash": "012e57b85b651cbd7a4bca0992f02102f1716cf8c7af53e0411b5215b847b839" + "contentHash": "a07c20f382e2a5be23007034baca75750cd4c284c6331193b0bbba60b28818b7" }, { "id": "module:packages/mcp/src/registry-fetch.ts", @@ -25580,7 +25689,7 @@ "ts", "mcp" ], - "contentHash": "a678405da7c58605cb2001c54200f2fa6c7ab40153cdbbf2bc08a296532633e5" + "contentHash": "97132788d087cc95be045c25473eafa3aac39dcb2fc1496da05884ed0f95e7aa" }, { "id": "module:packages/mcp/vitest.config.ts", @@ -25639,7 +25748,7 @@ "ts", "src" ], - "contentHash": "9f9f52b289a44f3b44cf968f46b76468a82a0d097cf141def584685e82b9ff47" + "contentHash": "beff64c6ee91a64e4fd174877e93e675de971a30e56fc3293c9e14fad0d791da" }, { "id": "module:packages/memory/src/file-chat.ts", @@ -25670,7 +25779,7 @@ "ts", "src" ], - "contentHash": "e55de1a16ecc865886051d940c32604f7e6f165bfa75b37347410eeb7fd23d82" + "contentHash": "7bc1de58e487346a7a0c207703292c18b8b3a6efecc60d6204d84524a19e54c8" }, { "id": "module:packages/memory/src/forget.ts", @@ -25689,7 +25798,7 @@ "ts", "src" ], - "contentHash": "2a500459aaca29926c9cc6374867fb5f81710b08e883d53b510fb6fe3a804e8b" + "contentHash": "e3a84372862fc9350c7ec329f519a57df41b130f2881cfad7603d37a462e036b" }, { "id": "module:packages/memory/src/graph.ts", @@ -25708,7 +25817,7 @@ "ts", "src" ], - "contentHash": "ad7d687389bf2b28d86b1c26af7da3dd2b2f8d87a943cc187dd6c7c3aa6a68d4" + "contentHash": "ead49465eb0bda622b13c04095a5b4da66af74d305ce4ede31f7f852e658aff3" }, { "id": "module:packages/memory/src/hierarchical.ts", @@ -25726,7 +25835,7 @@ "ts", "src" ], - "contentHash": "7fd20ca6a3ca5ef5e87e1ea593e42a63316f57f7b14320939cafc0b1f13bb460" + "contentHash": "6408a7da87f682562ce6019a87408034d3fd45bb82410baab54415bfc2ddd54e" }, { "id": "module:packages/memory/src/index.ts", @@ -25862,7 +25971,7 @@ "ts", "src" ], - "contentHash": "c3911598b801d77447bad008f0f86121f926cf4863aa221ea8ba02aaea261246" + "contentHash": "8ea60e72246bce59bc0217cc80c6b6cac609c8e18122d0566541dd6a2b87d663" }, { "id": "module:packages/memory/src/kv-store-factory.ts", @@ -25883,7 +25992,7 @@ "ts", "src" ], - "contentHash": "61825076c8adc2e4c1a65e4a052264c66fec67e1fa1da9cd8bbca6e90088a499" + "contentHash": "b914887c5e2ccc7c37e3d0a55e29c3f50a9ad95d0cf7b494a510d663e8e728a6" }, { "id": "module:packages/memory/src/kv-store-redis.ts", @@ -25901,7 +26010,7 @@ "ts", "src" ], - "contentHash": "98bbb934cf3da51e271888f1142b0c09921ec95978471ebc5e695a027a97448d" + "contentHash": "247c0d10d231bc6cda85dd6d0c9f73d9afeeab7fc1a4e81b85526b083cc747fd" }, { "id": "module:packages/memory/src/kv-store-sqlite.ts", @@ -25918,7 +26027,7 @@ "ts", "src" ], - "contentHash": "5b83e11c459207f809a133990d23cc2ac4de1710a93b932430657cf7aed30ac7" + "contentHash": "e267cf63b6658a02cc739330353f384d4b1c5b819b788cb432344d43d2d7cd37" }, { "id": "module:packages/memory/src/kv-store-types.ts", @@ -25951,7 +26060,7 @@ "ts", "src" ], - "contentHash": "5534e3ced18c630a065802e676ac271703cc64f8ab42c7ee240216e38a20a536" + "contentHash": "5ab56b0dbafedf2f9680bfb3581099720452b2fb4fc29722f7a05fbe35785fb3" }, { "id": "module:packages/memory/src/kv-store-vector.ts", @@ -25967,7 +26076,7 @@ "ts", "src" ], - "contentHash": "39546b1d9418556629836d3c038d7b45d8749bc1a7786834592fc1abf46b6833" + "contentHash": "2ed469b2773a6dc8e9e77c994f7048c1a257a28934614ed87453b1a9e4f4f7d1" }, { "id": "module:packages/memory/src/personalization.ts", @@ -25985,7 +26094,25 @@ "ts", "src" ], - "contentHash": "75778756eeb3055961c02752c86ee2e75c18aff6fc090f9573bda539725f6a2f" + "contentHash": "48035e5834b25982e781114da75b65dd69752663093dad985a12ee0b793d4d8a" + }, + { + "id": "module:packages/memory/src/postgres.ts", + "type": "module", + "title": "postgres.ts", + "path": "packages/memory/src/postgres.ts", + "symbols": [ + "PostgresChatMemoryOptions", + "postgresChatMemory", + "postgresChatMigrationSql", + "postgresChatTable" + ], + "tags": [ + "module", + "ts", + "src" + ], + "contentHash": "76dd829118dff9d6ba0d4a7323de1c8ce7c87c9147e9f033e97c215dc411f41e" }, { "id": "module:packages/memory/src/redaction.ts", @@ -26004,7 +26131,7 @@ "ts", "src" ], - "contentHash": "be88da0fdeddc12ffab9a4fdfb58a9d684e8754ccb5022de0ac6c134b9e37c3c" + "contentHash": "abca6ed8b182da7fa6074520dd47be543da3ddbe35465858aa7ebfc1d9d1e788" }, { "id": "module:packages/memory/src/redis-chat.ts", @@ -26020,7 +26147,7 @@ "ts", "src" ], - "contentHash": "f58bd44d325decbd675d15c1df2142dddc595878d33255c21eba56cf045e1c78" + "contentHash": "7db9e18cfe93b6caf7a21055dbd716a3e58b7756a359ff4fa3566a000490c3b9" }, { "id": "module:packages/memory/src/redis-client.ts", @@ -26037,7 +26164,7 @@ "ts", "src" ], - "contentHash": "7abdc54cea402f24edd760b06bfe26f4bedd7f92d77825d277d4d713c3d608a3" + "contentHash": "fd4900ce390aed0c7f562e0f074ec53a1b63f1bf35f0c85e15e241bbf565ec3b" }, { "id": "module:packages/memory/src/redis-vector.ts", @@ -26053,7 +26180,7 @@ "ts", "src" ], - "contentHash": "0626f2b3aa227fd07038481e32439e1ac3999921a4cb3535e8c92d69c1eb003a" + "contentHash": "e4cd3d67548fb17cf6dcd64abe1b9827400810180ea3c8bfb861afb289ced625" }, { "id": "module:packages/memory/src/sqlite.ts", @@ -26069,7 +26196,7 @@ "ts", "src" ], - "contentHash": "74109fe1748e9d017d4e41e35e38308e43831386398f83b0492dce150fd00c18" + "contentHash": "bfa5d769ac1c7de9af3f8b674b965ce65fc83be1501da7156581ce25bd8d8523" }, { "id": "module:packages/memory/src/turso.ts", @@ -26085,7 +26212,7 @@ "ts", "src" ], - "contentHash": "976cb3335bd77b43d9c800521fc968f056afb005a247dd62969bb3337ef19528" + "contentHash": "1c65883fe94239e02f09a9a417c83d4a1eb6f2deafdbcfabca6944dfbb538969" }, { "id": "module:packages/memory/src/vector-store.ts", @@ -26102,7 +26229,7 @@ "ts", "src" ], - "contentHash": "34dbd51a8f81aab90113ca3b3ef8942c3565b2d08d88a4f6ef4eded84bd18a64" + "contentHash": "efda67acb6bdd2c442cecd8f545d482b41aa7fdcf3b7b03a930bb774fa4e71cf" }, { "id": "module:packages/memory/src/vector/chroma.ts", @@ -26118,7 +26245,7 @@ "ts", "vector" ], - "contentHash": "80ae3677cb272a9ab02c862e822af5405ce323c080a43dc3abfc2d3e9afed4dd" + "contentHash": "906363e6350dfc4d957a77f5c96e344f70df87658a8a47ee29ca6e27dc64c82f" }, { "id": "module:packages/memory/src/vector/filter.ts", @@ -26149,7 +26276,7 @@ "ts", "vector" ], - "contentHash": "b569634f62a146a743ffbcbac4e822a0bd4c2b04bef224884fa8e8bc146d279d" + "contentHash": "28d9b5ab01c643d2548ccca739a6b98f102d7662e0c86b2223bbeb4fc93237be" }, { "id": "module:packages/memory/src/vector/index.ts", @@ -26201,7 +26328,7 @@ "ts", "vector" ], - "contentHash": "1da14a030d8ebdc7f2714ba1f13696563e4c9e0f62a5412b1f01fb2ce6ddc8d2" + "contentHash": "bafe0611feda28ad89c428981d921ff7cffd7acec8a3861d4b4214830fbe5a02" }, { "id": "module:packages/memory/src/vector/mongo-atlas.ts", @@ -26218,7 +26345,7 @@ "ts", "vector" ], - "contentHash": "c195b6d8518ba8a0424c830819a13ffef9bb80937541b0a89e25ac016ee8ec2e" + "contentHash": "8cf88f0a80d40f4cbd92885adb80724e57089257388d1c60a9521fea5a5a9161" }, { "id": "module:packages/memory/src/vector/pgvector.ts", @@ -26235,7 +26362,7 @@ "ts", "vector" ], - "contentHash": "e151645ecde32fe9e95512a457299abced6ab8fe65a96029c9e98475dd30b596" + "contentHash": "8dd43956b235380caa4b0e3a64054121f3d364688c6f46f480b8bd0fc78a3ead" }, { "id": "module:packages/memory/src/vector/pinecone.ts", @@ -26251,7 +26378,7 @@ "ts", "vector" ], - "contentHash": "d3e6fff4e62546d77805b3f74cecfceac41818d90378533940d1dcf812c2763d" + "contentHash": "cce054dc7ba74bec39467e77fc7744ce499eabd39a8525c9a275726b1d1f4937" }, { "id": "module:packages/memory/src/vector/qdrant.ts", @@ -26267,7 +26394,7 @@ "ts", "vector" ], - "contentHash": "f20c12a7132c53a0fceea4438deb9d56b6c5a97edd93a24a26751267e3e5c60f" + "contentHash": "f3006fb9618fb79259347d5c58184855c0e431cf1b8ab56deea413f7e59e34ed" }, { "id": "module:packages/memory/src/vector/supabase.ts", @@ -26283,7 +26410,7 @@ "ts", "vector" ], - "contentHash": "8215cb7633f68e5d18e5ea6bfe182a80435347782972d61deae885976ae8d5ae" + "contentHash": "5ebcebab951c961394f454189580eb6729c6e912c9fad70ae0d2265c0147416a" }, { "id": "module:packages/memory/src/vector/upstash.ts", @@ -26299,7 +26426,7 @@ "ts", "vector" ], - "contentHash": "1544ae086d9170cf584b23a8b7fe6c403cd3d8402a2c0543a1f6010073059a22" + "contentHash": "ca4ed0bbadb2f75a052d26b30a5fe21fb2d62dfeef4a182a4e06f4418f70b65e" }, { "id": "module:packages/memory/src/vector/validation.ts", @@ -26330,7 +26457,7 @@ "ts", "vector" ], - "contentHash": "ac72698bc70f734081f22b8fe56e056a8d435192014f6921e187795e037974da" + "contentHash": "ef027c13e34bb35c9351b00185ae3c095786e0527694e6a8ac162ff504193e20" }, { "id": "module:packages/memory/src/web-storage.ts", @@ -26348,7 +26475,7 @@ "ts", "src" ], - "contentHash": "0192c1d0ea55d523d98f5111e8cbf8fd994e546466a0085b6e79e6dfa02230a4" + "contentHash": "28d7c7ea439cf23e67534db856f87069050224cd3bc3fa97c75eca3399c2a027" }, { "id": "module:packages/memory/tests/cancellation.test.ts", @@ -26597,6 +26724,61 @@ ], "contentHash": "3553abb07e10e9d2be3572f187586fe417215a0860584f23d0cd71c604b094c1" }, + { + "id": "module:packages/memory/tests/postgres-contract.ts", + "type": "module", + "title": "postgres-contract.ts", + "path": "packages/memory/tests/postgres-contract.ts", + "symbols": [ + "postgresContract" + ], + "tags": [ + "module", + "ts", + "tests" + ], + "contentHash": "a8c66124e88878f04d42750e5545fdb7c1103e5cc3a442a3e216ca4c14c53c5d" + }, + { + "id": "module:packages/memory/tests/postgres-worker.ts", + "type": "module", + "title": "postgres-worker.ts", + "path": "packages/memory/tests/postgres-worker.ts", + "symbols": [ + "default" + ], + "tags": [ + "module", + "ts", + "tests" + ], + "contentHash": "d0f70be39cd7f2f3cc2ef337374e77875c50edda2418fe5a84a40587ae5e4b57" + }, + { + "id": "module:packages/memory/tests/postgres-workerd.mjs", + "type": "module", + "title": "postgres-workerd.mjs", + "path": "packages/memory/tests/postgres-workerd.mjs", + "tags": [ + "module", + "mjs", + "tests" + ], + "contentHash": "c0aeb1f7fec006b78137c599a0bcc4c2a2def95eb647914b3009c96da1cb1a43" + }, + { + "id": "module:packages/memory/tests/postgres.integration.test.ts", + "type": "module", + "title": "postgres.integration.test.ts", + "path": "packages/memory/tests/postgres.integration.test.ts", + "tags": [ + "module", + "ts", + "test", + "tests" + ], + "contentHash": "4eb6ac84dc737b33cec36c640d92ac31de6e2b228b8a97923a484ce5f5a1c457" + }, { "id": "module:packages/memory/tests/redaction.test.ts", "type": "module", @@ -26779,7 +26961,7 @@ "ts", "memory" ], - "contentHash": "a85a5005f4ebd5303b7d9e9c43d228cf4596b5258e206ec5c53520db6242f876" + "contentHash": "572be3c9adb9dc621e3e7bc6bc11fd319fe6816d897a14551422cd33d6db8103" }, { "id": "module:packages/memory/vitest.config.ts", @@ -26826,7 +27008,7 @@ "ts", "src" ], - "contentHash": "43dd2bb58ce923e8b92f86173c73ffe7d7991439c0598fa1493aca05b66746a9" + "contentHash": "fcbc410066983fbc3f0feaf509472999746f0e1891a81d4cbe594b60a2d78f70" }, { "id": "module:packages/net/src/body.ts", @@ -26844,7 +27026,7 @@ "ts", "src" ], - "contentHash": "1766afe42910c4d3aa8efaf4023490f337e741dfc1d43fdf9e99d8ca94b3e073" + "contentHash": "1bfe4631020e3a1eceaae015e9d7456d508d5b19d08d320e9d6933a46d8ec5e2" }, { "id": "module:packages/net/src/errors.ts", @@ -26863,7 +27045,7 @@ "ts", "src" ], - "contentHash": "d413ac94db37bbfbc1abbe14feeb5dff4161d6378bd0ea6b5ebcd8eaa8132551" + "contentHash": "bf80787a2e59a9ffa5a61510acd4aa835d4312938e903e298e0ef9c1e93a2295" }, { "id": "module:packages/net/src/fetch.ts", @@ -26879,7 +27061,7 @@ "ts", "src" ], - "contentHash": "921a8e3c18e7522681e25fca00ab7f406b9b23eb1f9946162537e09c7f7b97cd" + "contentHash": "030252af951f8efe27462653dac753aeddbb58625321d0ad2cd3273f54ddebc3" }, { "id": "module:packages/net/src/index.ts", @@ -26948,7 +27130,7 @@ "ts", "src" ], - "contentHash": "f6737e9dab88ade4bf6056be2d1d82a429f8b317713cb913e6bf8a00489fa244" + "contentHash": "edb98dac830183d3bef9c64873835557389be2a2a2e5a7d6fe3e6f7092c78a81" }, { "id": "module:packages/net/src/rules.ts", @@ -26982,7 +27164,7 @@ "ts", "src" ], - "contentHash": "1c792bb438f87b9fa23284b7a932f90d82d0e282572479f1b092f4abc7c1db31" + "contentHash": "aa6231cb042cfc4f8c951970891822708d7c011e94279fd90d31df1ec6a080c8" }, { "id": "module:packages/net/src/timeout.ts", @@ -27118,7 +27300,7 @@ "ts", "net" ], - "contentHash": "2a65155d0166ce4f251a033a0a0247ba73478c79608167c15f5f51195cde7079" + "contentHash": "a5a2dd47991e0a5bb339de25cd396318038027d55ed09a9b4f806cdf33db91ea" }, { "id": "module:packages/net/vitest.config.ts", @@ -27207,7 +27389,7 @@ "ts", "src" ], - "contentHash": "ad78bb1975facf8743cff5cdf7c65625e75be0e23e83c9fca4c358323f4fdc95" + "contentHash": "9602218d87a1b61aced1a8725d67c1776ef248a93698b14571c622791415e5a5" }, { "id": "module:packages/observability-langfuse/src/langfuse.ts", @@ -27224,7 +27406,7 @@ "ts", "src" ], - "contentHash": "3700930621ea3f8d27839305b34abf494a6826882d36ad67d4892da53536ebac" + "contentHash": "b68a1d25e4cbb6027d034821c964e7d1f14920c0b063446d05b846384c10e934" }, { "id": "module:packages/observability-langfuse/tests/langfuse-missing.test.ts", @@ -27291,7 +27473,7 @@ "ts", "observability-langfuse" ], - "contentHash": "3005ef00e2bba37ee66f6b21258c5559017a025057dbf569047bd29ae4b84bf8" + "contentHash": "b037b2a62a5e0e747cc0d6a9ee764cb0027fd1e6cf218159217f3370181786ed" }, { "id": "module:packages/observability-langfuse/vitest.config.ts", @@ -27344,7 +27526,7 @@ "ts", "src" ], - "contentHash": "dd63c40380c4a3e644939a114aec8e0030fbada9e41ccce71edf73fd2d4345fb" + "contentHash": "e66daf7a6e96a85017c754f2e08edb0bf142c863215a81fd7d409741dad5f374" }, { "id": "module:packages/observability/src/axiom.ts", @@ -27361,7 +27543,7 @@ "ts", "src" ], - "contentHash": "98f27a0e798ae667a431fb5d0c673c351f7b68b3446beeae68862dbfefca9191" + "contentHash": "c8ecf5b8a5f8a57d95d2294164e5fee2cb99f3f5dfde256d56c858b1c1e61bc4" }, { "id": "module:packages/observability/src/console-logger.ts", @@ -27377,7 +27559,7 @@ "ts", "src" ], - "contentHash": "fd14d58fc43be31fc1a0c4ba166a4b804f5638e19f32a37bb37fd08a5d03aa23" + "contentHash": "e9b88d41850ecf1384beef2a12387a6c42ed00747c661d935c95e63b2391e5ff" }, { "id": "module:packages/observability/src/cost-chargeback.ts", @@ -27398,7 +27580,7 @@ "ts", "src" ], - "contentHash": "ac466e273bf7e496b43e53bd7444256352a06f4fa3f35dddd1ca890d04c0c117" + "contentHash": "ca22cd4f581e8bbb88d66243de5d3eadef928f5913b4b0c371e8bc6544d2af21" }, { "id": "module:packages/observability/src/cost-guard-advanced-internal.ts", @@ -27445,7 +27627,7 @@ "ts", "src" ], - "contentHash": "e79e329cc7c347744ef7ade7562014098e438c47f4c218bfce419eeadb06dd19" + "contentHash": "4b4343b1366f4405400fb2d7155e11b84702cee443666f45c20d400511cad29b" }, { "id": "module:packages/observability/src/cost-guard-advanced.ts", @@ -27472,7 +27654,7 @@ "ts", "src" ], - "contentHash": "b0f7970cc7620674800f2e834e3224f9e37f36ee41ad30101909d94f6f10c969" + "contentHash": "07048e517735836b3d0391c846119b17d3e49fe5279d9fcf9068cdd43256d6e8" }, { "id": "module:packages/observability/src/cost-guard-alert-sinks.ts", @@ -27490,7 +27672,7 @@ "ts", "src" ], - "contentHash": "8e76b2071aad84a93fc4207bca544d43070c40f6cf96d96d5497dee44ac1e7bf" + "contentHash": "2c06078b93de4480b2d4b62e449c0eea02e44a652d06145e84dfc4c6fc2cd619" }, { "id": "module:packages/observability/src/cost-guard-multi-tenant.ts", @@ -27506,7 +27688,7 @@ "ts", "src" ], - "contentHash": "4a5d9dc1a1748a6ef11c9e22a6ef4f09e5534ccc805d1b397487a344efa0762e" + "contentHash": "6721ce5463e504d1d2f343897677dba248b3594ea4fbb331229854e75b808d37" }, { "id": "module:packages/observability/src/cost-guard.ts", @@ -27538,7 +27720,7 @@ "ts", "src" ], - "contentHash": "72c6ea833ffa13fe62c3fb69d627680598eb3a765aa5dc8787f5eca5681e9a76" + "contentHash": "349e02829af7a7907cc897a9aae0598e3383e91726d53ded4ae351a68670e737" }, { "id": "module:packages/observability/src/datadog.ts", @@ -27555,7 +27737,7 @@ "ts", "src" ], - "contentHash": "61a69a27de83c4a43bf3b46f9505266633036cf993c219fd92280edf8a763801" + "contentHash": "39211a58fe83c597ee17f1202794b3a6af198545c3802809307460e6c0119f85" }, { "id": "module:packages/observability/src/devtools.ts", @@ -27575,7 +27757,7 @@ "ts", "src" ], - "contentHash": "ee225df25f9cc6d8d524b31ac0487ce20d12954f34b5995d4fba48dc3eb7dc84" + "contentHash": "e38613ec3d96f48382a7a164749fdbf2365eb4a5735b6a0ea50c742f5237a24f" }, { "id": "module:packages/observability/src/http-batch-sink.ts", @@ -27748,7 +27930,7 @@ "ts", "src" ], - "contentHash": "af20fe8fe6c3b734d5149da575db2190d96bd2fc254a7f12c2a2bbb4ff4254f7" + "contentHash": "8ad621c87f47ad0cec10d393bac8ddee4e314866ef2b81f9144a8871e672752c" }, { "id": "module:packages/observability/src/new-relic.ts", @@ -27765,7 +27947,7 @@ "ts", "src" ], - "contentHash": "34af982d17c413b3d35d9ab388da8d4406d574067b8cc5fd6316864e9300c924" + "contentHash": "05eba70cb1831453c9964b9fb97907746f51034259d78da55fa30e5a17a11149" }, { "id": "module:packages/observability/src/opentelemetry.ts", @@ -27782,7 +27964,7 @@ "ts", "src" ], - "contentHash": "0e36a98d0d629d11fd1280198b184d5864543db54a0bf220d94a5b3f78bc6bb5" + "contentHash": "1a3b7f76dd711d5eb0764274c557fed4a5d572e33cfedbb096a9b2b65b3b6b08" }, { "id": "module:packages/observability/src/prod-control.ts", @@ -27802,7 +27984,7 @@ "ts", "src" ], - "contentHash": "4c6096cc939d7a52784d580074c3a35c32028f74783d4f1cb481e39ee1ab0444" + "contentHash": "69eff4c45ab7c829891b310704a372bd8f8bc11f5421f384a233e56ed862da4f" }, { "id": "module:packages/observability/src/redaction.ts", @@ -27819,7 +28001,7 @@ "ts", "src" ], - "contentHash": "74c3b38b42412a67493a9fe03fa600692b09cabc4718d86d680c1e2fb3ccfd69" + "contentHash": "d92d52d424aa516ec02b6cfb8031f945c147c589cc621c5d03860101630acd27" }, { "id": "module:packages/observability/src/replay-bisect.ts", @@ -27837,7 +28019,7 @@ "ts", "src" ], - "contentHash": "3531e9cd1b1e72cb73c175fbb70de89ad99d7cadd1de8157b5de94b65c5005cc" + "contentHash": "556e9731852eca9af39b0ef997b77702111360eda30959bc22066602b02d119e" }, { "id": "module:packages/observability/src/replay-timeline.ts", @@ -27859,7 +28041,7 @@ "ts", "src" ], - "contentHash": "0ab4a84fe18275ba346e06c4f243c9a6ce1d3c00d307ffc70dee86905df8b89e" + "contentHash": "f39c8d23d34d0cbef6a59f49a3e8b6b65ecb283ab3ed0d9893265c933dde8995" }, { "id": "module:packages/observability/src/replay.ts", @@ -27875,7 +28057,7 @@ "ts", "src" ], - "contentHash": "4e51b1b03035ef3b781fae68330a76403dd45ea43475804617d5f2c3185e5b07" + "contentHash": "b00b434f9276a92be1e496eeb684d2aecef4e9c53a14621a2aff032570a1bd04" }, { "id": "module:packages/observability/src/slo.ts", @@ -27895,7 +28077,7 @@ "ts", "src" ], - "contentHash": "bf3c1c9b8bd85c78d6f09bfa21692eb653580d772c3ad2fd24d5fa6859330434" + "contentHash": "bb03e778593c9febc0d2055dc83b134056ec9466703e86d257fcf7d7d083a4fc" }, { "id": "module:packages/observability/src/token-counter.ts", @@ -27935,7 +28117,7 @@ "ts", "src" ], - "contentHash": "53ba62220b72281aad7c523bc2c52983e7e733f4a7c90e826c0479633e2c643e" + "contentHash": "ee1f153ae9840c77d0435fd8c9429baa712d49dffa542fa1c062ac0635f82c79" }, { "id": "module:packages/observability/src/trace-tracker.ts", @@ -27953,7 +28135,7 @@ "ts", "src" ], - "contentHash": "46d6fe4c9c75521c4dd7cbf36f6c015da906a05fb7fc824fbcf436e5815cd399" + "contentHash": "f9ea24c7bb6701d458d48da4ccd2643ee94a9fd073d0c082ee681d508a779460" }, { "id": "module:packages/observability/src/trace-viewer.ts", @@ -27972,7 +28154,7 @@ "ts", "src" ], - "contentHash": "992246fcf9c3b1d4eb0a0b413ff74dceff294604c2abf45d69dc21f08afe7f2c" + "contentHash": "13aa5bd38d33e9f32c030ed102735222a407ddcecb44e198b0404c914cb84ab2" }, { "id": "module:packages/observability/tests/audit-log.test.ts", @@ -28312,7 +28494,7 @@ "ts", "observability" ], - "contentHash": "64bb87b2040f6e9873a1c335587e94351300a596815054fbda4afb7e63875d58" + "contentHash": "a113333f9e05e5c05e240aab56326896c5938cad85959a208fa086f5c1ba89ce" }, { "id": "module:packages/observability/vitest.config.ts", @@ -28355,7 +28537,7 @@ "ts", "src" ], - "contentHash": "94c1dc42cff0a6b10b8f9eb3d32aff4d6da41b7964a233c0954cbc9b44c15ef5" + "contentHash": "13a07fe66816c11cb053b1ca7b8fa35499ff315cea3f45a095cfebc7fef0c276" }, { "id": "module:packages/rag/src/errors.ts", @@ -28372,7 +28554,7 @@ "ts", "src" ], - "contentHash": "4c2fb8e87d3c5185e9ec9f201025407464e5febe7b369d78851969605055e7c2" + "contentHash": "083d64b7c1f2521933c33b73d01de776f825e5ae8001fc28fadfb4d941e63e4b" }, { "id": "module:packages/rag/src/index-node.ts", @@ -28461,7 +28643,7 @@ "ts", "src" ], - "contentHash": "6ec4db47f8d7c8b25c24fd9da89f9bd3f37c2a92bbcfbdac7b7e371ddb14999e" + "contentHash": "5b2987840b7ce869ef74abb760ef2729ba6f62e96cdc1b20fec947aedfe32b2f" }, { "id": "module:packages/rag/src/loaders.ts", @@ -28519,7 +28701,7 @@ "ts", "loaders" ], - "contentHash": "8842c2d99d5f025e8270a4397ffe2f896e1005dedf1ed993b5490631f8c65ddb" + "contentHash": "dae2c9bd6f66379a4bb9e100816f3aeb67deb5b5eb4a4ced404bac54ab45d3ab" }, { "id": "module:packages/rag/src/loaders/documents.ts", @@ -28547,7 +28729,7 @@ "ts", "loaders" ], - "contentHash": "067c63076602f36a32db29a5d2f8487c9aae3cb30c413172a2bb2fcb9ba7c6a3" + "contentHash": "ce3f0a266d4a757fd658352a386a617fd6c764239caec433f04c648ed476db84" }, { "id": "module:packages/rag/src/loaders/s3.ts", @@ -28564,7 +28746,7 @@ "ts", "loaders" ], - "contentHash": "81047916a0c69926e3149602133d6eda13b37dc65f8d49709eb2f3ac4c5b2010" + "contentHash": "684be1a0e79bca93e834c3edf9f4b42a5cbc274645ef8484d4205a58cecaba2d" }, { "id": "module:packages/rag/src/loaders/shared.ts", @@ -28592,7 +28774,7 @@ "ts", "loaders" ], - "contentHash": "b160b82bece8bf9e9b2e41adaf72a0fad2dc3d67eff0394607b668a433f25f37" + "contentHash": "ba9ef05bec6dc1602a396e9f807fac73391d96c45a1633cbc73c74ad1a169f26" }, { "id": "module:packages/rag/src/markdown.ts", @@ -28633,7 +28815,7 @@ "ts", "src" ], - "contentHash": "9e33c78838c91bc32b6d7b38ddbe776936e61c74d8bc76c1790d4d79e567d5dd" + "contentHash": "8267dcd08c65236a8225c89ced66bd61fb2632c280120f04e5931f5ca942682f" }, { "id": "module:packages/rag/src/rerank.ts", @@ -28655,7 +28837,7 @@ "ts", "src" ], - "contentHash": "7a6b5c391c03021dae8bf7984b94852767b0ead0b2c962eddb81f0c358229faf" + "contentHash": "eb247a2269501c8667397a78e3b8d5766f70771f1afdb7c0b6250154cea164d1" }, { "id": "module:packages/rag/src/rerankers/index.ts", @@ -28689,7 +28871,7 @@ "ts", "rerankers" ], - "contentHash": "276f3b5aa9f72f823ea4228a2907f4c1f0b5a061e9fa5bf2b8050f3c50f90232" + "contentHash": "9450eecfb7c3cc3f60b98dda2d64cc4be501686a21f76e165616a1e4c454dbd7" }, { "id": "module:packages/rag/src/rerankers/voyage.ts", @@ -28705,7 +28887,7 @@ "ts", "rerankers" ], - "contentHash": "f87152dd3b41bd7dc09757e84811808ade6174f1d410545e296a66dfa75423fd" + "contentHash": "a95c40b953635606c3e3dd8c19da0f2bf8443a80db71240cdb5348164694cafd" }, { "id": "module:packages/rag/src/types.ts", @@ -28722,7 +28904,7 @@ "ts", "src" ], - "contentHash": "df3938f9c90fb4ae2df08edaa23ea9a7f714ef9db10059cef8d176d0de70b090" + "contentHash": "e3258bfef200783bee6fdb8e8663484ed5b6a6af9d05ba6c67e3a7f374806401" }, { "id": "module:packages/rag/tests/chunker.test.ts", @@ -28921,7 +29103,7 @@ "ts", "rag" ], - "contentHash": "45dd8d98a64c8512ea8a78bec9b30de88374cf1b21207439525ccfe171f316a0" + "contentHash": "e7180974aa5ecb6f1339d8bffef10d7416fe60dbad82d9b7ffcbea5108bac578" }, { "id": "module:packages/rag/vitest.config.ts", @@ -28981,7 +29163,7 @@ "tsx", "src" ], - "contentHash": "506fd4723adc285a0eb402816dddcfc524098894c0d1297f77b86584c09a1137" + "contentHash": "6769c62fef2158bea240d77b4815fa935c691abedbda89de1f975a102d264753" }, { "id": "module:packages/react-native/src/index.ts", @@ -29027,7 +29209,7 @@ "ts", "src" ], - "contentHash": "ccb2e61c5c4da537e2e0ae4aa1f70fadda57a6c466d929e0bbf044c9e73412f8" + "contentHash": "a88bd216ce66f3105b86bafd189410c0857f49d791b352cfe7f010c73db9955e" }, { "id": "module:packages/react-native/tests/components.test.tsx", @@ -29100,7 +29282,7 @@ "ts", "react-native" ], - "contentHash": "8bb57a4ec400df2626c4adea15a8d0e1667b43d994b992477e035dc8ef78b6ed" + "contentHash": "3d4b1b7803c468e1499871aef94728b7f3f5a1b73ac752e9aae5c2a839a84538" }, { "id": "module:packages/react-native/vitest.config.ts", @@ -29146,7 +29328,7 @@ "tsx", "components" ], - "contentHash": "1d12da5754b5ad895f88509f57d68183fa8a76f4381be48a29dd149cea1b7607" + "contentHash": "d25edc7b1af241e97bc8dd294d250721fc2381b54c6ac821bf489e0f652a5254" }, { "id": "module:packages/react/src/components/CodeBlock.tsx", @@ -29162,7 +29344,7 @@ "tsx", "components" ], - "contentHash": "802ed3db28ea706a6a8aa605d9ce10eba6912c110101ec60a8688ef046b1d49d" + "contentHash": "b9af7bf45d117ce55d11d5caea69b285e76529c3ab3ffad44c1384089e539d97" }, { "id": "module:packages/react/src/components/index.ts", @@ -29214,7 +29396,7 @@ "tsx", "components" ], - "contentHash": "96bfdf7e54d44676bb66dbc9d8ca551f774ea4176dc2e1bf05a28bc1e7da5761" + "contentHash": "cb2d7b567e81467a1f8288c3cb53af4490db98c368ed8269a842ca7309b3febc" }, { "id": "module:packages/react/src/components/Markdown.tsx", @@ -29230,7 +29412,7 @@ "tsx", "components" ], - "contentHash": "ef212e8fe08f67960d4e4c7168b78cc598fe845edafb36b2f38f8a722ab0f1cb" + "contentHash": "836f5a4fa8ea987157b21ab8b4b8347df86949398d6daecaa14301119de5c053" }, { "id": "module:packages/react/src/components/Message.tsx", @@ -29246,7 +29428,7 @@ "tsx", "components" ], - "contentHash": "dde8e67ed8169d30dd7cbe8e0a9d86c91d59a178a0859ea04fd753b2d6d6d40e" + "contentHash": "31ff8bb20626926aa08c6da788d66e9ce7bd679597f284b0b90626cf06ccef4e" }, { "id": "module:packages/react/src/components/ThinkingIndicator.tsx", @@ -29262,7 +29444,7 @@ "tsx", "components" ], - "contentHash": "fec7ed17ac9d5cac9df25de7699587f4f10fbd2471823be1c3fc0e2788c4dd49" + "contentHash": "8bbb3e90a420001748ddee596aa561d7af57b45ff4b518f00d4b7abfc16ffef0" }, { "id": "module:packages/react/src/components/ToolCallView.tsx", @@ -29278,7 +29460,7 @@ "tsx", "components" ], - "contentHash": "7d0233621e2ccbc9a454004d64719910dfa4c6fa68b9144314539487a34d80a4" + "contentHash": "dc62c74e18a47cd60471b09ac763ec520d556ea5eaac51faa30173859612c46e" }, { "id": "module:packages/react/src/components/ToolConfirmation.tsx", @@ -29294,7 +29476,7 @@ "tsx", "components" ], - "contentHash": "863bcecd4025453b13e7d9c11855d0492c04e96c33bd2bbae42a1d6f10eb1fcd" + "contentHash": "c7a053a16f9efe15ea85f8035d01f659505355856c67300df86477de09244b7d" }, { "id": "module:packages/react/src/components/TopologyGraphView.tsx", @@ -29314,7 +29496,7 @@ "tsx", "components" ], - "contentHash": "5dc7368e103456e8e958b067484136dfdf356f98279f0f32d35b492a0321001c" + "contentHash": "168f27ce463b0dc87ed517f34b1d2c3aa5ad05b2bc4d5f2b347cc1e8283213d1" }, { "id": "module:packages/react/src/index.ts", @@ -29385,7 +29567,7 @@ "ts", "src" ], - "contentHash": "e76f698fe2d882b24c76794095dc092c82425bfc2b7e4215f19946813c3c8e50" + "contentHash": "04d3f7e27cf833e2ae92c2ff67e2cc0c50030c212dd58b999391d7d81936c90c" }, { "id": "module:packages/react/src/useChat.ts", @@ -29400,7 +29582,7 @@ "ts", "src" ], - "contentHash": "95a6b5b46c07d8ae91622a924faafb568038b8864fea066cff00c1d6392a17f3" + "contentHash": "2aa4603bb07f840a66bf557b00182eea32b7569e04e2f58958c090e25389115d" }, { "id": "module:packages/react/src/useReactive.ts", @@ -29415,7 +29597,7 @@ "ts", "src" ], - "contentHash": "d706f03d8f41e727fd6b78a234345f73b67ff3e7b4ac58107ce7f0b162e68b9e" + "contentHash": "5a63604087f2e4ae14b567a55fd0873ab3d675b3fd1b05caddea9dd6e2a740d0" }, { "id": "module:packages/react/src/useStream.ts", @@ -29430,7 +29612,7 @@ "ts", "src" ], - "contentHash": "92a900a64a2380257bf0e4ac1dcc1cac15b991e02e09030633229fe18dc037f1" + "contentHash": "a3810fbbf1ff6553bb5d573ea46272445a4d7577cbaedd894e450f8345d384c9" }, { "id": "module:packages/react/tests/components/ChatContainer.test.tsx", @@ -29626,7 +29808,7 @@ "ts", "react" ], - "contentHash": "d00398e97617a5611fb0e8488176d6d897db2fe075dc6af1cac4442a46d9686c" + "contentHash": "c92248b21fc5dba6bf8e48caf4701dcd68b4dd760be8222b24c156cc4c521386" }, { "id": "module:packages/react/vitest.config.ts", @@ -29678,7 +29860,7 @@ "ts", "src" ], - "contentHash": "46eba8b0c3918c4d67f42a8411e0f8d417ab4b20f3047b692f08ae1b7322b368" + "contentHash": "0f26df976567abf33706c23fe9790d3dc8907e8b1020601d4344c8e9bab950eb" }, { "id": "module:packages/runtime/src/chat-trigger.ts", @@ -29709,7 +29891,7 @@ "ts", "src" ], - "contentHash": "1973d0154663b014c0e47b6cc736c214960d37826c90a76b4e384dd6fa3b8816" + "contentHash": "990d45822ccc6db1088742a1b0e3415d31b751f84f03693d86f45255fc7c0d47" }, { "id": "module:packages/runtime/src/delegates.ts", @@ -29746,7 +29928,7 @@ "ts", "src" ], - "contentHash": "d9387b086ebff5a6a3dbb0416a23e960c0c722f186a13d2e857923d452833060" + "contentHash": "8b6efb1c39a267d982027ebc5059b8a80c1425a7cb57b1910a5a6ae4a77d7faf" }, { "id": "module:packages/runtime/src/flow.ts", @@ -29774,7 +29956,7 @@ "ts", "src" ], - "contentHash": "383767e0679de833710f5efd474ea7947d765ffdd7b050de4e0b5a79ead9af5d" + "contentHash": "9a4b4bd1762de16aaec54e26beda075da9d5d96c11a58392c0f7886a1deac790" }, { "id": "module:packages/runtime/src/index.ts", @@ -29930,7 +30112,7 @@ "ts", "src" ], - "contentHash": "bc219dd69a06fac10cac4bd4520b61388133e17a2807ff0493bbe59a0ced56e1" + "contentHash": "eddfeb3cb80f4cfda723e5dfe9bd92103425852fd30be43bff48e260ac60fe74" }, { "id": "module:packages/runtime/src/multi-agent-compare.ts", @@ -29948,7 +30130,7 @@ "ts", "src" ], - "contentHash": "c52bdf176a8af603803b3276f3ee9732c89221d8e19d5707e2a4777736f75b4f" + "contentHash": "8f2718999602bb8b985b12c07810efdb5897c185189a855827bf35d3f90d8db0" }, { "id": "module:packages/runtime/src/multi-agent-debate.ts", @@ -29964,7 +30146,7 @@ "ts", "src" ], - "contentHash": "2dda8e92c4817626660ac96b975414c6f814abf2455f5deb48d99acd6b459aa4" + "contentHash": "70cd596c9bbd74b73c67c6eb6e7f8c6ba270562ed717470365c854797f0927d3" }, { "id": "module:packages/runtime/src/multi-agent-vote.ts", @@ -29981,7 +30163,7 @@ "ts", "src" ], - "contentHash": "2c07ec1f7932499c14d27baa8da24ea88cc19ff4a89e28987dc946a8b56e50cb" + "contentHash": "0fa7208913e3988e13bd939b3a9c0864362c7231f628a76f72594fc0ed12d9d8" }, { "id": "module:packages/runtime/src/multi-agent.ts", @@ -30009,7 +30191,7 @@ "ts", "src" ], - "contentHash": "2148a7766d0a4dea63a61f5a22babab734c57453ab34f218e200be345225327a" + "contentHash": "946ebee689cdc32f09a7fd6a7df6fcb7476bd3eb462ff8d173e7be03886b732e" }, { "id": "module:packages/runtime/src/pii-validator.ts", @@ -30046,7 +30228,7 @@ "ts", "src" ], - "contentHash": "4303060928050166009b0a6cd181e54cdfd579de322c26a68ee2a4b80a8bea9c" + "contentHash": "f589b9214dde1d15609e04e3dbbdb70963e2e1c837a15d5855d33da1707a62b6" }, { "id": "module:packages/runtime/src/runner.ts", @@ -30061,7 +30243,7 @@ "ts", "src" ], - "contentHash": "03c97ac5e1e35b1485b547add18ed4f0c8ce84c9da4265d45b14d9c80b00dfda" + "contentHash": "8c212e27b70db22f97eb6739cae48eda15dba899fd6725caa6e121e0389463f0" }, { "id": "module:packages/runtime/src/shared-context.ts", @@ -30078,7 +30260,7 @@ "ts", "src" ], - "contentHash": "4700d3974500b92b0ac854c781090fc989c8704718ead1e8ed81f20a094d4da8" + "contentHash": "ced47e8d8adc805e609059f428839ab2cbb7125a5f33a1c80915662271a75dd5" }, { "id": "module:packages/runtime/src/speculate.ts", @@ -30098,7 +30280,7 @@ "ts", "src" ], - "contentHash": "fcf8d6dc0be266217dbc40571a5be489157c7dd5d34c08934da9346ac5ef3961" + "contentHash": "fdd762c46f271dc68a1dc49fb942418f2f7597e7f58d49bf5bf9ea2e92e6f998" }, { "id": "module:packages/runtime/src/structured.ts", @@ -30139,7 +30321,7 @@ "ts", "src" ], - "contentHash": "37807da34695aa84a8babf74202e3dbbd85c6128f04cf9bb64c681000ccb0d39" + "contentHash": "5b43faf0ddbf0695ad24b3d48891b1dfba92adbc1a5dce65f51e1d6e8f27403b" }, { "id": "module:packages/runtime/src/types.ts", @@ -30157,7 +30339,7 @@ "ts", "src" ], - "contentHash": "223ae27bd3c9c5f19602d6091fd5ce4829c55e766792339cb2e1269620802e68" + "contentHash": "aaa6fa0b39d70a23f4bd48c066da11226e45ac5f2673b4d5e3313d6539c0e954" }, { "id": "module:packages/runtime/src/validator-guard.ts", @@ -30184,7 +30366,7 @@ "ts", "src" ], - "contentHash": "ab6c573bea63d1434713980732680dbaf747350108ed3c3c6929d3ec2d301a54" + "contentHash": "04b9639311039bdf91ce29388fbf7fa3c99cdedf9bba0d49905a1664a8c05a90" }, { "id": "module:packages/runtime/tests/agent-substrate.test.ts", @@ -30462,7 +30644,7 @@ "ts", "runtime" ], - "contentHash": "5861432568de29d8d1fa0e7b6b519102a9fb792f4f7c73917ebe910e8e41047c" + "contentHash": "ff1b794a35105c194e092262b91221eb9e23e8dc69d37d36629f1c2fe27a09e5" }, { "id": "module:packages/runtime/vitest.config.ts", @@ -30515,7 +30697,7 @@ "ts", "src" ], - "contentHash": "bae8b8304d6d73a226b881a1f7f5a297e699d621e7aa175382ce9d3968b11a08" + "contentHash": "58a15001d075ce2d43ac7950183d7c480bd1de8e87c414d666a423b9f1678f4b" }, { "id": "module:packages/sandbox/src/e2b-backend.ts", @@ -30532,7 +30714,7 @@ "ts", "src" ], - "contentHash": "ed1d8774705bfb915a47b3055921f91fe2734898c65c9516a0027d82cf2a4420" + "contentHash": "c784c40d98f9787663b453a1a9e64a09ac9a83337ad71445a411ccbab8f5bc3b" }, { "id": "module:packages/sandbox/src/index.ts", @@ -30613,7 +30795,7 @@ "ts", "src" ], - "contentHash": "a7f0b445d584e9a44785d809f2537236a39c8551a11431fae66214bb23b058fd" + "contentHash": "9d0672f47238a5cc2c2a74be648a14948a18e36ba0b5d52156b741b82276db85" }, { "id": "module:packages/sandbox/src/local-runtimes.ts", @@ -30635,7 +30817,7 @@ "ts", "src" ], - "contentHash": "ef47a37f7c6bf4f705ae5a1fc09a3712c3b1ac1e2f4184e6adbc82bd74be6020" + "contentHash": "6f063aafff7f3a4ee2b09343479b666cf97bfccc4822ee051bf71e6a040f8233" }, { "id": "module:packages/sandbox/src/local-sandbox-types.ts", @@ -30658,7 +30840,7 @@ "ts", "src" ], - "contentHash": "fb04d612fb060b998129077112167202903f4af0d9d1f028242c0fd7165b2cab" + "contentHash": "71f47e988c43a9b2f6398f840c374c2e9249e343c2b29d508f861ce7a097b934" }, { "id": "module:packages/sandbox/src/local-spawner.ts", @@ -30691,7 +30873,7 @@ "ts", "src" ], - "contentHash": "d3d7276a6c85cadaf28531fddd15cf9303debdebae333256808c5c3baacfa043" + "contentHash": "8954f0f80c48160bc565e4e4ea5b3612b5fafedd7f208c56df07d195f6f4dfa0" }, { "id": "module:packages/sandbox/src/sandbox.ts", @@ -30708,7 +30890,7 @@ "ts", "src" ], - "contentHash": "fcf60ac61131f6d64277d19e7be24d185ba658ecc234940c3f9bf7396b1cf1be" + "contentHash": "c9571a94db956ee98a67a9cdd54233b16e73714dc3845265d42b88e32b910ca1" }, { "id": "module:packages/sandbox/src/tool.ts", @@ -30740,7 +30922,7 @@ "ts", "src" ], - "contentHash": "a8082dd83ac85cbf3b5f982cfbc6ecea22f789e0b2de55a77e1238fa327f0981" + "contentHash": "cad991ba0fec9eee2d51eed46e2075b955d92fb12c2cca4fdb2c894a4cd8dc9e" }, { "id": "module:packages/sandbox/src/web/index.ts", @@ -31005,7 +31187,7 @@ "ts", "sandbox" ], - "contentHash": "7808c5ec47a3b002829715d90a40948629663ca0a822d117c448990fecf69598" + "contentHash": "58271b7289ba801fc54d7e8cecb16524f910c74568307b8e6121c6d8323595fb" }, { "id": "module:packages/sandbox/vitest.config.ts", @@ -31080,7 +31262,7 @@ "ts", "src" ], - "contentHash": "7ad37a7975428903042596cb22cc579eb98a6bc77ad3c163a14797d36331394a" + "contentHash": "29199902d126c48a90c2eac3722e2d20ba0e5b719ab0b4918c63da96e94b44cb" }, { "id": "module:packages/skills/src/coder.ts", @@ -31095,7 +31277,7 @@ "ts", "src" ], - "contentHash": "a6f25f31f2aa304f984bab1708c3e779d71e8610ee77c7b40e35ebab02375f1f" + "contentHash": "01696fec66c239d1097853ff6b122b78183eb39bfbfa9c6398791f85a918e7c8" }, { "id": "module:packages/skills/src/compose.ts", @@ -31110,7 +31292,7 @@ "ts", "src" ], - "contentHash": "600c532f64a440737c2edef3c6c259c811197698fec760be3e014a00f2c640ea" + "contentHash": "08a2e2e12b7604bbceb35ac28b928c54274051c9f5be0f22ce109dbcd1688a4b" }, { "id": "module:packages/skills/src/critic.ts", @@ -31125,7 +31307,7 @@ "ts", "src" ], - "contentHash": "a15b8049c64301ae4efae8bb51f63afeccb782d37f2a27852c5b902a0a775457" + "contentHash": "994d7f95ff3c2697950dc26021536ee03d758bd491442c2dc26d8d1c060619ac" }, { "id": "module:packages/skills/src/customer-support.ts", @@ -31140,7 +31322,7 @@ "ts", "src" ], - "contentHash": "769d4e0d4aac61181ef59da7d4c5a4900975a459c6c3492327cdc7183c496d53" + "contentHash": "4844324cbda2269c9b12763c96d81d4414aeb28e7dfb20b61a42b24067d0e427" }, { "id": "module:packages/skills/src/data-analyst.ts", @@ -31155,7 +31337,7 @@ "ts", "src" ], - "contentHash": "86ebe4bc868814fe9407c8915ac7f75ad81cea62368af7d5187b72fe037f5fc7" + "contentHash": "a7a7e7098e09e57d0151a00f5ce86f57bdee025a50749566d039be14d8bf263a" }, { "id": "module:packages/skills/src/discovery.ts", @@ -31172,7 +31354,7 @@ "ts", "src" ], - "contentHash": "f50eae9dd4269e64c1254036e2018132e4f3bfbf6849fdacdd5d3f5b501dd324" + "contentHash": "1eba2c18665634d2fb73b4d7fda89bd1fe4f393de1a5e39f5800f4166c7943fb" }, { "id": "module:packages/skills/src/ecommerce.ts", @@ -31188,7 +31370,7 @@ "ts", "src" ], - "contentHash": "2bb90ae4baf19b996f35b8ecb4dc360a8b8bff2c3791374a19c6e81de4a5a088" + "contentHash": "d87e427f633a4a994512b2bf1dbd587fa97d0eca26364f3ec3b26a66f539f6e0" }, { "id": "module:packages/skills/src/education.ts", @@ -31204,7 +31386,7 @@ "ts", "src" ], - "contentHash": "d350995b1b3e23e6803dbf9a54e0b665f0474547c67826f9cbae35982dddb5fb" + "contentHash": "c2919d3c6143e8b90f1bc6da497ee3cf3cc3e46320e2ab416cc8848174cc821c" }, { "id": "module:packages/skills/src/finance.ts", @@ -31220,7 +31402,7 @@ "ts", "src" ], - "contentHash": "8f5b44e3aa4debfe55a42f1cf1277f877ecaaf60e81876a05203dcaba3a4f79b" + "contentHash": "d4796a86632c330a599861fe3ea3071c09ed53b454f2ef247c17d868a7d5b4db" }, { "id": "module:packages/skills/src/healthcare.ts", @@ -31236,7 +31418,7 @@ "ts", "src" ], - "contentHash": "d2451c6bc17e48443455653e2127a6016289ac81294d58b126ca4f894c3198fd" + "contentHash": "1e646edf8a26d2a2ae7a1165761ee161019dcfa386065b6269cd0c1f44ea5f4c" }, { "id": "module:packages/skills/src/index.ts", @@ -31305,7 +31487,7 @@ "ts", "src" ], - "contentHash": "85cea1fe09498579a26d62d0140405d5321364f9797fd3ac7380a9c00fa17dd7" + "contentHash": "23316f8dea9118a57f13d712ccbdda33a09c6b4d34849217af7d83f7b1ea5f1e" }, { "id": "module:packages/skills/src/marketplace.ts", @@ -31326,7 +31508,7 @@ "ts", "src" ], - "contentHash": "6b4041b1de871452a403d37f9ed8d9421fe0341f1b08173c693a83a293558f64" + "contentHash": "758dc67c368493c77a8b9313d4d2a632f56cc4470b9081642c213344a2eac23f" }, { "id": "module:packages/skills/src/planner.ts", @@ -31341,7 +31523,7 @@ "ts", "src" ], - "contentHash": "eb6f2c49cf0f518efc65a2b645914c4efb239eb5094261f4135377516515f457" + "contentHash": "6b8071f9b1ad03a642d4e8bd0593c091586a46403045d6ce4a40bcc8d51384f7" }, { "id": "module:packages/skills/src/pr-reviewer.ts", @@ -31356,7 +31538,7 @@ "ts", "src" ], - "contentHash": "41f3ba7c36b74f38c3a1722d4e535ff60578a76eb81b3344aa733a10f39f08e5" + "contentHash": "32e7d32a4dd1b511e9e8372b6eeaaab2e2723cc57c327ce8dd64a5238586153d" }, { "id": "module:packages/skills/src/real-estate.ts", @@ -31372,7 +31554,7 @@ "ts", "src" ], - "contentHash": "7612ef6392a755ec4cc265bcb1ec35030d06969d6ae4ecb2123b5403e96db13a" + "contentHash": "d8d63399a68a9378394095fc3976e01186c9048792b3505e88ece639103c28dc" }, { "id": "module:packages/skills/src/researcher.ts", @@ -31387,7 +31569,7 @@ "ts", "src" ], - "contentHash": "90836f8cc68b0c87c794e68e044cff570d41d723500fdf72583fd3fdd7547988" + "contentHash": "c1d582c27be18f76839f7f770f127d6fb9618aa82150d7080f1388a8c3c1f5e9" }, { "id": "module:packages/skills/src/security-auditor.ts", @@ -31402,7 +31584,7 @@ "ts", "src" ], - "contentHash": "2d62a88f236ba89abed38178ef453ae05646f38bdc68ba68bf7960ca4bb55e77" + "contentHash": "acfd5bcce3aca40050dec37514ebd89780f6c1f2c8978647d84fb7d639c15ee3" }, { "id": "module:packages/skills/src/sql-analyst.ts", @@ -31417,7 +31599,7 @@ "ts", "src" ], - "contentHash": "595dc043af80c134e82a5f69b3c49303f58be0505b4cf5e69f0417df2f335867" + "contentHash": "1238badbc3fc6b8bdd773881dbc81dbad98c30934932eba24df4848978fe774a" }, { "id": "module:packages/skills/src/sql-gen.ts", @@ -31432,7 +31614,7 @@ "ts", "src" ], - "contentHash": "110acb468a9d7624af267dea3bdba27cf0618d861b59ce29026c8e7a024a3efe" + "contentHash": "190ccf5c3d45fc424e2f86adb6b33bc455bba544c6aa62aa54e145ffe8cc26c3" }, { "id": "module:packages/skills/src/summarizer.ts", @@ -31447,7 +31629,7 @@ "ts", "src" ], - "contentHash": "f3c8cd12af90268aecf8fa9529437ca64568efe5f50bbc56a28a515119bc7070" + "contentHash": "c7b2afe1a6e51fb6c76a6dc1159824d3ef63d9d091f7855770ced6c5c7235c3b" }, { "id": "module:packages/skills/src/technical-writer.ts", @@ -31462,7 +31644,7 @@ "ts", "src" ], - "contentHash": "933f6e89e60e10100ef787282d858aa0416a45dbae99d96a20cdbceb22affd79" + "contentHash": "a3b4ab1fae48c66ac09abe9b6d8562c54fa20cd57ee7342119ffb7c42e161fbc" }, { "id": "module:packages/skills/src/translator.ts", @@ -31479,7 +31661,7 @@ "ts", "src" ], - "contentHash": "93bf55f65d8a7090072091d2e4fb3ed080cd729851d780c861cf8e9bc6d1a175" + "contentHash": "7eb92b0144be5e761e24e3f0372011e2a1844b3238af1495a3bd05215beb79d4" }, { "id": "module:packages/skills/src/utils.ts", @@ -31688,7 +31870,7 @@ "ts", "skills" ], - "contentHash": "2a5330bf82ea4b7e1dddf7445151e0ff72be1bddae091b906e746cc52d395ad6" + "contentHash": "2cd06f22909f5a5747183b57768d18535b1525cc85e8bd621c0d7598e7995bd3" }, { "id": "module:packages/skills/vitest.config.ts", @@ -31734,7 +31916,7 @@ "tsx", "components" ], - "contentHash": "75336e37b993315cd95192507ef23c922c8859af8d999fbdba5a4774bc76d77c" + "contentHash": "0475616c2c83698cc67330db210214a43b5183d8e555aeb5db6050b7f45f9860" }, { "id": "module:packages/solid/src/components/CodeBlock.tsx", @@ -31750,7 +31932,7 @@ "tsx", "components" ], - "contentHash": "07b4cbaed940ba78224f13d15cd5cea7355ede8df438b90fb7ad061dfcdab1f1" + "contentHash": "f9012107ec198c6767803395f0d5ee82196cf79de8c56c0e6f09081591f91d38" }, { "id": "module:packages/solid/src/components/index.ts", @@ -31796,7 +31978,7 @@ "tsx", "components" ], - "contentHash": "c0d04672c6daf02871ac0fa11d3ff2781162cbbbd5f19f239dc07a20b2c83cbf" + "contentHash": "ba7e3cd4f6461cfe63429007def4fedd85eb082faacb3f4aa92f016e1f80374b" }, { "id": "module:packages/solid/src/components/Markdown.tsx", @@ -31812,7 +31994,7 @@ "tsx", "components" ], - "contentHash": "7f9b511e3354385d7568f2ba87d8984289a3f611cc5a53790d3d805195de38d3" + "contentHash": "e89a1154174ff736581f0482d2770a3eb225f528015c06def725e3fcaf2ad20f" }, { "id": "module:packages/solid/src/components/Message.tsx", @@ -31828,7 +32010,7 @@ "tsx", "components" ], - "contentHash": "4fa3ec15b84f16e0a3fbc9c6bb8c11344fda50e1322f9463dbf534b89ae14702" + "contentHash": "1ea368d0f0158a20a0038de7a520977f87635279aa60ef0a5f382116cb1d8827" }, { "id": "module:packages/solid/src/components/ThinkingIndicator.tsx", @@ -31844,7 +32026,7 @@ "tsx", "components" ], - "contentHash": "48ef04e1d713bf6da178fb0d611db3eb4875770bd9de05e84b9ee4bac8504044" + "contentHash": "7ba1df7f3b5fdb86d449e8ba08bf1e5bb80068f09ccdb42e80e5d9abf3d23158" }, { "id": "module:packages/solid/src/components/ToolCallView.tsx", @@ -31860,7 +32042,7 @@ "tsx", "components" ], - "contentHash": "a2c35bb3d9064ba4e96b6a0b69aed2c5f1680b363fa140dc56edae248b088b8c" + "contentHash": "3cbb40e501f379b207f4ccee862515098e3f38070248b494696305a7ff3a5658" }, { "id": "module:packages/solid/src/components/ToolConfirmation.tsx", @@ -31876,7 +32058,7 @@ "tsx", "components" ], - "contentHash": "954f39a491389e4a10bd92c36ecf3e698302ee909fa3db732318017d8db51c62" + "contentHash": "c527b65f9fadec8e0ee95cd79f8aa3aadbe91a10d6c3fee62d28ed129106d29f" }, { "id": "module:packages/solid/src/index.ts", @@ -31976,7 +32158,7 @@ "ts", "solid" ], - "contentHash": "0a712393b3990c039447d0edbc6514bcada8554d385b952da7d30b5ee645265d" + "contentHash": "b773b5c4ab0fcbed3980d48e99a85e940079f8839c65a749a66d73d74abab11d" }, { "id": "module:packages/solid/vitest.config.ts", @@ -32018,7 +32200,7 @@ "ts", "src" ], - "contentHash": "4a2ec4fb4214c6887301269900255752a7f04414d9dfa291b1d3ffa84a8c1312" + "contentHash": "3a6828c92f34f756203ec83d87594bc362e06f2741f3b2262087e87f97a44a32" }, { "id": "module:packages/statechart/src/index.ts", @@ -32096,7 +32278,7 @@ "ts", "src" ], - "contentHash": "a93b148f7eeeedf9eb8db2ccd6bbe6202cb1a4a5b8514c94ee8b4a3d09797e35" + "contentHash": "83e137540df6d11c28977352ae8c388c33627757695d841fb39ea3dc6f1e56f8" }, { "id": "module:packages/statechart/src/statechart.ts", @@ -32114,7 +32296,7 @@ "ts", "src" ], - "contentHash": "933d494e483df947cba6a8c290be798789167e738d9e672e38d8af1129b3145c" + "contentHash": "568661f113c121ccf5b6832581c6369556f5f53a2341f1c8b66fcbdc36188321" }, { "id": "module:packages/statechart/src/types.ts", @@ -32155,7 +32337,7 @@ "ts", "src" ], - "contentHash": "9c9b54e54a21c3e955c131de484a0f327e3fe48f3c46527730549e33f99e861d" + "contentHash": "d1d130c4653987b914fb0cbf6d1a6d856bc1aadb0c2ec0b225ac8e6cc42c4736" }, { "id": "module:packages/statechart/tests/json.test.ts", @@ -32222,7 +32404,7 @@ "ts", "statechart" ], - "contentHash": "e1790fca6e558e88486f3ba50c847b32be8bbb7b67d257db29b130b513a506d6" + "contentHash": "fd791a268e8b2d38684a9fa61f64d525779d6e10a93e1672118fc78d8bd96eba" }, { "id": "module:packages/statechart/vitest.config.ts", @@ -32264,7 +32446,7 @@ "ts", "components" ], - "contentHash": "39bdab922efad78b481cadaecdea356a42ff43f52e26ebec52b1687f9de38e16" + "contentHash": "7c84bfeb390c7dc290d0d52f7d760240e9ea5b2068c4a4ecd4610ff2f3e0443f" }, { "id": "module:packages/svelte/src/components/CodeBlock.svelte.d.ts", @@ -32279,7 +32461,7 @@ "ts", "components" ], - "contentHash": "ab9fea010d50de46ba998199608d05e033d65ee62480734c172f6f0a8fafab42" + "contentHash": "b65b92b359a73ee2cdfe839b077678071044157d063a8d93c9cb68bfe24fbd48" }, { "id": "module:packages/svelte/src/components/InputBar.svelte.d.ts", @@ -32294,7 +32476,7 @@ "ts", "components" ], - "contentHash": "38b70a4cff28e5017c6fd7774f63be6c3080664c6c5ed4a95e65de8e00828ac9" + "contentHash": "d61e85b2fa63e2c98cd06fb32183e403da0832c259e895d66268c93d924d740a" }, { "id": "module:packages/svelte/src/components/Markdown.svelte.d.ts", @@ -32309,7 +32491,7 @@ "ts", "components" ], - "contentHash": "91317b30ab88178f2ef59b80c8a5685f0464c1257426b89405bab348bc934b78" + "contentHash": "2657d9af43b334542049f5a8d0021887591116694bead438d17e1a0269813e3a" }, { "id": "module:packages/svelte/src/components/Message.svelte.d.ts", @@ -32324,7 +32506,7 @@ "ts", "components" ], - "contentHash": "e0e7aaef4878fd78fd3857c98602ad776ba2436e48c31b1eb4d9a7a7dbd7bf9b" + "contentHash": "8f1a6c233a612da34cb580bde49104bcdb4d7ac1a587b9c4163ae554c87e3c0e" }, { "id": "module:packages/svelte/src/components/ThinkingIndicator.svelte.d.ts", @@ -32339,7 +32521,7 @@ "ts", "components" ], - "contentHash": "d6206b3eced8590d444dc4098843d3bc71ba03a3235a3fba27696f381a7912a4" + "contentHash": "ea030756eae8de82c1090a82cc060b21db397da4c9f1b45f9fb9923016bf7de3" }, { "id": "module:packages/svelte/src/components/ToolCallView.svelte.d.ts", @@ -32354,7 +32536,7 @@ "ts", "components" ], - "contentHash": "09d59eb3fd8f047e5a5a0612168c5c4cc8718f36d60519de85eadfda663fbb2d" + "contentHash": "552263242d6da6f389d5677fd53ae83b7b1392bcc2e08cd0846eebe931d488d6" }, { "id": "module:packages/svelte/src/components/ToolConfirmation.svelte.d.ts", @@ -32369,7 +32551,7 @@ "ts", "components" ], - "contentHash": "584bc501671557e40077cd57561372bb4c33f9c04ff63b808940b5079ebbf008" + "contentHash": "41c63c1f5b3df8c89e4e9e106e792476ce2cbe52649ea93692165925a05b367a" }, { "id": "module:packages/svelte/src/index.ts", @@ -32393,7 +32575,7 @@ "ts", "src" ], - "contentHash": "81dbcd07e453900e9054327275bf2d356600e21d38e60e40bef645a3c83ed368" + "contentHash": "39980fd4c617067cb68239c641967a236b90ab4a0b62972e5b15ba08b4c9953d" }, { "id": "module:packages/svelte/src/svelte-shims.d.ts", @@ -32424,7 +32606,7 @@ "ts", "src" ], - "contentHash": "c5e00f018f1a90d59df8811e23e7a07f77a11a7b30163b771efe02020c9f6009" + "contentHash": "aac9fbfbe08346d6f5215895c704d8e76ac3d7801de4acf3a92769eba08f34c0" }, { "id": "module:packages/svelte/tests/components.test.ts", @@ -32742,7 +32924,7 @@ "ts", "src" ], - "contentHash": "e8a2c973b4ec18001cbff48911565bfb15c0ab12894d6354513913f684c28a06" + "contentHash": "4c512927a72d0e84d9d04ba4f2b25a045b8b2866da513c559f69df6596b75c5c" }, { "id": "module:packages/templates/src/index.ts", @@ -32790,7 +32972,7 @@ "ts", "src" ], - "contentHash": "c627186fe537c98cddea9100562dd70abf1af88b21cb531748a461dd6e8c3f70" + "contentHash": "38a56036c315d3b02d30442144985df0e342cd6e29e8291d9c23a1651b6b0afa" }, { "id": "module:packages/templates/src/scaffold-fs.ts", @@ -32831,7 +33013,7 @@ "ts", "src" ], - "contentHash": "d3bbfdb7fb3b4800a07dc2a2371ef6e7e4dec01a2c48f820eefafcf6b018070d" + "contentHash": "eddf055cf45eb451dd82d0bd698df0440455ca08ccd936839bcdebd8c3a726b6" }, { "id": "module:packages/templates/src/validate.ts", @@ -32848,7 +33030,7 @@ "ts", "src" ], - "contentHash": "f805a0e90012fff7efacde54b50be891ec52fb53ece11ba6d7d6f7e246a168c4" + "contentHash": "30257af0e4bf9a5abe73c4b244d1172129e5f88e127eff006772aaf8e9f0b62c" }, { "id": "module:packages/templates/tests/factories.test.ts", @@ -32915,7 +33097,7 @@ "ts", "templates" ], - "contentHash": "4d2a91f1dbcb0d99fc0d0794c30d9370aa5f6ca465c071e837e750b265ed6168" + "contentHash": "fd791a268e8b2d38684a9fa61f64d525779d6e10a93e1672118fc78d8bd96eba" }, { "id": "module:packages/templates/vitest.config.ts", @@ -32958,7 +33140,7 @@ "ts", "src" ], - "contentHash": "7b72f344adeccc86316737cbbc72f1fba85ff2ae6bf4add12e6810ea3d5f646b" + "contentHash": "8b0fbf02a1b669e72c5fb84fc49bc51a0b35079de2ebc82a9022064e0094a304" }, { "id": "module:packages/tools/src/fetch-url.ts", @@ -32974,7 +33156,7 @@ "ts", "src" ], - "contentHash": "33f2c4ec1e9632d122dce97e018c843caeb02bef7e75d63d9cce5236c8cc7b64" + "contentHash": "d66040a911be6ccd3934b2b75cd777aec45cfba2c24246128c7869aaab60dd21" }, { "id": "module:packages/tools/src/filesystem.ts", @@ -32990,7 +33172,7 @@ "ts", "src" ], - "contentHash": "7d8f3b0b376d88617730e72b8fb5e08785ab803dbe5ed7b0d624c39883f05b6e" + "contentHash": "a37361bfe69f0d66313a5112f0b995a3af25bfdf23ec1e88269bc6828b469d3a" }, { "id": "module:packages/tools/src/index.ts", @@ -33068,7 +33250,7 @@ "ts", "integrations" ], - "contentHash": "9dfb20b9c52750207be8ca15f34d18adefbe845472b064e412a0b49782a764a4" + "contentHash": "a7bc3f99c55cbbf90bd16dab933a9486bdadb2e254e877c1edb9d9934e8ce92e" }, { "id": "module:packages/tools/src/integrations/cloudflare-r2.ts", @@ -33093,7 +33275,7 @@ "ts", "integrations" ], - "contentHash": "1332a6016e80d9f14863225ba115ebd7868cdd4c1674ffba5471985fcaf5bbc0" + "contentHash": "b8b81fa85b681823acc0f13e5bff804d6b231d16445c7fd656c400a39811a99c" }, { "id": "module:packages/tools/src/integrations/coingecko.ts", @@ -33183,7 +33365,7 @@ "ts", "integrations" ], - "contentHash": "817461d16b24830ce09b7daa8d6b4c4937cfbb6a557be121e308273228e8bfae" + "contentHash": "61c52972a5004e71ed204ef985a9c68e77b2a4f767cbc129ff4fb2e17ea8bf69" }, { "id": "module:packages/tools/src/integrations/elevenlabs.ts", @@ -33733,7 +33915,7 @@ "ts", "integrations" ], - "contentHash": "9076ece7585f2136bfd453b86124520e89d91cb98419c129ecaa0c0c8a2fd89f" + "contentHash": "ca61eba9c93294b2f8ec95c5a420eaa574e0b0d71b1df2ffaab2b150814e2174" }, { "id": "module:packages/tools/src/integrations/postgres-roles.ts", @@ -33749,7 +33931,7 @@ "ts", "integrations" ], - "contentHash": "2a0474a66a2c6979bf4744c60a607c30bd8d8a01704eb2cff8f8b0709b7829dc" + "contentHash": "0381ab3bf41f5d405b51574d859231867b77a190132635e92104b0420cb6d61b" }, { "id": "module:packages/tools/src/integrations/postgres.ts", @@ -33767,7 +33949,7 @@ "ts", "integrations" ], - "contentHash": "d4e687f563da656838adbeb4b5bee15851658769b41964b414583cb2c92f6124" + "contentHash": "78bcaa4f99a30090263b20b1f1cb9a673f88b9897159ec87498a2059e99d314f" }, { "id": "module:packages/tools/src/integrations/reader.ts", @@ -33804,7 +33986,7 @@ "ts", "integrations" ], - "contentHash": "62f5a7e79adea66b3f009b4ae53768323079a756586f55e20e9bd0057f7a8b43" + "contentHash": "58a54faeee93b38527bb41f36c7bca89c12f16f877a4bc09f71043536fa509d5" }, { "id": "module:packages/tools/src/integrations/sentry.ts", @@ -34026,7 +34208,7 @@ "ts", "mcp-devtools" ], - "contentHash": "be88cdb3ce19812291d358664c5e6bca5bfba8e6cb38e69846b849dcaaceac7c" + "contentHash": "7ae2c3f6562517b1963d217a42a539024ad57f0f27d8076a4b0646bd26f950bb" }, { "id": "module:packages/tools/src/mcp-devtools/tools.ts", @@ -34042,7 +34224,7 @@ "ts", "mcp-devtools" ], - "contentHash": "a73b2d2cce4df9ba44c21df27e4f316b11cc38937391c7e82dc6beac87dc2cdc" + "contentHash": "6b73f70146486a016f602de9a82d6cf8c0e7c8889ae4d70f43f0ea3e775e63af" }, { "id": "module:packages/tools/src/mcp/client.ts", @@ -34060,7 +34242,7 @@ "ts", "mcp" ], - "contentHash": "344b3a9a2b523f4a5dca8852380d3d5e4740b717f6885de403364129763612c9" + "contentHash": "5a48a4be9322fbbd4d21376a418867f215726e5db25c71947c64a548ab649918" }, { "id": "module:packages/tools/src/mcp/index.ts", @@ -34110,7 +34292,7 @@ "ts", "mcp" ], - "contentHash": "a1179bd1006236c84dd0445a05faf23c95fa9575f0e8773a608fa822714412a7" + "contentHash": "b7a76d574044828a72d170ee240d47c3e6ef471d64164acc97e3235c8a6d182f" }, { "id": "module:packages/tools/src/mcp/transports.ts", @@ -34128,7 +34310,7 @@ "ts", "mcp" ], - "contentHash": "3e42e53892264df8cdd645a657efcef8258fab0c1cf77f8277db8aa1ae953db4" + "contentHash": "7e25b127ffca00d371c306d2d297d4c65bfd661ef54e6359c8d387dc41c335b5" }, { "id": "module:packages/tools/src/mcp/types.ts", @@ -34153,7 +34335,7 @@ "ts", "mcp" ], - "contentHash": "8f26db7132c4a184b82b403a26ff90a04c30de78de95f1544da1feb4046ee5b4" + "contentHash": "a78e432ac9908b215d983e3bcb63a02ff7e3e5318b563559d7d486e05320cd60" }, { "id": "module:packages/tools/src/safe-fetch.ts", @@ -34189,7 +34371,7 @@ "ts", "src" ], - "contentHash": "663557a2f8e622b61e3eb38198516321bca19f57f88901038da6bdee3bd8dab0" + "contentHash": "2687d42c51f5b103c93389883dca94d934600b301f0bd19a9cc4a399c44ecd5f" }, { "id": "module:packages/tools/src/slack.ts", @@ -34205,7 +34387,7 @@ "ts", "src" ], - "contentHash": "390f26719449d948ed78607df1ec3613141dd280cdad03bfd95230b5eabffa3d" + "contentHash": "5de240c1a98fc67e7aae93d4d63b251eba0a324e646ff5fcfd73388832db7709" }, { "id": "module:packages/tools/src/sqlite-query.ts", @@ -34221,7 +34403,7 @@ "ts", "src" ], - "contentHash": "c21f9403ac2233d7270fd5c6e2456b342ca1d6aab0ddfd43c8643aabb7330191" + "contentHash": "08def851c5cd860ca5a01940a583a5fd19412f00c2b705e98721c865cc7f994c" }, { "id": "module:packages/tools/src/web-search.ts", @@ -34239,7 +34421,7 @@ "ts", "src" ], - "contentHash": "d016db5379af630c5139bd63f9dc842bef2e9a0bd8d5d3d8776ef7f4f38629f0" + "contentHash": "6e1348e626807d81b1a20bde407134cac35464438545ac3e75680c7a59c3da59" }, { "id": "module:packages/tools/src/zod.ts", @@ -34255,7 +34437,7 @@ "ts", "src" ], - "contentHash": "3e0cf29b494804c90a03bfad6b12a9597cf54aec830a6ebd966c6795b366356f" + "contentHash": "d151b7ff4bcf7ff89d614c41c25fa70f4661821127e919b06becf0e027ce570f" }, { "id": "module:packages/tools/tests/discovery.test.ts", @@ -34530,7 +34712,7 @@ "ts", "tools" ], - "contentHash": "94d6a279af9f1ed32fff4f2997f4fbc709a6e5aa0e3f8fb80a6deb2a6acbcd16" + "contentHash": "252c95bb2449c06076cc4d5a87c1abbcfb4a4526950688961ce5701f226a04d4" }, { "id": "module:packages/tools/vitest.config.ts", @@ -34630,7 +34812,7 @@ "ts", "validation" ], - "contentHash": "3005ef00e2bba37ee66f6b21258c5559017a025057dbf569047bd29ae4b84bf8" + "contentHash": "b037b2a62a5e0e747cc0d6a9ee764cb0027fd1e6cf218159217f3370181786ed" }, { "id": "module:packages/validation/vitest.config.ts", @@ -34672,7 +34854,7 @@ "ts", "src" ], - "contentHash": "0cd5c3565d3d862211933ece29998c451152215d3380352288936561af531010" + "contentHash": "e57fc1669e99c1f86df279e469c3630fb924339b80473a4bf46e9e03907851e7" }, { "id": "module:packages/vue/src/components.ts", @@ -34694,7 +34876,7 @@ "ts", "src" ], - "contentHash": "5af5479bc1167caf91657a580c6af51b5eee64ed45fc238c8c15de22add419ea" + "contentHash": "0d80f5e8296b46340e40aabec57176fba30cd85889327fc466b61ed1e856e6cc" }, { "id": "module:packages/vue/src/index.ts", @@ -34733,7 +34915,7 @@ "ts", "src" ], - "contentHash": "a3f10305c379f2a53eecf81513104b0f928371356bca4bc5ddc6ee30cd8f8f6a" + "contentHash": "2fe5c5039e05a04b3be0784a5590d452ff863e5a2b765a83d4d6a3ccdd7a561b" }, { "id": "module:packages/vue/tests/components.test.ts", @@ -34787,7 +34969,7 @@ "ts", "vue" ], - "contentHash": "2d0e81fe1ff1820b4408203ab5fdf4b652a44b75de7cc45042afd14be14a3825" + "contentHash": "d983ead1c629cec3415b7f5458bf44cb261a1f0c035540a199e0e77b79dc4a13" }, { "id": "module:packages/vue/vitest.config.ts", @@ -34828,7 +35010,7 @@ "mjs", "scripts" ], - "contentHash": "1071a9df9c04e95e4b602b119bd2c8ea6865780a6fdf3564196d00cd78a190ed" + "contentHash": "6f6a568b444c3f5751ae9f77635bd16f05b4a5d5b3f976fbebb3793ba748b904" }, { "id": "module:scripts/check-content-pipeline.mjs", @@ -34901,7 +35083,7 @@ "mjs", "scripts" ], - "contentHash": "b294c08d0a12ad0afea8b1ec81ec5a60b5c0da760ec5f1e10e2d280308f44a23" + "contentHash": "6c44845d86ddb386f32f8b8f648669393ce60e09efcfebffc9f0f88e4e3e4fe3" }, { "id": "module:scripts/check-cross-platform.mjs", @@ -35011,6 +35193,31 @@ ], "contentHash": "1df938d4a6219875527eece4218813fb6d59173be8e36c2d87fc90b3170e8134" }, + { + "id": "module:scripts/check-jsdoc-coverage.mjs", + "type": "module", + "title": "check-jsdoc-coverage.mjs", + "path": "scripts/check-jsdoc-coverage.mjs", + "tags": [ + "module", + "mjs", + "scripts" + ], + "contentHash": "95f6df8de1f54f21b1ae7f76bd46a162680338da213f9d9acfccc0169e03c033" + }, + { + "id": "module:scripts/check-jsdoc-coverage.test.mjs", + "type": "module", + "title": "check-jsdoc-coverage.test.mjs", + "path": "scripts/check-jsdoc-coverage.test.mjs", + "tags": [ + "module", + "mjs", + "test", + "scripts" + ], + "contentHash": "d4ea9e42bb8a0f2436aa8e1d131343f8b4ce0053af9f8156b9cbf38c2a37de33" + }, { "id": "module:scripts/check-launch-package.mjs", "type": "module", @@ -35118,7 +35325,7 @@ "mjs", "scripts" ], - "contentHash": "eae3682677475ee1a6a6b2a90e10fcfadb7ef32240ce8e08327553954f230e93" + "contentHash": "70aa8bd52225502964aaeb25d3d76c191027e9fb9faccea98f6cc851e0d0bc31" }, { "id": "module:scripts/check-no-nested-ternary.test.mjs", @@ -35182,7 +35389,7 @@ "mjs", "scripts" ], - "contentHash": "7695ae834c1d33dbcf012bc458fba13ccac83ab377f7feb543ed48c674e0db16" + "contentHash": "b9f3891fa53fc79699097120667aeb450f44303ec3a9e577dad6fb8164fbe846" }, { "id": "module:scripts/check-publication-surface.mjs", @@ -35206,7 +35413,7 @@ "mjs", "scripts" ], - "contentHash": "dc2925e56c5fa52a2f5bd30d1bec73a4a7097050b48eddbeee34aa7231698b7c" + "contentHash": "e85cf73a88abe3cf894add87b68bccef3ca94001731200c0268da8f1a39a6542" }, { "id": "module:scripts/check-readme-badge.mjs", @@ -35317,6 +35524,18 @@ ], "contentHash": "e53d5106220be2dbdcf6fa424363857b0b86ea7e02e9520d02049f2def5bebaa" }, + { + "id": "module:scripts/ci-timing-report.mjs", + "type": "module", + "title": "ci-timing-report.mjs", + "path": "scripts/ci-timing-report.mjs", + "tags": [ + "module", + "mjs", + "scripts" + ], + "contentHash": "a7a87049ead39368eeb619917f5082059cca4c8ea57e162a93a79ac076c78871" + }, { "id": "module:scripts/commitlint.test.mjs", "type": "module", @@ -35526,6 +35745,18 @@ ], "contentHash": "7aef48d1093d57ef277a301803008a95b0645a7adab57d0d93b4dc2aa944de35" }, + { + "id": "module:scripts/gen-size-limit-subpaths.mjs", + "type": "module", + "title": "gen-size-limit-subpaths.mjs", + "path": "scripts/gen-size-limit-subpaths.mjs", + "tags": [ + "module", + "mjs", + "scripts" + ], + "contentHash": "d473d4d87f6caad75df211bd7b8b4e4e20240f025722222b76765e615fd8e911" + }, { "id": "module:scripts/generate-software-metadata.mjs", "type": "module", @@ -35538,6 +35769,35 @@ ], "contentHash": "9a2a906af1a0686fc5480c218fd5737ad4ce0626dd2f2aff98a22773270ab11f" }, + { + "id": "module:scripts/guardrail-report.mjs", + "type": "module", + "title": "guardrail-report.mjs", + "path": "scripts/guardrail-report.mjs", + "symbols": [ + "createDeltas", + "flattenNumbers" + ], + "tags": [ + "module", + "mjs", + "scripts" + ], + "contentHash": "16536dc12dcb3eeae2472c2c63b8f80deff7702f273b015404f1047adeb5a743" + }, + { + "id": "module:scripts/guardrail-report.test.mjs", + "type": "module", + "title": "guardrail-report.test.mjs", + "path": "scripts/guardrail-report.test.mjs", + "tags": [ + "module", + "mjs", + "test", + "scripts" + ], + "contentHash": "522732c58e8f62c64cbf8faf26e1c0e03dbbe636a917e0e2eb516f4bc2e03ef3" + }, { "id": "module:scripts/launch-package.test.mjs", "type": "module", @@ -35721,6 +35981,24 @@ ], "contentHash": "ad283c94f06797ff0ff6e52578feff2d18869ded6050c615f9935f0dd5d2118e" }, + { + "id": "module:scripts/lib/jsdoc-coverage.mjs", + "type": "module", + "title": "jsdoc-coverage.mjs", + "path": "scripts/lib/jsdoc-coverage.mjs", + "symbols": [ + "JSDOC_BASELINE_RELATIVE", + "calculateCoverage", + "findBaselineGrowth", + "serializeJsdocBaseline" + ], + "tags": [ + "module", + "mjs", + "lib" + ], + "contentHash": "664841032a1511ae5226b153e988c87c2947d82ee467886cabed192391fc5cf9" + }, { "id": "module:scripts/lib/launch-package.mjs", "type": "module", @@ -35902,6 +36180,7 @@ "findMissingBuildOutputs", "formatDiffDiagnostics", "formatStats", + "getDocumentedExportsFromSourceFile", "getExportsFromSourceFile", "isDeclarationTarget", "isLocalFileTarget", @@ -35921,7 +36200,7 @@ "mjs", "lib" ], - "contentHash": "9265198efdae5d57437a592c9230f7af67323bf0a2a204a82de126460ea37eba" + "contentHash": "eed539a529de197565183c33e5187b3551ea97d20d41a2ffb7573d6009b0c86f" }, { "id": "module:scripts/lib/publish-manifests.mjs", @@ -36048,6 +36327,19 @@ ], "contentHash": "80f33cde09d9db899e840aad2b23a41d584a936affbdb3f78a7f1399d1cdce43" }, + { + "id": "module:scripts/math-random-id-rule.test.mjs", + "type": "module", + "title": "math-random-id-rule.test.mjs", + "path": "scripts/math-random-id-rule.test.mjs", + "tags": [ + "module", + "mjs", + "test", + "scripts" + ], + "contentHash": "1a866f04dd50c0cfc1331b0cea6460263dd0f1a7ea45ac5abe51dda0dda2d0bc" + }, { "id": "module:scripts/models-dev-catalog.test.mjs", "type": "module", @@ -36611,6 +36903,20 @@ ], "contentHash": "dacd7c12d42383ecdf2ceb0a4b8a5a998d347b88b71628caab0c12e78ac51388" }, + { + "id": "module:tsup.shared.ts", + "type": "module", + "title": "tsup.shared.ts", + "path": "tsup.shared.ts", + "symbols": [ + "sharedTsupOptions" + ], + "tags": [ + "module", + "ts" + ], + "contentHash": "229976b8f87d7c3eda5bcb21bf781f34c3fcb38446204a921e94578f9b29d3fc" + }, { "id": "module:vitest.shared.ts", "type": "module", @@ -37733,8 +38039,8 @@ "changes": {} }, "inputs": { - "hash": "8d46a33633879d48490f5237538e6674133588cb6d9f104990b0cdec3544bbda", - "fileCount": 2507, + "hash": "c425cb131ac63828c39ccb6cbbf89d8cdaa02667966297f870504677a665f787", + "fileCount": 2529, "projectionVersion": 2 }, "retrieval": { @@ -37756,9 +38062,9 @@ "projection": { "type": "retrieval-index", "schemaVersion": 1, - "contentHash": "d9fc36bebae626e25a911f89327618fbb99c794a08548a767ecc63273b507bbd", + "contentHash": "c5244d26770625461d7fbc673196ba2f9ba5c8904170eb0f99ff71e498c611ac", "contentHashAlgo": "sha256-normalized-v1", - "snapshotHash": "4e2310c6f5e4c49d76990796dc2598c0910ad1dafe3cdafaf6d7e0e387dbc5d8", + "snapshotHash": "40688f7aaa3476bbe6f2667d803a93314760f5f5b76b84ea1c7b695994527610", "overlayHash": "f99666ff9119084dd25c2974ae64eb6935ec2aa785ff5ad478fb9d541f7a5e94", "configurationHash": "9662cc07ea4ab203ff2ddf457d2db48b5375a7ab4a1f8fbc79dfebcaa8f9a00c", "lexiconVersion": 1, @@ -37778,7 +38084,7 @@ }, "lexical": { "version": 1, - "documentCount": 2461, + "documentCount": 2484, "fieldNames": [ "aliases", "body", @@ -37789,16 +38095,61 @@ "title" ], "averageFieldLength": { - "aliases": 3.015034538805364, - "body": 60.93742381145876, - "headings": 4.012190166598944, - "path": 7.623730190979277, - "summary": 4.541243396993092, - "symbols": 7.472572125152377, - "title": 3.340511986997156 + "aliases": 3.0148953301127213, + "body": 60.74235104669887, + "headings": 3.995571658615137, + "path": 7.61231884057971, + "summary": 4.552334943639291, + "symbols": 7.4343800322061195, + "title": 3.3482286634460547 } }, "entries": [ + { + "id": "area:.github", + "kind": "area", + "path": ".github", + "title": ".github", + "aliases": [], + "tags": [ + "area" + ], + "fields": { + "title": ".github", + "headings": "", + "path": ".github", + "symbols": "", + "summary": "", + "body": "", + "aliases": "area" + }, + "graph": { + "pagerank": 0, + "inboundLinks": 2, + "coveredBy": [], + "mentionedBy": [ + "document:docs/MASTER-EXECUTION-PLAN.md", + "document:docs/PHASE-0-FOUNDATION-PRD.md" + ], + "packageId": "package:agentskit", + "inbound": [ + { + "kind": "mentions", + "id": "document:docs/MASTER-EXECUTION-PLAN.md", + "confidence": "fuzzy" + }, + { + "kind": "mentions", + "id": "document:docs/PHASE-0-FOUNDATION-PRD.md", + "confidence": "fuzzy" + } + ], + "outbound": [] + }, + "contentHash": "c7a4f26e5fec76986a3433537a5eb0558ad48a76383d92ae5197c7e38ea90120", + "provenance": "observed", + "confidence": "observed" + }, { "id": "area:agents", "kind": "area", @@ -38146,7 +38497,7 @@ ], "outbound": [] }, - "contentHash": "3cfef275a3959dd1ecb6e2ebec950fbbda0f71f5d431529805fc222a1688e74c", + "contentHash": "db16d6e6aedd39af524b30cbbe07bf8224cfd08aecf940c59a6abe88485a2b25", "provenance": "observed", "confidence": "observed" }, @@ -40225,7 +40576,7 @@ "inbound": [], "outbound": [] }, - "contentHash": "7f842c148b03480860cf8ce76c52485b549b3cdc2ec1b07d4f894d6f23d9063f", + "contentHash": "3b6b06f2797b254c9ad8764883d607f7b2d8e68ca38a0dc06675443159b871bc", "provenance": "observed", "confidence": "observed" }, @@ -50616,11 +50967,11 @@ ], "fields": { "title": "cross-platform", - "headings": "Install Why Primary exports Processes Paths and file URLs Text Filesystem Runtime and errors Guardrail Usage Notes", + "headings": "Install Why Primary exports Processes Paths and file URLs Text Filesystem Testing helpers Runtime and errors Guardrail Usage Notes", "path": "apps/docs-next/content/docs/for-agents/cross-platform.mdx", "symbols": "", "summary": "Windows contributors kept fixing the same bugs in every repository: .cmd shims (npx, pnpm, claude) failing without a shell, prompts truncated at the first newline by cmd.exe, \\ vs / in path comparisons, CRLF breaking hashes and frontmatter, EBUSY on rename, and child processes left running after a timeout.", - "body": "Install Why Windows contributors kept fixing the same bugs in every repository: .cmd shims ( npx , pnpm , claude ) failing without a shell, prompts truncated at the first newline by cmd.exe, \\ vs / in path comparisons, CRLF breaking hashes and frontmatter, EBUSY on rename, and child processes left running after a timeout. This package owns those fixes and the libraries behind them ( cross-spawn , tree-kill , pathe , std-env , graceful-fs , which ). See ADR-0036. Primary exports Processes - spawnProcess(command, args?, options?) — returns a ChildHandle with web-stream stdin / stdout / stderr , an exited promise and a tree-wide kill() . Never throws for a failed start: exited rejects with CrossPlatformError . - runCommand(command, args?, options?) — runs to completion; resolves { code, signal, stdout, stderr, timedOut, truncated, durationMs } . A non-zero exit is a result, not an error. - spawnShell(commandLine, options?) / runShell(commandLine, options?) — same handle/result, but through the platform shell ( sh -c on POSIX, %ComSpec% /d /s /c on Windows). Only for command lines a user wrote (hooks, scripts). shellCommand(line, env) returns that invocation. - spawnNodeChild(command, args?, options?) — child process.spawn with the same resolution ( .cmd shims, cmd.exe escaping, child PATH), for code that needs Node streams and events (JSON-RPC over stdio, long-lived servers). A missing command emits the usual 'error' (ENOENT); pair it with killProcessTree . - selectAdapter(runtime?) — the native adapter: node:child process , Bun.spawn or Deno.Command . - resolveCommand(command, args, { cwd, env }) — Windows command resolution and cmd.exe escaping (cross-spawn's parser). - killProcessTree(pid, signal?, fallback?) — taskkill /T /F on Windows; on POSIX a tree walk plus the process group pid leads (children spawned with detached: true ), so descendants whose parent already exited are reached too. - findExecutable(command) / commandExists(command) — PATH lookup honouring PATHEXT . - safeEnv({ inherit?, extra?, source? }) — minimal child env with SYSTEM ENV KEYS ( PATH , PATHEXT , SystemRoot , COMSPEC …). getEnv(name) is case-insensitive on Windows. homeDir() , tempDir() . Options: cwd , env , input (written to stdin, then closed), stdin / stdout / stderr ( pipe inherit ignore ), timeoutMs , killGraceMs , signal (AbortSignal), windowsHide (default true), and for runCommand / runShell maxOutputBytes (per stream). Paths and file URLs - toPosix , normalizePosix , joinPosix , resolvePosix , relativePosix , basename , dirname , extname — / output on every OS (pathe). - samePath(a, b) , isPathInside(parent, child) — separator-, trailing-slash- and (on Windows) case-insensitive. - isAbsolutePath , isWindowsStylePath . - fileUrlToPath , pathToFileUrl , moduleDir(import.meta.url) , isMainModule(import.meta.url) — never use new URL(...).pathname . Text - normalizeEol , stripBom , splitLines , splitFrontmatter (CRLF/BOM tolerant), hashText (SHA-256 after EOL normalisation; Web Crypto). Filesystem - removePath (rm -rf with retries), renamePath (graceful-fs retries on Windows locks), writeFileAtomic (temp file on the same volume, then rename), createSymlink (junction/copy fallback without Windows symlink privilege), copyPath , setFileMode (no-op on Windows; returns false). Runtime and errors - getRuntimeInfo() → { runtime, os, platform, isServer } ; isWindows , isMacOS , isLinux , isBun , isDeno (std-env). - CrossPlatformError , CrossPlatformErrorCodes ( AK PLATFORM PERMISSION DENIED , AK PLATFORM COMMAND NOT FOUND , AK PLATFORM SPAWN FAILED , AK PLATFORM INVALID INPUT , AK PLATFORM UNSUPPORTED RUNTIME ), isPermissionError , isNotFoundError , mapRuntimeError , permissionDenied . Guardrail - PORTABILITY RULES , scanText , scanRepository , countFindings , compareToBaseline , tightenBaseline , runCli — back the agentskit-cross-platform check bin (ratchet baseline in .cross-platform-baseline.json ; runCli accepts optional { rules, filter } for custom r", + "body": "Install Why Windows contributors kept fixing the same bugs in every repository: .cmd shims ( npx , pnpm , claude ) failing without a shell, prompts truncated at the first newline by cmd.exe, \\ vs / in path comparisons, CRLF breaking hashes and frontmatter, EBUSY on rename, and child processes left running after a timeout. This package owns those fixes and the libraries behind them ( cross-spawn , tree-kill , pathe , std-env , graceful-fs , which ). See ADR-0036. Primary exports Processes - spawnProcess(command, args?, options?) — returns a ChildHandle with web-stream stdin / stdout / stderr , an exited promise and a tree-wide kill() . Never throws for a failed start: exited rejects with CrossPlatformError . - runCommand(command, args?, options?) — runs to completion; resolves { code, signal, stdout, stderr, timedOut, truncated, durationMs } . A non-zero exit is a result, not an error. - spawnShell(commandLine, options?) / runShell(commandLine, options?) — same handle/result, but through the platform shell ( sh -c on POSIX, %ComSpec% /d /s /c on Windows). Only for command lines a user wrote (hooks, scripts). shellCommand(line, env) returns that invocation. - spawnNodeChild(command, args?, options?) — child process.spawn with the same resolution ( .cmd shims, cmd.exe escaping, child PATH), for code that needs Node streams and events (JSON-RPC over stdio, long-lived servers). A missing command emits the usual 'error' (ENOENT); pair it with killProcessTree . - selectAdapter(runtime?) — the native adapter: node:child process , Bun.spawn or Deno.Command . - resolveCommand(command, args, { cwd, env }) — Windows command resolution and cmd.exe escaping (cross-spawn's parser). - killProcessTree(pid, signal?, fallback?) — taskkill /T /F on Windows; on POSIX a tree walk plus the process group pid leads (children spawned with detached: true ), so descendants whose parent already exited are reached too. - findExecutable(command) / commandExists(command) — PATH lookup honouring PATHEXT . - safeEnv({ inherit?, extra?, source? }) — minimal child env with SYSTEM ENV KEYS ( PATH , PATHEXT , SystemRoot , COMSPEC …). getEnv(name) is case-insensitive on Windows. homeDir() , tempDir() . Options: cwd , env , input (written to stdin, then closed), stdin / stdout / stderr ( pipe inherit ignore ), timeoutMs , killGraceMs , signal (AbortSignal), windowsHide (default true), and for runCommand / runShell maxOutputBytes (per stream). Paths and file URLs - toPosix , normalizePosix , joinPosix , resolvePosix , relativePosix , basename , dirname , extname — / output on every OS (pathe). - samePath(a, b) , isPathInside(parent, child) — separator-, trailing-slash- and (on Windows) case-insensitive. - isAbsolutePath , isWindowsStylePath . - fileUrlToPath , pathToFileUrl , moduleDir(import.meta.url) , isMainModule(import.meta.url) — never use new URL(...).pathname . Text - normalizeEol , stripBom , splitLines , splitFrontmatter (CRLF/BOM tolerant), hashText (SHA-256 after EOL normalisation; Web Crypto). Filesystem - removePath (rm -rf with retries), renamePath (graceful-fs retries on Windows locks), writeFileAtomic (temp file on the same volume, then rename), createSymlink (junction/copy fallback without Windows symlink privilege), copyPath , setFileMode (no-op on Windows; returns false). Testing helpers Import createFetchStub , jsonResponse , and withTempDir from @agentskit/cross-platform/testing . They have no test-runner dependency; withTempDir uses this package's OS temp-directory and retrying cleanup helpers. Runtime and errors - getRuntimeInfo() → { runtime, os, platform, isServer } ; isWindows , isMacOS , isLinux , isBun , isDeno (std-env). - CrossPlatformError , CrossPlatformErrorCodes ( AK PLATFORM PERMISSION DENIED , AK PLATFORM COMMAND NOT FOUND , AK PLATFORM SPAWN FAILED , AK PLATFORM INVALID INPUT , AK PLATFORM UNSUPPORTED RUNTIME ), isPermissionError , isNotFoundError , mapRuntimeError , permissionDenied . Guardrail - PORTABILITY RULES , scanText , s", "aliases": "cross-platform document agent" }, "graph": { @@ -50700,6 +51051,11 @@ "id": "module:packages/cross-platform/src/runtime.ts", "confidence": "observed" }, + { + "kind": "mentions-symbol", + "id": "module:packages/cross-platform/src/testing.ts", + "confidence": "observed" + }, { "kind": "mentions-symbol", "id": "module:packages/cross-platform/src/text.ts", @@ -50707,7 +51063,7 @@ } ] }, - "contentHash": "42b902b47e6fca399641e80432bff291592007631ae155216a5a0e8633d40443", + "contentHash": "6c3f1f13d3fc832c0f57b17ebf7b750593a71b61278bc1daa2eab9a1000f3de0", "provenance": "observed", "confidence": "observed" }, @@ -50727,7 +51083,7 @@ ], "fields": { "title": "doc-bridge", - "headings": "Purpose First commands How to interpret findings Measuring retrieval efficiency Optional Registry assistance Documentation change loop", + "headings": "Purpose First commands How to interpret findings Measuring retrieval efficiency Optional Registry assistance Documentation change loop Generated index in CI and on main", "path": "apps/docs-next/content/docs/for-agents/doc-bridge.mdx", "symbols": "", "summary": "Use Doc Bridge before editing to locate the owning package, its agent handoff, human documentation, allowed edit roots, and required checks. Use the workflow artifacts to compare observed repository structure with documented intent.", @@ -50754,7 +51110,7 @@ } ] }, - "contentHash": "8475051ce7b7409bddd80f5fecd66ecb02546ad4fd5585058d2d8d48633faf1d", + "contentHash": "f2d7fd6a1fb462868175a6ae6a8b04163bec376aa91378d195247d73571dbe6a", "provenance": "observed", "confidence": "observed" }, @@ -59476,11 +59832,11 @@ ], "fields": { "title": "cross-platform.mdx", - "headings": "When to reach for it Best fit Install Hello world What it replaces Runtimes Stability Deep dives", + "headings": "When to reach for it Best fit Install Hello world What it replaces Testing helpers Runtimes Stability Deep dives", "path": "apps/docs-next/content/docs/reference/packages/cross-platform.mdx", "symbols": "", "summary": "@agentskit/cross-platform is the package for the moment your agent (or your tooling) has to run a command, compare a path or parse a file and it must work for the teammate on Windows as well as on your Mac and in Linux CI — whether the code runs on Node, Bun or Deno.", - "body": "@agentskit/cross-platform is the package for the moment your agent (or your tooling) has to run a command, compare a path or parse a file and it must work for the teammate on Windows as well as on your Mac and in Linux CI — whether the code runs on Node, Bun or Deno. When to reach for it - You spawn CLIs ( npx , pnpm , claude , codex , git ) and need them to start on Windows without shell: true . - You pass long or multi-line prompts to a child process. - You need a timeout that kills the whole process tree, not only the wrapper. - You compare, store or hash paths and text produced on different machines. Best fit - Use it instead of node:child process in any AgentsKit package or ecosystem repository. - Run agentskit-cross-platform check in CI so new Windows hazards fail on Linux, before a Windows user finds them. - Use @agentskit/cross-platform/pure in browsers and edge workers (paths, text, runtime detection). Install Hello world What it replaces Hand-rolled pattern Use --- --- spawn(cmd, args, { shell: process.platform === 'win32' }) spawnProcess(cmd, args) Prompt passed as an argument runCommand(cmd, args, { input }) child.kill() / process.kill(-pid) timeoutMs , handle.kill() , killProcessTree(pid) p.replace(/\\\\/g, '/') toPosix(p) / relativePosix(a, b) new URL('.', import.meta.url).pathname moduleDir(import.meta.url) text.split('\\n') splitLines(text) rename/rm retry loops renamePath , removePath , writeFileAtomic Runtimes One native adapter per runtime: node:child process on Node, Bun.spawn on Bun, Deno.Command on Deno. stdout and stderr are web ReadableStream s everywhere. On Deno, a missing --allow- flag raises AK PLATFORM PERMISSION DENIED naming the flag. Stability - Version: 0.2.1 - Tier: beta - Contract: evolving Deep dives - — full export list. - Decision record: ADR-0036 ( docs/architecture/adrs/0036-cross-platform-package.md ).", + "body": "@agentskit/cross-platform is the package for the moment your agent (or your tooling) has to run a command, compare a path or parse a file and it must work for the teammate on Windows as well as on your Mac and in Linux CI — whether the code runs on Node, Bun or Deno. When to reach for it - You spawn CLIs ( npx , pnpm , claude , codex , git ) and need them to start on Windows without shell: true . - You pass long or multi-line prompts to a child process. - You need a timeout that kills the whole process tree, not only the wrapper. - You compare, store or hash paths and text produced on different machines. Best fit - Use it instead of node:child process in any AgentsKit package or ecosystem repository. - Run agentskit-cross-platform check in CI so new Windows hazards fail on Linux, before a Windows user finds them. - Use @agentskit/cross-platform/pure in browsers and edge workers (paths, text, runtime detection). Install Hello world What it replaces Hand-rolled pattern Use --- --- spawn(cmd, args, { shell: process.platform === 'win32' }) spawnProcess(cmd, args) Prompt passed as an argument runCommand(cmd, args, { input }) child.kill() / process.kill(-pid) timeoutMs , handle.kill() , killProcessTree(pid) p.replace(/\\\\/g, '/') toPosix(p) / relativePosix(a, b) new URL('.', import.meta.url).pathname moduleDir(import.meta.url) text.split('\\n') splitLines(text) rename/rm retry loops renamePath , removePath , writeFileAtomic Testing helpers @agentskit/cross-platform/testing exports framework-agnostic helpers for shared test setup: createFetchStub routes URL requests to a handler or response map, jsonResponse creates a JSON Response , and withTempDir cleans up its temporary directory after the callback completes. Runtimes One native adapter per runtime: node:child process on Node, Bun.spawn on Bun, Deno.Command on Deno. stdout and stderr are web ReadableStream s everywhere. On Deno, a missing --allow- flag raises AK PLATFORM PERMISSION DENIED naming the flag. Stability - Version: 0.2.1 - Tier: beta - Contract: evolving Deep dives - — full export list. - Decision record: ADR-0036 ( docs/architecture/adrs/0036-cross-platform-package.md ).", "aliases": "document human" }, "graph": { @@ -59509,10 +59865,15 @@ "kind": "mentions-symbol", "id": "module:packages/cross-platform/src/fs.ts", "confidence": "observed" + }, + { + "kind": "mentions-symbol", + "id": "module:packages/cross-platform/src/testing.ts", + "confidence": "observed" } ] }, - "contentHash": "722820fab334813e3ab9ae1382c87d9e2aaa27f874c0f24917427e98378dc99b", + "contentHash": "374df5fb9fe1af9d8511f5f078ea51fae5e2d590eefc531f3c5f4a888131ec76", "provenance": "observed", "confidence": "observed" }, @@ -67975,7 +68336,7 @@ "path": "CONTRIBUTING.md", "symbols": "", "summary": "Thanks for being here. This guide gets you from git clone to merged PR with the least friction we know how to provide.", - "body": "Contributing to AgentsKit Thanks for being here. This guide gets you from git clone to merged PR with the least friction we know how to provide. Read first : . Every change is measured against the ten principles in there. If you're proposing something that conflicts with a principle, that's an , not a PR. --- Where to ask what Kind of thing Best place --- --- Bug — reproducible Feature you want Docs problem Non-trivial design proposal , then a PR in /rfcs/ General question / \"how do I\" Security disclosure — private channel --- Setup in 5 minutes Prerequisites - Node.js 22+ (LTS recommended; Node 25 known-broken on the legacy Docusaurus app — use apps/docs-next instead) - pnpm 10+ ( npm install -g pnpm if missing) - git with a global identity configured Clone and install That's it. The whole monorepo is now linked. Verify everything works Run the docs site locally The legacy Docusaurus site is still available during the migration: --- Repo layout Every package has a focused CONVENTIONS.md at its root explaining what belongs there, what doesn't, and how to add a new thing. Read it before opening a PR that touches that package. --- Making a change 1. Pick or open an issue Don't surprise reviewers. Either: - Pick an (look for or ), comment that you're taking it. - Browse the — anything in Ready is fair game to claim. - Or open a new issue describing what you want to do before writing code, especially if the change touches a contract or a public API. 2. Branch and write code Branch naming is informal but area/short-slug (e.g. adapters/add-mistral , docs/typos-in-recipes ) helps scanning. Reuse first. Before adding a new package or dependency, check the existing @agentskit/ packages, then established libraries or services. Write new code only when neither fits, and say why in the PR's Reuse section. 3. Write tests first when possible Each package has a vitest.config.ts with a per-package coverage threshold. CI blocks merges that drop below the threshold (see and the coverage workflow). A new feature without a test will not pass review. 4. Type-check, gates, and bundle-check pnpm check:quality-gates runs every structural gate (typed errors, named exports, no any , file-size budgets, src↔test parity, for-agents coverage, ADR/RFC index sync, locale parity). pnpm check:all adds typecheck + build + test. Husky runs the commit-message check before each commit and the gates + typecheck + build before each push. @agentskit/core is capped at 10KB gzipped by . The size workflow blocks PRs that exceed any package's budget. 5. Add a changeset (any user-facing change) This walks you through which packages are affected and what kind of bump (patch / minor / major). The resulting .changeset/ .md file is part of your PR. The release workflow consumes it later. A change is user-facing if it adds or modifies a public export, changes runtime behavior, or affects the docs surface a consumer reads. 6. Open a PR Use the PR template — it auto-fills with the checklist we expect: - [ ] Reuse: existing packages/libraries checked; new code or dependency justified - [ ] Tests added or updated - [ ] Types check - [ ] Bundle size within budget - [ ] Changeset created - [ ] Docs updated - [ ] Manifesto principles respected - [ ] Screenshots or demo for UI changes Title: concise-package", - "body": "@agentskit/cross-platform Profile: major-package", @@ -78328,6 +78841,11 @@ "id": "module:packages/memory/src/personalization.ts", "confidence": "observed" }, + { + "kind": "mentions-symbol", + "id": "module:packages/memory/src/postgres.ts", + "confidence": "observed" + }, { "kind": "mentions-symbol", "id": "module:packages/memory/src/redis-vector.ts", @@ -78385,7 +78903,7 @@ } ] }, - "contentHash": "ddfb926a3bb058a47bc74c00ba52260c894f751597691210caef2374676a6d4a", + "contentHash": "bc1f0e4821bc5fc6b6d969dc749bcc834343c2fdd07e0364926f16a4fe6f2a6e", "provenance": "observed", "confidence": "observed" }, @@ -80878,10 +81396,18 @@ }, "graph": { "pagerank": 0, - "inboundLinks": 0, + "inboundLinks": 1, "coveredBy": [], - "mentionedBy": [], - "inbound": [], + "mentionedBy": [ + "document:scripts/README.md" + ], + "inbound": [ + { + "kind": "mentions", + "id": "document:scripts/README.md", + "confidence": "observed" + } + ], "outbound": [ { "kind": "mentions", @@ -83350,7 +83876,7 @@ "kind": "document", "path": "scripts/README.md", "title": "scripts/", - "summary": "Repo-level CI helpers. Each script is dependency-free Node ESM, runnable from the repo root. They run on every PR + push to main via .github/workflows/ci.yml and a husky pre-push hook.", + "summary": "Repo-level CI helpers, runnable from the repo root. Most scripts use only Node ESM; the bundle-size helper also uses the already installed esbuild dependency. They run on every PR + push to main via .github/workflows/ci.yml and a husky pre-push hook.", "audience": "human", "aliases": [], "tags": [ @@ -83359,11 +83885,11 @@ ], "fields": { "title": "scripts/", - "headings": "scripts/ Build prerequisites and timings check-quality-gates.mjs (orchestrator) check-for-agents-coverage.mjs check-src-test-parity.mjs check-no-bare-throw.mjs check-core-rules.mjs check-core-no-deps.mjs check-stability-tier.mjs check-readme-badge.mjs check-coverage-floor.mjs check-promotion-rfc.mjs check-stable-dependencies.mjs check-stability-evidence.mjs report-stability-readiness.mjs check-no-any.mjs check-named-exports.mjs check-file-size.mjs check-doc-index.mjs check-intl-parity.mjs check-packed-consumers.mjs check-public-api-snapshot.mjs Release registry preflight verify-ecosystem-visual.mjs gen-brand-logos.mjs", + "headings": "scripts/ Bundle size targets per public ESM export Build prerequisites and timings check-quality-gates.mjs (orchestrator) check-for-agents-coverage.mjs check-src-test-parity.mjs check-no-bare-throw.mjs check-core-rules.mjs check-core-no-deps.mjs check-stability-tier.mjs check-readme-badge.mjs check-coverage-floor.mjs check-promotion-rfc.mjs check-stable-dependencies.mjs check-stability-evidence.mjs report-stability-readiness.mjs check-no-any.mjs check-named-exports.mjs check-file-size.mjs check-doc-index.mjs check-intl-parity.mjs check-packed-consumers.mjs check-public-api-snapshot.mjs check-jsdoc-coverage.mjs Release registry preflight verify-ecosystem-visual.mjs gen-brand-logos.mjs", "path": "scripts/README.md", "symbols": "", - "summary": "Repo-level CI helpers. Each script is dependency-free Node ESM, runnable from the repo root. They run on every PR + push to main via .github/workflows/ci.yml and a husky pre-push hook.", - "body": "scripts/ Repo-level CI helpers. Each script is dependency-free Node ESM, runnable from the repo root. They run on every PR + push to main via .github/workflows/ci.yml and a husky pre-push hook. Build prerequisites and timings CI and coverage build packages with pnpm exec turbo run build --filter='./packages/ ' --concurrency=2 . The quality gates use the same Turbo graph for adapters, MCP and cross-platform, so shared prerequisites build once and subsequent commands reuse their outputs. Root TypeScript configuration and shared scripts invalidate the build cache. The orchestrator prints elapsed seconds for each gate; all checks still execute sequentially and test concurrency is unchanged. No cross-run cache is added. CI runs Quality gates and Test, Build on independent runners, each with its own checkout and package build. Generated files cannot race between jobs. The existing required Lint, Test, Build check aggregates both results and fails if either job fails, is cancelled, or is skipped. Coverage remains a separate workflow. This trades an additional package build for overlapping the gate and test durations; compare wall time and runner time separately. Package-test build prefixes also use Turbo, so both standalone and aggregate test commands reuse the same build graph and cache. Test commands and coverage thresholds are unchanged; this also applies to coverage tasks. After building cross-platform, run node --test scripts/ci-build-cache.test.mjs to exercise a real cache miss, hit and invalidation after a shared script changes. It removes its temporary script and isolated cache afterward. check-quality-gates.mjs (orchestrator) Runs every structural gate below in sequence and prints a single pass/fail summary. This is the entry point — pnpm check:quality-gates . pnpm check:all layers typecheck + build + test on top. To add a gate: write the check- .mjs script, then register it in the GATES array at the top of this orchestrator. Gates strip backtick template contents before matching so scaffold/prompt strings don't false-positive. check-for-agents-coverage.mjs Asserts that every value export from packages/ Date: Tue, 6 Oct 2026 20:13:34 -0300 Subject: [PATCH 3/9] fix(memory): satisfy postgres validation guardrails --- .npmrc | 2 ++ .size-limit.json | 6 ++++ docs/stability/public-api-v1.json | 33 ++++++++++++++++++++++ package.json | 1 + packages/memory/package.json | 1 + packages/memory/src/postgres.ts | 3 ++ packages/memory/tests/postgres-workerd.mjs | 25 ++++++++-------- pnpm-lock.yaml | 6 ++++ 8 files changed, 64 insertions(+), 13 deletions(-) diff --git a/.npmrc b/.npmrc index 94a06c218..bcf3cef26 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,3 @@ access=public +hoist-pattern[]=* +hoist-pattern[]=!@types/react diff --git a/.size-limit.json b/.size-limit.json index 8a650aef6..3bc18c8fe 100644 --- a/.size-limit.json +++ b/.size-limit.json @@ -634,5 +634,11 @@ "path": "node_modules/.cache/size-limit-subpaths/cross-platform/testing.js", "limit": "1.5 KB", "gzip": true + }, + { + "name": "@agentskit/memory (ESM export ./postgres)", + "path": "node_modules/.cache/size-limit-subpaths/memory/postgres.js", + "limit": "1.5 KB", + "gzip": true } ] diff --git a/docs/stability/public-api-v1.json b/docs/stability/public-api-v1.json index 08ff7efaa..39f0b9e7e 100644 --- a/docs/stability/public-api-v1.json +++ b/docs/stability/public-api-v1.json @@ -6952,6 +6952,39 @@ } ] }, + "./postgres": { + "conditions": [ + "import", + "require", + "types" + ], + "symbols": [ + { + "name": "postgresChatMemory", + "kinds": [ + "value" + ] + }, + { + "name": "PostgresChatMemoryOptions", + "kinds": [ + "type" + ] + }, + { + "name": "postgresChatMigrationSql", + "kinds": [ + "value" + ] + }, + { + "name": "postgresChatTable", + "kinds": [ + "value" + ] + } + ] + }, "./web-storage": { "conditions": [ "import", diff --git a/package.json b/package.json index 20161823b..a1fa35867 100644 --- a/package.json +++ b/package.json @@ -98,6 +98,7 @@ "@playwright/test": "^1.63.0", "@size-limit/file": "^12.1.0", "@types/json-schema": "^7.0.15", + "@types/react": "19.2.17", "@vitest/coverage-v8": "^4.1.11", "esbuild": "0.28.1", "husky": "^9.1.7", diff --git a/packages/memory/package.json b/packages/memory/package.json index 40d2af132..5cd4af85d 100644 --- a/packages/memory/package.json +++ b/packages/memory/package.json @@ -86,6 +86,7 @@ } }, "devDependencies": { + "@agentskit/cross-platform": "workspace:*", "@types/better-sqlite3": "^7.6.13", "@types/node": "^25.9.5", "better-sqlite3": "^13.0.3", diff --git a/packages/memory/src/postgres.ts b/packages/memory/src/postgres.ts index f65e1d786..086bd3018 100644 --- a/packages/memory/src/postgres.ts +++ b/packages/memory/src/postgres.ts @@ -6,12 +6,14 @@ import type { NodePgDatabase } from 'drizzle-orm/node-postgres' import { jsonb, pgTable, primaryKey, text } from 'drizzle-orm/pg-core' import { decodeStoredMessages } from './decode' +/** Drizzle schema with one versioned record per tenant/session primary key. */ export const postgresChatTable = pgTable('agentskit_chat_memory', { tenantId: text('tenant_id').notNull(), sessionId: text('session_id').notNull(), record: jsonb('record').$type().notNull(), }, table => [primaryKey({ columns: [table.tenantId, table.sessionId] })]) +/** Idempotent PostgreSQL DDL; execute with the host's migration connection before use. */ export const postgresChatMigrationSql = `CREATE TABLE IF NOT EXISTS agentskit_chat_memory ( tenant_id text NOT NULL, session_id text NOT NULL, @@ -19,6 +21,7 @@ export const postgresChatMigrationSql = `CREATE TABLE IF NOT EXISTS agentskit_ch PRIMARY KEY (tenant_id, session_id) );` +/** Host-owned Drizzle connection, isolation keys, and optional history retention. */ export interface PostgresChatMemoryOptions { db: Pick tenantId: string diff --git a/packages/memory/tests/postgres-workerd.mjs b/packages/memory/tests/postgres-workerd.mjs index c941c08de..ecbcb055d 100644 --- a/packages/memory/tests/postgres-workerd.mjs +++ b/packages/memory/tests/postgres-workerd.mjs @@ -1,26 +1,25 @@ -import { spawn } from 'node:child_process' +import { spawnProcess } from '@agentskit/cross-platform' import { mkdtemp, rm } from 'node:fs/promises' import { tmpdir } from 'node:os' import { join } from 'node:path' import assert from 'node:assert/strict' +import { readJson, retry } from '@agentskit/net' assert(process.env.AK_POSTGRES_TEST_PORT, 'Set AK_POSTGRES_TEST_PORT to a local trust-auth PostgreSQL 16 port') const state = await mkdtemp(join(tmpdir(), 'ak-memory-workerd-')) -const child = spawn('pnpm', ['exec', 'wrangler', 'dev', '--config', 'tests/wrangler.postgres.jsonc', '--local', '--port', '8799', '--persist-to', state, '--var', `AK_POSTGRES_TEST_PORT:${process.env.AK_POSTGRES_TEST_PORT}`], { stdio: ['ignore', 'pipe', 'pipe'], env: { ...process.env, WRANGLER_SEND_METRICS: 'false' } }) -// Capture subprocess output internally: never publish connection diagnostics. -child.stdout.resume(); child.stderr.resume() +const child = spawnProcess('pnpm', ['exec', 'wrangler', 'dev', '--config', 'tests/wrangler.postgres.jsonc', '--local', '--port', '8799', '--persist-to', state, '--var', `AK_POSTGRES_TEST_PORT:${process.env.AK_POSTGRES_TEST_PORT}`], { stdin: 'ignore', stdout: 'ignore', stderr: 'ignore', env: { ...process.env, WRANGLER_SEND_METRICS: 'false' } }) +let running = true +void child.exited.then(() => { running = false }, () => { running = false }) try { - let response - for (let attempt = 0; attempt < 240; attempt++) { - assert(child.exitCode === null, 'wrangler exited before acceptance') - try { response = await fetch('http://127.0.0.1:8799', { signal: AbortSignal.timeout(15000) }); break } catch { await new Promise(resolve => setTimeout(resolve, 500)) } - } - assert(response, 'wrangler readiness timeout') + const response = await retry(async () => { + assert(running, 'wrangler exited before acceptance') + return fetch('http://127.0.0.1:8799', { signal: AbortSignal.timeout(15000) }) + }, { retries: 239, minDelayMs: 500, maxDelayMs: 500, jitter: 'none', shouldRetry: () => running }) assert.equal(response.status, 200, 'real workerd/Postgres request') - assert.deepEqual(await response.json(), { contract: 'CM1-CM6', isolation: 'tenant/session', parts: 'all five kinds', retention: 'newest N', abort: 'pre-query', recovery: 'passed' }) + assert.deepEqual(await readJson(response, { maxBytes: 4096 }), { contract: 'CM1-CM6', isolation: 'tenant/session', parts: 'all five kinds', retention: 'newest N', abort: 'pre-query', recovery: 'passed' }) console.log('workerd + PostgreSQL: CM1-CM6, isolation, parts, retention, abort and recovery passed') } finally { - child.kill('SIGTERM') - if (child.exitCode === null) await new Promise(resolve => child.once('exit', resolve)) + await child.kill('SIGTERM') + await child.exited.catch(() => {}) await rm(state, { recursive: true, force: true }) } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 55efaa020..b8887db74 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -77,6 +77,9 @@ importers: '@types/json-schema': specifier: ^7.0.15 version: 7.0.15 + '@types/react': + specifier: 19.2.17 + version: 19.2.17 '@vitest/coverage-v8': specifier: ^4.1.11 version: 4.1.11(vitest@4.1.11) @@ -1221,6 +1224,9 @@ importers: specifier: workspace:* version: link:../net devDependencies: + '@agentskit/cross-platform': + specifier: workspace:* + version: link:../cross-platform '@types/better-sqlite3': specifier: ^7.6.13 version: 7.6.13 From 713bb679c597c881ec1ba7cb2a23c49be5f83727 Mon Sep 17 00:00:00 2001 From: EmersonBraun Date: Tue, 6 Oct 2026 20:13:36 -0300 Subject: [PATCH 4/9] docs(memory): synchronize postgres backend evidence --- .../lib/deterministic-knowledge.generated.json | 6 +++--- apps/docs-next/lib/deterministic-site.generated.json | 4 ++-- apps/docs-next/lib/ecosystem-claims.snapshot.json | 2 +- apps/docs-next/lib/ecosystem-stats.snapshot.json | 2 +- ...08ceab4eaffc6e88165420be8b2ea20da60973365d6.json} | 6 +++--- apps/landing/lib/ecosystem-claims.snapshot.json | 2 +- apps/landing/lib/ecosystem-stats.snapshot.json | 2 +- ecosystem-claims.json | 2 +- readme-standard-v1.json | 12 ++++++------ 9 files changed, 19 insertions(+), 19 deletions(-) rename apps/docs-next/public/deterministic-knowledge/{d5ec6c6da96e33909607d43ca11ebd3f4ffe22bbdb09f9ceda7329601b5d51db.json => 0f0c04bee4e18b603df0f08ceab4eaffc6e88165420be8b2ea20da60973365d6.json} (99%) diff --git a/apps/docs-next/lib/deterministic-knowledge.generated.json b/apps/docs-next/lib/deterministic-knowledge.generated.json index d88af6aa5..23df67cd1 100644 --- a/apps/docs-next/lib/deterministic-knowledge.generated.json +++ b/apps/docs-next/lib/deterministic-knowledge.generated.json @@ -123,7 +123,7 @@ { "id": "claim.memory-backends", "kind": "restricted-faq", - "label": "18 memory backends", + "label": "19 memory backends", "match": { "type": "exact", "values": [ @@ -133,7 +133,7 @@ ] }, "answer": { - "markdown": "The verified AgentsKit ledger currently reports **18 memory backends**.", + "markdown": "The verified AgentsKit ledger currently reports **19 memory backends**.", "citations": [ { "id": "claim-memory-backends", @@ -2444,5 +2444,5 @@ } } ], - "contentHash": "sha256:d5ec6c6da96e33909607d43ca11ebd3f4ffe22bbdb09f9ceda7329601b5d51db" + "contentHash": "sha256:0f0c04bee4e18b603df0f08ceab4eaffc6e88165420be8b2ea20da60973365d6" } diff --git a/apps/docs-next/lib/deterministic-site.generated.json b/apps/docs-next/lib/deterministic-site.generated.json index f2589b0f1..da431efdb 100644 --- a/apps/docs-next/lib/deterministic-site.generated.json +++ b/apps/docs-next/lib/deterministic-site.generated.json @@ -3,8 +3,8 @@ "version": 1, "siteId": "agentskit-docs", "artifact": { - "href": "/deterministic-knowledge/d5ec6c6da96e33909607d43ca11ebd3f4ffe22bbdb09f9ceda7329601b5d51db.json", - "contentHash": "sha256:d5ec6c6da96e33909607d43ca11ebd3f4ffe22bbdb09f9ceda7329601b5d51db" + "href": "/deterministic-knowledge/0f0c04bee4e18b603df0f08ceab4eaffc6e88165420be8b2ea20da60973365d6.json", + "contentHash": "sha256:0f0c04bee4e18b603df0f08ceab4eaffc6e88165420be8b2ea20da60973365d6" }, "fallback": { "mode": "backend" diff --git a/apps/docs-next/lib/ecosystem-claims.snapshot.json b/apps/docs-next/lib/ecosystem-claims.snapshot.json index b215f019d..5b222e516 100644 --- a/apps/docs-next/lib/ecosystem-claims.snapshot.json +++ b/apps/docs-next/lib/ecosystem-claims.snapshot.json @@ -95,7 +95,7 @@ }, { "id": "memory-backends", - "value": 18, + "value": 19, "noun": "memory backends", "evidence": { "type": "repository-derivation", diff --git a/apps/docs-next/lib/ecosystem-stats.snapshot.json b/apps/docs-next/lib/ecosystem-stats.snapshot.json index 857925c6e..adde9ef2b 100644 --- a/apps/docs-next/lib/ecosystem-stats.snapshot.json +++ b/apps/docs-next/lib/ecosystem-stats.snapshot.json @@ -9,7 +9,7 @@ "catalogProviders": 222, "catalogModels": 7870, "skills": 22, - "memoryBackends": 18, + "memoryBackends": 19, "recipes": 64 }, "lists": { diff --git a/apps/docs-next/public/deterministic-knowledge/d5ec6c6da96e33909607d43ca11ebd3f4ffe22bbdb09f9ceda7329601b5d51db.json b/apps/docs-next/public/deterministic-knowledge/0f0c04bee4e18b603df0f08ceab4eaffc6e88165420be8b2ea20da60973365d6.json similarity index 99% rename from apps/docs-next/public/deterministic-knowledge/d5ec6c6da96e33909607d43ca11ebd3f4ffe22bbdb09f9ceda7329601b5d51db.json rename to apps/docs-next/public/deterministic-knowledge/0f0c04bee4e18b603df0f08ceab4eaffc6e88165420be8b2ea20da60973365d6.json index d88af6aa5..23df67cd1 100644 --- a/apps/docs-next/public/deterministic-knowledge/d5ec6c6da96e33909607d43ca11ebd3f4ffe22bbdb09f9ceda7329601b5d51db.json +++ b/apps/docs-next/public/deterministic-knowledge/0f0c04bee4e18b603df0f08ceab4eaffc6e88165420be8b2ea20da60973365d6.json @@ -123,7 +123,7 @@ { "id": "claim.memory-backends", "kind": "restricted-faq", - "label": "18 memory backends", + "label": "19 memory backends", "match": { "type": "exact", "values": [ @@ -133,7 +133,7 @@ ] }, "answer": { - "markdown": "The verified AgentsKit ledger currently reports **18 memory backends**.", + "markdown": "The verified AgentsKit ledger currently reports **19 memory backends**.", "citations": [ { "id": "claim-memory-backends", @@ -2444,5 +2444,5 @@ } } ], - "contentHash": "sha256:d5ec6c6da96e33909607d43ca11ebd3f4ffe22bbdb09f9ceda7329601b5d51db" + "contentHash": "sha256:0f0c04bee4e18b603df0f08ceab4eaffc6e88165420be8b2ea20da60973365d6" } diff --git a/apps/landing/lib/ecosystem-claims.snapshot.json b/apps/landing/lib/ecosystem-claims.snapshot.json index b215f019d..5b222e516 100644 --- a/apps/landing/lib/ecosystem-claims.snapshot.json +++ b/apps/landing/lib/ecosystem-claims.snapshot.json @@ -95,7 +95,7 @@ }, { "id": "memory-backends", - "value": 18, + "value": 19, "noun": "memory backends", "evidence": { "type": "repository-derivation", diff --git a/apps/landing/lib/ecosystem-stats.snapshot.json b/apps/landing/lib/ecosystem-stats.snapshot.json index 857925c6e..adde9ef2b 100644 --- a/apps/landing/lib/ecosystem-stats.snapshot.json +++ b/apps/landing/lib/ecosystem-stats.snapshot.json @@ -9,7 +9,7 @@ "catalogProviders": 222, "catalogModels": 7870, "skills": 22, - "memoryBackends": 18, + "memoryBackends": 19, "recipes": 64 }, "lists": { diff --git a/ecosystem-claims.json b/ecosystem-claims.json index b215f019d..5b222e516 100644 --- a/ecosystem-claims.json +++ b/ecosystem-claims.json @@ -95,7 +95,7 @@ }, { "id": "memory-backends", - "value": 18, + "value": 19, "noun": "memory backends", "evidence": { "type": "repository-derivation", diff --git a/readme-standard-v1.json b/readme-standard-v1.json index 1c22c7b4c..ffd126c3b 100644 --- a/readme-standard-v1.json +++ b/readme-standard-v1.json @@ -207,7 +207,7 @@ "ecosystem.json", "scripts/readme-fixtures.test.mjs" ], - "sourceHash": "sha256:a85fbd255e698f3e689d34c150c15e38be267ce58aee5c79a9d290a76f6f8881" + "sourceHash": "sha256:30201bf683f2a42dac4f0dae5100946d1cde8860c202184f8af38fac23efa000" }, "exceptions": [] }, @@ -987,7 +987,7 @@ "docs/STABILITY.md", "scripts/readme-fixtures.test.mjs" ], - "sourceHash": "sha256:e93bb599c99d5faf5c8b6f15137b1407933bd9c1e56650fa7313b6abaa677ad8" + "sourceHash": "sha256:0cd4dd8ba933c0935983c7e804e58dee5e28026b956739ed0cac2d078cbe61a8" }, "exceptions": [] }, @@ -2382,7 +2382,7 @@ "ecosystem-claims.json", "scripts/readme-fixtures.test.mjs" ], - "sourceHash": "sha256:0e4e7ae036016cb1258f3899acab4817d9827736f660049f9e7315567eb67277" + "sourceHash": "sha256:389f04f7dd66d64644c0158cf1de86fdd582caf51a321e8d4a5a7a450709e6a5" }, "exceptions": [ { @@ -2466,7 +2466,7 @@ "ecosystem-claims.json", "scripts/readme-fixtures.test.mjs" ], - "sourceHash": "sha256:fa59326d7fbdd34731f081627a839dc14d38465f61a0e3e5fd5cfe749b1972dd" + "sourceHash": "sha256:0c3024f845a9e3613056a2cc3aba797aa8ec19977778f7692ef4fc379c8f761a" }, "exceptions": [ { @@ -2550,7 +2550,7 @@ "ecosystem-claims.json", "scripts/readme-fixtures.test.mjs" ], - "sourceHash": "sha256:58bcdd16a16ef989d33a167ad23dedbacc257077fa591e213c6bc141d7470977" + "sourceHash": "sha256:e61d93f0fcc4ae3b0591e36b2bdf7e71f539c277dbf0601b9b08c6015a7e25ed" }, "exceptions": [ { @@ -2634,7 +2634,7 @@ "ecosystem-claims.json", "scripts/readme-fixtures.test.mjs" ], - "sourceHash": "sha256:3e729fefb23f11b621248e557a5ae76283fd8569f751675d49a6f91981c103ee" + "sourceHash": "sha256:a287f21e29b4e4a94b89631bd16501adf98affc26f11c010f6490051d42e5ba9" }, "exceptions": [ { From 1d0fc5b9d3c73e70c1fa54456cf057db4f725d06 Mon Sep 17 00:00:00 2001 From: EmersonBraun Date: Tue, 6 Oct 2026 20:19:29 -0300 Subject: [PATCH 5/9] docs(memory): record current postgres validation results --- .doc-bridge/capabilities.json | 2 +- .doc-bridge/index.json | 30 +++++----- docs/memory-postgres-validation.md | 89 ++++++++++++++++++++++++++++++ 3 files changed, 105 insertions(+), 16 deletions(-) diff --git a/.doc-bridge/capabilities.json b/.doc-bridge/capabilities.json index c74e37132..bedc6fbeb 100644 --- a/.doc-bridge/capabilities.json +++ b/.doc-bridge/capabilities.json @@ -7,7 +7,7 @@ "name": "AgentsKit", "root": "." }, - "contentHash": "1ae59c3192e5f5dbac0391a56bca95001c9c08bdc6eb7b19fd450c9d2bb509bb", + "contentHash": "1dfe7e39f3e686d77291abaed22f313658218ebdccd1d04380cb7249f9c3dfae", "artifacts": { "index": ".doc-bridge/index.json", "llmsTxt": ".doc-bridge/llms.txt" diff --git a/.doc-bridge/index.json b/.doc-bridge/index.json index bed2776db..5faa9efca 100644 --- a/.doc-bridge/index.json +++ b/.doc-bridge/index.json @@ -1,8 +1,8 @@ { "schemaVersion": 1, - "contentHash": "1ae59c3192e5f5dbac0391a56bca95001c9c08bdc6eb7b19fd450c9d2bb509bb", + "contentHash": "1dfe7e39f3e686d77291abaed22f313658218ebdccd1d04380cb7249f9c3dfae", "contentHashAlgo": "sha256-normalized-v1", - "generatedAt": "2026-10-06T22:38:24.385Z", + "generatedAt": "2026-10-06T23:18:00.301Z", "project": { "name": "AgentsKit", "root": "." @@ -6495,7 +6495,7 @@ "document", "human" ], - "contentHash": "a8a6d17d5f5d8bf4db2b0ba893dab692dd40a8a94838385bc8a3c3860c471206" + "contentHash": "9e6ab6298a1a4f44e28081541e9743688b8dea4d25658a6056f114648503a11b" }, { "id": "document:docs/PHASE-0-EXECUTION-PLAN.md", @@ -26112,7 +26112,7 @@ "ts", "src" ], - "contentHash": "76dd829118dff9d6ba0d4a7323de1c8ce7c87c9147e9f033e97c215dc411f41e" + "contentHash": "38168324926cd6a3ac442e258f7782ff4c079fa0f604c7dd89f50c7797545069" }, { "id": "module:packages/memory/src/redaction.ts", @@ -26764,7 +26764,7 @@ "mjs", "tests" ], - "contentHash": "c0aeb1f7fec006b78137c599a0bcc4c2a2def95eb647914b3009c96da1cb1a43" + "contentHash": "8ff9e14616c68478c21038f9f9b5699d745f77e296239b00fee208c6fc14ec25" }, { "id": "module:packages/memory/tests/postgres.integration.test.ts", @@ -38039,7 +38039,7 @@ "changes": {} }, "inputs": { - "hash": "c425cb131ac63828c39ccb6cbbf89d8cdaa02667966297f870504677a665f787", + "hash": "43de4dcb8112d883b5478e8e74ed8f280bebf17ea2e21290188632e9ba53d97c", "fileCount": 2529, "projectionVersion": 2 }, @@ -38062,9 +38062,9 @@ "projection": { "type": "retrieval-index", "schemaVersion": 1, - "contentHash": "c5244d26770625461d7fbc673196ba2f9ba5c8904170eb0f99ff71e498c611ac", + "contentHash": "eba46ea7d2bc0e68e8bfac5395c2e43f69f4b0fc86fca4b5b403ee4b2ef786c1", "contentHashAlgo": "sha256-normalized-v1", - "snapshotHash": "40688f7aaa3476bbe6f2667d803a93314760f5f5b76b84ea1c7b695994527610", + "snapshotHash": "2eb0c5cbab0771b5fe7396d265205d1a0a62239ce7ef278f7e721921823adb73", "overlayHash": "f99666ff9119084dd25c2974ae64eb6935ec2aa785ff5ad478fb9d541f7a5e94", "configurationHash": "9662cc07ea4ab203ff2ddf457d2db48b5375a7ab4a1f8fbc79dfebcaa8f9a00c", "lexiconVersion": 1, @@ -38097,7 +38097,7 @@ "averageFieldLength": { "aliases": 3.0148953301127213, "body": 60.74235104669887, - "headings": 3.995571658615137, + "headings": 3.999194847020934, "path": 7.61231884057971, "summary": 4.552334943639291, "symbols": 7.4343800322061195, @@ -73261,7 +73261,7 @@ ], "fields": { "title": "PostgreSQL ChatMemory task contract and validation", - "headings": "PostgreSQL ChatMemory task contract and validation Current evidence (2026-10-06)", + "headings": "PostgreSQL ChatMemory task contract and validation Current evidence (2026-10-06) CH-C2 guardrail repair (2026-10-06)", "path": "docs/memory-postgres-validation.md", "symbols": "", "summary": "Intent: implement the existing public ChatMemory contract with BYO Drizzle/pg, without changing Core contracts. Authorized scope: packages/memory, corresponding docs/changeset, and pnpm-lock.yaml (coordinator explicitly approved lock changes). SessionStorage CAS/leases are owned by another task and excluded by coordinator confirmation.", @@ -73307,7 +73307,7 @@ } ] }, - "contentHash": "a8a6d17d5f5d8bf4db2b0ba893dab692dd40a8a94838385bc8a3c3860c471206", + "contentHash": "9e6ab6298a1a4f44e28081541e9743688b8dea4d25658a6056f114648503a11b", "provenance": "observed", "confidence": "observed" }, @@ -150708,7 +150708,7 @@ } ] }, - "contentHash": "76dd829118dff9d6ba0d4a7323de1c8ce7c87c9147e9f033e97c215dc411f41e", + "contentHash": "38168324926cd6a3ac442e258f7782ff4c079fa0f604c7dd89f50c7797545069", "provenance": "observed", "confidence": "observed" }, @@ -153631,7 +153631,7 @@ ], "outbound": [] }, - "contentHash": "c0aeb1f7fec006b78137c599a0bcc4c2a2def95eb647914b3009c96da1cb1a43", + "contentHash": "8ff9e14616c68478c21038f9f9b5699d745f77e296239b00fee208c6fc14ec25", "provenance": "observed", "confidence": "observed" }, @@ -192880,7 +192880,7 @@ ], "outbound": [] }, - "contentHash": "4def7b1bf262387313704e9a08001093ebea07bfe1ca7314e047502b409b3ea2", + "contentHash": "37d15cf316ba7263ef7fb9a66bdb46eea9a87797ecce3e2d7a5db6f7c958e0e8", "provenance": "observed", "confidence": "observed", "ownershipId": "memory" @@ -197383,7 +197383,7 @@ ], "outbound": [] }, - "contentHash": "72455ca17e0e3a0993304faf3e27f2f918b530261e13bb5906c2b51fed891acf", + "contentHash": "810079c7f75819f08fe65c7bce09029d67ff76264a4beac4d58b0572b110b345", "provenance": "observed", "confidence": "observed" } diff --git a/docs/memory-postgres-validation.md b/docs/memory-postgres-validation.md index d8f16545c..a548ce78a 100644 --- a/docs/memory-postgres-validation.md +++ b/docs/memory-postgres-validation.md @@ -54,3 +54,92 @@ Validated: C1–C6 local executable artifact behavior. Partially validated: C7 l No structural contract decision was introduced: this backend implements ADR 0003 using the existing versioned Core record and validator. No ADR/guardrail was changed. The only default-export exception is Wrangler’s required module entry in the test fixture; public package exports remain named. Final reconciliation: current implementation digest rechecked; confidentiality/attribution scan and `git diff --check` passed. Task-owned PostgreSQL container removed; workerd runner removed its temporary persistence directories and exited. Build/declaration and coverage outputs remain local ignored verification artifacts. Local commit includes this report; no push, PR, release, external message, or published artifact was created. Next action: coordinator reviews the diff/evidence and resolves the blocked doc-bridge environment before approving overall completion. + + +## CH-C2 guardrail repair (2026-10-06) + +Contract: **fix** the branch's actual validation failures. Authorized scope is +memory's acceptance runner and public API documentation, workspace dependency +resolution, the existing size/API/freshness records, generated backend-count +artifacts, this report and doc-bridge projections. Core contracts, dependency +versions outside this repair, guardrail rules/allowlists, other repositories, +push/PR/release and unrelated processes are excluded. Acceptance requires green +net ratchet and docs typecheck, the requested sequential package/docs/global +checks, real execution of the changed runner, and local commits with evidence +reported to the coordinator. Goal approval is the CH-C2 dispatch; parent evidence +approval remains with the coordinator. No new structural contract or ADR. + +Budget: offline cached dependency installation, Turbo concurrency 2, +VITEST_MAX_WORKERS=1, one task-owned trust-auth PostgreSQL 16 container and local +workerd. No CI, remote database, publication or credentials. A task-owned isolated +local clone at clean main revision `0e1c1aa92e69f29f41241e49753ecab8ae279119` +was used to compare failures; the shared temporary baseline disappeared during +an earlier attempt, so those interrupted results were discarded. + +Fixes: + +- Replace handwritten fetch retry and unbounded JSON parsing with existing net + retry/readJson helpers; cap the acceptance response at 4096 bytes. Use the + existing cross-platform spawnProcess helper and process-tree cleanup, adding + it only as memory's workspace dev dependency. No ratchet rule was suppressed. +- Both branches' lockfiles already contain React types 18 and 19. The failing + installation selected private-hoisted React 18 for dependencies without an + explicit types peer, while clean main selected 19. Exclude React types from + private hoisting and provide the existing 19.2.17 version at the root for + fallback resolution. Frozen offline reinstallation succeeds; lock changes + add only root React types and the local workspace dev dependency, six lines. + No React UI types/components or unrelated dependency versions were changed. +- Register the existing PostgreSQL subpath in the API snapshot and size targets, + document its three previously undocumented exports, and regenerate the + existing ledger/snapshots from 18 to 19 backends. Refresh affected source hashes + with review dates preserved; no human approval or attestation was manufactured. + +Current implementation/evidence revision: `713bb679` (repair `aaaa175a`, derived +artifact synchronization `713bb679`). SHA-256 of ordered inputs `.npmrc`, +`package.json`, `pnpm-lock.yaml`, `packages/memory/package.json`, +`packages/memory/src/postgres.ts`, `packages/memory/tests/postgres-workerd.mjs`, +`.size-limit.json`, `docs/stability/public-api-v1.json`, +`readme-standard-v1.json`, `ecosystem-claims.json` (path, NUL, bytes, NUL): +`9defc8b67a3abe1622c2685822c6ce44647fdb038db9925ca9ddc519c4dd3888`. +The final report/index commit does not change these implementation inputs. + +| Criterion | Executed evidence on current inputs | Result | +|---|---|---| +| N1 approved net helpers, no ratchet growth | `node scripts/check-net-rules.mjs`; global cross-platform/net gates | validated: zero new findings; baselines/rules unchanged | +| N2 dependency resolution and docs types | frozen offline install; `pnpm --filter @agentskit/docs-next exec tsc --noEmit` | validated: exit 0, no React type edits or unrelated version updates | +| N3 memory build/test and runner | package build/test; `AK_POSTGRES_TEST_PORT=55439 pnpm --filter @agentskit/memory test:workerd` | validated: 33 files / 242 tests; real workerd+PG CM1–CM6, isolation, parts, retention, abort and recovery passed | +| N4 docs build | `pnpm exec turbo run build --filter=@agentskit/docs-next --concurrency=2` | validated: 15/15 tasks, 14 cached; exit 0 | +| N5 global tests | `AK_POSTGRES_TEST_PORT=55439 VITEST_MAX_WORKERS=1 pnpm test` | validated: 77/77 tasks, 72 cached; exit 0; cached tasks are explicitly included | +| N6 quality gates | `VITEST_MAX_WORKERS=1 pnpm check:quality-gates` | validated: all 52 gates passed; initial seven failures were repaired | +| N7 doc-bridge after lock/report | regenerate index, then standalone `pnpm docs:bridge:gate` | validated: standalone gate exit 0 after report/index regeneration; index freshness, 27 human-doc links and documentation conformance pass | +| N8 local commits, scope and cleanup | final diff/status and task-owned resource reconciliation | validated local repair/docs commits and diff; final report/index commit in worker receipt; coordinator review pending | + +Clean-main comparison: API JSDoc and size-target checks passed before the shared +baseline disappeared. The owned isolated main passed README Standard, its tests +and cross-platform ratchet. Its doc-quality certification test reproduced the +`doc-bridge-live` doctor failure (19 passed / 1 failed, clean source verified); +its unchanged doc-bridge index was stale in the recipe gate. Missing build +outputs in that isolated recipe setup were environmental and were not presented +as source regressions. In CH-C2, regeneration repaired the live/index failures: +all 52 quality gates now pass, so no remaining global-gate failure is being +classified as pre-existing or waived. + +Validated: N1–N7 executable results, including real changed runner behavior. +Partially validated: N8 parent review; +derived numeric documentation content has build and deterministic-answer test +evidence, without a claimed browser/visual review. Not analyzed: browser +interaction, responsive layout, accessibility, contrast/overflow and visual +approval for generated count surfaces; production performance, RLS, CAS/leases +and deployed runtimes. Blocked: no remaining executed global gate; any required +visual/human evidence remains for coordinator review. Not applicable: changes to +UI components/styles, external deployment/publication, credentials or CI. +State: AWAITING_HUMAN_APPROVAL for parent evidence review; this worker does not +approve its output or declare the parent feature complete. + +Task-owned PostgreSQL container was removed after the real runner passed; the +runner removed its temporary persistence state and awaited its own process tree. +The isolated baseline and task-owned logs are removed in final reconciliation. +Ignored build/declaration/cache outputs remain local. No unrelated process was +terminated, no push/PR/release occurred, and no agent attribution was added. +Next human action: coordinator reviews the commits/evidence and determines any +required visual review before parent completion. From 7a665a8d8988e1a0bf0ffafdb08395d6a27136c6 Mon Sep 17 00:00:00 2001 From: EmersonBraun Date: Tue, 6 Oct 2026 21:12:51 -0300 Subject: [PATCH 6/9] fix(memory): remove global React type workaround --- .npmrc | 2 -- package.json | 1 - pnpm-lock.yaml | 3 --- 3 files changed, 6 deletions(-) diff --git a/.npmrc b/.npmrc index bcf3cef26..94a06c218 100644 --- a/.npmrc +++ b/.npmrc @@ -1,3 +1 @@ access=public -hoist-pattern[]=* -hoist-pattern[]=!@types/react diff --git a/package.json b/package.json index a1fa35867..20161823b 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,6 @@ "@playwright/test": "^1.63.0", "@size-limit/file": "^12.1.0", "@types/json-schema": "^7.0.15", - "@types/react": "19.2.17", "@vitest/coverage-v8": "^4.1.11", "esbuild": "0.28.1", "husky": "^9.1.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b8887db74..a6c75a351 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -77,9 +77,6 @@ importers: '@types/json-schema': specifier: ^7.0.15 version: 7.0.15 - '@types/react': - specifier: 19.2.17 - version: 19.2.17 '@vitest/coverage-v8': specifier: ^4.1.11 version: 4.1.11(vitest@4.1.11) From e07dd305635c0321c6759b8262650a6519fde1d3 Mon Sep 17 00:00:00 2001 From: EmersonBraun Date: Tue, 6 Oct 2026 21:23:22 -0300 Subject: [PATCH 7/9] docs(memory): record isolated React resolution evidence --- .doc-bridge/capabilities.json | 2 +- .doc-bridge/index.json | 594 ++++++++++++++------------ docs/memory-postgres-validation.md | 7 + docs/memory-react-resolution-ch-c3.md | 125 ++++++ 4 files changed, 458 insertions(+), 270 deletions(-) create mode 100644 docs/memory-react-resolution-ch-c3.md diff --git a/.doc-bridge/capabilities.json b/.doc-bridge/capabilities.json index bedc6fbeb..b6c291c0b 100644 --- a/.doc-bridge/capabilities.json +++ b/.doc-bridge/capabilities.json @@ -7,7 +7,7 @@ "name": "AgentsKit", "root": "." }, - "contentHash": "1dfe7e39f3e686d77291abaed22f313658218ebdccd1d04380cb7249f9c3dfae", + "contentHash": "611cc47390052646de9bca22deffc486955a3857a9bd35479a466a571a0e2d00", "artifacts": { "index": ".doc-bridge/index.json", "llmsTxt": ".doc-bridge/llms.txt" diff --git a/.doc-bridge/index.json b/.doc-bridge/index.json index 5faa9efca..6f1a25630 100644 --- a/.doc-bridge/index.json +++ b/.doc-bridge/index.json @@ -1,8 +1,8 @@ { "schemaVersion": 1, - "contentHash": "1dfe7e39f3e686d77291abaed22f313658218ebdccd1d04380cb7249f9c3dfae", + "contentHash": "611cc47390052646de9bca22deffc486955a3857a9bd35479a466a571a0e2d00", "contentHashAlgo": "sha256-normalized-v1", - "generatedAt": "2026-10-06T23:18:00.301Z", + "generatedAt": "2026-10-07T00:24:08.255Z", "project": { "name": "AgentsKit", "root": "." @@ -6495,7 +6495,19 @@ "document", "human" ], - "contentHash": "9e6ab6298a1a4f44e28081541e9743688b8dea4d25658a6056f114648503a11b" + "contentHash": "3489be9e97704e5424df29fbe1e2193aef82bec91c6653558a15c6d556db8394" + }, + { + "id": "document:docs/memory-react-resolution-ch-c3.md", + "type": "document", + "title": "CH-C3: remove the global React type workaround", + "path": "docs/memory-react-resolution-ch-c3.md", + "description": "State: AWAITING_HUMAN_APPROVAL; worker implementation and checks are validated, with coordinator review outstanding. No current blocker remains.", + "tags": [ + "document", + "human" + ], + "contentHash": "adbc4680481abff16b9d503be9912059b7b133fadb53d6886adea35e1381dfcc" }, { "id": "document:docs/PHASE-0-EXECUTION-PLAN.md", @@ -38039,8 +38051,8 @@ "changes": {} }, "inputs": { - "hash": "43de4dcb8112d883b5478e8e74ed8f280bebf17ea2e21290188632e9ba53d97c", - "fileCount": 2529, + "hash": "2a4510d22ffd99c826c0a3b9a3156952ee3dadd8ccbefe605f53e48409221b9e", + "fileCount": 2530, "projectionVersion": 2 }, "retrieval": { @@ -38062,9 +38074,9 @@ "projection": { "type": "retrieval-index", "schemaVersion": 1, - "contentHash": "eba46ea7d2bc0e68e8bfac5395c2e43f69f4b0fc86fca4b5b403ee4b2ef786c1", + "contentHash": "ad271662e6177981e5e630d7a75efcb0af200c0061095f86a4de96478c9fa915", "contentHashAlgo": "sha256-normalized-v1", - "snapshotHash": "2eb0c5cbab0771b5fe7396d265205d1a0a62239ce7ef278f7e721921823adb73", + "snapshotHash": "ce1f8c3138d5015fc1443c1c2fbeca3083ab43c58ac2fa5888317bd3dd412009", "overlayHash": "f99666ff9119084dd25c2974ae64eb6935ec2aa785ff5ad478fb9d541f7a5e94", "configurationHash": "9662cc07ea4ab203ff2ddf457d2db48b5375a7ab4a1f8fbc79dfebcaa8f9a00c", "lexiconVersion": 1, @@ -38084,7 +38096,7 @@ }, "lexical": { "version": 1, - "documentCount": 2484, + "documentCount": 2485, "fieldNames": [ "aliases", "body", @@ -38095,13 +38107,13 @@ "title" ], "averageFieldLength": { - "aliases": 3.0148953301127213, - "body": 60.74235104669887, - "headings": 3.999194847020934, - "path": 7.61231884057971, - "summary": 4.552334943639291, - "symbols": 7.4343800322061195, - "title": 3.3482286634460547 + "aliases": 3.014486921529175, + "body": 60.91106639839034, + "headings": 4.007243460764587, + "path": 7.612474849094568, + "summary": 4.556539235412475, + "symbols": 7.431388329979879, + "title": 3.3501006036217302 } }, "entries": [ @@ -38520,7 +38532,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.003649, + "pagerank": 0.003629, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/reference/examples/discord-bot.mdx" @@ -38559,7 +38571,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.003649, + "pagerank": 0.003629, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/reference/examples/dspy.mdx" @@ -38637,7 +38649,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.003649, + "pagerank": 0.003629, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/reference/examples/embedded.mdx" @@ -38958,7 +38970,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.003649, + "pagerank": 0.003629, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/reference/examples/slack-bot.mdx" @@ -38997,7 +39009,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.003649, + "pagerank": 0.003629, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/reference/examples/teams-bot.mdx" @@ -39353,7 +39365,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.003649, + "pagerank": 0.003629, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/data/providers/embedders.mdx" @@ -39468,7 +39480,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.003649, + "pagerank": 0.003629, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/production/cli/index.mdx" @@ -39631,7 +39643,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.003649, + "pagerank": 0.003629, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/production/security/index.mdx" @@ -39794,7 +39806,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.002811, + "pagerank": 0.002795, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/reference/packages/eval-braintrust.mdx" @@ -39878,7 +39890,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.002811, + "pagerank": 0.002795, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/production/evals/snapshots.mdx" @@ -39917,7 +39929,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.003649, + "pagerank": 0.003629, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/production/evals/replay.mdx" @@ -39956,7 +39968,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.002811, + "pagerank": 0.002795, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/production/evals/snapshots.mdx" @@ -39995,7 +40007,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.002392, + "pagerank": 0.002378, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/ui/index.mdx" @@ -40065,7 +40077,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.002811, + "pagerank": 0.002795, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/agents/tools/integrations-catalog.mdx" @@ -40135,7 +40147,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.003649, + "pagerank": 0.003629, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/data/memory/index.mdx" @@ -40174,7 +40186,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.003649, + "pagerank": 0.003629, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/data/rag/loaders.mdx" @@ -40213,7 +40225,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.003649, + "pagerank": 0.003629, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/data/rag/rerank.mdx" @@ -40252,7 +40264,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.002392, + "pagerank": 0.002378, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/ui/index.mdx" @@ -40291,7 +40303,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.002811, + "pagerank": 0.002795, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/production/security/sandbox.mdx" @@ -40330,7 +40342,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.002392, + "pagerank": 0.002378, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/ui/index.mdx" @@ -40369,7 +40381,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.002392, + "pagerank": 0.002378, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/ui/index.mdx" @@ -40439,7 +40451,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.002811, + "pagerank": 0.002795, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/agents/tools/integrations-catalog.mdx" @@ -40529,7 +40541,7 @@ "aliases": "area" }, "graph": { - "pagerank": 0.003649, + "pagerank": 0.003629, "inboundLinks": 1, "coveredBy": [ "document:apps/docs-next/content/docs/production/observability/devtools.mdx" @@ -41350,7 +41362,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -41436,7 +41448,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -41489,7 +41501,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.005885, + "pagerank": 0.005852, "inboundLinks": 10, "coveredBy": [], "mentionedBy": [ @@ -41685,7 +41697,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -44046,7 +44058,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -46085,7 +46097,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -46227,7 +46239,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.003649, + "pagerank": 0.003629, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -46906,7 +46918,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -48298,7 +48310,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -50121,7 +50133,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -50175,7 +50187,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -50221,7 +50233,7 @@ "aliases": "adapters document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -50562,7 +50574,7 @@ "aliases": "angular document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -50668,7 +50680,7 @@ "aliases": "cli document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -50814,7 +50826,7 @@ "aliases": "core document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -50975,7 +50987,7 @@ "aliases": "cross-platform document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -51091,7 +51103,7 @@ "aliases": "doc-bridge document agent" }, "graph": { - "pagerank": 0.002071, + "pagerank": 0.00206, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -51138,7 +51150,7 @@ "aliases": "eval-braintrust document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -51199,7 +51211,7 @@ "aliases": "eval document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -51426,7 +51438,7 @@ "aliases": "ink document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -51537,7 +51549,7 @@ "aliases": "integrations document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -51678,7 +51690,7 @@ "aliases": "mcp document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -51754,7 +51766,7 @@ "aliases": "memory document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -51925,7 +51937,7 @@ "aliases": "net document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -51986,7 +51998,7 @@ "aliases": "observability-langfuse document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -52052,7 +52064,7 @@ "aliases": "observability document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -52183,7 +52195,7 @@ "aliases": "rag document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -52259,7 +52271,7 @@ "aliases": "react-native document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -52355,7 +52367,7 @@ "aliases": "react document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -52441,7 +52453,7 @@ "aliases": "runtime document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -52582,7 +52594,7 @@ "aliases": "sandbox document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -52663,7 +52675,7 @@ "aliases": "skills document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -52834,7 +52846,7 @@ "aliases": "solid document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -52910,7 +52922,7 @@ "aliases": "statechart document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -52986,7 +52998,7 @@ "aliases": "svelte document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -53072,7 +53084,7 @@ "aliases": "templates document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -53168,7 +53180,7 @@ "aliases": "tools document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -53469,7 +53481,7 @@ "aliases": "validation document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -53535,7 +53547,7 @@ "aliases": "vue document agent" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -53693,7 +53705,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 2, "coveredBy": [], "mentionedBy": [], @@ -54662,7 +54674,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -55200,7 +55212,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -56019,7 +56031,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -56590,7 +56602,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -56639,7 +56651,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -56849,7 +56861,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -57154,7 +57166,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -57403,7 +57415,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -58275,7 +58287,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -58319,7 +58331,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -58402,7 +58414,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -58977,7 +58989,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -59054,7 +59066,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -59319,7 +59331,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -59558,7 +59570,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -59617,7 +59629,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -59686,7 +59698,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -59840,7 +59852,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -59899,7 +59911,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -59983,7 +59995,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -60087,7 +60099,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -60131,7 +60143,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -60265,7 +60277,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -60319,7 +60331,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -60403,7 +60415,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -60507,7 +60519,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -60686,7 +60698,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -60750,7 +60762,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -60794,7 +60806,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -61017,7 +61029,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -61106,7 +61118,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -61165,7 +61177,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -61234,7 +61246,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -61278,7 +61290,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -61362,7 +61374,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -61406,7 +61418,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -61510,7 +61522,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -61729,7 +61741,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -62514,7 +62526,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.003649, + "pagerank": 0.003629, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -65479,7 +65491,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -66322,7 +66334,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -66484,7 +66496,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.003649, + "pagerank": 0.003629, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -66529,7 +66541,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -67187,7 +67199,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -67792,7 +67804,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -67904,7 +67916,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 3, "coveredBy": [], "mentionedBy": [ @@ -68188,7 +68200,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.007916, + "pagerank": 0.007872, "inboundLinks": 8, "coveredBy": [], "mentionedBy": [ @@ -68289,7 +68301,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.007761, + "pagerank": 0.007717, "inboundLinks": 3, "coveredBy": [], "mentionedBy": [ @@ -68340,7 +68352,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.030756, + "pagerank": 0.030584, "inboundLinks": 64, "coveredBy": [], "mentionedBy": [ @@ -68791,7 +68803,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.023697, + "pagerank": 0.023564, "inboundLinks": 11, "coveredBy": [], "mentionedBy": [], @@ -68901,7 +68913,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.013325, + "pagerank": 0.013251, "inboundLinks": 10, "coveredBy": [], "mentionedBy": [], @@ -69016,7 +69028,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.009113, + "pagerank": 0.009063, "inboundLinks": 8, "coveredBy": [], "mentionedBy": [], @@ -69126,7 +69138,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.006793, + "pagerank": 0.006755, "inboundLinks": 7, "coveredBy": [], "mentionedBy": [], @@ -69251,7 +69263,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.006225, + "pagerank": 0.00619, "inboundLinks": 7, "coveredBy": [], "mentionedBy": [], @@ -69366,7 +69378,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.0061, + "pagerank": 0.006065, "inboundLinks": 5, "coveredBy": [], "mentionedBy": [], @@ -69506,7 +69518,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002215, + "pagerank": 0.002202, "inboundLinks": 2, "coveredBy": [], "mentionedBy": [], @@ -69561,7 +69573,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002638, + "pagerank": 0.002623, "inboundLinks": 4, "coveredBy": [], "mentionedBy": [ @@ -69674,7 +69686,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.013437, + "pagerank": 0.013361, "inboundLinks": 5, "coveredBy": [], "mentionedBy": [], @@ -69759,7 +69771,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002047, + "pagerank": 0.002035, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -69839,7 +69851,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002047, + "pagerank": 0.002035, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -69909,7 +69921,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.003079, + "pagerank": 0.003062, "inboundLinks": 3, "coveredBy": [], "mentionedBy": [], @@ -70004,7 +70016,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002047, + "pagerank": 0.002035, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -70074,7 +70086,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002047, + "pagerank": 0.002035, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -70129,7 +70141,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002047, + "pagerank": 0.002035, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -70174,7 +70186,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002047, + "pagerank": 0.002035, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -70219,7 +70231,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.004963, + "pagerank": 0.004935, "inboundLinks": 5, "coveredBy": [], "mentionedBy": [], @@ -70299,7 +70311,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.004003, + "pagerank": 0.003981, "inboundLinks": 3, "coveredBy": [], "mentionedBy": [], @@ -70374,7 +70386,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002047, + "pagerank": 0.002035, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -70413,7 +70425,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002047, + "pagerank": 0.002035, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -70458,7 +70470,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.038142, + "pagerank": 0.037929, "inboundLinks": 13, "coveredBy": [], "mentionedBy": [], @@ -70603,7 +70615,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.019334, + "pagerank": 0.019226, "inboundLinks": 10, "coveredBy": [], "mentionedBy": [], @@ -70703,7 +70715,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.004197, + "pagerank": 0.004174, "inboundLinks": 5, "coveredBy": [], "mentionedBy": [], @@ -70818,7 +70830,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.003483, + "pagerank": 0.003463, "inboundLinks": 4, "coveredBy": [], "mentionedBy": [], @@ -70888,7 +70900,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.003165, + "pagerank": 0.003147, "inboundLinks": 3, "coveredBy": [], "mentionedBy": [], @@ -70963,7 +70975,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002047, + "pagerank": 0.002035, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -71008,7 +71020,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002885, + "pagerank": 0.002869, "inboundLinks": 2, "coveredBy": [], "mentionedBy": [], @@ -71088,7 +71100,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002047, + "pagerank": 0.002035, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -71127,7 +71139,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002047, + "pagerank": 0.002035, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -71177,7 +71189,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002047, + "pagerank": 0.002035, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -71237,7 +71249,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002606, + "pagerank": 0.002591, "inboundLinks": 3, "coveredBy": [], "mentionedBy": [ @@ -71334,7 +71346,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002606, + "pagerank": 0.002591, "inboundLinks": 3, "coveredBy": [], "mentionedBy": [ @@ -71456,7 +71468,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002047, + "pagerank": 0.002035, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -71501,7 +71513,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002047, + "pagerank": 0.002035, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -71551,7 +71563,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002047, + "pagerank": 0.002035, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -71606,7 +71618,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.003065, + "pagerank": 0.003048, "inboundLinks": 13, "coveredBy": [], "mentionedBy": [ @@ -71891,7 +71903,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -73207,7 +73219,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [ @@ -73261,7 +73273,7 @@ ], "fields": { "title": "PostgreSQL ChatMemory task contract and validation", - "headings": "PostgreSQL ChatMemory task contract and validation Current evidence (2026-10-06) CH-C2 guardrail repair (2026-10-06)", + "headings": "PostgreSQL ChatMemory task contract and validation Current evidence (2026-10-06) CH-C2 guardrail repair (2026-10-06) CH-C3 follow-up", "path": "docs/memory-postgres-validation.md", "symbols": "", "summary": "Intent: implement the existing public ChatMemory contract with BYO Drizzle/pg, without changing Core contracts. Authorized scope: packages/memory, corresponding docs/changeset, and pnpm-lock.yaml (coordinator explicitly approved lock changes). SessionStorage CAS/leases are owned by another task and excluded by coordinator confirmation.", @@ -73269,12 +73281,17 @@ "aliases": "document human" }, "graph": { - "pagerank": 0, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], "inbound": [], "outbound": [ + { + "kind": "links-to", + "id": "document:docs/memory-react-resolution-ch-c3.md", + "confidence": "observed" + }, { "kind": "mentions", "id": "module:packages/memory/src/postgres.ts", @@ -73307,7 +73324,46 @@ } ] }, - "contentHash": "9e6ab6298a1a4f44e28081541e9743688b8dea4d25658a6056f114648503a11b", + "contentHash": "3489be9e97704e5424df29fbe1e2193aef82bec91c6653558a15c6d556db8394", + "provenance": "observed", + "confidence": "observed" + }, + { + "id": "document:docs/memory-react-resolution-ch-c3.md", + "kind": "document", + "path": "docs/memory-react-resolution-ch-c3.md", + "title": "CH-C3: remove the global React type workaround", + "summary": "State: AWAITING_HUMAN_APPROVAL; worker implementation and checks are validated, with coordinator review outstanding. No current blocker remains.", + "audience": "human", + "aliases": [], + "tags": [ + "document", + "human" + ], + "fields": { + "title": "CH-C3: remove the global React type workaround", + "headings": "CH-C3: remove the global React type workaround Contract and budget Findings and smallest repair Evidence binding Criterion results Attempts and limits", + "path": "docs/memory-react-resolution-ch-c3.md", + "symbols": "", + "summary": "State: AWAITING_HUMAN_APPROVAL; worker implementation and checks are validated, with coordinator review outstanding. No current blocker remains.", + "body": "CH-C3: remove the global React type workaround State: AWAITING HUMAN APPROVAL; worker implementation and checks are validated, with coordinator review outstanding. No current blocker remains. Contract and budget Approved intent: fix dependency resolution in this worktree without a global hoisting workaround. Scope: revert CH-C2's .npmrc and root package.json additions, keep the lockfile minimal, investigate memory's Drizzle/pg metadata, run docs-next type-check/build, memory build/test (242), ratchets, global tests, quality gates and doc-bridge freshness, make small local commits and report here. No push, PR, publication, deployment, real credentials, unrelated process cleanup or changes to other packages. No UI implementation or public contract changes; UI visual approval and a structural ADR are not applicable. This dispatch is goal authorization; final approval belongs to the coordinator. Budget: local/offline dependency installs, existing repository checks and cached Turbo evidence, --concurrency=2 , VITEST MAX WORKERS=1 ; no CI. One task-owned trust-auth PostgreSQL 16 container bound to 127.0.0.1:55440 provides the required real database test. An isolated manifest-only install tests fresh hoisting; its directory is task-owned and is removed after inspection. Findings and smallest repair - Reverted the two hoist-pattern lines and root @types/react dev dependency. The lockfile differs by only the three corresponding importer lines; no dependency versions or peer snapshots change. Frozen offline installation accepts this lockfile. An initial unfrozen install refreshed unrelated Cloudflare snapshots; that churn was discarded before validation. - Memory already declares Drizzle and pg optional peers, with both present as dev dependencies and @types/pg available for development. Their metadata needs no additional change. Adding a React dev dependency to memory would introduce an unrelated dependency with no supporting evidence. - Drizzle 0.45.3 declares @types/react ^18.2.45 only in its own devDependencies, not in peerDependencies or dependencies. Published dependency installation does not install a library's devDependencies. pnpm --filter @agentskit/memory why @types/react has no result. pg likewise has no React dependency. - pnpm why -r @types/react identifies the React 18 path as: React 19.2.17 remains declared by docs-next and React workspace consumers. The before/after tree diff contains exactly one removed line: ├── agentskit@0.3.0 (devDependencies) under React 19; all other paths match. - A clean manifest-only install (all workspace package manifests, root lockfile, workspace config and reverted .npmrc) using pnpm install --offline --frozen-lockfile --ignore-scripts exits 0 and selects private-hoisted React 19.2.17. Root node modules/@types/react is absent. The existing worktree reinstallation selects the same version and docs-next type-check passes. Thus no memory-origin React conflict reproduces on the current locked tree. - CH-C2 reported an installation that privately hoisted React 18; that old installation's hoist map was not retained. Its exact historical selection cause is partially validated , not reconstructed or attributed to Drizzle. The evidence establishes the React 18 dependency origin and validates that the current source needs no global or package-local React workaround. Evidence binding Starting revision: 1d0fc5b9d3c73e70c1fa54456cf057db4f725d06 . Implementation input SHA-256 (ordered path, NUL, bytes, NUL for .npmrc , package.json , pnpm-lock.yaml , packages/memory/package.json ): 4741232b735738502a3628458899b06cbd5e42cc64036942a49ed9944a1f90b8 . Implementation commit: 7a665a8d . Later report/index commits do not alter those inputs; their exact commit is included in the worker receipt. Criterion results ID Criterion Evidence Current result --- --- --- --- C1 No global workaround; minimal lock diff: .npmrc -2, root manifest -1, lock -3; frozen offline install exit 0 validated C2 Memory metadata and depen", + "aliases": "document human" + }, + "graph": { + "pagerank": 0.003629, + "inboundLinks": 1, + "coveredBy": [], + "mentionedBy": [], + "inbound": [ + { + "kind": "links-to", + "id": "document:docs/memory-postgres-validation.md", + "confidence": "observed" + } + ], + "outbound": [] + }, + "contentHash": "adbc4680481abff16b9d503be9912059b7b133fadb53d6886adea35e1381dfcc", "provenance": "observed", "confidence": "observed" }, @@ -73333,7 +73389,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002531, + "pagerank": 0.002517, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -73488,7 +73544,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -73811,7 +73867,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002687, + "pagerank": 0.002672, "inboundLinks": 2, "coveredBy": [], "mentionedBy": [ @@ -74124,7 +74180,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002071, + "pagerank": 0.00206, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -74163,7 +74219,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.00871, + "pagerank": 0.008661, "inboundLinks": 4, "coveredBy": [], "mentionedBy": [ @@ -74276,7 +74332,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.003649, + "pagerank": 0.003629, "inboundLinks": 2, "coveredBy": [], "mentionedBy": [ @@ -74333,7 +74389,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -74407,7 +74463,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.002586, + "pagerank": 0.002571, "inboundLinks": 7, "coveredBy": [], "mentionedBy": [ @@ -74524,7 +74580,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.023445, + "pagerank": 0.023314, "inboundLinks": 4, "coveredBy": [], "mentionedBy": [ @@ -74602,7 +74658,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.078961, + "pagerank": 0.078519, "inboundLinks": 64, "coveredBy": [], "mentionedBy": [ @@ -75156,7 +75212,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.02126, + "pagerank": 0.021141, "inboundLinks": 4, "coveredBy": [], "mentionedBy": [ @@ -75493,7 +75549,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -75577,7 +75633,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.012261, + "pagerank": 0.012192, "inboundLinks": 2, "coveredBy": [], "mentionedBy": [ @@ -75858,7 +75914,7 @@ "aliases": "document human" }, "graph": { - "pagerank": 0.036331, + "pagerank": 0.036128, "inboundLinks": 13, "coveredBy": [], "mentionedBy": [ @@ -76057,7 +76113,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -76270,7 +76326,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.019926, + "pagerank": 0.019814, "inboundLinks": 10, "coveredBy": [], "mentionedBy": [ @@ -76364,7 +76420,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.002786, + "pagerank": 0.00277, "inboundLinks": 4, "coveredBy": [], "mentionedBy": [ @@ -76426,7 +76482,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [ @@ -76503,7 +76559,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -76845,7 +76901,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.002071, + "pagerank": 0.00206, "inboundLinks": 2, "coveredBy": [], "mentionedBy": [ @@ -77001,7 +77057,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.002531, + "pagerank": 0.002517, "inboundLinks": 2, "coveredBy": [], "mentionedBy": [ @@ -77151,7 +77207,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -77343,7 +77399,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -77665,7 +77721,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -77887,7 +77943,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -77994,7 +78050,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -78146,7 +78202,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -78358,7 +78414,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -78573,7 +78629,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -78656,7 +78712,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -78730,7 +78786,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -79022,7 +79078,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -79209,7 +79265,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -79272,7 +79328,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -79346,7 +79402,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -79489,7 +79545,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -79593,7 +79649,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -79825,7 +79881,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -79953,7 +80009,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -80052,7 +80108,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -80205,7 +80261,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -80279,7 +80335,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.002071, + "pagerank": 0.00206, "inboundLinks": 2, "coveredBy": [], "mentionedBy": [ @@ -80445,7 +80501,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -80519,7 +80575,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -80647,7 +80703,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -80716,7 +80772,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -80908,7 +80964,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -81069,7 +81125,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.002811, + "pagerank": 0.002795, "inboundLinks": 2, "coveredBy": [], "mentionedBy": [], @@ -81262,7 +81318,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -81502,7 +81558,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.002071, + "pagerank": 0.00206, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -81626,7 +81682,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -81685,7 +81741,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -81997,7 +82053,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -82144,7 +82200,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -82273,7 +82329,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 9, "coveredBy": [], "mentionedBy": [ @@ -82602,7 +82658,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.002084, + "pagerank": 0.002073, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -82651,7 +82707,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.004233, + "pagerank": 0.004209, "inboundLinks": 3, "coveredBy": [], "mentionedBy": [], @@ -82730,7 +82786,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.003347, + "pagerank": 0.003328, "inboundLinks": 2, "coveredBy": [], "mentionedBy": [], @@ -82859,7 +82915,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.002084, + "pagerank": 0.002073, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -82933,7 +82989,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.00297, + "pagerank": 0.002954, "inboundLinks": 2, "coveredBy": [], "mentionedBy": [], @@ -83032,7 +83088,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.002084, + "pagerank": 0.002073, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -83111,7 +83167,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.002084, + "pagerank": 0.002073, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -83180,7 +83236,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.00432, + "pagerank": 0.004296, "inboundLinks": 4, "coveredBy": [], "mentionedBy": [], @@ -83264,7 +83320,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.002084, + "pagerank": 0.002073, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -83343,7 +83399,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.002923, + "pagerank": 0.002906, "inboundLinks": 2, "coveredBy": [], "mentionedBy": [], @@ -83417,7 +83473,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.002084, + "pagerank": 0.002073, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -83491,7 +83547,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.005158, + "pagerank": 0.005129, "inboundLinks": 4, "coveredBy": [], "mentionedBy": [], @@ -83580,7 +83636,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.002923, + "pagerank": 0.002906, "inboundLinks": 2, "coveredBy": [], "mentionedBy": [], @@ -83674,7 +83730,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.002084, + "pagerank": 0.002073, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [], @@ -83749,7 +83805,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -83893,7 +83949,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 1, "coveredBy": [], "mentionedBy": [ @@ -84045,7 +84101,7 @@ "aliases": "document project" }, "graph": { - "pagerank": 0.007761, + "pagerank": 0.007717, "inboundLinks": 6, "coveredBy": [], "mentionedBy": [ @@ -84169,7 +84225,7 @@ "aliases": "document unclassified" }, "graph": { - "pagerank": 0.001972, + "pagerank": 0.001961, "inboundLinks": 0, "coveredBy": [], "mentionedBy": [], @@ -189970,7 +190026,7 @@ "aliases": "adapters @agentskit/adapters package ownership" }, "graph": { - "pagerank": 0.004488, + "pagerank": 0.004463, "inboundLinks": 64, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/adapters.mdx", @@ -190395,7 +190451,7 @@ "aliases": "angular @agentskit/angular package ownership" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 37, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/angular.mdx", @@ -190658,7 +190714,7 @@ "aliases": "cli @agentskit/cli package ownership" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 28, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/cli.mdx", @@ -190867,7 +190923,7 @@ "aliases": "core @agentskit/core package ownership" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 64, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/core.mdx", @@ -191292,7 +191348,7 @@ "aliases": "cross-platform @agentskit/cross-platform package ownership" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 11, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/cross-platform.mdx", @@ -191399,7 +191455,7 @@ "aliases": "eval @agentskit/eval package ownership" }, "graph": { - "pagerank": 0.007841, + "pagerank": 0.007797, "inboundLinks": 45, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/eval-braintrust.mdx", @@ -191792,7 +191848,7 @@ "aliases": "ink @agentskit/ink package ownership" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 56, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/ink.mdx", @@ -192169,7 +192225,7 @@ "aliases": "integrations @agentskit/integrations package ownership" }, "graph": { - "pagerank": 0.00323, + "pagerank": 0.003212, "inboundLinks": 19, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/integrations.mdx", @@ -192324,7 +192380,7 @@ "aliases": "mcp @agentskit/mcp package ownership" }, "graph": { - "pagerank": 0.00323, + "pagerank": 0.003212, "inboundLinks": 20, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/mcp.mdx", @@ -192485,7 +192541,7 @@ "aliases": "memory @agentskit/memory package ownership" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 64, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/memory.mdx", @@ -192910,7 +192966,7 @@ "aliases": "net @agentskit/net package ownership" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 18, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/net.mdx", @@ -193059,7 +193115,7 @@ "aliases": "observability @agentskit/observability package ownership" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 54, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/observability.mdx", @@ -193424,7 +193480,7 @@ "aliases": "observability-langfuse @agentskit/observability-langfuse package ownership" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 8, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/observability-langfuse.mdx", @@ -193513,7 +193569,7 @@ "aliases": "rag @agentskit/rag package ownership" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 51, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/rag.mdx", @@ -193860,7 +193916,7 @@ "aliases": "react @agentskit/react package ownership" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 64, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/react.mdx", @@ -194285,7 +194341,7 @@ "aliases": "react-native @agentskit/react-native package ownership" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 36, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/react-native.mdx", @@ -194542,7 +194598,7 @@ "aliases": "runtime @agentskit/runtime package ownership" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 64, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/runtime.mdx", @@ -194967,7 +195023,7 @@ "aliases": "sandbox @agentskit/sandbox package ownership" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 40, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/sandbox.mdx", @@ -195248,7 +195304,7 @@ "aliases": "skills @agentskit/skills package ownership" }, "graph": { - "pagerank": 0.003649, + "pagerank": 0.003629, "inboundLinks": 30, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/skills.mdx", @@ -195469,7 +195525,7 @@ "aliases": "solid @agentskit/solid package ownership" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 34, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/solid.mdx", @@ -195714,7 +195770,7 @@ "aliases": "statechart @agentskit/statechart package ownership" }, "graph": { - "pagerank": 0.002811, + "pagerank": 0.002795, "inboundLinks": 13, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/statechart.mdx", @@ -195833,7 +195889,7 @@ "aliases": "svelte @agentskit/svelte package ownership" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 39, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/svelte.mdx", @@ -196108,7 +196164,7 @@ "aliases": "templates @agentskit/templates package ownership" }, "graph": { - "pagerank": 0.004488, + "pagerank": 0.004463, "inboundLinks": 22, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/templates.mdx", @@ -196281,7 +196337,7 @@ "aliases": "tools @agentskit/tools package ownership" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 64, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/tools.mdx", @@ -196706,7 +196762,7 @@ "aliases": "validation @agentskit/validation package ownership" }, "graph": { - "pagerank": 0.004068, + "pagerank": 0.004046, "inboundLinks": 13, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/validation.mdx", @@ -196825,7 +196881,7 @@ "aliases": "vue @agentskit/vue package ownership" }, "graph": { - "pagerank": 0.005326, + "pagerank": 0.005296, "inboundLinks": 39, "coveredBy": [ "document:apps/docs-next/content/docs/for-agents/vue.mdx", @@ -197096,7 +197152,7 @@ "aliases": "agentskit package" }, "graph": { - "pagerank": 0.002392, + "pagerank": 0.002378, "inboundLinks": 46, "coveredBy": [ "document:apps/docs-next/content/docs/reference/packages/overview.mdx" @@ -197383,7 +197439,7 @@ ], "outbound": [] }, - "contentHash": "810079c7f75819f08fe65c7bce09029d67ff76264a4beac4d58b0572b110b345", + "contentHash": "72455ca17e0e3a0993304faf3e27f2f918b530261e13bb5906c2b51fed891acf", "provenance": "observed", "confidence": "observed" } diff --git a/docs/memory-postgres-validation.md b/docs/memory-postgres-validation.md index a548ce78a..930230823 100644 --- a/docs/memory-postgres-validation.md +++ b/docs/memory-postgres-validation.md @@ -143,3 +143,10 @@ Ignored build/declaration/cache outputs remain local. No unrelated process was terminated, no push/PR/release occurred, and no agent attribution was added. Next human action: coordinator reviews the commits/evidence and determines any required visual review before parent completion. + +## CH-C3 follow-up + +The global React type workaround described in the CH-C2 section above is +removed by CH-C3. See [current resolution evidence](./memory-react-resolution-ch-c3.md) +for the dependency-origin investigation, minimal lockfile diff and current checks. +The CH-C2 section remains a historical record of its own revision. diff --git a/docs/memory-react-resolution-ch-c3.md b/docs/memory-react-resolution-ch-c3.md new file mode 100644 index 000000000..4cfd36d3e --- /dev/null +++ b/docs/memory-react-resolution-ch-c3.md @@ -0,0 +1,125 @@ +# CH-C3: remove the global React type workaround + +State: AWAITING_HUMAN_APPROVAL; worker implementation and checks are validated, +with coordinator review outstanding. No current blocker remains. + +## Contract and budget + +Approved intent: fix dependency resolution in this worktree without a global +hoisting workaround. Scope: revert CH-C2's `.npmrc` and root `package.json` +additions, keep the lockfile minimal, investigate memory's Drizzle/pg metadata, +run docs-next type-check/build, memory build/test (242), ratchets, global tests, +quality gates and doc-bridge freshness, make small local commits and report here. +No push, PR, publication, deployment, real credentials, unrelated process cleanup +or changes to other packages. No UI implementation or public contract changes; +UI visual approval and a structural ADR are not applicable. This dispatch is +goal authorization; final approval belongs to the coordinator. + +Budget: local/offline dependency installs, existing repository checks and cached +Turbo evidence, `--concurrency=2`, `VITEST_MAX_WORKERS=1`; no CI. One task-owned +trust-auth PostgreSQL 16 container bound to 127.0.0.1:55440 provides the required +real database test. An isolated manifest-only install tests fresh hoisting; +its directory is task-owned and is removed after inspection. + +## Findings and smallest repair + +- Reverted the two hoist-pattern lines and root `@types/react` dev dependency. + The lockfile differs by only the three corresponding importer lines; no + dependency versions or peer snapshots change. Frozen offline installation + accepts this lockfile. An initial unfrozen install refreshed unrelated + Cloudflare snapshots; that churn was discarded before validation. +- Memory already declares Drizzle and pg optional peers, with both present as + dev dependencies and `@types/pg` available for development. Their metadata + needs no additional change. Adding a React dev dependency to memory would + introduce an unrelated dependency with no supporting evidence. +- Drizzle 0.45.3 declares `@types/react` ^18.2.45 only in its own devDependencies, + **not** in peerDependencies or dependencies. Published dependency installation + does not install a library's devDependencies. `pnpm --filter @agentskit/memory + why @types/react` has no result. pg likewise has no React dependency. +- `pnpm why -r @types/react` identifies the React 18 path as: + + ```text + @types/react@18.3.31 + └─┬ braintrust@3.33.0 + ├── @agentskit/eval (devDependencies) + └── @agentskit/eval-braintrust (devDependencies) + ``` + + React 19.2.17 remains declared by docs-next and React workspace consumers. + The before/after tree diff contains exactly one removed line: + `├── agentskit@0.3.0 (devDependencies)` under React 19; all other paths match. +- A clean manifest-only install (all workspace package manifests, root lockfile, + workspace config and reverted .npmrc) using `pnpm install --offline + --frozen-lockfile --ignore-scripts` exits 0 and selects private-hoisted React + 19.2.17. Root `node_modules/@types/react` is absent. The existing worktree + reinstallation selects the same version and docs-next type-check passes. + Thus no memory-origin React conflict reproduces on the current locked tree. +- CH-C2 reported an installation that privately hoisted React 18; that old + installation's hoist map was not retained. Its exact historical selection + cause is **partially validated**, not reconstructed or attributed to Drizzle. + The evidence establishes the React 18 dependency origin and validates that + the current source needs no global or package-local React workaround. + +## Evidence binding + +Starting revision: `1d0fc5b9d3c73e70c1fa54456cf057db4f725d06`. +Implementation input SHA-256 (ordered path, NUL, bytes, NUL for `.npmrc`, +`package.json`, `pnpm-lock.yaml`, `packages/memory/package.json`): +`4741232b735738502a3628458899b06cbd5e42cc64036942a49ed9944a1f90b8`. Implementation commit: `7a665a8d`. Later report/index commits do not alter +those inputs; their exact commit is included in the worker receipt. + +## Criterion results + +| ID | Criterion | Evidence | Current result | +|---|---|---|---| +| C1 | No global workaround; minimal lock | diff: .npmrc -2, root manifest -1, lock -3; frozen offline install exit 0 | validated | +| C2 | Memory metadata and dependency origin | installed manifests; package-local why; recursive tree diff; clean offline installation React 19.2.17 | validated current resolution; historical hoist choice partially validated | +| C3 | docs-next type-check and build | direct tsc --noEmit exit 0; forced Turbo build --filter=@agentskit/docs-next --only --force --concurrency=2: 1/1 success, zero cached; Next TypeScript passed, 518 pages generated | validated with real build | +| C4 | memory build/test (242) | package test with AK_POSTGRES_TEST_PORT=55440 and VITEST_MAX_WORKERS=1: 33 files / 242 passed; package lint exit 0 | validated | +| C5 | Ratchets | cross-platform 148, core 75, net 111 baseline findings, no new issues | validated | +| C6 | pnpm test | VITEST_MAX_WORKERS=1 pnpm test: 77/77 tasks, 77 cached | validated cached test evidence; memory separately executed | +| C7 | check:quality-gates | VITEST_MAX_WORKERS=1 TURBO_CONCURRENCY=2 pnpm check:quality-gates, built-in Turbo concurrency 2: all 52 gates passed on rerun, exit 0 | validated | +| C8 | doc-bridge freshness | index regeneration and standalone freshness, exit 0; regenerate once more with this final report before committing | validated; final-index check required before receipt | +| C9 | local commits and task-owned cleanup | repair commit 7a665a8d; isolated install removed; docker rm --force ak-ch-c3-postgres exit 0; final diff/status and evidence commit | validated; final commit recorded in receipt | + +## Attempts and limits + +The initial memory run without a database skipped one test (241 passed, 1 +skipped). The first database attempt hit PostgreSQL container startup and +failed at its initial query; after pg_isready confirmed readiness the full +242-test run passed. No application code was changed for the startup race. + +An initial direct docs build invoked the documented prebuild's recursive +package builds outside Turbo's explicit concurrency budget. Its generator +then encountered low disk space during the isolated install; that attempt was +stopped using only its own process tree and is **not accepted build evidence**. +Task-owned temporary dependency files were removed to reclaim disk; the +accepted build command is the forced Turbo concurrency-2 run stated above. +The prior 15-task fully cached build did not restore the generated memory/rag +API pages removed by the interrupted generator. The forced build regenerated +all API pages and completed Next compilation, TypeScript and 518 static pages. +The global Turbo output configuration does not cover these generated docs +outputs; this report uses the real build rather than treating cache replay +as proof of the current artifact. Global Turbo configuration was not changed. + +Not analyzed: changes to braintrust/eval, React UI behavior, historical module +layout not retained by CH-C2. Not applicable: deployment, publication, external +accounts, new public behavior, changeset, contract ADR and human visual review. +No statement here establishes broader enterprise readiness. Required next +human action: coordinator review of this evidence and final diff. + +The initial quality-gate run finished with 51 of 52 gates passing; verified +recipe factory failed because its doc-bridge index-freshness check preceded +the index regeneration. No structural/application check failed. The index +was regenerated and the complete command rerun: all 52 gates passed. Container +cleanup briefly failed because the Docker socket disappeared; escalation and +a coordinator question were sent. After the socket returned, removal of only +`ak-ch-c3-postgres` succeeded; the coordinator was told the question was obsolete +and its local waiting process was stopped. No unrelated container was touched. + +Final classification: **validated** C1 and the current-resolution part of C2, +C3–C9; **partially validated** historical CH-C2 hoist selection; **blocked** +none; **not analyzed** and **not applicable** are listed above. The task is +submitted for coordinator evidence review, not self-approved or parent-complete. +Task-owned raw temporary logs are removed after their outcomes are recorded +here; build outputs remain as the real artifact. From ec3311330f79601dafae7dcaede8525983ac5293 Mon Sep 17 00:00:00 2001 From: EmersonBraun Date: Tue, 6 Oct 2026 22:00:52 -0300 Subject: [PATCH 8/9] fix(deps): pin patched production transitive dependencies --- pnpm-lock.yaml | 48 +++++++++++++++++++++++---------------------- pnpm-workspace.yaml | 4 +++- 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a6c75a351..3aafe453e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,12 +5,14 @@ settings: excludeLinksFromLockfile: false overrides: + seroval: 1.6.8 + source-map-js: 1.2.2 serialize-javascript: '>=7.0.5 <8' axios: '>=1.20.0 <2' fast-xml-builder: '>=1.1.7 <2' next: '>=16.3.6 <17' postcss: '>=8.5.22 <9' - shell-quote: '>=1.9.0 <2' + shell-quote: 1.11.0 esbuild: '>=0.28.1 <1' form-data: '>=4.0.6 <5' dompurify: 3.4.13 @@ -8971,10 +8973,10 @@ packages: resolution: {integrity: sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw==} engines: {node: '>=10'} peerDependencies: - seroval: ^1.0 + seroval: 1.6.8 - seroval@1.5.4: - resolution: {integrity: sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw==} + seroval@1.6.8: + resolution: {integrity: sha512-HlSgSAkTk4EqHcje1ptJjfZi1YDv5KbhVJ/d3P7T/nAXua2VmDu+AKDX5VTdFfZf48nDkWB2TKYt0DrCSa+3wg==} engines: {node: '>=10'} serve-static@1.16.3: @@ -9008,8 +9010,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shell-quote@1.10.0: - resolution: {integrity: sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA==} + shell-quote@1.11.0: + resolution: {integrity: sha512-JdxDPD0DBTyu08pq0kPC0xSNet/qsU07qT6IsX1AS8oO2ICNRY4ldNa8OAI6PuwAH8tG3lxEhbqmyp4Dw4036g==} engines: {node: '>= 0.4'} shiki@4.4.3: @@ -9076,8 +9078,8 @@ packages: peerDependencies: solid-js: ^1.3 - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + source-map-js@1.2.2: + resolution: {integrity: sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==} engines: {node: '>=0.10.0'} source-map-support@0.5.21: @@ -13643,7 +13645,7 @@ snapshots: jiti: 2.7.0 lightningcss: 1.32.0 magic-string: 0.30.21 - source-map-js: 1.2.1 + source-map-js: 1.2.2 tailwindcss: 4.3.3 '@tailwindcss/oxide-android-arm64@4.3.3': @@ -14266,7 +14268,7 @@ snapshots: '@vue/shared': 3.5.42 entities: 7.0.1 estree-walker: 2.0.2 - source-map-js: 1.2.1 + source-map-js: 1.2.2 '@vue/compiler-dom@3.5.42': dependencies: @@ -14283,7 +14285,7 @@ snapshots: estree-walker: 2.0.2 magic-string: 0.30.21 postcss: 8.5.28 - source-map-js: 1.2.1 + source-map-js: 1.2.2 '@vue/compiler-ssr@3.5.42': dependencies: @@ -15040,7 +15042,7 @@ snapshots: css-tree@3.2.1: dependencies: mdn-data: 2.27.1 - source-map-js: 1.2.1 + source-map-js: 1.2.2 css-what@6.2.2: {} @@ -16979,7 +16981,7 @@ snapshots: dependencies: '@babel/parser': 7.29.7 '@babel/types': 7.29.7 - source-map-js: 1.2.1 + source-map-js: 1.2.2 make-dir@4.0.0: dependencies: @@ -18531,7 +18533,7 @@ snapshots: dependencies: nanoid: 3.3.18 picocolors: 1.1.1 - source-map-js: 1.2.1 + source-map-js: 1.2.2 posthog-js@1.433.6(@types/react@19.2.17)(react@19.2.7): dependencies: @@ -18627,7 +18629,7 @@ snapshots: react-devtools-core@6.1.5: dependencies: - shell-quote: 1.10.0 + shell-quote: 1.11.0 ws: 7.5.13 transitivePeerDependencies: - bufferutil @@ -19126,7 +19128,7 @@ snapshots: dependencies: chokidar: 5.0.0 immutable: 5.1.9 - source-map-js: 1.2.1 + source-map-js: 1.2.2 optionalDependencies: '@parcel/watcher': 2.5.6 @@ -19214,11 +19216,11 @@ snapshots: dependencies: type-fest: 0.20.2 - seroval-plugins@1.5.4(seroval@1.5.4): + seroval-plugins@1.5.4(seroval@1.6.8): dependencies: - seroval: 1.5.4 + seroval: 1.6.8 - seroval@1.5.4: {} + seroval@1.6.8: {} serve-static@1.16.3: dependencies: @@ -19348,7 +19350,7 @@ snapshots: shebang-regex@3.0.0: {} - shell-quote@1.10.0: {} + shell-quote@1.11.0: {} shiki@4.4.3: dependencies: @@ -19421,8 +19423,8 @@ snapshots: solid-js@1.9.15: dependencies: csstype: 3.2.3 - seroval: 1.5.4 - seroval-plugins: 1.5.4(seroval@1.5.4) + seroval: 1.6.8 + seroval-plugins: 1.5.4(seroval@1.6.8) solid-refresh@0.6.3(solid-js@1.9.15): dependencies: @@ -19433,7 +19435,7 @@ snapshots: transitivePeerDependencies: - supports-color - source-map-js@1.2.1: {} + source-map-js@1.2.2: {} source-map-support@0.5.21: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 07a7ce912..141fb1791 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -12,13 +12,15 @@ onlyBuiltDependencies: - esbuild - workerd overrides: + seroval: "1.6.8" + source-map-js: "1.2.2" serialize-javascript: ">=7.0.5 <8" # GHSA-3pq3-5fj3-cg6v, GHSA-542g-h47m-68v8, GHSA-r4gj-5m52-g5wh axios: ">=1.20.0 <2" fast-xml-builder: ">=1.1.7 <2" next: ">=16.3.6 <17" postcss: ">=8.5.22 <9" - shell-quote: ">=1.9.0 <2" + shell-quote: "1.11.0" esbuild: ">=0.28.1 <1" form-data: ">=4.0.6 <5" dompurify: "3.4.13" From a52217b7db8d662dd288d3f35a31725d0604b704 Mon Sep 17 00:00:00 2001 From: EmersonBraun Date: Thu, 8 Oct 2026 00:45:29 -0300 Subject: [PATCH 9/9] fix(memory): retain whole turns when bounding Postgres history maxMessages now cuts only at a user turn boundary and keeps the leading system prompt, so a user question is never split from its answer, tool call/result groups stay together, an in-progress turn is kept whole and a history without a user turn is never emptied. --- .changeset/chat-memory-postgres.md | 4 +- .doc-bridge/capabilities.json | 2 +- .doc-bridge/index.json | 22 ++-- packages/memory/README.md | 15 ++- packages/memory/src/postgres.ts | 28 ++++- packages/memory/tests/postgres-contract.ts | 19 ++- readme-standard-v1.json | 130 ++++++++++----------- 7 files changed, 128 insertions(+), 92 deletions(-) diff --git a/.changeset/chat-memory-postgres.md b/.changeset/chat-memory-postgres.md index c3e19fc43..1422b116e 100644 --- a/.changeset/chat-memory-postgres.md +++ b/.changeset/chat-memory-postgres.md @@ -2,6 +2,6 @@ '@agentskit/memory': minor --- -Add the optional `@agentskit/memory/postgres` subpath with BYO Drizzle/node-postgres ChatMemory, exported schema and migration SQL, tenant/session isolation, full message-part persistence, and opt-in newest-message retention. Connection lifetime remains host-owned for Node pools and Workers clients. +Add the optional `@agentskit/memory/postgres` subpath with BYO Drizzle/node-postgres ChatMemory, exported schema and migration SQL, tenant/session isolation, full message-part persistence, and opt-in turn-aware retention. Connection lifetime remains host-owned for Node pools and Workers clients. -Bounded retention discards leading tool results rather than preserving orphaned responses. Supports Drizzle 0.44 and 0.45 (from 0.45.3). +Bounded retention cuts only at user turn boundaries and keeps the leading system prompt, so turns and tool call/result groups are never split and history is never emptied. Supports Drizzle 0.44 and 0.45 (from 0.45.3). diff --git a/.doc-bridge/capabilities.json b/.doc-bridge/capabilities.json index 0bb125d9f..0efb17789 100644 --- a/.doc-bridge/capabilities.json +++ b/.doc-bridge/capabilities.json @@ -7,7 +7,7 @@ "name": "AgentsKit", "root": "." }, - "contentHash": "449a9a8fd1e3594d3bf91d69199ab82f217113615e8bc637d61d6b37cd1b83ff", + "contentHash": "cc1dd4e9500b056f4b73c465bf246b8006abbd965ad7736d62c91aff85c3d2b9", "artifacts": { "index": ".doc-bridge/index.json", "llmsTxt": ".doc-bridge/llms.txt" diff --git a/.doc-bridge/index.json b/.doc-bridge/index.json index a75e1f79a..3ce046add 100644 --- a/.doc-bridge/index.json +++ b/.doc-bridge/index.json @@ -1,8 +1,8 @@ { "schemaVersion": 1, - "contentHash": "449a9a8fd1e3594d3bf91d69199ab82f217113615e8bc637d61d6b37cd1b83ff", + "contentHash": "cc1dd4e9500b056f4b73c465bf246b8006abbd965ad7736d62c91aff85c3d2b9", "contentHashAlgo": "sha256-normalized-v1", - "generatedAt": "2026-10-08T03:12:06.917Z", + "generatedAt": "2026-10-08T03:38:51.929Z", "project": { "name": "AgentsKit", "root": "." @@ -7190,7 +7190,7 @@ "document", "project" ], - "contentHash": "67a511fbeaeb192765de33cae956b26837606ead76ee247faecc3011085c7d21" + "contentHash": "e4de036b9a616d728221a7da1158c65f7b0004d43effb3d5d3b44e8896c2bc34" }, { "id": "document:packages/net/CONVENTIONS.md", @@ -26320,7 +26320,7 @@ "ts", "src" ], - "contentHash": "8beea794193b891c949a16d0be8acafa31cb196328bebfe138ace1092a9f51df" + "contentHash": "4f9e3e433e31d6ba824acf9a5625043bb900090ad946184faff00d48b353725e" }, { "id": "module:packages/memory/src/redaction.ts", @@ -26945,7 +26945,7 @@ "ts", "tests" ], - "contentHash": "05fb643c2ff32b5cf9f6c199804f8a0b342af1a15c25f1a2b878009e1ea02313" + "contentHash": "51d4b3c7474608d4daa5a425eb6b82e3de26085ec05c8b5f65e5bca531d1c435" }, { "id": "module:packages/memory/tests/postgres-worker.ts", @@ -38248,7 +38248,7 @@ "changes": {} }, "inputs": { - "hash": "f39347e7e543840b4c341a1af61be1d81633a8147dd9dbea12be3ca7f6848667", + "hash": "dc801aecf1b8431a07a89d68254232707b9e2b8e32d50efee3eb5227f66bfd77", "fileCount": 2543, "projectionVersion": 2 }, @@ -38271,9 +38271,9 @@ "projection": { "type": "retrieval-index", "schemaVersion": 1, - "contentHash": "9c0adf2df1386245539d34f99a44fa424835a7a8f833da5b9e0a29f37017bbde", + "contentHash": "c0e801dfffbe8e04d643d119f8525e5f9e258ed5e83f3e171befa61972c8f3f5", "contentHashAlgo": "sha256-normalized-v1", - "snapshotHash": "beebfb860bb14f2b9c07d4c9273ec226a5006324d20745d35fb0910b9df4ea0b", + "snapshotHash": "4dcd7de6390366bdb8b0941888275dab6e3d86d816bbabb7b95d3c49b3716b3f", "overlayHash": "f99666ff9119084dd25c2974ae64eb6935ec2aa785ff5ad478fb9d541f7a5e94", "configurationHash": "9662cc07ea4ab203ff2ddf457d2db48b5375a7ab4a1f8fbc79dfebcaa8f9a00c", "lexiconVersion": 1, @@ -79539,7 +79539,7 @@ } ] }, - "contentHash": "67a511fbeaeb192765de33cae956b26837606ead76ee247faecc3011085c7d21", + "contentHash": "e4de036b9a616d728221a7da1158c65f7b0004d43effb3d5d3b44e8896c2bc34", "provenance": "observed", "confidence": "observed" }, @@ -152098,7 +152098,7 @@ } ] }, - "contentHash": "8beea794193b891c949a16d0be8acafa31cb196328bebfe138ace1092a9f51df", + "contentHash": "4f9e3e433e31d6ba824acf9a5625043bb900090ad946184faff00d48b353725e", "provenance": "observed", "confidence": "observed" }, @@ -154930,7 +154930,7 @@ ], "outbound": [] }, - "contentHash": "05fb643c2ff32b5cf9f6c199804f8a0b342af1a15c25f1a2b878009e1ea02313", + "contentHash": "51d4b3c7474608d4daa5a425eb6b82e3de26085ec05c8b5f65e5bca531d1c435", "provenance": "observed", "confidence": "observed" }, diff --git a/packages/memory/README.md b/packages/memory/README.md index 057d26fab..4a4de1714 100644 --- a/packages/memory/README.md +++ b/packages/memory/README.md @@ -210,12 +210,15 @@ turn leases. Schema migration is explicit; SQL/connection errors propagate and invalid records fail rather than silently discarding history. No truncation is performed by default (CM1–CM6). Opt into `maxMessages: N` to -persist at most the last N array entries on each save, in their original order. -Leading tool results are discarded so truncation never starts inside a -contiguous assistant tool-call/result group; a tool-only suffix becomes `[]`. -This permanently removes older messages; it counts messages, not tokens or -bytes, and can drop a system prompt. For semantic -summarization or complete-turn retention, prepare the history in the host +keep roughly the newest N messages on each save, in their original order. +Retention cuts only at a user turn boundary: the kept window always starts at a +`user` message, so a user question is never separated from its assistant answer +and a tool call is never separated from its results. When the N-newest cutoff +falls inside the latest (possibly in-progress) turn, that whole turn is kept, so +the result can exceed N. Leading `system` messages are always kept. A history +with no user message is stored unchanged rather than emptied. This permanently +removes older turns and counts messages, not tokens or bytes. For semantic +summarization, prepare the history in the host instead. A positive safe integer is required; empty saves still persist `[]`. The supported Drizzle peer range is `^0.44.0 || ^0.45.3`. Both lower bounds diff --git a/packages/memory/src/postgres.ts b/packages/memory/src/postgres.ts index f7fd9c32b..26e1f9cdc 100644 --- a/packages/memory/src/postgres.ts +++ b/packages/memory/src/postgres.ts @@ -26,10 +26,28 @@ export interface PostgresChatMemoryOptions { db: Pick tenantId: string sessionId: string - /** Keep at most N newest messages, dropping leading tool results. Default: no truncation. */ + /** + * Keep roughly the N newest messages, cut only at a user turn boundary and + * always keeping the leading system prompt. Default: no truncation. + */ maxMessages?: number } +/** + * Index where bounded retention starts. The kept window always begins at a + * `user` message, so no user/assistant pair or tool call/result group is split. + * Moves forward from the N-newest cutoff to the next user turn; if the cutoff is + * inside the last turn, moves back to that turn's user message instead, so the + * in-progress turn is kept whole (and may exceed N). Without any user message + * the history is kept unchanged rather than emptied. + */ +function retentionStart(roles: readonly string[], maxMessages: number): number { + const cutoff = Math.max(0, roles.length - maxMessages) + for (let i = cutoff; i < roles.length; i++) if (roles[i] === 'user') return i + for (let i = cutoff - 1; i >= 0; i--) if (roles[i] === 'user') return i + return 0 +} + /** BYO Drizzle/pg connection; the caller owns migration and connection lifetime. */ export function postgresChatMemory({ db, tenantId, sessionId, maxMessages }: PostgresChatMemoryOptions): ChatMemory { if (typeof tenantId !== 'string' || !tenantId.trim() @@ -51,9 +69,11 @@ export function postgresChatMemory({ db, tenantId, sessionId, maxMessages }: Pos options?.signal?.throwIfAborted() const record = validateMemoryRecord(serializeMessages(messages)) if (maxMessages !== undefined) { - let start = Math.max(0, record.messages.length - maxMessages) - while (start < record.messages.length && record.messages[start]!.role === 'tool') start++ - record.messages = record.messages.slice(start) + const roles = record.messages.map(message => message.role) + const start = retentionStart(roles, maxMessages) + let systemPrefix = 0 + while (systemPrefix < start && roles[systemPrefix] === 'system') systemPrefix++ + record.messages = [...record.messages.slice(0, systemPrefix), ...record.messages.slice(start)] } options?.signal?.throwIfAborted() await db.insert(postgresChatTable).values({ tenantId, sessionId, record }) diff --git a/packages/memory/tests/postgres-contract.ts b/packages/memory/tests/postgres-contract.ts index 9e9551996..71d198257 100644 --- a/packages/memory/tests/postgres-contract.ts +++ b/packages/memory/tests/postgres-contract.ts @@ -62,7 +62,18 @@ export async function postgresContract(db: NodePgDatabase, prefix: string) { equal(await memory.load(), [], 'CM2 empty replace') const bounded = postgresChatMemory({ ...options, maxMessages: 1 }) await bounded.save([message, second]) - equal(await bounded.load(), [second], 'opt-in newest retention') + equal(await bounded.load(), [message, second], 'retention never splits a user/assistant turn') + const user2: Message = { ...message, id: 'user-2' } + const answer2: Message = { ...second, id: 'answer-2' } + const system: Message = { ...message, id: 'system', role: 'system' } + for (const [maxMessages, expected] of [ + [1, [system, user2, answer2]], [2, [system, user2, answer2]], [3, [system, user2, answer2]], + [4, [system, message, second, user2, answer2]], [5, [system, message, second, user2, answer2]], + ] as const) { + const retained = postgresChatMemory({ ...options, maxMessages }) + await retained.save([system, message, second, user2, answer2]) + equal(await retained.load(), expected, `turn boundary retention N=${maxMessages}`) + } const call: Message = { ...second, id: 'calls', toolCalls: [ { id: 'a', name: 'synthetic', args: {}, status: 'complete' }, { id: 'b', name: 'synthetic', args: {}, status: 'complete' }, @@ -72,14 +83,16 @@ export async function postgresContract(db: NodePgDatabase, prefix: string) { const answer: Message = { id: 'answer', role: 'assistant', content: 'answer', status: 'complete', createdAt: message.createdAt } const history = [message, call, result, resultB, answer] for (const [maxMessages, expected] of [ - [1, [answer]], [2, [answer]], [3, [answer]], [4, history.slice(1)], [5, history], + [1, history], [2, history], [3, history], [4, history], [5, history], ] as const) { const retained = postgresChatMemory({ ...options, maxMessages }) await retained.save(history) equal(await retained.load(), expected, `tool boundary retention N=${maxMessages}`) } await bounded.save([call, result, resultB]) - equal(await bounded.load(), [], 'tool-only suffix discarded') + equal(await bounded.load(), [call, result, resultB], 'history without a user turn is never emptied') + await bounded.save([message, call, result]) + equal(await bounded.load(), [message, call, result], 'in-progress tool turn kept whole') await bounded.save([second]) const controller = new AbortController(); controller.abort() await rejects(() => memory.load({ signal: controller.signal }), 'aborted load') diff --git a/readme-standard-v1.json b/readme-standard-v1.json index 45895b3f6..93d7b1d76 100644 --- a/readme-standard-v1.json +++ b/readme-standard-v1.json @@ -197,8 +197,8 @@ } ], "freshness": { - "reviewedOn": "2026-09-25", - "reviewDueOn": "2026-12-24", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-01-06", "sources": [ "README.md", "apps/docs-next/fixtures/first-agent/agent.ts", @@ -276,8 +276,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-01-31", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-02-05", "sources": [ "packages/adapters/README.md", "packages/adapters/package.json", @@ -354,8 +354,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-04-01", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-04-06", "sources": [ "packages/angular/README.md", "packages/angular/package.json", @@ -432,8 +432,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-01-31", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-02-05", "sources": [ "packages/cli/README.md", "packages/cli/package.json", @@ -510,8 +510,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-01-31", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-02-05", "sources": [ "packages/core/README.md", "packages/core/package.json", @@ -588,8 +588,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-04-01", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-04-06", "sources": [ "packages/eval/README.md", "packages/eval/package.json", @@ -666,8 +666,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-04-01", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-04-06", "sources": [ "packages/eval-braintrust/README.md", "packages/eval-braintrust/package.json", @@ -744,8 +744,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-04-01", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-04-06", "sources": [ "packages/ink/README.md", "packages/ink/package.json", @@ -822,8 +822,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-01-31", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-02-05", "sources": [ "packages/integrations/README.md", "packages/integrations/package.json", @@ -900,8 +900,8 @@ } ], "freshness": { - "reviewedOn": "2026-09-25", - "reviewDueOn": "2027-01-23", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-02-05", "sources": [ "packages/mcp/README.md", "packages/mcp/package.json", @@ -978,8 +978,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-01-31", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-02-05", "sources": [ "packages/memory/README.md", "packages/memory/package.json", @@ -987,7 +987,7 @@ "docs/STABILITY.md", "scripts/readme-fixtures.test.mjs" ], - "sourceHash": "sha256:2dff4036c3f22ac17d06ae14dfa430734204fcf3e856f9172879e40bff710eaa" + "sourceHash": "sha256:0820eaa7069c0604769119af5d4c70111cef751f4cbba6f6acfe28d5e0236a10" }, "exceptions": [] }, @@ -1056,8 +1056,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-01-31", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-02-05", "sources": [ "packages/observability/README.md", "packages/observability/package.json", @@ -1134,8 +1134,8 @@ } ], "freshness": { - "reviewedOn": "2026-09-25", - "reviewDueOn": "2027-03-24", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-04-06", "sources": [ "packages/observability-langfuse/README.md", "packages/observability-langfuse/package.json", @@ -1212,8 +1212,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-01-31", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-02-05", "sources": [ "packages/rag/README.md", "packages/rag/package.json", @@ -1290,8 +1290,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-01-31", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-02-05", "sources": [ "packages/react/README.md", "packages/react/package.json", @@ -1368,8 +1368,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-04-01", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-04-06", "sources": [ "packages/react-native/README.md", "packages/react-native/package.json", @@ -1446,8 +1446,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-01-31", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-02-05", "sources": [ "packages/runtime/README.md", "packages/runtime/package.json", @@ -1524,8 +1524,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-04-01", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-04-06", "sources": [ "packages/sandbox/README.md", "packages/sandbox/package.json", @@ -1602,8 +1602,8 @@ } ], "freshness": { - "reviewedOn": "2026-09-25", - "reviewDueOn": "2027-03-24", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-04-06", "sources": [ "packages/cross-platform/README.md", "packages/cross-platform/package.json", @@ -1680,8 +1680,8 @@ } ], "freshness": { - "reviewedOn": "2026-09-28", - "reviewDueOn": "2027-03-27", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-04-06", "sources": [ "packages/net/README.md", "packages/net/package.json", @@ -1758,8 +1758,8 @@ } ], "freshness": { - "reviewedOn": "2026-09-25", - "reviewDueOn": "2027-01-23", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-02-05", "sources": [ "packages/skills/README.md", "packages/skills/package.json", @@ -1836,8 +1836,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-04-01", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-04-06", "sources": [ "packages/solid/README.md", "packages/solid/package.json", @@ -1914,8 +1914,8 @@ } ], "freshness": { - "reviewedOn": "2026-09-25", - "reviewDueOn": "2027-03-24", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-04-06", "sources": [ "packages/statechart/README.md", "packages/statechart/package.json", @@ -1992,8 +1992,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-04-01", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-04-06", "sources": [ "packages/svelte/README.md", "packages/svelte/package.json", @@ -2070,8 +2070,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-04-01", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-04-06", "sources": [ "packages/templates/README.md", "packages/templates/package.json", @@ -2148,8 +2148,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-01-31", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-02-05", "sources": [ "packages/tools/README.md", "packages/tools/package.json", @@ -2226,8 +2226,8 @@ } ], "freshness": { - "reviewedOn": "2026-09-25", - "reviewDueOn": "2027-03-24", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-04-06", "sources": [ "packages/validation/README.md", "packages/validation/package.json", @@ -2304,8 +2304,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-04-01", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-04-06", "sources": [ "packages/vue/README.md", "packages/vue/package.json", @@ -2373,8 +2373,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-01-01", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-01-06", "sources": [ "apps/docs-next/README.md", "apps/docs-next/package.json", @@ -2457,8 +2457,8 @@ } ], "freshness": { - "reviewedOn": "2026-09-25", - "reviewDueOn": "2026-12-24", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-01-06", "sources": [ "apps/landing/README.md", "apps/landing/package.json", @@ -2541,8 +2541,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-02", - "reviewDueOn": "2026-12-31", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-01-06", "sources": [ "apps/registry/README.md", "apps/registry/package.json", @@ -2625,8 +2625,8 @@ } ], "freshness": { - "reviewedOn": "2026-10-03", - "reviewDueOn": "2027-01-01", + "reviewedOn": "2026-10-08", + "reviewDueOn": "2027-01-06", "sources": [ "apps/ask-backend/README.md", "apps/ask-backend/package.json",