UNPKG

mlld

Version:

mlld: llm scripting language

1 lines 27.1 kB
{"version":3,"sources":["../interpreter/streaming/jsonpath.ts","../interpreter/streaming/adapters/base.ts","../interpreter/streaming/adapters/ndjson.ts"],"names":["extractPath","obj","path","options","undefined","returnUndefined","parts","parsePath","current","i","length","part","type","Array","isArray","remainingParts","slice","remainingPath","partsToPath","map","item","key","arr","index","extractWithFallback","pathOrPaths","paths","value","segments","split","segment","endsWith","push","arrayMatch","match","indexStr","parseInt","join","BaseStreamAdapter","config","buffer","flush","trim","remaining","processRemainingBuffer","reset","matchSchema","defaultSchema","schema","schemas","schemaMatches","expectedValue","Object","entries","actualValue","getNestedValue","matchPath","matchValue","extractData","result","field","NDJSONAdapter","name","format","processChunk","chunk","events","lines","pop","line","trimmed","event","parseLine","parsed","JSON","parse","kind","data","raw","timestamp","Date","now","extract","templates","createNDJSONAdapter","COMMON_SCHEMAS","claudeCodeThinking","text","depth","visibility","claudeCodeMessage","role","claudeCodeToolUse","input","id","claudeCodeToolResult","toolUseId","success","isError","claudeCodeError","message","code","claudeCodeUsage","inputTokens","outputTokens","model","contentBlockDelta","messageDelta","stopReason","streamEventTextDelta","streamEventMessageDelta"],"mappings":"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","file":"chunk-YRFPMAAJ.mjs","sourcesContent":["/**\n * JSONPath Extraction Utilities\n *\n * Simple JSONPath-like extraction for streaming adapter data.\n *\n * Supported syntax:\n * - Dot notation: `a.b.c`\n * - Array indexing: `items[0]`, `items[1].name`\n * - Array iteration: `items[].name` (collects from all items)\n * - Fallback paths: `[\"primary\", \"fallback\"]` (tries each in order)\n */\n\nexport type JSONPathExpression = string | string[];\n\nexport interface JSONPathOptions {\n returnUndefined?: boolean;\n collectArrays?: boolean;\n}\n\n/**\n * Extract a value from an object using a JSONPath-like expression.\n */\nexport function extractPath(\n obj: unknown,\n path: string,\n options?: JSONPathOptions\n): unknown {\n if (obj === null || obj === undefined) {\n return options?.returnUndefined ? undefined : null;\n }\n\n const parts = parsePath(path);\n let current: unknown = obj;\n\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n\n if (current === null || current === undefined) {\n return options?.returnUndefined ? undefined : null;\n }\n\n // Array iteration: content[] means iterate and collect\n if (part.type === 'array-iterate') {\n if (!Array.isArray(current)) {\n return options?.returnUndefined ? undefined : null;\n }\n\n // If there are remaining path parts, collect from each item\n const remainingParts = parts.slice(i + 1);\n if (remainingParts.length > 0) {\n const remainingPath = partsToPath(remainingParts);\n return current.map(item => extractPath(item, remainingPath, options));\n }\n\n return current;\n }\n\n // Array index: content[0]\n if (part.type === 'array-index') {\n if (!Array.isArray((current as Record<string, unknown>)[part.key])) {\n return options?.returnUndefined ? undefined : null;\n }\n const arr = (current as Record<string, unknown>)[part.key] as unknown[];\n current = arr[part.index!];\n continue;\n }\n\n // Object key: content.text\n if (part.type === 'key') {\n if (typeof current !== 'object') {\n return options?.returnUndefined ? undefined : null;\n }\n current = (current as Record<string, unknown>)[part.key];\n continue;\n }\n }\n\n // Return null for undefined values unless returnUndefined is set\n if (current === undefined) {\n return options?.returnUndefined ? undefined : null;\n }\n\n return current;\n}\n\n/**\n * Extract a value using fallback paths.\n * Tries each path in order, returning the first non-undefined value.\n */\nexport function extractWithFallback(\n obj: unknown,\n pathOrPaths: JSONPathExpression,\n options?: JSONPathOptions\n): unknown {\n const paths = Array.isArray(pathOrPaths) ? pathOrPaths : [pathOrPaths];\n\n for (const path of paths) {\n const value = extractPath(obj, path, { returnUndefined: true });\n if (value !== undefined) {\n return value;\n }\n }\n\n return options?.returnUndefined ? undefined : null;\n}\n\n/**\n * Extract multiple fields from an object.\n */\nexport function extractFields(\n obj: unknown,\n fields: Record<string, JSONPathExpression>,\n options?: JSONPathOptions\n): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n\n for (const [name, pathOrPaths] of Object.entries(fields)) {\n const value = extractWithFallback(obj, pathOrPaths, { returnUndefined: true });\n if (value !== undefined) {\n result[name] = value;\n } else if (!options?.returnUndefined) {\n result[name] = null;\n }\n }\n\n return result;\n}\n\n/**\n * Check if a path exists in an object.\n * Note: Returns true if the path exists, even if the value is null or undefined.\n */\nexport function hasPath(obj: unknown, path: string): boolean {\n if (obj === null || obj === undefined) {\n return false;\n }\n\n const parts = parsePath(path);\n let current: unknown = obj;\n\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n\n if (typeof current !== 'object' || current === null) {\n return false;\n }\n\n const record = current as Record<string, unknown>;\n\n if (part.type === 'key') {\n if (!(part.key in record)) {\n return false;\n }\n current = record[part.key];\n continue;\n }\n\n if (part.type === 'array-index') {\n if (!(part.key in record)) {\n return false;\n }\n const arr = record[part.key];\n if (!Array.isArray(arr) || part.index! >= arr.length) {\n return false;\n }\n current = arr[part.index!];\n continue;\n }\n\n // For array-iterate, just check the key exists and is an array\n if (part.type === 'array-iterate') {\n return true;\n }\n }\n\n return true;\n}\n\n/**\n * Get the value at a path, or a default value if not found.\n */\nexport function getPathOr<T>(\n obj: unknown,\n path: string,\n defaultValue: T\n): T {\n const value = extractPath(obj, path, { returnUndefined: true });\n return value !== undefined ? (value as T) : defaultValue;\n}\n\n// Path parsing internals\n\ninterface PathPart {\n type: 'key' | 'array-index' | 'array-iterate';\n key: string;\n index?: number;\n}\n\nfunction parsePath(path: string): PathPart[] {\n const parts: PathPart[] = [];\n const segments = path.split('.');\n\n for (const segment of segments) {\n // Array iterate: items[]\n if (segment.endsWith('[]')) {\n const key = segment.slice(0, -2);\n if (key) {\n parts.push({ type: 'key', key });\n }\n parts.push({ type: 'array-iterate', key: '' });\n continue;\n }\n\n // Array index: items[0]\n const arrayMatch = segment.match(/^(.+)\\[(\\d+)\\]$/);\n if (arrayMatch) {\n const [, key, indexStr] = arrayMatch;\n parts.push({\n type: 'array-index',\n key,\n index: parseInt(indexStr, 10)\n });\n continue;\n }\n\n // Regular key\n parts.push({ type: 'key', key: segment });\n }\n\n return parts;\n}\n\nfunction partsToPath(parts: PathPart[]): string {\n return parts.map(part => {\n if (part.type === 'array-iterate') {\n return '[]';\n }\n if (part.type === 'array-index') {\n return `${part.key}[${part.index}]`;\n }\n return part.key;\n }).join('.');\n}\n","/**\n * Base types for streaming format adapters.\n *\n * Adapters parse streaming output from executors (NDJSON, SSE, etc.)\n * and extract structured events that can be displayed or accumulated.\n */\n\nimport { extractWithFallback } from '../jsonpath';\n\nexport type ParsedEventKind =\n | 'thinking'\n | 'message'\n | 'tool-use'\n | 'tool-result'\n | 'error'\n | 'metadata'\n | 'unknown';\n\nexport interface ParsedEvent {\n kind: ParsedEventKind;\n data: Record<string, unknown>;\n raw?: unknown;\n timestamp?: number;\n templates?: EventTemplate;\n}\n\nexport interface ExtractionConfig {\n [field: string]: string | string[];\n}\n\nexport interface EventTemplate {\n text?: string;\n ansi?: string;\n json?: string;\n}\n\nexport interface EventSchema {\n kind: ParsedEventKind;\n match?: Record<string, unknown>;\n matchPath?: string;\n matchValue?: unknown;\n extract: ExtractionConfig;\n templates?: EventTemplate;\n visibility?: 'always' | 'hidden' | 'optional';\n}\n\nexport interface AdapterConfig {\n name: string;\n format: 'ndjson' | 'sse' | 'text';\n schemas: EventSchema[];\n defaultSchema?: EventSchema;\n}\n\nexport interface StreamAdapter {\n readonly name: string;\n readonly format: 'ndjson' | 'sse' | 'text';\n\n processChunk(chunk: string): ParsedEvent[];\n flush(): ParsedEvent[];\n reset(): void;\n}\n\nexport abstract class BaseStreamAdapter implements StreamAdapter {\n abstract readonly name: string;\n abstract readonly format: 'ndjson' | 'sse' | 'text';\n\n protected buffer: string = '';\n protected config: AdapterConfig;\n\n constructor(config: AdapterConfig) {\n this.config = config;\n }\n\n abstract processChunk(chunk: string): ParsedEvent[];\n\n flush(): ParsedEvent[] {\n if (!this.buffer.trim()) {\n return [];\n }\n const remaining = this.processRemainingBuffer();\n this.buffer = '';\n return remaining;\n }\n\n reset(): void {\n this.buffer = '';\n }\n\n protected processRemainingBuffer(): ParsedEvent[] {\n return [];\n }\n\n protected matchSchema(obj: unknown): EventSchema | undefined {\n if (!obj || typeof obj !== 'object') {\n return this.config.defaultSchema;\n }\n\n for (const schema of this.config.schemas) {\n if (this.schemaMatches(obj, schema)) {\n return schema;\n }\n }\n\n return this.config.defaultSchema;\n }\n\n protected schemaMatches(obj: unknown, schema: EventSchema): boolean {\n if (!obj || typeof obj !== 'object') return false;\n\n if (schema.match) {\n for (const [key, expectedValue] of Object.entries(schema.match)) {\n const actualValue = this.getNestedValue(obj as Record<string, unknown>, key);\n if (actualValue !== expectedValue) {\n return false;\n }\n }\n return true;\n }\n\n if (schema.matchPath && schema.matchValue !== undefined) {\n const actualValue = this.getNestedValue(obj as Record<string, unknown>, schema.matchPath);\n return actualValue === schema.matchValue;\n }\n\n return false;\n }\n\n protected extractData(obj: unknown, config: ExtractionConfig): Record<string, unknown> {\n if (!obj || typeof obj !== 'object') {\n return {};\n }\n\n const result: Record<string, unknown> = {};\n\n for (const [field, pathOrPaths] of Object.entries(config)) {\n const value = extractWithFallback(obj, pathOrPaths, { returnUndefined: true });\n if (value !== undefined) {\n result[field] = value;\n }\n }\n\n return result;\n }\n\n protected getNestedValue(obj: Record<string, unknown>, path: string): unknown {\n return extractWithFallback(obj, path, { returnUndefined: true });\n }\n}\n","/**\n * NDJSON (Newline-Delimited JSON) Stream Adapter\n *\n * Parses NDJSON streams into structured events.\n * Each line is a complete JSON object.\n */\n\nimport {\n BaseStreamAdapter,\n type AdapterConfig,\n type ParsedEvent,\n type EventSchema\n} from './base';\n\nexport class NDJSONAdapter extends BaseStreamAdapter {\n readonly name: string;\n readonly format = 'ndjson' as const;\n\n constructor(config: AdapterConfig) {\n super(config);\n this.name = config.name;\n }\n\n processChunk(chunk: string): ParsedEvent[] {\n this.buffer += chunk;\n const events: ParsedEvent[] = [];\n\n // Process complete lines\n const lines = this.buffer.split('\\n');\n\n // Keep incomplete last line in buffer\n this.buffer = lines.pop() || '';\n\n for (const line of lines) {\n const trimmed = line.trim();\n if (!trimmed) continue;\n\n const event = this.parseLine(trimmed);\n if (event) {\n events.push(event);\n }\n }\n\n return events;\n }\n\n protected override processRemainingBuffer(): ParsedEvent[] {\n const trimmed = this.buffer.trim();\n if (!trimmed) {\n return [];\n }\n\n const event = this.parseLine(trimmed);\n return event ? [event] : [];\n }\n\n private parseLine(line: string): ParsedEvent | null {\n let parsed: unknown;\n\n try {\n parsed = JSON.parse(line);\n } catch {\n // Not valid JSON, emit as unknown\n return {\n kind: 'unknown',\n data: { raw: line },\n raw: line,\n timestamp: Date.now()\n };\n }\n\n // Match against schemas\n const schema = this.matchSchema(parsed);\n\n if (!schema) {\n return {\n kind: 'unknown',\n data: parsed as Record<string, unknown>,\n raw: parsed,\n timestamp: Date.now()\n };\n }\n\n // Extract data according to schema\n const data = this.extractData(parsed, schema.extract);\n\n return {\n kind: schema.kind,\n data,\n raw: parsed,\n timestamp: Date.now(),\n templates: schema.templates\n };\n }\n}\n\nexport function createNDJSONAdapter(config: Omit<AdapterConfig, 'format'>): NDJSONAdapter {\n return new NDJSONAdapter({ ...config, format: 'ndjson' });\n}\n\n// Pre-built schema patterns for common NDJSON formats\nexport const COMMON_SCHEMAS = {\n // Claude Code SDK format\n claudeCodeThinking: {\n kind: 'thinking' as const,\n matchPath: 'type',\n matchValue: 'thinking',\n extract: {\n text: ['thinking', 'content', 'message'],\n depth: 'depth'\n },\n visibility: 'optional' as const\n },\n\n claudeCodeMessage: {\n kind: 'message' as const,\n matchPath: 'type',\n matchValue: 'text',\n extract: {\n chunk: ['text', 'content', 'delta.text'],\n role: 'role'\n },\n visibility: 'always' as const\n },\n\n claudeCodeToolUse: {\n kind: 'tool-use' as const,\n matchPath: 'type',\n matchValue: 'tool_use',\n extract: {\n name: ['name', 'tool_name'],\n input: ['input', 'parameters'],\n id: ['id', 'tool_use_id']\n },\n visibility: 'optional' as const\n },\n\n claudeCodeToolResult: {\n kind: 'tool-result' as const,\n matchPath: 'type',\n matchValue: 'tool_result',\n extract: {\n result: ['content', 'result', 'output'],\n toolUseId: ['tool_use_id', 'id'],\n success: 'success',\n isError: 'is_error' // Claude Code uses is_error (inverted)\n },\n visibility: 'optional' as const\n },\n\n claudeCodeError: {\n kind: 'error' as const,\n matchPath: 'type',\n matchValue: 'error',\n extract: {\n message: ['message', 'error.message', 'error'],\n code: ['code', 'error.code']\n },\n visibility: 'always' as const\n },\n\n claudeCodeUsage: {\n kind: 'metadata' as const,\n matchPath: 'type',\n matchValue: 'result',\n extract: {\n inputTokens: ['usage.input_tokens', 'input_tokens'],\n outputTokens: ['usage.output_tokens', 'output_tokens'],\n model: 'model'\n },\n visibility: 'optional' as const\n },\n\n // Generic content_block_delta (Anthropic API format)\n contentBlockDelta: {\n kind: 'message' as const,\n matchPath: 'type',\n matchValue: 'content_block_delta',\n extract: {\n chunk: ['delta.text', 'delta.partial_json'],\n index: 'index'\n },\n visibility: 'always' as const\n },\n\n // Generic message_delta (Anthropic API format)\n messageDelta: {\n kind: 'metadata' as const,\n matchPath: 'type',\n matchValue: 'message_delta',\n extract: {\n stopReason: 'delta.stop_reason',\n inputTokens: 'usage.input_tokens',\n outputTokens: 'usage.output_tokens'\n },\n visibility: 'optional' as const\n },\n\n // Claude CLI with --include-partial-messages wraps Anthropic API events\n streamEventTextDelta: {\n kind: 'message' as const,\n matchPath: 'event.type',\n matchValue: 'content_block_delta',\n extract: {\n chunk: ['event.delta.text', 'event.delta.partial_json']\n },\n visibility: 'always' as const\n },\n\n streamEventMessageDelta: {\n kind: 'metadata' as const,\n matchPath: 'event.type',\n matchValue: 'message_delta',\n extract: {\n inputTokens: 'event.usage.input_tokens',\n outputTokens: 'event.usage.output_tokens'\n },\n visibility: 'optional' as const\n }\n} satisfies Record<string, EventSchema>;\n"]}