diff --git a/agentic/cli/package.json b/agentic/cli/package.json index 897143726c..6366329302 100644 --- a/agentic/cli/package.json +++ b/agentic/cli/package.json @@ -35,7 +35,7 @@ "@agentic-kit/harness": "workspace:*", "@agentic-kit/pi": "workspace:*", "@constructive-io/sdk": "workspace:^", - "@earendil-works/pi-coding-agent": "0.79.6", + "@earendil-works/pi-coding-agent": "1.4.0", "appstash": "^0.8.0", "inquirerer": "^4.9.4" }, diff --git a/agentic/pi/package.json b/agentic/pi/package.json index 6315d299ed..d7f4a7a150 100644 --- a/agentic/pi/package.json +++ b/agentic/pi/package.json @@ -40,7 +40,7 @@ "@earendil-works/pi-coding-agent": ">=0.79.0" }, "devDependencies": { - "@earendil-works/pi-coding-agent": "0.79.6" + "@earendil-works/pi-coding-agent": "1.4.0" }, "keywords": [ "agentic-kit", diff --git a/agentic/run-log/__tests__/fixtures.ts b/agentic/run-log/__tests__/fixtures.ts index 4d51935cdc..0f20ded1c8 100644 --- a/agentic/run-log/__tests__/fixtures.ts +++ b/agentic/run-log/__tests__/fixtures.ts @@ -34,6 +34,22 @@ export const header = (over: Partial = {}): PiSessionEntry => ( const entry = (type: string, rest: Record, seq: number): PiSessionEntry => ({ type, id: nextId(), parentId: null, timestamp: at(seq), ...rest }) as PiSessionEntry; +export const systemMessage = (seq = 1, over: Record = {}): PiSessionEntry => + entry( + 'message', + { + message: { + role: 'system', + content: '', + sections: { preamble: 'You are an expert coding assistant.' }, + toolsAdded: [{ name: 'read', description: 'Read a file', parameters: {} }], + timestamp: seq, + ...over + } + }, + seq + ); + export const userMessage = (text: string, seq = 1): PiSessionEntry => entry('message', { message: { role: 'user', content: text, timestamp: seq } }, seq); diff --git a/agentic/run-log/__tests__/projectors.test.ts b/agentic/run-log/__tests__/projectors.test.ts index e6e90dd076..4d60d9ff15 100644 --- a/agentic/run-log/__tests__/projectors.test.ts +++ b/agentic/run-log/__tests__/projectors.test.ts @@ -25,6 +25,7 @@ import { futureEntry, header, resetIds, + systemMessage, toolResult, usage, userMessage @@ -117,6 +118,11 @@ describe('projectParts', () => { expect(parts[5]).toMatchObject({ reason: 'branch', summary: 'branched' }); }); + it('renders no part for a system message', () => { + const { parts } = projectParts(recordsOf(systemMessage(), userMessage('hi'), systemMessage(3))); + expect(parts).toEqual([expect.objectContaining({ kind: 'text', role: 'user', text: 'hi' })]); + }); + it('surfaces an entry type it does not understand instead of dropping it', () => { const { parts } = projectParts(recordsOf(futureEntry())); expect(parts).toEqual([ @@ -240,6 +246,12 @@ describe('projectSession', () => { expect(parseSessionJsonl(jsonl)).toEqual(entries); }); + it('keeps system messages, so the resumed parent chain stays whole', () => { + const system = systemMessage(); + const { entries } = projectSession(recordsOf(header(), system, userMessage('hi'))); + expect(entries[1]).toEqual(system); + }); + it('synthesises a header when the log has none', () => { const { entries } = projectSession(recordsOf(userMessage('hi')), { sessionId: 's-9', cwd: '/w' }); expect(entries[0]).toMatchObject({ type: 'session', id: 's-9', cwd: '/w', version: 3 }); diff --git a/agentic/run-log/__tests__/spans.test.ts b/agentic/run-log/__tests__/spans.test.ts index ef03fcc118..8c0eb8d3ae 100644 --- a/agentic/run-log/__tests__/spans.test.ts +++ b/agentic/run-log/__tests__/spans.test.ts @@ -170,6 +170,22 @@ describe('projectSpans', () => { expect(spans[0]).toMatchObject({ status: 'error', errorMessage: 'overloaded' }); }); + it.each(['pending', 'deferred'] as const)('keeps a %s model turn open, since its response has not arrived', (stopReason) => { + const { spans } = projectSpans( + recordsOf( + userMessage('go', 1), + assistantToolCall({ id: 'call-1', name: 'bash' }, 2, { stopReason, responseId: 'resp-7' }) + ) + ); + + const model = spans.find((span): span is ModelSpan => span.kind === 'model'); + expect(model).toMatchObject({ status: 'open', stopReason, responseId: 'resp-7', startSeq: 2 }); + expect(model!.endSeq).toBeUndefined(); + expect(model!.endedAt).toBeUndefined(); + expect(model!.durationMs).toBeUndefined(); + expect(byId(spans, 'tool:call-1')).toMatchObject({ parentId: model!.id }); + }); + it('ignores entry types it has never seen', () => { const { spans } = projectSpans(recordsOf(header(), userMessage('go', 1), futureEntry(2))); diff --git a/agentic/run-log/__tests__/transcripts.test.ts b/agentic/run-log/__tests__/transcripts.test.ts index 763b01b995..296c304079 100644 --- a/agentic/run-log/__tests__/transcripts.test.ts +++ b/agentic/run-log/__tests__/transcripts.test.ts @@ -22,7 +22,7 @@ import { transcriptReaders, wrapEntry } from '../src'; -import { assistantToolCall, header, resetIds, toolResult, usage } from './fixtures'; +import { assistantText, assistantToolCall, header, resetIds, systemMessage, toolResult, usage } from './fixtures'; beforeEach(resetIds); @@ -244,6 +244,16 @@ describe('the pi reader', () => { expect(events[1]).toMatchObject({ kind: 'tool-call', toolCallId: 'c1', name: 'run_codegen' }); }); + it('reads a system message as no event, so the prompt never reaches a projection', () => { + expect(piTranscriptReader.toEvents(systemMessage())).toEqual([]); + expect(piTranscriptReader.toEvents(systemMessage(2, { sections: { skills: null }, toolsRemoved: [{ name: 'read' }] }))).toEqual([]); + }); + + it.each(['pending', 'deferred'] as const)('carries the %s stop reason into the model response', (stopReason) => { + const [event] = piTranscriptReader.toEvents(assistantText('later', 2, { stopReason })); + expect(event).toMatchObject({ kind: 'model-response', stopReason }); + }); + it('carries tool result usage into the neutral event', () => { const [event] = piTranscriptReader.toEvents( toolResult({ toolCallId: 'c1', toolName: 'run_codegen', text: 'ok', usage: usage() }) diff --git a/agentic/run-log/src/index.ts b/agentic/run-log/src/index.ts index 21ab0edbcc..333d1999ed 100644 --- a/agentic/run-log/src/index.ts +++ b/agentic/run-log/src/index.ts @@ -152,9 +152,11 @@ export { type PiSessionEntry, type PiSessionHeader, type PiSummaryMessage, + type PiSystemMessage, type PiTextContent, type PiThinkingContent, type PiToolCallContent, + type PiToolDeclaration, type PiToolResultMessage, type PiUsage, type PiUsageCost, diff --git a/agentic/run-log/src/projectors/spans.ts b/agentic/run-log/src/projectors/spans.ts index 9145362e6b..970038e16a 100644 --- a/agentic/run-log/src/projectors/spans.ts +++ b/agentic/run-log/src/projectors/spans.ts @@ -106,6 +106,12 @@ const close = (span: Span, seq: number, at: string): void => { if (duration !== undefined) span.durationMs = duration; }; +/** A pending or deferred response has not arrived yet, so its turn has not ended. */ +const modelStatus = (stopReason: string | undefined): SpanStatus => { + if (stopReason === 'pending' || stopReason === 'deferred') return 'open'; + return stopReason === 'error' ? 'error' : 'ok'; +}; + const detailsOf = (value: unknown): Record => typeof value === 'object' && value !== null ? (value as Record) : {}; @@ -150,10 +156,8 @@ export function projectSpans( // no previous entry the interval is unknown and the span is a point. startedAt: previous ?? at, startSeq: seq, - endSeq: seq, - endedAt: at, timing: 'bounded', - status: event.stopReason === 'error' ? 'error' : 'ok', + status: modelStatus(event.stopReason), ...(event.model ? { model: event.model } : {}), ...(event.provider ? { provider: event.provider } : {}), ...(event.responseId ? { responseId: event.responseId } : {}), @@ -161,8 +165,7 @@ export function projectSpans( ...(event.usage ? { usage: event.usage } : {}), ...(event.errorMessage ? { errorMessage: event.errorMessage } : {}) }; - const duration = ms(span.startedAt, at); - if (duration !== undefined) span.durationMs = duration; + if (span.status !== 'open') close(span, seq, at); modelSpan = span; spans.push(span); continue; diff --git a/agentic/run-log/src/transcripts/pi-entry.ts b/agentic/run-log/src/transcripts/pi-entry.ts index 231acfec9c..ab34d4012f 100644 --- a/agentic/run-log/src/transcripts/pi-entry.ts +++ b/agentic/run-log/src/transcripts/pi-entry.ts @@ -55,6 +55,26 @@ export interface PiToolCallContent { export type PiContent = PiTextContent | PiThinkingContent | PiImageContent | PiToolCallContent; +export interface PiToolDeclaration { + name: string; + [key: string]: unknown; +} + +/** + * The prompt and tool loadout. The first request of a session persists one with + * every section and tool; later ones patch `sections` by name (`null` removes + * one) and list the tools added or removed. + */ +export interface PiSystemMessage { + role: 'system'; + content: string | PiTextContent[]; + sections?: Record; + toolsAdded?: PiToolDeclaration[]; + toolsRemoved?: PiToolDeclaration[]; + timestamp?: number; + [key: string]: unknown; +} + export interface PiUserMessage { role: 'user'; content: string | PiContent[]; @@ -69,7 +89,7 @@ export interface PiAssistantMessage { provider?: string; model?: string; usage?: PiUsage; - stopReason?: 'stop' | 'length' | 'toolUse' | 'error' | 'aborted'; + stopReason?: 'pending' | 'stop' | 'length' | 'toolUse' | 'error' | 'aborted' | 'deferred'; errorMessage?: string; timestamp?: number; [key: string]: unknown; @@ -116,6 +136,7 @@ export interface PiSummaryMessage { } export type PiMessage = + | PiSystemMessage | PiUserMessage | PiAssistantMessage | PiToolResultMessage diff --git a/agentic/run-log/src/transcripts/pi-reader.ts b/agentic/run-log/src/transcripts/pi-reader.ts index f7076701aa..f5d689ae04 100644 --- a/agentic/run-log/src/transcripts/pi-reader.ts +++ b/agentic/run-log/src/transcripts/pi-reader.ts @@ -62,6 +62,9 @@ export function piEntryToEvents(entry: TranscriptEntry): TranscriptEvent[] { const message = pi.message; + // The full prompt and tool schemas: context for the model, not part of the transcript. + if (message.role === 'system') return []; + if (message.role === 'user') { return [{ kind: 'text', role: 'user', text: contentText(message.content), ...base }]; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 00541d85e7..4307eb718e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -189,8 +189,8 @@ importers: specifier: workspace:^ version: link:../../sdk/constructive-sdk/dist '@earendil-works/pi-coding-agent': - specifier: 0.79.6 - version: 0.79.6(ws@8.21.3)(zod@4.4.3) + specifier: 1.4.0 + version: 1.4.0(@aws-sdk/credential-provider-node@3.972.89)(@smithy/signature-v4@5.7.4)(ws@8.21.3)(zod@4.4.3) appstash: specifier: ^0.8.0 version: 0.8.0 @@ -329,8 +329,8 @@ importers: version: 4.4.3 devDependencies: '@earendil-works/pi-coding-agent': - specifier: 0.79.6 - version: 0.79.6(ws@8.21.3)(zod@4.4.3) + specifier: 1.4.0 + version: 1.4.0(@aws-sdk/credential-provider-node@3.972.89)(@smithy/signature-v4@5.7.4)(ws@8.21.3)(zod@4.4.3) publishDirectory: dist agentic/pi-host: @@ -4297,10 +4297,10 @@ packages: graphql: optional: true - '@anthropic-ai/sdk@0.91.1': + '@anthropic-ai/sdk@0.129.0': resolution: { - integrity: sha512-LAmu761tSN9r66ixvmciswUj/ZC+1Q4iAfpedTfSVLeswRwnY3n2Nb6Tsk+cLPP28aLOPWeMgIuTuCcMC6W/iw==, + integrity: sha512-MH7LB20kNpGLUpPTe2OG5XvL/KhX8HUO9XyBaFjgFk6TLS4Xjt0VPIuMKywe7POKKPslX+QxSlVok9e+8kG5Nw==, } hasBin: true peerDependencies: @@ -4359,10 +4359,10 @@ packages: integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==, } - '@aws-sdk/client-bedrock-runtime@3.1048.0': + '@aws-sdk/client-bedrock-runtime@3.1127.0': resolution: { - integrity: sha512-u+NT61JZEkRFtpL0CAw1N1dwxnaLgwVXQl/zjJxTGgLyS/jTIdg2SdoEoCTHxgDyCnqa1HEi9QOoE9/pYRNpOQ==, + integrity: sha512-IDl/lrPb90aH+pZFHGNDmgH9nAUQj5PlZH1sJ3w7RikctyjHSnY3oNjZhrLoaBoQn/rNK0zsP6OHEqEhj2tdLA==, } engines: { node: '>=20.0.0' } @@ -4380,10 +4380,10 @@ packages: } engines: { node: '>=20.0.0' } - '@aws-sdk/core@3.977.1': + '@aws-sdk/core@3.978.6': resolution: { - integrity: sha512-KVtQRtc00ES/y+Sc3vYXeP6pCIcNlBJCZOwvqSy8ZpVGmbM5+IG+AfhuTKQ2oXmIVqZJewaGMMpzPkywC6xg0w==, + integrity: sha512-ykF/MiYoM15dgZwF/WLgjJXVbAK2wU6vjPigeEnOHwyUJ0rdlraO5uekecKNVPkvOnz+oju/5zljViQs1nI1FQ==, } engines: { node: '>=20.0.0' } @@ -4401,6 +4401,13 @@ packages: } engines: { node: '>=20.0.0' } + '@aws-sdk/credential-provider-env@3.972.77': + resolution: + { + integrity: sha512-CN6dQCDo32a8n2gvm2HBeqGV5BNI9noG96nTj5bGO2HWtt0Rucu/A8pcnJIqkzILOHSuilnCk0Do8/7h6SOXhQ==, + } + engines: { node: '>=20.0.0' } + '@aws-sdk/credential-provider-http@3.972.41': resolution: { @@ -4408,6 +4415,13 @@ packages: } engines: { node: '>=20.0.0' } + '@aws-sdk/credential-provider-http@3.972.79': + resolution: + { + integrity: sha512-Netsu0nnmvP2HiN1ZFQBeUu+JehQIuubqz+j2kHDgeSE4HDzniCpIZ7RzoWABq+LTcbCi9W03hywifUagoVIWQ==, + } + engines: { node: '>=20.0.0' } + '@aws-sdk/credential-provider-ini@3.972.43': resolution: { @@ -4415,6 +4429,13 @@ packages: } engines: { node: '>=20.0.0' } + '@aws-sdk/credential-provider-ini@3.973.22': + resolution: + { + integrity: sha512-x7/5h58cqOoZR0RWUZC7v/cJOADQR42iSIQkvU+00HVHR4jh8ZpqEgRPGf2zei59iH5qP40lL3bkq49PuWl71g==, + } + engines: { node: '>=20.0.0' } + '@aws-sdk/credential-provider-login@3.972.43': resolution: { @@ -4422,6 +4443,13 @@ packages: } engines: { node: '>=20.0.0' } + '@aws-sdk/credential-provider-login@3.972.84': + resolution: + { + integrity: sha512-G9Ty1uIV0laEvEp2KiMbEhsuBAjgaD3KYrwVjAM5VUxpcIuPBqQI5riA7/qzrnSgYiAKQbubbgkwcqCICKCIxg==, + } + engines: { node: '>=20.0.0' } + '@aws-sdk/credential-provider-node@3.972.44': resolution: { @@ -4429,6 +4457,13 @@ packages: } engines: { node: '>=20.0.0' } + '@aws-sdk/credential-provider-node@3.972.89': + resolution: + { + integrity: sha512-O8xj7/sanrnXfFHu/LUujVBiiwn5mknYenU7xt1w6+yvhR1QoDZWXLFh1gLITaFVPtb1jWgEirC+kFNw+//tyw==, + } + engines: { node: '>=20.0.0' } + '@aws-sdk/credential-provider-process@3.972.39': resolution: { @@ -4436,6 +4471,13 @@ packages: } engines: { node: '>=20.0.0' } + '@aws-sdk/credential-provider-process@3.972.77': + resolution: + { + integrity: sha512-sWA8Jm+ASzkTxoqLizHWRbt8Gj3yZCmZ0hYdvg0uIxuLzWseYcfrDFzaSnkRWlEWSJV38rAWFimdrN0J4NR7Pg==, + } + engines: { node: '>=20.0.0' } + '@aws-sdk/credential-provider-sso@3.972.43': resolution: { @@ -4443,6 +4485,13 @@ packages: } engines: { node: '>=20.0.0' } + '@aws-sdk/credential-provider-sso@3.973.21': + resolution: + { + integrity: sha512-KV2LM8fbYUhDzGEBnPwb+ISNfNlhmnpLS+y6A6VsJpg1EI9aUJ0+dRTxh2GrGdneFH0T4TiuboHxz8i6+M38JA==, + } + engines: { node: '>=20.0.0' } + '@aws-sdk/credential-provider-web-identity@3.972.43': resolution: { @@ -4450,10 +4499,17 @@ packages: } engines: { node: '>=20.0.0' } - '@aws-sdk/eventstream-handler-node@3.972.30': + '@aws-sdk/credential-provider-web-identity@3.972.83': + resolution: + { + integrity: sha512-iekYilmo2Re51fC7gMkEfZ7jFDXwehSCmXjDESaYQsdgYhsLQFG7rTYr3GBvRIyj+Fkda2NxbZX7hAZDaFD0JQ==, + } + engines: { node: '>=20.0.0' } + + '@aws-sdk/eventstream-handler-node@3.972.39': resolution: { - integrity: sha512-hJboPgIpq5+ADc++/B9TBqn65CXV21cZLGB8V5RBQbxkZ/rQ6qMfcxTnW/SvQlasX4jhaSG8B1wsVjhQyDrsnQ==, + integrity: sha512-V+AvQ+KFWApgm9134igy78cgoCEAFfV8K3KmlVi511vjkRWAgvy0tGUePrZsER+9EvrmUWEsrA2NBQspiGVBMQ==, } engines: { node: '>=20.0.0' } @@ -4473,10 +4529,10 @@ packages: } engines: { node: '>=20.0.0' } - '@aws-sdk/middleware-eventstream@3.972.25': + '@aws-sdk/middleware-eventstream@3.972.34': resolution: { - integrity: sha512-9SFbPzJDHHR5k6Q6KvXVas/veUm/TzNcNTFM2UhdXHZHpyIvI2lS+s4cxljw1BihGpVhsAkQDo/2nW7dHxpf4Q==, + integrity: sha512-0IUoHM9N75uMaf70Tj2l+qmOSNw8HaDCsoghPRnewMaaPJjdSxzFaCpPBFDmSWuSlc0gBgv4CsvvvPGoBAD4Bg==, } engines: { node: '>=20.0.0' } @@ -4515,10 +4571,10 @@ packages: } engines: { node: '>=20.0.0' } - '@aws-sdk/middleware-websocket@3.972.44': + '@aws-sdk/middleware-websocket@3.972.59': resolution: { - integrity: sha512-MPjH/vT1UZc7RSdvP/bIZCJqQCOORei84D6a7dwBuvdwOIskTsQ2EczlTRFQu7yWpGMQr1x3xdpDRHjWlTH2Tw==, + integrity: sha512-lpLmEPrmRSG1ev+LqxkOn1JfVGclnS9b5hvGaSoBgS0JxW2u3QXsJuu+KTHvhdFrRohsqzl70cuiHhyUHFSjYQ==, } engines: { node: '>= 14.0.0' } @@ -4529,6 +4585,13 @@ packages: } engines: { node: '>=20.0.0' } + '@aws-sdk/nested-clients@3.997.51': + resolution: + { + integrity: sha512-DJK4iGIHWU8Jh8ODMvqFYcX9yGBMXV4tSZAvqlHF5EDd8hbmF3eFO9KIWOnA7wcQjPzEkyMMW1/FgZ9RU8oimQ==, + } + engines: { node: '>=20.0.0' } + '@aws-sdk/s3-request-presigner@3.1052.0': resolution: { @@ -4543,10 +4606,10 @@ packages: } engines: { node: '>=20.0.0' } - '@aws-sdk/token-providers@3.1048.0': + '@aws-sdk/signature-v4-multi-region@3.996.49': resolution: { - integrity: sha512-k0y/GcuesuSfWyUM0WamrGyeZmltRYaPbHO82UDA6mZ/doB+FOHKutikPAtSXMn/hDz970cF+iRuuiYO9VEbAA==, + integrity: sha512-nvuAZNRrRRVCiARRKsYlQ0VnXiEQiq7vXPH+UA+LSo+kN3Djl9eo/V2r0udkw85PnsNshmv2Em1clld5M3j67w==, } engines: { node: '>=20.0.0' } @@ -4557,6 +4620,20 @@ packages: } engines: { node: '>=20.0.0' } + '@aws-sdk/token-providers@3.1127.0': + resolution: + { + integrity: sha512-Dv2TMWBshJ+tF6ahs2Sy5bh4Iabsd4GAQqVvE9XZmYmnoaVbpS2QKIKE/HRacc7bTtbjEEvP+laGzHvHlf1CiQ==, + } + engines: { node: '>=20.0.0' } + + '@aws-sdk/token-providers@3.1157.0': + resolution: + { + integrity: sha512-AeAzcwWRP2uANO2TjFpKjRdvOCzgfIu6YQl9Ceibd6E0gnq5dfOzujFnq2aeqgbLg4wRtXbUZE4gekCCPrz/OQ==, + } + engines: { node: '>=20.0.0' } + '@aws-sdk/types@3.973.9': resolution: { @@ -4564,10 +4641,10 @@ packages: } engines: { node: '>=20.0.0' } - '@aws-sdk/types@3.974.2': + '@aws-sdk/types@3.975.0': resolution: { - integrity: sha512-3W6IUtSxFbH6X7Wb7DzGCV5QiFQsd0g8bOfntpmDxQlzBoKWUMBu/JPQR0DwkE+Hpnxd6db1tXbOwdeHddG6cA==, + integrity: sha512-WQlhs6juByzWOzj5fwxOx0mPJaEqMcG/sDpl3Id61B3XhKE63xY+0QWcnG+sWR/sCfprmreyUo1lM7IKZmHMzw==, } engines: { node: '>=20.0.0' } @@ -4585,10 +4662,10 @@ packages: } engines: { node: '>=20.0.0' } - '@aws-sdk/xml-builder@3.972.37': + '@aws-sdk/xml-builder@3.972.41': resolution: { - integrity: sha512-zKq4HQum8JwDyEuyfuI4bbiAcU0KxP6qy+9PR/IsR92IyE/DaBAikzAS50tjxip4bqIIANpCcG+Yyj6CVhXupg==, + integrity: sha512-ctjVSyCMegrWfXlx6VqzSBFI6UqmQ5ZlnfMhdLIiWmhoH8UAQxSCP5N3OpG7X3k4LnS7ou74C4mt20+bfTW2aQ==, } engines: { node: '>=20.0.0' } @@ -5045,33 +5122,54 @@ packages: integrity: sha512-KMXtEGg39JuIa5E02yaAUAYr9FYtU3MFRVYOvIrrZSsy781ofUD6jbjIO0AlprDQNbjVd5FDtaWt+BwdWiEP1A==, } - '@earendil-works/pi-agent-core@0.79.10': + '@earendil-works/pi-agent-core@1.4.0': resolution: { - integrity: sha512-XKxgdjhcPuyjrthCOFSgfzT3xZ1uBrJ1IMVDxci1to6hIN6BIg9J5iY8q0pGXK1DLgATLP23da+1UyZLwA360Q==, + integrity: sha512-PoKY84SKUwnt7S5QBZaGUqfNO1kjP3KHpHUA9QpFTj4cOjaVWMYIcBPJ6FDRCdE8Zen9OSECQUd0uUfVgtSmgA==, } engines: { node: '>=22.19.0' } - '@earendil-works/pi-ai@0.79.10': + '@earendil-works/pi-ai@1.4.0': resolution: { - integrity: sha512-9jR23tOl0BIUdQMn70Gr72xYBpM7Xgl9Lyv7gAnU1USfkNRuYG/f/edLl+n/Dp/RafDW3JI4DF7y/GhgkORuew==, + integrity: sha512-hQM/C4+1w8rHYACzDDf+0vQMnEnpzIop1tptIERVgR3ZeT/hHSzBNG8PaWPgxWQjqSeKCyBZSyp8uTT6eKK1pQ==, } engines: { node: '>=22.19.0' } hasBin: true - '@earendil-works/pi-coding-agent@0.79.6': + '@earendil-works/pi-codemode@1.4.0': + resolution: + { + integrity: sha512-23CNAXpS9DuLzPMyYuvrXVVio46x4YhffCgCqaWmF7F5H8PooqjrQvX4ucF6M0BhUd+x2tV6r1J0dv8cCME4Cg==, + } + engines: { node: '>=22.19.0' } + + '@earendil-works/pi-coding-agent@1.4.0': resolution: { - integrity: sha512-xPQDoA3+4Q8UsInST8OGFHPHyi7JQIbx51ku5kf2VuhXrrTv/npjVTXYD3A3D5xs6QRebV0B2mQqHfXaxQAplw==, + integrity: sha512-Z41LpZ3yYHSC/UUps6Mr39UMFPwH8elhJBG9DY1P7kuzsE5qSK/6eMj2EHzO5evJRQWLbKSqUMw+4nCNtIyiQg==, } engines: { node: '>=22.19.0' } hasBin: true - '@earendil-works/pi-tui@0.79.10': + '@earendil-works/pi-mcp@1.4.0': resolution: { - integrity: sha512-FUVOjDn1DVwM1uHD5MNYboXQrXjIDbSt+BQ3py7nQWCY62tKfxgiM1OBMxTcwRWLfSdZHUPpV0hm1loIdUJnPw==, + integrity: sha512-92aZmmGsUpHHknYuKXZHRINQfahntw5hU9If0I0ZM49GojOaFHpkl5/GF3/aatqpt7v7GjZbBfpfSygGKW+pnw==, + } + engines: { node: '>=22.19.0' } + + '@earendil-works/pi-telemetry@1.4.0': + resolution: + { + integrity: sha512-MLIfowwUYIY65jSjMX82paZOrX/NTvLk6D08h+3Jq42a99RzUOewzuCR0zOlPul3D6UBfddat76VT6LvsHEs1w==, + } + engines: { node: '>=22.19.0' } + + '@earendil-works/pi-tui@1.4.0': + resolution: + { + integrity: sha512-4obPOjgOD7g4mGSlngIvxyujC1UPdmyI9zdVthbr8GufacFEX+Ce0+scPgHg++k2xj5+QjESM2d5TxvIuzCVmg==, } engines: { node: '>=22.19.0' } @@ -5779,10 +5877,10 @@ packages: integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==, } - '@google/genai@1.52.0': + '@google/genai@2.21.0': resolution: { - integrity: sha512-gwSvbpiN/17O9TbsqSsE/OzZcpv5Fo4RQjdngGgogtuB9RsyJ8ZHhX5KjHj1bp5N9snN2eK8LDGXSaWW2hof8Q==, + integrity: sha512-+PDtco2/Z0ONdzCGekCoCT+O1VJS9xJQNN4XzQpXG/t3El/SWWMkCWlFRO1KmivOHPa4Q0VjUYu1HBKCZ/v33Q==, } engines: { node: '>=20.0.0' } peerDependencies: @@ -6221,118 +6319,6 @@ packages: integrity: sha512-llBRm4dT4Z89aRsm6u2oEZ8tfwL/2l6BwpZ7JcyieouniDECM5AqNgr/y08zalEIvW3RSK4upYyybDcmjXqAow==, } - '@mariozechner/clipboard-darwin-arm64@0.3.9': - resolution: - { - integrity: sha512-BfgV7vCEWZwJwZJw03r6bP5+tf0iI/ANuQYCxi9RNn7FrWB3yzGuMKCrNLRl6V761vXRdL8+OqZ0wd4TqlsNOQ==, - } - engines: { node: '>= 10' } - cpu: [arm64] - os: [darwin] - - '@mariozechner/clipboard-darwin-universal@0.3.9': - resolution: - { - integrity: sha512-BGGR4iA9Z2shAjI65eI5xtyb3LYNlDW9X3gxKxDbqtbnREohsrqznov6zpKoIrsRWpzlYVEdKphS7ksJ0/ndSQ==, - } - engines: { node: '>= 10' } - os: [darwin] - - '@mariozechner/clipboard-darwin-x64@0.3.9': - resolution: - { - integrity: sha512-4kURmCbS6nt8uYhtmWpUcJWyPHfmAr5dTpXD1nO3pIfa+TSQ9DbrGOYCKH+aEFW47XhQ4Vp8ZTszie+wfFvDKg==, - } - engines: { node: '>= 10' } - cpu: [x64] - os: [darwin] - - '@mariozechner/clipboard-linux-arm64-gnu@0.3.9': - resolution: - { - integrity: sha512-g59OkUGP2DDfCOIKypHeYgv2M55u/cKvXa5dSxFbEJ34XvIQMdcVmpKCkGUro3ZgefXiGVdwguvTMQGpHWzIXw==, - } - engines: { node: '>= 10' } - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@mariozechner/clipboard-linux-arm64-musl@0.3.9': - resolution: - { - integrity: sha512-AGuJdgKsmJdm4Pych7kv3sqe591ERRaAHW3xjLooiFzn8J+PxUyof++7YZrB5Y5tpnTO+K18Og3taj2NpluCRQ==, - } - engines: { node: '>= 10' } - cpu: [arm64] - os: [linux] - libc: [musl] - - '@mariozechner/clipboard-linux-riscv64-gnu@0.3.9': - resolution: - { - integrity: sha512-DXBEAiuMpk7dhS1a9NzNxVAFi1vaKoPu7rQNgY8LIDLGrK3lnIp3nT10DUum+PKVJoJppIP+NAA8IZe4DMNDPw==, - } - engines: { node: '>= 10' } - cpu: [riscv64] - os: [linux] - libc: [glibc] - - '@mariozechner/clipboard-linux-x64-gnu@0.3.9': - resolution: - { - integrity: sha512-WORrMLd6EpElEME7JRKfSaY34nW1P5LbdgK5YNCS1ncG2LqmITsSMEJ8nh2mpvxb3TxqbOOKgY7k9eMJYlW9Mw==, - } - engines: { node: '>= 10' } - cpu: [x64] - os: [linux] - libc: [glibc] - - '@mariozechner/clipboard-linux-x64-musl@0.3.9': - resolution: - { - integrity: sha512-/DHn+1DrfL6oRaPPWXaOKvonFFrni666fxd+zFqiQEfvBH0tsHVWjq9iqBk0oDp0qaPA72lIMy5BptxISBEhZQ==, - } - engines: { node: '>= 10' } - cpu: [x64] - os: [linux] - libc: [musl] - - '@mariozechner/clipboard-win32-arm64-msvc@0.3.9': - resolution: - { - integrity: sha512-O5FHD3ErkMwMhNzAfu3ggy0ug4z7btZuoQgwwxlzPrwV2bxlD6WDpqBY4NCgICAgZdDKdp+loUEKVAVt8aYnhQ==, - } - engines: { node: '>= 10' } - cpu: [arm64] - os: [win32] - - '@mariozechner/clipboard-win32-x64-msvc@0.3.9': - resolution: - { - integrity: sha512-ihQC3EufqEY81vhXBgVBtK4prL+wc62zJsSvxrgz7K1hsdt6OObz6v9p3Rn1OG3GJksTTKMJF0u/guMISHPhSA==, - } - engines: { node: '>= 10' } - cpu: [x64] - os: [win32] - - '@mariozechner/clipboard@0.3.9': - resolution: - { - integrity: sha512-ABnA53mdfkGZwOFUdZNv2S0CWGO/EIuPj8Vv9xmBFmSYg/qFc7ihO6q5FcQjvoE67kZpWkEc4AhD6B/os04yuA==, - } - engines: { node: '>= 10' } - - '@mistralai/mistralai@2.2.6': - resolution: - { - integrity: sha512-W8pX7zHxjJvMIpw8JMxeJEleapXX0Q9NPszdNzqkM3MIEoIGPObdodujj+WHteXEvGfaP/AMwlNyRfEzSY6dQQ==, - } - peerDependencies: - '@opentelemetry/api': ^1.9.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - '@n1ru4l/push-pull-async-iterable-iterator@3.2.0': resolution: { @@ -6692,13 +6678,6 @@ packages: } engines: { node: '>=8.0.0' } - '@opentelemetry/semantic-conventions@1.43.0': - resolution: - { - integrity: sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==, - } - engines: { node: '>=14' } - '@oxfmt/binding-android-arm-eabi@0.51.0': resolution: { @@ -7917,10 +7896,10 @@ packages: } engines: { node: '>=18.0.0' } - '@smithy/core@3.31.0': + '@smithy/core@3.37.0': resolution: { - integrity: sha512-sylYk2l9d7CmRv8ts8p0SDQUr3VO+HMeS1nrjL6+UtbO8ktJHTOeQ1McX+aAyvGGccp5aZX9eNtdcXrSwzoZaw==, + integrity: sha512-97imTcCyiPd8k0e9+ts/Sp0W65Dn9Ti357J7M09Ov4tI8Q1JDJVFSoAJtjEVKqfHEr3Pdo2jfolqKCaaiszH0g==, } engines: { node: '>=18.0.0' } @@ -7931,6 +7910,13 @@ packages: } engines: { node: '>=18.0.0' } + '@smithy/credential-provider-imds@4.5.2': + resolution: + { + integrity: sha512-A9uSdn72ozbRUSit0eib0TW7nXuNPlaeM0zcGkJ+nE6tFcSDbnmtwoxbTCFBukVQcszDAyvsd7+rTduPTXpygg==, + } + engines: { node: '>=18.0.0' } + '@smithy/fetch-http-handler@5.4.4': resolution: { @@ -7938,10 +7924,10 @@ packages: } engines: { node: '>=18.0.0' } - '@smithy/fetch-http-handler@5.6.12': + '@smithy/fetch-http-handler@5.8.0': resolution: { - integrity: sha512-OpQgP6IGH4j0NJ2zjfYZLjQL85ai+Wi/q51EmZJovXsEwKSvu89qiXUq77Q6EmwZ/hSl7fKpn2Z9mhiDN6OM+Q==, + integrity: sha512-ycSJu3tFAQ4v04CBB0agqFMVsSQ1iG3yw+SpgxRqKfaURpQD4CZ8Wn0zPMmSnOuTpTh65Vz+EA0rMrw089wvkA==, } engines: { node: '>=18.0.0' } @@ -7980,10 +7966,10 @@ packages: } engines: { node: '>=18.0.0' } - '@smithy/signature-v4@5.6.11': + '@smithy/signature-v4@5.7.4': resolution: { - integrity: sha512-7HsspeiNCZvZHEJ22vV5L/QYuJdTyJvPJvMrYD3AgkM3IJB0pkln4jkjPvtpTWRMkHXbO8WKwNjoVdVlBFwHmw==, + integrity: sha512-tHy0K0VtqNd5Y7Y41h0a0Lhh0L1GzC08dTWg0F7vRJWFtTENg7IZikf3wQkanYIRdb7ngoIPMTmqgUi401fEeQ==, } engines: { node: '>=18.0.0' } @@ -7994,10 +7980,10 @@ packages: } engines: { node: '>=18.0.0' } - '@smithy/types@4.16.1': + '@smithy/types@4.19.0': resolution: { - integrity: sha512-0JFs3V2y2M9tKW5na/qxe69Zv+uxLMO7QBbhxF/FHu/Gp2NFZAAL9tWl9PU02xxo07pb3G9FTyjNc6D5uZrJIg==, + integrity: sha512-r7jh49VJxGerfAcTQA6gXcKc+98zOp/tqRwzYjgOE+iSQsP6cEU1hq2QzbuipmP68QtYdY9wKEhiCQZIzHgZ4Q==, } engines: { node: '>=18.0.0' } @@ -8015,6 +8001,12 @@ packages: } engines: { node: '>=14.0.0' } + '@stablelib/base64@1.0.1': + resolution: + { + integrity: sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==, + } + '@swc/helpers@0.5.19': resolution: { @@ -8888,6 +8880,13 @@ packages: } engines: { node: '>= 14' } + agent-base@9.0.0: + resolution: + { + integrity: sha512-TQf59BsZnytt8GdJKLPfUZ54g/iaUL2OWDSFCCvMOhsHduDQxO8xC4PNeyIkVcA5KwL2phPSv0douC0fgWzmnA==, + } + engines: { node: '>= 20' } + aggregate-error@3.1.0: resolution: { @@ -9200,6 +9199,13 @@ packages: integrity: sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==, } + brace-expansion@5.0.12: + resolution: + { + integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==, + } + engines: { node: 20 || >=22 } + brace-expansion@5.0.6: resolution: { @@ -9363,12 +9369,12 @@ packages: } engines: { node: '>=10' } - chalk@5.6.2: + chalk@6.0.0: resolution: { - integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==, + integrity: sha512-2uNTXIuTTxk7ciZgAU1BQcgnchcG0xXnrs6jzkQfj9SsRa9M2s5zE8WT96hS6KmG4MzWHSrvH43DF1m4XRkrFg==, } - engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } + engines: { node: '>=22' } char-regex@1.0.2: resolution: @@ -10552,6 +10558,12 @@ packages: integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==, } + fast-sha256@1.3.0: + resolution: + { + integrity: sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==, + } + fast-uri@3.1.2: resolution: { @@ -11249,6 +11261,13 @@ packages: } engines: { node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0 } + grok-mermaid@0.2.3: + resolution: + { + integrity: sha512-/4KopAbsjvuRP9MdPtlDjOHUmUVEohOX73JNcsWpzAtFxh+bq5+Dhb6gzvRieLDwIPQIR3/vy8V1NNTuz4Zsmg==, + } + engines: { node: '>=18' } + handlebars@4.7.9: resolution: { @@ -11385,6 +11404,13 @@ packages: } engines: { node: '>= 14' } + http-proxy-agent@9.1.0: + resolution: + { + integrity: sha512-2NxoveTT58mjYT4n3RPTEfCZGLMbidoO8XEieXfpSYxu+PQJ1qpx4ypwH6N+uF9twBPIvRRgvkvW5HUTYWENig==, + } + engines: { node: '>= 20' } + http-proxy@1.18.1: resolution: { @@ -11399,6 +11425,13 @@ packages: } engines: { node: '>= 14' } + https-proxy-agent@9.1.0: + resolution: + { + integrity: sha512-ag87y7cJJ9/3+GxFr8Oy4O5faDsGRGnBGsJj/YjOSsSx/5eadKLYTMPlzuR6obgoCDDm0abAAZitXXQkMOPSpA==, + } + engines: { node: '>= 20' } + human-signals@2.1.0: resolution: { @@ -11453,6 +11486,13 @@ packages: } engines: { node: '>= 4' } + ignore@7.0.8: + resolution: + { + integrity: sha512-YYNsSlXBjMk92SKnkwvB5LOVSa6OznlFUGcsvrFgNJbJCd0M1XKeFVRc8ZByeCqz32FivYNHJVooLmdqrmvp/Q==, + } + engines: { node: '>= 4' } + import-fresh@3.3.1: resolution: { @@ -12599,10 +12639,19 @@ packages: } hasBin: true - marked@18.0.5: + marked-cjk-friendly@0.1.2: + resolution: + { + integrity: sha512-GUj8HjiEbur9yhgUo52FBgKizggF1QtT6gVdrYdWW6ZB4lVVjgS3EyyXPyfyRD0V4ghGRPlO7MO80rgSWbm0eA==, + } + engines: { node: '>=18' } + peerDependencies: + marked: '>=15.0.0' + + marked@18.0.11: resolution: { - integrity: sha512-S6GcvALHg6K4ohtu4E7x0a1AqhAjp6cV8KhLSyN9qVapnzJkusVBxZRcIU9AeYsbe6P1hKDusSbEOzGyyuce6w==, + integrity: sha512-HnslJfsZkRPBDJRHvVtAaWlZHEpSu7u8LgQuJCELjRKuWR+hpq4A7sLq3p8HaI9ypVoXDXxV34CsQJEe1+J5Aw==, } engines: { node: '>= 20' } hasBin: true @@ -12737,13 +12786,6 @@ packages: } engines: { node: 18 || 20 || >=22 } - minimatch@10.2.5: - resolution: - { - integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==, - } - engines: { node: 18 || 20 || >=22 } - minimatch@10.2.6: resolution: { @@ -13277,16 +13319,28 @@ packages: } engines: { node: '>=12' } - openai@6.26.0: + openai@7.19.0: resolution: { - integrity: sha512-zd23dbWTjiJ6sSAX6s0HrCZi41JwTA1bQVs0wLQPZ2/5o2gxOJA5wh7yOAUgwYybfhDXyhwlpeQf7Mlgx8EOCA==, + integrity: sha512-MX2s3u2L5racTO0CC/SWpCOasJQBCJrqLKXK+l82cAhdeF8mPMBEe/gxMm0ZFa2xpKpOFLRjxv5afYEZbBXmbQ==, } - hasBin: true + engines: { node: '>=22.0.0' } peerDependencies: - ws: ^8.18.0 + '@aws-sdk/credential-provider-node': '>=3.972.0 <4' + '@smithy/hash-node': '>=4.3.0 <5' + '@smithy/signature-v4': '>=5.4.0 <6' + undici: '>=5 <9' + ws: ^8.21.0 zod: ^3.25 || ^4.0 peerDependenciesMeta: + '@aws-sdk/credential-provider-node': + optional: true + '@smithy/hash-node': + optional: true + '@smithy/signature-v4': + optional: true + undici: + optional: true ws: optional: true zod: @@ -14049,6 +14103,18 @@ packages: } engines: { node: '>= 0.10' } + proxy-agent-negotiate@1.1.0: + resolution: + { + integrity: sha512-N8IBcM3UgCVzz2L2Lqv8DVntDnnC8/hiV4nEDUPkqq72TPUgYWjQc+bdZlBPZK9LzPAvOY//gAt0S0DApoOXWQ==, + } + engines: { node: '>= 20' } + peerDependencies: + kerberos: ^2.0.0 + peerDependenciesMeta: + kerberos: + optional: true + proxy-from-env@1.1.0: resolution: { @@ -14121,6 +14187,12 @@ packages: } engines: { node: '>=8' } + quickjs-wasi@3.6.2: + resolution: + { + integrity: sha512-FCqGtGOrMgzUiIrMNMA2YnsOxCNwo31dzqXvclXUC6xeT35NJLKXQJsvbeCTjvoFAwZgEAPg8U6+KAPDGXn8Mg==, + } + range-parser@1.2.1: resolution: { @@ -14588,14 +14660,6 @@ packages: engines: { node: '>=10' } hasBin: true - semver@7.8.0: - resolution: - { - integrity: sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==, - } - engines: { node: '>=10' } - hasBin: true - semver@7.8.5: resolution: { @@ -14852,6 +14916,12 @@ packages: } engines: { node: '>=10' } + standardwebhooks@1.1.1: + resolution: + { + integrity: sha512-bCbX9ZEyFkWPsRz7Bl3NuQUJohmwGSev/yhr7vhaGPlc4AfIrspIRa6cPTBuI1ItmrTDJ4d/S2hCsfe4+vQGnQ==, + } + statuses@1.5.0: resolution: { @@ -15391,6 +15461,12 @@ packages: integrity: sha512-pZ0aQPmMmXoUvSbeuWf/Hzsc+avNw/Zd6VeE8CFgkVGWyuHPJvqeJJDeJqLve+K70LvjYIoleGcoJHPT17cWoA==, } + typebox@1.3.27: + resolution: + { + integrity: sha512-zu+jc1pcy4UiNThxikUr36f0Rybk9PEeCg/NE6adeWr/SKsdNO4EzZHYRDlv2YCVAfj3Odq3dESSo/jNyoBXzA==, + } + typedarray@0.0.6: resolution: { @@ -15445,6 +15521,13 @@ packages: integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==, } + undici@8.10.2: + resolution: + { + integrity: sha512-/y4/bH9YNU5hi9NIrpOuvGXFcxrj3CMrV+/AYpowAYTpHn8gX/XPFjNy766FPoYY0miQhdW977JFWKGNhBdwyQ==, + } + engines: { node: '>=22.19.0' } + undici@8.3.0: resolution: { @@ -15964,14 +16047,6 @@ packages: } engines: { node: '>=10' } - zod-to-json-schema@3.25.2: - resolution: - { - integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==, - } - peerDependencies: - zod: ^3.25.28 || ^4 - zod@4.4.3: resolution: { @@ -16004,9 +16079,10 @@ snapshots: optionalDependencies: graphql: 16.13.0 - '@anthropic-ai/sdk@0.91.1(zod@4.4.3)': + '@anthropic-ai/sdk@0.129.0(zod@4.4.3)': dependencies: json-schema-to-ts: 3.1.1 + standardwebhooks: 1.1.1 optionalDependencies: zod: 4.4.3 @@ -16065,21 +16141,19 @@ snapshots: '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-bedrock-runtime@3.1048.0': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.977.1 - '@aws-sdk/credential-provider-node': 3.972.44 - '@aws-sdk/eventstream-handler-node': 3.972.30 - '@aws-sdk/middleware-eventstream': 3.972.25 - '@aws-sdk/middleware-websocket': 3.972.44 - '@aws-sdk/token-providers': 3.1048.0 - '@aws-sdk/types': 3.974.2 - '@smithy/core': 3.31.0 - '@smithy/fetch-http-handler': 5.6.12 + '@aws-sdk/client-bedrock-runtime@3.1127.0': + dependencies: + '@aws-sdk/core': 3.978.6 + '@aws-sdk/credential-provider-node': 3.972.89 + '@aws-sdk/eventstream-handler-node': 3.972.39 + '@aws-sdk/middleware-eventstream': 3.972.34 + '@aws-sdk/middleware-websocket': 3.972.59 + '@aws-sdk/token-providers': 3.1127.0 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/fetch-http-handler': 5.8.0 '@smithy/node-http-handler': 4.4.16 - '@smithy/types': 4.16.1 + '@smithy/types': 4.19.0 tslib: 2.8.1 '@aws-sdk/client-s3@3.1052.0': @@ -16114,14 +16188,14 @@ snapshots: bowser: 2.14.1 tslib: 2.8.1 - '@aws-sdk/core@3.977.1': + '@aws-sdk/core@3.978.6': dependencies: - '@aws-sdk/types': 3.974.2 - '@aws-sdk/xml-builder': 3.972.37 + '@aws-sdk/types': 3.975.0 + '@aws-sdk/xml-builder': 3.972.41 '@aws/lambda-invoke-store': 0.3.0 - '@smithy/core': 3.31.0 - '@smithy/signature-v4': 5.6.11 - '@smithy/types': 4.16.1 + '@smithy/core': 3.37.0 + '@smithy/signature-v4': 5.7.4 + '@smithy/types': 4.19.0 bowser: 2.14.1 tslib: 2.8.1 @@ -16138,6 +16212,14 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@aws-sdk/credential-provider-env@3.972.77': + dependencies: + '@aws-sdk/core': 3.978.6 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/credential-provider-http@3.972.41': dependencies: '@aws-sdk/core': 3.974.13 @@ -16148,6 +16230,16 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@aws-sdk/credential-provider-http@3.972.79': + dependencies: + '@aws-sdk/core': 3.978.6 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/fetch-http-handler': 5.8.0 + '@smithy/node-http-handler': 4.4.16 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/credential-provider-ini@3.972.43': dependencies: '@aws-sdk/core': 3.974.13 @@ -16164,6 +16256,22 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@aws-sdk/credential-provider-ini@3.973.22': + dependencies: + '@aws-sdk/core': 3.978.6 + '@aws-sdk/credential-provider-env': 3.972.77 + '@aws-sdk/credential-provider-http': 3.972.79 + '@aws-sdk/credential-provider-login': 3.972.84 + '@aws-sdk/credential-provider-process': 3.972.77 + '@aws-sdk/credential-provider-sso': 3.973.21 + '@aws-sdk/credential-provider-web-identity': 3.972.83 + '@aws-sdk/nested-clients': 3.997.51 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/credential-provider-imds': 4.5.2 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/credential-provider-login@3.972.43': dependencies: '@aws-sdk/core': 3.974.13 @@ -16173,6 +16281,15 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@aws-sdk/credential-provider-login@3.972.84': + dependencies: + '@aws-sdk/core': 3.978.6 + '@aws-sdk/nested-clients': 3.997.51 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/credential-provider-node@3.972.44': dependencies: '@aws-sdk/credential-provider-env': 3.972.39 @@ -16187,6 +16304,20 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@aws-sdk/credential-provider-node@3.972.89': + dependencies: + '@aws-sdk/credential-provider-env': 3.972.77 + '@aws-sdk/credential-provider-http': 3.972.79 + '@aws-sdk/credential-provider-ini': 3.973.22 + '@aws-sdk/credential-provider-process': 3.972.77 + '@aws-sdk/credential-provider-sso': 3.973.21 + '@aws-sdk/credential-provider-web-identity': 3.972.83 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/credential-provider-imds': 4.5.2 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/credential-provider-process@3.972.39': dependencies: '@aws-sdk/core': 3.974.13 @@ -16195,6 +16326,14 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@aws-sdk/credential-provider-process@3.972.77': + dependencies: + '@aws-sdk/core': 3.978.6 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/credential-provider-sso@3.972.43': dependencies: '@aws-sdk/core': 3.974.13 @@ -16205,6 +16344,16 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@aws-sdk/credential-provider-sso@3.973.21': + dependencies: + '@aws-sdk/core': 3.978.6 + '@aws-sdk/nested-clients': 3.997.51 + '@aws-sdk/token-providers': 3.1157.0 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/credential-provider-web-identity@3.972.43': dependencies: '@aws-sdk/core': 3.974.13 @@ -16214,11 +16363,20 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/eventstream-handler-node@3.972.30': + '@aws-sdk/credential-provider-web-identity@3.972.83': + dependencies: + '@aws-sdk/core': 3.978.6 + '@aws-sdk/nested-clients': 3.997.51 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + + '@aws-sdk/eventstream-handler-node@3.972.39': dependencies: - '@aws-sdk/types': 3.974.2 - '@smithy/core': 3.31.0 - '@smithy/types': 4.16.1 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 '@aws-sdk/lib-storage@3.1052.0(@aws-sdk/client-s3@3.1052.0)': @@ -16239,11 +16397,11 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/middleware-eventstream@3.972.25': + '@aws-sdk/middleware-eventstream@3.972.34': dependencies: - '@aws-sdk/types': 3.974.2 - '@smithy/core': 3.31.0 - '@smithy/types': 4.16.1 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 '@aws-sdk/middleware-expect-continue@3.972.13': @@ -16287,14 +16445,14 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/middleware-websocket@3.972.44': + '@aws-sdk/middleware-websocket@3.972.59': dependencies: - '@aws-sdk/core': 3.977.1 - '@aws-sdk/types': 3.974.2 - '@smithy/core': 3.31.0 - '@smithy/fetch-http-handler': 5.6.12 - '@smithy/signature-v4': 5.6.11 - '@smithy/types': 4.16.1 + '@aws-sdk/core': 3.978.6 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/fetch-http-handler': 5.8.0 + '@smithy/signature-v4': 5.7.4 + '@smithy/types': 4.19.0 tslib: 2.8.1 '@aws-sdk/nested-clients@3.997.11': @@ -16310,6 +16468,17 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@aws-sdk/nested-clients@3.997.51': + dependencies: + '@aws-sdk/core': 3.978.6 + '@aws-sdk/signature-v4-multi-region': 3.996.49 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/fetch-http-handler': 5.8.0 + '@smithy/node-http-handler': 4.4.16 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/s3-request-presigner@3.1052.0': dependencies: '@aws-sdk/core': 3.974.13 @@ -16327,13 +16496,11 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/token-providers@3.1048.0': + '@aws-sdk/signature-v4-multi-region@3.996.49': dependencies: - '@aws-sdk/core': 3.977.1 - '@aws-sdk/nested-clients': 3.997.11 - '@aws-sdk/types': 3.974.2 - '@smithy/core': 3.31.0 - '@smithy/types': 4.16.1 + '@aws-sdk/types': 3.975.0 + '@smithy/signature-v4': 5.7.4 + '@smithy/types': 4.19.0 tslib: 2.8.1 '@aws-sdk/token-providers@3.1052.0': @@ -16345,14 +16512,32 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@aws-sdk/token-providers@3.1127.0': + dependencies: + '@aws-sdk/core': 3.978.6 + '@aws-sdk/nested-clients': 3.997.51 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + + '@aws-sdk/token-providers@3.1157.0': + dependencies: + '@aws-sdk/core': 3.978.6 + '@aws-sdk/nested-clients': 3.997.51 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.37.0 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@aws-sdk/types@3.973.9': dependencies: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/types@3.974.2': + '@aws-sdk/types@3.975.0': dependencies: - '@smithy/types': 4.16.1 + '@smithy/types': 4.19.0 tslib: 2.8.1 '@aws-sdk/util-locate-window@3.965.5': @@ -16366,9 +16551,9 @@ snapshots: fast-xml-parser: 5.7.3 tslib: 2.8.1 - '@aws-sdk/xml-builder@3.972.37': + '@aws-sdk/xml-builder@3.972.41': dependencies: - '@smithy/types': 4.16.1 + '@smithy/types': 4.19.0 tslib: 2.8.1 '@aws/lambda-invoke-store@0.2.4': {} @@ -16723,75 +16908,99 @@ snapshots: '@decryption/hashes@0.4.0': {} - '@earendil-works/pi-agent-core@0.79.10(ws@8.21.3)(zod@4.4.3)': + '@earendil-works/pi-agent-core@1.4.0(@aws-sdk/credential-provider-node@3.972.89)(@smithy/signature-v4@5.7.4)(undici@8.10.2)(ws@8.21.3)(zod@4.4.3)': dependencies: - '@earendil-works/pi-ai': 0.79.10(ws@8.21.3)(zod@4.4.3) - ignore: 7.0.5 - typebox: 1.1.38 - yaml: 2.9.0 + '@earendil-works/pi-ai': 1.4.0(@aws-sdk/credential-provider-node@3.972.89)(@smithy/signature-v4@5.7.4)(undici@8.10.2)(ws@8.21.3)(zod@4.4.3) + typebox: 1.3.27 transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' - '@modelcontextprotocol/sdk' + - '@smithy/hash-node' + - '@smithy/signature-v4' - bufferutil + - kerberos - supports-color + - undici - utf-8-validate - ws - zod - '@earendil-works/pi-ai@0.79.10(ws@8.21.3)(zod@4.4.3)': + '@earendil-works/pi-ai@1.4.0(@aws-sdk/credential-provider-node@3.972.89)(@smithy/signature-v4@5.7.4)(undici@8.10.2)(ws@8.21.3)(zod@4.4.3)': dependencies: - '@anthropic-ai/sdk': 0.91.1(zod@4.4.3) - '@aws-sdk/client-bedrock-runtime': 3.1048.0 - '@google/genai': 1.52.0 - '@mistralai/mistralai': 2.2.6(@opentelemetry/api@1.9.0) - '@opentelemetry/api': 1.9.0 + '@anthropic-ai/sdk': 0.129.0(zod@4.4.3) + '@aws-sdk/client-bedrock-runtime': 3.1127.0 + '@earendil-works/pi-telemetry': 1.4.0 + '@google/genai': 2.21.0 '@smithy/node-http-handler': 4.4.16 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 - openai: 6.26.0(ws@8.21.3)(zod@4.4.3) + http-proxy-agent: 9.1.0 + https-proxy-agent: 9.1.0 + openai: 7.19.0(@aws-sdk/credential-provider-node@3.972.89)(@smithy/signature-v4@5.7.4)(undici@8.10.2)(ws@8.21.3)(zod@4.4.3) partial-json: 0.1.7 - typebox: 1.1.38 + typebox: 1.3.27 transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' - '@modelcontextprotocol/sdk' + - '@smithy/hash-node' + - '@smithy/signature-v4' - bufferutil + - kerberos - supports-color + - undici - utf-8-validate - ws - zod - '@earendil-works/pi-coding-agent@0.79.6(ws@8.21.3)(zod@4.4.3)': + '@earendil-works/pi-codemode@1.4.0': + dependencies: + quickjs-wasi: 3.6.2 + + '@earendil-works/pi-coding-agent@1.4.0(@aws-sdk/credential-provider-node@3.972.89)(@smithy/signature-v4@5.7.4)(ws@8.21.3)(zod@4.4.3)': dependencies: - '@earendil-works/pi-agent-core': 0.79.10(ws@8.21.3)(zod@4.4.3) - '@earendil-works/pi-ai': 0.79.10(ws@8.21.3)(zod@4.4.3) - '@earendil-works/pi-tui': 0.79.10 + '@earendil-works/pi-agent-core': 1.4.0(@aws-sdk/credential-provider-node@3.972.89)(@smithy/signature-v4@5.7.4)(undici@8.10.2)(ws@8.21.3)(zod@4.4.3) + '@earendil-works/pi-ai': 1.4.0(@aws-sdk/credential-provider-node@3.972.89)(@smithy/signature-v4@5.7.4)(undici@8.10.2)(ws@8.21.3)(zod@4.4.3) + '@earendil-works/pi-codemode': 1.4.0 + '@earendil-works/pi-mcp': 1.4.0 + '@earendil-works/pi-tui': 1.4.0 '@silvia-odwyer/photon-node': 0.3.4 - chalk: 5.6.2 + brace-expansion: 5.0.12 + chalk: 6.0.0 cross-spawn: 7.0.6 diff: 8.0.4 - glob: 13.0.6 + grok-mermaid: 0.2.3 highlight.js: 10.7.3 hosted-git-info: 9.0.3 - ignore: 7.0.5 + ignore: 7.0.8 jiti: 2.7.0 - minimatch: 10.2.5 + minimatch: 10.2.6 proper-lockfile: 4.1.2 - semver: 7.8.0 - typebox: 1.1.38 - undici: 8.3.0 + quickjs-wasi: 3.6.2 + semver: 7.8.5 + typebox: 1.3.27 + undici: 8.10.2 yaml: 2.9.0 - optionalDependencies: - '@mariozechner/clipboard': 0.3.9 transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' - '@modelcontextprotocol/sdk' + - '@smithy/hash-node' + - '@smithy/signature-v4' - bufferutil + - kerberos - supports-color - utf-8-validate - ws - zod - '@earendil-works/pi-tui@0.79.10': + '@earendil-works/pi-mcp@1.4.0': + dependencies: + cross-spawn: 7.0.6 + + '@earendil-works/pi-telemetry@1.4.0': {} + + '@earendil-works/pi-tui@1.4.0': dependencies: get-east-asian-width: 1.6.0 - marked: 18.0.5 + marked: 18.0.11 + marked-cjk-friendly: 0.1.2(marked@18.0.11) '@electric-sql/pglite-age@0.0.5(@electric-sql/pglite@0.5.4)': dependencies: @@ -17101,7 +17310,7 @@ snapshots: '@floating-ui/utils@0.2.11': {} - '@google/genai@1.52.0': + '@google/genai@2.21.0': dependencies: google-auth-library: 10.9.1 p-retry: 4.6.2 @@ -17886,62 +18095,6 @@ snapshots: '@levischuck/tiny-cbor@0.2.11': {} - '@mariozechner/clipboard-darwin-arm64@0.3.9': - optional: true - - '@mariozechner/clipboard-darwin-universal@0.3.9': - optional: true - - '@mariozechner/clipboard-darwin-x64@0.3.9': - optional: true - - '@mariozechner/clipboard-linux-arm64-gnu@0.3.9': - optional: true - - '@mariozechner/clipboard-linux-arm64-musl@0.3.9': - optional: true - - '@mariozechner/clipboard-linux-riscv64-gnu@0.3.9': - optional: true - - '@mariozechner/clipboard-linux-x64-gnu@0.3.9': - optional: true - - '@mariozechner/clipboard-linux-x64-musl@0.3.9': - optional: true - - '@mariozechner/clipboard-win32-arm64-msvc@0.3.9': - optional: true - - '@mariozechner/clipboard-win32-x64-msvc@0.3.9': - optional: true - - '@mariozechner/clipboard@0.3.9': - optionalDependencies: - '@mariozechner/clipboard-darwin-arm64': 0.3.9 - '@mariozechner/clipboard-darwin-universal': 0.3.9 - '@mariozechner/clipboard-darwin-x64': 0.3.9 - '@mariozechner/clipboard-linux-arm64-gnu': 0.3.9 - '@mariozechner/clipboard-linux-arm64-musl': 0.3.9 - '@mariozechner/clipboard-linux-riscv64-gnu': 0.3.9 - '@mariozechner/clipboard-linux-x64-gnu': 0.3.9 - '@mariozechner/clipboard-linux-x64-musl': 0.3.9 - '@mariozechner/clipboard-win32-arm64-msvc': 0.3.9 - '@mariozechner/clipboard-win32-x64-msvc': 0.3.9 - optional: true - - '@mistralai/mistralai@2.2.6(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/semantic-conventions': 1.43.0 - ws: 8.21.3 - zod: 4.4.3 - zod-to-json-schema: 3.25.2(zod@4.4.3) - optionalDependencies: - '@opentelemetry/api': 1.9.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - '@n1ru4l/push-pull-async-iterable-iterator@3.2.0': {} '@napi-rs/wasm-runtime@0.2.4': @@ -18210,9 +18363,8 @@ snapshots: dependencies: '@octokit/openapi-types': 24.2.0 - '@opentelemetry/api@1.9.0': {} - - '@opentelemetry/semantic-conventions@1.43.0': {} + '@opentelemetry/api@1.9.0': + optional: true '@oxfmt/binding-android-arm-eabi@0.51.0': optional: true @@ -18970,9 +19122,9 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/core@3.31.0': + '@smithy/core@3.37.0': dependencies: - '@smithy/types': 4.16.1 + '@smithy/types': 4.19.0 tslib: 2.8.1 '@smithy/credential-provider-imds@4.3.4': @@ -18981,16 +19133,22 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/credential-provider-imds@4.5.2': + dependencies: + '@smithy/core': 3.37.0 + '@smithy/types': 4.19.0 + tslib: 2.8.1 + '@smithy/fetch-http-handler@5.4.4': dependencies: '@smithy/core': 3.24.4 '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/fetch-http-handler@5.6.12': + '@smithy/fetch-http-handler@5.8.0': dependencies: - '@smithy/core': 3.31.0 - '@smithy/types': 4.16.1 + '@smithy/core': 3.37.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 '@smithy/is-array-buffer@2.2.0': @@ -19021,17 +19179,17 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/signature-v4@5.6.11': + '@smithy/signature-v4@5.7.4': dependencies: - '@smithy/core': 3.31.0 - '@smithy/types': 4.16.1 + '@smithy/core': 3.37.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 '@smithy/types@4.14.2': dependencies: tslib: 2.8.1 - '@smithy/types@4.16.1': + '@smithy/types@4.19.0': dependencies: tslib: 2.8.1 @@ -19045,6 +19203,8 @@ snapshots: '@smithy/util-buffer-from': 2.2.0 tslib: 2.8.1 + '@stablelib/base64@1.0.1': {} + '@swc/helpers@0.5.19': dependencies: tslib: 2.8.1 @@ -19569,6 +19729,8 @@ snapshots: agent-base@7.1.4: {} + agent-base@9.0.0: {} + aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 @@ -19767,6 +19929,10 @@ snapshots: dependencies: balanced-match: 1.0.2 + brace-expansion@5.0.12: + dependencies: + balanced-match: 4.0.4 + brace-expansion@5.0.6: dependencies: balanced-match: 4.0.4 @@ -19868,7 +20034,7 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.6.2: {} + chalk@6.0.0: {} char-regex@1.0.2: {} @@ -20527,6 +20693,8 @@ snapshots: fast-safe-stringify@2.1.1: {} + fast-sha256@1.3.0: {} + fast-uri@3.1.2: {} fast-xml-builder@1.2.0: @@ -21223,6 +21391,8 @@ snapshots: graphql@16.13.0: {} + grok-mermaid@0.2.3: {} + handlebars@4.7.9: dependencies: minimist: 1.2.8 @@ -21301,6 +21471,15 @@ snapshots: transitivePeerDependencies: - supports-color + http-proxy-agent@9.1.0: + dependencies: + agent-base: 9.0.0 + debug: 4.4.3(supports-color@5.5.0) + proxy-agent-negotiate: 1.1.0 + transitivePeerDependencies: + - kerberos + - supports-color + http-proxy@1.18.1(debug@4.4.3): dependencies: eventemitter3: 4.0.7 @@ -21316,6 +21495,15 @@ snapshots: transitivePeerDependencies: - supports-color + https-proxy-agent@9.1.0: + dependencies: + agent-base: 9.0.0 + debug: 4.4.3(supports-color@5.5.0) + proxy-agent-negotiate: 1.1.0 + transitivePeerDependencies: + - kerberos + - supports-color + human-signals@2.1.0: {} iconv-lite@0.6.3: @@ -21338,6 +21526,8 @@ snapshots: ignore@7.0.5: {} + ignore@7.0.8: {} + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -22338,7 +22528,11 @@ snapshots: punycode.js: 2.3.1 uc.micro: 2.1.0 - marked@18.0.5: {} + marked-cjk-friendly@0.1.2(marked@18.0.11): + dependencies: + marked: 18.0.11 + + marked@18.0.11: {} math-intrinsics@1.1.0: {} @@ -22411,10 +22605,6 @@ snapshots: dependencies: brace-expansion: 5.0.6 - minimatch@10.2.5: - dependencies: - brace-expansion: 5.0.6 - minimatch@10.2.6: dependencies: brace-expansion: 5.0.9 @@ -22762,8 +22952,11 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 - openai@6.26.0(ws@8.21.3)(zod@4.4.3): + openai@7.19.0(@aws-sdk/credential-provider-node@3.972.89)(@smithy/signature-v4@5.7.4)(undici@8.10.2)(ws@8.21.3)(zod@4.4.3): optionalDependencies: + '@aws-sdk/credential-provider-node': 3.972.89 + '@smithy/signature-v4': 5.7.4 + undici: 8.10.2 ws: 8.21.3 zod: 4.4.3 @@ -23385,6 +23578,8 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 + proxy-agent-negotiate@1.1.0: {} + proxy-from-env@1.1.0: {} pstree.remy@1.1.8: {} @@ -23413,6 +23608,8 @@ snapshots: quick-lru@4.0.1: {} + quickjs-wasi@3.6.2: {} + range-parser@1.2.1: {} raw-body@3.0.2: @@ -23872,8 +24069,6 @@ snapshots: semver@7.7.3: {} - semver@7.8.0: {} - semver@7.8.5: {} send@1.2.1: @@ -24044,6 +24239,11 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 + standardwebhooks@1.1.1: + dependencies: + '@stablelib/base64': 1.0.1 + fast-sha256: 1.3.0 + statuses@1.5.0: {} statuses@2.0.2: {} @@ -24367,6 +24567,8 @@ snapshots: typebox@1.1.38: {} + typebox@1.3.27: {} + typedarray@0.0.6: {} typescript@5.9.3: {} @@ -24384,6 +24586,8 @@ snapshots: undici-types@7.24.6: {} + undici@8.10.2: {} + undici@8.3.0: {} unique-filename@3.0.0: @@ -24656,10 +24860,6 @@ snapshots: yocto-queue@0.1.0: {} - zod-to-json-schema@3.25.2(zod@4.4.3): - dependencies: - zod: 4.4.3 - zod@4.4.3: {} zustand@5.0.11(@types/react@19.2.18)(react@19.2.8)(use-sync-external-store@1.6.0(react@19.2.8)):